From 06a633ff421b764428bb946ced914e59532fe13f Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 13 Apr 2021 11:48:12 +0300 Subject: feat: improve performance by delaying computation of fixes for diagnostics --- crates/ide/src/lib.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'crates/ide/src/lib.rs') 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 { pub fn diagnostics( &self, config: &DiagnosticsConfig, + resolve: bool, file_id: FileId, ) -> Cancelable> { - self.with_db(|db| diagnostics::diagnostics(db, config, file_id)) + self.with_db(|db| diagnostics::diagnostics(db, config, resolve, file_id)) } /// Convenience function to return assists + quick fixes for diagnostics @@ -550,9 +551,10 @@ impl Analysis { if include_fixes { res.extend( - diagnostics::diagnostics(db, diagnostics_config, frange.file_id) + diagnostics::diagnostics(db, diagnostics_config, resolve, frange.file_id) .into_iter() - .filter_map(|it| it.fix), + .filter_map(|it| it.fix) + .filter(|it| it.target.intersect(frange.range).is_some()), ); } res -- cgit v1.2.3