aboutsummaryrefslogtreecommitdiff
path: root/crates/ide/src/lib.rs
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2021-04-13 09:48:12 +0100
committerAleksey Kladov <[email protected]>2021-04-13 10:09:04 +0100
commit06a633ff421b764428bb946ced914e59532fe13f (patch)
treed608b8a7edd630a8b028c117c615ece9a48c4186 /crates/ide/src/lib.rs
parent04b5fcfdb28f18f4d5279b43c2bb2b3f9c082313 (diff)
feat: improve performance by delaying computation of fixes for diagnostics
Diffstat (limited to 'crates/ide/src/lib.rs')
-rw-r--r--crates/ide/src/lib.rs8
1 files changed, 5 insertions, 3 deletions
diff --git a/crates/ide/src/lib.rs b/crates/ide/src/lib.rs
index bbc0d5eec..d481be09d 100644
--- a/crates/ide/src/lib.rs
+++ b/crates/ide/src/lib.rs
@@ -526,9 +526,10 @@ impl Analysis {
526 pub fn diagnostics( 526 pub fn diagnostics(
527 &self, 527 &self,
528 config: &DiagnosticsConfig, 528 config: &DiagnosticsConfig,
529 resolve: bool,
529 file_id: FileId, 530 file_id: FileId,
530 ) -> Cancelable<Vec<Diagnostic>> { 531 ) -> Cancelable<Vec<Diagnostic>> {
531 self.with_db(|db| diagnostics::diagnostics(db, config, file_id)) 532 self.with_db(|db| diagnostics::diagnostics(db, config, resolve, file_id))
532 } 533 }
533 534
534 /// Convenience function to return assists + quick fixes for diagnostics 535 /// Convenience function to return assists + quick fixes for diagnostics
@@ -550,9 +551,10 @@ impl Analysis {
550 551
551 if include_fixes { 552 if include_fixes {
552 res.extend( 553 res.extend(
553 diagnostics::diagnostics(db, diagnostics_config, frange.file_id) 554 diagnostics::diagnostics(db, diagnostics_config, resolve, frange.file_id)
554 .into_iter() 555 .into_iter()
555 .filter_map(|it| it.fix), 556 .filter_map(|it| it.fix)
557 .filter(|it| it.target.intersect(frange.range).is_some()),
556 ); 558 );
557 } 559 }
558 res 560 res