diff options
author | Norbert Preining <norbert@preining.info> | 2024-05-26 03:01:14 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2024-05-26 03:01:14 +0000 |
commit | a6ca78f24091e7023516b4761d400b3699f82937 (patch) | |
tree | c232a264a2fbf391f9d10cf330ce611f8a0e64ab /support/texlab/crates/diagnostics | |
parent | 737e568a228eca50e9aeabe3116e1fe8116d27d5 (diff) |
CTAN sync 202405260301
Diffstat (limited to 'support/texlab/crates/diagnostics')
-rw-r--r-- | support/texlab/crates/diagnostics/src/chktex.rs | 2 | ||||
-rw-r--r-- | support/texlab/crates/diagnostics/src/citations.rs | 6 | ||||
-rw-r--r-- | support/texlab/crates/diagnostics/src/manager.rs | 10 | ||||
-rw-r--r-- | support/texlab/crates/diagnostics/src/tests.rs | 4 |
4 files changed, 9 insertions, 13 deletions
diff --git a/support/texlab/crates/diagnostics/src/chktex.rs b/support/texlab/crates/diagnostics/src/chktex.rs index 195ea968e5..a3f539440d 100644 --- a/support/texlab/crates/diagnostics/src/chktex.rs +++ b/support/texlab/crates/diagnostics/src/chktex.rs @@ -74,7 +74,7 @@ impl Command { .build(stdout), ); - for line in reader.lines().flatten() { + for line in reader.lines().map_while(Result::ok) { let captures = LINE_REGEX.captures(&line).unwrap(); let line = captures[1].parse::<u32>().unwrap() - 1; let character = captures[2].parse::<u32>().unwrap() - 1; diff --git a/support/texlab/crates/diagnostics/src/citations.rs b/support/texlab/crates/diagnostics/src/citations.rs index 0f09f589be..43d5f495d2 100644 --- a/support/texlab/crates/diagnostics/src/citations.rs +++ b/support/texlab/crates/diagnostics/src/citations.rs @@ -24,7 +24,7 @@ pub fn detect_undefined_citations<'a>( for citation in &data.semantics.citations { let name = citation.name_text(); - if name != "*" && !entries.contains(name) && !name.contains("#") { + if name != "*" && !entries.contains(name) { let diagnostic = Diagnostic::Tex(citation.name.range, TexError::UndefinedCitation); results .entry(document.uri.clone()) @@ -65,8 +65,8 @@ pub fn detect_unused_entries<'a>( Some(()) } -pub fn detect_duplicate_entries<'a>( - workspace: &'a Workspace, +pub fn detect_duplicate_entries( + workspace: &Workspace, results: &mut FxHashMap<Url, Vec<Diagnostic>>, ) { for conflict in queries::Conflict::find_all::<Entry>(workspace) { diff --git a/support/texlab/crates/diagnostics/src/manager.rs b/support/texlab/crates/diagnostics/src/manager.rs index 3573bc40f2..500dc99c13 100644 --- a/support/texlab/crates/diagnostics/src/manager.rs +++ b/support/texlab/crates/diagnostics/src/manager.rs @@ -89,16 +89,12 @@ impl Manager { let config = &workspace.config().diagnostics; - results.retain(|uri, _| { - workspace - .lookup(uri) - .map_or(false, |document| Self::is_relevant(document)) - }); + results.retain(|uri, _| workspace.lookup(uri).map_or(false, Self::is_relevant)); - for (_, diagnostics) in &mut results { + for diagnostics in results.values_mut() { diagnostics.retain(|diagnostic| { filter_regex_patterns( - &diagnostic.message(), + diagnostic.message(), &config.allowed_patterns, &config.ignored_patterns, ) diff --git a/support/texlab/crates/diagnostics/src/tests.rs b/support/texlab/crates/diagnostics/src/tests.rs index 3688abeaf4..05ad67fc8b 100644 --- a/support/texlab/crates/diagnostics/src/tests.rs +++ b/support/texlab/crates/diagnostics/src/tests.rs @@ -6,14 +6,14 @@ fn check(input: &str, expect: Expect) { let mut manager = crate::Manager::default(); for document in fixture.workspace.iter() { - manager.update_syntax(&fixture.workspace, &document); + manager.update_syntax(&fixture.workspace, document); } let results = manager.get(&fixture.workspace); let results = results .iter() .filter(|(_, diags)| !diags.is_empty()) - .sorted_by(|(uri1, _), (uri2, _)| uri1.cmp(&uri2)) + .sorted_by(|(uri1, _), (uri2, _)| uri1.cmp(uri2)) .map(|(uri, diags)| (uri.as_str(), diags)) .collect_vec(); |