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

Side by Side Diff: pkg/analyzer_plugin/doc/tutorial/assists.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
« no previous file with comments | « no previous file | pkg/analyzer_plugin/doc/tutorial/completion.md » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Providing Quick Assists 1 # Providing Quick Assists
2 2
3 A quick assist is used by clients to provide a set of possible changes to code 3 A quick assist is used by clients to provide a set of possible changes to code
4 that are based on the structure of the code. Quick assists are intended to help 4 that are based on the structure of the code. Quick assists are intended to help
5 users safely make local changes to code when those changes do not require any 5 users safely make local changes to code when those changes do not require any
6 user interaction. (Modifications that require interaction with users or that 6 user interaction. (Modifications that require interaction with users or that
7 touch multiple files are usually implemented as refactorings.) 7 touch multiple files are usually implemented as refactorings.)
8 8
9 For example, if the user has a function whose body consists of a single return 9 For example, if the user has a function whose body consists of a single return
10 statement in a block, server will provide an assist to convert the function body 10 statement in a block, server will provide an assist to convert the function body
(...skipping 20 matching lines...) Expand all
31 That method is responsible for returning a list of `AssistContributor`s. It is 31 That method is responsible for returning a list of `AssistContributor`s. It is
32 the assist contributors that produce the actual assists. (Most plugins will only 32 the assist contributors that produce the actual assists. (Most plugins will only
33 need a single assist contributor.) 33 need a single assist contributor.)
34 34
35 To write an assist contributor, create a class that implements 35 To write an assist contributor, create a class that implements
36 `AssistContributor`. The interface defines a single method named 36 `AssistContributor`. The interface defines a single method named
37 `computeAssists`. The method has two arguments: an `AssistRequest` that 37 `computeAssists`. The method has two arguments: an `AssistRequest` that
38 describes the location at which assists were requested and an `AssistCollector` 38 describes the location at which assists were requested and an `AssistCollector`
39 through which assists are to be added. 39 through which assists are to be added.
40 40
41 If you mix in the class `DartAssistsMixin`, then the request will be an instance
42 of `DartAssistRequest`, which also has analysis results.
43
41 The class `AssistContributorMixin` defines a support method that makes it easier 44 The class `AssistContributorMixin` defines a support method that makes it easier
42 to implement `computeAssists`. 45 to implement `computeAssists`.
43 46
44 ## Example 47 ## Example
45 48
46 Start by creating a class that implements `AssistContributor` and that mixes in 49 Start by creating a class that implements `AssistContributor` and that mixes in
47 the class `AssistContributorMixin`, then implement the method `computeAssists`. 50 the class `AssistContributorMixin`, then implement the method `computeAssists`.
48 This method is typically implemented as a sequence of invocations of methods 51 This method is typically implemented as a sequence of invocations of methods
49 that check to see whether a given assist is appropriate in the context of the 52 that check to see whether a given assist is appropriate in the context of the
50 request 53 request
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 // ... 99 // ...
97 100
98 @override 101 @override
99 List<AssistContributor> getAssistContributors(AnalysisDriver driver) { 102 List<AssistContributor> getAssistContributors(AnalysisDriver driver) {
100 return <AssistContributor>[new MyAssistContributor()]; 103 return <AssistContributor>[new MyAssistContributor()];
101 } 104 }
102 } 105 }
103 ``` 106 ```
104 107
105 [creatingEdits]: creating_edits.md 108 [creatingEdits]: creating_edits.md
OLDNEW
« no previous file with comments | « no previous file | pkg/analyzer_plugin/doc/tutorial/completion.md » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698