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

Side by Side Diff: pkg/analyzer_plugin/doc/api.html

Issue 2664213003: Add the generator and the generated files (Closed)
Patch Set: add missed files Created 3 years, 10 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/lib/protocol/generated_protocol.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 <!DOCTYPE html><html><head>
2 <meta charset="UTF-8">
3 <title>Analysis Server Plugin API Specification</title>
4 <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code +Pro|Roboto:500,400italic,300,400" type="text/css"><style>body {
5 font-family: 'Roboto', sans-serif;
6 max-width: 800px;
7 margin: 0 auto;
8 padding: 0 16px;
9 font-size: 16px;
10 line-height: 1.5;
11 color: #111;
12 background-color: #fdfdfd;
13 font-weight: 300;
14 -webkit-font-smoothing: auto;
15 }
16
17 h1 {
18 text-align: center;
19 }
20
21 h2, h3, h4, h5 {
22 margin-bottom: 0;
23 }
24
25 h2.domain {
26 border-bottom: 1px solid rgb(200, 200, 200);
27 margin-bottom: 0.5em;
28 }
29
30 h4 {
31 font-size: 18px;
32 }
33
34 h5 {
35 font-size: 16px;
36 }
37
38 p {
39 margin-top: 0;
40 }
41
42 pre {
43 margin: 0;
44 font-family: 'Source Code Pro', monospace;
45 font-size: 15px;
46 }
47
48 div.box {
49 background-color: rgb(240, 245, 240);
50 border-radius: 4px;
51 padding: 4px 12px;
52 margin: 16px 0;
53 }
54
55 div.hangingIndent {
56 padding-left: 3em;
57 text-indent: -3em;
58 }
59
60 dl dt {
61 font-weight: bold;
62 }
63
64 dl dd {
65 margin-left: 16px;
66 }
67
68 dt {
69 margin-top: 1em;
70 }
71
72 dt.notification {
73 font-weight: bold;
74 }
75
76 dt.refactoring {
77 font-weight: bold;
78 }
79
80 dt.request {
81 font-weight: bold;
82 }
83
84 dt.typeDefinition {
85 font-weight: bold;
86 }
87
88 a {
89 text-decoration: none;
90 }
91
92 a:focus, a:hover {
93 text-decoration: underline;
94 }
95
96 /* Styles for index */
97
98 .subindex {
99 }
100
101 .subindex ul {
102 padding-left: 0;
103 margin-left: 0;
104
105 -webkit-margin-before: 0;
106 -webkit-margin-start: 0;
107 -webkit-padding-start: 0;
108
109 list-style-type: none;
110 }
111 </style></head>
112 <body>
113 <h1>Analysis Server Plugin API Specification</h1>
114 <h1 style="color:#999999">Version
115 1.0.0-alpha.0
116 </h1>
117 <p>
118 This document contains a specification of the API used by the analysis
119 server to communicate with analysis server plugins. Changes to the API will be
120 accompanied by an update to the protocol version number according to the
121 principles of semantic versioning
122 (<a href="http://semver.org/">semver.org</a>).
123 </p>
124 <h2>Overview</h2>
125 <p>
126 TBD
127 </p>
128 <h2 class="domain"><a name="domain_plugin">plugin domain</a></h2>
129 <p>
130 The plugin domain contains API’s related to the execution of a plugin.
131 </p>
132 <p>
133 TODO: Provide notifications by which plugins can report instrumentation
134 and/or DartSilo data.
135 </p>
136 <p>
137 TODO: Add a notification to the server protocol to inform the client of
138 problems related to the execution of plugins.
139 </p>
140
141
142
143 <h3>Requests</h3><dl><dt class="request"><a name="request_plugin.versionCheck">p lugin.versionCheck</a> (<a href="#request_plugin.versionCheck">#</a>)</dt><dd><d iv class="box"><pre>request: {
144 "id": String
145 "method": "plugin.versionCheck"
146 "params": {
147 "<b>version</b>": String
148 }
149 }</pre><br><pre>response: {
150 "id": String
151 "error": <span style="color:#999999">optional</span> <a href="#type_RequestErr or">RequestError</a>
152 "result": {
153 "<b>isCompatible</b>": bool
154 "<b>name</b>": String
155 "<b>version</b>": String
156 "<b>email</b>": <span style="color:#999999">optional</span> String
157 "<b>interestingFiles</b>": List&lt;String&gt;
158 }
159 }</pre></div>
160 <p>
161 Used to request that the plugin perform a version check to confirm that it
162 works with the version of the analysis server that is executing it.
163 </p>
164
165
166 <h4>parameters:</h4><dl><dt class="field"><b>version (String)</b></dt><dd>
167
168 <p>
169 The version number of the plugin spec supported by the analysis server
170 that is executing the plugin.
171 </p>
172 </dd></dl><h4>returns:</h4><dl><dt class="field"><b>isCompatible (bool)</b ></dt><dd>
173
174 <p>
175 A flag indicating whether the plugin supports the same version of the
176 plugin spec as the analysis server. If the value is <tt>false</tt>,
177 then the plugin is expected to shutdown after returning the response.
178 </p>
179 </dd><dt class="field"><b>name (String)</b></dt><dd>
180
181 <p>
182 The name of the plugin. This value is only used when the server needs
183 to identify the plugin, either to the user or for debugging purposes.
184 </p>
185 </dd><dt class="field"><b>version (String)</b></dt><dd>
186
187 <p>
188 The version of the plugin. This value is only used when the server
189 needs to identify the plugin, either to the user or for debugging
190 purposes.
191 </p>
192 </dd><dt class="field"><b>email (<span style="color:#999999">optional</spa n> String)</b></dt><dd>
193
194 <p>
195 An e-mail address that either the client or the user can use to
196 contact the maintainers of the plugin when there is a problem.
197 </p>
198 </dd><dt class="field"><b>interestingFiles (List&lt;String&gt;)</b></dt><d d>
199
200 <p>
201 The glob patterns of the files for which the plugin will provide
202 information. This value is ignored if the <tt>isCompatible</tt>
203 field is <tt>false</tt>. Otherwise, it will be used to identify
204 the files for which the plugin should be notified of changes.
205 </p>
206 </dd></dl></dd><dt class="request"><a name="request_plugin.shutdown">plugi n.shutdown</a> (<a href="#request_plugin.shutdown">#</a>)</dt><dd><div class="bo x"><pre>request: {
207 "id": String
208 "method": "plugin.shutdown"
209 }</pre><br><pre>response: {
210 "id": String
211 "error": <span style="color:#999999">optional</span> <a href="#type_RequestErr or">RequestError</a>
212 }</pre></div>
213 <p>
214 Used to request that the plugin exit. The server will not send any other
215 requests after this request. The plugin should not send any responses or
216 notifications after sending the response to this request.
217 </p>
218 </dd></dl><h3>Notifications</h3><dl><dt class="notification"><a name="notifica tion_plugin.error">plugin.error</a> (<a href="#notification_plugin.error">#</a>) </dt><dd><div class="box"><pre>notification: {
219 "event": "plugin.error"
220 "params": {
221 "<b>isFatal</b>": bool
222 "<b>message</b>": String
223 "<b>stackTrace</b>": String
224 }
225 }</pre></div>
226 <p>
227 Used to report that an unexpected error has occurred while executing the
228 plugin. This notification is not used for problems with specific requests
229 (which should be returned as part of the response) but is used for
230 exceptions that occur while performing other tasks, such as analysis or
231 preparing notifications.
232 </p>
233
234 <h4>parameters:</h4><dl><dt class="field"><b>isFatal (bool)</b></dt><dd>
235
236 <p>
237 A flag indicating whether the error is a fatal error, meaning that the
238 plugin will shutdown automatically after sending this notification. If
239 <tt>true</tt>, the server will not expect any other responses or
240 notifications from the plugin.
241 </p>
242 </dd><dt class="field"><b>message (String)</b></dt><dd>
243
244 <p>
245 The error message indicating what kind of error was encountered.
246 </p>
247 </dd><dt class="field"><b>stackTrace (String)</b></dt><dd>
248
249 <p>
250 The stack trace associated with the generation of the error, used for
251 debugging the plugin.
252 </p>
253 </dd></dl></dd></dl>
254 <h2 class="domain"><a name="domain_analysis">analysis domain</a></h2>
255 <p>
256 The analysis domain contains API’s related to the analysis of files.
257 </p>
258
259
260
261
262
263
264
265
266
267
268
269
270
271 <h3>Requests</h3><dl><dt class="request"><a name="request_analysis.handleWatchEv ents">analysis.handleWatchEvents</a> (<a href="#request_analysis.handleWatchEven ts">#</a>)</dt><dd><div class="box"><pre>request: {
272 "id": String
273 "method": "analysis.handleWatchEvents"
274 "params": {
275 "<b>events</b>": List&lt;<a href="#type_WatchEvent">WatchEvent</a>&gt;
276 }
277 }</pre><br><pre>response: {
278 "id": String
279 "error": <span style="color:#999999">optional</span> <a href="#type_RequestErr or">RequestError</a>
280 }</pre></div>
281 <p>
282 Used to inform the plugin of changes to files in the file system. Only
283 events associated with files that match the <tt>interestingFiles</tt> glob
284 patterns will be forwarded to the plugin.
285 </p>
286
287 <h4>parameters:</h4><dl><dt class="field"><b>events (List&lt;<a href="#type_Wa tchEvent">WatchEvent</a>&gt;)</b></dt><dd>
288
289 <p>
290 The watch events that the plugin should handle.
291 </p>
292 </dd></dl></dd><dt class="request"><a name="request_analysis.reanalyze">an alysis.reanalyze</a> (<a href="#request_analysis.reanalyze">#</a>)</dt><dd><div class="box"><pre>request: {
293 "id": String
294 "method": "analysis.reanalyze"
295 "params": {
296 "<b>roots</b>": <span style="color:#999999">optional</span> List&lt;<a href= "#type_FilePath">FilePath</a>&gt;
297 }
298 }</pre><br><pre>response: {
299 "id": String
300 "error": <span style="color:#999999">optional</span> <a href="#type_RequestErr or">RequestError</a>
301 }</pre></div>
302 <p>
303 Used to force the re-analysis of everything contained in the specified
304 context roots. This should cause all previously computed analysis results
305 to be discarded and recomputed, and should cause all subscribed
306 notifications to be re-sent.
307 </p>
308
309 <h4>parameters:</h4><dl><dt class="field"><b>roots (<span style="color:#999999 ">optional</span> List&lt;<a href="#type_FilePath">FilePath</a>&gt;)</b></dt><dd >
310
311 <p>
312 A list of the context roots that are to be re-analyzed.
313 </p>
314 <p>
315 If no context roots are provided, then all current context roots
316 should be re-analyzed.
317 </p>
318 </dd></dl></dd><dt class="request"><a name="request_analysis.setContextBui lderOptions">analysis.setContextBuilderOptions</a> (<a href="#request_analysis.s etContextBuilderOptions">#</a>)</dt><dd><div class="box"><pre>request: {
319 "id": String
320 "method": "analysis.setContextBuilderOptions"
321 "params": {
322 "<b>options</b>": <a href="#type_ContextBuilderOptions">ContextBuilderOption s</a>
323 }
324 }</pre><br><pre>response: {
325 "id": String
326 "error": <span style="color:#999999">optional</span> <a href="#type_RequestErr or">RequestError</a>
327 }</pre></div>
328 <p>
329 Used to set the options used to build analysis contexts. This request will
330 be sent exactly once before any context roots have been specified.
331 </p>
332
333 <h4>parameters:</h4><dl><dt class="field"><b>options (<a href="#type_ContextBu ilderOptions">ContextBuilderOptions</a>)</b></dt><dd>
334
335 <p>
336 The options used to build the analysis contexts.
337 </p>
338 </dd></dl></dd><dt class="request"><a name="request_analysis.setContextRoo ts">analysis.setContextRoots</a> (<a href="#request_analysis.setContextRoots">#< /a>)</dt><dd><div class="box"><pre>request: {
339 "id": String
340 "method": "analysis.setContextRoots"
341 "params": {
342 "<b>roots</b>": List&lt;<a href="#type_ContextRoot">ContextRoot</a>&gt;
343 }
344 }</pre><br><pre>response: {
345 "id": String
346 "error": <span style="color:#999999">optional</span> <a href="#type_RequestErr or">RequestError</a>
347 }</pre></div>
348 <p>
349 Set the list of context roots that should be analyzed.
350 </p>
351
352 <h4>parameters:</h4><dl><dt class="field"><b>roots (List&lt;<a href="#type_Con textRoot">ContextRoot</a>&gt;)</b></dt><dd>
353
354 <p>
355 A list of the context roots that should be analyzed.
356 </p>
357 </dd></dl></dd><dt class="request"><a name="request_analysis.setPriorityFi les">analysis.setPriorityFiles</a> (<a href="#request_analysis.setPriorityFiles" >#</a>)</dt><dd><div class="box"><pre>request: {
358 "id": String
359 "method": "analysis.setPriorityFiles"
360 "params": {
361 "<b>files</b>": List&lt;<a href="#type_FilePath">FilePath</a>&gt;
362 }
363 }</pre><br><pre>response: {
364 "id": String
365 "error": <span style="color:#999999">optional</span> <a href="#type_RequestErr or">RequestError</a>
366 }</pre></div>
367 <p>
368 Used to set the priority files to the files in the given list. A priority
369 file is a file that should be given priority when scheduling which
370 analysis work to do first. The list typically contains those files that
371 are visible to the user and those for which analysis results will have the
372 biggest impact on the user experience. The order of the files within the
373 list is significant: the first file will be given higher priority than
374 the second, the second higher priority than the third, and so on.
375 </p>
376
377 <h4>parameters:</h4><dl><dt class="field"><b>files (List&lt;<a href="#type_Fil ePath">FilePath</a>&gt;)</b></dt><dd>
378
379 <p>
380 The files that are to be a priority for analysis.
381 </p>
382 </dd></dl></dd><dt class="request"><a name="request_analysis.setSubscripti ons">analysis.setSubscriptions</a> (<a href="#request_analysis.setSubscriptions" >#</a>)</dt><dd><div class="box"><pre>request: {
383 "id": String
384 "method": "analysis.setSubscriptions"
385 "params": {
386 "<b>subscriptions</b>": Map&lt;<a href="#type_AnalysisService">AnalysisServi ce</a>, List&lt;<a href="#type_FilePath">FilePath</a>&gt;&gt;
387 }
388 }</pre><br><pre>response: {
389 "id": String
390 "error": <span style="color:#999999">optional</span> <a href="#type_RequestErr or">RequestError</a>
391 }</pre></div>
392 <p>
393 Used to subscribe for services that are specific to individual files. All
394 previous subscriptions should be replaced by the current set of
395 subscriptions. If a given service is not included as a key in the map then
396 no files should be subscribed to the service, exactly as if the service
397 had been included in the map with an explicit empty list of files.
398 </p>
399
400 <h4>parameters:</h4><dl><dt class="field"><b>subscriptions (Map&lt;<a href="#t ype_AnalysisService">AnalysisService</a>, List&lt;<a href="#type_FilePath">FileP ath</a>&gt;&gt;)</b></dt><dd>
401
402 <p>
403 A table mapping services to a list of the files being subscribed to
404 the service.
405 </p>
406 </dd></dl></dd><dt class="request"><a name="request_analysis.updateContent ">analysis.updateContent</a> (<a href="#request_analysis.updateContent">#</a>)</ dt><dd><div class="box"><pre>request: {
407 "id": String
408 "method": "analysis.updateContent"
409 "params": {
410 "<b>files</b>": Map&lt;<a href="#type_FilePath">FilePath</a>, <a href="#type _AddContentOverlay">AddContentOverlay</a> | <a href="#type_ChangeContentOverlay" >ChangeContentOverlay</a> | <a href="#type_RemoveContentOverlay">RemoveContentOv erlay</a>&gt;
411 }
412 }</pre><br><pre>response: {
413 "id": String
414 "error": <span style="color:#999999">optional</span> <a href="#type_RequestErr or">RequestError</a>
415 }</pre></div>
416 <p>
417 Used to update the content of one or more files. Files that were
418 previously updated but not included in this update remain unchanged. This
419 effectively represents an overlay of the filesystem. The files whose
420 content is overridden are therefore seen by the plugin as being files with
421 the given content, even if the files do not exist on the filesystem or if
422 the file path represents the path to a directory on the filesystem.
423 </p>
424
425 <h4>parameters:</h4><dl><dt class="field"><b>files (Map&lt;<a href="#type_File Path">FilePath</a>, <a href="#type_AddContentOverlay">AddContentOverlay</a> | <a href="#type_ChangeContentOverlay">ChangeContentOverlay</a> | <a href="#type_Rem oveContentOverlay">RemoveContentOverlay</a>&gt;)</b></dt><dd>
426
427 <p>
428 A table mapping the files whose content has changed to a description
429 of the content change.
430 </p>
431 </dd></dl></dd></dl><h3>Notifications</h3><dl><dt class="notification"><a name="notification_analysis.errors">analysis.errors</a> (<a href="#notification_ analysis.errors">#</a>)</dt><dd><div class="box"><pre>notification: {
432 "event": "analysis.errors"
433 "params": {
434 "<b>file</b>": <a href="#type_FilePath">FilePath</a>
435 "<b>errors</b>": List&lt;<a href="#type_AnalysisError">AnalysisError</a>&gt;
436 }
437 }</pre></div>
438 <p>
439 Used to report the errors associated with a given file. The set of errors
440 included in the notification is always a complete list that supersedes any
441 previously reported errors.
442 </p>
443 <p>
444 TODO: Decide whether we need to support the '--no-error-notification'
445 option.
446 </p>
447
448 <h4>parameters:</h4><dl><dt class="field"><b>file (<a href="#type_FilePath">Fi lePath</a>)</b></dt><dd>
449
450 <p>
451 The file containing the errors.
452 </p>
453 </dd><dt class="field"><b>errors (List&lt;<a href="#type_AnalysisError">An alysisError</a>&gt;)</b></dt><dd>
454
455 <p>
456 The errors contained in the file.
457 </p>
458 </dd></dl></dd><dt class="notification"><a name="notification_analysis.fol ding">analysis.folding</a> (<a href="#notification_analysis.folding">#</a>)</dt> <dd><div class="box"><pre>notification: {
459 "event": "analysis.folding"
460 "params": {
461 "<b>file</b>": <a href="#type_FilePath">FilePath</a>
462 "<b>regions</b>": List&lt;<a href="#type_FoldingRegion">FoldingRegion</a>&gt ;
463 }
464 }</pre></div>
465 <p>
466 Used to report the folding regions associated with a given file. Folding
467 regions can be nested, but cannot be overlapping. Nesting occurs when a
468 foldable element, such as a method, is nested inside another foldable
469 element such as a class.
470 </p>
471 <p>
472 Folding regions that overlap a folding region computed by the server, or
473 by one of the other plugins that are currently running, might be dropped
474 by the server in order to present a consistent view to the client.
475 </p>
476 <p>
477 This notification should only be sent if the server has subscribed to it
478 by including the value <tt>"FOLDING"</tt> in the list of services
479 passed in an analysis.setSubscriptions request.
480 </p>
481
482 <h4>parameters:</h4><dl><dt class="field"><b>file (<a href="#type_FilePath">Fi lePath</a>)</b></dt><dd>
483
484 <p>
485 The file containing the folding regions.
486 </p>
487 </dd><dt class="field"><b>regions (List&lt;<a href="#type_FoldingRegion">F oldingRegion</a>&gt;)</b></dt><dd>
488
489 <p>
490 The folding regions contained in the file.
491 </p>
492 </dd></dl></dd><dt class="notification"><a name="notification_analysis.hig hlights">analysis.highlights</a> (<a href="#notification_analysis.highlights">#< /a>)</dt><dd><div class="box"><pre>notification: {
493 "event": "analysis.highlights"
494 "params": {
495 "<b>file</b>": <a href="#type_FilePath">FilePath</a>
496 "<b>regions</b>": List&lt;<a href="#type_HighlightRegion">HighlightRegion</a >&gt;
497 }
498 }</pre></div>
499 <p>
500 Used to report the highlight regions associated with a given file. Each
501 highlight region represents a particular syntactic or semantic meaning
502 associated with some range. Note that the highlight regions that are
503 returned can overlap other highlight regions if there is more than one
504 meaning associated with a particular region.
505 </p>
506 <p>
507 This notification should only be sent if the server has subscribed to it
508 by including the value <tt>"HIGHLIGHTS"</tt> in the list of services
509 passed in an analysis.setSubscriptions request.
510 </p>
511
512 <h4>parameters:</h4><dl><dt class="field"><b>file (<a href="#type_FilePath">Fi lePath</a>)</b></dt><dd>
513
514 <p>
515 The file containing the highlight regions.
516 </p>
517 </dd><dt class="field"><b>regions (List&lt;<a href="#type_HighlightRegion" >HighlightRegion</a>&gt;)</b></dt><dd>
518
519 <p>
520 The highlight regions contained in the file.
521 </p>
522 </dd></dl></dd><dt class="notification"><a name="notification_analysis.nav igation">analysis.navigation</a> (<a href="#notification_analysis.navigation">#< /a>)</dt><dd><div class="box"><pre>notification: {
523 "event": "analysis.navigation"
524 "params": {
525 "<b>file</b>": <a href="#type_FilePath">FilePath</a>
526 "<b>regions</b>": List&lt;<a href="#type_NavigationRegion">NavigationRegion< /a>&gt;
527 "<b>targets</b>": List&lt;<a href="#type_NavigationTarget">NavigationTarget< /a>&gt;
528 "<b>files</b>": List&lt;<a href="#type_FilePath">FilePath</a>&gt;
529 }
530 }</pre></div>
531 <p>
532 Used to report the navigation regions associated with a given file. Each
533 navigation region represents a list of targets associated with some range.
534 The lists will usually contain a single target, but can contain more in
535 the case of a part that is included in multiple libraries or in Dart code
536 that is compiled against multiple versions of a package. Note that the
537 navigation regions that are returned should not overlap other navigation
538 regions.
539 </p>
540 <p>
541 Navigation regions that overlap a navigation region computed by the
542 server, or by one of the other plugins that are currently running, might
543 be dropped or modified by the server in order to present a consistent view
544 to the client.
545 </p>
546 <p>
547 This notification should only be sent if the server has subscribed to it
548 by including the value <tt>"NAVIGATION"</tt> in the list of services
549 passed in an analysis.setSubscriptions request.
550 </p>
551
552 <h4>parameters:</h4><dl><dt class="field"><b>file (<a href="#type_FilePath">Fi lePath</a>)</b></dt><dd>
553
554 <p>
555 The file containing the navigation regions.
556 </p>
557 </dd><dt class="field"><b>regions (List&lt;<a href="#type_NavigationRegion ">NavigationRegion</a>&gt;)</b></dt><dd>
558
559 <p>
560 The navigation regions contained in the file.
561 </p>
562 </dd><dt class="field"><b>targets (List&lt;<a href="#type_NavigationTarget ">NavigationTarget</a>&gt;)</b></dt><dd>
563
564 <p>
565 The navigation targets referenced in the file. They are referenced by
566 <a href="#type_NavigationRegion">NavigationRegion</a>s by their index
567 in this array.
568 </p>
569 </dd><dt class="field"><b>files (List&lt;<a href="#type_FilePath">FilePath </a>&gt;)</b></dt><dd>
570
571 <p>
572 The files containing navigation targets referenced in the file. They
573 are referenced by
574 <a href="#type_NavigationTarget">NavigationTarget</a>s by their index
575 in this array.
576 </p>
577 </dd></dl></dd><dt class="notification"><a name="notification_analysis.occ urrences">analysis.occurrences</a> (<a href="#notification_analysis.occurrences" >#</a>)</dt><dd><div class="box"><pre>notification: {
578 "event": "analysis.occurrences"
579 "params": {
580 "<b>file</b>": <a href="#type_FilePath">FilePath</a>
581 "<b>occurrences</b>": List&lt;<a href="#type_Occurrences">Occurrences</a>&gt ;
582 }
583 }</pre></div>
584 <p>
585 Used to report the occurrences of references to elements within a single
586 file. None of the occurrence regions should overlap.
587 </p>
588 <p>
589 Occurrence regions that overlap an occurrence region computed by the
590 server, or by one of the other plugins that are currently running, might
591 be dropped or modified by the server in order to present a consistent view
592 to the client.
593 </p>
594 <p>
595 This notification should only be sent if the server has subscribed to it
596 by including the value <tt>"OCCURRENCES"</tt> in the list of services
597 passed in an analysis.setSubscriptions request.
598 </p>
599
600 <h4>parameters:</h4><dl><dt class="field"><b>file (<a href="#type_FilePath">Fi lePath</a>)</b></dt><dd>
601
602 <p>
603 The file in which the references occur.
604 </p>
605 </dd><dt class="field"><b>occurrences (List&lt;<a href="#type_Occurrences" >Occurrences</a>&gt;)</b></dt><dd>
606
607 <p>
608 The occurrences of references to elements within the file.
609 </p>
610 </dd></dl></dd><dt class="notification"><a name="notification_analysis.out line">analysis.outline</a> (<a href="#notification_analysis.outline">#</a>)</dt> <dd><div class="box"><pre>notification: {
611 "event": "analysis.outline"
612 "params": {
613 "<b>file</b>": <a href="#type_FilePath">FilePath</a>
614 "<b>outline</b>": List&lt;<a href="#type_Outline">Outline</a>&gt;
615 }
616 }</pre></div>
617 <p>
618 Used to report the outline fragments associated with a single file.
619 </p>
620 <p>
621 The outline fragments will be merged with any outline produced by the
622 server and with any fragments produced by other plugins. If the server
623 cannot create a coherent outline, some fragments might be dropped.
624 </p>
625 <p>
626 This notification should only be sent if the server has subscribed to it
627 by including the value <tt>"OUTLINE"</tt> in the list of services
628 passed in an analysis.setSubscriptions request.
629 </p>
630
631 <h4>parameters:</h4><dl><dt class="field"><b>file (<a href="#type_FilePath">Fi lePath</a>)</b></dt><dd>
632
633 <p>
634 The file with which the outline is associated.
635 </p>
636 </dd><dt class="field"><b>outline (List&lt;<a href="#type_Outline">Outline </a>&gt;)</b></dt><dd>
637
638 <p>
639 The outline fragments associated with the file.
640 </p>
641 </dd></dl></dd></dl>
642 <h2 class="domain"><a name="domain_completion">completion domain</a></h2>
643 <p>
644 The code completion domain contains API's related to getting code completion
645 suggestions.
646 </p>
647
648 <h3>Requests</h3><dl><dt class="request"><a name="request_completion.getSuggesti ons">completion.getSuggestions</a> (<a href="#request_completion.getSuggestions" >#</a>)</dt><dd><div class="box"><pre>request: {
649 "id": String
650 "method": "completion.getSuggestions"
651 "params": {
652 "<b>file</b>": <a href="#type_FilePath">FilePath</a>
653 "<b>offset</b>": int
654 }
655 }</pre><br><pre>response: {
656 "id": String
657 "error": <span style="color:#999999">optional</span> <a href="#type_RequestErr or">RequestError</a>
658 "result": {
659 "<b>replacementOffset</b>": int
660 "<b>replacementLength</b>": int
661 "<b>results</b>": List&lt;<a href="#type_CompletionSuggestion">CompletionSug gestion</a>&gt;
662 }
663 }</pre></div>
664 <p>
665 Used to request that completion suggestions for the given offset in the
666 given file be returned.
667 </p>
668
669
670 <h4>parameters:</h4><dl><dt class="field"><b>file (<a href="#type_FilePath">Fi lePath</a>)</b></dt><dd>
671
672 <p>
673 The file containing the point at which suggestions are to be made.
674 </p>
675 </dd><dt class="field"><b>offset (int)</b></dt><dd>
676
677 <p>
678 The offset within the file at which suggestions are to be made.
679 </p>
680 </dd></dl><h4>returns:</h4><dl><dt class="field"><b>replacementOffset (int )</b></dt><dd>
681
682 <p>
683 The offset of the start of the text to be replaced. This will be
684 different than the offset used to request the completion suggestions
685 if there was a portion of an identifier before the original offset. In
686 particular, the replacementOffset will be the offset of the beginning
687 of said identifier.
688 </p>
689 </dd><dt class="field"><b>replacementLength (int)</b></dt><dd>
690
691 <p>
692 The length of the text to be replaced if the remainder of the
693 identifier containing the cursor is to be replaced when the suggestion
694 is applied (that is, the number of characters in the existing
695 identifier).
696 </p>
697 </dd><dt class="field"><b>results (List&lt;<a href="#type_CompletionSugges tion">CompletionSuggestion</a>&gt;)</b></dt><dd>
698
699 <p>
700 The completion suggestions being reported. The notification contains
701 all possible completions at the requested cursor position, even those
702 that do not match the characters the user has already typed. This
703 allows the client to respond to further keystrokes from the user
704 without having to make additional requests.
705 </p>
706 </dd></dl></dd></dl>
707 <h2 class="domain"><a name="domain_edit">edit domain</a></h2>
708 <p>
709 The edit domain contains API's related to edits that can be applied to the
710 code.
711 </p>
712
713
714
715
716 <h3>Requests</h3><dl><dt class="request"><a name="request_edit.getAssists">edit. getAssists</a> (<a href="#request_edit.getAssists">#</a>)</dt><dd><div class="bo x"><pre>request: {
717 "id": String
718 "method": "edit.getAssists"
719 "params": {
720 "<b>file</b>": <a href="#type_FilePath">FilePath</a>
721 "<b>offset</b>": int
722 "<b>length</b>": int
723 }
724 }</pre><br><pre>response: {
725 "id": String
726 "error": <span style="color:#999999">optional</span> <a href="#type_RequestErr or">RequestError</a>
727 "result": {
728 "<b>assists</b>": List&lt;<a href="#type_SourceChange">SourceChange</a>&gt;
729 }
730 }</pre></div>
731 <p>
732 Used to request the set of assists that are available at the given
733 location. An assist is distinguished from a refactoring primarily by the
734 fact that it affects a single file and does not require user input in
735 order to be performed.
736 </p>
737
738
739 <h4>parameters:</h4><dl><dt class="field"><b>file (<a href="#type_FilePath">Fi lePath</a>)</b></dt><dd>
740
741 <p>
742 The file containing the code for which assists are being requested.
743 </p>
744 </dd><dt class="field"><b>offset (int)</b></dt><dd>
745
746 <p>
747 The offset of the code for which assists are being requested.
748 </p>
749 </dd><dt class="field"><b>length (int)</b></dt><dd>
750
751 <p>
752 The length of the code for which assists are being requested.
753 </p>
754 </dd></dl><h4>returns:</h4><dl><dt class="field"><b>assists (List&lt;<a hr ef="#type_SourceChange">SourceChange</a>&gt;)</b></dt><dd>
755
756 <p>
757 The assists that are available at the given location.
758 </p>
759 </dd></dl></dd><dt class="request"><a name="request_edit.getAvailableRefac torings">edit.getAvailableRefactorings</a> (<a href="#request_edit.getAvailableR efactorings">#</a>)</dt><dd><div class="box"><pre>request: {
760 "id": String
761 "method": "edit.getAvailableRefactorings"
762 "params": {
763 "<b>file</b>": <a href="#type_FilePath">FilePath</a>
764 "<b>offset</b>": int
765 "<b>length</b>": int
766 }
767 }</pre><br><pre>response: {
768 "id": String
769 "error": <span style="color:#999999">optional</span> <a href="#type_RequestErr or">RequestError</a>
770 "result": {
771 "<b>kinds</b>": List&lt;<a href="#type_RefactoringKind">RefactoringKind</a>& gt;
772 }
773 }</pre></div>
774 <p>
775 Used to request a list of the kinds of refactorings that are valid for the
776 given selection in the given file.
777 </p>
778
779
780 <h4>parameters:</h4><dl><dt class="field"><b>file (<a href="#type_FilePath">Fi lePath</a>)</b></dt><dd>
781
782 <p>
783 The file containing the code on which the refactoring would be based.
784 </p>
785 </dd><dt class="field"><b>offset (int)</b></dt><dd>
786
787 <p>
788 The offset of the code on which the refactoring would be based.
789 </p>
790 </dd><dt class="field"><b>length (int)</b></dt><dd>
791
792 <p>
793 The length of the code on which the refactoring would be based.
794 </p>
795 </dd></dl><h4>returns:</h4><dl><dt class="field"><b>kinds (List&lt;<a href ="#type_RefactoringKind">RefactoringKind</a>&gt;)</b></dt><dd>
796
797 <p>
798 The kinds of refactorings that are valid for the given selection.
799 </p>
800 <p>
801 The list of refactoring kinds is currently limited to those defined by
802 the server API, preventing plugins from adding their own refactorings.
803 However, plugins can support pre-defined refactorings, such as a
804 rename refactoring, at locations not supported by server.
805 </p>
806 </dd></dl></dd><dt class="request"><a name="request_edit.getFixes">edit.ge tFixes</a> (<a href="#request_edit.getFixes">#</a>)</dt><dd><div class="box"><pr e>request: {
807 "id": String
808 "method": "edit.getFixes"
809 "params": {
810 "<b>file</b>": <a href="#type_FilePath">FilePath</a>
811 "<b>offset</b>": int
812 }
813 }</pre><br><pre>response: {
814 "id": String
815 "error": <span style="color:#999999">optional</span> <a href="#type_RequestErr or">RequestError</a>
816 "result": {
817 "<b>fixes</b>": List&lt;<a href="#type_AnalysisErrorFixes">AnalysisErrorFixe s</a>&gt;
818 }
819 }</pre></div>
820 <p>
821 Used to request the set of fixes that are available for the errors at a
822 given offset in a given file.
823 </p>
824
825
826 <h4>parameters:</h4><dl><dt class="field"><b>file (<a href="#type_FilePath">Fi lePath</a>)</b></dt><dd>
827
828 <p>
829 The file containing the errors for which fixes are being requested.
830 </p>
831 </dd><dt class="field"><b>offset (int)</b></dt><dd>
832
833 <p>
834 The offset used to select the errors for which fixes will be returned.
835 </p>
836 </dd></dl><h4>returns:</h4><dl><dt class="field"><b>fixes (List&lt;<a href ="#type_AnalysisErrorFixes">AnalysisErrorFixes</a>&gt;)</b></dt><dd>
837
838 <p>
839 The fixes that are available for the errors at the given offset.
840 </p>
841 </dd></dl></dd><dt class="request"><a name="request_edit.getRefactoring">e dit.getRefactoring</a> (<a href="#request_edit.getRefactoring">#</a>)</dt><dd><d iv class="box"><pre>request: {
842 "id": String
843 "method": "edit.getRefactoring"
844 "params": {
845 "<b>kind</b>": <a href="#type_RefactoringKind">RefactoringKind</a>
846 "<b>file</b>": <a href="#type_FilePath">FilePath</a>
847 "<b>offset</b>": int
848 "<b>length</b>": int
849 "<b>validateOnly</b>": bool
850 "<b>options</b>": <span style="color:#999999">optional</span> <a href="#type _RefactoringOptions">RefactoringOptions</a>
851 }
852 }</pre><br><pre>response: {
853 "id": String
854 "error": <span style="color:#999999">optional</span> <a href="#type_RequestErr or">RequestError</a>
855 "result": {
856 "<b>initialProblems</b>": List&lt;<a href="#type_RefactoringProblem">Refacto ringProblem</a>&gt;
857 "<b>optionsProblems</b>": List&lt;<a href="#type_RefactoringProblem">Refacto ringProblem</a>&gt;
858 "<b>finalProblems</b>": List&lt;<a href="#type_RefactoringProblem">Refactori ngProblem</a>&gt;
859 "<b>feedback</b>": <span style="color:#999999">optional</span> <a href="#typ e_RefactoringFeedback">RefactoringFeedback</a>
860 "<b>change</b>": <span style="color:#999999">optional</span> <a href="#type_ SourceChange">SourceChange</a>
861 "<b>potentialEdits</b>": <span style="color:#999999">optional</span> List&lt ;String&gt;
862 }
863 }</pre></div>
864 <p>
865 Used to request the changes required to perform a refactoring.
866 </p>
867
868
869 <h4>parameters:</h4><dl><dt class="field"><b>kind (<a href="#type_RefactoringK ind">RefactoringKind</a>)</b></dt><dd>
870
871 <p>
872 The kind of refactoring to be performed.
873 </p>
874 </dd><dt class="field"><b>file (<a href="#type_FilePath">FilePath</a>)</b> </dt><dd>
875
876 <p>
877 The file containing the code involved in the refactoring.
878 </p>
879 </dd><dt class="field"><b>offset (int)</b></dt><dd>
880
881 <p>
882 The offset of the region involved in the refactoring.
883 </p>
884 </dd><dt class="field"><b>length (int)</b></dt><dd>
885
886 <p>
887 The length of the region involved in the refactoring.
888 </p>
889 </dd><dt class="field"><b>validateOnly (bool)</b></dt><dd>
890
891 <p>
892 True if the client is only requesting that the values of the options
893 be validated and no change be generated.
894 </p>
895 </dd><dt class="field"><b>options (<span style="color:#999999">optional</s pan> <a href="#type_RefactoringOptions">RefactoringOptions</a>)</b></dt><dd>
896
897 <p>
898 Data used to provide values provided by the user. The structure of the
899 data is dependent on the kind of refactoring being performed. The data
900 that is expected is documented in the section titled
901 <a href="#refactorings">Refactorings</a>, labeled as "Options". This
902 field can be omitted if the refactoring does not require any options
903 or if the values of those options are not known.
904 </p>
905 </dd></dl><h4>returns:</h4><dl><dt class="field"><b>initialProblems (List& lt;<a href="#type_RefactoringProblem">RefactoringProblem</a>&gt;)</b></dt><dd>
906
907 <p>
908 The initial status of the refactoring, that is, problems related to
909 the context in which the refactoring is requested. The list should be
910 empty if there are no known problems.
911 </p>
912 </dd><dt class="field"><b>optionsProblems (List&lt;<a href="#type_Refactor ingProblem">RefactoringProblem</a>&gt;)</b></dt><dd>
913
914 <p>
915 The options validation status, that is, problems in the given options,
916 such as light-weight validation of a new name, flags compatibility,
917 etc. The list should be empty if there are no known problems.
918 </p>
919 </dd><dt class="field"><b>finalProblems (List&lt;<a href="#type_Refactorin gProblem">RefactoringProblem</a>&gt;)</b></dt><dd>
920
921 <p>
922 The final status of the refactoring, that is, problems identified in
923 the result of a full, potentially expensive validation and / or change
924 creation. The list should be empty if there are no known problems.
925 </p>
926 </dd><dt class="field"><b>feedback (<span style="color:#999999">optional</ span> <a href="#type_RefactoringFeedback">RefactoringFeedback</a>)</b></dt><dd>
927
928 <p>
929 Data used to provide feedback to the user. The structure of the data
930 is dependent on the kind of refactoring being created. The data that
931 is returned is documented in the section titled
932 <a href="#refactorings">Refactorings</a>, labeled as "Feedback".
933 </p>
934 </dd><dt class="field"><b>change (<span style="color:#999999">optional</sp an> <a href="#type_SourceChange">SourceChange</a>)</b></dt><dd>
935
936 <p>
937 The changes that are to be applied to affect the refactoring. This
938 field can be omitted if there are problems that prevent a set of
939 changes from being computed, such as having no options specified for a
940 refactoring that requires them, or if only validation was requested.
941 </p>
942 </dd><dt class="field"><b>potentialEdits (<span style="color:#999999">opti onal</span> List&lt;String&gt;)</b></dt><dd>
943
944 <p>
945 The ids of source edits that are not known to be valid. An edit is not
946 known to be valid if there was insufficient type information for the
947 plugin to be able to determine whether or not the code needs to be
948 modified, such as when a member is being renamed and there is a
949 reference to a member from an unknown type. This field can be omitted
950 if the change field is omitted or if there are no potential edits for
951 the refactoring.
952 </p>
953 </dd></dl></dd></dl>
954
955 <h2 class="domain"><a name="types">Types</a></h2>
956 <p>
957 This section contains descriptions of the data types referenced in the API’s
958 of the various domains.
959 </p>
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002 <dl><dt class="typeDefinition"><a name="type_AddContentOverlay">AddContentOverla y: object</a></dt><dd>
1003 <p>
1004 A directive to begin overlaying the contents of a file. The supplied
1005 content will be used for analysis in place of the file contents in the
1006 filesystem.
1007 </p>
1008 <p>
1009 If this directive is used on a file that already has a file content
1010 overlay, the old overlay is discarded and replaced with the new one.
1011 </p>
1012
1013 <dl><dt class="field"><b>type = "add"</b></dt><dd></dd><dt class="field"><b>co ntent (String)</b></dt><dd>
1014
1015 <p>
1016 The new content of the file.
1017 </p>
1018 </dd></dl></dd><dt class="typeDefinition"><a name="type_AnalysisError">Ana lysisError: object</a></dt><dd>
1019 <p>
1020 An indication of an error, warning, or hint that was produced by the
1021 analysis.
1022 </p>
1023
1024 <dl><dt class="field"><b>severity (<a href="#type_AnalysisErrorSeverity">Analy sisErrorSeverity</a>)</b></dt><dd>
1025
1026 <p>
1027 The severity of the error.
1028 </p>
1029 </dd><dt class="field"><b>type (<a href="#type_AnalysisErrorType">Analysis ErrorType</a>)</b></dt><dd>
1030
1031 <p>
1032 The type of the error.
1033 </p>
1034 </dd><dt class="field"><b>location (<a href="#type_Location">Location</a>) </b></dt><dd>
1035
1036 <p>
1037 The location associated with the error.
1038 </p>
1039 </dd><dt class="field"><b>message (String)</b></dt><dd>
1040
1041 <p>
1042 The message to be displayed for this error. The message should
1043 indicate what is wrong with the code and why it is wrong.
1044 </p>
1045 </dd><dt class="field"><b>correction (<span style="color:#999999">optional </span> String)</b></dt><dd>
1046
1047 <p>
1048 The correction message to be displayed for this error. The correction
1049 message should indicate how the user can fix the error. The field is
1050 omitted if there is no correction message associated with the error
1051 code.
1052 </p>
1053 </dd><dt class="field"><b>code (String)</b></dt><dd>
1054
1055 <p>
1056 The name, as a string, of the error code associated with this error.
1057 </p>
1058 </dd><dt class="field"><b>hasFix (<span style="color:#999999">optional</sp an> bool)</b></dt><dd>
1059
1060 <p>
1061 A hint to indicate to interested clients that this error has an
1062 associated fix (or fixes). The absence of this field implies there
1063 are not known to be fixes. Note that since the operation to calculate
1064 whether fixes apply needs to be performant it is possible that
1065 complicated tests will be skipped and a false negative returned. For
1066 this reason, this attribute should be treated as a "hint". Despite the
1067 possibility of false negatives, no false positives should be returned.
1068 If a client sees this flag set they can proceed with the confidence
1069 that there are in fact associated fixes.
1070 </p>
1071 </dd></dl></dd><dt class="typeDefinition"><a name="type_AnalysisErrorFixes ">AnalysisErrorFixes: object</a></dt><dd>
1072 <p>
1073 A list of fixes associated with a specific error
1074 </p>
1075
1076 <dl><dt class="field"><b>error (<a href="#type_AnalysisError">AnalysisError</a >)</b></dt><dd>
1077
1078 <p>
1079 The error with which the fixes are associated.
1080 </p>
1081 </dd><dt class="field"><b>fixes (List&lt;<a href="#type_SourceChange">Sour ceChange</a>&gt;)</b></dt><dd>
1082
1083 <p>
1084 The fixes associated with the error.
1085 </p>
1086 </dd></dl></dd><dt class="typeDefinition"><a name="type_AnalysisErrorSever ity">AnalysisErrorSeverity: String</a></dt><dd>
1087 <p>
1088 An enumeration of the possible severities of analysis errors.
1089 </p>
1090
1091 <dl><dt class="value">INFO</dt><dt class="value">WARNING</dt><dt class="value" >ERROR</dt></dl></dd><dt class="typeDefinition"><a name="type_AnalysisErrorType" >AnalysisErrorType: String</a></dt><dd>
1092 <p>
1093 An enumeration of the possible types of analysis errors.
1094 </p>
1095
1096 <dl><dt class="value">CHECKED_MODE_COMPILE_TIME_ERROR</dt><dt class="value">CO MPILE_TIME_ERROR</dt><dt class="value">HINT</dt><dt class="value">LINT</dt><dt c lass="value">STATIC_TYPE_WARNING</dt><dt class="value">STATIC_WARNING</dt><dt cl ass="value">SYNTACTIC_ERROR</dt><dt class="value">TODO</dt></dl></dd><dt class=" typeDefinition"><a name="type_AnalysisService">AnalysisService: String</a></dt>< dd>
1097 <p>
1098 An enumeration of the services provided by the analysis domain that are
1099 related to a specific list of files.
1100 </p>
1101
1102 <dl><dt class="value">FOLDING</dt><dt class="value">HIGHLIGHTS</dt><dt class=" value">NAVIGATION</dt><dt class="value">OCCURRENCES</dt><dt class="value">OUTLIN E</dt></dl></dd><dt class="typeDefinition"><a name="type_ChangeContentOverlay">C hangeContentOverlay: object</a></dt><dd>
1103 <p>
1104 A directive to modify an existing file content overlay. One or more ranges
1105 of text are deleted from the old file content overlay and replaced with
1106 new text.
1107 </p>
1108 <p>
1109 The edits are applied in the order in which they occur in the list. This
1110 means that the offset of each edit must be correct under the assumption
1111 that all previous edits have been applied.
1112 </p>
1113 <p>
1114 It is an error to use this overlay on a file that does not yet have a file
1115 content overlay or that has had its overlay removed via
1116 <a href="#type_RemoveContentOverlay">RemoveContentOverlay</a>.
1117 </p>
1118 <p>
1119 If any of the edits cannot be applied due to its offset or length being
1120 out of range, an <tt>INVALID_OVERLAY_CHANGE</tt> error will be reported.
1121 </p>
1122
1123 <dl><dt class="field"><b>type = "change"</b></dt><dd></dd><dt class="field"><b >edits (List&lt;<a href="#type_SourceEdit">SourceEdit</a>&gt;)</b></dt><dd>
1124
1125 <p>
1126 The edits to be applied to the file.
1127 </p>
1128 </dd></dl></dd><dt class="typeDefinition"><a name="type_CompletionSuggesti on">CompletionSuggestion: object</a></dt><dd>
1129 <p>
1130 A suggestion for how to complete partially entered text. Many of the
1131 fields are optional, depending on the kind of element being suggested.
1132 </p>
1133
1134 <dl><dt class="field"><b>kind (<a href="#type_CompletionSuggestionKind">Comple tionSuggestionKind</a>)</b></dt><dd>
1135
1136 <p>
1137 The kind of element being suggested.
1138 </p>
1139 </dd><dt class="field"><b>relevance (int)</b></dt><dd>
1140
1141 <p>
1142 The relevance of this completion suggestion where a higher number
1143 indicates a higher relevance.
1144 </p>
1145 </dd><dt class="field"><b>completion (String)</b></dt><dd>
1146
1147 <p>
1148 The identifier to be inserted if the suggestion is selected. If the
1149 suggestion is for a method or function, the client might want to
1150 additionally insert a template for the parameters. The information
1151 required in order to do so is contained in other fields.
1152 </p>
1153 </dd><dt class="field"><b>selectionOffset (int)</b></dt><dd>
1154
1155 <p>
1156 The offset, relative to the beginning of the completion, of where the
1157 selection should be placed after insertion.
1158 </p>
1159 </dd><dt class="field"><b>selectionLength (int)</b></dt><dd>
1160
1161 <p>
1162 The number of characters that should be selected after insertion.
1163 </p>
1164 </dd><dt class="field"><b>isDeprecated (bool)</b></dt><dd>
1165
1166 <p>
1167 True if the suggested element is deprecated.
1168 </p>
1169 </dd><dt class="field"><b>isPotential (bool)</b></dt><dd>
1170
1171 <p>
1172 True if the element is not known to be valid for the target. This
1173 happens if the type of the target is dynamic.
1174 </p>
1175 </dd><dt class="field"><b>docSummary (<span style="color:#999999">optional </span> String)</b></dt><dd>
1176
1177 <p>
1178 An abbreviated version of the Dartdoc associated with the element
1179 being suggested, This field is omitted if there is no Dartdoc
1180 associated with the element.
1181 </p>
1182 </dd><dt class="field"><b>docComplete (<span style="color:#999999">optiona l</span> String)</b></dt><dd>
1183
1184 <p>
1185 The Dartdoc associated with the element being suggested. This field is
1186 omitted if there is no Dartdoc associated with the element.
1187 </p>
1188 </dd><dt class="field"><b>declaringType (<span style="color:#999999">optio nal</span> String)</b></dt><dd>
1189
1190 <p>
1191 The class that declares the element being suggested. This field is
1192 omitted if the suggested element is not a member of a class.
1193 </p>
1194 </dd><dt class="field"><b>element (<span style="color:#999999">optional</s pan> <a href="#type_Element">Element</a>)</b></dt><dd>
1195
1196 <p>
1197 Information about the element reference being suggested.
1198 </p>
1199 </dd><dt class="field"><b>returnType (<span style="color:#999999">optional </span> String)</b></dt><dd>
1200
1201 <p>
1202 The return type of the getter, function or method or the type of the
1203 field being suggested. This field is omitted if the suggested element
1204 is not a getter, function or method.
1205 </p>
1206 </dd><dt class="field"><b>parameterNames (<span style="color:#999999">opti onal</span> List&lt;String&gt;)</b></dt><dd>
1207
1208 <p>
1209 The names of the parameters of the function or method being suggested.
1210 This field is omitted if the suggested element is not a setter,
1211 function or method.
1212 </p>
1213 </dd><dt class="field"><b>parameterTypes (<span style="color:#999999">opti onal</span> List&lt;String&gt;)</b></dt><dd>
1214
1215 <p>
1216 The types of the parameters of the function or method being suggested.
1217 This field is omitted if the parameterNames field is omitted.
1218 </p>
1219 </dd><dt class="field"><b>requiredParameterCount (<span style="color:#9999 99">optional</span> int)</b></dt><dd>
1220
1221 <p>
1222 The number of required parameters for the function or method being
1223 suggested. This field is omitted if the parameterNames field is
1224 omitted.
1225 </p>
1226 </dd><dt class="field"><b>hasNamedParameters (<span style="color:#999999"> optional</span> bool)</b></dt><dd>
1227
1228 <p>
1229 True if the function or method being suggested has at least one named
1230 parameter. This field is omitted if the parameterNames field is
1231 omitted.
1232 </p>
1233 </dd><dt class="field"><b>parameterName (<span style="color:#999999">optio nal</span> String)</b></dt><dd>
1234
1235 <p>
1236 The name of the optional parameter being suggested. This field is
1237 omitted if the suggestion is not the addition of an optional argument
1238 within an argument list.
1239 </p>
1240 </dd><dt class="field"><b>parameterType (<span style="color:#999999">optio nal</span> String)</b></dt><dd>
1241
1242 <p>
1243 The type of the options parameter being suggested. This field is
1244 omitted if the parameterName field is omitted.
1245 </p>
1246 </dd><dt class="field"><b>importUri (<span style="color:#999999">optional< /span> String)</b></dt><dd>
1247
1248 <p>
1249 The import to be added if the suggestion is out of scope and needs
1250 an import to be added to be in scope.
1251 </p>
1252 </dd></dl></dd><dt class="typeDefinition"><a name="type_CompletionSuggesti onKind">CompletionSuggestionKind: String</a></dt><dd>
1253 <p>
1254 An enumeration of the kinds of elements that can be included in a
1255 completion suggestion.
1256 </p>
1257
1258 <dl><dt class="value">ARGUMENT_LIST</dt><dd>
1259
1260 <p>
1261 A list of arguments for the method or function that is being
1262 invoked. For this suggestion kind, the completion field is a
1263 textual representation of the invocation and the parameterNames,
1264 parameterTypes, and requiredParameterCount attributes are defined.
1265 </p>
1266 </dd><dt class="value">IMPORT</dt><dt class="value">IDENTIFIER</dt><dd>
1267
1268 <p>
1269 The element identifier should be inserted at the completion
1270 location. For example "someMethod" in <tt>import 'myLib.dart' show
1271 someMethod;</tt>. For suggestions of this kind, the element
1272 attribute is defined and the completion field is the element's
1273 identifier.
1274 </p>
1275 </dd><dt class="value">INVOCATION</dt><dd>
1276
1277 <p>
1278 The element is being invoked at the completion location. For
1279 example, 'someMethod' in <tt>x.someMethod();</tt>. For suggestions
1280 of this kind, the element attribute is defined and the completion
1281 field is the element's identifier.
1282 </p>
1283 </dd><dt class="value">KEYWORD</dt><dd>
1284
1285 <p>
1286 A keyword is being suggested. For suggestions of this kind, the
1287 completion is the keyword.
1288 </p>
1289 </dd><dt class="value">NAMED_ARGUMENT</dt><dd>
1290
1291 <p>
1292 A named argument for the current call site is being suggested. For
1293 suggestions of this kind, the completion is the named argument
1294 identifier including a trailing ':' and a space.
1295 </p>
1296 </dd><dt class="value">OPTIONAL_ARGUMENT</dt><dt class="value">PARAMETER</ dt></dl></dd><dt class="typeDefinition"><a name="type_ContextBuilderOptions">Con textBuilderOptions: object</a></dt><dd>
1297 <p>
1298 The options used to build an analysis context.
1299 </p>
1300
1301 <dl><dt class="field"><b>dartSdkSummaryPath (<span style="color:#999999">optio nal</span> String)</b></dt><dd>
1302
1303 <p>
1304 The file path of the file containing the summary of the SDK that
1305 should be used to "analyze" the SDK. The field will be omitted if the
1306 summary should be found in the SDK.
1307 </p>
1308 </dd><dt class="field"><b>defaultAnalysisOptionsFilePath (<span style="col or:#999999">optional</span> List&lt;String&gt;)</b></dt><dd>
1309
1310 <p>
1311 The file path of the analysis options file that should be used in
1312 place of any file in the root directory or a parent of the root
1313 directory. The field will be omitted if the normal lookup mechanism
1314 should be used.
1315 </p>
1316 </dd><dt class="field"><b>declaredVariables (<span style="color:#999999">o ptional</span> Map&lt;String, String&gt;)</b></dt><dd>
1317
1318 <p>
1319 A table mapping variable names to values for the declared variables.
1320 The field will be omitted if no additional variables need to be
1321 declared.
1322 </p>
1323 </dd><dt class="field"><b>defaultPackageFilePath (<span style="color:#9999 99">optional</span> List&lt;String&gt;)</b></dt><dd>
1324
1325 <p>
1326 The file path of the .packages file that should be used in place of
1327 any file found using the normal (Package Specification DEP) lookup
1328 mechanism. The field will be omitted if the normal lookup mechanism
1329 should be used.
1330 </p>
1331 </dd><dt class="field"><b>defaultPackagesDirectoryPath (<span style="color :#999999">optional</span> List&lt;String&gt;)</b></dt><dd>
1332
1333 <p>
1334 The file path of the packages directory that should be used in place
1335 of any file found using the normal (Package Specification DEP) lookup
1336 mechanism. The field will be omitted if the normal lookup mechanism
1337 should be used.
1338 </p>
1339 </dd></dl></dd><dt class="typeDefinition"><a name="type_ContextRoot">Conte xtRoot: object</a></dt><dd>
1340 <p>
1341 A description of an analysis context.
1342 </p>
1343
1344 <dl><dt class="field"><b>root (String)</b></dt><dd>
1345
1346 <p>
1347 The absolute path of the root directory containing the files to be
1348 analyzed.
1349 </p>
1350 </dd><dt class="field"><b>exclude (List&lt;String&gt;)</b></dt><dd>
1351
1352 <p>
1353 A list of the absolute paths of files and directories within the root
1354 directory that should not be analyzed.
1355 </p>
1356 </dd></dl></dd><dt class="typeDefinition"><a name="type_Element">Element: object</a></dt><dd>
1357 <p>
1358 Information about an element (something that can be declared in code).
1359 </p>
1360
1361 <dl><dt class="field"><b>kind (<a href="#type_ElementKind">ElementKind</a>)</b ></dt><dd>
1362
1363 <p>
1364 The kind of the element.
1365 </p>
1366 </dd><dt class="field"><b>name (String)</b></dt><dd>
1367
1368 <p>
1369 The name of the element. This is typically used as the label in the ou tline.
1370 </p>
1371 </dd><dt class="field"><b>location (<span style="color:#999999">optional</ span> <a href="#type_Location">Location</a>)</b></dt><dd>
1372
1373 <p>
1374 The location of the name in the declaration of the element.
1375 </p>
1376 </dd><dt class="field"><b>flags (int)</b></dt><dd>
1377
1378 <p>
1379 A bit-map containing the following flags:
1380 </p>
1381 <ul>
1382 <li>
1383 0x01 - set if the element is explicitly or implicitly abstract
1384 </li>
1385 <li>
1386 0x02 - set if the element was declared to be ‘const’
1387 </li>
1388 <li>
1389 0x04 - set if the element was declared to be ‘final’
1390 </li>
1391 <li>
1392 0x08 - set if the element is a static member of a class or is a
1393 top-level function or field
1394 </li>
1395 <li>
1396 0x10 - set if the element is private
1397 </li>
1398 <li>
1399 0x20 - set if the element is deprecated
1400 </li>
1401 </ul>
1402 </dd><dt class="field"><b>parameters (<span style="color:#999999">optional </span> String)</b></dt><dd>
1403
1404 <p>
1405 The parameter list for the element. If the element is not a method or
1406 function this field will not be defined. If the element doesn't have
1407 parameters (e.g. getter), this field will not be defined. If the
1408 element has zero parameters, this field will have a value of "()".
1409 </p>
1410 </dd><dt class="field"><b>returnType (<span style="color:#999999">optional </span> String)</b></dt><dd>
1411
1412 <p>
1413 The return type of the element. If the element is not a method or
1414 function this field will not be defined. If the element does not have
1415 a declared return type, this field will contain an empty string.
1416 </p>
1417 </dd><dt class="field"><b>typeParameters (<span style="color:#999999">opti onal</span> String)</b></dt><dd>
1418
1419 <p>
1420 The type parameter list for the element. If the element doesn't have
1421 type parameters, this field will not be defined.
1422 </p>
1423 </dd></dl></dd><dt class="typeDefinition"><a name="type_ElementKind">Eleme ntKind: String</a></dt><dd>
1424 <p>
1425 An enumeration of the kinds of elements.
1426 </p>
1427
1428 <dl><dt class="value">CLASS</dt><dt class="value">CLASS_TYPE_ALIAS</dt><dt cla ss="value">COMPILATION_UNIT</dt><dt class="value">CONSTRUCTOR</dt><dt class="val ue">ENUM</dt><dt class="value">ENUM_CONSTANT</dt><dt class="value">FIELD</dt><dt class="value">FILE</dt><dt class="value">FUNCTION</dt><dt class="value">FUNCTIO N_TYPE_ALIAS</dt><dt class="value">GETTER</dt><dt class="value">LABEL</dt><dt cl ass="value">LIBRARY</dt><dt class="value">LOCAL_VARIABLE</dt><dt class="value">M ETHOD</dt><dt class="value">PARAMETER</dt><dt class="value">PREFIX</dt><dt class ="value">SETTER</dt><dt class="value">TOP_LEVEL_VARIABLE</dt><dt class="value">T YPE_PARAMETER</dt><dt class="value">UNKNOWN</dt></dl></dd><dt class="typeDefinit ion"><a name="type_FilePath">FilePath: String</a></dt><dd>
1429
1430 <p>
1431 The absolute, normalized path of a file.
1432 </p>
1433 <p>
1434 If the format of a file path in a request is not valid, e.g. the path is
1435 not absolute or is not normalized, then an error of type
1436 <tt>INVALID_FILE_PATH_FORMAT</tt> will be generated.
1437 </p>
1438 </dd><dt class="typeDefinition"><a name="type_FoldingKind">FoldingKind: String </a></dt><dd>
1439 <p>
1440 An enumeration of the kinds of folding regions.
1441 </p>
1442
1443 <dl><dt class="value">COMMENT</dt><dt class="value">CLASS_MEMBER</dt><dt class ="value">DIRECTIVES</dt><dt class="value">DOCUMENTATION_COMMENT</dt><dt class="v alue">TOP_LEVEL_DECLARATION</dt></dl></dd><dt class="typeDefinition"><a name="ty pe_FoldingRegion">FoldingRegion: object</a></dt><dd>
1444 <p>
1445 A description of a region that can be folded.
1446 </p>
1447
1448 <dl><dt class="field"><b>kind (<a href="#type_FoldingKind">FoldingKind</a>)</b ></dt><dd>
1449
1450 <p>
1451 The kind of the region.
1452 </p>
1453 </dd><dt class="field"><b>offset (int)</b></dt><dd>
1454
1455 <p>
1456 The offset of the region to be folded.
1457 </p>
1458 </dd><dt class="field"><b>length (int)</b></dt><dd>
1459
1460 <p>
1461 The length of the region to be folded.
1462 </p>
1463 </dd></dl></dd><dt class="typeDefinition"><a name="type_HighlightRegion">H ighlightRegion: object</a></dt><dd>
1464 <p>
1465 A description of a region that could have special highlighting associated
1466 with it.
1467 </p>
1468
1469 <dl><dt class="field"><b>type (<a href="#type_HighlightRegionType">HighlightRe gionType</a>)</b></dt><dd>
1470
1471 <p>
1472 The type of highlight associated with the region.
1473 </p>
1474 </dd><dt class="field"><b>offset (int)</b></dt><dd>
1475
1476 <p>
1477 The offset of the region to be highlighted.
1478 </p>
1479 </dd><dt class="field"><b>length (int)</b></dt><dd>
1480
1481 <p>
1482 The length of the region to be highlighted.
1483 </p>
1484 </dd></dl></dd><dt class="typeDefinition"><a name="type_HighlightRegionTyp e">HighlightRegionType: String</a></dt><dd>
1485 <p>
1486 An enumeration of the kinds of highlighting that can be applied to files.
1487 </p>
1488
1489 <dl><dt class="value">ANNOTATION</dt><dt class="value">BUILT_IN</dt><dt class= "value">CLASS</dt><dt class="value">COMMENT_BLOCK</dt><dt class="value">COMMENT_ DOCUMENTATION</dt><dt class="value">COMMENT_END_OF_LINE</dt><dt class="value">CO NSTRUCTOR</dt><dt class="value">DIRECTIVE</dt><dt class="value">DYNAMIC_TYPE</dt ><dd>
1490
1491 <p>Only for version 1 of highlight.</p>
1492 </dd><dt class="value">DYNAMIC_LOCAL_VARIABLE_DECLARATION</dt><dd>
1493
1494 <p>Only for version 2 of highlight.</p>
1495 </dd><dt class="value">DYNAMIC_LOCAL_VARIABLE_REFERENCE</dt><dd>
1496
1497 <p>Only for version 2 of highlight.</p>
1498 </dd><dt class="value">DYNAMIC_PARAMETER_DECLARATION</dt><dd>
1499
1500 <p>Only for version 2 of highlight.</p>
1501 </dd><dt class="value">DYNAMIC_PARAMETER_REFERENCE</dt><dd>
1502
1503 <p>Only for version 2 of highlight.</p>
1504 </dd><dt class="value">ENUM</dt><dt class="value">ENUM_CONSTANT</dt><dt cl ass="value">FIELD</dt><dd>
1505
1506 <p>Only for version 1 of highlight.</p>
1507 </dd><dt class="value">FIELD_STATIC</dt><dd>
1508
1509 <p>Only for version 1 of highlight.</p>
1510 </dd><dt class="value">FUNCTION</dt><dd>
1511
1512 <p>Only for version 1 of highlight.</p>
1513 </dd><dt class="value">FUNCTION_DECLARATION</dt><dd>
1514
1515 <p>Only for version 1 of highlight.</p>
1516 </dd><dt class="value">FUNCTION_TYPE_ALIAS</dt><dt class="value">GETTER_DE CLARATION</dt><dd>
1517
1518 <p>Only for version 1 of highlight.</p>
1519 </dd><dt class="value">IDENTIFIER_DEFAULT</dt><dt class="value">IMPORT_PRE FIX</dt><dt class="value">INSTANCE_FIELD_DECLARATION</dt><dd>
1520
1521 <p>Only for version 2 of highlight.</p>
1522 </dd><dt class="value">INSTANCE_FIELD_REFERENCE</dt><dd>
1523
1524 <p>Only for version 2 of highlight.</p>
1525 </dd><dt class="value">INSTANCE_GETTER_DECLARATION</dt><dd>
1526
1527 <p>Only for version 2 of highlight.</p>
1528 </dd><dt class="value">INSTANCE_GETTER_REFERENCE</dt><dd>
1529
1530 <p>Only for version 2 of highlight.</p>
1531 </dd><dt class="value">INSTANCE_METHOD_DECLARATION</dt><dd>
1532
1533 <p>Only for version 2 of highlight.</p>
1534 </dd><dt class="value">INSTANCE_METHOD_REFERENCE</dt><dd>
1535
1536 <p>Only for version 2 of highlight.</p>
1537 </dd><dt class="value">INSTANCE_SETTER_DECLARATION</dt><dd>
1538
1539 <p>Only for version 2 of highlight.</p>
1540 </dd><dt class="value">INSTANCE_SETTER_REFERENCE</dt><dd>
1541
1542 <p>Only for version 2 of highlight.</p>
1543 </dd><dt class="value">INVALID_STRING_ESCAPE</dt><dd>
1544
1545 <p>Only for version 2 of highlight.</p>
1546 </dd><dt class="value">KEYWORD</dt><dt class="value">LABEL</dt><dt class=" value">LIBRARY_NAME</dt><dd>
1547
1548 <p>Only for version 2 of highlight.</p>
1549 </dd><dt class="value">LITERAL_BOOLEAN</dt><dt class="value">LITERAL_DOUBL E</dt><dt class="value">LITERAL_INTEGER</dt><dt class="value">LITERAL_LIST</dt>< dt class="value">LITERAL_MAP</dt><dt class="value">LITERAL_STRING</dt><dt class= "value">LOCAL_FUNCTION_DECLARATION</dt><dd>
1550
1551 <p>Only for version 2 of highlight.</p>
1552 </dd><dt class="value">LOCAL_FUNCTION_REFERENCE</dt><dd>
1553
1554 <p>Only for version 2 of highlight.</p>
1555 </dd><dt class="value">LOCAL_VARIABLE</dt><dd>
1556
1557 <p>Only for version 1 of highlight.</p>
1558 </dd><dt class="value">LOCAL_VARIABLE_DECLARATION</dt><dt class="value">LO CAL_VARIABLE_REFERENCE</dt><dd>
1559
1560 <p>Only for version 2 of highlight.</p>
1561 </dd><dt class="value">METHOD</dt><dd>
1562
1563 <p>Only for version 1 of highlight.</p>
1564 </dd><dt class="value">METHOD_DECLARATION</dt><dd>
1565
1566 <p>Only for version 1 of highlight.</p>
1567 </dd><dt class="value">METHOD_DECLARATION_STATIC</dt><dd>
1568
1569 <p>Only for version 1 of highlight.</p>
1570 </dd><dt class="value">METHOD_STATIC</dt><dd>
1571
1572 <p>Only for version 1 of highlight.</p>
1573 </dd><dt class="value">PARAMETER</dt><dd>
1574
1575 <p>Only for version 1 of highlight.</p>
1576 </dd><dt class="value">SETTER_DECLARATION</dt><dd>
1577
1578 <p>Only for version 1 of highlight.</p>
1579 </dd><dt class="value">TOP_LEVEL_VARIABLE</dt><dd>
1580
1581 <p>Only for version 1 of highlight.</p>
1582 </dd><dt class="value">PARAMETER_DECLARATION</dt><dd>
1583
1584 <p>Only for version 2 of highlight.</p>
1585 </dd><dt class="value">PARAMETER_REFERENCE</dt><dd>
1586
1587 <p>Only for version 2 of highlight.</p>
1588 </dd><dt class="value">STATIC_FIELD_DECLARATION</dt><dd>
1589
1590 <p>Only for version 2 of highlight.</p>
1591 </dd><dt class="value">STATIC_GETTER_DECLARATION</dt><dd>
1592
1593 <p>Only for version 2 of highlight.</p>
1594 </dd><dt class="value">STATIC_GETTER_REFERENCE</dt><dd>
1595
1596 <p>Only for version 2 of highlight.</p>
1597 </dd><dt class="value">STATIC_METHOD_DECLARATION</dt><dd>
1598
1599 <p>Only for version 2 of highlight.</p>
1600 </dd><dt class="value">STATIC_METHOD_REFERENCE</dt><dd>
1601
1602 <p>Only for version 2 of highlight.</p>
1603 </dd><dt class="value">STATIC_SETTER_DECLARATION</dt><dd>
1604
1605 <p>Only for version 2 of highlight.</p>
1606 </dd><dt class="value">STATIC_SETTER_REFERENCE</dt><dd>
1607
1608 <p>Only for version 2 of highlight.</p>
1609 </dd><dt class="value">TOP_LEVEL_FUNCTION_DECLARATION</dt><dd>
1610
1611 <p>Only for version 2 of highlight.</p>
1612 </dd><dt class="value">TOP_LEVEL_FUNCTION_REFERENCE</dt><dd>
1613
1614 <p>Only for version 2 of highlight.</p>
1615 </dd><dt class="value">TOP_LEVEL_GETTER_DECLARATION</dt><dd>
1616
1617 <p>Only for version 2 of highlight.</p>
1618 </dd><dt class="value">TOP_LEVEL_GETTER_REFERENCE</dt><dd>
1619
1620 <p>Only for version 2 of highlight.</p>
1621 </dd><dt class="value">TOP_LEVEL_SETTER_DECLARATION</dt><dd>
1622
1623 <p>Only for version 2 of highlight.</p>
1624 </dd><dt class="value">TOP_LEVEL_SETTER_REFERENCE</dt><dd>
1625
1626 <p>Only for version 2 of highlight.</p>
1627 </dd><dt class="value">TOP_LEVEL_VARIABLE_DECLARATION</dt><dd>
1628
1629 <p>Only for version 2 of highlight.</p>
1630 </dd><dt class="value">TYPE_NAME_DYNAMIC</dt><dt class="value">TYPE_PARAME TER</dt><dt class="value">UNRESOLVED_INSTANCE_MEMBER_REFERENCE</dt><dd>
1631
1632 <p>Only for version 2 of highlight.</p>
1633 </dd><dt class="value">VALID_STRING_ESCAPE</dt><dd>
1634
1635 <p>Only for version 2 of highlight.</p>
1636 </dd></dl></dd><dt class="typeDefinition"><a name="type_LinkedEditGroup">L inkedEditGroup: object</a></dt><dd>
1637 <p>
1638 A collection of positions that should be linked (edited simultaneously)
1639 for the purposes of updating code after a source change. For example, if a
1640 set of edits introduced a new variable name, the group would contain all
1641 of the positions of the variable name so that if the client wanted to let
1642 the user edit the variable name after the operation, all occurrences of
1643 the name could be edited simultaneously.
1644 </p>
1645
1646 <dl><dt class="field"><b>positions (List&lt;<a href="#type_Position">Position< /a>&gt;)</b></dt><dd>
1647
1648 <p>
1649 The positions of the regions that should be edited simultaneously.
1650 </p>
1651 </dd><dt class="field"><b>length (int)</b></dt><dd>
1652
1653 <p>
1654 The length of the regions that should be edited simultaneously.
1655 </p>
1656 </dd><dt class="field"><b>suggestions (List&lt;<a href="#type_LinkedEditSu ggestion">LinkedEditSuggestion</a>&gt;)</b></dt><dd>
1657
1658 <p>
1659 Pre-computed suggestions for what every region might want to be
1660 changed to.
1661 </p>
1662 </dd></dl></dd><dt class="typeDefinition"><a name="type_LinkedEditSuggesti on">LinkedEditSuggestion: object</a></dt><dd>
1663 <p>
1664 A suggestion of a value that could be used to replace all of the linked
1665 edit regions in a <a href="#type_LinkedEditGroup">LinkedEditGroup</a>.
1666 </p>
1667
1668 <dl><dt class="field"><b>value (String)</b></dt><dd>
1669
1670 <p>
1671 The value that could be used to replace all of the linked edit
1672 regions.
1673 </p>
1674 </dd><dt class="field"><b>kind (<a href="#type_LinkedEditSuggestionKind">L inkedEditSuggestionKind</a>)</b></dt><dd>
1675
1676 <p>
1677 The kind of value being proposed.
1678 </p>
1679 </dd></dl></dd><dt class="typeDefinition"><a name="type_LinkedEditSuggesti onKind">LinkedEditSuggestionKind: String</a></dt><dd>
1680 <p>
1681 An enumeration of the kind of values that can be suggested for a linked
1682 edit.
1683 </p>
1684
1685 <dl><dt class="value">METHOD</dt><dt class="value">PARAMETER</dt><dt class="va lue">TYPE</dt><dt class="value">VARIABLE</dt></dl></dd><dt class="typeDefinition "><a name="type_Location">Location: object</a></dt><dd>
1686 <p>
1687 A location (character range) within a file.
1688 </p>
1689
1690 <dl><dt class="field"><b>file (<a href="#type_FilePath">FilePath</a>)</b></dt> <dd>
1691
1692 <p>
1693 The file containing the range.
1694 </p>
1695 </dd><dt class="field"><b>offset (int)</b></dt><dd>
1696
1697 <p>
1698 The offset of the range.
1699 </p>
1700 </dd><dt class="field"><b>length (int)</b></dt><dd>
1701
1702 <p>
1703 The length of the range.
1704 </p>
1705 </dd><dt class="field"><b>startLine (int)</b></dt><dd>
1706
1707 <p>
1708 The one-based index of the line containing the first character of the
1709 range.
1710 </p>
1711 </dd><dt class="field"><b>startColumn (int)</b></dt><dd>
1712
1713 <p>
1714 The one-based index of the column containing the first character of
1715 the range.
1716 </p>
1717 </dd></dl></dd><dt class="typeDefinition"><a name="type_NavigationRegion"> NavigationRegion: object</a></dt><dd>
1718 <p>
1719 A description of a region from which the user can navigate to the
1720 declaration of an element.
1721 </p>
1722
1723 <dl><dt class="field"><b>offset (int)</b></dt><dd>
1724
1725 <p>
1726 The offset of the region from which the user can navigate.
1727 </p>
1728 </dd><dt class="field"><b>length (int)</b></dt><dd>
1729
1730 <p>
1731 The length of the region from which the user can navigate.
1732 </p>
1733 </dd><dt class="field"><b>targets (List&lt;int&gt;)</b></dt><dd>
1734
1735 <p>
1736 The indexes of the targets (in the enclosing navigation response) to
1737 which the given region is bound. By opening the target, clients can
1738 implement one form of navigation. This list cannot be empty.
1739 </p>
1740 </dd></dl></dd><dt class="typeDefinition"><a name="type_NavigationTarget"> NavigationTarget: object</a></dt><dd>
1741 <p>
1742 A description of a target to which the user can navigate.
1743 </p>
1744
1745 <dl><dt class="field"><b>kind (<a href="#type_ElementKind">ElementKind</a>)</b ></dt><dd>
1746
1747 <p>
1748 The kind of the element.
1749 </p>
1750 </dd><dt class="field"><b>fileIndex (int)</b></dt><dd>
1751
1752 <p>
1753 The index of the file (in the enclosing navigation response) to
1754 navigate to.
1755 </p>
1756 </dd><dt class="field"><b>offset (int)</b></dt><dd>
1757
1758 <p>
1759 The offset of the region to which the user can navigate.
1760 </p>
1761 </dd><dt class="field"><b>length (int)</b></dt><dd>
1762
1763 <p>
1764 The length of the region to which the user can navigate.
1765 </p>
1766 </dd><dt class="field"><b>startLine (int)</b></dt><dd>
1767
1768 <p>
1769 The one-based index of the line containing the first character of the
1770 region.
1771 </p>
1772 </dd><dt class="field"><b>startColumn (int)</b></dt><dd>
1773
1774 <p>
1775 The one-based index of the column containing the first character of
1776 the region.
1777 </p>
1778 </dd></dl></dd><dt class="typeDefinition"><a name="type_Occurrences">Occur rences: object</a></dt><dd>
1779 <p>
1780 A description of the references to a single element within a single file.
1781 </p>
1782
1783 <dl><dt class="field"><b>element (<a href="#type_Element">Element</a>)</b></dt ><dd>
1784
1785 <p>
1786 The element that was referenced.
1787 </p>
1788 </dd><dt class="field"><b>offsets (List&lt;int&gt;)</b></dt><dd>
1789
1790 <p>
1791 The offsets of the name of the referenced element within the file.
1792 </p>
1793 </dd><dt class="field"><b>length (int)</b></dt><dd>
1794
1795 <p>
1796 The length of the name of the referenced element.
1797 </p>
1798 </dd></dl></dd><dt class="typeDefinition"><a name="type_Outline">Outline: object</a></dt><dd>
1799 <p>
1800 An node in the outline structure of a file.
1801 </p>
1802
1803 <dl><dt class="field"><b>element (<a href="#type_Element">Element</a>)</b></dt ><dd>
1804
1805 <p>
1806 A description of the element represented by this node.
1807 </p>
1808 </dd><dt class="field"><b>offset (int)</b></dt><dd>
1809
1810 <p>
1811 The offset of the first character of the element. This is different
1812 than the offset in the Element, which is the offset of the name of the
1813 element. It can be used, for example, to map locations in the file
1814 back to an outline.
1815 </p>
1816 </dd><dt class="field"><b>length (int)</b></dt><dd>
1817
1818 <p>
1819 The length of the element.
1820 </p>
1821 </dd><dt class="field"><b>children (<span style="color:#999999">optional</ span> List&lt;<a href="#type_Outline">Outline</a>&gt;)</b></dt><dd>
1822
1823 <p>
1824 The children of the node. The field will be omitted if the node has no
1825 children.
1826 </p>
1827 </dd></dl></dd><dt class="typeDefinition"><a name="type_Position">Position : object</a></dt><dd>
1828 <p>
1829 A position within a file.
1830 </p>
1831
1832 <dl><dt class="field"><b>file (<a href="#type_FilePath">FilePath</a>)</b></dt> <dd>
1833
1834 <p>
1835 The file containing the position.
1836 </p>
1837 </dd><dt class="field"><b>offset (int)</b></dt><dd>
1838
1839 <p>
1840 The offset of the position.
1841 </p>
1842 </dd></dl></dd><dt class="typeDefinition"><a name="type_RefactoringFeedbac k">RefactoringFeedback: object</a></dt><dd>
1843 <p>
1844 An abstract superclass of all refactoring feedbacks.
1845 </p>
1846
1847 <dl></dl></dd><dt class="typeDefinition"><a name="type_RefactoringKind">Refact oringKind: String</a></dt><dd>
1848 <p>
1849 An enumeration of the kinds of refactorings that can be created.
1850 </p>
1851
1852 <dl><dt class="value">CONVERT_GETTER_TO_METHOD</dt><dt class="value">CONVERT_M ETHOD_TO_GETTER</dt><dt class="value">EXTRACT_LOCAL_VARIABLE</dt><dt class="valu e">EXTRACT_METHOD</dt><dt class="value">INLINE_LOCAL_VARIABLE</dt><dt class="val ue">INLINE_METHOD</dt><dt class="value">MOVE_FILE</dt><dt class="value">RENAME</ dt><dt class="value">SORT_MEMBERS</dt></dl></dd><dt class="typeDefinition"><a na me="type_RefactoringMethodParameter">RefactoringMethodParameter: object</a></dt> <dd>
1853
1854 <p>
1855 A description of a parameter in a method refactoring.
1856 </p>
1857
1858 <dl><dt class="field"><b>id (<span style="color:#999999">optional</span> Strin g)</b></dt><dd>
1859
1860 <p>
1861 The unique identifier of the parameter. Clients may omit this field
1862 for the parameters they want to add.
1863 </p>
1864 </dd><dt class="field"><b>kind (<a href="#type_RefactoringMethodParameterK ind">RefactoringMethodParameterKind</a>)</b></dt><dd>
1865
1866 <p>
1867 The kind of the parameter.
1868 </p>
1869 </dd><dt class="field"><b>type (String)</b></dt><dd>
1870
1871 <p>
1872 The type that should be given to the parameter, or the return type of
1873 the parameter's function type.
1874 </p>
1875 </dd><dt class="field"><b>name (String)</b></dt><dd>
1876
1877 <p>
1878 The name that should be given to the parameter.
1879 </p>
1880 </dd><dt class="field"><b>parameters (<span style="color:#999999">optional </span> String)</b></dt><dd>
1881
1882 <p>
1883 The parameter list of the parameter's function type. If the parameter
1884 is not of a function type, this field will not be defined. If the
1885 function type has zero parameters, this field will have a value of
1886 '()'.
1887 </p>
1888 </dd></dl></dd><dt class="typeDefinition"><a name="type_RefactoringOptions ">RefactoringOptions: object</a></dt><dd>
1889 <p>
1890 An abstract superclass of all refactoring options.
1891 </p>
1892
1893 <dl></dl></dd><dt class="typeDefinition"><a name="type_RefactoringMethodParame terKind">RefactoringMethodParameterKind: String</a></dt><dd>
1894 <p>
1895 An enumeration of the kinds of parameters.
1896 </p>
1897
1898 <dl><dt class="value">REQUIRED</dt><dt class="value">POSITIONAL</dt><dt class= "value">NAMED</dt></dl></dd><dt class="typeDefinition"><a name="type_Refactoring Problem">RefactoringProblem: object</a></dt><dd>
1899 <p>
1900 A description of a problem related to a refactoring.
1901 </p>
1902
1903 <dl><dt class="field"><b>severity (<a href="#type_RefactoringProblemSeverity"> RefactoringProblemSeverity</a>)</b></dt><dd>
1904
1905 <p>
1906 The severity of the problem being represented.
1907 </p>
1908 </dd><dt class="field"><b>message (String)</b></dt><dd>
1909
1910 <p>
1911 A human-readable description of the problem being represented.
1912 </p>
1913 </dd><dt class="field"><b>location (<span style="color:#999999">optional</ span> <a href="#type_Location">Location</a>)</b></dt><dd>
1914
1915 <p>
1916 The location of the problem being represented. This field is omitted
1917 unless there is a specific location associated with the problem (such
1918 as a location where an element being renamed will be shadowed).
1919 </p>
1920 </dd></dl></dd><dt class="typeDefinition"><a name="type_RefactoringProblem Severity">RefactoringProblemSeverity: String</a></dt><dd>
1921 <p>
1922 An enumeration of the severities of problems that can be returned by the
1923 refactoring requests.
1924 </p>
1925
1926 <dl><dt class="value">INFO</dt><dd>
1927
1928 <p>
1929 A minor code problem. No example, because it is not used yet.
1930 </p>
1931 </dd><dt class="value">WARNING</dt><dd>
1932
1933 <p>
1934 A minor code problem. For example names of local variables should be
1935 camel case and start with a lower case letter. Staring the name of a
1936 variable with an upper case is OK from the language point of view, but
1937 it is nice to warn the user.
1938 </p>
1939 </dd><dt class="value">ERROR</dt><dd>
1940
1941 <p>
1942 The refactoring technically can be performed, but there is a logical
1943 problem. For example the name of a local variable being extracted
1944 conflicts with another name in the scope, or duplicate parameter names
1945 in the method being extracted, or a conflict between a parameter name
1946 and a local variable, etc. In some cases the location of the problem
1947 is also provided, so the IDE can show user the location and the
1948 problem, and let the user decide whether they want to perform the
1949 refactoring. For example the name conflict might be expected, and the
1950 user wants to fix it afterwards.
1951 </p>
1952 </dd><dt class="value">FATAL</dt><dd>
1953
1954 <p>
1955 A fatal error, which prevents performing the refactoring. For example
1956 the name of a local variable being extracted is not a valid
1957 identifier, or selection is not a valid expression.
1958 </p>
1959 </dd></dl></dd><dt class="typeDefinition"><a name="type_RemoveContentOverl ay">RemoveContentOverlay: object</a></dt><dd>
1960 <p>
1961 A directive to remove an existing file content overlay. After processing
1962 this directive, the file contents will once again be read from the file
1963 system.
1964 </p>
1965 <p>
1966 If this directive is used on a file that doesn't currently have a content
1967 overlay, it has no effect.
1968 </p>
1969
1970 <dl><dt class="field"><b>type = "remove"</b></dt><dd></dd></dl></dd><dt class= "typeDefinition"><a name="type_RequestError">RequestError: object</a></dt><dd>
1971 <p>
1972 An indication of a problem with the execution of the server,
1973 typically in response to a request.
1974 </p>
1975
1976 <dl><dt class="field"><b>code (<a href="#type_RequestErrorCode">RequestErrorCo de</a>)</b></dt><dd>
1977
1978 <p>
1979 A code that uniquely identifies the error that occurred.
1980 </p>
1981 </dd><dt class="field"><b>message (String)</b></dt><dd>
1982
1983 <p>
1984 A short description of the error.
1985 </p>
1986 </dd><dt class="field"><b>stackTrace (<span style="color:#999999">optional </span> String)</b></dt><dd>
1987
1988 <p>
1989 The stack trace associated with processing the request, used for
1990 debugging the plugin.
1991 </p>
1992 </dd></dl></dd><dt class="typeDefinition"><a name="type_RequestErrorCode"> RequestErrorCode: String</a></dt><dd>
1993 <p>
1994 An enumeration of the types of errors that can occur in the execution of
1995 the plugin.
1996 </p>
1997
1998 <dl><dt class="value">INVALID_OVERLAY_CHANGE</dt><dd>
1999
2000 <p>
2001 An "analysis.updateContent" request contained a
2002 <a href="#type_ChangeContentOverlay">ChangeContentOverlay</a> object
2003 that can't be applied. This can happen for two reasons:
2004 </p>
2005 <ul>
2006 <li>
2007 there was no preceding
2008 <a href="#type_AddContentOverlay">AddContentOverlay</a> and hence no
2009 content to which the edits could be applied, or
2010 </li>
2011 <li>
2012 one or more of the specified edits have an offset or length that is
2013 out of range.
2014 </li>
2015 </ul>
2016 </dd><dt class="value">INVALID_PARAMETER</dt><dd>
2017
2018 <p>
2019 One of the method parameters was invalid.
2020 </p>
2021 </dd><dt class="value">PLUGIN_ERROR</dt><dd>
2022
2023 <p>
2024 An internal error occurred in the plugin while attempting to respond
2025 to a request. Also see the plugin.error notification for errors that
2026 occur outside of handling a request.
2027 </p>
2028 </dd><dt class="value">UNKNOWN_REQUEST</dt><dd>
2029
2030 <p>
2031 A request was received that the plugin does not recognize, or cannot
2032 handle in its current configuration.
2033 </p>
2034 </dd></dl></dd><dt class="typeDefinition"><a name="type_SourceChange">Sour ceChange: object</a></dt><dd>
2035 <p>
2036 A description of a set of edits that implement a single conceptual change.
2037 </p>
2038
2039 <dl><dt class="field"><b>message (String)</b></dt><dd>
2040
2041 <p>
2042 A human-readable description of the change to be applied.
2043 </p>
2044 </dd><dt class="field"><b>edits (List&lt;<a href="#type_SourceFileEdit">So urceFileEdit</a>&gt;)</b></dt><dd>
2045
2046 <p>
2047 A list of the edits used to effect the change, grouped by file.
2048 </p>
2049 </dd><dt class="field"><b>linkedEditGroups (List&lt;<a href="#type_LinkedE ditGroup">LinkedEditGroup</a>&gt;)</b></dt><dd>
2050
2051 <p>
2052 A list of the linked editing groups used to customize the changes that
2053 were made.
2054 </p>
2055 </dd><dt class="field"><b>selection (<span style="color:#999999">optional< /span> <a href="#type_Position">Position</a>)</b></dt><dd>
2056
2057 <p>
2058 The position that should be selected after the edits have been
2059 applied.
2060 </p>
2061 </dd></dl></dd><dt class="typeDefinition"><a name="type_SourceEdit">Source Edit: object</a></dt><dd>
2062 <p>
2063 A description of a single change to a single file.
2064 </p>
2065
2066 <dl><dt class="field"><b>offset (int)</b></dt><dd>
2067
2068 <p>
2069 The offset of the region to be modified.
2070 </p>
2071 </dd><dt class="field"><b>length (int)</b></dt><dd>
2072
2073 <p>
2074 The length of the region to be modified.
2075 </p>
2076 </dd><dt class="field"><b>replacement (String)</b></dt><dd>
2077
2078 <p>
2079 The code that is to replace the specified region in the original code.
2080 </p>
2081 </dd><dt class="field"><b>id (<span style="color:#999999">optional</span> String)</b></dt><dd>
2082
2083 <p>
2084 An identifier that uniquely identifies this source edit from other
2085 edits in the same response. This field is omitted unless a containing
2086 structure needs to be able to identify the edit for some reason.
2087 </p>
2088 <p>
2089 For example, some refactoring operations can produce edits that might
2090 not be appropriate (referred to as potential edits). Such edits will
2091 have an id so that they can be referenced. Edits in the same response
2092 that do not need to be referenced will not have an id.
2093 </p>
2094 </dd></dl></dd><dt class="typeDefinition"><a name="type_SourceFileEdit">So urceFileEdit: object</a></dt><dd>
2095 <p>
2096 A description of a set of changes to a single file.
2097 </p>
2098
2099 <dl><dt class="field"><b>file (<a href="#type_FilePath">FilePath</a>)</b></dt> <dd>
2100
2101 <p>
2102 The file containing the code to be modified.
2103 </p>
2104 </dd><dt class="field"><b>fileStamp (long)</b></dt><dd>
2105
2106 <p>
2107 The modification stamp of the file at the moment when the change was
2108 created, in milliseconds since the "Unix epoch". Will be -1 if the
2109 file did not exist and should be created. The client may use this
2110 field to make sure that the file was not changed since then, so it is
2111 safe to apply the change.
2112 </p>
2113 </dd><dt class="field"><b>edits (List&lt;<a href="#type_SourceEdit">Source Edit</a>&gt;)</b></dt><dd>
2114
2115 <p>
2116 A list of the edits used to effect the change.
2117 </p>
2118 </dd></dl></dd><dt class="typeDefinition"><a name="type_WatchEvent">WatchE vent: object</a></dt><dd>
2119 <p>
2120 A watch event sent by the server when the file system has been modified.
2121 </p>
2122
2123 <dl><dt class="field"><b>type (<a href="#type_WatchEventType">WatchEventType</ a>)</b></dt><dd>
2124
2125 <p>
2126 The type of change represented by this event.
2127 </p>
2128 </dd><dt class="field"><b>path (String)</b></dt><dd>
2129
2130 <p>
2131 The absolute path of the file or directory that changed.
2132 </p>
2133 </dd></dl></dd><dt class="typeDefinition"><a name="type_WatchEventType">Wa tchEventType: String</a></dt><dd>
2134 <p>
2135 An indication of the type of change associated with a watch event.
2136 </p>
2137
2138 <dl><dt class="value">ADD</dt><dd>
2139
2140 <p>
2141 An indication that the file or directory was added.
2142 </p>
2143 </dd><dt class="value">MODIFY</dt><dd>
2144
2145 <p>
2146 An indication that the file was modified.
2147 </p>
2148 </dd><dt class="value">REMOVE</dt><dd>
2149
2150 <p>
2151 An indication that the file or directory was removed.
2152 </p>
2153 </dd></dl></dd></dl>
2154
2155 <h2><a name="refactorings">Refactorings</a></h2>
2156 <p>
2157 This section contains additional information for each kind of refactoring.
2158 In addition to a brief description of the refactoring, there is a
2159 specification of the feedback that is provided when a refactoring is
2160 requested using the
2161 <a href="request_edit.getRefactoring">edit.getRefactoring</a> request
2162 (designed to improve the UX) and the options that may be provided to
2163 <a href="request_edit.getRefactoring">edit.getRefactoring</a>.
2164 </p>
2165
2166
2167
2168
2169
2170
2171
2172
2173 <dl><dt class="refactoring">CONVERT_GETTER_TO_METHOD</dt><dd>
2174 <p>
2175 Convert a getter into a method by removing the keyword get and adding an
2176 empty parameter list.
2177 </p>
2178 <p>
2179 It is an error if the range contains anything other than all or part of
2180 the name of a single getter.
2181 </p>
2182 <h4>Feedback:</h4><p>none</p><h4>Options:</h4><p>none</p></dd><dt class="refac toring">CONVERT_METHOD_TO_GETTER</dt><dd>
2183 <p>
2184 Convert a method into a getter by adding the keyword get and removing the
2185 parameter list.
2186 </p>
2187 <p>
2188 It is an error if the range contains anything other than all or part of
2189 the name of a single method or if the method has a non-empty parameter
2190 list.
2191 </p>
2192 <h4>Feedback:</h4><p>none</p><h4>Options:</h4><p>none</p></dd><dt class="refac toring">EXTRACT_LOCAL_VARIABLE</dt><dd>
2193 <p>
2194 Create a local variable initialized by the expression that covers the
2195 specified selection.
2196 </p>
2197 <p>
2198 It is an error if the selection range is not covered by a complete
2199 expression.
2200 </p>
2201
2202
2203 <h4>Feedback:</h4><dl><dt class="field"><b>coveringExpressionOffsets (<span st yle="color:#999999">optional</span> List&lt;int&gt;)</b></dt><dd>
2204
2205 <p>
2206 The offsets of the expressions that cover the specified selection,
2207 from the down most to the up most.
2208 </p>
2209 </dd><dt class="field"><b>coveringExpressionLengths (<span style="color:#9 99999">optional</span> List&lt;int&gt;)</b></dt><dd>
2210
2211 <p>
2212 The lengths of the expressions that cover the specified selection,
2213 from the down most to the up most.
2214 </p>
2215 </dd><dt class="field"><b>names (List&lt;String&gt;)</b></dt><dd>
2216
2217 <p>
2218 The proposed names for the local variable.
2219 </p>
2220 </dd><dt class="field"><b>offsets (List&lt;int&gt;)</b></dt><dd>
2221
2222 <p>
2223 The offsets of the expressions that would be replaced by a reference
2224 to the variable.
2225 </p>
2226 </dd><dt class="field"><b>lengths (List&lt;int&gt;)</b></dt><dd>
2227
2228 <p>
2229 The lengths of the expressions that would be replaced by a reference
2230 to the variable. The lengths correspond to the offsets. In other
2231 words, for a given expression, if the offset of that expression is
2232 offsets[i], then the length of that expression is lengths[i].
2233 </p>
2234 </dd></dl><h4>Options:</h4><dl><dt class="field"><b>name (String)</b></dt> <dd>
2235
2236 <p>
2237 The name that the local variable should be given.
2238 </p>
2239 </dd><dt class="field"><b>extractAll (bool)</b></dt><dd>
2240
2241 <p>
2242 True if all occurrences of the expression within the scope in which
2243 the variable will be defined should be replaced by a reference to the
2244 local variable. The expression used to initiate the refactoring will
2245 always be replaced.
2246 </p>
2247 </dd></dl></dd><dt class="refactoring">EXTRACT_METHOD</dt><dd>
2248 <p>
2249 Create a method whose body is the specified expression or list of
2250 statements, possibly augmented with a return statement.
2251 </p>
2252 <p>
2253 It is an error if the range contains anything other than a complete
2254 expression (no partial expressions are allowed) or a complete sequence of
2255 statements.
2256 </p>
2257
2258
2259 <h4>Feedback:</h4><dl><dt class="field"><b>offset (int)</b></dt><dd>
2260
2261 <p>
2262 The offset to the beginning of the expression or statements that will
2263 be extracted.
2264 </p>
2265 </dd><dt class="field"><b>length (int)</b></dt><dd>
2266
2267 <p>
2268 The length of the expression or statements that will be extracted.
2269 </p>
2270 </dd><dt class="field"><b>returnType (String)</b></dt><dd>
2271
2272 <p>
2273 The proposed return type for the method. If the returned element does
2274 not have a declared return type, this field will contain an empty
2275 string.
2276 </p>
2277 </dd><dt class="field"><b>names (List&lt;String&gt;)</b></dt><dd>
2278
2279 <p>
2280 The proposed names for the method.
2281 </p>
2282 </dd><dt class="field"><b>canCreateGetter (bool)</b></dt><dd>
2283
2284 <p>
2285 True if a getter could be created rather than a method.
2286 </p>
2287 </dd><dt class="field"><b>parameters (List&lt;<a href="#type_RefactoringMe thodParameter">RefactoringMethodParameter</a>&gt;)</b></dt><dd>
2288
2289 <p>
2290 The proposed parameters for the method.
2291 </p>
2292 </dd><dt class="field"><b>offsets (List&lt;int&gt;)</b></dt><dd>
2293
2294 <p>
2295 The offsets of the expressions or statements that would be replaced by
2296 an invocation of the method.
2297 </p>
2298 </dd><dt class="field"><b>lengths (List&lt;int&gt;)</b></dt><dd>
2299
2300 <p>
2301 The lengths of the expressions or statements that would be replaced by
2302 an invocation of the method. The lengths correspond to the offsets. In
2303 other words, for a given expression (or block of statements), if the
2304 offset of that expression is offsets[i], then the length of that
2305 expression is lengths[i].
2306 </p>
2307 </dd></dl><h4>Options:</h4><dl><dt class="field"><b>returnType (String)</b ></dt><dd>
2308
2309 <p>
2310 The return type that should be defined for the method.
2311 </p>
2312 </dd><dt class="field"><b>createGetter (bool)</b></dt><dd>
2313
2314 <p>
2315 True if a getter should be created rather than a method. It is an
2316 error if this field is true and the list of parameters is non-empty.
2317 </p>
2318 </dd><dt class="field"><b>name (String)</b></dt><dd>
2319
2320 <p>
2321 The name that the method should be given.
2322 </p>
2323 </dd><dt class="field"><b>parameters (List&lt;<a href="#type_RefactoringMe thodParameter">RefactoringMethodParameter</a>&gt;)</b></dt><dd>
2324
2325 <p>
2326 The parameters that should be defined for the method.
2327 </p>
2328 <p>
2329 It is an error if a REQUIRED or NAMED parameter follows a POSITIONAL
2330 parameter. It is an error if a REQUIRED or POSITIONAL parameter
2331 follows a NAMED parameter.
2332 </p>
2333 <ul>
2334 <li>
2335 To change the order and/or update proposed parameters, add
2336 parameters with the same identifiers as proposed.
2337 </li>
2338 <li>
2339 To add new parameters, omit their identifier.
2340 </li>
2341 <li>
2342 To remove some parameters, omit them in this list.
2343 </li>
2344 </ul>
2345 </dd><dt class="field"><b>extractAll (bool)</b></dt><dd>
2346
2347 <p>
2348 True if all occurrences of the expression or statements should be
2349 replaced by an invocation of the method. The expression or statements
2350 used to initiate the refactoring will always be replaced.
2351 </p>
2352 </dd></dl></dd><dt class="refactoring">INLINE_LOCAL_VARIABLE</dt><dd>
2353 <p>
2354 Inline the initializer expression of a local variable in place of any
2355 references to that variable.
2356 </p>
2357 <p>
2358 It is an error if the range contains anything other than all or part of
2359 the name of a single local variable.
2360 </p>
2361
2362 <h4>Feedback:</h4><dl><dt class="field"><b>name (String)</b></dt><dd>
2363
2364 <p>
2365 The name of the variable being inlined.
2366 </p>
2367 </dd><dt class="field"><b>occurrences (int)</b></dt><dd>
2368
2369 <p>
2370 The number of times the variable occurs.
2371 </p>
2372 </dd></dl><h4>Options:</h4><p>none</p></dd><dt class="refactoring">INLINE_ METHOD</dt><dd>
2373 <p>
2374 Inline a method in place of one or all references to that method.
2375 </p>
2376 <p>
2377 It is an error if the range contains anything other than all or part of
2378 the name of a single method.
2379 </p>
2380
2381
2382 <h4>Feedback:</h4><dl><dt class="field"><b>className (<span style="color:#9999 99">optional</span> String)</b></dt><dd>
2383
2384 <p>
2385 The name of the class enclosing the method being inlined. If not a
2386 class member is being inlined, this field will be absent.
2387 </p>
2388 </dd><dt class="field"><b>methodName (String)</b></dt><dd>
2389
2390 <p>
2391 The name of the method (or function) being inlined.
2392 </p>
2393 </dd><dt class="field"><b>isDeclaration (bool)</b></dt><dd>
2394
2395 <p>
2396 True if the declaration of the method is selected and all references
2397 should be inlined.
2398 </p>
2399 </dd></dl><h4>Options:</h4><dl><dt class="field"><b>deleteSource (bool)</b ></dt><dd>
2400
2401 <p>
2402 True if the method being inlined should be removed. It is an error if
2403 this field is true and inlineAll is false.
2404 </p>
2405 </dd><dt class="field"><b>inlineAll (bool)</b></dt><dd>
2406
2407 <p>
2408 True if all invocations of the method should be inlined, or false if
2409 only the invocation site used to create this refactoring should be
2410 inlined.
2411 </p>
2412 </dd></dl></dd><dt class="refactoring">MOVE_FILE</dt><dd>
2413 <p>
2414 Move the given file and update all of the references to that file and from
2415 it. The move operation is supported in general case - for renaming a file
2416 in the same folder, moving it to a different folder or both.
2417 </p>
2418 <p>
2419 The refactoring must be activated before an actual file moving operation
2420 is performed.
2421 </p>
2422 <p>
2423 The "offset" and "length" fields from the request are ignored, but the
2424 file specified in the request specifies the file to be moved.
2425 </p>
2426
2427 <h4>Feedback:</h4><p>none</p><h4>Options:</h4><dl><dt class="field"><b>newFile (<a href="#type_FilePath">FilePath</a>)</b></dt><dd>
2428
2429 <p>
2430 The new file path to which the given file is being moved.
2431 </p>
2432 </dd></dl></dd><dt class="refactoring">RENAME</dt><dd>
2433 <p>
2434 Rename a given element and all of the references to that element.
2435 </p>
2436 <p>
2437 It is an error if the range contains anything other than all or part of
2438 the name of a single function (including methods, getters and setters),
2439 variable (including fields, parameters and local variables), class or
2440 function type.
2441 </p>
2442
2443
2444 <h4>Feedback:</h4><dl><dt class="field"><b>offset (int)</b></dt><dd>
2445
2446 <p>
2447 The offset to the beginning of the name selected to be renamed.
2448 </p>
2449 </dd><dt class="field"><b>length (int)</b></dt><dd>
2450
2451 <p>
2452 The length of the name selected to be renamed.
2453 </p>
2454 </dd><dt class="field"><b>elementKindName (String)</b></dt><dd>
2455
2456 <p>
2457 The human-readable description of the kind of element being renamed
2458 (such as “class” or “function type alias”).
2459 </p>
2460 </dd><dt class="field"><b>oldName (String)</b></dt><dd>
2461
2462 <p>
2463 The old name of the element before the refactoring.
2464 </p>
2465 </dd></dl><h4>Options:</h4><dl><dt class="field"><b>newName (String)</b></ dt><dd>
2466
2467 <p>
2468 The name that the element should have after the refactoring.
2469 </p>
2470 </dd></dl></dd></dl>
2471 <h2 class="domain"><a name="index">Index</a></h2>
2472 <h3>Domains</h3><h4>plugin (<a href="#domain_plugin">↑</a>)</h4><div class="subi ndex"><h5>Requests</h5><ul><li><a href="#request_plugin.versionCheck">versionChe ck</a></li><li><a href="#request_plugin.shutdown">shutdown</a></li></ul><h5>Noti fications</h5><div class="subindex"><ul><li><a href="#notification_plugin.error" >error</a></li></ul></div></div><h4>analysis (<a href="#domain_analysis">↑</a>)< /h4><div class="subindex"><h5>Requests</h5><ul><li><a href="#request_analysis.ha ndleWatchEvents">handleWatchEvents</a></li><li><a href="#request_analysis.reanal yze">reanalyze</a></li><li><a href="#request_analysis.setContextBuilderOptions"> setContextBuilderOptions</a></li><li><a href="#request_analysis.setContextRoots" >setContextRoots</a></li><li><a href="#request_analysis.setPriorityFiles">setPri orityFiles</a></li><li><a href="#request_analysis.setSubscriptions">setSubscript ions</a></li><li><a href="#request_analysis.updateContent">updateContent</a></li ></ul><h5>Notifications</h5><div class="subindex"><ul><li><a href="#notification _analysis.errors">errors</a></li><li><a href="#notification_analysis.folding">fo lding</a></li><li><a href="#notification_analysis.highlights">highlights</a></li ><li><a href="#notification_analysis.navigation">navigation</a></li><li><a href= "#notification_analysis.occurrences">occurrences</a></li><li><a href="#notificat ion_analysis.outline">outline</a></li></ul></div></div><h4>completion (<a href=" #domain_completion">↑</a>)</h4><div class="subindex"><h5>Requests</h5><ul><li><a href="#request_completion.getSuggestions">getSuggestions</a></li></ul></div><h4 >edit (<a href="#domain_edit">↑</a>)</h4><div class="subindex"><h5>Requests</h5> <ul><li><a href="#request_edit.getAssists">getAssists</a></li><li><a href="#requ est_edit.getAvailableRefactorings">getAvailableRefactorings</a></li><li><a href= "#request_edit.getFixes">getFixes</a></li><li><a href="#request_edit.getRefactor ing">getRefactoring</a></li></ul></div><h3>Types (<a href="#types">↑</a>)</h3><d iv class="subindex"><ul><li><a href="#type_AddContentOverlay">AddContentOverlay< /a></li><li><a href="#type_AnalysisError">AnalysisError</a></li><li><a href="#ty pe_AnalysisErrorFixes">AnalysisErrorFixes</a></li><li><a href="#type_AnalysisErr orSeverity">AnalysisErrorSeverity</a></li><li><a href="#type_AnalysisErrorType"> AnalysisErrorType</a></li><li><a href="#type_AnalysisService">AnalysisService</a ></li><li><a href="#type_ChangeContentOverlay">ChangeContentOverlay</a></li><li> <a href="#type_CompletionSuggestion">CompletionSuggestion</a></li><li><a href="# type_CompletionSuggestionKind">CompletionSuggestionKind</a></li><li><a href="#ty pe_ContextBuilderOptions">ContextBuilderOptions</a></li><li><a href="#type_Conte xtRoot">ContextRoot</a></li><li><a href="#type_Element">Element</a></li><li><a h ref="#type_ElementKind">ElementKind</a></li><li><a href="#type_FilePath">FilePat h</a></li><li><a href="#type_FoldingKind">FoldingKind</a></li><li><a href="#type _FoldingRegion">FoldingRegion</a></li><li><a href="#type_HighlightRegion">Highli ghtRegion</a></li><li><a href="#type_HighlightRegionType">HighlightRegionType</a ></li><li><a href="#type_LinkedEditGroup">LinkedEditGroup</a></li><li><a href="# type_LinkedEditSuggestion">LinkedEditSuggestion</a></li><li><a href="#type_Linke dEditSuggestionKind">LinkedEditSuggestionKind</a></li><li><a href="#type_Locatio n">Location</a></li><li><a href="#type_NavigationRegion">NavigationRegion</a></l i><li><a href="#type_NavigationTarget">NavigationTarget</a></li><li><a href="#ty pe_Occurrences">Occurrences</a></li><li><a href="#type_Outline">Outline</a></li> <li><a href="#type_Position">Position</a></li><li><a href="#type_RefactoringFeed back">RefactoringFeedback</a></li><li><a href="#type_RefactoringKind">Refactorin gKind</a></li><li><a href="#type_RefactoringMethodParameter">RefactoringMethodPa rameter</a></li><li><a href="#type_RefactoringOptions">RefactoringOptions</a></l i><li><a href="#type_RefactoringMethodParameterKind">RefactoringMethodParameterK ind</a></li><li><a href="#type_RefactoringProblem">RefactoringProblem</a></li><l i><a href="#type_RefactoringProblemSeverity">RefactoringProblemSeverity</a></li> <li><a href="#type_RemoveContentOverlay">RemoveContentOverlay</a></li><li><a hre f="#type_RequestError">RequestError</a></li><li><a href="#type_RequestErrorCode" >RequestErrorCode</a></li><li><a href="#type_SourceChange">SourceChange</a></li> <li><a href="#type_SourceEdit">SourceEdit</a></li><li><a href="#type_SourceFileE dit">SourceFileEdit</a></li><li><a href="#type_WatchEvent">WatchEvent</a></li><l i><a href="#type_WatchEventType">WatchEventType</a></li></ul></div><h3>Refactori ngs (<a href="#refactorings">↑</a>)</h3><div class="subindex"><ul><li><a href="# refactoring_CONVERT_GETTER_TO_METHOD">CONVERT_GETTER_TO_METHOD</a></li><li><a hr ef="#refactoring_CONVERT_METHOD_TO_GETTER">CONVERT_METHOD_TO_GETTER</a></li><li> <a href="#refactoring_EXTRACT_LOCAL_VARIABLE">EXTRACT_LOCAL_VARIABLE</a></li><li ><a href="#refactoring_EXTRACT_METHOD">EXTRACT_METHOD</a></li><li><a href="#refa ctoring_INLINE_LOCAL_VARIABLE">INLINE_LOCAL_VARIABLE</a></li><li><a href="#refac toring_INLINE_METHOD">INLINE_METHOD</a></li><li><a href="#refactoring_MOVE_FILE" >MOVE_FILE</a></li><li><a href="#refactoring_RENAME">RENAME</a></li></ul></div>
2473
2474
2475 </body></html>
OLDNEW
« no previous file with comments | « no previous file | pkg/analyzer_plugin/lib/protocol/generated_protocol.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698