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

Side by Side Diff: analyzer/lib/src/plugin/command_line_plugin.dart

Issue 1400473008: Roll Observatory packages and add a roll script (Closed) Base URL: git@github.com:dart-lang/observatory_pub_packages.git@master
Patch Set: Created 5 years, 2 months 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 unified diff | Download patch
« no previous file with comments | « analyzer/lib/src/generated/visitors.dart ('k') | analyzer/lib/src/plugin/engine_plugin.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
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.
4
5 library analyzer.src.plugin.command_line_plugin;
6
7 import 'package:analyzer/plugin/command_line.dart';
8 import 'package:plugin/plugin.dart';
9
10 /**
11 * A plugin that defines the extension points and extensions that are defined by
12 * command-line applications using the analysis engine.
13 */
14 class CommandLinePlugin implements Plugin {
15 /**
16 * The simple identifier of the extension point that allows plugins to
17 * register new parser contributors.
18 */
19 static const String PARSER_CONTRIBUTOR_EXTENSION_POINT = 'parserContributor';
20
21 /**
22 * The simple identifier of the extension point that allows plugins to
23 * register new result processors.
24 */
25 static const String RESULT_PROCESSOR_EXTENSION_POINT = 'resultProcessor';
26
27 /**
28 * The unique identifier of this plugin.
29 */
30 static const String UNIQUE_IDENTIFIER = 'command_line.core';
31
32 /**
33 * The extension point that allows plugins to register new parser
34 * contributors.
35 */
36 ExtensionPoint parserContributorExtensionPoint;
37
38 /**
39 * The extension point that allows plugins to register new result processors.
40 */
41 ExtensionPoint resultProcessorExtensionPoint;
42
43 /**
44 * Initialize a newly created plugin.
45 */
46 CommandLinePlugin();
47
48 /**
49 * Return a list containing all of the parser contributors that were
50 * contributed.
51 */
52 List<ArgParserContributor> get parserContributors =>
53 parserContributorExtensionPoint.extensions;
54
55 /**
56 * Return a list containing all of the result processors that were
57 * contributed.
58 */
59 List<ArgResultsProcessor> get resultProcessors =>
60 resultProcessorExtensionPoint.extensions;
61
62 @override
63 String get uniqueIdentifier => UNIQUE_IDENTIFIER;
64
65 @override
66 void registerExtensionPoints(RegisterExtensionPoint registerExtensionPoint) {
67 parserContributorExtensionPoint = registerExtensionPoint(
68 PARSER_CONTRIBUTOR_EXTENSION_POINT,
69 _validateParserContributorExtension);
70 resultProcessorExtensionPoint = registerExtensionPoint(
71 RESULT_PROCESSOR_EXTENSION_POINT, _validateResultProcessorExtension);
72 }
73
74 @override
75 void registerExtensions(RegisterExtension registerExtension) {
76 // There are no default extensions.
77 }
78
79 /**
80 * Validate the given extension by throwing an [ExtensionError] if it is not a
81 * valid parser contributor.
82 */
83 void _validateParserContributorExtension(Object extension) {
84 if (extension is! ArgParserContributor) {
85 String id = parserContributorExtensionPoint.uniqueIdentifier;
86 throw new ExtensionError(
87 'Extensions to $id must be an ArgParserContributor');
88 }
89 }
90
91 /**
92 * Validate the given extension by throwing an [ExtensionError] if it is not a
93 * valid result processor.
94 */
95 void _validateResultProcessorExtension(Object extension) {
96 if (extension is! ArgResultsProcessor) {
97 String id = resultProcessorExtensionPoint.uniqueIdentifier;
98 throw new ExtensionError(
99 'Extensions to $id must be an ArgResultsProcessor');
100 }
101 }
102 }
OLDNEW
« no previous file with comments | « analyzer/lib/src/generated/visitors.dart ('k') | analyzer/lib/src/plugin/engine_plugin.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698