Maintain language servers TOML array order in `doc.language_servers`
commit073000e54d862ef542387868c897d4f847fbe18a
authorPhilipp Mildenberger <philipp@mildenberger.me>
dateMon 20 Mar 2023, 18:04 (4 years ago)
parentff26208
helix-view/src/document.rs+10−6
@@ -1429,13 +1429,17 @@ impl Document {
14291429 self.version
14301430 }
14311431
1432+ /// maintains the order as configured in the language_servers TOML array
14321433 pub fn language_servers(&self) -> impl Iterator<Item = &helix_lsp::Client> {
1433− self.language_servers.values().filter_map(|l| {
1434− if l.is_initialized() {
1435− Some(&**l)
1436− } else {
1437− None
1438− }
1434+ self.language_config().into_iter().flat_map(move |config| {
1435+ config.language_servers.iter().filter_map(move |features| {
1436+ let ls = &**self.language_servers.get(&features.name)?;
1437+ if ls.is_initialized() {
1438+ Some(ls)
1439+ } else {
1440+ None
1441+ }
1442+ })
14391443 })
14401444 }
14411445