OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 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 | 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 /** | 5 /** |
6 * Support for client code that extends the analysis server by adding new index | 6 * Support for client code that extends the analysis server by adding new index |
7 * contributors. | 7 * contributors. |
| 8 * |
| 9 * Plugins can register index contributors. The registered contributors will be |
| 10 * used to contribute relationships to the index when the analysis of a file has |
| 11 * been completed. |
| 12 * |
| 13 * Typical relationships include things like "this variable is referenced here" |
| 14 * or "this method is invoked here". The index is used to improve the |
| 15 * performance of operations such as search or building a type hierarchy by |
| 16 * pre-computing some of the information needed by those operations. |
| 17 * |
| 18 * If a plugin wants to contribute information to the index, it should implement |
| 19 * the class [IndexContributor] and then register the contributor by including |
| 20 * code like the following in the plugin's registerExtensions method: |
| 21 * |
| 22 * @override |
| 23 * void registerExtensions(RegisterExtension registerExtension) { |
| 24 * ... |
| 25 * registerExtension( |
| 26 * INDEX_CONTRIBUTOR_EXTENSION_POINT_ID, |
| 27 * new MyIndexContributor()); |
| 28 * ... |
| 29 * } |
8 */ | 30 */ |
9 library analysis_server.plugin.index; | 31 library analysis_server.plugin.index; |
10 | 32 |
11 import 'package:analysis_server/analysis/index/index_core.dart'; | 33 import 'package:analysis_server/analysis/index/index_core.dart'; |
12 import 'package:analysis_server/src/plugin/server_plugin.dart'; | 34 import 'package:analysis_server/src/plugin/server_plugin.dart'; |
13 import 'package:plugin/plugin.dart'; | 35 import 'package:plugin/plugin.dart'; |
14 | 36 |
15 /** | 37 /** |
16 * The identifier of the extension point that allows plugins to register index | 38 * The identifier of the extension point that allows plugins to register index |
17 * contributors. The object used as an extension must be an [IndexContributor]. | 39 * contributors. The object used as an extension must be an [IndexContributor]. |
18 */ | 40 */ |
19 final String INDEX_CONTRIBUTOR_EXTENSION_POINT_ID = Plugin.join( | 41 final String INDEX_CONTRIBUTOR_EXTENSION_POINT_ID = Plugin.join( |
20 ServerPlugin.UNIQUE_IDENTIFIER, | 42 ServerPlugin.UNIQUE_IDENTIFIER, |
21 ServerPlugin.INDEX_CONTRIBUTOR_EXTENSION_POINT); | 43 ServerPlugin.INDEX_CONTRIBUTOR_EXTENSION_POINT); |
OLD | NEW |