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 analysis.server; | 5 library analysis.server; |
6 | 6 |
7 import 'dart:async'; | 7 import 'dart:async'; |
8 import 'dart:collection'; | 8 import 'dart:collection'; |
9 import 'dart:math' show max; | 9 import 'dart:math' show max; |
10 | 10 |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
82 * be sent. | 82 * be sent. |
83 */ | 83 */ |
84 final ServerCommunicationChannel channel; | 84 final ServerCommunicationChannel channel; |
85 | 85 |
86 /** | 86 /** |
87 * The [ResourceProvider] using which paths are converted into [Resource]s. | 87 * The [ResourceProvider] using which paths are converted into [Resource]s. |
88 */ | 88 */ |
89 final ResourceProvider resourceProvider; | 89 final ResourceProvider resourceProvider; |
90 | 90 |
91 /** | 91 /** |
92 * The [Index] for this server. | 92 * The [Index] for this server, may be `null` if indexing is disabled. |
93 */ | 93 */ |
94 final Index index; | 94 final Index index; |
95 | 95 |
96 /** | 96 /** |
97 * The [SearchEngine] for this server. | 97 * The [SearchEngine] for this server, may be `null` if indexing is disabled. |
98 */ | 98 */ |
99 SearchEngine searchEngine; | 99 final SearchEngine searchEngine; |
100 | 100 |
101 /** | 101 /** |
102 * [ContextManager] which handles the mapping from analysis roots | 102 * [ContextManager] which handles the mapping from analysis roots |
103 * to context directories. | 103 * to context directories. |
104 */ | 104 */ |
105 ServerContextManager contextDirectoryManager; | 105 ServerContextManager contextDirectoryManager; |
106 | 106 |
107 /** | 107 /** |
108 * A flag indicating whether the server is running. When false, contexts | 108 * A flag indicating whether the server is running. When false, contexts |
109 * will no longer be added to [contextWorkQueue], and [performOperation] will | 109 * will no longer be added to [contextWorkQueue], and [performOperation] will |
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
235 /** | 235 /** |
236 * Initialize a newly created server to receive requests from and send | 236 * Initialize a newly created server to receive requests from and send |
237 * responses to the given [channel]. | 237 * responses to the given [channel]. |
238 * | 238 * |
239 * If [rethrowExceptions] is true, then any exceptions thrown by analysis are | 239 * If [rethrowExceptions] is true, then any exceptions thrown by analysis are |
240 * propagated up the call stack. The default is true to allow analysis | 240 * propagated up the call stack. The default is true to allow analysis |
241 * exceptions to show up in unit tests, but it should be set to false when | 241 * exceptions to show up in unit tests, but it should be set to false when |
242 * running a full analysis server. | 242 * running a full analysis server. |
243 */ | 243 */ |
244 AnalysisServer(this.channel, this.resourceProvider, | 244 AnalysisServer(this.channel, this.resourceProvider, |
245 PackageMapProvider packageMapProvider, this.index, | 245 PackageMapProvider packageMapProvider, Index _index, |
246 AnalysisServerOptions analysisServerOptions, this.defaultSdk, | 246 AnalysisServerOptions analysisServerOptions, this.defaultSdk, |
247 this.instrumentationService, {this.rethrowExceptions: true}) { | 247 this.instrumentationService, {this.rethrowExceptions: true}) |
| 248 : index = _index, |
| 249 searchEngine = _index != null ? createSearchEngine(_index) : null { |
248 _performance = performanceDuringStartup; | 250 _performance = performanceDuringStartup; |
249 searchEngine = createSearchEngine(index); | |
250 operationQueue = new ServerOperationQueue(); | 251 operationQueue = new ServerOperationQueue(); |
251 contextDirectoryManager = | 252 contextDirectoryManager = |
252 new ServerContextManager(this, resourceProvider, packageMapProvider); | 253 new ServerContextManager(this, resourceProvider, packageMapProvider); |
253 contextDirectoryManager.defaultOptions.incremental = true; | 254 contextDirectoryManager.defaultOptions.incremental = true; |
254 contextDirectoryManager.defaultOptions.incrementalApi = | 255 contextDirectoryManager.defaultOptions.incrementalApi = |
255 analysisServerOptions.enableIncrementalResolutionApi; | 256 analysisServerOptions.enableIncrementalResolutionApi; |
256 contextDirectoryManager.defaultOptions.incrementalValidation = | 257 contextDirectoryManager.defaultOptions.incrementalValidation = |
257 analysisServerOptions.enableIncrementalResolutionValidation; | 258 analysisServerOptions.enableIncrementalResolutionValidation; |
258 _noErrorNotification = analysisServerOptions.noErrorNotification; | 259 _noErrorNotification = analysisServerOptions.noErrorNotification; |
259 AnalysisEngine.instance.logger = new AnalysisLogger(); | 260 AnalysisEngine.instance.logger = new AnalysisLogger(); |
(...skipping 836 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1096 } | 1097 } |
1097 performOperationPending = true; | 1098 performOperationPending = true; |
1098 } | 1099 } |
1099 } | 1100 } |
1100 | 1101 |
1101 | 1102 |
1102 class AnalysisServerOptions { | 1103 class AnalysisServerOptions { |
1103 bool enableIncrementalResolutionApi = false; | 1104 bool enableIncrementalResolutionApi = false; |
1104 bool enableIncrementalResolutionValidation = false; | 1105 bool enableIncrementalResolutionValidation = false; |
1105 bool noErrorNotification = false; | 1106 bool noErrorNotification = false; |
| 1107 bool noIndex = false; |
1106 String fileReadMode = 'as-is'; | 1108 String fileReadMode = 'as-is'; |
1107 } | 1109 } |
1108 | 1110 |
1109 /** | 1111 /** |
1110 * A [ContextsChangedEvent] indicate what contexts were added or removed. | 1112 * A [ContextsChangedEvent] indicate what contexts were added or removed. |
1111 * | 1113 * |
1112 * No context should be added to the event more than once. It does not make | 1114 * No context should be added to the event more than once. It does not make |
1113 * sense, for example, for a context to be both added and removed. | 1115 * sense, for example, for a context to be both added and removed. |
1114 */ | 1116 */ |
1115 class ContextsChangedEvent { | 1117 class ContextsChangedEvent { |
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1325 new DateTime.now().millisecondsSinceEpoch - | 1327 new DateTime.now().millisecondsSinceEpoch - |
1326 request.clientRequestTime; | 1328 request.clientRequestTime; |
1327 requestLatency += latency; | 1329 requestLatency += latency; |
1328 maxLatency = max(maxLatency, latency); | 1330 maxLatency = max(maxLatency, latency); |
1329 if (latency > 150) { | 1331 if (latency > 150) { |
1330 ++slowRequestCount; | 1332 ++slowRequestCount; |
1331 } | 1333 } |
1332 } | 1334 } |
1333 } | 1335 } |
1334 } | 1336 } |
OLD | NEW |