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.rs18
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();