Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(348)

Unified Diff: pkg/analysis_server/lib/src/plugin/server_plugin.dart

Issue 1413643006: Rework analyzed files support to use globs (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Address comments Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/analysis_server/lib/src/analysis_server.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analysis_server/lib/src/plugin/server_plugin.dart
diff --git a/pkg/analysis_server/lib/src/plugin/server_plugin.dart b/pkg/analysis_server/lib/src/plugin/server_plugin.dart
index c008c1ca1ab627d124998f12883f9bc330d2bc33..4aa0c8f4364c3c032c5dbdc5855ee5acc9a7d1c9 100644
--- a/pkg/analysis_server/lib/src/plugin/server_plugin.dart
+++ b/pkg/analysis_server/lib/src/plugin/server_plugin.dart
@@ -31,7 +31,6 @@ import 'package:analysis_server/src/search/search_domain.dart';
import 'package:analysis_server/src/services/correction/assist_internal.dart';
import 'package:analysis_server/src/services/correction/fix_internal.dart';
import 'package:analysis_server/src/services/index/index_contributor.dart';
-import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/src/generated/engine.dart';
import 'package:plugin/plugin.dart';
@@ -48,9 +47,10 @@ typedef RequestHandler RequestHandlerFactory(AnalysisServer server);
class ServerPlugin implements Plugin {
/**
* The simple identifier of the extension point that allows plugins to
- * register functions that can cause files to be analyzed.
+ * register file patterns that will cause files to be analyzed.
*/
- static const String ANALYZE_FILE_EXTENSION_POINT = 'analyzeFile';
+ static const String ANALYZED_FILE_PATTERNS_EXTENSION_POINT =
+ 'analyzedFilePatterns';
/**
* The simple identifier of the extension point that allows plugins to
@@ -109,10 +109,10 @@ class ServerPlugin implements Plugin {
static const String UNIQUE_IDENTIFIER = 'analysis_server.core';
/**
- * The extension point that allows plugins to register functions that can
+ * The extension point that allows plugins to register file patterns that will
* cause files to be analyzed.
*/
- ExtensionPoint analyzeFileExtensionPoint;
+ ExtensionPoint analyzedFilePatternsExtensionPoint;
/**
* The extension point that allows plugins to register assist contributors.
@@ -166,11 +166,17 @@ class ServerPlugin implements Plugin {
ServerPlugin();
/**
- * Return a list containing all of the functions that can cause files to be
- * analyzed.
+ * Return a list containing all of the file patterns that can cause files to
+ * be analyzed.
*/
- List<ShouldAnalyzeFile> get analyzeFileFunctions =>
- analyzeFileExtensionPoint.extensions;
+ List<String> get analyzedFilePatterns {
+ List<String> patterns = <String>[];
+ for (List<String> extension
+ in analyzedFilePatternsExtensionPoint.extensions) {
+ patterns.addAll(extension);
+ }
+ return patterns;
+ }
/**
* Return a list containing all of the assist contributors that were
@@ -241,8 +247,9 @@ class ServerPlugin implements Plugin {
setAnalysisDomainExtensionPoint = registerExtensionPoint(
SET_ANALISYS_DOMAIN_EXTENSION_POINT,
_validateSetAnalysisDomainFunction);
- analyzeFileExtensionPoint = registerExtensionPoint(
- ANALYZE_FILE_EXTENSION_POINT, _validateAnalyzeFileExtension);
+ analyzedFilePatternsExtensionPoint = registerExtensionPoint(
+ ANALYZED_FILE_PATTERNS_EXTENSION_POINT,
+ _validateAnalyzedFilePatternsExtension);
assistContributorExtensionPoint = registerExtensionPoint(
ASSIST_CONTRIBUTOR_EXTENSION_POINT,
_validateAssistContributorExtension);
@@ -266,13 +273,15 @@ class ServerPlugin implements Plugin {
@override
void registerExtensions(RegisterExtension registerExtension) {
//
- // Register analyze file functions.
+ // Register analyzed file patterns.
//
- registerExtension(
- ANALYZE_FILE_EXTENSION_POINT_ID,
- (File file) => AnalysisEngine.isDartFileName(file.path) ||
- AnalysisEngine.isHtmlFileName(file.path) ||
- AnalysisEngine.isAnalysisOptionsFileName(file.path));
+ List<String> patterns = <String>[
+ '/**/*.${AnalysisEngine.SUFFIX_DART}',
+ '/**/*.${AnalysisEngine.SUFFIX_HTML}',
+ '/**/*.${AnalysisEngine.SUFFIX_HTM}',
+ '/**/${AnalysisEngine.ANALYSIS_OPTIONS_FILE}'
+ ];
+ registerExtension(ANALYZED_FILE_PATTERNS_EXTENSION_POINT_ID, patterns);
//
// Register assist contributors.
//
@@ -318,18 +327,29 @@ class ServerPlugin implements Plugin {
//
registerExtension(
INDEX_CONTRIBUTOR_EXTENSION_POINT_ID, new DartIndexContributor());
+ }
+ /**
+ * Return `true` if the list being used as an [extension] contains any
+ * elements that are not strings.
+ */
+ bool _containsNonString(List extension) {
+ for (Object element in extension) {
+ if (element is! String) {
+ return true;
+ }
+ }
+ return false;
}
/**
* Validate the given extension by throwing an [ExtensionError] if it is not a
- * valid assist contributor.
+ * valid list of analyzed file patterns.
*/
- void _validateAnalyzeFileExtension(Object extension) {
- if (extension is! ShouldAnalyzeFile) {
- String id = analyzeFileExtensionPoint.uniqueIdentifier;
- throw new ExtensionError(
- 'Extensions to $id must be a ShouldAnalyzeFile function');
+ void _validateAnalyzedFilePatternsExtension(Object extension) {
+ if (extension is! List || _containsNonString(extension)) {
+ String id = analyzedFilePatternsExtensionPoint.uniqueIdentifier;
+ throw new ExtensionError('Extensions to $id must be a List of Strings');
}
}
« no previous file with comments | « pkg/analysis_server/lib/src/analysis_server.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698