Filter TODOs out of LSP diagnostics
Change-Id: I4a089be3919e0a2ed6c1e54e712ba7f1c9d835aa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/105762
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Nate Bosch <nbosch@google.com>
Commit-Queue: Danny Tuppeny <dantup@google.com>
diff --git a/pkg/analysis_server/lib/src/lsp/lsp_analysis_server.dart b/pkg/analysis_server/lib/src/lsp/lsp_analysis_server.dart
index 301e631..de88f0f 100644
--- a/pkg/analysis_server/lib/src/lsp/lsp_analysis_server.dart
+++ b/pkg/analysis_server/lib/src/lsp/lsp_analysis_server.dart
@@ -32,6 +32,7 @@
import 'package:analysis_server/src/services/search/search_engine.dart';
import 'package:analysis_server/src/services/search/search_engine_internal.dart';
import 'package:analysis_server/src/utilities/null_string_sink.dart';
+import 'package:analyzer/error/error.dart';
import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/instrumentation/instrumentation.dart';
@@ -601,7 +602,9 @@
final serverErrors = protocol.mapEngineErrors(
result.session.analysisContext.analysisOptions,
result.lineInfo,
- result.errors,
+ result.errors
+ .where((e) => e.errorCode.type != ErrorType.TODO)
+ .toList(),
toDiagnostic);
analysisServer.publishDiagnostics(result.path, serverErrors);
diff --git a/pkg/analysis_server/test/lsp/diagnostic_test.dart b/pkg/analysis_server/test/lsp/diagnostic_test.dart
index 06ba649..88a6e62 100644
--- a/pkg/analysis_server/test/lsp/diagnostic_test.dart
+++ b/pkg/analysis_server/test/lsp/diagnostic_test.dart
@@ -81,4 +81,19 @@
// transmitted.
expect(diagnostics, isNull);
}
+
+ test_todos() async {
+ // TODOs only show up if there's also some code in the file.
+ const initialContents = '''
+ // TODO: This
+ String a = "";
+ ''';
+ newFile(mainFilePath, content: initialContents);
+
+ final firstDiagnosticsUpdate = waitForDiagnostics(mainFileUri);
+ await initialize();
+ final initialDiagnostics = await firstDiagnosticsUpdate;
+ // TODOs should not be sent by LSP.
+ expect(initialDiagnostics, hasLength(0));
+ }
}