Highlight command argument completions in cyan

- /run path completions shown in cyan
- /resume session ID completions shown in cyan
- /project name completions shown in cyan
This commit is contained in:
Dhanji R. Prasanna
2026-01-27 12:45:37 +11:00
parent 8389b0d652
commit 755acabd47

View File

@@ -270,18 +270,27 @@ impl Completer for G3Helper {
if line_to_cursor.starts_with("/run ") { if line_to_cursor.starts_with("/run ") {
let path = self.strip_quotes(word); let path = self.strip_quotes(word);
let (_, completions) = self.file_completer.complete(path, path.len(), ctx)?; let (_, completions) = self.file_completer.complete(path, path.len(), ctx)?;
return Ok((word_start, completions)); // Cyan color for command argument completions
let cyan_completions: Vec<Pair> = completions
.into_iter()
.map(|p| Pair {
display: format!("\x1b[36m{}\x1b[0m", p.display),
replacement: p.replacement,
})
.collect();
return Ok((word_start, cyan_completions));
} }
// Case 4: Session ID completion for /resume command // Case 4: Session ID completion for /resume command
if line_to_cursor.starts_with("/resume ") { if line_to_cursor.starts_with("/resume ") {
let partial = word; let partial = word;
let sessions = self.list_sessions(None); let sessions = self.list_sessions(None);
// Cyan color for command argument completions
let matches: Vec<Pair> = sessions let matches: Vec<Pair> = sessions
.into_iter() .into_iter()
.filter(|s| s.starts_with(partial)) .filter(|s| s.starts_with(partial))
.map(|s| Pair { .map(|s| Pair {
display: s.clone(), display: format!("\x1b[36m{}\x1b[0m", s),
replacement: s, replacement: s,
}) })
.take(8) .take(8)
@@ -293,12 +302,13 @@ impl Completer for G3Helper {
if line_to_cursor.starts_with("/project ") { if line_to_cursor.starts_with("/project ") {
let partial = word; let partial = word;
let projects = self.list_projects(partial); let projects = self.list_projects(partial);
// Cyan color for command argument completions
let matches: Vec<Pair> = projects let matches: Vec<Pair> = projects
.into_iter() .into_iter()
.map(|name| { .map(|name| {
let full_path = format!("~/projects/{}", name); let full_path = format!("~/projects/{}", name);
Pair { Pair {
display: name, display: format!("\x1b[36m{}\x1b[0m", name),
replacement: full_path, replacement: full_path,
} }
}) })