@@ -479,12 +479,8 @@ pub(crate) fn handle_document_diagnostics(
479
479
snap : GlobalStateSnapshot ,
480
480
params : lsp_types:: DocumentDiagnosticParams ,
481
481
) -> 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 (
488
484
lsp_types:: DocumentDiagnosticReport :: Full (
489
485
lsp_types:: RelatedFullDocumentDiagnosticReport {
490
486
related_documents : None ,
@@ -494,8 +490,18 @@ pub(crate) fn handle_document_diagnostics(
494
490
} ,
495
491
} ,
496
492
) ,
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 ) ;
498
503
}
504
+ let line_index = snap. file_line_index ( file_id) ?;
499
505
let supports_related = snap. config . text_document_diagnostic_related_document_support ( ) ;
500
506
501
507
let mut related_documents = FxHashMap :: default ( ) ;
0 commit comments