Revert "don't disable TODO issues in IDEs (#23274)" (#23297)

Devon asked me to revert commit c4d1b31b746955a28c05c959873a9e9eeebc042d.

Merging on red to fix the build.
diff --git a/dev/bots/analyze-sample-code.dart b/dev/bots/analyze-sample-code.dart
index c3e8c49..9e04582 100644
--- a/dev/bots/analyze-sample-code.dart
+++ b/dev/bots/analyze-sample-code.dart
@@ -231,7 +231,7 @@
     errors.add(null);
     errors.addAll(await process.stdout.transform<String>(utf8.decoder).transform<String>(const LineSplitter()).toList());
     // top is stderr
-    if (errors.isNotEmpty && (errors.first.contains(' issues found (ran in ') || errors.first.contains(' issue found (ran in '))) {
+    if (errors.isNotEmpty && (errors.first.contains(' issues found. (ran in ') || errors.first.contains(' issue found. (ran in '))) {
       errors.removeAt(0); // the "23 issues found" message goes onto stderr, which is concatenated first
       if (errors.isNotEmpty && errors.last.isEmpty)
         errors.removeLast(); // if there's an "issues found" message, we put a blank line on stdout before it
diff --git a/packages/flutter/lib/analysis_options_user.yaml b/packages/flutter/lib/analysis_options_user.yaml
index 01c274a..e558021 100644
--- a/packages/flutter/lib/analysis_options_user.yaml
+++ b/packages/flutter/lib/analysis_options_user.yaml
@@ -24,6 +24,8 @@
   errors:
     # treat missing required parameters as a warning (not a hint)
     missing_required_param: warning
+    # allow having TODOs in the code
+    todo: ignore
 
 linter:
   rules:
diff --git a/packages/flutter_tools/lib/src/commands/analyze_once.dart b/packages/flutter_tools/lib/src/commands/analyze_once.dart
index 942db17..faadddc 100644
--- a/packages/flutter_tools/lib/src/commands/analyze_once.dart
+++ b/packages/flutter_tools/lib/src/commands/analyze_once.dart
@@ -87,8 +87,7 @@
       }
     });
     server.onErrors.listen((FileAnalysisErrors fileErrors) {
-      // Record the issues found (but filter out to do comments).
-      errors.addAll(fileErrors.errors.where((AnalysisError error) => error.type != 'TODO'));
+      errors.addAll(fileErrors.errors);
     });
 
     await server.start();
@@ -149,9 +148,9 @@
       final int errorCount = errors.length;
       printStatus('');
       if (undocumentedMembers > 0) {
-        throwToolExit('$errorCount ${pluralize('issue', errorCount)} found (ran in ${seconds}s; $dartdocMessage).');
+        throwToolExit('$errorCount ${pluralize('issue', errorCount)} found. (ran in ${seconds}s; $dartdocMessage)');
       } else {
-        throwToolExit('$errorCount ${pluralize('issue', errorCount)} found (ran in ${seconds}s).');
+        throwToolExit('$errorCount ${pluralize('issue', errorCount)} found. (ran in ${seconds}s)');
       }
     }
 
diff --git a/packages/flutter_tools/test/commands/analyze_once_test.dart b/packages/flutter_tools/test/commands/analyze_once_test.dart
index 4c87e50..1166a6e 100644
--- a/packages/flutter_tools/test/commands/analyze_once_test.dart
+++ b/packages/flutter_tools/test/commands/analyze_once_test.dart
@@ -96,7 +96,7 @@
           'warning $analyzerSeparator The parameter \'onPressed\' is required',
           'info $analyzerSeparator The method \'_incrementCounter\' isn\'t used',
         ],
-        exitMessageContains: '2 issues found',
+        exitMessageContains: '2 issues found.',
         toolExit: true,
       );
     }, timeout: allowForSlowAnalyzeTests);
@@ -123,7 +123,7 @@
           'info $analyzerSeparator The method \'_incrementCounter\' isn\'t used',
           'info $analyzerSeparator Only throw instances of classes extending either Exception or Error',
         ],
-        exitMessageContains: '3 issues found',
+        exitMessageContains: '3 issues found.',
         toolExit: true,
       );
     }, timeout: allowForSlowAnalyzeTests);
@@ -154,7 +154,7 @@
           statusTextContains: <String>[
             'Analyzing',
           ],
-          exitMessageContains: '1 issue found',
+          exitMessageContains: '1 issue found.',
           toolExit: true,
         );
       } finally {
@@ -178,24 +178,6 @@
         tryToDelete(tempDir);
       }
     });
-
-    testUsingContext('returns no issues for todo comments', () async {
-      const String contents = '''
-// TODO(foobar):
-StringBuffer bar = StringBuffer('baz');
-''';
-      final Directory tempDir = fs.systemTempDirectory.createTempSync('flutter_analyze_once_test_4.');
-      tempDir.childFile('main.dart').writeAsStringSync(contents);
-      try {
-        await runCommand(
-          command: AnalyzeCommand(workingDirectory: fs.directory(tempDir)),
-          arguments: <String>['analyze'],
-          statusTextContains: <String>['No issues found!'],
-        );
-      } finally {
-        tryToDelete(tempDir);
-      }
-    });
   });
 }