| OLD | NEW |
| 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2017, 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 'package:analyzer/file_system/file_system.dart'; | 5 import 'package:analyzer/file_system/file_system.dart'; |
| 6 import 'package:yaml/yaml.dart'; | 6 import 'package:yaml/yaml.dart'; |
| 7 | 7 |
| 8 /** | 8 /** |
| 9 * An object used to locate a plugin within a package. | 9 * An object used to locate a plugin within a package. |
| 10 */ | 10 */ |
| 11 class PluginLocator { | 11 class PluginLocator { |
| 12 /** | 12 /** |
| 13 * The key used in the `pubspec.yaml` file to specify the location of the | 13 * The key used in the `pubspec.yaml` file to specify the location of the |
| 14 * analysis plugin. | 14 * analysis plugin. |
| 15 */ | 15 */ |
| 16 static const String analysisPluginKey = 'analysis_plugin'; | 16 static const String analyzerPluginKey = 'analyzer_plugin'; |
| 17 | 17 |
| 18 /** | 18 /** |
| 19 * The name of the default plugin directory, located within the `tools` | 19 * The name of the default plugin directory, located within the `tools` |
| 20 * directory. | 20 * directory. |
| 21 */ | 21 */ |
| 22 static const String defaultPluginFolderName = 'analysis_plugin'; | 22 static const String defaultPluginFolderName = 'analyzer_plugin'; |
| 23 | 23 |
| 24 /** | 24 /** |
| 25 * The name of the `pubspec.yaml` file. | 25 * The name of the `pubspec.yaml` file. |
| 26 */ | 26 */ |
| 27 static const String pubspecFileName = 'pubspec.yaml'; | 27 static const String pubspecFileName = 'pubspec.yaml'; |
| 28 | 28 |
| 29 /** | 29 /** |
| 30 * The name of the `tools` directory, in which the default plugin directory is | 30 * The name of the `tools` directory, in which the default plugin directory is |
| 31 * located. | 31 * located. |
| 32 */ | 32 */ |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 72 */ | 72 */ |
| 73 String _findPlugin(String packageRoot) { | 73 String _findPlugin(String packageRoot) { |
| 74 Folder packageFolder = resourceProvider.getFolder(packageRoot); | 74 Folder packageFolder = resourceProvider.getFolder(packageRoot); |
| 75 File pubspecFile = packageFolder.getChildAssumingFile(pubspecFileName); | 75 File pubspecFile = packageFolder.getChildAssumingFile(pubspecFileName); |
| 76 if (pubspecFile.exists) { | 76 if (pubspecFile.exists) { |
| 77 try { | 77 try { |
| 78 YamlDocument document = loadYamlDocument(pubspecFile.readAsStringSync(), | 78 YamlDocument document = loadYamlDocument(pubspecFile.readAsStringSync(), |
| 79 sourceUrl: pubspecFile.toUri()); | 79 sourceUrl: pubspecFile.toUri()); |
| 80 YamlNode contents = document.contents; | 80 YamlNode contents = document.contents; |
| 81 if (contents is YamlMap) { | 81 if (contents is YamlMap) { |
| 82 String pluginPath = contents[analysisPluginKey]; | 82 String pluginPath = contents[analyzerPluginKey]; |
| 83 if (pluginPath != null) { | 83 if (pluginPath != null) { |
| 84 Folder pluginFolder = | 84 Folder pluginFolder = |
| 85 packageFolder.getChildAssumingFolder(pluginPath); | 85 packageFolder.getChildAssumingFolder(pluginPath); |
| 86 if (pluginFolder.exists) { | 86 if (pluginFolder.exists) { |
| 87 return pluginFolder.path; | 87 return pluginFolder.path; |
| 88 } | 88 } |
| 89 } | 89 } |
| 90 } | 90 } |
| 91 } catch (exception) { | 91 } catch (exception) { |
| 92 // If we can't read the file, or if it isn't valid YAML, then ignore it. | 92 // If we can't read the file, or if it isn't valid YAML, then ignore it. |
| 93 } | 93 } |
| 94 } | 94 } |
| 95 Folder pluginFolder = packageFolder | 95 Folder pluginFolder = packageFolder |
| 96 .getChildAssumingFolder(toolsFolderName) | 96 .getChildAssumingFolder(toolsFolderName) |
| 97 .getChildAssumingFolder(defaultPluginFolderName); | 97 .getChildAssumingFolder(defaultPluginFolderName); |
| 98 if (pluginFolder.exists) { | 98 if (pluginFolder.exists) { |
| 99 return pluginFolder.path; | 99 return pluginFolder.path; |
| 100 } | 100 } |
| 101 return null; | 101 return null; |
| 102 } | 102 } |
| 103 } | 103 } |
| OLD | NEW |