@@ -479,12 +479,8 @@ pub(crate) fn handle_document_diagnostics(
479479 snap : GlobalStateSnapshot ,
480480 params : lsp_types:: DocumentDiagnosticParams ,
481481) -> anyhow:: Result < lsp_types:: DocumentDiagnosticReportResult > {
482- let file_id = from_proto:: file_id ( & snap, & params. text_document . uri ) ?;
483- let source_root = snap. analysis . source_root_id ( file_id) ?;
484- let line_index = snap. file_line_index ( file_id) ?;
485- let config = snap. config . diagnostics ( Some ( source_root) ) ;
486- if !config. enabled {
487- return Ok ( lsp_types:: DocumentDiagnosticReportResult :: Report (
482+ const EMPTY : lsp_types:: DocumentDiagnosticReportResult =
483+ lsp_types:: DocumentDiagnosticReportResult :: Report (
488484 lsp_types:: DocumentDiagnosticReport :: Full (
489485 lsp_types:: RelatedFullDocumentDiagnosticReport {
490486 related_documents : None ,
@@ -494,8 +490,18 @@ pub(crate) fn handle_document_diagnostics(
494490 } ,
495491 } ,
496492 ) ,
497- ) ) ;
493+ ) ;
494+
495+ let file_id = from_proto:: file_id ( & snap, & params. text_document . uri ) ?;
496+ let source_root = snap. analysis . source_root_id ( file_id) ?;
497+ if !snap. analysis . is_local_source_root ( source_root) ? {
498+ return Ok ( EMPTY ) ;
499+ }
500+ let config = snap. config . diagnostics ( Some ( source_root) ) ;
501+ if !config. enabled {
502+ return Ok ( EMPTY ) ;
498503 }
504+ let line_index = snap. file_line_index ( file_id) ?;
499505 let supports_related = snap. config . text_document_diagnostic_related_document_support ( ) ;
500506
501507 let mut related_documents = FxHashMap :: default ( ) ;
0 commit comments