Ignore adding and changing non-Dart files.

R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review URL: https://codereview.chromium.org/2463723004 .
This commit is contained in:
Konstantin Shcheglov 2016-10-31 11:24:24 -07:00
parent e984271b94
commit b39d156ea6

View file

@ -203,7 +203,8 @@ class AnalysisDriver {
* Return the [Stream] that produces [AnalysisResult]s for added files. * Return the [Stream] that produces [AnalysisResult]s for added files.
* *
* Analysis starts when the client starts listening to the stream, and stops * Analysis starts when the client starts listening to the stream, and stops
* when the client cancels the subscription. * when the client cancels the subscription. Note that the stream supports
* only one single subscriber.
* *
* When the client starts listening, the analysis state transitions to * When the client starts listening, the analysis state transitions to
* "analyzing" and an analysis result is produced for every added file prior * "analyzing" and an analysis result is produced for every added file prior
@ -309,8 +310,10 @@ class AnalysisDriver {
* The results of analysis are eventually produced by the [results] stream. * The results of analysis are eventually produced by the [results] stream.
*/ */
void addFile(String path) { void addFile(String path) {
_explicitFiles.add(path); if (AnalysisEngine.isDartFileName(path)) {
_filesToAnalyze.add(path); _explicitFiles.add(path);
_filesToAnalyze.add(path);
}
_transitionToAnalyzing(); _transitionToAnalyzing();
_hasWork.notify(); _hasWork.notify();
} }
@ -334,9 +337,11 @@ class AnalysisDriver {
* [changeFile] invocation. * [changeFile] invocation.
*/ */
void changeFile(String path) { void changeFile(String path) {
_changedFiles.add(path); if (AnalysisEngine.isDartFileName(path)) {
if (_explicitFiles.contains(path)) { _changedFiles.add(path);
_filesToAnalyze.add(path); if (_explicitFiles.contains(path)) {
_filesToAnalyze.add(path);
}
} }
_transitionToAnalyzing(); _transitionToAnalyzing();
_hasWork.notify(); _hasWork.notify();
@ -366,6 +371,20 @@ class AnalysisDriver {
return completer.future; return completer.future;
} }
/**
* Returns a [Future] that completes after pumping the event queue [times]
* times. By default, this should pump the event queue enough times to allow
* any code to run, as long as it's not waiting on some external event.
*/
Future pumpEventQueue([int times = 5000]) {
if (times == 0) return new Future.value();
// We use a delayed future to allow microtask events to finish. The
// Future.value or Future() constructors use scheduleMicrotask themselves and
// would therefore not wait for microtask callbacks that are scheduled after
// invoking this method.
return new Future.delayed(Duration.ZERO, () => pumpEventQueue(times - 1));
}
/** /**
* Remove the file with the given [path] from the list of files to analyze. * Remove the file with the given [path] from the list of files to analyze.
* *
@ -709,20 +728,6 @@ class AnalysisDriver {
set.remove(element); set.remove(element);
return element; return element;
} }
/**
* Returns a [Future] that completes after pumping the event queue [times]
* times. By default, this should pump the event queue enough times to allow
* any code to run, as long as it's not waiting on some external event.
*/
Future pumpEventQueue([int times = 5000]) {
if (times == 0) return new Future.value();
// We use a delayed future to allow microtask events to finish. The
// Future.value or Future() constructors use scheduleMicrotask themselves and
// would therefore not wait for microtask callbacks that are scheduled after
// invoking this method.
return new Future.delayed(Duration.ZERO, () => pumpEventQueue(times - 1));
}
} }
/** /**