diff options
| author | 魏曹先生 <1992414357@qq.com> | 2026-08-06 17:08:33 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2026-08-06 17:08:33 +0800 |
| commit | c944d8dc88b73678d1307a765dc2b0b8d776a22f (patch) | |
| tree | 8fa4399798c1218751d5e3efcb385794e934538c /mingling_cli/src/linter | |
| parent | d03b085d40b104ec25bad195f9b6f85f5ec24604 (diff) | |
chore: add shell completion for explain command
Diffstat (limited to 'mingling_cli/src/linter')
| -rw-r--r-- | mingling_cli/src/linter/cmd_explain.rs | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/mingling_cli/src/linter/cmd_explain.rs b/mingling_cli/src/linter/cmd_explain.rs index d76cf65..ab7a08f 100644 --- a/mingling_cli/src/linter/cmd_explain.rs +++ b/mingling_cli/src/linter/cmd_explain.rs @@ -1,8 +1,8 @@ use mingling::{ - Grouped, Routable, StructuralData, + Grouped, Routable, ShellContext, StructuralData, Suggest, SuggestItem, macros::{ - arg, buffer, chain, dispatcher, metadata, pack, pack_err_structural, r_println, renderer, - routeify, + arg, buffer, chain, completion, dispatcher, metadata, pack, pack_err_structural, r_println, + renderer, routeify, }, metadata::Description, picker::EntryPicker, @@ -121,3 +121,20 @@ pub fn render_error_no_such_lint(err: ErrorNoSuchLint) { r_println!(" {}", entry.name); } } + +#[completion(EntryExplain)] +pub fn complete_explain(ctx: &ShellContext) -> Suggest { + if ctx.previous_word != "explain" { + return Suggest::FileCompletion; + } + let lints: Vec<String> = lint_registry() + .lints + .iter() + .map(|l| l.name.clone()) + .collect(); + let mut suggest = Suggest::new(); + for lint in lints { + suggest.insert(SuggestItem::Simple(lint)); + } + suggest +} |
