| # Getting Started | |
| ## Creating a Minimal Plugin | |
| To implement a plugin, start by creating a simple package and create a class | |
| that is a subclass of `ServerPlugin`. This class will need to implement a | |
| constructor, three getters, and two methods. The getters provide some basic | |
| information about your plugin: the name and version, both of which are included | |
| in error messages if there is a problem encountered, and a list of glob patterns | |
| for the files that the plugin cares about. The methods ... | |
| Here's an example of what a minimal plugin might look like. | |
| ```dart | |
| class MyPlugin extends ServerPlugin { | |
| MyPlugin(ResourceProvider provider) : super(provider); | |
| @override | |
| List<String> get fileGlobsToAnalyze => <String>['**/*.dart']; | |
| @override | |
| String get name => 'My fantastic plugin'; | |
| @override | |
| String get version => '1.0.0'; | |
| @override | |
| AnalysisDriverGeneric createAnalysisDriver(ContextRoot contextRoot) { | |
| // TODO: implement createAnalysisDriver | |
| return null; | |
| } | |
| @override | |
| void sendNotificationsForSubscriptions( | |
| Map<String, List<AnalysisService>> subscriptions) { | |
| // TODO: implement sendNotificationsForSubscriptions | |
| } | |
| } | |
| ``` |