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 import 'dart:async'; | 5 import 'dart:async'; |
6 import 'dart:io'; | 6 import 'dart:io'; |
7 import 'dart:math'; | 7 import 'dart:math'; |
8 | 8 |
9 import 'package:analysis_server/src/analysis_server.dart'; | 9 import 'package:analysis_server/src/analysis_server.dart'; |
10 import 'package:analysis_server/src/plugin/server_plugin.dart'; | 10 import 'package:analysis_server/src/plugin/server_plugin.dart'; |
11 import 'package:analysis_server/src/provisional/completion/dart/completion_plugi
n.dart'; | 11 import 'package:analysis_server/src/provisional/completion/dart/completion_plugi
n.dart'; |
12 import 'package:analysis_server/src/server/diagnostic_server.dart'; | 12 import 'package:analysis_server/src/server/diagnostic_server.dart'; |
13 import 'package:analysis_server/src/server/http_server.dart'; | 13 import 'package:analysis_server/src/server/http_server.dart'; |
14 import 'package:analysis_server/src/server/stdio_server.dart'; | 14 import 'package:analysis_server/src/server/stdio_server.dart'; |
15 import 'package:analysis_server/src/socket_server.dart'; | 15 import 'package:analysis_server/src/socket_server.dart'; |
16 import 'package:analysis_server/starter.dart'; | 16 import 'package:analysis_server/starter.dart'; |
17 import 'package:analyzer/file_system/physical_file_system.dart'; | 17 import 'package:analyzer/file_system/physical_file_system.dart'; |
18 import 'package:analyzer/instrumentation/file_instrumentation.dart'; | 18 import 'package:analyzer/instrumentation/file_instrumentation.dart'; |
19 import 'package:analyzer/instrumentation/instrumentation.dart'; | 19 import 'package:analyzer/instrumentation/instrumentation.dart'; |
20 import 'package:analyzer/plugin/resolver_provider.dart'; | 20 import 'package:analyzer/plugin/resolver_provider.dart'; |
| 21 import 'package:analyzer/src/context/builder.dart'; |
21 import 'package:analyzer/src/dart/sdk/sdk.dart'; | 22 import 'package:analyzer/src/dart/sdk/sdk.dart'; |
22 import 'package:analyzer/src/generated/engine.dart'; | 23 import 'package:analyzer/src/generated/engine.dart'; |
23 import 'package:analyzer/src/generated/sdk.dart'; | 24 import 'package:analyzer/src/generated/sdk.dart'; |
24 import 'package:args/args.dart'; | 25 import 'package:args/args.dart'; |
25 import 'package:linter/src/rules.dart' as linter; | 26 import 'package:linter/src/rules.dart' as linter; |
26 import 'package:plugin/manager.dart'; | 27 import 'package:plugin/manager.dart'; |
27 import 'package:plugin/plugin.dart'; | 28 import 'package:plugin/plugin.dart'; |
28 import 'package:telemetry/crash_reporting.dart'; | 29 import 'package:telemetry/crash_reporting.dart'; |
29 import 'package:telemetry/telemetry.dart' as telemetry; | 30 import 'package:telemetry/telemetry.dart' as telemetry; |
30 | 31 |
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
189 * The name of the option used to enable instrumentation. | 190 * The name of the option used to enable instrumentation. |
190 */ | 191 */ |
191 static const String ENABLE_INSTRUMENTATION_OPTION = "enable-instrumentation"; | 192 static const String ENABLE_INSTRUMENTATION_OPTION = "enable-instrumentation"; |
192 | 193 |
193 /** | 194 /** |
194 * The name of the option used to set the file read mode. | 195 * The name of the option used to set the file read mode. |
195 */ | 196 */ |
196 static const String FILE_READ_MODE = "file-read-mode"; | 197 static const String FILE_READ_MODE = "file-read-mode"; |
197 | 198 |
198 /** | 199 /** |
| 200 * The name of the flag used when analyzing the flutter repository. |
| 201 * See comments in source for `flutter analyze --watch`. |
| 202 */ |
| 203 static const FLUTTER_REPO = "flutter-repo"; |
| 204 |
| 205 /** |
199 * The name of the option used to print usage information. | 206 * The name of the option used to print usage information. |
200 */ | 207 */ |
201 static const String HELP_OPTION = "help"; | 208 static const String HELP_OPTION = "help"; |
202 | 209 |
203 /** | 210 /** |
204 * The name of the flag used to configure reporting analytics. | 211 * The name of the flag used to configure reporting analytics. |
205 */ | 212 */ |
206 static const String ANALYTICS_FLAG = "analytics"; | 213 static const String ANALYTICS_FLAG = "analytics"; |
207 | 214 |
208 /** | 215 /** |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
303 analysisServerOptions.useAnalysisHighlight2 = | 310 analysisServerOptions.useAnalysisHighlight2 = |
304 results[USE_ANALYSIS_HIGHLIGHT2]; | 311 results[USE_ANALYSIS_HIGHLIGHT2]; |
305 analysisServerOptions.fileReadMode = results[FILE_READ_MODE]; | 312 analysisServerOptions.fileReadMode = results[FILE_READ_MODE]; |
306 analysisServerOptions.newAnalysisDriverLog = | 313 analysisServerOptions.newAnalysisDriverLog = |
307 results[NEW_ANALYSIS_DRIVER_LOG]; | 314 results[NEW_ANALYSIS_DRIVER_LOG]; |
308 analysisServerOptions.clientId = results[CLIENT_ID]; | 315 analysisServerOptions.clientId = results[CLIENT_ID]; |
309 analysisServerOptions.clientVersion = results[CLIENT_VERSION]; | 316 analysisServerOptions.clientVersion = results[CLIENT_VERSION]; |
310 analysisServerOptions.enableVerboseFlutterCompletions = | 317 analysisServerOptions.enableVerboseFlutterCompletions = |
311 results[VERBOSE_FLUTTER_COMPLETIONS]; | 318 results[VERBOSE_FLUTTER_COMPLETIONS]; |
312 | 319 |
| 320 ContextBuilderOptions.flutterRepo = results[FLUTTER_REPO]; |
| 321 |
313 telemetry.Analytics analytics = telemetry.createAnalyticsInstance( | 322 telemetry.Analytics analytics = telemetry.createAnalyticsInstance( |
314 'UA-26406144-29', 'analysis-server', | 323 'UA-26406144-29', 'analysis-server', |
315 disableForSession: results[SUPPRESS_ANALYTICS_FLAG]); | 324 disableForSession: results[SUPPRESS_ANALYTICS_FLAG]); |
316 analysisServerOptions.analytics = analytics; | 325 analysisServerOptions.analytics = analytics; |
317 | 326 |
318 if (analysisServerOptions.clientId != null) { | 327 if (analysisServerOptions.clientId != null) { |
319 // Record the client name as the application installer ID. | 328 // Record the client name as the application installer ID. |
320 analytics.setSessionValue('aiid', analysisServerOptions.clientId); | 329 analytics.setSessionValue('aiid', analysisServerOptions.clientId); |
321 } | 330 } |
322 if (analysisServerOptions.clientVersion != null) { | 331 if (analysisServerOptions.clientVersion != null) { |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
478 CommandLineParser _createArgParser() { | 487 CommandLineParser _createArgParser() { |
479 CommandLineParser parser = | 488 CommandLineParser parser = |
480 new CommandLineParser(alwaysIgnoreUnrecognized: true); | 489 new CommandLineParser(alwaysIgnoreUnrecognized: true); |
481 parser.addOption(CLIENT_ID, | 490 parser.addOption(CLIENT_ID, |
482 help: "an identifier used to identify the client"); | 491 help: "an identifier used to identify the client"); |
483 parser.addOption(CLIENT_VERSION, help: "the version of the client"); | 492 parser.addOption(CLIENT_VERSION, help: "the version of the client"); |
484 parser.addFlag(ENABLE_INSTRUMENTATION_OPTION, | 493 parser.addFlag(ENABLE_INSTRUMENTATION_OPTION, |
485 help: "enable sending instrumentation information to a server", | 494 help: "enable sending instrumentation information to a server", |
486 defaultsTo: false, | 495 defaultsTo: false, |
487 negatable: false); | 496 negatable: false); |
| 497 parser.addFlag(FLUTTER_REPO, |
| 498 help: 'used by "flutter analyze" to enable specific lints' |
| 499 ' when analyzing the flutter repository', |
| 500 hide: false); |
488 parser.addFlag(HELP_OPTION, | 501 parser.addFlag(HELP_OPTION, |
489 help: "print this help message without starting a server", | 502 help: "print this help message without starting a server", |
490 abbr: 'h', | 503 abbr: 'h', |
491 defaultsTo: false, | 504 defaultsTo: false, |
492 negatable: false); | 505 negatable: false); |
493 parser.addOption(INSTRUMENTATION_LOG_FILE, | 506 parser.addOption(INSTRUMENTATION_LOG_FILE, |
494 help: "write instrumentation data to the given file"); | 507 help: "write instrumentation data to the given file"); |
495 parser.addFlag(INTERNAL_PRINT_TO_CONSOLE, | 508 parser.addFlag(INTERNAL_PRINT_TO_CONSOLE, |
496 help: "enable sending `print` output to the console", | 509 help: "enable sending `print` output to the console", |
497 defaultsTo: false, | 510 defaultsTo: false, |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
613 | 626 |
614 _DiagnosticServerImpl(); | 627 _DiagnosticServerImpl(); |
615 | 628 |
616 @override | 629 @override |
617 Future<int> getServerPort() => httpServer.serveHttp(); | 630 Future<int> getServerPort() => httpServer.serveHttp(); |
618 | 631 |
619 Future startOnPort(int port) { | 632 Future startOnPort(int port) { |
620 return httpServer.serveHttp(port); | 633 return httpServer.serveHttp(port); |
621 } | 634 } |
622 } | 635 } |
OLD | NEW |