mirror of
https://github.com/helix-editor/helix.git
synced 2024-11-25 02:46:17 +04:00
Refactor doc.shown_diagnostics to avoid an extra HashSet
Co-authored-by: Pascal Kuthe <pascal.kuthe@semimod.de>
This commit is contained in:
parent
1122928c2a
commit
9639f42766
@ -16,7 +16,7 @@
|
||||
use serde::Serialize;
|
||||
use std::borrow::Cow;
|
||||
use std::cell::Cell;
|
||||
use std::collections::{HashMap, HashSet};
|
||||
use std::collections::HashMap;
|
||||
use std::fmt::Display;
|
||||
use std::future::Future;
|
||||
use std::path::{Path, PathBuf};
|
||||
@ -1581,13 +1581,16 @@ pub fn diagnostics(&self) -> &[Diagnostic] {
|
||||
}
|
||||
|
||||
pub fn shown_diagnostics(&self) -> impl Iterator<Item = &Diagnostic> + DoubleEndedIterator {
|
||||
let ls_ids: HashSet<_> = self
|
||||
.language_servers_with_feature(LanguageServerFeature::Diagnostics)
|
||||
.map(|ls| ls.id())
|
||||
.collect();
|
||||
self.diagnostics
|
||||
.iter()
|
||||
.filter(move |d| ls_ids.contains(&d.language_server_id))
|
||||
self.diagnostics.iter().filter(|d| {
|
||||
self.language_servers()
|
||||
.find(|ls| ls.id() == d.language_server_id)
|
||||
.and_then(|ls| {
|
||||
let config = self.language_config()?;
|
||||
let features = config.language_servers.get(ls.name())?;
|
||||
Some(features.has_feature(LanguageServerFeature::Diagnostics))
|
||||
})
|
||||
== Some(true)
|
||||
})
|
||||
}
|
||||
|
||||
pub fn replace_diagnostics(
|
||||
|
Loading…
Reference in New Issue
Block a user