Maintain language servers TOML array order in doc.language_servers

This commit is contained in:
Philipp Mildenberger 2023-03-20 18:04:02 +01:00
parent ff26208427
commit 073000e54d

View File

@ -1429,14 +1429,18 @@ pub fn version(&self) -> i32 {
self.version
}
/// maintains the order as configured in the language_servers TOML array
pub fn language_servers(&self) -> impl Iterator<Item = &helix_lsp::Client> {
self.language_servers.values().filter_map(|l| {
if l.is_initialized() {
Some(&**l)
self.language_config().into_iter().flat_map(move |config| {
config.language_servers.iter().filter_map(move |features| {
let ls = &**self.language_servers.get(&features.name)?;
if ls.is_initialized() {
Some(ls)
} else {
None
}
})
})
}
pub fn remove_language_server_by_name(&mut self, name: &str) -> Option<Arc<Client>> {