OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library operation.analysis; | 5 library operation.analysis; |
6 | 6 |
7 import 'package:analysis_server/src/analysis_server.dart'; | 7 import 'package:analysis_server/src/analysis_server.dart'; |
8 import 'package:analysis_server/src/computer/computer_highlights.dart'; | 8 import 'package:analysis_server/src/computer/computer_highlights.dart'; |
9 import 'package:analysis_server/src/computer/computer_highlights2.dart'; | 9 import 'package:analysis_server/src/computer/computer_highlights2.dart'; |
10 import 'package:analysis_server/src/computer/computer_outline.dart'; | 10 import 'package:analysis_server/src/computer/computer_outline.dart'; |
11 import 'package:analysis_server/src/computer/computer_overrides.dart'; | 11 import 'package:analysis_server/src/computer/computer_overrides.dart'; |
| 12 import 'package:analysis_server/src/domains/analysis/implemented_dart.dart'; |
12 import 'package:analysis_server/src/domains/analysis/navigation.dart'; | 13 import 'package:analysis_server/src/domains/analysis/navigation.dart'; |
13 import 'package:analysis_server/src/domains/analysis/occurrences.dart'; | 14 import 'package:analysis_server/src/domains/analysis/occurrences.dart'; |
14 import 'package:analysis_server/src/operation/operation.dart'; | 15 import 'package:analysis_server/src/operation/operation.dart'; |
15 import 'package:analysis_server/src/protocol_server.dart' as protocol; | 16 import 'package:analysis_server/src/protocol_server.dart' as protocol; |
16 import 'package:analysis_server/src/services/dependencies/library_dependencies.d
art'; | 17 import 'package:analysis_server/src/services/dependencies/library_dependencies.d
art'; |
17 import 'package:analysis_server/src/services/index/index.dart'; | 18 import 'package:analysis_server/src/services/index/index.dart'; |
| 19 import 'package:analysis_server/src/services/search/search_engine.dart'; |
18 import 'package:analyzer/src/generated/ast.dart'; | 20 import 'package:analyzer/src/generated/ast.dart'; |
| 21 import 'package:analyzer/src/generated/element.dart'; |
19 import 'package:analyzer/src/generated/engine.dart'; | 22 import 'package:analyzer/src/generated/engine.dart'; |
20 import 'package:analyzer/src/generated/error.dart'; | 23 import 'package:analyzer/src/generated/error.dart'; |
21 import 'package:analyzer/src/generated/html.dart'; | 24 import 'package:analyzer/src/generated/html.dart'; |
22 import 'package:analyzer/src/generated/source.dart'; | 25 import 'package:analyzer/src/generated/source.dart'; |
23 | 26 |
24 /** | 27 /** |
25 * Runs the given function [f] with the working cache size in [context]. | 28 * Runs the given function [f] with the working cache size in [context]. |
26 * Returns the result of [f] invocation. | 29 * Returns the result of [f] invocation. |
27 */ | 30 */ |
28 runWithWorkingCacheSize(AnalysisContext context, f()) { | 31 runWithWorkingCacheSize(AnalysisContext context, f()) { |
29 int currentCacheSize = context.analysisOptions.cacheSize; | 32 int currentCacheSize = context.analysisOptions.cacheSize; |
30 if (currentCacheSize < PerformAnalysisOperation.WORKING_CACHE_SIZE) { | 33 if (currentCacheSize < PerformAnalysisOperation.WORKING_CACHE_SIZE) { |
31 setCacheSize(context, PerformAnalysisOperation.WORKING_CACHE_SIZE); | 34 setCacheSize(context, PerformAnalysisOperation.WORKING_CACHE_SIZE); |
32 try { | 35 try { |
33 return f(); | 36 return f(); |
34 } finally { | 37 } finally { |
35 setCacheSize(context, currentCacheSize); | 38 setCacheSize(context, currentCacheSize); |
36 } | 39 } |
37 } else { | 40 } else { |
38 return f(); | 41 return f(); |
39 } | 42 } |
40 } | 43 } |
41 | 44 |
| 45 scheduleImplementedNotification( |
| 46 AnalysisServer server, Iterable<String> files) async { |
| 47 SearchEngine searchEngine = server.searchEngine; |
| 48 if (searchEngine == null) { |
| 49 return; |
| 50 } |
| 51 for (String file in files) { |
| 52 CompilationUnitElement unitElement = server.getCompilationUnitElement(file); |
| 53 if (unitElement != null) { |
| 54 ImplementedComputer computer = |
| 55 new ImplementedComputer(searchEngine, unitElement); |
| 56 await computer.compute(); |
| 57 var params = new protocol.AnalysisImplementedParams( |
| 58 file, computer.classes, computer.members); |
| 59 server.sendNotification(params.toNotification()); |
| 60 } |
| 61 } |
| 62 } |
| 63 |
42 /** | 64 /** |
43 * Schedules indexing of the given [file] using the resolved [dartUnit]. | 65 * Schedules indexing of the given [file] using the resolved [dartUnit]. |
44 */ | 66 */ |
45 void scheduleIndexOperation(AnalysisServer server, String file, | 67 void scheduleIndexOperation(AnalysisServer server, String file, |
46 AnalysisContext context, CompilationUnit dartUnit) { | 68 AnalysisContext context, CompilationUnit dartUnit) { |
47 if (server.index != null) { | 69 if (server.index != null) { |
48 server.addOperation(new _DartIndexOperation(context, file, dartUnit)); | 70 server.addOperation(new _DartIndexOperation(context, file, dartUnit)); |
49 } | 71 } |
50 } | 72 } |
51 | 73 |
(...skipping 459 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
511 abstract class _SingleFileOperation extends SourceSensitiveOperation { | 533 abstract class _SingleFileOperation extends SourceSensitiveOperation { |
512 final String file; | 534 final String file; |
513 | 535 |
514 _SingleFileOperation(AnalysisContext context, this.file) : super(context); | 536 _SingleFileOperation(AnalysisContext context, this.file) : super(context); |
515 | 537 |
516 @override | 538 @override |
517 bool shouldBeDiscardedOnSourceChange(Source source) { | 539 bool shouldBeDiscardedOnSourceChange(Source source) { |
518 return source.fullName == file; | 540 return source.fullName == file; |
519 } | 541 } |
520 } | 542 } |
OLD | NEW |