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

Side by Side Diff: pkg/analyzer_plugin/doc/tutorial/fixes.md

Issue 2998083002: Minor enhancement to the plugin tutorials (Closed)
Patch Set: Created 3 years, 4 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
OLDNEW
1 # Providing Quick Fixes 1 # Providing Quick Fixes
2 2
3 A quick fix is used by clients to provide a set of possible changes to code that 3 A quick fix is used by clients to provide a set of possible changes to code that
4 are based on diagnostics reported against the code. Quick fixes are intended to 4 are based on diagnostics reported against the code. Quick fixes are intended to
5 help users resolve the issue being reported. 5 help users resolve the issue being reported.
6 6
7 If your plugin generates any diagnostics then you should consider providing 7 If your plugin generates any diagnostics then you should consider providing
8 support for automatically fixing those diagnostics. There is often more than one 8 support for automatically fixing those diagnostics. There is often more than one
9 potential way of fixing a given problem, so it is possible for your plugin to 9 potential way of fixing a given problem, so it is possible for your plugin to
10 provide multiple fixes for a single problem. 10 provide multiple fixes for a single problem.
(...skipping 30 matching lines...) Expand all
41 and `DartFixesMixin` (from `package:analyzer_plugin/plugin/fix_mixin.dart`) to 41 and `DartFixesMixin` (from `package:analyzer_plugin/plugin/fix_mixin.dart`) to
42 the list of mixins for your subclass of `ServerPlugin`. This will leave you with 42 the list of mixins for your subclass of `ServerPlugin`. This will leave you with
43 one abstract method that you need to implement: `getFixContributors`. That 43 one abstract method that you need to implement: `getFixContributors`. That
44 method is responsible for returning a list of `FixContributor`s. It is the fix 44 method is responsible for returning a list of `FixContributor`s. It is the fix
45 contributors that produce the actual fixes. (Most plugins will only need a 45 contributors that produce the actual fixes. (Most plugins will only need a
46 single fix contributor.) 46 single fix contributor.)
47 47
48 To write a fix contributor, create a class that implements `FixContributor`. The 48 To write a fix contributor, create a class that implements `FixContributor`. The
49 interface defines a single method named `computeFixes`. The method has two 49 interface defines a single method named `computeFixes`. The method has two
50 arguments: a `FixesRequest` that describes the errors that should be fixed and a 50 arguments: a `FixesRequest` that describes the errors that should be fixed and a
51 `FixCollector` through which fixes are to be added. (If you use the mixins above 51 `FixCollector` through which fixes are to be added.
52 then the list of errors available through the request object will only include 52
53 the errors for which fixes should be returned.) 53 If you mix in the class `DartFixesMixin`, then the list of errors available
54 through the request object will only include the errors for which fixes should
55 be returned and the request will be an instance of `DartFixesRequest`, which
56 also has analysis results.
54 57
55 The class `FixContributorMixin` defines a simple implementation of this method 58 The class `FixContributorMixin` defines a simple implementation of this method
56 that captures the two arguments in fields, iterates through the errors, and 59 that captures the two arguments in fields, iterates through the errors, and
57 invokes a method named `computeFixesForError` for each of the errors for which 60 invokes a method named `computeFixesForError` for each of the errors for which
58 fixes are to be computed. 61 fixes are to be computed.
59 62
60 ## Example 63 ## Example
61 64
62 Start by creating a class that implements `FixContributor` and that mixes in the 65 Start by creating a class that implements `FixContributor` and that mixes in the
63 class `FixContributorMixin`, then implement the method `computeFixesForError`. 66 class `FixContributorMixin`, then implement the method `computeFixesForError`.
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 115
113 @override 116 @override
114 List<FixContributor> getFixContributors( 117 List<FixContributor> getFixContributors(
115 AnalysisDriverGeneric driver) { 118 AnalysisDriverGeneric driver) {
116 return <FixContributor>[new MyFixContributor()]; 119 return <FixContributor>[new MyFixContributor()];
117 } 120 }
118 } 121 }
119 ``` 122 ```
120 123
121 [creatingEdits]: creating_edits.md 124 [creatingEdits]: creating_edits.md
OLDNEW
« no previous file with comments | « pkg/analyzer_plugin/doc/tutorial/completion.md ('k') | pkg/analyzer_plugin/doc/tutorial/navigation.md » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698