Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'helix-term/src/ui/mod.rs')
| -rw-r--r-- | helix-term/src/ui/mod.rs | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/helix-term/src/ui/mod.rs b/helix-term/src/ui/mod.rs index bbd71ca5..21a68d7f 100644 --- a/helix-term/src/ui/mod.rs +++ b/helix-term/src/ui/mod.rs @@ -410,7 +410,8 @@ pub mod completers { } } - pub fn language_servers(editor: &Editor, input: &str) -> Vec<Completion> { + /// Completes names of language servers which are running for the current document. + pub fn active_language_servers(editor: &Editor, input: &str) -> Vec<Completion> { let language_servers = doc!(editor).language_servers().map(|ls| ls.name()); fuzzy_match(input, language_servers, false) @@ -419,6 +420,21 @@ pub mod completers { .collect() } + /// Completes names of language servers which are configured for the language of the current + /// document. + pub fn configured_language_servers(editor: &Editor, input: &str) -> Vec<Completion> { + let language_servers = doc!(editor) + .language_config() + .into_iter() + .flat_map(|config| &config.language_servers) + .map(|ls| ls.name.as_str()); + + fuzzy_match(input, language_servers, false) + .into_iter() + .map(|(name, _)| ((0..), Span::raw(name.to_string()))) + .collect() + } + pub fn setting(_editor: &Editor, input: &str) -> Vec<Completion> { static KEYS: Lazy<Vec<String>> = Lazy::new(|| { let mut keys = Vec::new(); |