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

Unified Diff: pkg/analysis_server/tool/spec/spec_input.html

Issue 2879273002: Make server use the common protocol classes (Closed)
Patch Set: Created 3 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: pkg/analysis_server/tool/spec/spec_input.html
diff --git a/pkg/analysis_server/tool/spec/spec_input.html b/pkg/analysis_server/tool/spec/spec_input.html
index 406fba0d2931a2cf77a76b79b6e90ba410d7670c..b322e53f964277a0303bdb659cef588d696e2da2 100644
--- a/pkg/analysis_server/tool/spec/spec_input.html
+++ b/pkg/analysis_server/tool/spec/spec_input.html
@@ -1,1537 +1,1623 @@
<!doctype html>
<html>
- <head>
- <meta charset="UTF-8"/>
- <title>Analysis Server API Specification</title>
- </head>
- <body>
- <h1>Analysis Server API Specification</h1>
- <h1 style="color:#999999">Version <version>1.18.1</version></h1>
- <p>
- This document contains a specification of the API provided by the
- analysis server. The API in this document is currently under
- development. Changes to the API will be accompanied by an update to the
- protocol version number according to the principles of semantic
- versioning (<a href="http://semver.org/">semver.org</a>).
- </p>
- <h2>Overview</h2>
- <p>
- The analysis server API is a bi-directional client-server
- API. The API is independent of the transport mechanism used, but
- is heavily influenced by a model in which sockets or character
- streams are used to transport JSON-RPC encoded information.
- </p>
- <h3>Transport Mechanism</h3>
- <p>
- The characters passed to the server are expected to be encoded
- using UTF-8.
- </p>
- <p>
- When character streams are used as the transport, messages are
- delineated by newlines. This means, in particular, that the JSON
- encoding process must not introduce newlines within a
- message. Note however that newlines are used in this document
- for readability.
- </p>
- <p>
- It is the client's responsibility to read output from the server to
- avoid its blocking.
- </p>
- <p>
- To ease interoperability with Lisp-based clients (which may not
- be able to easily distinguish between empty lists, empty maps,
- and null), client-to-server communication is allowed to replace
- any instance of "<tt>{}</tt>" or "<tt>[]</tt>" with null. The
- server will always properly represent empty lists as
- "<tt>[]</tt>" and empty maps as "<tt>{}</tt>".
- </p>
- <h3>Communication Structure</h3>
- <p>
- Clients can make a request of the server and the server will
- provide a response for each request that it receives. While many
- of the requests that can be made by a client are informational
- in nature, we have chosen to always return a response so that
- clients can know whether the request was received and was
- correct.
- </p>
- <p>
- There is no guarantee concerning the order in which responses
- will be returned, but there is a guarantee that the server will
- process requests in the order in which they are sent as long as
- the transport mechanism also makes this guarantee. Responses can
- be returned in an order that is different from the order in
- which the requests were received because some requests take
- longer to process than others.
- </p>
- <p>
- Every request is required to have two fields and may have two
- additional optional fields. The first required field is the ‘id’
- field, which is only used by the server to associate a response
- with the request that generated the response. The second
- required field is the ‘method’ field, which is used to determine
- what the server is being requested to do. One optional field is
- the ‘params’ field, whose structure is dependent on the method
- being requested. The structure of this field is described with
- each request for which it is required. The other optional field
- is the 'clientRequestTime' field, which is a number indicating
- the time at which the client made the request (milliseconds
- since epoch). Providing clientRequestTime helps us track
- how responsive analysis server is to client requests
- and better address any issues that occur.
- </p>
- <p>
- Every response has up to three fields. The first field is the
- ‘id’ field, which is always present and whose value is the
- identifier that was passed to the request that generated the
- response. The second field is the ‘error’ field, which is only
- present if an error was encountered while processing the
- request. The third field is the ‘result’ field, whose structure
- is dependent on the method being responded to, and is described
- with each request that will produce it.
- </p>
- <p>
- The server can also communicate to the clients by sending a
- notification. The purpose of these notifications is to provide
- information to clients as it becomes available rather than to
- require that clients poll for it. Unless explicitly stated, all
- notifications are designed to return the complete information
- available at the time the notification is sent; clients are not
- required to update previously communicated
- results. Consequently, the server can and should return partial
- results before all results are available. For example, the
- syntactic errors for a file can be returned as soon as the
- syntactic analysis is complete, and both syntactic and semantic
- errors can be returned together at a later time.
- </p>
- <p>
- Each notification has two fields. The first field is the ‘event’
- field, which identifies the kind of notification. The second
- field is the ‘params’ field, whose structure is dependent on the
- kind of notification being sent. The structure of this field is
- described with each notification.
- </p>
- <p>
- In order to be backward compatible, clients should ignore fields that were
- not specified in the version of the API on which they were based. Clients
- should also use the server.getVersion request to test that the version of
- the server supports an API before using it.
- </p>
- <h3>Eventual Consistency</h3>
- <p>
- The analysis server satisfies requests under the principle of
- <a href="https://en.wikipedia.org/wiki/Eventual_consistency">eventual consistency</a>.
- That is, in some cases it may return responses with the currently available
- results while it's catching up with unprocessed changes.
- </p>
- <h3>Domains</h3>
- <p>
- For convenience, the API is divided into domains. Each domain is specified
- in a separate section below. The specifications of the API’s refer to data
- structures beyond the standard JSON primitives. These data structures are
- documented in the section titled <a href="#types">Types</a>.
- </p>
- <toc></toc>
- <h3>Command-line Arguments</h3>
- <p>
- The command-line arguments that can be passed to the server.
- </p>
- <h4>Options</h4>
- <blockquote>
- <dl>
- <dt>--client-id</dt>
- <dd>
+<head>
+ <meta charset="UTF-8"/>
+ <title>Analysis Server API Specification</title>
+</head>
+<body>
+<h1>Analysis Server API Specification</h1>
+<h1 style="color:#999999">Version
+ <version>1.18.1</version>
+</h1>
+<p>
+ This document contains a specification of the API provided by the
+ analysis server. The API in this document is currently under
+ development. Changes to the API will be accompanied by an update to the
+ protocol version number according to the principles of semantic
+ versioning (<a href="http://semver.org/">semver.org</a>).
+</p>
+<h2>Overview</h2>
+<p>
+ The analysis server API is a bi-directional client-server
+ API. The API is independent of the transport mechanism used, but
+ is heavily influenced by a model in which sockets or character
+ streams are used to transport JSON-RPC encoded information.
+</p>
+<h3>Transport Mechanism</h3>
+<p>
+ The characters passed to the server are expected to be encoded
+ using UTF-8.
+</p>
+<p>
+ When character streams are used as the transport, messages are
+ delineated by newlines. This means, in particular, that the JSON
+ encoding process must not introduce newlines within a
+ message. Note however that newlines are used in this document
+ for readability.
+</p>
+<p>
+ It is the client's responsibility to read output from the server to
+ avoid its blocking.
+</p>
+<p>
+ To ease interoperability with Lisp-based clients (which may not
+ be able to easily distinguish between empty lists, empty maps,
+ and null), client-to-server communication is allowed to replace
+ any instance of "<tt>{}</tt>" or "<tt>[]</tt>" with null. The
+ server will always properly represent empty lists as
+ "<tt>[]</tt>" and empty maps as "<tt>{}</tt>".
+</p>
+<h3>Communication Structure</h3>
+<p>
+ Clients can make a request of the server and the server will
+ provide a response for each request that it receives. While many
+ of the requests that can be made by a client are informational
+ in nature, we have chosen to always return a response so that
+ clients can know whether the request was received and was
+ correct.
+</p>
+<p>
+ There is no guarantee concerning the order in which responses
+ will be returned, but there is a guarantee that the server will
+ process requests in the order in which they are sent as long as
+ the transport mechanism also makes this guarantee. Responses can
+ be returned in an order that is different from the order in
+ which the requests were received because some requests take
+ longer to process than others.
+</p>
+<p>
+ Every request is required to have two fields and may have two
+ additional optional fields. The first required field is the ‘id’
+ field, which is only used by the server to associate a response
+ with the request that generated the response. The second
+ required field is the ‘method’ field, which is used to determine
+ what the server is being requested to do. One optional field is
+ the ‘params’ field, whose structure is dependent on the method
+ being requested. The structure of this field is described with
+ each request for which it is required. The other optional field
+ is the 'clientRequestTime' field, which is a number indicating
+ the time at which the client made the request (milliseconds
+ since epoch). Providing clientRequestTime helps us track
+ how responsive analysis server is to client requests
+ and better address any issues that occur.
+</p>
+<p>
+ Every response has up to three fields. The first field is the
+ ‘id’ field, which is always present and whose value is the
+ identifier that was passed to the request that generated the
+ response. The second field is the ‘error’ field, which is only
+ present if an error was encountered while processing the
+ request. The third field is the ‘result’ field, whose structure
+ is dependent on the method being responded to, and is described
+ with each request that will produce it.
+</p>
+<p>
+ The server can also communicate to the clients by sending a
+ notification. The purpose of these notifications is to provide
+ information to clients as it becomes available rather than to
+ require that clients poll for it. Unless explicitly stated, all
+ notifications are designed to return the complete information
+ available at the time the notification is sent; clients are not
+ required to update previously communicated
+ results. Consequently, the server can and should return partial
+ results before all results are available. For example, the
+ syntactic errors for a file can be returned as soon as the
+ syntactic analysis is complete, and both syntactic and semantic
+ errors can be returned together at a later time.
+</p>
+<p>
+ Each notification has two fields. The first field is the ‘event’
+ field, which identifies the kind of notification. The second
+ field is the ‘params’ field, whose structure is dependent on the
+ kind of notification being sent. The structure of this field is
+ described with each notification.
+</p>
+<p>
+ In order to be backward compatible, clients should ignore fields that were
+ not specified in the version of the API on which they were based. Clients
+ should also use the server.getVersion request to test that the version of
+ the server supports an API before using it.
+</p>
+<h3>Eventual Consistency</h3>
+<p>
+ The analysis server satisfies requests under the principle of
+ <a href="https://en.wikipedia.org/wiki/Eventual_consistency">eventual
+ consistency</a>.
+ That is, in some cases it may return responses with the currently available
+ results while it's catching up with unprocessed changes.
+</p>
+<h3>Domains</h3>
+<p>
+ For convenience, the API is divided into domains. Each domain is specified
+ in a separate section below. The specifications of the API’s refer to data
+ structures beyond the standard JSON primitives. These data structures are
+ documented in the section titled <a href="#types">Types</a>.
+</p>
+<toc></toc>
+<h3>Command-line Arguments</h3>
+<p>
+ The command-line arguments that can be passed to the server.
+</p>
+<h4>Options</h4>
+<blockquote>
+ <dl>
+ <dt>--client-id</dt>
+ <dd>
<p>
- Specifies an identifier associated with the client. Used when
- generating error reports.
+ Specifies an identifier associated with the client. Used when
+ generating error reports.
</p>
<p>
- Clients are strongly encouraged to provide this information in
- order to improve the quality of information that can be provided
- to them.
+ Clients are strongly encouraged to provide this information in
+ order to improve the quality of information that can be provided
+ to them.
</p>
- </dd>
- </dl>
- <dl>
- <dt>--client-version</dt>
- <dd>
+ </dd>
+ </dl>
+ <dl>
+ <dt>--client-version</dt>
+ <dd>
<p>
- Specifies the version of the client that is communicating with
- the server. Used when generating error reports.
+ Specifies the version of the client that is communicating with
+ the server. Used when generating error reports.
</p>
<p>
Clients are strongly encouraged to provide this information in
order to improve the quality of information that can be provided
to them.
</p>
- </dd>
- </dl>
- <dl>
- <dt class="deprecated">--no-error-notification</dt>
- <dd>
- <p><b>Deprecated:</b> clients should no longer pass this option in</p>
- Disable notifications about errors (see analysis.error). If this
- flag is not specified then notifications will be sent for all
- errors produced for all files in the actual analysis roots.
- </dd>
- </dl>
- <dl>
- <dt class="deprecated">--no-index</dt>
- <dd>
- <p><b>Deprecated:</b> clients should no longer pass this option in</p>
- This flag used to disable the server from generating an index, but now
- it has no effect.
- </dd>
- </dl>
- <dl>
- <dt class="deprecated">--file-read-mode</dt>
- <dd>
- <p><b>Deprecated:</b> clients should no longer pass this option in</p>
- An enumeration of the ways files can be read from disk. Some clients
- normalize end of line characters which would make the file offset and
- range information incorrect. The default option is <tt>as-is</tt>, but
- can also be set to <tt>normalize-eol-always</tt>. The default option
- (<tt>as-is</tt>) reads files as they are on disk. The
- <tt>normalize-eol-always</tt> option does the following:
- <ul>
- <li>'\r\n' is converted to '\n';</li>
- <li>'\r' by itself is converted to '\n';</li>
- <li>this happens regardless of the OS editor is running on.</li>
- </ul>
- </dd>
- </dl>
- </blockquote>
- <domains></domains>
- <domain name="server">
- <p>
- The server domain contains API’s related to the execution of
- the server.
- </p>
- <request method="getVersion">
- <p>Return the version number of the analysis server.</p>
- <result>
- <field name="version">
- <ref>String</ref>
- <p>The version number of the analysis server.</p>
- </field>
- </result>
- </request>
- <request method="shutdown">
+ </dd>
+ </dl>
+ <dl>
+ <dt class="deprecated">--no-error-notification</dt>
+ <dd>
+ <p><b>Deprecated:</b> clients should no longer pass this option in</p>
+ Disable notifications about errors (see analysis.error). If this
+ flag is not specified then notifications will be sent for all
+ errors produced for all files in the actual analysis roots.
+ </dd>
+ </dl>
+ <dl>
+ <dt class="deprecated">--no-index</dt>
+ <dd>
+ <p><b>Deprecated:</b> clients should no longer pass this option in</p>
+ This flag used to disable the server from generating an index, but now
+ it has no effect.
+ </dd>
+ </dl>
+ <dl>
+ <dt class="deprecated">--file-read-mode</dt>
+ <dd>
+ <p><b>Deprecated:</b> clients should no longer pass this option in</p>
+ An enumeration of the ways files can be read from disk. Some clients
+ normalize end of line characters which would make the file offset and
+ range information incorrect. The default option is <tt>as-is</tt>, but
+ can also be set to <tt>normalize-eol-always</tt>. The default option
+ (<tt>as-is</tt>) reads files as they are on disk. The
+ <tt>normalize-eol-always</tt> option does the following:
+ <ul>
+ <li>'\r\n' is converted to '\n';</li>
+ <li>'\r' by itself is converted to '\n';</li>
+ <li>this happens regardless of the OS editor is running on.</li>
+ </ul>
+ </dd>
+ </dl>
+</blockquote>
+<domains></domains>
+<domain name="server">
+ <p>
+ The server domain contains API’s related to the execution of
+ the server.
+ </p>
+ <request method="getVersion">
+ <p>Return the version number of the analysis server.</p>
+ <result>
+ <field name="version">
+ <ref>String</ref>
+ <p>The version number of the analysis server.</p>
+ </field>
+ </result>
+ </request>
+ <request method="shutdown">
+ <p>
+ Cleanly shutdown the analysis server. Requests that are
+ received after this request will not be processed. Requests
+ that were received before this request, but for which a
+ response has not yet been sent, will not be responded to. No
+ further responses or notifications will be sent after the
+ response to this request has been sent.
+ </p>
+ </request>
+ <request method="setSubscriptions">
+ <p>
+ Subscribe for services. All previous subscriptions are
+ replaced by the given set of services.
+ </p>
+ <p>
+ It is an error if any of the elements in the list are not
+ valid services. If there is an error, then the current
+ subscriptions will remain unchanged.
+ </p>
+ <params>
+ <field name="subscriptions">
+ <list>
+ <ref>ServerService</ref>
+ </list>
+ <p>A list of the services being subscribed to.</p>
+ </field>
+ </params>
+ </request>
+ <notification event="connected">
+ <p>
+ Reports that the server is running. This notification is
+ issued once after the server has started running but before
+ any requests are processed to let the client know that it
+ started correctly.
+ </p>
+ <p>
+ It is not possible to subscribe to or unsubscribe from this
+ notification.
+ </p>
+ <params>
+ <field name="version">
+ <ref>String</ref>
+ <p>The version number of the analysis server.</p>
+ </field>
+ <field name="pid">
+ <ref>int</ref>
+ <p>The process id of the analysis server process.</p>
+ </field>
+ <field name="sessionId" optional="true">
+ <ref>String</ref>
+ <p>The session id for this session.</p>
+ </field>
+ </params>
+ </notification>
+ <notification event="error">
+ <p>
+ Reports that an unexpected error has occurred while
+ executing the server. This notification is not used for
+ problems with specific requests (which are returned as part
+ of the response) but is used for exceptions that occur while
+ performing other tasks, such as analysis or preparing
+ notifications.
+ </p>
+ <p>
+ It is not possible to subscribe to or unsubscribe from this
+ notification.
+ </p>
+ <params>
+ <field name="isFatal">
+ <ref>bool</ref>
<p>
- Cleanly shutdown the analysis server. Requests that are
- received after this request will not be processed. Requests
- that were received before this request, but for which a
- response has not yet been sent, will not be responded to. No
- further responses or notifications will be sent after the
- response to this request has been sent.
+ True if the error is a fatal error, meaning that the
+ server will shutdown automatically after sending this
+ notification.
</p>
- </request>
- <request method="setSubscriptions">
+ </field>
+ <field name="message">
+ <ref>String</ref>
<p>
- Subscribe for services. All previous subscriptions are
- replaced by the given set of services.
+ The error message indicating what kind of error was
+ encountered.
</p>
+ </field>
+ <field name="stackTrace">
+ <ref>String</ref>
<p>
- It is an error if any of the elements in the list are not
- valid services. If there is an error, then the current
- subscriptions will remain unchanged.
+ The stack trace associated with the generation of the
+ error, used for debugging the server.
</p>
- <params>
- <field name="subscriptions">
- <list><ref>ServerService</ref></list>
- <p>A list of the services being subscribed to.</p>
- </field>
- </params>
- </request>
- <notification event="connected">
+ </field>
+ </params>
+ </notification>
+ <notification event="status">
+ <p>
+ Reports the current status of the server. Parameters are
+ omitted if there has been no change in the status
+ represented by that parameter.
+ </p>
+ <p>
+ This notification is not subscribed to by default. Clients
+ can subscribe by including the value <tt>"STATUS"</tt> in
+ the list of services passed in a server.setSubscriptions
+ request.
+ </p>
+ <params>
+ <field name="analysis" optional="true">
+ <ref>AnalysisStatus</ref>
+ <p>
+ The current status of analysis, including whether
+ analysis is being performed and if so what is being
+ analyzed.
+ </p>
+ </field>
+ <field name="pub" optional="true">
+ <ref>PubStatus</ref>
+ <p>
+ The current status of pub execution, indicating whether we are
+ currently running pub.
+ </p>
+ </field>
+ </params>
+ </notification>
+</domain>
+<domain name="analysis">
+ <p>
+ The analysis domain contains API’s related to the analysis of
+ files.
+ </p>
+ <request method="getErrors">
+ <p>
+ Return the errors associated with the given file. If the
+ errors for the given file have not yet been computed, or the
+ most recently computed errors for the given file are out of
+ date, then the response for this request will be delayed
+ until they have been computed. If some or all of the errors
+ for the file cannot be computed, then the subset of the
+ errors that can be computed will be returned and the
+ response will contain an error to indicate why the errors
+ could not be computed. If the content of the file changes after this
+ request was received but before a response could be sent, then an
+ error of type <tt>CONTENT_MODIFIED</tt> will be generated.
+ </p>
+ <p>
+ This request is intended to be used by clients that cannot
+ asynchronously apply updated error information. Clients that
+ <b>can</b> apply error information as it becomes available
+ should use the information provided by the 'analysis.errors'
+ notification.
+ </p>
+ <p>
+ If a request is made for a file which does not exist, or
+ which is not currently subject to analysis (e.g. because it
+ is not associated with any analysis root specified to
+ analysis.setAnalysisRoots), an error of type
+ <tt>GET_ERRORS_INVALID_FILE</tt> will be generated.
+ </p>
+ <params>
+ <field name="file">
+ <ref>FilePath</ref>
+ <p>
+ The file for which errors are being requested.
+ </p>
+ </field>
+ </params>
+ <result>
+ <field name="errors">
+ <list>
+ <ref>AnalysisError</ref>
+ </list>
+ <p>
+ The errors associated with the file.
+ </p>
+ </field>
+ </result>
+ </request>
+ <request method="getHover">
+ <p>
+ Return the hover information associate with the given
+ location. If some or all of the hover information is not
+ available at the time this request is processed the
+ information will be omitted from the response.
+ </p>
+ <params>
+ <field name="file">
+ <ref>FilePath</ref>
+ <p>
+ The file in which hover information is being requested.
+ </p>
+ </field>
+ <field name="offset">
+ <ref>int</ref>
+ <p>
+ The offset for which hover information is being requested.
+ </p>
+ </field>
+ </params>
+ <result>
+ <field name="hovers">
+ <list>
+ <ref>HoverInformation</ref>
+ </list>
+ <p>
+ The hover information associated with the
+ location. The list will be empty if no information
+ could be determined for the location. The list can
+ contain multiple items if the file is being analyzed
+ in multiple contexts in conflicting ways (such as a
+ part that is included in multiple libraries).
+ </p>
+ </field>
+ </result>
+ </request>
+ <request method="getReachableSources">
+ <p>
+ Return the transitive closure of reachable sources for a given file.
+ </p>
+ <p>
+ If a request is made for a file which does not exist, or
+ which is not currently subject to analysis (e.g. because it
+ is not associated with any analysis root specified to
+ analysis.setAnalysisRoots), an error of type
+ <tt>GET_REACHABLE_SOURCES_INVALID_FILE</tt> will be generated.
+ </p>
+ <params>
+ <field name="file">
+ <ref>FilePath</ref>
+ <p>
+ The file for which reachable source information is being requested.
+ </p>
+ </field>
+ </params>
+ <result>
+ <field name="sources">
+ <map>
+ <key>
+ <ref>String</ref>
+ </key>
+ <value>
+ <list>
+ <ref>String</ref>
+ </list>
+ </value>
+ </map>
+ <p>
+ A mapping from source URIs to directly reachable source URIs. For
+ example,
+ a file "foo.dart" that imports "bar.dart" would have the corresponding
+ mapping
+ { "file:///foo.dart" : ["file:///bar.dart"] }. If "bar.dart" has
+ further imports
+ (or exports) there will be a mapping from the URI "file:///bar.dart"
+ to them.
+ To check if a specific URI is reachable from a given file, clients can
+ check
+ for its presence in the resulting key set.
+ </p>
+ </field>
+ </result>
+ </request>
+ <request method="getLibraryDependencies">
+ <p>
+ Return library dependency information for use in client-side indexing
+ and package URI resolution.
+ </p>
+ <p>
+ Clients that are only using the libraries field should consider using the
+ analyzedFiles notification instead.
+ </p>
+ <result>
+ <field name="libraries">
+ <list>
+ <ref>FilePath</ref>
+ </list>
+ <p>
+ A list of the paths of library elements referenced by
+ files in existing analysis roots.
+ </p>
+ </field>
+ <field name="packageMap">
+ <map>
+ <key>
+ <ref>String</ref>
+ </key>
+ <value>
+ <map>
+ <key>
+ <ref>String</ref>
+ </key>
+ <value>
+ <list>
+ <ref>FilePath</ref>
+ </list>
+ </value>
+ </map>
+ </value>
+ </map>
<p>
- Reports that the server is running. This notification is
- issued once after the server has started running but before
- any requests are processed to let the client know that it
- started correctly.
+ A mapping from context source roots to package maps which map
+ package names to source directories for use in client-side
+ package URI resolution.
</p>
+ </field>
+ </result>
+ </request>
+ <request method="getNavigation">
+ <p>
+ Return the navigation information associated with the given region of
+ the given file. If the navigation information for the given file has
+ not yet been computed, or the most recently computed navigation
+ information for the given file is out of date, then the response for
+ this request will be delayed until it has been computed. If the
+ content of the file changes after this request was received but before
+ a response could be sent, then an error of type
+ <tt>CONTENT_MODIFIED</tt> will be generated.
+ </p>
+ <p>
+ If a navigation region overlaps (but extends either before or after)
+ the given region of the file it will be included in the result. This
+ means that it is theoretically possible to get the same navigation
+ region in response to multiple requests. Clients can avoid this by
+ always choosing a region that starts at the beginning of a line and
+ ends at the end of a (possibly different) line in the file.
+ </p>
+ <p>
+ If a request is made for a file which does not exist, or
+ which is not currently subject to analysis (e.g. because it
+ is not associated with any analysis root specified to
+ analysis.setAnalysisRoots), an error of type
+ <tt>GET_NAVIGATION_INVALID_FILE</tt> will be generated.
+ </p>
+ <params>
+ <field name="file">
+ <ref>FilePath</ref>
+ <p>
+ The file in which navigation information is being requested.
+ </p>
+ </field>
+ <field name="offset">
+ <ref>int</ref>
+ <p>
+ The offset of the region for which navigation information is being
+ requested.
+ </p>
+ </field>
+ <field name="length">
+ <ref>int</ref>
+ <p>
+ The length of the region for which navigation information is being
+ requested.
+ </p>
+ </field>
+ </params>
+ <result>
+ <field name="files">
+ <list>
+ <ref>FilePath</ref>
+ </list>
+ <p>
+ A list of the paths of files that are referenced by the navigation
+ targets.
+ </p>
+ </field>
+ <field name="targets">
+ <list>
+ <ref>NavigationTarget</ref>
+ </list>
+ <p>
+ A list of the navigation targets that are referenced by the
+ navigation regions.
+ </p>
+ </field>
+ <field name="regions">
+ <list>
+ <ref>NavigationRegion</ref>
+ </list>
+ <p>
+ A list of the navigation regions within the requested region of
+ the file.
+ </p>
+ </field>
+ </result>
+ </request>
+ <request method="reanalyze">
+ <p>
+ Force the re-analysis of everything contained in the specified
+ analysis roots. This will cause all previously computed analysis
+ results to be discarded and recomputed, and will cause all subscribed
+ notifications to be re-sent.
+ </p>
+ <p>
+ If no analysis roots are provided, then all current analysis roots
+ will be re-analyzed. If an empty list of analysis roots is provided,
+ then nothing will be re-analyzed. If the list contains one or more
+ paths that are not currently analysis roots, then an error of type
+ <tt>INVALID_ANALYSIS_ROOT</tt> will be generated.
+ </p>
+ <params>
+ <field name="roots" optional="true">
+ <list>
+ <ref>FilePath</ref>
+ </list>
+ <p>
+ A list of the analysis roots that are to be re-analyzed.
+ </p>
+ </field>
+ </params>
+ </request>
+ <request method="setAnalysisRoots">
+ <p>
+ Sets the root paths used to determine which files to analyze. The set
+ of files to be analyzed are all of the files in one of the root paths
+ that are not either explicitly or implicitly excluded. A file is
+ explicitly excluded if it is in one of the excluded paths. A file is
+ implicitly excluded if it is in a subdirectory of one of the root
+ paths where the name of the subdirectory starts with a period (that
+ is, a hidden directory).
+ </p>
+ <p>
+ Note that this request determines the set of requested
+ analysis roots. The actual set of analysis roots at any
+ given time is the intersection of this set with the set of
+ files and directories actually present on the
+ filesystem. When the filesystem changes, the actual set of
+ analysis roots is automatically updated, but the set of
+ requested analysis roots is unchanged. This means that if
+ the client sets an analysis root before the root becomes
+ visible to server in the filesystem, there is no error; once
+ the server sees the root in the filesystem it will start
+ analyzing it. Similarly, server will stop analyzing files
+ that are removed from the file system but they will remain
+ in the set of requested roots.
+ </p>
+ <p>
+ If an included path represents a file, then server will look
+ in the directory containing the file for a pubspec.yaml
+ file. If none is found, then the parents of the directory
+ will be searched until such a file is found or the root of
+ the file system is reached. If such a file is found, it will
+ be used to resolve package: URI’s within the file.
+ </p>
+ <params>
+ <field name="included">
+ <list>
+ <ref>FilePath</ref>
+ </list>
+ <p>
+ A list of the files and directories that should be
+ analyzed.
+ </p>
+ </field>
+ <field name="excluded">
+ <list>
+ <ref>FilePath</ref>
+ </list>
+ <p>
+ A list of the files and directories within the
+ included directories that should not be analyzed.
+ </p>
+ </field>
+ <field name="packageRoots" optional="true">
+ <map>
+ <key>
+ <ref>FilePath</ref>
+ </key>
+ <value>
+ <ref>FilePath</ref>
+ </value>
+ </map>
<p>
- It is not possible to subscribe to or unsubscribe from this
- notification.
- </p>
- <params>
- <field name="version">
- <ref>String</ref>
- <p>The version number of the analysis server.</p>
- </field>
- <field name="pid">
- <ref>int</ref>
- <p>The process id of the analysis server process.</p>
- </field>
- <field name="sessionId" optional="true">
- <ref>String</ref>
- <p>The session id for this session.</p>
- </field>
- </params>
- </notification>
- <notification event="error">
- <p>
- Reports that an unexpected error has occurred while
- executing the server. This notification is not used for
- problems with specific requests (which are returned as part
- of the response) but is used for exceptions that occur while
- performing other tasks, such as analysis or preparing
- notifications.
- </p>
- <p>
- It is not possible to subscribe to or unsubscribe from this
- notification.
+ A mapping from source directories to package roots
+ that should override the normal package: URI resolution
+ mechanism.
</p>
- <params>
- <field name="isFatal">
- <ref>bool</ref>
- <p>
- True if the error is a fatal error, meaning that the
- server will shutdown automatically after sending this
- notification.
- </p>
- </field>
- <field name="message">
- <ref>String</ref>
- <p>
- The error message indicating what kind of error was
- encountered.
- </p>
- </field>
- <field name="stackTrace">
- <ref>String</ref>
- <p>
- The stack trace associated with the generation of the
- error, used for debugging the server.
- </p>
- </field>
- </params>
- </notification>
- <notification event="status">
<p>
- Reports the current status of the server. Parameters are
- omitted if there has been no change in the status
- represented by that parameter.
+ If a package root is a directory, then
+ the analyzer will behave as though the associated
+ source directory in the map contains a special
+ pubspec.yaml file which resolves any package: URI to the
+ corresponding path within that package root directory. The
+ effect is the same as specifying the package root directory as
+ a "--package_root" parameter to the Dart VM when
+ executing any Dart file inside the source directory.
</p>
<p>
- This notification is not subscribed to by default. Clients
- can subscribe by including the value <tt>"STATUS"</tt> in
- the list of services passed in a server.setSubscriptions
- request.
- </p>
- <params>
- <field name="analysis" optional="true">
- <ref>AnalysisStatus</ref>
- <p>
- The current status of analysis, including whether
- analysis is being performed and if so what is being
- analyzed.
- </p>
- </field>
- <field name="pub" optional="true">
- <ref>PubStatus</ref>
- <p>
- The current status of pub execution, indicating whether we are
- currently running pub.
- </p>
- </field>
- </params>
- </notification>
- </domain>
- <domain name="analysis">
- <p>
- The analysis domain contains API’s related to the analysis of
- files.
- </p>
- <request method="getErrors">
- <p>
- Return the errors associated with the given file. If the
- errors for the given file have not yet been computed, or the
- most recently computed errors for the given file are out of
- date, then the response for this request will be delayed
- until they have been computed. If some or all of the errors
- for the file cannot be computed, then the subset of the
- errors that can be computed will be returned and the
- response will contain an error to indicate why the errors
- could not be computed. If the content of the file changes after this
- request was received but before a response could be sent, then an
- error of type <tt>CONTENT_MODIFIED</tt> will be generated.
- </p>
- <p>
- This request is intended to be used by clients that cannot
- asynchronously apply updated error information. Clients that
- <b>can</b> apply error information as it becomes available
- should use the information provided by the 'analysis.errors'
- notification.
+ If a package root is a file, then the analyzer
+ will behave as though that file is a ".packages" file in the
+ source directory. The effect is the same as specifying the file
+ as a "--packages" parameter to the Dart VM when
+ executing any Dart file inside the source directory.
</p>
<p>
- If a request is made for a file which does not exist, or
- which is not currently subject to analysis (e.g. because it
- is not associated with any analysis root specified to
- analysis.setAnalysisRoots), an error of type
- <tt>GET_ERRORS_INVALID_FILE</tt> will be generated.
+ Files in any directories that are not overridden by this
+ mapping have their package: URI's resolved using the
+ normal pubspec.yaml mechanism. If this field is absent,
+ or the empty map is specified, that indicates that the
+ normal pubspec.yaml mechanism should always be used.
</p>
- <params>
- <field name="file">
+ </field>
+ </params>
+ </request>
+ <request method="setGeneralSubscriptions">
+ <p>
+ Subscribe for general services (that is, services that are not
+ specific to individual files). All previous subscriptions are replaced
+ by the given set of services.
+ </p>
+ <p>
+ It is an error if any of the elements in the list are not valid
+ services. If there is an error, then the current subscriptions will
+ remain unchanged.
+ </p>
+ <params>
+ <field name="subscriptions">
+ <list>
+ <ref>GeneralAnalysisService</ref>
+ </list>
+ <p>A list of the services being subscribed to.</p>
+ </field>
+ </params>
+ </request>
+ <request method="setPriorityFiles">
+ <p>
+ Set the priority files to the files in the given list. A
+ priority file is a file that is given priority when
+ scheduling which analysis work to do first. The list
+ typically contains those files that are visible to the user
+ and those for which analysis results will have the biggest
+ impact on the user experience. The order of the files within
+ the list is significant: the first file will be given higher
+ priority than the second, the second higher priority than
+ the third, and so on.
+ </p>
+ <p>
+ Note that this request determines the set of requested
+ priority files. The actual set of priority files is the
+ intersection of the requested set of priority files with the
+ set of files currently subject to analysis. (See
+ analysis.setSubscriptions for a description of files that
+ are subject to analysis.)
+ </p>
+ <p>
+ If a requested priority file is a directory it is ignored,
+ but remains in the set of requested priority files so that
+ if it later becomes a file it can be included in the set of
+ actual priority files.
+ </p>
+ <params>
+ <field name="files">
+ <list>
+ <ref>FilePath</ref>
+ </list>
+ <p>
+ The files that are to be a priority for analysis.
+ </p>
+ </field>
+ </params>
+ </request>
+ <request method="setSubscriptions">
+ <p>
+ Subscribe for services that are specific to individual files.
+ All previous subscriptions are replaced by the current set of
+ subscriptions. If a given service is not included as a key in the map
+ then no files will be subscribed to the service, exactly as if the
+ service had been included in the map with an explicit empty list of
+ files.
+ </p>
+ <p>
+ Note that this request determines the set of requested
+ subscriptions. The actual set of subscriptions at any given
+ time is the intersection of this set with the set of files
+ currently subject to analysis. The files currently subject
+ to analysis are the set of files contained within an actual
+ analysis root but not excluded, plus all of the files
+ transitively reachable from those files via import, export
+ and part directives. (See analysis.setAnalysisRoots for an
+ explanation of how the actual analysis roots are
+ determined.) When the actual analysis roots change, the
+ actual set of subscriptions is automatically updated, but
+ the set of requested subscriptions is unchanged.
+ </p>
+ <p>
+ If a requested subscription is a directory it is ignored,
+ but remains in the set of requested subscriptions so that if
+ it later becomes a file it can be included in the set of
+ actual subscriptions.
+ </p>
+ <p>
+ It is an error if any of the keys in the map are not valid
+ services. If there is an error, then the existing
+ subscriptions will remain unchanged.
+ </p>
+ <params>
+ <field name="subscriptions">
+ <map>
+ <key>
+ <ref>AnalysisService</ref>
+ </key>
+ <value>
+ <list>
+ <ref>FilePath</ref>
+ </list>
+ </value>
+ </map>
+ <p>
+ A table mapping services to a list of the files being
+ subscribed to the service.
+ </p>
+ </field>
+ </params>
+ </request>
+ <request method="updateContent">
+ <p>
+ Update the content of one or more files. Files that were
+ previously updated but not included in this update remain
+ unchanged. This effectively represents an overlay of the
+ filesystem. The files whose content is overridden are
+ therefore seen by server as being files with the given
+ content, even if the files do not exist on the filesystem or
+ if the file path represents the path to a directory on the
+ filesystem.
+ </p>
+ <params>
+ <field name="files">
+ <map>
+ <key>
<ref>FilePath</ref>
- <p>
- The file for which errors are being requested.
- </p>
- </field>
- </params>
- <result>
- <field name="errors">
- <list><ref>AnalysisError</ref></list>
- <p>
- The errors associated with the file.
- </p>
- </field>
- </result>
- </request>
- <request method="getHover">
+ </key>
+ <value>
+ <union field="type">
+ <ref>AddContentOverlay</ref>
+ <ref>ChangeContentOverlay</ref>
+ <ref>RemoveContentOverlay</ref>
+ </union>
+ </value>
+ </map>
+ <p>
+ A table mapping the files whose content has changed to a
+ description of the content change.
+ </p>
+ </field>
+ </params>
+ <result>
+ </result>
+ </request>
+ <request method="updateOptions" deprecated="true">
+ <p><b>Deprecated:</b> all of the options can be set by users in
+ an analysis options file.</p>
+ <p>
+ Update the options controlling analysis based on the given
+ set of options. Any options that are not included in the
+ analysis options will not be changed. If there are options
+ in the analysis options that are not valid, they will be
+ silently ignored.
+ </p>
+ <params>
+ <field name="options">
+ <ref>AnalysisOptions</ref>
<p>
- Return the hover information associate with the given
- location. If some or all of the hover information is not
- available at the time this request is processed the
- information will be omitted from the response.
+ The options that are to be used to control analysis.
</p>
- <params>
- <field name="file">
- <ref>FilePath</ref>
- <p>
- The file in which hover information is being requested.
- </p>
- </field>
- <field name="offset">
- <ref>int</ref>
- <p>
- The offset for which hover information is being requested.
- </p>
- </field>
- </params>
- <result>
- <field name="hovers">
- <list><ref>HoverInformation</ref></list>
- <p>
- The hover information associated with the
- location. The list will be empty if no information
- could be determined for the location. The list can
- contain multiple items if the file is being analyzed
- in multiple contexts in conflicting ways (such as a
- part that is included in multiple libraries).
- </p>
- </field>
- </result>
- </request>
- <request method="getReachableSources">
+ </field>
+ </params>
+ </request>
+ <notification event="analyzedFiles">
+ <p>
+ Reports the paths of the files that are being analyzed.
+ </p>
+ <p>
+ This notification is not subscribed to by default. Clients can
+ subscribe by including the value <tt>"ANALYZED_FILES"</tt> in the list
+ of services passed in an analysis.setGeneralSubscriptions request.
+ </p>
+ <params>
+ <field name="directories">
+ <list>
+ <ref>FilePath</ref>
+ </list>
+ <p>
+ A list of the paths of the files that are being analyzed.
+ </p>
+ </field>
+ </params>
+ </notification>
+ <notification event="errors">
+ <p>
+ Reports the errors associated with a given file. The set of
+ errors included in the notification is always a complete
+ list that supersedes any previously reported errors.
+ </p>
+ <params>
+ <field name="file">
+ <ref>FilePath</ref>
<p>
- Return the transitive closure of reachable sources for a given file.
+ The file containing the errors.
</p>
+ </field>
+ <field name="errors">
+ <list>
+ <ref>AnalysisError</ref>
+ </list>
<p>
- If a request is made for a file which does not exist, or
- which is not currently subject to analysis (e.g. because it
- is not associated with any analysis root specified to
- analysis.setAnalysisRoots), an error of type
- <tt>GET_REACHABLE_SOURCES_INVALID_FILE</tt> will be generated.
+ The errors contained in the file.
</p>
- <params>
- <field name="file">
- <ref>FilePath</ref>
- <p>
- The file for which reachable source information is being requested.
- </p>
- </field>
- </params>
- <result>
- <field name="sources">
- <map>
- <key><ref>String</ref></key>
- <value><list><ref>String</ref></list></value>
- </map>
- <p>
- A mapping from source URIs to directly reachable source URIs. For example,
- a file "foo.dart" that imports "bar.dart" would have the corresponding mapping
- { "file:///foo.dart" : ["file:///bar.dart"] }. If "bar.dart" has further imports
- (or exports) there will be a mapping from the URI "file:///bar.dart" to them.
- To check if a specific URI is reachable from a given file, clients can check
- for its presence in the resulting key set.
- </p>
- </field>
- </result>
- </request>
- <request method="getLibraryDependencies">
- <p>
- Return library dependency information for use in client-side indexing
- and package URI resolution.
- </p>
- <p>
- Clients that are only using the libraries field should consider using the
- analyzedFiles notification instead.
- </p>
- <result>
- <field name="libraries">
- <list><ref>FilePath</ref></list>
- <p>
- A list of the paths of library elements referenced by
- files in existing analysis roots.
- </p>
- </field>
- <field name="packageMap">
- <map>
- <key><ref>String</ref></key>
- <value>
- <map>
- <key><ref>String</ref></key>
- <value><list><ref>FilePath</ref></list></value>
- </map>
- </value>
- </map>
- <p>
- A mapping from context source roots to package maps which map
- package names to source directories for use in client-side
- package URI resolution.
- </p>
- </field>
- </result>
- </request>
- <request method="getNavigation">
- <p>
- Return the navigation information associated with the given region of
- the given file. If the navigation information for the given file has
- not yet been computed, or the most recently computed navigation
- information for the given file is out of date, then the response for
- this request will be delayed until it has been computed. If the
- content of the file changes after this request was received but before
- a response could be sent, then an error of type
- <tt>CONTENT_MODIFIED</tt> will be generated.
- </p>
- <p>
- If a navigation region overlaps (but extends either before or after)
- the given region of the file it will be included in the result. This
- means that it is theoretically possible to get the same navigation
- region in response to multiple requests. Clients can avoid this by
- always choosing a region that starts at the beginning of a line and
- ends at the end of a (possibly different) line in the file.
- </p>
- <p>
- If a request is made for a file which does not exist, or
- which is not currently subject to analysis (e.g. because it
- is not associated with any analysis root specified to
- analysis.setAnalysisRoots), an error of type
- <tt>GET_NAVIGATION_INVALID_FILE</tt> will be generated.
- </p>
- <params>
- <field name="file">
- <ref>FilePath</ref>
- <p>
- The file in which navigation information is being requested.
- </p>
- </field>
- <field name="offset">
- <ref>int</ref>
- <p>
- The offset of the region for which navigation information is being
- requested.
- </p>
- </field>
- <field name="length">
- <ref>int</ref>
- <p>
- The length of the region for which navigation information is being
- requested.
- </p>
- </field>
- </params>
- <result>
- <field name="files">
- <list><ref>FilePath</ref></list>
- <p>
- A list of the paths of files that are referenced by the navigation
- targets.
- </p>
- </field>
- <field name="targets">
- <list><ref>NavigationTarget</ref></list>
- <p>
- A list of the navigation targets that are referenced by the
- navigation regions.
- </p>
- </field>
- <field name="regions">
- <list><ref>NavigationRegion</ref></list>
- <p>
- A list of the navigation regions within the requested region of
- the file.
- </p>
- </field>
- </result>
- </request>
- <request method="reanalyze">
+ </field>
+ </params>
+ </notification>
+ <notification event="flushResults">
+ <p>
+ Reports that any analysis results that were previously
+ associated with the given files should be considered to be
+ invalid because those files are no longer being analyzed,
+ either because the analysis root that contained it is no
+ longer being analyzed or because the file no longer exists.
+ </p>
+ <p>
+ If a file is included in this notification and at some later
+ time a notification with results for the file is received,
+ clients should assume that the file is once again being
+ analyzed and the information should be processed.
+ </p>
+ <p>
+ It is not possible to subscribe to or unsubscribe from this
+ notification.
+ </p>
+ <params>
+ <field name="files">
+ <list>
+ <ref>FilePath</ref>
+ </list>
+ <p>
+ The files that are no longer being analyzed.
+ </p>
+ </field>
+ </params>
+ </notification>
+ <notification event="folding">
+ <p>
+ Reports the folding regions associated with a given
+ file. Folding regions can be nested, but will not be
+ overlapping. Nesting occurs when a foldable element, such as
+ a method, is nested inside another foldable element such as
+ a class.
+ </p>
+ <p>
+ This notification is not subscribed to by default. Clients
+ can subscribe by including the value <tt>"FOLDING"</tt> in
+ the list of services passed in an analysis.setSubscriptions
+ request.
+ </p>
+ <params>
+ <field name="file">
+ <ref>FilePath</ref>
<p>
- Force the re-analysis of everything contained in the specified
- analysis roots. This will cause all previously computed analysis
- results to be discarded and recomputed, and will cause all subscribed
- notifications to be re-sent.
+ The file containing the folding regions.
</p>
+ </field>
+ <field name="regions">
+ <list>
+ <ref>FoldingRegion</ref>
+ </list>
<p>
- If no analysis roots are provided, then all current analysis roots
- will be re-analyzed. If an empty list of analysis roots is provided,
- then nothing will be re-analyzed. If the list contains one or more
- paths that are not currently analysis roots, then an error of type
- <tt>INVALID_ANALYSIS_ROOT</tt> will be generated.
+ The folding regions contained in the file.
</p>
- <params>
- <field name="roots" optional="true">
- <list><ref>FilePath</ref></list>
- <p>
- A list of the analysis roots that are to be re-analyzed.
- </p>
- </field>
- </params>
- </request>
- <request method="setAnalysisRoots">
- <p>
- Sets the root paths used to determine which files to analyze. The set
- of files to be analyzed are all of the files in one of the root paths
- that are not either explicitly or implicitly excluded. A file is
- explicitly excluded if it is in one of the excluded paths. A file is
- implicitly excluded if it is in a subdirectory of one of the root
- paths where the name of the subdirectory starts with a period (that
- is, a hidden directory).
- </p>
- <p>
- Note that this request determines the set of requested
- analysis roots. The actual set of analysis roots at any
- given time is the intersection of this set with the set of
- files and directories actually present on the
- filesystem. When the filesystem changes, the actual set of
- analysis roots is automatically updated, but the set of
- requested analysis roots is unchanged. This means that if
- the client sets an analysis root before the root becomes
- visible to server in the filesystem, there is no error; once
- the server sees the root in the filesystem it will start
- analyzing it. Similarly, server will stop analyzing files
- that are removed from the file system but they will remain
- in the set of requested roots.
- </p>
- <p>
- If an included path represents a file, then server will look
- in the directory containing the file for a pubspec.yaml
- file. If none is found, then the parents of the directory
- will be searched until such a file is found or the root of
- the file system is reached. If such a file is found, it will
- be used to resolve package: URI’s within the file.
- </p>
- <params>
- <field name="included">
- <list><ref>FilePath</ref></list>
- <p>
- A list of the files and directories that should be
- analyzed.
- </p>
- </field>
- <field name="excluded">
- <list><ref>FilePath</ref></list>
- <p>
- A list of the files and directories within the
- included directories that should not be analyzed.
- </p>
- </field>
- <field name="packageRoots" optional="true">
- <map>
- <key><ref>FilePath</ref></key>
- <value><ref>FilePath</ref></value>
- </map>
- <p>
- A mapping from source directories to package roots
- that should override the normal package: URI resolution
- mechanism.
- </p>
- <p>
- If a package root is a directory, then
- the analyzer will behave as though the associated
- source directory in the map contains a special
- pubspec.yaml file which resolves any package: URI to the
- corresponding path within that package root directory. The
- effect is the same as specifying the package root directory as
- a "--package_root" parameter to the Dart VM when
- executing any Dart file inside the source directory.
- </p>
- <p>
- If a package root is a file, then the analyzer
- will behave as though that file is a ".packages" file in the
- source directory. The effect is the same as specifying the file
- as a "--packages" parameter to the Dart VM when
- executing any Dart file inside the source directory.
- </p>
- <p>
- Files in any directories that are not overridden by this
- mapping have their package: URI's resolved using the
- normal pubspec.yaml mechanism. If this field is absent,
- or the empty map is specified, that indicates that the
- normal pubspec.yaml mechanism should always be used.
- </p>
- </field>
- </params>
- </request>
- <request method="setGeneralSubscriptions">
+ </field>
+ </params>
+ </notification>
+ <notification event="highlights">
+ <p>
+ Reports the highlight regions associated with a given file.
+ </p>
+ <p>
+ This notification is not subscribed to by default. Clients
+ can subscribe by including the value <tt>"HIGHLIGHTS"</tt>
+ in the list of services passed in an
+ analysis.setSubscriptions request.
+ </p>
+ <params>
+ <field name="file">
+ <ref>FilePath</ref>
+ <p>
+ The file containing the highlight regions.
+ </p>
+ </field>
+ <field name="regions">
+ <list>
+ <ref>HighlightRegion</ref>
+ </list>
+ <p>
+ The highlight regions contained in the file. Each
+ highlight region represents a particular syntactic or
+ semantic meaning associated with some range. Note that
+ the highlight regions that are returned can overlap
+ other highlight regions if there is more than one
+ meaning associated with a particular region.
+ </p>
+ </field>
+ </params>
+ </notification>
+ <notification event="implemented">
+ <p>
+ Reports the classes that are implemented or extended and
+ class members that are implemented or overridden in a file.
+ </p>
+ <p>
+ This notification is not subscribed to by default. Clients
+ can subscribe by including the value <tt>"IMPLEMENTED"</tt> in
+ the list of services passed in an analysis.setSubscriptions
+ request.
+ </p>
+ <params>
+ <field name="file">
+ <ref>FilePath</ref>
<p>
- Subscribe for general services (that is, services that are not
- specific to individual files). All previous subscriptions are replaced
- by the given set of services.
+ The file with which the implementations are associated.
</p>
+ </field>
+ <field name="classes">
+ <list>
+ <ref>ImplementedClass</ref>
+ </list>
<p>
- It is an error if any of the elements in the list are not valid
- services. If there is an error, then the current subscriptions will
- remain unchanged.
+ The classes defined in the file that are implemented or extended.
</p>
- <params>
- <field name="subscriptions">
- <list><ref>GeneralAnalysisService</ref></list>
- <p>A list of the services being subscribed to.</p>
- </field>
- </params>
- </request>
- <request method="setPriorityFiles">
- <p>
- Set the priority files to the files in the given list. A
- priority file is a file that is given priority when
- scheduling which analysis work to do first. The list
- typically contains those files that are visible to the user
- and those for which analysis results will have the biggest
- impact on the user experience. The order of the files within
- the list is significant: the first file will be given higher
- priority than the second, the second higher priority than
- the third, and so on.
- </p>
- <p>
- Note that this request determines the set of requested
- priority files. The actual set of priority files is the
- intersection of the requested set of priority files with the
- set of files currently subject to analysis. (See
- analysis.setSubscriptions for a description of files that
- are subject to analysis.)
- </p>
- <p>
- If a requested priority file is a directory it is ignored,
- but remains in the set of requested priority files so that
- if it later becomes a file it can be included in the set of
- actual priority files.
- </p>
- <params>
- <field name="files">
- <list><ref>FilePath</ref></list>
- <p>
- The files that are to be a priority for analysis.
- </p>
- </field>
- </params>
- </request>
- <request method="setSubscriptions">
- <p>
- Subscribe for services that are specific to individual files.
- All previous subscriptions are replaced by the current set of
- subscriptions. If a given service is not included as a key in the map
- then no files will be subscribed to the service, exactly as if the
- service had been included in the map with an explicit empty list of
- files.
- </p>
- <p>
- Note that this request determines the set of requested
- subscriptions. The actual set of subscriptions at any given
- time is the intersection of this set with the set of files
- currently subject to analysis. The files currently subject
- to analysis are the set of files contained within an actual
- analysis root but not excluded, plus all of the files
- transitively reachable from those files via import, export
- and part directives. (See analysis.setAnalysisRoots for an
- explanation of how the actual analysis roots are
- determined.) When the actual analysis roots change, the
- actual set of subscriptions is automatically updated, but
- the set of requested subscriptions is unchanged.
- </p>
- <p>
- If a requested subscription is a directory it is ignored,
- but remains in the set of requested subscriptions so that if
- it later becomes a file it can be included in the set of
- actual subscriptions.
- </p>
- <p>
- It is an error if any of the keys in the map are not valid
- services. If there is an error, then the existing
- subscriptions will remain unchanged.
- </p>
- <params>
- <field name="subscriptions">
- <map>
- <key><ref>AnalysisService</ref></key>
- <value>
- <list><ref>FilePath</ref></list>
- </value>
- </map>
- <p>
- A table mapping services to a list of the files being
- subscribed to the service.
- </p>
- </field>
- </params>
- </request>
- <request method="updateContent">
- <p>
- Update the content of one or more files. Files that were
- previously updated but not included in this update remain
- unchanged. This effectively represents an overlay of the
- filesystem. The files whose content is overridden are
- therefore seen by server as being files with the given
- content, even if the files do not exist on the filesystem or
- if the file path represents the path to a directory on the
- filesystem.
- </p>
- <params>
- <field name="files">
- <map>
- <key><ref>FilePath</ref></key>
- <value>
- <union field="type">
- <ref>AddContentOverlay</ref>
- <ref>ChangeContentOverlay</ref>
- <ref>RemoveContentOverlay</ref>
- </union>
- </value>
- </map>
- <p>
- A table mapping the files whose content has changed to a
- description of the content change.
- </p>
- </field>
- </params>
- <result>
- </result>
- </request>
- <request method="updateOptions" deprecated="true">
- <p><b>Deprecated:</b> all of the options can be set by users in
- an analysis options file.</p>
- <p>
- Update the options controlling analysis based on the given
- set of options. Any options that are not included in the
- analysis options will not be changed. If there are options
- in the analysis options that are not valid, they will be
- silently ignored.
- </p>
- <params>
- <field name="options">
- <ref>AnalysisOptions</ref>
- <p>
- The options that are to be used to control analysis.
- </p>
- </field>
- </params>
- </request>
- <notification event="analyzedFiles">
- <p>
- Reports the paths of the files that are being analyzed.
- </p>
- <p>
- This notification is not subscribed to by default. Clients can
- subscribe by including the value <tt>"ANALYZED_FILES"</tt> in the list
- of services passed in an analysis.setGeneralSubscriptions request.
- </p>
- <params>
- <field name="directories">
- <list><ref>FilePath</ref></list>
- <p>
- A list of the paths of the files that are being analyzed.
- </p>
- </field>
- </params>
- </notification>
- <notification event="errors">
- <p>
- Reports the errors associated with a given file. The set of
- errors included in the notification is always a complete
- list that supersedes any previously reported errors.
- </p>
- <params>
- <field name="file">
- <ref>FilePath</ref>
- <p>
- The file containing the errors.
- </p>
- </field>
- <field name="errors">
- <list><ref>AnalysisError</ref></list>
- <p>
- The errors contained in the file.
- </p>
- </field>
- </params>
- </notification>
- <notification event="flushResults">
+ </field>
+ <field name="members">
+ <list>
+ <ref>ImplementedMember</ref>
+ </list>
<p>
- Reports that any analysis results that were previously
- associated with the given files should be considered to be
- invalid because those files are no longer being analyzed,
- either because the analysis root that contained it is no
- longer being analyzed or because the file no longer exists.
+ The member defined in the file that are implemented or overridden.
</p>
+ </field>
+ </params>
+ </notification>
+ <notification event="invalidate">
+ <p>
+ Reports that the navigation information associated with a region of a
+ single file has become invalid and should be re-requested.
+ </p>
+ <p>
+ This notification is not subscribed to by default. Clients can
+ subscribe by including the value <tt>"INVALIDATE"</tt> in the list of
+ services passed in an analysis.setSubscriptions request.
+ </p>
+ <params>
+ <field name="file">
+ <ref>FilePath</ref>
<p>
- If a file is included in this notification and at some later
- time a notification with results for the file is received,
- clients should assume that the file is once again being
- analyzed and the information should be processed.
+ The file whose information has been invalidated.
</p>
+ </field>
+ <field name="offset">
+ <ref>int</ref>
<p>
- It is not possible to subscribe to or unsubscribe from this
- notification.
+ The offset of the invalidated region.
</p>
- <params>
- <field name="files">
- <list><ref>FilePath</ref></list>
- <p>
- The files that are no longer being analyzed.
- </p>
- </field>
- </params>
- </notification>
- <notification event="folding">
+ </field>
+ <field name="length">
+ <ref>int</ref>
<p>
- Reports the folding regions associated with a given
- file. Folding regions can be nested, but will not be
- overlapping. Nesting occurs when a foldable element, such as
- a method, is nested inside another foldable element such as
- a class.
+ The length of the invalidated region.
</p>
+ </field>
+ <field name="delta">
+ <ref>int</ref>
<p>
- This notification is not subscribed to by default. Clients
- can subscribe by including the value <tt>"FOLDING"</tt> in
- the list of services passed in an analysis.setSubscriptions
- request.
+ The delta to be applied to the offsets in information that follows
+ the invalidated region in order to update it so that it doesn't
+ need to be re-requested.
</p>
- <params>
- <field name="file">
- <ref>FilePath</ref>
- <p>
- The file containing the folding regions.
- </p>
- </field>
- <field name="regions">
- <list><ref>FoldingRegion</ref></list>
- <p>
- The folding regions contained in the file.
- </p>
- </field>
- </params>
- </notification>
- <notification event="highlights">
+ </field>
+ </params>
+ </notification>
+ <notification event="navigation">
+ <p>
+ Reports the navigation targets associated with a given file.
+ </p>
+ <p>
+ This notification is not subscribed to by default. Clients
+ can subscribe by including the value <tt>"NAVIGATION"</tt>
+ in the list of services passed in an
+ analysis.setSubscriptions request.
+ </p>
+ <params>
+ <field name="file">
+ <ref>FilePath</ref>
+ <p>
+ The file containing the navigation regions.
+ </p>
+ </field>
+ <field name="regions">
+ <list>
+ <ref>NavigationRegion</ref>
+ </list>
+ <p>
+ The navigation regions contained in the file.
+ The regions are sorted by their offsets.
+ Each navigation region represents a list of targets
+ associated with some range. The lists will usually
+ contain a single target, but can contain more in the
+ case of a part that is included in multiple libraries
+ or in Dart code that is compiled against multiple
+ versions of a package. Note that the navigation
+ regions that are returned do not overlap other
+ navigation regions.
+ </p>
+ </field>
+ <field name="targets">
+ <list>
+ <ref>NavigationTarget</ref>
+ </list>
+ <p>
+ The navigation targets referenced in the file.
+ They are referenced by <tt>NavigationRegion</tt>s by their
+ index in this array.
+ </p>
+ </field>
+ <field name="files">
+ <list>
+ <ref>FilePath</ref>
+ </list>
+ <p>
+ The files containing navigation targets referenced in the file.
+ They are referenced by <tt>NavigationTarget</tt>s by their
+ index in this array.
+ </p>
+ </field>
+ </params>
+ </notification>
+ <notification event="occurrences">
+ <p>
+ Reports the occurrences of references to elements within a
+ single file.
+ </p>
+ <p>
+ This notification is not subscribed to by default. Clients
+ can subscribe by including the value <tt>"OCCURRENCES"</tt>
+ in the list of services passed in an
+ analysis.setSubscriptions request.
+ </p>
+ <params>
+ <field name="file">
+ <ref>FilePath</ref>
<p>
- Reports the highlight regions associated with a given file.
+ The file in which the references occur.
</p>
+ </field>
+ <field name="occurrences">
+ <list>
+ <ref>Occurrences</ref>
+ </list>
<p>
- This notification is not subscribed to by default. Clients
- can subscribe by including the value <tt>"HIGHLIGHTS"</tt>
- in the list of services passed in an
- analysis.setSubscriptions request.
+ The occurrences of references to elements within the
+ file.
</p>
- <params>
- <field name="file">
- <ref>FilePath</ref>
- <p>
- The file containing the highlight regions.
- </p>
- </field>
- <field name="regions">
- <list><ref>HighlightRegion</ref></list>
- <p>
- The highlight regions contained in the file. Each
- highlight region represents a particular syntactic or
- semantic meaning associated with some range. Note that
- the highlight regions that are returned can overlap
- other highlight regions if there is more than one
- meaning associated with a particular region.
- </p>
- </field>
- </params>
- </notification>
- <notification event="implemented">
+ </field>
+ </params>
+ </notification>
+ <notification event="outline">
+ <p>
+ Reports the outline associated with a single file.
+ </p>
+ <p>
+ This notification is not subscribed to by default. Clients
+ can subscribe by including the value <tt>"OUTLINE"</tt> in
+ the list of services passed in an analysis.setSubscriptions
+ request.
+ </p>
+ <params>
+ <field name="file">
+ <ref>FilePath</ref>
<p>
- Reports the classes that are implemented or extended and
- class members that are implemented or overridden in a file.
+ The file with which the outline is associated.
</p>
+ </field>
+ <field name="kind">
+ <ref>FileKind</ref>
<p>
- This notification is not subscribed to by default. Clients
- can subscribe by including the value <tt>"IMPLEMENTED"</tt> in
- the list of services passed in an analysis.setSubscriptions
- request.
+ The kind of the file.
</p>
- <params>
- <field name="file">
- <ref>FilePath</ref>
- <p>
- The file with which the implementations are associated.
- </p>
- </field>
- <field name="classes">
- <list><ref>ImplementedClass</ref></list>
- <p>
- The classes defined in the file that are implemented or extended.
- </p>
- </field>
- <field name="members">
- <list><ref>ImplementedMember</ref></list>
- <p>
- The member defined in the file that are implemented or overridden.
- </p>
- </field>
- </params>
- </notification>
- <notification event="invalidate">
+ </field>
+ <field name="libraryName" optional="true">
+ <ref>String</ref>
<p>
- Reports that the navigation information associated with a region of a
- single file has become invalid and should be re-requested.
+ The name of the library defined by the file using a "library"
+ directive, or referenced by a "part of" directive. If both
+ "library" and "part of" directives are present, then the
+ "library" directive takes precedence.
+ This field will be omitted if the file has neither "library"
+ nor "part of" directives.
</p>
+ </field>
+ <field name="outline">
+ <ref>Outline</ref>
<p>
- This notification is not subscribed to by default. Clients can
- subscribe by including the value <tt>"INVALIDATE"</tt> in the list of
- services passed in an analysis.setSubscriptions request.
+ The outline associated with the file.
</p>
- <params>
- <field name="file">
- <ref>FilePath</ref>
- <p>
- The file whose information has been invalidated.
- </p>
- </field>
- <field name="offset">
- <ref>int</ref>
- <p>
- The offset of the invalidated region.
- </p>
- </field>
- <field name="length">
- <ref>int</ref>
- <p>
- The length of the invalidated region.
- </p>
- </field>
- <field name="delta">
- <ref>int</ref>
- <p>
- The delta to be applied to the offsets in information that follows
- the invalidated region in order to update it so that it doesn't
- need to be re-requested.
- </p>
- </field>
- </params>
- </notification>
- <notification event="navigation">
+ </field>
+ </params>
+ </notification>
+ <notification event="overrides">
+ <p>
+ Reports the overriding members in a file.
+ </p>
+ <p>
+ This notification is not subscribed to by default. Clients
+ can subscribe by including the value <tt>"OVERRIDES"</tt> in
+ the list of services passed in an analysis.setSubscriptions
+ request.
+ </p>
+ <params>
+ <field name="file">
+ <ref>FilePath</ref>
+ <p>
+ The file with which the overrides are associated.
+ </p>
+ </field>
+ <field name="overrides">
+ <list>
+ <ref>Override</ref>
+ </list>
+ <p>
+ The overrides associated with the file.
+ </p>
+ </field>
+ </params>
+ </notification>
+</domain>
+<domain name="completion">
+ <p>
+ The code completion domain contains commands related to
+ getting code completion suggestions.
+ </p>
+ <request method="getSuggestions">
+ <p>
+ Request that completion suggestions for the given offset in
+ the given file be returned.
+ </p>
+ <params>
+ <field name="file">
+ <ref>FilePath</ref>
<p>
- Reports the navigation targets associated with a given file.
+ The file containing the point at which suggestions are
+ to be made.
</p>
+ </field>
+ <field name="offset">
+ <ref>int</ref>
<p>
- This notification is not subscribed to by default. Clients
- can subscribe by including the value <tt>"NAVIGATION"</tt>
- in the list of services passed in an
- analysis.setSubscriptions request.
+ The offset within the file at which suggestions are to
+ be made.
</p>
- <params>
- <field name="file">
- <ref>FilePath</ref>
- <p>
- The file containing the navigation regions.
- </p>
- </field>
- <field name="regions">
- <list><ref>NavigationRegion</ref></list>
- <p>
- The navigation regions contained in the file.
- The regions are sorted by their offsets.
- Each navigation region represents a list of targets
- associated with some range. The lists will usually
- contain a single target, but can contain more in the
- case of a part that is included in multiple libraries
- or in Dart code that is compiled against multiple
- versions of a package. Note that the navigation
- regions that are returned do not overlap other
- navigation regions.
- </p>
- </field>
- <field name="targets">
- <list><ref>NavigationTarget</ref></list>
- <p>
- The navigation targets referenced in the file.
- They are referenced by <tt>NavigationRegion</tt>s by their
- index in this array.
- </p>
- </field>
- <field name="files">
- <list><ref>FilePath</ref></list>
- <p>
- The files containing navigation targets referenced in the file.
- They are referenced by <tt>NavigationTarget</tt>s by their
- index in this array.
- </p>
- </field>
- </params>
- </notification>
- <notification event="occurrences">
+ </field>
+ </params>
+ <result>
+ <field name="id">
+ <ref>CompletionId</ref>
<p>
- Reports the occurrences of references to elements within a
- single file.
+ The identifier used to associate results with this
+ completion request.
</p>
+ </field>
+ </result>
+ </request>
+ <notification event="results">
+ <p>
+ Reports the completion suggestions that should be presented
+ to the user. The set of suggestions included in the
+ notification is always a complete list that supersedes any
+ previously reported suggestions.
+ </p>
+ <params>
+ <field name="id">
+ <ref>CompletionId</ref>
+ <p>
+ The id associated with the completion.
+ </p>
+ </field>
+ <field name="replacementOffset">
+ <ref>int</ref>
+ <p>
+ The offset of the start of the text to be
+ replaced. This will be different than the offset used
+ to request the completion suggestions if there was a
+ portion of an identifier before the original
+ offset. In particular, the replacementOffset will be
+ the offset of the beginning of said identifier.
+ </p>
+ </field>
+ <field name="replacementLength">
+ <ref>int</ref>
+ <p>
+ The length of the text to be replaced if the remainder
+ of the identifier containing the cursor is to be
+ replaced when the suggestion is applied (that is, the
+ number of characters in the existing identifier).
+ </p>
+ </field>
+ <field name="results">
+ <list>
+ <ref>CompletionSuggestion</ref>
+ </list>
+ <p>
+ The completion suggestions being reported. The
+ notification contains all possible completions at the
+ requested cursor position, even those that do not match
+ the characters the user has already typed. This allows
+ the client to respond to further keystrokes from the
+ user without having to make additional requests.
+ </p>
+ </field>
+ <field name="isLast">
+ <ref>bool</ref>
+ <p>
+ True if this is that last set of results that will be
+ returned for the indicated completion.
+ </p>
+ </field>
+ </params>
+ </notification>
+</domain>
+<domain name="search">
+ <p>
+ The search domain contains commands related to searches that
+ can be performed against the code base.
+ </p>
+ <request method="findElementReferences">
+ <p>
+ Perform a search for references to the element defined or
+ referenced at the given offset in the given file.
+ </p>
+ <p>
+ An identifier is returned immediately, and individual
+ results will be returned via the search.results notification
+ as they become available.
+ </p>
+ <params>
+ <field name="file">
+ <ref>FilePath</ref>
<p>
- This notification is not subscribed to by default. Clients
- can subscribe by including the value <tt>"OCCURRENCES"</tt>
- in the list of services passed in an
- analysis.setSubscriptions request.
+ The file containing the declaration of or reference to
+ the element used to define the search.
</p>
- <params>
- <field name="file">
- <ref>FilePath</ref>
- <p>
- The file in which the references occur.
- </p>
- </field>
- <field name="occurrences">
- <list><ref>Occurrences</ref></list>
- <p>
- The occurrences of references to elements within the
- file.
- </p>
- </field>
- </params>
- </notification>
- <notification event="outline">
+ </field>
+ <field name="offset">
+ <ref>int</ref>
<p>
- Reports the outline associated with a single file.
+ The offset within the file of the declaration of or
+ reference to the element.
</p>
+ </field>
+ <field name="includePotential">
+ <ref>bool</ref>
<p>
- This notification is not subscribed to by default. Clients
- can subscribe by including the value <tt>"OUTLINE"</tt> in
- the list of services passed in an analysis.setSubscriptions
- request.
+ True if potential matches are to be included in the
+ results.
</p>
- <params>
- <field name="file">
- <ref>FilePath</ref>
- <p>
- The file with which the outline is associated.
- </p>
- </field>
- <field name="kind">
- <ref>FileKind</ref>
- <p>
- The kind of the file.
- </p>
- </field>
- <field name="libraryName" optional="true">
- <ref>String</ref>
- <p>
- The name of the library defined by the file using a "library"
- directive, or referenced by a "part of" directive. If both
- "library" and "part of" directives are present, then the
- "library" directive takes precedence.
- This field will be omitted if the file has neither "library"
- nor "part of" directives.
- </p>
- </field>
- <field name="outline">
- <ref>Outline</ref>
- <p>
- The outline associated with the file.
- </p>
- </field>
- </params>
- </notification>
- <notification event="overrides">
+ </field>
+ </params>
+ <result>
+ <field name="id" optional="true">
+ <ref>SearchId</ref>
<p>
- Reports the overriding members in a file.
+ The identifier used to associate results with this
+ search request.
</p>
<p>
- This notification is not subscribed to by default. Clients
- can subscribe by including the value <tt>"OVERRIDES"</tt> in
- the list of services passed in an analysis.setSubscriptions
- request.
+ If no element was found at the given location, this
+ field will be absent, and no results will be reported
+ via the search.results notification.
</p>
- <params>
- <field name="file">
- <ref>FilePath</ref>
- <p>
- The file with which the overrides are associated.
- </p>
- </field>
- <field name="overrides">
- <list><ref>Override</ref></list>
- <p>
- The overrides associated with the file.
- </p>
- </field>
- </params>
- </notification>
- </domain>
- <domain name="completion">
- <p>
- The code completion domain contains commands related to
- getting code completion suggestions.
- </p>
- <request method="getSuggestions">
+ </field>
+ <field name="element" optional="true">
+ <ref>Element</ref>
<p>
- Request that completion suggestions for the given offset in
- the given file be returned.
+ The element referenced or defined at the given offset
+ and whose references will be returned in the search
+ results.
</p>
- <params>
- <field name="file">
- <ref>FilePath</ref>
- <p>
- The file containing the point at which suggestions are
- to be made.
- </p>
- </field>
- <field name="offset">
- <ref>int</ref>
- <p>
- The offset within the file at which suggestions are to
- be made.
- </p>
- </field>
- </params>
- <result>
- <field name="id">
- <ref>CompletionId</ref>
- <p>
- The identifier used to associate results with this
- completion request.
- </p>
- </field>
- </result>
- </request>
- <notification event="results">
- <p>
- Reports the completion suggestions that should be presented
- to the user. The set of suggestions included in the
- notification is always a complete list that supersedes any
- previously reported suggestions.
- </p>
- <params>
- <field name="id">
- <ref>CompletionId</ref>
- <p>
- The id associated with the completion.
- </p>
- </field>
- <field name="replacementOffset">
- <ref>int</ref>
- <p>
- The offset of the start of the text to be
- replaced. This will be different than the offset used
- to request the completion suggestions if there was a
- portion of an identifier before the original
- offset. In particular, the replacementOffset will be
- the offset of the beginning of said identifier.
- </p>
- </field>
- <field name="replacementLength">
- <ref>int</ref>
- <p>
- The length of the text to be replaced if the remainder
- of the identifier containing the cursor is to be
- replaced when the suggestion is applied (that is, the
- number of characters in the existing identifier).
- </p>
- </field>
- <field name="results">
- <list><ref>CompletionSuggestion</ref></list>
- <p>
- The completion suggestions being reported. The
- notification contains all possible completions at the
- requested cursor position, even those that do not match
- the characters the user has already typed. This allows
- the client to respond to further keystrokes from the
- user without having to make additional requests.
- </p>
- </field>
- <field name="isLast">
- <ref>bool</ref>
- <p>
- True if this is that last set of results that will be
- returned for the indicated completion.
- </p>
- </field>
- </params>
- </notification>
- </domain>
- <domain name="search">
- <p>
- The search domain contains commands related to searches that
- can be performed against the code base.
- </p>
- <request method="findElementReferences">
<p>
- Perform a search for references to the element defined or
- referenced at the given offset in the given file.
+ If no element was found at the given location, this
+ field will be absent.
</p>
+ </field>
+ </result>
+ </request>
+ <request method="findMemberDeclarations">
+ <p>
+ Perform a search for declarations of members whose name is
+ equal to the given name.
+ </p>
+ <p>
+ An identifier is returned immediately, and individual
+ results will be returned via the search.results notification
+ as they become available.
+ </p>
+ <params>
+ <field name="name">
+ <ref>String</ref>
<p>
- An identifier is returned immediately, and individual
- results will be returned via the search.results notification
- as they become available.
+ The name of the declarations to be found.
</p>
- <params>
- <field name="file">
- <ref>FilePath</ref>
- <p>
- The file containing the declaration of or reference to
- the element used to define the search.
- </p>
- </field>
- <field name="offset">
- <ref>int</ref>
- <p>
- The offset within the file of the declaration of or
- reference to the element.
- </p>
- </field>
- <field name="includePotential">
- <ref>bool</ref>
- <p>
- True if potential matches are to be included in the
- results.
- </p>
- </field>
- </params>
- <result>
- <field name="id" optional="true">
- <ref>SearchId</ref>
- <p>
- The identifier used to associate results with this
- search request.
- </p>
- <p>
- If no element was found at the given location, this
- field will be absent, and no results will be reported
- via the search.results notification.
- </p>
- </field>
- <field name="element" optional="true">
- <ref>Element</ref>
- <p>
- The element referenced or defined at the given offset
- and whose references will be returned in the search
- results.
- </p>
- <p>
- If no element was found at the given location, this
- field will be absent.
- </p>
- </field>
- </result>
- </request>
- <request method="findMemberDeclarations">
+ </field>
+ </params>
+ <result>
+ <field name="id">
+ <ref>SearchId</ref>
<p>
- Perform a search for declarations of members whose name is
- equal to the given name.
+ The identifier used to associate results with this
+ search request.
</p>
+ </field>
+ </result>
+ </request>
+ <request method="findMemberReferences">
+ <p>
+ Perform a search for references to members whose name is
+ equal to the given name. This search does not check to see
+ that there is a member defined with the given name, so it is
+ able to find references to undefined members as well.
+ </p>
+ <p>
+ An identifier is returned immediately, and individual
+ results will be returned via the search.results notification
+ as they become available.
+ </p>
+ <params>
+ <field name="name">
+ <ref>String</ref>
<p>
- An identifier is returned immediately, and individual
- results will be returned via the search.results notification
- as they become available.
+ The name of the references to be found.
</p>
- <params>
- <field name="name">
- <ref>String</ref>
- <p>
- The name of the declarations to be found.
- </p>
- </field>
- </params>
- <result>
- <field name="id">
- <ref>SearchId</ref>
- <p>
- The identifier used to associate results with this
- search request.
- </p>
- </field>
- </result>
- </request>
- <request method="findMemberReferences">
+ </field>
+ </params>
+ <result>
+ <field name="id">
+ <ref>SearchId</ref>
<p>
- Perform a search for references to members whose name is
- equal to the given name. This search does not check to see
- that there is a member defined with the given name, so it is
- able to find references to undefined members as well.
+ The identifier used to associate results with this
+ search request.
</p>
+ </field>
+ </result>
+ </request>
+ <request method="findTopLevelDeclarations">
+ <p>
+ Perform a search for declarations of top-level elements
+ (classes, typedefs, getters, setters, functions and fields)
+ whose name matches the given pattern.
+ </p>
+ <p>
+ An identifier is returned immediately, and individual
+ results will be returned via the search.results notification
+ as they become available.
+ </p>
+ <params>
+ <field name="pattern">
+ <ref>String</ref>
<p>
- An identifier is returned immediately, and individual
- results will be returned via the search.results notification
- as they become available.
+ The regular expression used to match the names of the
+ declarations to be found.
</p>
- <params>
- <field name="name">
- <ref>String</ref>
- <p>
- The name of the references to be found.
- </p>
- </field>
- </params>
- <result>
- <field name="id">
- <ref>SearchId</ref>
- <p>
- The identifier used to associate results with this
- search request.
- </p>
- </field>
- </result>
- </request>
- <request method="findTopLevelDeclarations">
+ </field>
+ </params>
+ <result>
+ <field name="id">
+ <ref>SearchId</ref>
<p>
- Perform a search for declarations of top-level elements
- (classes, typedefs, getters, setters, functions and fields)
- whose name matches the given pattern.
+ The identifier used to associate results with this
+ search request.
</p>
+ </field>
+ </result>
+ </request>
+ <request method="getTypeHierarchy">
+ <p>
+ Return the type hierarchy of the class declared or
+ referenced at the given location.
+ </p>
+ <params>
+ <field name="file">
+ <ref>FilePath</ref>
+ <p>
+ The file containing the declaration or reference to the
+ type for which a hierarchy is being requested.
+ </p>
+ </field>
+ <field name="offset">
+ <ref>int</ref>
+ <p>
+ The offset of the name of the type within the file.
+ </p>
+ </field>
+ <field name="superOnly" optional="true">
+ <ref>bool</ref>
+ <p>
+ True if the client is only requesting superclasses and
+ interfaces hierarchy.
+ </p>
+ </field>
+ </params>
+ <result>
+ <field name="hierarchyItems" optional="true">
+ <list>
+ <ref>TypeHierarchyItem</ref>
+ </list>
+ <p>
+ A list of the types in the requested hierarchy. The
+ first element of the list is the item representing the
+ type for which the hierarchy was requested. The index of
+ other elements of the list is unspecified, but
+ correspond to the integers used to reference supertype
+ and subtype items within the items.
+ </p>
+ <p>
+ This field will be absent if the code at the given file
+ and offset does not represent a type, or if the file has
+ not been sufficiently analyzed to allow a type hierarchy
+ to be produced.
+ </p>
+ </field>
+ </result>
+ </request>
+ <notification event="results">
+ <p>
+ Reports some or all of the results of performing a requested
+ search. Unlike other notifications, this notification
+ contains search results that should be added to any
+ previously received search results associated with the same
+ search id.
+ </p>
+ <params>
+ <field name="id">
+ <ref>SearchId</ref>
+ <p>
+ The id associated with the search.
+ </p>
+ </field>
+ <field name="results">
+ <list>
+ <ref>SearchResult</ref>
+ </list>
+ <p>
+ The search results being reported.
+ </p>
+ </field>
+ <field name="isLast">
+ <ref>bool</ref>
+ <p>
+ True if this is that last set of results that will be
+ returned for the indicated search.
+ </p>
+ </field>
+ </params>
+ </notification>
+</domain>
+<domain name="edit">
+ <p>
+ The edit domain contains commands related to edits that can be
+ applied to the code.
+ </p>
+ <request method="format">
+ <p>
+ Format the contents of a single file. The currently selected region of
+ text is passed in so that the selection can be preserved across the
+ formatting operation. The updated selection will be as close to
+ matching the original as possible, but whitespace at the beginning or
+ end of the selected region will be ignored. If preserving selection
+ information is not required, zero (0) can be specified for both the
+ selection offset and selection length.
+ </p>
+ <p>
+ If a request is made for a file which does not exist, or which is not
+ currently subject to analysis (e.g. because it is not associated with
+ any analysis root specified to analysis.setAnalysisRoots), an error of
+ type <tt>FORMAT_INVALID_FILE</tt> will be generated. If the source
+ contains syntax errors, an error of type <tt>FORMAT_WITH_ERRORS</tt>
+ will be generated.
+ </p>
+ <params>
+ <field name="file">
+ <ref>FilePath</ref>
<p>
- An identifier is returned immediately, and individual
- results will be returned via the search.results notification
- as they become available.
+ The file containing the code to be formatted.
</p>
- <params>
- <field name="pattern">
- <ref>String</ref>
- <p>
- The regular expression used to match the names of the
- declarations to be found.
- </p>
- </field>
- </params>
- <result>
- <field name="id">
- <ref>SearchId</ref>
- <p>
- The identifier used to associate results with this
- search request.
- </p>
- </field>
- </result>
- </request>
- <request method="getTypeHierarchy">
+ </field>
+ <field name="selectionOffset">
+ <ref>int</ref>
<p>
- Return the type hierarchy of the class declared or
- referenced at the given location.
+ The offset of the current selection in the file.
</p>
- <params>
- <field name="file">
- <ref>FilePath</ref>
- <p>
- The file containing the declaration or reference to the
- type for which a hierarchy is being requested.
- </p>
- </field>
- <field name="offset">
- <ref>int</ref>
- <p>
- The offset of the name of the type within the file.
- </p>
- </field>
- <field name="superOnly" optional="true">
- <ref>bool</ref>
- <p>
- True if the client is only requesting superclasses and
- interfaces hierarchy.
- </p>
- </field>
- </params>
- <result>
- <field name="hierarchyItems" optional="true">
- <list><ref>TypeHierarchyItem</ref></list>
- <p>
- A list of the types in the requested hierarchy. The
- first element of the list is the item representing the
- type for which the hierarchy was requested. The index of
- other elements of the list is unspecified, but
- correspond to the integers used to reference supertype
- and subtype items within the items.
- </p>
- <p>
- This field will be absent if the code at the given file
- and offset does not represent a type, or if the file has
- not been sufficiently analyzed to allow a type hierarchy
- to be produced.
- </p>
- </field>
- </result>
- </request>
- <notification event="results">
- <p>
- Reports some or all of the results of performing a requested
- search. Unlike other notifications, this notification
- contains search results that should be added to any
- previously received search results associated with the same
- search id.
- </p>
- <params>
- <field name="id">
- <ref>SearchId</ref>
- <p>
- The id associated with the search.
- </p>
- </field>
- <field name="results">
- <list><ref>SearchResult</ref></list>
- <p>
- The search results being reported.
- </p>
- </field>
- <field name="isLast">
- <ref>bool</ref>
- <p>
- True if this is that last set of results that will be
- returned for the indicated search.
- </p>
- </field>
- </params>
- </notification>
- </domain>
- <domain name="edit">
- <p>
- The edit domain contains commands related to edits that can be
- applied to the code.
- </p>
- <request method="format">
- <p>
- Format the contents of a single file. The currently selected region of
- text is passed in so that the selection can be preserved across the
- formatting operation. The updated selection will be as close to
- matching the original as possible, but whitespace at the beginning or
- end of the selected region will be ignored. If preserving selection
- information is not required, zero (0) can be specified for both the
- selection offset and selection length.
- </p>
- <p>
- If a request is made for a file which does not exist, or which is not
- currently subject to analysis (e.g. because it is not associated with
- any analysis root specified to analysis.setAnalysisRoots), an error of
- type <tt>FORMAT_INVALID_FILE</tt> will be generated. If the source
- contains syntax errors, an error of type <tt>FORMAT_WITH_ERRORS</tt>
- will be generated.
- </p>
- <params>
- <field name="file">
- <ref>FilePath</ref>
- <p>
- The file containing the code to be formatted.
- </p>
- </field>
- <field name="selectionOffset">
- <ref>int</ref>
- <p>
- The offset of the current selection in the file.
- </p>
- </field>
- <field name="selectionLength">
- <ref>int</ref>
- <p>
- The length of the current selection in the file.
- </p>
- </field>
- <!--
+ </field>
+ <field name="selectionLength">
+ <ref>int</ref>
+ <p>
+ The length of the current selection in the file.
+ </p>
+ </field>
+ <!--
<field name="selectionOnly" optional="true">
<ref>bool</ref>
<p>
@@ -1541,3105 +1627,1874 @@
</p>
</field>
-->
- <field name="lineLength" optional="true">
- <ref>int</ref>
- <p>
- The line length to be used by the formatter.
- </p>
- </field>
- </params>
- <result>
- <field name="edits">
- <list><ref>SourceEdit</ref></list>
- <p>
- The edit(s) to be applied in order to format the code. The list
- will be empty if the code was already formatted (there are no
- changes).
- </p>
- </field>
- <field name="selectionOffset">
- <ref>int</ref>
- <p>
- The offset of the selection after formatting the code.
- </p>
- </field>
- <field name="selectionLength">
- <ref>int</ref>
- <p>
- The length of the selection after formatting the code.
- </p>
- </field>
- </result>
- </request>
- <request method="getAssists">
+ <field name="lineLength" optional="true">
+ <ref>int</ref>
<p>
- Return the set of assists that are available at the given
- location. An assist is distinguished from a refactoring
- primarily by the fact that it affects a single file and does
- not require user input in order to be performed.
+ The line length to be used by the formatter.
</p>
- <params>
- <field name="file">
- <ref>FilePath</ref>
- <p>
- The file containing the code for which assists are being
- requested.
- </p>
- </field>
- <field name="offset">
- <ref>int</ref>
- <p>
- The offset of the code for which assists are being
- requested.
- </p>
- </field>
- <field name="length">
- <ref>int</ref>
- <p>
- The length of the code for which assists are being
- requested.
- </p>
- </field>
- </params>
- <result>
- <field name="assists">
- <list><ref>SourceChange</ref></list>
- <p>
- The assists that are available at the given location.
- </p>
- </field>
- </result>
- </request>
- <request method="getAvailableRefactorings">
+ </field>
+ </params>
+ <result>
+ <field name="edits">
+ <list>
+ <ref>SourceEdit</ref>
+ </list>
<p>
- Get a list of the kinds of refactorings that are valid for
- the given selection in the given file.
+ The edit(s) to be applied in order to format the code. The list
+ will be empty if the code was already formatted (there are no
+ changes).
</p>
- <params>
- <field name="file">
- <ref>FilePath</ref>
- <p>
- The file containing the code on which the refactoring
- would be based.
- </p>
- </field>
- <field name="offset">
- <ref>int</ref>
- <p>
- The offset of the code on which the refactoring would be
- based.
- </p>
- </field>
- <field name="length">
- <ref>int</ref>
- <p>
- The length of the code on which the refactoring would be
- based.
- </p>
- </field>
- </params>
- <result>
- <field name="kinds">
- <list><ref>RefactoringKind</ref></list>
- <p>
- The kinds of refactorings that are valid for the given
- selection.
- </p>
- </field>
- </result>
- </request>
- <request method="getFixes">
+ </field>
+ <field name="selectionOffset">
+ <ref>int</ref>
<p>
- Return the set of fixes that are available for the errors at
- a given offset in a given file.
+ The offset of the selection after formatting the code.
</p>
- <params>
- <field name="file">
- <ref>FilePath</ref>
- <p>
- The file containing the errors for which fixes are being
- requested.
- </p>
- </field>
- <field name="offset">
- <ref>int</ref>
- <p>
- The offset used to select the errors for which fixes
- will be returned.
- </p>
- </field>
- </params>
- <result>
- <field name="fixes">
- <list><ref>AnalysisErrorFixes</ref></list>
- <p>
- The fixes that are available for the errors at the given offset.
- </p>
- </field>
- </result>
- </request>
- <request method="getRefactoring">
+ </field>
+ <field name="selectionLength">
+ <ref>int</ref>
<p>
- Get the changes required to perform a refactoring.
+ The length of the selection after formatting the code.
</p>
+ </field>
+ </result>
+ </request>
+ <request method="getAssists">
+ <p>
+ Return the set of assists that are available at the given
+ location. An assist is distinguished from a refactoring
+ primarily by the fact that it affects a single file and does
+ not require user input in order to be performed.
+ </p>
+ <params>
+ <field name="file">
+ <ref>FilePath</ref>
<p>
- If another refactoring request is received during the processing
- of this one, an error of type <tt>REFACTORING_REQUEST_CANCELLED</tt>
- will be generated.
+ The file containing the code for which assists are being
+ requested.
</p>
- <params>
- <field name="kind">
- <ref>RefactoringKind</ref>
- <p>
- The kind of refactoring to be performed.
- </p>
- </field>
- <field name="file">
- <ref>FilePath</ref>
- <p>
- The file containing the code involved in the
- refactoring.
- </p>
- </field>
- <field name="offset">
- <ref>int</ref>
- <p>
- The offset of the region involved in the refactoring.
- </p>
- </field>
- <field name="length">
- <ref>int</ref>
- <p>
- The length of the region involved in the refactoring.
- </p>
- </field>
- <field name="validateOnly">
- <ref>bool</ref>
- <p>
- True if the client is only requesting that the values of
- the options be validated and no change be generated.
- </p>
- </field>
- <field name="options" optional="true">
- <ref>RefactoringOptions</ref>
- <p>
- Data used to provide values provided by the user. The
- structure of the data is dependent on the kind of
- refactoring being performed. The data that is expected is
- documented in the section titled <a
- href="#refactorings">Refactorings</a>, labeled as
- "Options". This field can be omitted if the refactoring
- does not require any options or if the values of those
- options are not known.
- </p>
- </field>
- </params>
- <result>
- <field name="initialProblems">
- <list><ref>RefactoringProblem</ref></list>
- <p>
- The initial status of the refactoring, i.e. problems related to
- the context in which the refactoring is requested.
- The array will be empty if there are no known problems.
- </p>
- </field>
- <field name="optionsProblems">
- <list><ref>RefactoringProblem</ref></list>
- <p>
- The options validation status, i.e. problems in the given options,
- such as light-weight validation of a new name, flags
- compatibility, etc.
- The array will be empty if there are no known problems.
- </p>
- </field>
- <field name="finalProblems">
- <list><ref>RefactoringProblem</ref></list>
- <p>
- The final status of the refactoring, i.e. problems identified in
- the result of a full, potentially expensive validation and / or
- change creation.
- The array will be empty if there are no known problems.
- </p>
- </field>
- <field name="feedback" optional="true">
- <ref>RefactoringFeedback</ref>
- <p>
- Data used to provide feedback to the user. The structure
- of the data is dependent on the kind of refactoring
- being created. The data that is returned is documented
- in the section titled <a
- href="#refactorings">Refactorings</a>, labeled as
- "Feedback".
- </p>
- </field>
- <field name="change" optional="true">
- <ref>SourceChange</ref>
- <p>
- The changes that are to be applied to affect the
- refactoring. This field will be omitted if there are
- problems that prevent a set of changes from being
- computed, such as having no options specified for a
- refactoring that requires them, or if only validation
- was requested.
- </p>
- </field>
- <field name="potentialEdits" optional="true">
- <list><ref>String</ref></list>
- <p>
- The ids of source edits that are not known to be valid. An edit is
- not known to be valid if there was insufficient type information
- for the server to be able to determine whether or not the code
- needs to be modified, such as when a member is being renamed and
- there is a reference to a member from an unknown type. This field
- will be omitted if the change field is omitted or if there are no
- potential edits for the refactoring.
- </p>
- </field>
- </result>
- </request>
- <request method="getStatementCompletion" experimental="true">
- <p>
- Get the changes required to convert the partial statement at the given
- location into a syntactically valid statement. If the current statement
- is already valid the change will insert a newline plus appropriate
- indentation at the end of the line containing the offset.
- If a change that makes the statement valid cannot be determined (perhaps
- because it has not yet been implemented) the statement will be considered
- already valid and the appropriate change returned.
- </p>
- <params>
- <field name="file">
- <ref>FilePath</ref>
- <p>
- The file containing the statement to be completed.
- </p>
- </field>
- <field name="offset">
- <ref>int</ref>
- <p>
- The offset used to identify the statement to be completed.
- </p>
- </field>
- </params>
- <result>
- <field name="change">
- <ref>SourceChange</ref>
- <p>
- The change to be applied in order to complete the statement.
- </p>
- </field>
- <field name="whitespaceOnly">
- <ref>bool</ref>
- <p>
- Will be true if the change contains nothing but whitespace
- characters, or is empty.
- </p>
- </field>
- </result>
- </request>
- <request method="sortMembers">
+ </field>
+ <field name="offset">
+ <ref>int</ref>
<p>
- Sort all of the directives, unit and class members
- of the given Dart file.
+ The offset of the code for which assists are being
+ requested.
</p>
+ </field>
+ <field name="length">
+ <ref>int</ref>
<p>
- If a request is made for a file that does not exist, does not belong
- to an analysis root or is not a Dart file,
- <tt>SORT_MEMBERS_INVALID_FILE</tt> will be generated.
+ The length of the code for which assists are being
+ requested.
</p>
+ </field>
+ </params>
+ <result>
+ <field name="assists">
+ <list>
+ <ref>SourceChange</ref>
+ </list>
<p>
- If the Dart file has scan or parse errors,
- <tt>SORT_MEMBERS_PARSE_ERRORS</tt> will be generated.
+ The assists that are available at the given location.
</p>
- <params>
- <field name="file">
- <ref>FilePath</ref>
- <p>
- The Dart file to sort.
- </p>
- </field>
- </params>
- <result>
- <field name="edit">
- <ref>SourceFileEdit</ref>
- <p>
- The file edit that is to be applied to the given file to effect
- the sorting.
- </p>
- </field>
- </result>
- </request>
- <request method="organizeDirectives">
+ </field>
+ </result>
+ </request>
+ <request method="getAvailableRefactorings">
+ <p>
+ Get a list of the kinds of refactorings that are valid for
+ the given selection in the given file.
+ </p>
+ <params>
+ <field name="file">
+ <ref>FilePath</ref>
+ <p>
+ The file containing the code on which the refactoring
+ would be based.
+ </p>
+ </field>
+ <field name="offset">
+ <ref>int</ref>
+ <p>
+ The offset of the code on which the refactoring would be
+ based.
+ </p>
+ </field>
+ <field name="length">
+ <ref>int</ref>
+ <p>
+ The length of the code on which the refactoring would be
+ based.
+ </p>
+ </field>
+ </params>
+ <result>
+ <field name="kinds">
+ <list>
+ <ref>RefactoringKind</ref>
+ </list>
+ <p>
+ The kinds of refactorings that are valid for the given
+ selection.
+ </p>
+ </field>
+ </result>
+ </request>
+ <request method="getFixes">
+ <p>
+ Return the set of fixes that are available for the errors at
+ a given offset in a given file.
+ </p>
+ <params>
+ <field name="file">
+ <ref>FilePath</ref>
+ <p>
+ The file containing the errors for which fixes are being
+ requested.
+ </p>
+ </field>
+ <field name="offset">
+ <ref>int</ref>
+ <p>
+ The offset used to select the errors for which fixes
+ will be returned.
+ </p>
+ </field>
+ </params>
+ <result>
+ <field name="fixes">
+ <list>
+ <ref>AnalysisErrorFixes</ref>
+ </list>
+ <p>
+ The fixes that are available for the errors at the given offset.
+ </p>
+ </field>
+ </result>
+ </request>
+ <request method="getRefactoring">
+ <p>
+ Get the changes required to perform a refactoring.
+ </p>
+ <p>
+ If another refactoring request is received during the processing
+ of this one, an error of type <tt>REFACTORING_REQUEST_CANCELLED</tt>
+ will be generated.
+ </p>
+ <params>
+ <field name="kind">
+ <ref>RefactoringKind</ref>
+ <p>
+ The kind of refactoring to be performed.
+ </p>
+ </field>
+ <field name="file">
+ <ref>FilePath</ref>
+ <p>
+ The file containing the code involved in the
+ refactoring.
+ </p>
+ </field>
+ <field name="offset">
+ <ref>int</ref>
+ <p>
+ The offset of the region involved in the refactoring.
+ </p>
+ </field>
+ <field name="length">
+ <ref>int</ref>
+ <p>
+ The length of the region involved in the refactoring.
+ </p>
+ </field>
+ <field name="validateOnly">
+ <ref>bool</ref>
+ <p>
+ True if the client is only requesting that the values of
+ the options be validated and no change be generated.
+ </p>
+ </field>
+ <field name="options" optional="true">
+ <ref>RefactoringOptions</ref>
+ <p>
+ Data used to provide values provided by the user. The
+ structure of the data is dependent on the kind of
+ refactoring being performed. The data that is expected is
+ documented in the section titled <a
+ href="#refactorings">Refactorings</a>, labeled as
+ "Options". This field can be omitted if the refactoring
+ does not require any options or if the values of those
+ options are not known.
+ </p>
+ </field>
+ </params>
+ <result>
+ <field name="initialProblems">
+ <list>
+ <ref>RefactoringProblem</ref>
+ </list>
+ <p>
+ The initial status of the refactoring, i.e. problems related to
+ the context in which the refactoring is requested.
+ The array will be empty if there are no known problems.
+ </p>
+ </field>
+ <field name="optionsProblems">
+ <list>
+ <ref>RefactoringProblem</ref>
+ </list>
+ <p>
+ The options validation status, i.e. problems in the given options,
+ such as light-weight validation of a new name, flags
+ compatibility, etc.
+ The array will be empty if there are no known problems.
+ </p>
+ </field>
+ <field name="finalProblems">
+ <list>
+ <ref>RefactoringProblem</ref>
+ </list>
+ <p>
+ The final status of the refactoring, i.e. problems identified in
+ the result of a full, potentially expensive validation and / or
+ change creation.
+ The array will be empty if there are no known problems.
+ </p>
+ </field>
+ <field name="feedback" optional="true">
+ <ref>RefactoringFeedback</ref>
+ <p>
+ Data used to provide feedback to the user. The structure
+ of the data is dependent on the kind of refactoring
+ being created. The data that is returned is documented
+ in the section titled <a
+ href="#refactorings">Refactorings</a>, labeled as
+ "Feedback".
+ </p>
+ </field>
+ <field name="change" optional="true">
+ <ref>SourceChange</ref>
+ <p>
+ The changes that are to be applied to affect the
+ refactoring. This field will be omitted if there are
+ problems that prevent a set of changes from being
+ computed, such as having no options specified for a
+ refactoring that requires them, or if only validation
+ was requested.
+ </p>
+ </field>
+ <field name="potentialEdits" optional="true">
+ <list>
+ <ref>String</ref>
+ </list>
+ <p>
+ The ids of source edits that are not known to be valid. An edit is
+ not known to be valid if there was insufficient type information
+ for the server to be able to determine whether or not the code
+ needs to be modified, such as when a member is being renamed and
+ there is a reference to a member from an unknown type. This field
+ will be omitted if the change field is omitted or if there are no
+ potential edits for the refactoring.
+ </p>
+ </field>
+ </result>
+ </request>
+ <request method="getStatementCompletion" experimental="true">
+ <p>
+ Get the changes required to convert the partial statement at the given
+ location into a syntactically valid statement. If the current statement
+ is already valid the change will insert a newline plus appropriate
+ indentation at the end of the line containing the offset.
+ If a change that makes the statement valid cannot be determined (perhaps
+ because it has not yet been implemented) the statement will be considered
+ already valid and the appropriate change returned.
+ </p>
+ <params>
+ <field name="file">
+ <ref>FilePath</ref>
<p>
- Organizes all of the directives - removes unused imports and sorts
- directives of the given Dart file according to the
- <a href="https://www.dartlang.org/articles/style-guide/">Dart Style Guide</a>.
+ The file containing the statement to be completed.
</p>
+ </field>
+ <field name="offset">
+ <ref>int</ref>
<p>
- If a request is made for a file that does not exist, does not belong
- to an analysis root or is not a Dart file,
- <tt>FILE_NOT_ANALYZED</tt> will be generated.
+ The offset used to identify the statement to be completed.
</p>
+ </field>
+ </params>
+ <result>
+ <field name="change">
+ <ref>SourceChange</ref>
<p>
- If directives of the Dart file cannot be organized, for example
- because it has scan or parse errors, or by other reasons,
- <tt>ORGANIZE_DIRECTIVES_ERROR</tt> will be generated. The message
- will provide details about the reason.
+ The change to be applied in order to complete the statement.
</p>
- <params>
- <field name="file">
- <ref>FilePath</ref>
- <p>
- The Dart file to organize directives in.
- </p>
- </field>
- </params>
- <result>
- <field name="edit">
- <ref>SourceFileEdit</ref>
- <p>
- The file edit that is to be applied to the given file to effect
- the organizing.
- </p>
- </field>
- </result>
- </request>
- </domain>
- <domain name="execution">
- <p>
- The execution domain contains commands related to providing an execution
- or debugging experience.
- </p>
- <request method="createContext">
+ </field>
+ <field name="whitespaceOnly">
+ <ref>bool</ref>
<p>
- Create an execution context for the executable file with the given
- path. The context that is created will persist until
- execution.deleteContext is used to delete it. Clients, therefore, are
- responsible for managing the lifetime of execution contexts.
+ Will be true if the change contains nothing but whitespace
+ characters, or is empty.
</p>
- <params>
- <field name="contextRoot">
- <ref>FilePath</ref>
- <p>
- The path of the Dart or HTML file that will be launched, or the
- path of the directory containing the file.
- </p>
- </field>
- </params>
- <result>
- <field name="id">
- <ref>ExecutionContextId</ref>
- <p>
- The identifier used to refer to the execution context that was
- created.
- </p>
- </field>
- </result>
- </request>
- <request method="deleteContext">
+ </field>
+ </result>
+ </request>
+ <request method="sortMembers">
+ <p>
+ Sort all of the directives, unit and class members
+ of the given Dart file.
+ </p>
+ <p>
+ If a request is made for a file that does not exist, does not belong
+ to an analysis root or is not a Dart file,
+ <tt>SORT_MEMBERS_INVALID_FILE</tt> will be generated.
+ </p>
+ <p>
+ If the Dart file has scan or parse errors,
+ <tt>SORT_MEMBERS_PARSE_ERRORS</tt> will be generated.
+ </p>
+ <params>
+ <field name="file">
+ <ref>FilePath</ref>
<p>
- Delete the execution context with the given identifier. The context id
- is no longer valid after this command. The server is allowed to re-use
- ids when they are no longer valid.
+ The Dart file to sort.
</p>
- <params>
- <field name="id">
- <ref>ExecutionContextId</ref>
- <p>
- The identifier of the execution context that is to be deleted.
- </p>
- </field>
- </params>
- </request>
- <request method="mapUri">
+ </field>
+ </params>
+ <result>
+ <field name="edit">
+ <ref>SourceFileEdit</ref>
<p>
- Map a URI from the execution context to the file that it corresponds
- to, or map a file to the URI that it corresponds to in the execution
- context.
+ The file edit that is to be applied to the given file to effect
+ the sorting.
</p>
+ </field>
+ </result>
+ </request>
+ <request method="organizeDirectives">
+ <p>
+ Organizes all of the directives - removes unused imports and sorts
+ directives of the given Dart file according to the
+ <a href="https://www.dartlang.org/articles/style-guide/">Dart Style
+ Guide</a>.
+ </p>
+ <p>
+ If a request is made for a file that does not exist, does not belong
+ to an analysis root or is not a Dart file,
+ <tt>FILE_NOT_ANALYZED</tt> will be generated.
+ </p>
+ <p>
+ If directives of the Dart file cannot be organized, for example
+ because it has scan or parse errors, or by other reasons,
+ <tt>ORGANIZE_DIRECTIVES_ERROR</tt> will be generated. The message
+ will provide details about the reason.
+ </p>
+ <params>
+ <field name="file">
+ <ref>FilePath</ref>
+ <p>
+ The Dart file to organize directives in.
+ </p>
+ </field>
+ </params>
+ <result>
+ <field name="edit">
+ <ref>SourceFileEdit</ref>
+ <p>
+ The file edit that is to be applied to the given file to effect
+ the organizing.
+ </p>
+ </field>
+ </result>
+ </request>
+</domain>
+<domain name="execution">
+ <p>
+ The execution domain contains commands related to providing an execution
+ or debugging experience.
+ </p>
+ <request method="createContext">
+ <p>
+ Create an execution context for the executable file with the given
+ path. The context that is created will persist until
+ execution.deleteContext is used to delete it. Clients, therefore, are
+ responsible for managing the lifetime of execution contexts.
+ </p>
+ <params>
+ <field name="contextRoot">
+ <ref>FilePath</ref>
<p>
- Exactly one of the file and uri fields must be provided. If both
- fields are provided, then an error of type <tt>INVALID_PARAMETER</tt>
- will be generated. Similarly, if neither field is provided, then an
- error of type <tt>INVALID_PARAMETER</tt> will be generated.
+ The path of the Dart or HTML file that will be launched, or the
+ path of the directory containing the file.
</p>
+ </field>
+ </params>
+ <result>
+ <field name="id">
+ <ref>ExecutionContextId</ref>
<p>
- If the file field is provided and the value is not the path of a file
- (either the file does not exist or the path references something other
- than a file), then an error of type <tt>INVALID_PARAMETER</tt> will
- be generated.
+ The identifier used to refer to the execution context that was
+ created.
</p>
+ </field>
+ </result>
+ </request>
+ <request method="deleteContext">
+ <p>
+ Delete the execution context with the given identifier. The context id
+ is no longer valid after this command. The server is allowed to re-use
+ ids when they are no longer valid.
+ </p>
+ <params>
+ <field name="id">
+ <ref>ExecutionContextId</ref>
<p>
- If the uri field is provided and the value is not a valid URI or if
- the URI references something that is not a file (either a file that
- does not exist or something other than a file), then an error of type
- <tt>INVALID_PARAMETER</tt> will be generated.
+ The identifier of the execution context that is to be deleted.
</p>
+ </field>
+ </params>
+ </request>
+ <request method="mapUri">
+ <p>
+ Map a URI from the execution context to the file that it corresponds
+ to, or map a file to the URI that it corresponds to in the execution
+ context.
+ </p>
+ <p>
+ Exactly one of the file and uri fields must be provided. If both
+ fields are provided, then an error of type <tt>INVALID_PARAMETER</tt>
+ will be generated. Similarly, if neither field is provided, then an
+ error of type <tt>INVALID_PARAMETER</tt> will be generated.
+ </p>
+ <p>
+ If the file field is provided and the value is not the path of a file
+ (either the file does not exist or the path references something other
+ than a file), then an error of type <tt>INVALID_PARAMETER</tt> will
+ be generated.
+ </p>
+ <p>
+ If the uri field is provided and the value is not a valid URI or if
+ the URI references something that is not a file (either a file that
+ does not exist or something other than a file), then an error of type
+ <tt>INVALID_PARAMETER</tt> will be generated.
+ </p>
+ <p>
+ If the contextRoot used to create the execution context does not
+ exist, then an error of type <tt>INVALID_EXECUTION_CONTEXT</tt> will
+ be generated.
+ </p>
+ <params>
+ <field name="id">
+ <ref>ExecutionContextId</ref>
<p>
- If the contextRoot used to create the execution context does not
- exist, then an error of type <tt>INVALID_EXECUTION_CONTEXT</tt> will
- be generated.
+ The identifier of the execution context in which the URI is to be
+ mapped.
</p>
- <params>
- <field name="id">
- <ref>ExecutionContextId</ref>
- <p>
- The identifier of the execution context in which the URI is to be
- mapped.
- </p>
- </field>
- <field name="file" optional="true">
- <ref>FilePath</ref>
- <p>
- The path of the file to be mapped into a URI.
- </p>
- </field>
- <field name="uri" optional="true">
- <ref>String</ref>
- <p>
- The URI to be mapped into a file path.
- </p>
- </field>
- </params>
- <result>
- <field name="file" optional="true">
- <ref>FilePath</ref>
- <p>
- The file to which the URI was mapped. This field is omitted if the
- uri field was not given in the request.
- </p>
- </field>
- <field name="uri" optional="true">
- <ref>String</ref>
- <p>
- The URI to which the file path was mapped. This field is omitted
- if the file field was not given in the request.
- </p>
- </field>
- </result>
- </request>
- <request method="setSubscriptions" deprecated="true">
+ </field>
+ <field name="file" optional="true">
+ <ref>FilePath</ref>
<p>
- <b>Deprecated:</b> the analysis server no longer fires
- <tt>LAUNCH_DATA</tt> events.
+ The path of the file to be mapped into a URI.
</p>
+ </field>
+ <field name="uri" optional="true">
+ <ref>String</ref>
<p>
- Subscribe for services. All previous subscriptions are replaced by the
- given set of services.
+ The URI to be mapped into a file path.
</p>
+ </field>
+ </params>
+ <result>
+ <field name="file" optional="true">
+ <ref>FilePath</ref>
<p>
- It is an error if any of the elements in the list are not valid
- services. If there is an error, then the current subscriptions will
- remain unchanged.
+ The file to which the URI was mapped. This field is omitted if the
+ uri field was not given in the request.
</p>
- <params>
- <field name="subscriptions">
- <list><ref>ExecutionService</ref></list>
- <p>
- A list of the services being subscribed to.
- </p>
- </field>
- </params>
- </request>
- <notification event="launchData">
+ </field>
+ <field name="uri" optional="true">
+ <ref>String</ref>
<p>
- Reports information needed to allow a single file to be launched.
+ The URI to which the file path was mapped. This field is omitted
+ if the file field was not given in the request.
</p>
+ </field>
+ </result>
+ </request>
+ <request method="setSubscriptions" deprecated="true">
+ <p>
+ <b>Deprecated:</b> the analysis server no longer fires
+ <tt>LAUNCH_DATA</tt> events.
+ </p>
+ <p>
+ Subscribe for services. All previous subscriptions are replaced by the
+ given set of services.
+ </p>
+ <p>
+ It is an error if any of the elements in the list are not valid
+ services. If there is an error, then the current subscriptions will
+ remain unchanged.
+ </p>
+ <params>
+ <field name="subscriptions">
+ <list>
+ <ref>ExecutionService</ref>
+ </list>
+ <p>
+ A list of the services being subscribed to.
+ </p>
+ </field>
+ </params>
+ </request>
+ <notification event="launchData">
+ <p>
+ Reports information needed to allow a single file to be launched.
+ </p>
+ <p>
+ This notification is not subscribed to by default. Clients can
+ subscribe by including the value "LAUNCH_DATA" in the list of services
+ passed in an <tt>execution.setSubscriptions</tt> request.
+ </p>
+ <params>
+ <field name="file">
+ <ref>FilePath</ref>
+ <p>
+ The file for which launch data is being provided. This will either
+ be a Dart library or an HTML file.
+ </p>
+ </field>
+ <field name="kind" optional="true">
+ <ref>ExecutableKind</ref>
+ <p>
+ The kind of the executable file. This field is omitted if the file
+ is not a Dart file.
+ </p>
+ </field>
+ <field name="referencedFiles" optional="true">
+ <list>
+ <ref>FilePath</ref>
+ </list>
+ <p>
+ A list of the Dart files that are referenced by the file. This
+ field is omitted if the file is not an HTML file.
+ </p>
+ </field>
+ </params>
+ </notification>
+</domain>
+<domain name="diagnostic">
+ <p>
+ The diagnostic domain contains server diagnostics APIs.
+ </p>
+ <request method="getDiagnostics">
+ <p>Return server diagnostics.</p>
+ <result>
+ <field name="contexts">
+ <list>
+ <ref>ContextData</ref>
+ </list>
+ <p>The list of analysis contexts.</p>
+ </field>
+ </result>
+ </request>
+ <request method="getServerPort">
+ <p>
+ Return the port of the diagnostic web server. If the server is not running
+ this call will start the server. If unable to start the diagnostic web
+ server,
+ this call will return an error of <tt>DEBUG_PORT_COULD_NOT_BE_OPENED</tt>.
+ </p>
+ <result>
+ <field name="port">
+ <ref>int</ref>
+ <p>The diagnostic server port.</p>
+ </field>
+ </result>
+ </request>
+</domain>
+<types>
+ <h2 class="domain"><a name="types">Types</a></h2>
+ <p>
+ This section contains descriptions of the data types referenced
+ in the API’s of the various domains.
+ </p>
+ <include path="../../../analyzer_plugin/tool/spec/common_types_spec.html"
+ import="package:analyzer_plugin/protocol/protocol_common.dart"></include>
+ <type name="AnalysisErrorFixes">
+ <p>
+ A list of fixes associated with a specific error.
+ </p>
+ <object>
+ <field name="error">
+ <ref>AnalysisError</ref>
+ <p>
+ The error with which the fixes are associated.
+ </p>
+ </field>
+ <field name="fixes">
+ <list>
+ <ref>SourceChange</ref>
+ </list>
+ <p>
+ The fixes associated with the error.
+ </p>
+ </field>
+ </object>
+ </type>
+ <type name="AnalysisOptions" deprecated="true">
+ <p><b>Deprecated:</b> the only reference to this type has been
+ deprecated.</p>
+ <p>
+ A set of options controlling what kind of analysis is to be
+ performed. If the value of a field is omitted the value of the
+ option will not be changed.
+ </p>
+ <object>
+ <field name="enableAsync" optional="true" deprecated="true">
+ <ref>bool</ref>
+ <p><b>Deprecated:</b> this feature is always enabled.</p>
<p>
- This notification is not subscribed to by default. Clients can
- subscribe by including the value "LAUNCH_DATA" in the list of services
- passed in an <tt>execution.setSubscriptions</tt> request.
+ True if the client wants to enable support for the
+ proposed async feature.
</p>
- <params>
- <field name="file">
- <ref>FilePath</ref>
- <p>
- The file for which launch data is being provided. This will either
- be a Dart library or an HTML file.
- </p>
- </field>
- <field name="kind" optional="true">
- <ref>ExecutableKind</ref>
- <p>
- The kind of the executable file. This field is omitted if the file
- is not a Dart file.
- </p>
- </field>
- <field name="referencedFiles" optional="true">
- <list><ref>FilePath</ref></list>
- <p>
- A list of the Dart files that are referenced by the file. This
- field is omitted if the file is not an HTML file.
- </p>
- </field>
- </params>
- </notification>
- </domain>
- <domain name="diagnostic">
- <p>
- The diagnostic domain contains server diagnostics APIs.
- </p>
- <request method="getDiagnostics">
- <p>Return server diagnostics.</p>
- <result>
- <field name="contexts">
- <list><ref>ContextData</ref></list>
- <p>The list of analysis contexts.</p>
- </field>
- </result>
- </request>
- <request method="getServerPort">
- <p>
- Return the port of the diagnostic web server. If the server is not running
- this call will start the server. If unable to start the diagnostic web server,
- this call will return an error of <tt>DEBUG_PORT_COULD_NOT_BE_OPENED</tt>.
- </p>
- <result>
- <field name="port">
- <ref>int</ref>
- <p>The diagnostic server port.</p>
- </field>
- </result>
- </request>
- </domain>
- <types>
- <h2 class="domain"><a name="types">Types</a></h2>
- <p>
- This section contains descriptions of the data types referenced
- in the API’s of the various domains.
- </p>
- <type name="AddContentOverlay">
+ </field>
+ <field name="enableDeferredLoading" optional="true" deprecated="true">
+ <ref>bool</ref>
+ <p><b>Deprecated:</b> this feature is always enabled.</p>
<p>
- A directive to begin overlaying the contents of a file. The
- supplied content will be used for analysis in place of the
- file contents in the filesystem.
+ True if the client wants to enable support for the
+ proposed deferred loading feature.
</p>
+ </field>
+ <field name="enableEnums" optional="true" deprecated="true">
+ <ref>bool</ref>
+ <p><b>Deprecated:</b> this feature is always enabled.</p>
<p>
- If this directive is used on a file that already has a file
- content overlay, the old overlay is discarded and replaced
- with the new one.
+ True if the client wants to enable support for the
+ proposed enum feature.
</p>
- <object>
- <field name="type" value="add"><ref>String</ref></field>
- <field name="content">
- <ref>String</ref>
- <p>
- The new content of the file.
- </p>
- </field>
- </object>
- </type>
- <type name="AnalysisError">
+ </field>
+ <field name="enableNullAwareOperators" optional="true" deprecated="true">
+ <ref>bool</ref>
+ <p><b>Deprecated:</b> this feature is always enabled.</p>
<p>
- An indication of an error, warning, or hint that was produced
- by the analysis.
+ True if the client wants to enable support for the
+ proposed "null aware operators" feature.
</p>
- <object>
- <field name="severity">
- <ref>AnalysisErrorSeverity</ref>
- <p>
- The severity of the error.
- </p>
- </field>
- <field name="type">
- <ref>AnalysisErrorType</ref>
- <p>
- The type of the error.
- </p>
- </field>
- <field name="location">
- <ref>Location</ref>
- <p>
- The location associated with the error.
- </p>
- </field>
- <field name="message">
- <ref>String</ref>
- <p>
- The message to be displayed for this error. The message
- should indicate what is wrong with the code and why it is
- wrong.
- </p>
- </field>
- <field name="correction" optional="true">
- <ref>String</ref>
- <p>
- The correction message to be displayed for this error. The
- correction message should indicate how the user can fix
- the error. The field is omitted if there is no correction
- message associated with the error code.
- </p>
- </field>
- <field name="code">
- <ref>String</ref>
- <p>
- The name, as a string, of the error code associated with this error.
- </p>
- </field>
- <field name="hasFix" optional="true">
- <ref>bool</ref>
- <p>
- A hint to indicate to interested clients that this error has
- an associated fix (or fixes). The absence of this field implies
- there are not known to be fixes. Note that since the operation
- to calculate whether fixes apply needs to be performant it is
- possible that complicated tests will be skipped and a false
- negative returned. For this reason, this attribute should be
- treated as a "hint". Despite the possibility of false negatives,
- no false positives should be returned. If a client sees this
- flag set they can proceed with the confidence that there are in
- fact associated fixes.
- </p>
- </field>
- </object>
- </type>
- <type name="AnalysisErrorFixes">
+ </field>
+ <field name="enableSuperMixins" optional="true">
+ <ref>bool</ref>
<p>
- A list of fixes associated with a specific error.
+ True if the client wants to enable support for the
+ proposed "less restricted mixins" proposal (DEP 34).
</p>
- <object>
- <field name="error">
- <ref>AnalysisError</ref>
- <p>
- The error with which the fixes are associated.
- </p>
- </field>
- <field name="fixes">
- <list><ref>SourceChange</ref></list>
- <p>
- The fixes associated with the error.
- </p>
- </field>
- </object>
- </type>
- <type name="AnalysisErrorSeverity">
+ </field>
+ <field name="generateDart2jsHints" optional="true">
+ <ref>bool</ref>
<p>
- An enumeration of the possible severities of analysis
- errors.
+ True if hints that are specific to dart2js should be
+ generated. This option is ignored if generateHints is false.
</p>
- <enum>
- <value><code>INFO</code></value>
- <value><code>WARNING</code></value>
- <value><code>ERROR</code></value>
- </enum>
- </type>
- <type name="AnalysisErrorType">
- <p>
- An enumeration of the possible types of analysis errors.
- </p>
- <enum>
- <value><code>CHECKED_MODE_COMPILE_TIME_ERROR</code></value>
- <value><code>COMPILE_TIME_ERROR</code></value>
- <value><code>HINT</code></value>
- <value><code>LINT</code></value>
- <value><code>STATIC_TYPE_WARNING</code></value>
- <value><code>STATIC_WARNING</code></value>
- <value><code>SYNTACTIC_ERROR</code></value>
- <value><code>TODO</code></value>
- </enum>
- </type>
- <type name="AnalysisOptions" deprecated="true">
- <p><b>Deprecated:</b> the only reference to this type has been
- deprecated.</p>
- <p>
- A set of options controlling what kind of analysis is to be
- performed. If the value of a field is omitted the value of the
- option will not be changed.
- </p>
- <object>
- <field name="enableAsync" optional="true" deprecated="true">
- <ref>bool</ref>
- <p><b>Deprecated:</b> this feature is always enabled.</p>
- <p>
- True if the client wants to enable support for the
- proposed async feature.
- </p>
- </field>
- <field name="enableDeferredLoading" optional="true" deprecated="true">
- <ref>bool</ref>
- <p><b>Deprecated:</b> this feature is always enabled.</p>
- <p>
- True if the client wants to enable support for the
- proposed deferred loading feature.
- </p>
- </field>
- <field name="enableEnums" optional="true" deprecated="true">
- <ref>bool</ref>
- <p><b>Deprecated:</b> this feature is always enabled.</p>
- <p>
- True if the client wants to enable support for the
- proposed enum feature.
- </p>
- </field>
- <field name="enableNullAwareOperators" optional="true" deprecated="true">
- <ref>bool</ref>
- <p><b>Deprecated:</b> this feature is always enabled.</p>
- <p>
- True if the client wants to enable support for the
- proposed "null aware operators" feature.
- </p>
- </field>
- <field name="enableSuperMixins" optional="true">
- <ref>bool</ref>
- <p>
- True if the client wants to enable support for the
- proposed "less restricted mixins" proposal (DEP 34).
- </p>
- </field>
- <field name="generateDart2jsHints" optional="true">
- <ref>bool</ref>
- <p>
- True if hints that are specific to dart2js should be
- generated. This option is ignored if generateHints is false.
- </p>
- </field>
- <field name="generateHints" optional="true">
- <ref>bool</ref>
- <p>
- True if hints should be generated as part of generating
- errors and warnings.
- </p>
- </field>
- <field name="generateLints" optional="true">
- <ref>bool</ref>
- <p>
- True if lints should be generated as part of generating
- errors and warnings.
- </p>
- </field>
- </object>
- </type>
- <type name="AnalysisService">
+ </field>
+ <field name="generateHints" optional="true">
+ <ref>bool</ref>
<p>
- An enumeration of the services provided by the analysis domain that
- are related to a specific list of files.
+ True if hints should be generated as part of generating
+ errors and warnings.
</p>
- <enum>
- <value><code>FOLDING</code></value>
- <value><code>HIGHLIGHTS</code></value>
- <value><code>IMPLEMENTED</code></value>
- <value>
- <code>INVALIDATE</code>
- <p>
- This service is not currently implemented and will become a
- GeneralAnalysisService in a future release.
- </p>
- </value>
- <value><code>NAVIGATION</code></value>
- <value><code>OCCURRENCES</code></value>
- <value><code>OUTLINE</code></value>
- <value><code>OVERRIDES</code></value>
- </enum>
- </type>
- <type name="AnalysisStatus">
- <p>
- An indication of the current state of analysis.
- </p>
- <object>
- <field name="isAnalyzing">
- <ref>bool</ref>
- <p>True if analysis is currently being performed.</p>
- </field>
- <field name="analysisTarget" optional="true">
- <ref>String</ref>
- <p>
- The name of the current target of analysis. This field is
- omitted if analyzing is false.
- </p>
- </field>
- </object>
- </type>
- <type name="ChangeContentOverlay">
+ </field>
+ <field name="generateLints" optional="true">
+ <ref>bool</ref>
<p>
- A directive to modify an existing file content overlay. One or more
- ranges of text are deleted from the old file content overlay and
- replaced with new text.
+ True if lints should be generated as part of generating
+ errors and warnings.
</p>
+ </field>
+ </object>
+ </type>
+ <type name="AnalysisService">
+ <p>
+ An enumeration of the services provided by the analysis domain that
+ are related to a specific list of files.
+ </p>
+ <enum>
+ <value><code>FOLDING</code></value>
+ <value><code>HIGHLIGHTS</code></value>
+ <value><code>IMPLEMENTED</code></value>
+ <value>
+ <code>INVALIDATE</code>
+ <p>
+ This service is not currently implemented and will become a
+ GeneralAnalysisService in a future release.
+ </p>
+ </value>
+ <value><code>NAVIGATION</code></value>
+ <value><code>OCCURRENCES</code></value>
+ <value><code>OUTLINE</code></value>
+ <value><code>OVERRIDES</code></value>
+ </enum>
+ </type>
+ <type name="AnalysisStatus">
+ <p>
+ An indication of the current state of analysis.
+ </p>
+ <object>
+ <field name="isAnalyzing">
+ <ref>bool</ref>
+ <p>True if analysis is currently being performed.</p>
+ </field>
+ <field name="analysisTarget" optional="true">
+ <ref>String</ref>
<p>
- The edits are applied in the order in which they occur in the list.
- This means that the offset of each edit must be correct under the
- assumption that all previous edits have been applied.
+ The name of the current target of analysis. This field is
+ omitted if analyzing is false.
</p>
+ </field>
+ </object>
+ </type>
+ <type name="CompletionId">
+ <ref>String</ref>
+ <p>
+ An identifier used to associate completion results with a
+ completion request.
+ </p>
+ </type>
+ <type name="ContextData">
+ <p>
+ Information about an analysis context.
+ </p>
+ <object>
+ <field name="name">
+ <ref>String</ref>
<p>
- It is an error to use this overlay on a file that does not yet have
- a file content overlay or that has had its overlay removed via
- <a href="#type_RemoveContentOverlay">RemoveContentOverlay</a>.
+ The name of the context.
</p>
+ </field>
+ <field name="explicitFileCount">
+ <ref>int</ref>
<p>
- If any of the edits cannot be applied due to its offset or
- length being out of range, an INVALID_OVERLAY_CHANGE error
- will be reported.
+ Explicitly analyzed files.
</p>
- <object>
- <field name="type" value="change"><ref>String</ref></field>
- <field name="edits">
- <list><ref>SourceEdit</ref></list>
- <p>
- The edits to be applied to the file.
- </p>
- </field>
- </object>
- </type>
- <type name="CompletionId">
- <ref>String</ref>
+ </field>
+ <field name="implicitFileCount">
+ <ref>int</ref>
<p>
- An identifier used to associate completion results with a
- completion request.
+ Implicitly analyzed files.
</p>
- </type>
- <type name="CompletionSuggestion">
+ </field>
+ <field name="workItemQueueLength">
+ <ref>int</ref>
<p>
- A suggestion for how to complete partially entered text. Many
- of the fields are optional, depending on the kind of element
- being suggested.
+ The number of work items in the queue.
</p>
- <object>
- <field name="kind">
- <ref>CompletionSuggestionKind</ref>
- <p>
- The kind of element being suggested.
- </p>
- </field>
- <field name="relevance">
- <ref>int</ref>
- <p>
- The relevance of this completion suggestion
- where a higher number indicates a higher relevance.
- </p>
- </field>
- <field name="completion">
- <ref>String</ref>
- <p>
- The identifier to be inserted if the suggestion is
- selected. If the suggestion is for a method or function,
- the client might want to additionally insert a template
- for the parameters. The information required in order to
- do so is contained in other fields.
- </p>
- </field>
- <field name="selectionOffset">
- <ref>int</ref>
- <p>
- The offset, relative to the beginning of the completion,
- of where the selection should be placed after insertion.
- </p>
- </field>
- <field name="selectionLength">
- <ref>int</ref>
- <p>
- The number of characters that should be selected after
- insertion.
- </p>
- </field>
- <field name="isDeprecated">
- <ref>bool</ref>
- <p>
- True if the suggested element is deprecated.
- </p>
- </field>
- <field name="isPotential">
- <ref>bool</ref>
- <p>
- True if the element is not known to be valid for the
- target. This happens if the type of the target is dynamic.
- </p>
- </field>
- <field name="docSummary" optional="true">
- <ref>String</ref>
- <p>
- An abbreviated version of the Dartdoc associated with the
- element being suggested, This field is omitted if there is
- no Dartdoc associated with the element.
- </p>
- </field>
- <field name="docComplete" optional="true">
- <ref>String</ref>
- <p>
- The Dartdoc associated with the element being suggested,
- This field is omitted if there is no Dartdoc associated
- with the element.
- </p>
- </field>
- <field name="declaringType" optional="true">
- <ref>String</ref>
- <p>
- The class that declares the element being suggested. This
- field is omitted if the suggested element is not a member
- of a class.
- </p>
- </field>
- <field name="defaultArgumentListString" optional="true">
- <ref>String</ref>
- <p>
- A default String for use in generating argument list
- source contents on the client side.
- </p>
- </field>
- <field name="defaultArgumentListTextRanges" optional="true">
- <list><ref>int</ref></list>
- <p>
- Pairs of offsets and lengths describing 'defaultArgumentListString'
- text ranges suitable for use by clients to set up linked edits of
- default argument source contents. For example, given an argument
- list string 'x, y', the corresponding text range [0, 1, 3, 1],
- indicates two text ranges of length 1, starting at offsets 0 and 3.
- Clients can use these ranges to treat the 'x' and 'y' values
- specially for linked edits.
- </p>
- </field>
- <field name="element" optional="true">
- <ref>Element</ref>
- <p>
- Information about the element reference being suggested.
- </p>
- </field>
- <field name="returnType" optional="true">
- <ref>String</ref>
- <p>
- The return type of the getter, function or method
- or the type of the field being suggested.
- This field is omitted if the suggested element
- is not a getter, function or method.
- </p>
- </field>
- <field name="parameterNames" optional="true">
- <list><ref>String</ref></list>
- <p>
- The names of the parameters of the function or method
- being suggested. This field is omitted if the suggested
- element is not a setter, function or method.
- </p>
- </field>
- <field name="parameterTypes" optional="true">
- <list><ref>String</ref></list>
- <p>
- The types of the parameters of the function or method
- being suggested. This field is omitted if the
- parameterNames field is omitted.
- </p>
- </field>
- <field name="requiredParameterCount" optional="true">
- <ref>int</ref>
- <p>
- The number of required parameters for the function or
- method being suggested. This field is omitted if the
- parameterNames field is omitted.
- </p>
- </field>
- <field name="hasNamedParameters" optional="true">
- <ref>bool</ref>
- <p>
- True if the function or method being suggested has at
- least one named parameter. This field is omitted if the
- parameterNames field is omitted.
- </p>
- </field>
- <field name="parameterName" optional="true">
- <ref>String</ref>
- <p>
- The name of the optional parameter being suggested. This
- field is omitted if the suggestion is not the addition of
- an optional argument within an argument list.
- </p>
- </field>
- <field name="parameterType" optional="true">
- <ref>String</ref>
- <p>
- The type of the options parameter being suggested. This
- field is omitted if the parameterName field is omitted.
- </p>
- </field>
- <field name="importUri" optional="true">
- <ref>String</ref>
- <p>
- The import to be added if the suggestion is out of scope
- and needs an import to be added to be in scope.
- </p>
- </field>
- </object>
- </type>
- <type name="CompletionSuggestionKind">
+ </field>
+ <field name="cacheEntryExceptions">
+ <list>
+ <ref>String</ref>
+ </list>
<p>
- An enumeration of the kinds of elements that can be included
- in a completion suggestion.
+ Exceptions associated with cache entries.
</p>
- <enum>
- <value>
- <code>ARGUMENT_LIST</code>
- <p>
- A list of arguments for the method or function that is being invoked.
- For this suggestion kind, the completion field is a textual representation
- of the invocation and the parameterNames, parameterTypes, and requiredParameterCount
- attributes are defined.
- </p>
- </value>
- <value><code>IMPORT</code></value>
- <value>
- <code>IDENTIFIER</code>
- <p>
- The element identifier should be inserted at the completion location.
- For example "someMethod" in import 'myLib.dart' show someMethod; .
- For suggestions of this kind, the element attribute is defined
- and the completion field is the element's identifier.
- </p>
- </value>
- <value>
- <code>INVOCATION</code>
- <p>
- The element is being invoked at the completion location.
- For example, "someMethod" in x.someMethod(); .
- For suggestions of this kind, the element attribute is defined
- and the completion field is the element's identifier.
- </p>
- </value>
- <value>
- <code>KEYWORD</code>
- <p>
- A keyword is being suggested.
- For suggestions of this kind, the completion is the keyword.
- </p>
- </value>
- <value>
- <code>NAMED_ARGUMENT</code>
- <p>
- A named argument for the current callsite is being suggested.
- For suggestions of this kind, the completion is
- the named argument identifier including a trailing ':' and space.
- </p>
- </value>
- <value><code>OPTIONAL_ARGUMENT</code></value>
- <value><code>PARAMETER</code></value>
- </enum>
- </type>
- <type name="ContextData">
+ </field>
+ </object>
+ </type>
+ <type name="ExecutableFile">
+ <p>
+ A description of an executable file.
+ </p>
+ <object>
+ <field name="file">
+ <ref>FilePath</ref>
<p>
- Information about an analysis context.
+ The path of the executable file.
</p>
- <object>
- <field name="name">
- <ref>String</ref>
- <p>
- The name of the context.
- </p>
- </field>
- <field name="explicitFileCount">
- <ref>int</ref>
- <p>
- Explicitly analyzed files.
- </p>
- </field>
- <field name="implicitFileCount">
- <ref>int</ref>
- <p>
- Implicitly analyzed files.
- </p>
- </field>
- <field name="workItemQueueLength">
- <ref>int</ref>
- <p>
- The number of work items in the queue.
- </p>
- </field>
- <field name="cacheEntryExceptions">
- <list><ref>String</ref></list>
- <p>
- Exceptions associated with cache entries.
- </p>
- </field>
- </object>
- </type>
- <type name="Element">
+ </field>
+ <field name="kind">
+ <ref>ExecutableKind</ref>
<p>
- Information about an element (something that can be declared
- in code).
+ The kind of the executable file.
</p>
- <object>
- <field name="kind">
- <ref>ElementKind</ref>
- <p>
- The kind of the element.
- </p>
- </field>
- <field name="name">
- <ref>String</ref>
- <p>
- The name of the element. This is typically used as the
- label in the outline.
- </p>
- </field>
- <field name="location" optional="true">
- <ref>Location</ref>
- <p>
- The location of the name in the declaration of the
- element.
- </p>
- </field>
- <field name="flags">
- <ref>int</ref>
- <p>
- A bit-map containing the following flags:
- </p>
- <ul>
- <li>0x01 - set if the element is explicitly or implicitly abstract</li>
- <li>0x02 - set if the element was declared to be ‘const’</li>
- <li>0x04 - set if the element was declared to be ‘final’</li>
- <li>0x08 - set if the element is a static member of a class or is a top-level function or field</li>
- <li>0x10 - set if the element is private</li>
- <li>0x20 - set if the element is deprecated</li>
- </ul>
- </field>
- <field name="parameters" optional="true">
- <ref>String</ref>
- <p>
- The parameter list for the element. If the element is not
- a method or function this field will not be defined. If
- the element doesn't have parameters (e.g. getter), this field
- will not be defined. If the element has zero parameters, this
- field will have a value of "()".
- </p>
- </field>
- <field name="returnType" optional="true">
- <ref>String</ref>
- <p>
- The return type of the element. If the element is not a
- method or function this field will not be defined. If the
- element does not have a declared return type, this field
- will contain an empty string.
- </p>
- </field>
- <field name="typeParameters" optional="true">
- <ref>String</ref>
- <p>
- The type parameter list for the element. If the element doesn't
- have type parameters, this field will not be defined.
- </p>
- </field>
- </object>
- </type>
- <type name="ElementKind">
- <p>
- An enumeration of the kinds of elements.
- </p>
- <enum>
- <value><code>CLASS</code></value>
- <value><code>CLASS_TYPE_ALIAS</code></value>
- <value><code>COMPILATION_UNIT</code></value>
- <value><code>CONSTRUCTOR</code></value>
- <value><code>ENUM</code></value>
- <value><code>ENUM_CONSTANT</code></value>
- <value><code>FIELD</code></value>
- <value><code>FILE</code></value>
- <value><code>FUNCTION</code></value>
- <value><code>FUNCTION_TYPE_ALIAS</code></value>
- <value><code>GETTER</code></value>
- <value><code>LABEL</code></value>
- <value><code>LIBRARY</code></value>
- <value><code>LOCAL_VARIABLE</code></value>
- <value><code>METHOD</code></value>
- <value><code>PARAMETER</code></value>
- <value><code>PREFIX</code></value>
- <value><code>SETTER</code></value>
- <value><code>TOP_LEVEL_VARIABLE</code></value>
- <value><code>TYPE_PARAMETER</code></value>
- <value deprecated="true">
- <code>UNIT_TEST_GROUP</code>
- <p><b>Deprecated:</b> support for tests was removed.</p>
- </value>
- <value deprecated="true">
- <code>UNIT_TEST_TEST</code>
- <p><b>Deprecated:</b> support for tests was removed.</p>
- </value>
- <value><code>UNKNOWN</code></value>
- </enum>
- </type>
- <type name="ExecutableFile">
+ </field>
+ </object>
+ </type>
+ <type name="ExecutableKind">
+ <p>
+ An enumeration of the kinds of executable files.
+ </p>
+ <enum>
+ <value><code>CLIENT</code></value>
+ <value><code>EITHER</code></value>
+ <value><code>NOT_EXECUTABLE</code></value>
+ <value><code>SERVER</code></value>
+ </enum>
+ </type>
+ <type name="ExecutionContextId">
+ <ref>String</ref>
+ <p>
+ The identifier for a execution context.
+ </p>
+ </type>
+ <type name="ExecutionService">
+ <p>
+ An enumeration of the services provided by the execution
+ domain.
+ </p>
+ <enum>
+ <value><code>LAUNCH_DATA</code></value>
+ </enum>
+ </type>
+ <type name="FileKind">
+ <p>
+ An enumeration of the kinds of files.
+ </p>
+ <enum>
+ <value><code>LIBRARY</code></value>
+ <value><code>PART</code></value>
+ </enum>
+ </type>
+ <type name="GeneralAnalysisService">
+ <p>
+ An enumeration of the services provided by the analysis domain that are
+ general in nature (that is, are not specific to some list of files).
+ </p>
+ <enum>
+ <value><code>ANALYZED_FILES</code></value>
+ </enum>
+ </type>
+ <type name="HoverInformation">
+ <p>
+ The hover information associated with a specific location.
+ </p>
+ <object>
+ <field name="offset">
+ <ref>int</ref>
<p>
- A description of an executable file.
+ The offset of the range of characters that encompasses the
+ cursor position and has the same hover information as the
+ cursor position.
</p>
- <object>
- <field name="file">
- <ref>FilePath</ref>
- <p>
- The path of the executable file.
- </p>
- </field>
- <field name="kind">
- <ref>ExecutableKind</ref>
- <p>
- The kind of the executable file.
- </p>
- </field>
- </object>
- </type>
- <type name="ExecutableKind">
- <p>
- An enumeration of the kinds of executable files.
- </p>
- <enum>
- <value><code>CLIENT</code></value>
- <value><code>EITHER</code></value>
- <value><code>NOT_EXECUTABLE</code></value>
- <value><code>SERVER</code></value>
- </enum>
- </type>
- <type name="ExecutionContextId">
+ </field>
+ <field name="length">
+ <ref>int</ref>
+ <p>
+ The length of the range of characters that encompasses the
+ cursor position and has the same hover information as the
+ cursor position.
+ </p>
+ </field>
+ <field name="containingLibraryPath" optional="true">
<ref>String</ref>
<p>
- The identifier for a execution context.
+ The path to the defining compilation unit of the library
+ in which the referenced element is declared. This data is
+ omitted if there is no referenced element, or if the
+ element is declared inside an HTML file.
</p>
- </type>
- <type name="ExecutionService">
+ </field>
+ <field name="containingLibraryName" optional="true">
+ <ref>String</ref>
<p>
- An enumeration of the services provided by the execution
- domain.
+ The name of the library in which the referenced element is
+ declared. This data is omitted if there is no referenced
+ element, or if the element is declared inside an HTML
+ file.
</p>
- <enum>
- <value><code>LAUNCH_DATA</code></value>
- </enum>
- </type>
- <type name="FileKind">
+ </field>
+ <field name="containingClassDescription" optional="true">
+ <ref>String</ref>
<p>
- An enumeration of the kinds of files.
+ A human-readable description of the class declaring the element
+ being referenced. This data is omitted if there is no referenced
+ element, or if the element is not a class member.
</p>
- <enum>
- <value><code>LIBRARY</code></value>
- <value><code>PART</code></value>
- </enum>
- </type>
- <type name="FilePath">
+ </field>
+ <field name="dartdoc" optional="true">
<ref>String</ref>
<p>
- The absolute, normalized path of a file.
+ The dartdoc associated with the referenced element. Other
+ than the removal of the comment delimiters, including
+ leading asterisks in the case of a block comment, the
+ dartdoc is unprocessed markdown. This data is omitted if
+ there is no referenced element, or if the element has no
+ dartdoc.
</p>
+ </field>
+ <field name="elementDescription" optional="true">
+ <ref>String</ref>
<p>
- If the format of a file path in a request is not valid, e.g. the
- path is not absolute or is not normalized, then an error of type
- <tt>INVALID_FILE_PATH_FORMAT</tt> will be generated.
+ A human-readable description of the element being
+ referenced. This data is omitted if there is no referenced
+ element.
</p>
- </type>
- <type name="FoldingKind">
+ </field>
+ <field name="elementKind" optional="true">
+ <ref>String</ref>
<p>
- An enumeration of the kinds of folding regions.
+ A human-readable description of the kind of element being
+ referenced (such as "class" or "function type
+ alias"). This data is omitted if there is no referenced
+ element.
</p>
- <enum>
- <value><code>COMMENT</code></value>
- <value><code>CLASS_MEMBER</code></value>
- <value><code>DIRECTIVES</code></value>
- <value><code>DOCUMENTATION_COMMENT</code></value>
- <value><code>TOP_LEVEL_DECLARATION</code></value>
- </enum>
- </type>
- <type name="FoldingRegion">
+ </field>
+ <field name="isDeprecated" optional="true">
+ <ref>bool</ref>
<p>
- A description of a region that can be folded.
+ True if the referenced element is deprecated.
</p>
- <object>
- <field name="kind">
- <ref>FoldingKind</ref>
- <p>
- The kind of the region.
- </p>
- </field>
- <field name="offset">
- <ref>int</ref>
- <p>
- The offset of the region to be folded.
- </p>
- </field>
- <field name="length">
- <ref>int</ref>
- <p>
- The length of the region to be folded.
- </p>
- </field>
- </object>
- </type>
- <type name="GeneralAnalysisService">
+ </field>
+ <field name="parameter" optional="true">
+ <ref>String</ref>
<p>
- An enumeration of the services provided by the analysis domain that are
- general in nature (that is, are not specific to some list of files).
+ A human-readable description of the parameter
+ corresponding to the expression being hovered over. This
+ data is omitted if the location is not in an argument to a
+ function.
</p>
- <enum>
- <value><code>ANALYZED_FILES</code></value>
- </enum>
- </type>
- <type name="HighlightRegion">
+ </field>
+ <field name="propagatedType" optional="true">
+ <ref>String</ref>
<p>
- A description of a region that could have special highlighting
- associated with it.
+ The name of the propagated type of the expression. This
+ data is omitted if the location does not correspond to an
+ expression or if there is no propagated type information.
</p>
- <object>
- <field name="type">
- <ref>HighlightRegionType</ref>
- <p>
- The type of highlight associated with the region.
- </p>
- </field>
- <field name="offset">
- <ref>int</ref>
- <p>
- The offset of the region to be highlighted.
- </p>
- </field>
- <field name="length">
- <ref>int</ref>
- <p>
- The length of the region to be highlighted.
- </p>
- </field>
- </object>
- </type>
- <type name="HighlightRegionType">
- <p>
- An enumeration of the kinds of highlighting that can be
- applied to files.
- </p>
- <enum>
- <value><code>ANNOTATION</code></value>
- <value><code>BUILT_IN</code></value>
- <value><code>CLASS</code></value>
- <value><code>COMMENT_BLOCK</code></value>
- <value><code>COMMENT_DOCUMENTATION</code></value>
- <value><code>COMMENT_END_OF_LINE</code></value>
- <value><code>CONSTRUCTOR</code></value>
- <value><code>DIRECTIVE</code></value>
- <value>
- <code>DYNAMIC_TYPE</code>
- <p>Only for version 1 of highlight.</p>
- </value>
- <value>
- <code>DYNAMIC_LOCAL_VARIABLE_DECLARATION</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value>
- <code>DYNAMIC_LOCAL_VARIABLE_REFERENCE</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value>
- <code>DYNAMIC_PARAMETER_DECLARATION</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value>
- <code>DYNAMIC_PARAMETER_REFERENCE</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value><code>ENUM</code></value>
- <value><code>ENUM_CONSTANT</code></value>
- <value>
- <code>FIELD</code>
- <p>Only for version 1 of highlight.</p>
- </value>
- <value>
- <code>FIELD_STATIC</code>
- <p>Only for version 1 of highlight.</p>
- </value>
- <value>
- <code>FUNCTION</code>
- <p>Only for version 1 of highlight.</p>
- </value>
- <value>
- <code>FUNCTION_DECLARATION</code>
- <p>Only for version 1 of highlight.</p>
- </value>
- <value><code>FUNCTION_TYPE_ALIAS</code></value>
- <value>
- <code>GETTER_DECLARATION</code>
- <p>Only for version 1 of highlight.</p>
- </value>
- <value><code>IDENTIFIER_DEFAULT</code></value>
- <value><code>IMPORT_PREFIX</code></value>
- <value>
- <code>INSTANCE_FIELD_DECLARATION</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value>
- <code>INSTANCE_FIELD_REFERENCE</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value>
- <code>INSTANCE_GETTER_DECLARATION</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value>
- <code>INSTANCE_GETTER_REFERENCE</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value>
- <code>INSTANCE_METHOD_DECLARATION</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value>
- <code>INSTANCE_METHOD_REFERENCE</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value>
- <code>INSTANCE_SETTER_DECLARATION</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value>
- <code>INSTANCE_SETTER_REFERENCE</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value>
- <code>INVALID_STRING_ESCAPE</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value><code>KEYWORD</code></value>
- <value><code>LABEL</code></value>
- <value>
- <code>LIBRARY_NAME</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value><code>LITERAL_BOOLEAN</code></value>
- <value><code>LITERAL_DOUBLE</code></value>
- <value><code>LITERAL_INTEGER</code></value>
- <value><code>LITERAL_LIST</code></value>
- <value><code>LITERAL_MAP</code></value>
- <value><code>LITERAL_STRING</code></value>
- <value>
- <code>LOCAL_FUNCTION_DECLARATION</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value>
- <code>LOCAL_FUNCTION_REFERENCE</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value>
- <code>LOCAL_VARIABLE</code>
- <p>Only for version 1 of highlight.</p>
- </value>
- <value><code>LOCAL_VARIABLE_DECLARATION</code></value>
- <value>
- <code>LOCAL_VARIABLE_REFERENCE</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value>
- <code>METHOD</code>
- <p>Only for version 1 of highlight.</p>
- </value>
- <value>
- <code>METHOD_DECLARATION</code>
- <p>Only for version 1 of highlight.</p>
- </value>
- <value>
- <code>METHOD_DECLARATION_STATIC</code>
- <p>Only for version 1 of highlight.</p>
- </value>
- <value>
- <code>METHOD_STATIC</code>
- <p>Only for version 1 of highlight.</p>
- </value>
- <value>
- <code>PARAMETER</code>
- <p>Only for version 1 of highlight.</p>
- </value>
- <value>
- <code>SETTER_DECLARATION</code>
- <p>Only for version 1 of highlight.</p>
- </value>
- <value>
- <code>TOP_LEVEL_VARIABLE</code>
- <p>Only for version 1 of highlight.</p>
- </value>
- <value>
- <code>PARAMETER_DECLARATION</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value>
- <code>PARAMETER_REFERENCE</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value>
- <code>STATIC_FIELD_DECLARATION</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value>
- <code>STATIC_GETTER_DECLARATION</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value>
- <code>STATIC_GETTER_REFERENCE</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value>
- <code>STATIC_METHOD_DECLARATION</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value>
- <code>STATIC_METHOD_REFERENCE</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value>
- <code>STATIC_SETTER_DECLARATION</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value>
- <code>STATIC_SETTER_REFERENCE</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value>
- <code>TOP_LEVEL_FUNCTION_DECLARATION</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value>
- <code>TOP_LEVEL_FUNCTION_REFERENCE</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value>
- <code>TOP_LEVEL_GETTER_DECLARATION</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value>
- <code>TOP_LEVEL_GETTER_REFERENCE</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value>
- <code>TOP_LEVEL_SETTER_DECLARATION</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value>
- <code>TOP_LEVEL_SETTER_REFERENCE</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value>
- <code>TOP_LEVEL_VARIABLE_DECLARATION</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value><code>TYPE_NAME_DYNAMIC</code></value>
- <value><code>TYPE_PARAMETER</code></value>
- <value>
- <code>UNRESOLVED_INSTANCE_MEMBER_REFERENCE</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- <value>
- <code>VALID_STRING_ESCAPE</code>
- <p>Only for version 2 of highlight.</p>
- </value>
- </enum>
- </type>
- <type name="HoverInformation">
+ </field>
+ <field name="staticType" optional="true">
+ <ref>String</ref>
<p>
- The hover information associated with a specific location.
+ The name of the static type of the expression. This data
+ is omitted if the location does not correspond to an
+ expression.
</p>
- <object>
- <field name="offset">
- <ref>int</ref>
- <p>
- The offset of the range of characters that encompasses the
- cursor position and has the same hover information as the
- cursor position.
- </p>
- </field>
- <field name="length">
- <ref>int</ref>
- <p>
- The length of the range of characters that encompasses the
- cursor position and has the same hover information as the
- cursor position.
- </p>
- </field>
- <field name="containingLibraryPath" optional="true">
- <ref>String</ref>
- <p>
- The path to the defining compilation unit of the library
- in which the referenced element is declared. This data is
- omitted if there is no referenced element, or if the
- element is declared inside an HTML file.
- </p>
- </field>
- <field name="containingLibraryName" optional="true">
- <ref>String</ref>
- <p>
- The name of the library in which the referenced element is
- declared. This data is omitted if there is no referenced
- element, or if the element is declared inside an HTML
- file.
- </p>
- </field>
- <field name="containingClassDescription" optional="true">
- <ref>String</ref>
- <p>
- A human-readable description of the class declaring the element
- being referenced. This data is omitted if there is no referenced
- element, or if the element is not a class member.
- </p>
- </field>
- <field name="dartdoc" optional="true">
- <ref>String</ref>
- <p>
- The dartdoc associated with the referenced element. Other
- than the removal of the comment delimiters, including
- leading asterisks in the case of a block comment, the
- dartdoc is unprocessed markdown. This data is omitted if
- there is no referenced element, or if the element has no
- dartdoc.
- </p>
- </field>
- <field name="elementDescription" optional="true">
- <ref>String</ref>
- <p>
- A human-readable description of the element being
- referenced. This data is omitted if there is no referenced
- element.
- </p>
- </field>
- <field name="elementKind" optional="true">
- <ref>String</ref>
- <p>
- A human-readable description of the kind of element being
- referenced (such as "class" or "function type
- alias"). This data is omitted if there is no referenced
- element.
- </p>
- </field>
- <field name="isDeprecated" optional="true">
- <ref>bool</ref>
- <p>
- True if the referenced element is deprecated.
- </p>
- </field>
- <field name="parameter" optional="true">
- <ref>String</ref>
- <p>
- A human-readable description of the parameter
- corresponding to the expression being hovered over. This
- data is omitted if the location is not in an argument to a
- function.
- </p>
- </field>
- <field name="propagatedType" optional="true">
- <ref>String</ref>
- <p>
- The name of the propagated type of the expression. This
- data is omitted if the location does not correspond to an
- expression or if there is no propagated type information.
- </p>
- </field>
- <field name="staticType" optional="true">
- <ref>String</ref>
- <p>
- The name of the static type of the expression. This data
- is omitted if the location does not correspond to an
- expression.
- </p>
- </field>
- </object>
- </type>
- <type name="ImplementedClass">
+ </field>
+ </object>
+ </type>
+ <type name="ImplementedClass">
+ <p>
+ A description of a class that is implemented or extended.
+ </p>
+ <object>
+ <field name="offset">
+ <ref>int</ref>
<p>
- A description of a class that is implemented or extended.
+ The offset of the name of the implemented class.
</p>
- <object>
- <field name="offset">
- <ref>int</ref>
- <p>
- The offset of the name of the implemented class.
- </p>
- </field>
- <field name="length">
- <ref>int</ref>
- <p>
- The length of the name of the implemented class.
- </p>
- </field>
- </object>
- </type>
- <type name="ImplementedMember">
+ </field>
+ <field name="length">
+ <ref>int</ref>
<p>
- A description of a class member that is implemented or overridden.
+ The length of the name of the implemented class.
</p>
- <object>
- <field name="offset">
- <ref>int</ref>
- <p>
- The offset of the name of the implemented member.
- </p>
- </field>
- <field name="length">
- <ref>int</ref>
- <p>
- The length of the name of the implemented member.
- </p>
- </field>
- </object>
- </type>
- <type name="LinkedEditGroup">
- <p>
- A collection of positions that should be linked (edited
- simultaneously) for the purposes of updating code after a
- source change. For example, if a set of edits introduced a
- new variable name, the group would contain all of the
- positions of the variable name so that if the client wanted
- to let the user edit the variable name after the operation,
- all occurrences of the name could be edited simultaneously.
- </p>
- <object>
- <field name="positions">
- <list><ref>Position</ref></list>
- <p>
- The positions of the regions that should be edited
- simultaneously.
- </p>
- </field>
- <field name="length">
- <ref>int</ref>
- <p>
- The length of the regions that should be edited
- simultaneously.
- </p>
- </field>
- <field name="suggestions">
- <list><ref>LinkedEditSuggestion</ref></list>
- <p>
- Pre-computed suggestions for what every region might
- want to be changed to.
- </p>
- </field>
- </object>
- </type>
- <type name="LinkedEditSuggestion">
+ </field>
+ </object>
+ </type>
+ <type name="ImplementedMember">
+ <p>
+ A description of a class member that is implemented or overridden.
+ </p>
+ <object>
+ <field name="offset">
+ <ref>int</ref>
<p>
- A suggestion of a value that could be used to replace all of
- the linked edit regions in a LinkedEditGroup.
+ The offset of the name of the implemented member.
</p>
- <object>
- <field name="value">
- <ref>String</ref>
- <p>
- The value that could be used to replace all of the linked
- edit regions.
- </p>
- </field>
- <field name="kind">
- <ref>LinkedEditSuggestionKind</ref>
- <p>
- The kind of value being proposed.
- </p>
- </field>
- </object>
- </type>
- <type name="LinkedEditSuggestionKind">
- <p>
- An enumeration of the kind of values that can be suggested
- for a linked edit.
- </p>
- <enum>
- <value><code>METHOD</code></value>
- <value><code>PARAMETER</code></value>
- <value><code>TYPE</code></value>
- <value><code>VARIABLE</code></value>
- </enum>
- </type>
- <type name="Location">
- <p>
- A location (character range) within a file.
- </p>
- <object>
- <field name="file">
- <ref>FilePath</ref>
- <p>
- The file containing the range.
- </p>
- </field>
- <field name="offset">
- <ref>int</ref>
- <p>
- The offset of the range.
- </p>
- </field>
- <field name="length">
- <ref>int</ref>
- <p>
- The length of the range.
- </p>
- </field>
- <field name="startLine">
- <ref>int</ref>
- <p>
- The one-based index of the line containing the first
- character of the range.
- </p>
- </field>
- <field name="startColumn">
- <ref>int</ref>
- <p>
- The one-based index of the column containing the first
- character of the range.
- </p>
- </field>
- </object>
- </type>
- <type name="NavigationRegion">
+ </field>
+ <field name="length">
+ <ref>int</ref>
<p>
- A description of a region from which the user can navigate to
- the declaration of an element.
+ The length of the name of the implemented member.
</p>
- <object>
- <field name="offset">
- <ref>int</ref>
- <p>
- The offset of the region from which the user can navigate.
- </p>
- </field>
- <field name="length">
- <ref>int</ref>
- <p>
- The length of the region from which the user can navigate.
- </p>
- </field>
- <field name="targets">
- <list><ref>int</ref></list>
- <p>
- The indexes of the targets (in the enclosing navigation response)
- to which the given region is bound. By opening the target, clients
- can implement one form of navigation. This list cannot be empty.
- </p>
- </field>
- </object>
- </type>
- <type name="NavigationTarget">
+ </field>
+ </object>
+ </type>
+ <type name="Override">
+ <p>
+ A description of a member that overrides an inherited member.
+ </p>
+ <object>
+ <field name="offset">
+ <ref>int</ref>
+ <p>
+ The offset of the name of the overriding member.
+ </p>
+ </field>
+ <field name="length">
+ <ref>int</ref>
+ <p>
+ The length of the name of the overriding member.
+ </p>
+ </field>
+ <field name="superclassMember" optional="true">
+ <ref>OverriddenMember</ref>
+ <p>
+ The member inherited from a superclass that is overridden
+ by the overriding member. The field is omitted if there is
+ no superclass member, in which case there must be at least
+ one interface member.
+ </p>
+ </field>
+ <field name="interfaceMembers" optional="true">
+ <list>
+ <ref>OverriddenMember</ref>
+ </list>
+ <p>
+ The members inherited from interfaces that are overridden
+ by the overriding member. The field is omitted if there
+ are no interface members, in which case there must be a
+ superclass member.
+ </p>
+ </field>
+ </object>
+ </type>
+ <type name="OverriddenMember">
+ <p>
+ A description of a member that is being overridden.
+ </p>
+ <object>
+ <field name="element">
+ <ref>Element</ref>
<p>
- A description of a target to which the user can navigate.
+ The element that is being overridden.
</p>
- <object>
- <field name="kind">
- <ref>ElementKind</ref>
- <p>
- The kind of the element.
- </p>
- </field>
- <field name="fileIndex">
- <ref>int</ref>
- <p>
- The index of the file (in the enclosing navigation response) to
- navigate to.
- </p>
- </field>
- <field name="offset">
- <ref>int</ref>
- <p>
- The offset of the region to which the user can navigate.
- </p>
- </field>
- <field name="length">
- <ref>int</ref>
- <p>
- The length of the region to which the user can navigate.
- </p>
- </field>
- <field name="startLine">
- <ref>int</ref>
- <p>
- The one-based index of the line containing the first
- character of the region.
- </p>
- </field>
- <field name="startColumn">
- <ref>int</ref>
- <p>
- The one-based index of the column containing the first
- character of the region.
- </p>
- </field>
- </object>
- </type>
- <type name="Occurrences">
+ </field>
+ <field name="className">
+ <ref>String</ref>
<p>
- A description of the references to a single element within a
- single file.
+ The name of the class in which the member is defined.
</p>
- <object>
- <field name="element">
- <ref>Element</ref>
- <p>
- The element that was referenced.
- </p>
- </field>
- <field name="offsets">
- <list><ref>int</ref></list>
- <p>
- The offsets of the name of the referenced element within
- the file.
- </p>
- </field>
- <field name="length">
- <ref>int</ref>
- <p>
- The length of the name of the referenced element.
- </p>
- </field>
- </object>
- </type>
- <type name="Outline">
+ </field>
+ </object>
+ </type>
+ <type name="PubStatus">
+ <p>
+ An indication of the current state of pub execution.
+ </p>
+ <object>
+ <field name="isListingPackageDirs">
+ <ref>bool</ref>
<p>
- An node in the outline structure of a file.
+ True if the server is currently running pub to produce a list of
+ package directories.
</p>
- <object>
- <field name="element">
- <ref>Element</ref>
- <p>
- A description of the element represented by this node.
- </p>
- </field>
- <field name="offset">
- <ref>int</ref>
- <p>
- The offset of the first character of the element. This is
- different than the offset in the Element, which if the
- offset of the name of the element. It can be used, for
- example, to map locations in the file back to an outline.
- </p>
- </field>
- <field name="length">
- <ref>int</ref>
- <p>
- The length of the element.
- </p>
- </field>
- <field name="children" optional="true">
- <list><ref>Outline</ref></list>
- <p>
- The children of the node. The field will be omitted if the
- node has no children.
- </p>
- </field>
- </object>
- </type>
- <type name="Override">
+ </field>
+ </object>
+ </type>
+ <type name="RefactoringFeedback">
+ <p>
+ An abstract superclass of all refactoring feedbacks.
+ </p>
+ <object>
+ </object>
+ </type>
+ <type name="RefactoringOptions">
+ <p>
+ An abstract superclass of all refactoring options.
+ </p>
+ <object>
+ </object>
+ </type>
+ <type name="RequestError">
+ <p>
+ An indication of a problem with the execution of the server,
+ typically in response to a request.
+ </p>
+ <object>
+ <field name="code">
+ <ref>RequestErrorCode</ref>
<p>
- A description of a member that overrides an inherited member.
+ A code that uniquely identifies the error that occurred.
</p>
- <object>
- <field name="offset">
- <ref>int</ref>
- <p>
- The offset of the name of the overriding member.
- </p>
- </field>
- <field name="length">
- <ref>int</ref>
- <p>
- The length of the name of the overriding member.
- </p>
- </field>
- <field name="superclassMember" optional="true">
- <ref>OverriddenMember</ref>
- <p>
- The member inherited from a superclass that is overridden
- by the overriding member. The field is omitted if there is
- no superclass member, in which case there must be at least
- one interface member.
- </p>
- </field>
- <field name="interfaceMembers" optional="true">
- <list><ref>OverriddenMember</ref></list>
- <p>
- The members inherited from interfaces that are overridden
- by the overriding member. The field is omitted if there
- are no interface members, in which case there must be a
- superclass member.
- </p>
- </field>
- </object>
- </type>
- <type name="OverriddenMember">
+ </field>
+ <field name="message">
+ <ref>String</ref>
<p>
- A description of a member that is being overridden.
+ A short description of the error.
</p>
- <object>
- <field name="element">
- <ref>Element</ref>
- <p>
- The element that is being overridden.
- </p>
- </field>
- <field name="className">
- <ref>String</ref>
- <p>
- The name of the class in which the member is defined.
- </p>
- </field>
- </object>
- </type>
- <type name="Position">
+ </field>
+ <field name="stackTrace" optional="true">
+ <ref>String</ref>
<p>
- A position within a file.
+ The stack trace associated with processing the request,
+ used for debugging the server.
</p>
- <object>
- <field name="file">
- <ref>FilePath</ref>
- <p>
- The file containing the position.
- </p>
- </field>
- <field name="offset">
- <ref>int</ref>
- <p>
- The offset of the position.
- </p>
- </field>
- </object>
- </type>
- <type name="PubStatus">
+ </field>
+ </object>
+ </type>
+ <type name="RequestErrorCode">
+ <p>
+ An enumeration of the types of errors that can occur in the
+ execution of the server.
+ </p>
+ <enum>
+ <value>
+ <code>CONTENT_MODIFIED</code>
<p>
- An indication of the current state of pub execution.
+ An "analysis.getErrors" or "analysis.getNavigation" request could
+ not be satisfied because the content of the file changed before
+ the requested results could be computed.
</p>
- <object>
- <field name="isListingPackageDirs">
- <ref>bool</ref>
- <p>
- True if the server is currently running pub to produce a list of
- package directories.
- </p>
- </field>
- </object>
- </type>
- <type name="RefactoringKind">
+ </value>
+ <value>
+ <code>DEBUG_PORT_COULD_NOT_BE_OPENED</code>
<p>
- An enumeration of the kinds of refactorings that can be
- created.
+ The server was unable to open a port for the diagnostic server.
</p>
- <enum>
- <value><code>CONVERT_GETTER_TO_METHOD</code></value>
- <value><code>CONVERT_METHOD_TO_GETTER</code></value>
- <value><code>EXTRACT_LOCAL_VARIABLE</code></value>
- <value><code>EXTRACT_METHOD</code></value>
- <value><code>INLINE_LOCAL_VARIABLE</code></value>
- <value><code>INLINE_METHOD</code></value>
- <value><code>MOVE_FILE</code></value>
- <value><code>RENAME</code></value>
- <value><code>SORT_MEMBERS</code></value>
- </enum>
- </type>
- <type name="RefactoringMethodParameter">
- <p>
- A description of a parameter in a method refactoring.
- </p>
- <object>
- <field name="id" optional="true">
- <ref>String</ref>
- <p>
- The unique identifier of the parameter.
- Clients may omit this field for the parameters they want to add.
- </p>
- </field>
- <field name="kind">
- <ref>RefactoringMethodParameterKind</ref>
- <p>
- The kind of the parameter.
- </p>
- </field>
- <field name="type">
- <ref>String</ref>
- <p>
- The type that should be given to the parameter, or the return type
- of the parameter's function type.
- </p>
- </field>
- <field name="name">
- <ref>String</ref>
- <p>
- The name that should be given to the parameter.
- </p>
- </field>
- <field name="parameters" optional="true">
- <ref>String</ref>
- <p>
- The parameter list of the parameter's function type.
- If the parameter is not of a function type, this field will
- not be defined. If the function type has zero parameters, this
- field will have a value of "()".
- </p>
- </field>
- </object>
- </type>
- <type name="RefactoringFeedback">
+ </value>
+ <value>
+ <code>FILE_NOT_ANALYZED</code>
<p>
- An abstract superclass of all refactoring feedbacks.
+ A request specified a FilePath which does not match a file in
+ an analysis root, or the requested operation is not available
+ for the file.
</p>
- <object>
- </object>
- </type>
- <type name="RefactoringOptions">
+ </value>
+ <value>
+ <code>FORMAT_INVALID_FILE</code>
<p>
- An abstract superclass of all refactoring options.
+ An "edit.format" request specified a FilePath
+ which does not match a Dart file in an analysis root.
</p>
- <object>
- </object>
- </type>
- <type name="RefactoringMethodParameterKind">
+ </value>
+ <value>
+ <code>FORMAT_WITH_ERRORS</code>
<p>
- An enumeration of the kinds of parameters.
+ An "edit.format" request specified a file that contains syntax
+ errors.
</p>
- <enum>
- <value><code>REQUIRED</code></value>
- <value><code>POSITIONAL</code></value>
- <value><code>NAMED</code></value>
- </enum>
- </type>
- <type name="RefactoringProblem">
+ </value>
+ <value>
+ <code>GET_ERRORS_INVALID_FILE</code>
<p>
- A description of a problem related to a refactoring.
+ An "analysis.getErrors" request specified a FilePath
+ which does not match a file currently subject to
+ analysis.
</p>
- <object>
- <field name="severity">
- <ref>RefactoringProblemSeverity</ref>
- <p>
- The severity of the problem being represented.
- </p>
- </field>
- <field name="message">
- <ref>String</ref>
- <p>
- A human-readable description of the problem being
- represented.
- </p>
- </field>
- <field name="location" optional="true">
- <ref>Location</ref>
- <p>
- The location of the problem being represented.
- This field is omitted unless there is a specific location
- associated with the problem (such as a location where an element
- being renamed will be shadowed).
- </p>
- </field>
- </object>
- </type>
- <type name="RefactoringProblemSeverity">
+ </value>
+ <value>
+ <code>GET_NAVIGATION_INVALID_FILE</code>
<p>
- An enumeration of the severities of problems that can be
- returned by the refactoring requests.
+ An "analysis.getNavigation" request specified a FilePath
+ which does not match a file currently subject to
+ analysis.
</p>
- <enum>
- <value>
- <code>INFO</code>
- <p>A minor code problem. No example, because it is not used yet.
- </p>
- </value>
- <value>
- <code>WARNING</code>
- <p>A minor code problem. For example names of local variables
- should be camel case and start with a lower case letter. Staring
- the name of a variable with an upper case is OK from the language
- point of view, but it is nice to warn the user.
- </p>
- </value>
- <value>
- <code>ERROR</code>
- <p>The refactoring technically can be performed, but there is a
- logical problem. For example the name of a local variable being
- extracted conflicts with another name in the scope, or
- duplicate parameter names in the method being extracted, or
- a conflict between a parameter name and a local variable, etc.
- In some cases the location of the problem is also provided, so
- the IDE can show user the location and the problem, and let the
- user decide whether she wants to perform the refactoring. For
- example the name conflict might be expected, and the user wants
- to fix it afterwards.
- </p>
- </value>
- <value>
- <code>FATAL</code>
- <p>A fatal error, which prevents performing the refactoring.
- For example the name of a local variable being extracted is not a
- valid identifier, or selection is not a valid expression.
- </p>
- </value>
- </enum>
- </type>
- <type name="RemoveContentOverlay">
+ </value>
+ <value>
+ <code>GET_REACHABLE_SOURCES_INVALID_FILE</code>
<p>
- A directive to remove an existing file content overlay.
- After processing this directive, the file contents will once
- again be read from the file system.
+ An "analysis.getReachableSources" request specified a FilePath
+ which does not match a file currently subject to
+ analysis.
</p>
+ </value>
+ <value>
+ <code>INVALID_ANALYSIS_ROOT</code>
<p>
- If this directive is used on a file that doesn't currently
- have a content overlay, it has no effect.
+ A path passed as an argument to a request (such as
+ analysis.reanalyze) is required to be an analysis root, but isn't.
</p>
- <object>
- <field name="type" value="remove"><ref>String</ref></field>
- </object>
- </type>
- <type name="RequestError">
+ </value>
+ <value>
+ <code>INVALID_EXECUTION_CONTEXT</code>
<p>
- An indication of a problem with the execution of the server,
- typically in response to a request.
+ The context root used to create an execution context does not
+ exist.
</p>
- <object>
- <field name="code">
- <ref>RequestErrorCode</ref>
- <p>
- A code that uniquely identifies the error that occurred.
- </p>
- </field>
- <field name="message">
- <ref>String</ref>
- <p>
- A short description of the error.
- </p>
- </field>
- <field name="stackTrace" optional="true">
- <ref>String</ref>
- <p>
- The stack trace associated with processing the request,
- used for debugging the server.
- </p>
- </field>
- </object>
- </type>
- <type name="RequestErrorCode">
+ </value>
+ <value>
+ <code>INVALID_FILE_PATH_FORMAT</code>
<p>
- An enumeration of the types of errors that can occur in the
- execution of the server.
+ The format of the given file path is invalid, e.g. is not
+ absolute and normalized.
</p>
- <enum>
- <value>
- <code>CONTENT_MODIFIED</code>
- <p>
- An "analysis.getErrors" or "analysis.getNavigation" request could
- not be satisfied because the content of the file changed before
- the requested results could be computed.
- </p>
- </value>
- <value>
- <code>DEBUG_PORT_COULD_NOT_BE_OPENED</code>
- <p>
- The server was unable to open a port for the diagnostic server.
- </p>
- </value>
- <value>
- <code>FILE_NOT_ANALYZED</code>
- <p>
- A request specified a FilePath which does not match a file in
- an analysis root, or the requested operation is not available
- for the file.
- </p>
- </value>
- <value>
- <code>FORMAT_INVALID_FILE</code>
- <p>
- An "edit.format" request specified a FilePath
- which does not match a Dart file in an analysis root.
- </p>
- </value>
- <value>
- <code>FORMAT_WITH_ERRORS</code>
- <p>
- An "edit.format" request specified a file that contains syntax
- errors.
- </p>
- </value>
- <value>
- <code>GET_ERRORS_INVALID_FILE</code>
- <p>
- An "analysis.getErrors" request specified a FilePath
- which does not match a file currently subject to
- analysis.
- </p>
- </value>
- <value>
- <code>GET_NAVIGATION_INVALID_FILE</code>
- <p>
- An "analysis.getNavigation" request specified a FilePath
- which does not match a file currently subject to
- analysis.
- </p>
- </value>
- <value>
- <code>GET_REACHABLE_SOURCES_INVALID_FILE</code>
- <p>
- An "analysis.getReachableSources" request specified a FilePath
- which does not match a file currently subject to
- analysis.
- </p>
- </value>
- <value>
- <code>INVALID_ANALYSIS_ROOT</code>
- <p>
- A path passed as an argument to a request (such as
- analysis.reanalyze) is required to be an analysis root, but isn't.
- </p>
- </value>
- <value>
- <code>INVALID_EXECUTION_CONTEXT</code>
- <p>
- The context root used to create an execution context does not
- exist.
- </p>
- </value>
- <value>
- <code>INVALID_FILE_PATH_FORMAT</code>
- <p>
- The format of the given file path is invalid, e.g. is not
- absolute and normalized.
- </p>
- </value>
- <value>
- <code>INVALID_OVERLAY_CHANGE</code>
- <p>
- An "analysis.updateContent" request contained a
- ChangeContentOverlay object which can't be applied, due
- to an edit having an offset or length that is out of
- range.
- </p>
- </value>
- <value>
- <code>INVALID_PARAMETER</code>
- <p>
- One of the method parameters was invalid.
- </p>
- </value>
- <value>
- <code>INVALID_REQUEST</code>
- <p>
- A malformed request was received.
- </p>
- </value>
- <value>
- <code>ORGANIZE_DIRECTIVES_ERROR</code>
- <p>
- An "edit.organizeDirectives" request specified a Dart file that
- cannot be analyzed. The reason is described in the message.
- </p>
- </value>
- <value>
- <code>REFACTORING_REQUEST_CANCELLED</code>
- <p>
- Another refactoring request was received during processing of
- this one.
- </p>
- </value>
- <value>
- <code>SERVER_ALREADY_STARTED</code>
- <p>
- The analysis server has already been started (and hence
- won't accept new connections).
- </p>
- <p>
- This error is included for future expansion; at present
- the analysis server can only speak to one client at a
- time so this error will never occur.
- </p>
- </value>
- <value>
- <code>SERVER_ERROR</code>
- <p>
- An internal error occurred in the analysis server.
- Also see the server.error notification.
- </p>
- </value>
- <value>
- <code>SORT_MEMBERS_INVALID_FILE</code>
- <p>
- An "edit.sortMembers" request specified a FilePath
- which does not match a Dart file in an analysis root.
- </p>
- </value>
- <value>
- <code>SORT_MEMBERS_PARSE_ERRORS</code>
- <p>
- An "edit.sortMembers" request specified a Dart file that has
- scan or parse errors.
- </p>
- </value>
- <value>
- <code>UNANALYZED_PRIORITY_FILES</code>
- <p>
- An "analysis.setPriorityFiles" request includes one or
- more files that are not being analyzed.
- </p>
- <p>
- This is a legacy error; it will be removed before the
- API reaches version 1.0.
- </p>
- <!-- TODO(paulberry): remove this error and the code that
- generates it. -->
- </value>
- <value>
- <code>UNKNOWN_REQUEST</code>
- <p>
- A request was received which the analysis server does
- not recognize, or cannot handle in its current
- configuration.
- </p>
- </value>
- <value>
- <code>UNKNOWN_SOURCE</code>
- <p>
- The analysis server was requested to perform an action
- on a source that does not exist.
- </p>
- </value>
- <value>
- <code>UNSUPPORTED_FEATURE</code>
- <p>
- The analysis server was requested to perform an action
- which is not supported.
- </p>
- <p>
- This is a legacy error; it will be removed before the
- API reaches version 1.0.
- </p>
- <!-- TODO(paulberry): remove this error and the code that
+ </value>
+ <value>
+ <code>INVALID_OVERLAY_CHANGE</code>
+ <p>
+ An "analysis.updateContent" request contained a
+ ChangeContentOverlay object which can't be applied, due
+ to an edit having an offset or length that is out of
+ range.
+ </p>
+ </value>
+ <value>
+ <code>INVALID_PARAMETER</code>
+ <p>
+ One of the method parameters was invalid.
+ </p>
+ </value>
+ <value>
+ <code>INVALID_REQUEST</code>
+ <p>
+ A malformed request was received.
+ </p>
+ </value>
+ <value>
+ <code>ORGANIZE_DIRECTIVES_ERROR</code>
+ <p>
+ An "edit.organizeDirectives" request specified a Dart file that
+ cannot be analyzed. The reason is described in the message.
+ </p>
+ </value>
+ <value>
+ <code>REFACTORING_REQUEST_CANCELLED</code>
+ <p>
+ Another refactoring request was received during processing of
+ this one.
+ </p>
+ </value>
+ <value>
+ <code>SERVER_ALREADY_STARTED</code>
+ <p>
+ The analysis server has already been started (and hence
+ won't accept new connections).
+ </p>
+ <p>
+ This error is included for future expansion; at present
+ the analysis server can only speak to one client at a
+ time so this error will never occur.
+ </p>
+ </value>
+ <value>
+ <code>SERVER_ERROR</code>
+ <p>
+ An internal error occurred in the analysis server.
+ Also see the server.error notification.
+ </p>
+ </value>
+ <value>
+ <code>SORT_MEMBERS_INVALID_FILE</code>
+ <p>
+ An "edit.sortMembers" request specified a FilePath
+ which does not match a Dart file in an analysis root.
+ </p>
+ </value>
+ <value>
+ <code>SORT_MEMBERS_PARSE_ERRORS</code>
+ <p>
+ An "edit.sortMembers" request specified a Dart file that has
+ scan or parse errors.
+ </p>
+ </value>
+ <value>
+ <code>UNANALYZED_PRIORITY_FILES</code>
+ <p>
+ An "analysis.setPriorityFiles" request includes one or
+ more files that are not being analyzed.
+ </p>
+ <p>
+ This is a legacy error; it will be removed before the
+ API reaches version 1.0.
+ </p>
+ <!-- TODO(paulberry): remove this error and the code that
generates it. -->
- </value>
- </enum>
- </type>
- <type name="SearchId">
- <ref>String</ref>
+ </value>
+ <value>
+ <code>UNKNOWN_REQUEST</code>
<p>
- An identifier used to associate search results with a search
- request.
+ A request was received which the analysis server does
+ not recognize, or cannot handle in its current
+ configuration.
</p>
- </type>
- <type name="SearchResult">
+ </value>
+ <value>
+ <code>UNKNOWN_SOURCE</code>
<p>
- A single result from a search request.
+ The analysis server was requested to perform an action
+ on a source that does not exist.
</p>
- <object>
- <field name="location">
- <ref>Location</ref>
- <p>
- The location of the code that matched the search criteria.
- </p>
- </field>
- <field name="kind">
- <ref>SearchResultKind</ref>
- <p>
- The kind of element that was found or the kind of
- reference that was found.
- </p>
- </field>
- <field name="isPotential">
- <ref>bool</ref>
- <p>
- True if the result is a potential match but cannot be
- confirmed to be a match. For example, if all references to
- a method m defined in some class were requested, and a
- reference to a method m from an unknown class were found,
- it would be marked as being a potential match.
- </p>
- </field>
- <field name="path">
- <list><ref>Element</ref></list>
- <p>
- The elements that contain the result, starting with the
- most immediately enclosing ancestor and ending with the
- library.
- </p>
- </field>
- </object>
- </type>
- <type name="SearchResultKind">
+ </value>
+ <value>
+ <code>UNSUPPORTED_FEATURE</code>
<p>
- An enumeration of the kinds of search results returned by the
- search domain.
+ The analysis server was requested to perform an action
+ which is not supported.
</p>
- <enum>
- <value>
- <code>DECLARATION</code>
- <p>
- The declaration of an element.
- </p>
- </value>
- <value>
- <code>INVOCATION</code>
- <p>
- The invocation of a function or method.
- </p>
- </value>
- <value>
- <code>READ</code>
- <p>
- A reference to a field, parameter or variable where it is being read.
- </p>
- </value>
- <value>
- <code>READ_WRITE</code>
- <p>
- A reference to a field, parameter or variable where it is being read and written.
- </p>
- </value>
- <value>
- <code>REFERENCE</code>
- <p>
- A reference to an element.
- </p>
- </value>
- <value>
- <code>UNKNOWN</code>
- <p>
- Some other kind of search result.
- </p>
- </value>
- <value>
- <code>WRITE</code>
- <p>
- A reference to a field, parameter or variable where it is being written.
- </p>
- </value>
- </enum>
- </type>
- <type name="ServerService">
<p>
- An enumeration of the services provided by the server domain.
+ This is a legacy error; it will be removed before the
+ API reaches version 1.0.
</p>
- <enum>
- <value><code>STATUS</code></value>
- </enum>
- </type>
- <type name="SourceChange">
+ <!-- TODO(paulberry): remove this error and the code that
+ generates it. -->
+ </value>
+ </enum>
+ </type>
+ <type name="SearchId">
+ <ref>String</ref>
+ <p>
+ An identifier used to associate search results with a search
+ request.
+ </p>
+ </type>
+ <type name="SearchResult">
+ <p>
+ A single result from a search request.
+ </p>
+ <object>
+ <field name="location">
+ <ref>Location</ref>
+ <p>
+ The location of the code that matched the search criteria.
+ </p>
+ </field>
+ <field name="kind">
+ <ref>SearchResultKind</ref>
+ <p>
+ The kind of element that was found or the kind of
+ reference that was found.
+ </p>
+ </field>
+ <field name="isPotential">
+ <ref>bool</ref>
+ <p>
+ True if the result is a potential match but cannot be
+ confirmed to be a match. For example, if all references to
+ a method m defined in some class were requested, and a
+ reference to a method m from an unknown class were found,
+ it would be marked as being a potential match.
+ </p>
+ </field>
+ <field name="path">
+ <list>
+ <ref>Element</ref>
+ </list>
+ <p>
+ The elements that contain the result, starting with the
+ most immediately enclosing ancestor and ending with the
+ library.
+ </p>
+ </field>
+ </object>
+ </type>
+ <type name="SearchResultKind">
+ <p>
+ An enumeration of the kinds of search results returned by the
+ search domain.
+ </p>
+ <enum>
+ <value>
+ <code>DECLARATION</code>
<p>
- A description of a set of edits that implement a single
- conceptual change.
+ The declaration of an element.
</p>
- <object>
- <field name="message">
- <ref>String</ref>
- <p>
- A human-readable description of the change to be applied.
- </p>
- </field>
- <field name="edits">
- <list><ref>SourceFileEdit</ref></list>
- <p>
- A list of the edits used to effect the change, grouped by
- file.
- </p>
- </field>
- <field name="linkedEditGroups">
- <list><ref>LinkedEditGroup</ref></list>
- <p>
- A list of the linked editing groups used to customize
- the changes that were made.
- </p>
- </field>
- <field name="selection" optional="true">
- <ref>Position</ref>
- <p>
- The position that should be selected after the edits
- have been applied.
- </p>
- </field>
- </object>
- </type>
- <type name="SourceEdit">
+ </value>
+ <value>
+ <code>INVOCATION</code>
<p>
- A description of a single change to a single file.
+ The invocation of a function or method.
</p>
- <object>
- <field name="offset">
- <ref>int</ref>
- <p>
- The offset of the region to be modified.
- </p>
- </field>
- <field name="length">
- <ref>int</ref>
- <p>
- The length of the region to be modified.
- </p>
- </field>
- <field name="replacement">
- <ref>String</ref>
- <p>
- The code that is to replace the specified region in the
- original code.
- </p>
- </field>
- <field name="id" optional="true">
- <ref>String</ref>
- <p>
- An identifier that uniquely identifies this source edit from other
- edits in the same response. This field is omitted unless a
- containing structure needs to be able to identify the edit for
- some reason.
- </p>
- <p>
- For example, some refactoring operations can produce edits that
- might not be appropriate (referred to as potential edits). Such
- edits will have an id so that they can be referenced. Edits in
- the same response that do not need to be referenced will not have
- an id.
- </p>
- </field>
- </object>
- </type>
- <type name="SourceFileEdit">
+ </value>
+ <value>
+ <code>READ</code>
<p>
- A description of a set of changes to a single file.
+ A reference to a field, parameter or variable where it is being read.
</p>
- <object>
- <field name="file">
- <ref>FilePath</ref>
- <p>
- The file containing the code to be modified.
- </p>
- </field>
- <field name="fileStamp">
- <ref>long</ref>
- <p>
- The modification stamp of the file at the moment when the change
- was created, in milliseconds since the "Unix epoch". Will be -1 if
- the file did not exist and should be created. The client may use
- this field to make sure that the file was not changed since then,
- so it is safe to apply the change.
- </p>
- </field>
- <field name="edits">
- <list><ref>SourceEdit</ref></list>
- <p>
- A list of the edits used to effect the change.
- </p>
- </field>
- </object>
- </type>
- <type name="TypeHierarchyItem">
+ </value>
+ <value>
+ <code>READ_WRITE</code>
<p>
- A representation of a class in a type hierarchy.
+ A reference to a field, parameter or variable where it is being read
+ and written.
</p>
- <object>
- <field name="classElement">
- <ref>Element</ref>
- <p>
- The class element represented by this item.
- </p>
- </field>
- <field name="displayName" optional="true">
- <ref>String</ref>
- <p>
- The name to be displayed for the class. This field will be
- omitted if the display name is the same as the name of the
- element. The display name is different if there is
- additional type information to be displayed, such as type
- arguments.
- </p>
- </field>
- <field name="memberElement" optional="true">
- <ref>Element</ref>
- <p>
- The member in the class corresponding to the member on
- which the hierarchy was requested. This field will be
- omitted if the hierarchy was not requested for a member or
- if the class does not have a corresponding member.
- </p>
- </field>
- <field name="superclass" optional="true">
- <ref>int</ref>
- <p>
- The index of the item representing the superclass of
- this class. This field will be omitted if this item
- represents the class Object.
- </p>
- </field>
- <field name="interfaces">
- <list><ref>int</ref></list>
- <p>
- The indexes of the items representing the interfaces
- implemented by this class. The list will be empty if
- there are no implemented interfaces.
- </p>
- </field>
- <field name="mixins">
- <list><ref>int</ref></list>
- <p>
- The indexes of the items representing the mixins
- referenced by this class. The list will be empty if
- there are no classes mixed in to this class.
- </p>
- </field>
- <field name="subclasses">
- <list><ref>int</ref></list>
- <p>
- The indexes of the items representing the subtypes of
- this class. The list will be empty if there are no
- subtypes or if this item represents a supertype of the
- pivot type.
- </p>
- </field>
- </object>
- </type>
- </types>
- <refactorings>
- <h2><a name="refactorings">Refactorings</a></h2>
- <p>
- This section contains additional information for each kind of
- refactoring. In addition to a brief description of the
- refactoring, there is a specification of the feedback that is
- provided when a refactoring is requested using the
- edit.getRefactoring request (designed to improve the UX)
- and the options that may be provided to edit.getRefactoring.
- </p>
- <refactoring kind="CONVERT_GETTER_TO_METHOD">
+ </value>
+ <value>
+ <code>REFERENCE</code>
<p>
- Convert a getter into a method by removing the keyword get
- and adding an empty parameter list.
+ A reference to an element.
</p>
+ </value>
+ <value>
+ <code>UNKNOWN</code>
<p>
- It is an error if the range contains anything other than all
- or part of the name of a single getter.
+ Some other kind of search result.
</p>
- </refactoring>
- <refactoring kind="CONVERT_METHOD_TO_GETTER">
+ </value>
+ <value>
+ <code>WRITE</code>
<p>
- Convert a method into a getter by adding the keyword get and
- removing the parameter list.
+ A reference to a field, parameter or variable where it is being
+ written.
</p>
+ </value>
+ </enum>
+ </type>
+ <type name="ServerService">
+ <p>
+ An enumeration of the services provided by the server domain.
+ </p>
+ <enum>
+ <value><code>STATUS</code></value>
+ </enum>
+ </type>
+ <type name="TypeHierarchyItem">
+ <p>
+ A representation of a class in a type hierarchy.
+ </p>
+ <object>
+ <field name="classElement">
+ <ref>Element</ref>
<p>
- It is an error if the range contains anything other than all
- or part of the name of a single method or if the method has
- a non-empty parameter list.
+ The class element represented by this item.
</p>
- </refactoring>
- <refactoring kind="EXTRACT_LOCAL_VARIABLE">
+ </field>
+ <field name="displayName" optional="true">
+ <ref>String</ref>
+ <p>
+ The name to be displayed for the class. This field will be
+ omitted if the display name is the same as the name of the
+ element. The display name is different if there is
+ additional type information to be displayed, such as type
+ arguments.
+ </p>
+ </field>
+ <field name="memberElement" optional="true">
+ <ref>Element</ref>
+ <p>
+ The member in the class corresponding to the member on
+ which the hierarchy was requested. This field will be
+ omitted if the hierarchy was not requested for a member or
+ if the class does not have a corresponding member.
+ </p>
+ </field>
+ <field name="superclass" optional="true">
+ <ref>int</ref>
+ <p>
+ The index of the item representing the superclass of
+ this class. This field will be omitted if this item
+ represents the class Object.
+ </p>
+ </field>
+ <field name="interfaces">
+ <list>
+ <ref>int</ref>
+ </list>
+ <p>
+ The indexes of the items representing the interfaces
+ implemented by this class. The list will be empty if
+ there are no implemented interfaces.
+ </p>
+ </field>
+ <field name="mixins">
+ <list>
+ <ref>int</ref>
+ </list>
+ <p>
+ The indexes of the items representing the mixins
+ referenced by this class. The list will be empty if
+ there are no classes mixed in to this class.
+ </p>
+ </field>
+ <field name="subclasses">
+ <list>
+ <ref>int</ref>
+ </list>
+ <p>
+ The indexes of the items representing the subtypes of
+ this class. The list will be empty if there are no
+ subtypes or if this item represents a supertype of the
+ pivot type.
+ </p>
+ </field>
+ </object>
+ </type>
+</types>
+<refactorings>
+ <h2><a name="refactorings">Refactorings</a></h2>
+ <p>
+ This section contains additional information for each kind of
+ refactoring. In addition to a brief description of the
+ refactoring, there is a specification of the feedback that is
+ provided when a refactoring is requested using the
+ edit.getRefactoring request (designed to improve the UX)
+ and the options that may be provided to edit.getRefactoring.
+ </p>
+ <refactoring kind="CONVERT_GETTER_TO_METHOD">
+ <p>
+ Convert a getter into a method by removing the keyword get
+ and adding an empty parameter list.
+ </p>
+ <p>
+ It is an error if the range contains anything other than all
+ or part of the name of a single getter.
+ </p>
+ </refactoring>
+ <refactoring kind="CONVERT_METHOD_TO_GETTER">
+ <p>
+ Convert a method into a getter by adding the keyword get and
+ removing the parameter list.
+ </p>
+ <p>
+ It is an error if the range contains anything other than all
+ or part of the name of a single method or if the method has
+ a non-empty parameter list.
+ </p>
+ </refactoring>
+ <refactoring kind="EXTRACT_LOCAL_VARIABLE">
+ <p>
+ Create a local variable initialized by the expression that covers
+ the specified selection.
+ </p>
+ <p>
+ It is an error if the selection range is not covered by a
+ complete expression.
+ </p>
+ <feedback>
+ <field name="coveringExpressionOffsets" optional="true">
+ <list>
+ <ref>int</ref>
+ </list>
+ <p>
+ The offsets of the expressions that cover the specified
+ selection, from the down most to the up most.
+ </p>
+ </field>
+ <field name="coveringExpressionLengths" optional="true">
+ <list>
+ <ref>int</ref>
+ </list>
+ <p>
+ The lengths of the expressions that cover the specified
+ selection, from the down most to the up most.
+ </p>
+ </field>
+ <field name="names">
+ <list>
+ <ref>String</ref>
+ </list>
+ <p>
+ The proposed names for the local variable.
+ </p>
+ </field>
+ <field name="offsets">
+ <list>
+ <ref>int</ref>
+ </list>
+ <p>
+ The offsets of the expressions that would be replaced by
+ a reference to the variable.
+ </p>
+ </field>
+ <field name="lengths">
+ <list>
+ <ref>int</ref>
+ </list>
+ <p>
+ The lengths of the expressions that would be replaced by
+ a reference to the variable. The lengths correspond to
+ the offsets. In other words, for a given expression, if
+ the offset of that expression is <tt>offsets[i]</tt>, then
+ the length of that expression is <tt>lengths[i]</tt>.
+ </p>
+ </field>
+ </feedback>
+ <options>
+ <field name="name">
+ <ref>String</ref>
<p>
- Create a local variable initialized by the expression that covers
- the specified selection.
+ The name that the local variable should be given.
</p>
+ </field>
+ <field name="extractAll">
+ <ref>bool</ref>
<p>
- It is an error if the selection range is not covered by a
- complete expression.
+ True if all occurrences of the expression within the
+ scope in which the variable will be defined should be
+ replaced by a reference to the local variable. The
+ expression used to initiate the refactoring will always
+ be replaced.
</p>
- <feedback>
- <field name="coveringExpressionOffsets" optional="true">
- <list><ref>int</ref></list>
- <p>
- The offsets of the expressions that cover the specified
- selection, from the down most to the up most.
- </p>
- </field>
- <field name="coveringExpressionLengths" optional="true">
- <list><ref>int</ref></list>
- <p>
- The lengths of the expressions that cover the specified
- selection, from the down most to the up most.
- </p>
- </field>
- <field name="names">
- <list><ref>String</ref></list>
- <p>
- The proposed names for the local variable.
- </p>
- </field>
- <field name="offsets">
- <list><ref>int</ref></list>
- <p>
- The offsets of the expressions that would be replaced by
- a reference to the variable.
- </p>
- </field>
- <field name="lengths">
- <list><ref>int</ref></list>
- <p>
- The lengths of the expressions that would be replaced by
- a reference to the variable. The lengths correspond to
- the offsets. In other words, for a given expression, if
- the offset of that expression is <tt>offsets[i]</tt>, then
- the length of that expression is <tt>lengths[i]</tt>.
- </p>
- </field>
- </feedback>
- <options>
- <field name="name">
- <ref>String</ref>
- <p>
- The name that the local variable should be given.
- </p>
- </field>
- <field name="extractAll">
- <ref>bool</ref>
- <p>
- True if all occurrences of the expression within the
- scope in which the variable will be defined should be
- replaced by a reference to the local variable. The
- expression used to initiate the refactoring will always
- be replaced.
- </p>
- </field>
- </options>
- </refactoring>
- <refactoring kind="EXTRACT_METHOD">
+ </field>
+ </options>
+ </refactoring>
+ <refactoring kind="EXTRACT_METHOD">
+ <p>
+ Create a method whose body is the specified expression or
+ list of statements, possibly augmented with a return
+ statement.
+ </p>
+ <p>
+ It is an error if the range contains anything other than a
+ complete expression (no partial expressions are allowed) or
+ a complete sequence of statements.
+ </p>
+ <feedback>
+ <field name="offset">
+ <ref>int</ref>
<p>
- Create a method whose body is the specified expression or
- list of statements, possibly augmented with a return
- statement.
+ The offset to the beginning of the expression or
+ statements that will be extracted.
</p>
+ </field>
+ <field name="length">
+ <ref>int</ref>
<p>
- It is an error if the range contains anything other than a
- complete expression (no partial expressions are allowed) or
- a complete sequence of statements.
+ The length of the expression or statements that will be
+ extracted.
</p>
- <feedback>
- <field name="offset">
- <ref>int</ref>
- <p>
- The offset to the beginning of the expression or
- statements that will be extracted.
- </p>
- </field>
- <field name="length">
- <ref>int</ref>
- <p>
- The length of the expression or statements that will be
- extracted.
- </p>
- </field>
- <field name="returnType">
- <ref>String</ref>
- <p>
- The proposed return type for the method.
- If the returned element does not have a declared return type,
- this field will contain an empty string.
- </p>
- </field>
- <field name="names">
- <list><ref>String</ref></list>
- <p>
- The proposed names for the method.
- </p>
- </field>
- <field name="canCreateGetter">
- <ref>bool</ref>
- <p>
- True if a getter could be created rather than a method.
- </p>
- </field>
- <field name="parameters">
- <list><ref>RefactoringMethodParameter</ref></list>
- <p>
- The proposed parameters for the method.
- </p>
- </field>
- <field name="offsets">
- <list><ref>int</ref></list>
- <p>
- The offsets of the expressions or statements that would
- be replaced by an invocation of the method.
- </p>
- </field>
- <field name="lengths">
- <list><ref>int</ref></list>
- <p>
- The lengths of the expressions or statements that would
- be replaced by an invocation of the method. The lengths
- correspond to the offsets. In other words, for a given
- expression (or block of statements), if the offset of
- that expression is <tt>offsets[i]</tt>, then the length
- of that expression is <tt>lengths[i]</tt>.
- </p>
- </field>
- </feedback>
- <options>
- <field name="returnType">
- <ref>String</ref>
- <p>
- The return type that should be defined for the method.
- </p>
- </field>
- <field name="createGetter">
- <ref>bool</ref>
- <p>
- True if a getter should be created rather than a
- method. It is an error if this field is true and the
- list of parameters is non-empty.
- </p>
- </field>
- <field name="name">
- <ref>String</ref>
- <p>
- The name that the method should be given.
- </p>
- </field>
- <field name="parameters">
- <list><ref>RefactoringMethodParameter</ref></list>
- <p>
- The parameters that should be defined for the method.
- </p>
- <p>
- It is an error if a REQUIRED or NAMED parameter follows a
- POSITIONAL parameter.
- It is an error if a REQUIRED or POSITIONAL parameter follows a
- NAMED parameter.
- </p>
- <ul>
- <li>
- To change the order and/or update proposed parameters, add
- parameters with the same identifiers as proposed.
- </li>
- <li>To add new parameters, omit their identifier.</li>
- <li>To remove some parameters, omit them in this list.</li>
- </ul>
- </field>
- <field name="extractAll">
- <ref>bool</ref>
- <p>
- True if all occurrences of the expression or statements
- should be replaced by an invocation of the method. The
- expression or statements used to initiate the
- refactoring will always be replaced.
- </p>
- </field>
- </options>
- </refactoring>
- <refactoring kind="INLINE_LOCAL_VARIABLE">
+ </field>
+ <field name="returnType">
+ <ref>String</ref>
<p>
- Inline the initializer expression of a local variable in
- place of any references to that variable.
+ The proposed return type for the method.
+ If the returned element does not have a declared return type,
+ this field will contain an empty string.
+ </p>
+ </field>
+ <field name="names">
+ <list>
+ <ref>String</ref>
+ </list>
+ <p>
+ The proposed names for the method.
+ </p>
+ </field>
+ <field name="canCreateGetter">
+ <ref>bool</ref>
+ <p>
+ True if a getter could be created rather than a method.
+ </p>
+ </field>
+ <field name="parameters">
+ <list>
+ <ref>RefactoringMethodParameter</ref>
+ </list>
+ <p>
+ The proposed parameters for the method.
+ </p>
+ </field>
+ <field name="offsets">
+ <list>
+ <ref>int</ref>
+ </list>
+ <p>
+ The offsets of the expressions or statements that would
+ be replaced by an invocation of the method.
+ </p>
+ </field>
+ <field name="lengths">
+ <list>
+ <ref>int</ref>
+ </list>
+ <p>
+ The lengths of the expressions or statements that would
+ be replaced by an invocation of the method. The lengths
+ correspond to the offsets. In other words, for a given
+ expression (or block of statements), if the offset of
+ that expression is <tt>offsets[i]</tt>, then the length
+ of that expression is <tt>lengths[i]</tt>.
+ </p>
+ </field>
+ </feedback>
+ <options>
+ <field name="returnType">
+ <ref>String</ref>
+ <p>
+ The return type that should be defined for the method.
</p>
+ </field>
+ <field name="createGetter">
+ <ref>bool</ref>
<p>
- It is an error if the range contains anything other than all
- or part of the name of a single local variable.
+ True if a getter should be created rather than a
+ method. It is an error if this field is true and the
+ list of parameters is non-empty.
</p>
- <feedback>
- <field name="name">
- <ref>String</ref>
- <p>
- The name of the variable being inlined.
- </p>
- </field>
- <field name="occurrences">
- <ref>int</ref>
- <p>
- The number of times the variable occurs.
- </p>
- </field>
- </feedback>
- </refactoring>
- <refactoring kind="INLINE_METHOD">
+ </field>
+ <field name="name">
+ <ref>String</ref>
<p>
- Inline a method in place of one or all references to that
- method.
+ The name that the method should be given.
</p>
+ </field>
+ <field name="parameters">
+ <list>
+ <ref>RefactoringMethodParameter</ref>
+ </list>
<p>
- It is an error if the range contains anything other than all
- or part of the name of a single method.
+ The parameters that should be defined for the method.
</p>
- <feedback>
- <field name="className" optional="true">
- <ref>String</ref>
- <p>
- The name of the class enclosing the method being inlined.
- If not a class member is being inlined, this field will be absent.
- </p>
- </field>
- <field name="methodName">
- <ref>String</ref>
- <p>
- The name of the method (or function) being inlined.
- </p>
- </field>
- <field name="isDeclaration">
- <ref>bool</ref>
- <p>
- True if the declaration of the method is selected.
- So all references should be inlined.
- </p>
- </field>
- </feedback>
- <options>
- <field name="deleteSource">
- <ref>bool</ref>
- <p>
- True if the method being inlined should be removed.
- It is an error if this field is true and inlineAll is false.
- </p>
- </field>
- <field name="inlineAll">
- <ref>bool</ref>
- <p>
- True if all invocations of the method should be inlined,
- or false if only the invocation site used to create this
- refactoring should be inlined.
- </p>
- </field>
- </options>
- </refactoring>
- <refactoring kind="MOVE_FILE">
<p>
- Move the given file and update all of the references to that file
- and from it. The move operation is supported in general case - for
- renaming a file in the same folder, moving it to a different folder
- or both.
+ It is an error if a REQUIRED or NAMED parameter follows a
+ POSITIONAL parameter.
+ It is an error if a REQUIRED or POSITIONAL parameter follows a
+ NAMED parameter.
</p>
+ <ul>
+ <li>
+ To change the order and/or update proposed parameters, add
+ parameters with the same identifiers as proposed.
+ </li>
+ <li>To add new parameters, omit their identifier.</li>
+ <li>To remove some parameters, omit them in this list.</li>
+ </ul>
+ </field>
+ <field name="extractAll">
+ <ref>bool</ref>
+ <p>
+ True if all occurrences of the expression or statements
+ should be replaced by an invocation of the method. The
+ expression or statements used to initiate the
+ refactoring will always be replaced.
+ </p>
+ </field>
+ </options>
+ </refactoring>
+ <refactoring kind="INLINE_LOCAL_VARIABLE">
+ <p>
+ Inline the initializer expression of a local variable in
+ place of any references to that variable.
+ </p>
+ <p>
+ It is an error if the range contains anything other than all
+ or part of the name of a single local variable.
+ </p>
+ <feedback>
+ <field name="name">
+ <ref>String</ref>
<p>
- The refactoring must be activated before an actual file moving
- operation is performed.
+ The name of the variable being inlined.
</p>
+ </field>
+ <field name="occurrences">
+ <ref>int</ref>
<p>
- The "offset" and "length" fields from the request are ignored, but the
- file specified in the request specifies the file to be moved.
+ The number of times the variable occurs.
</p>
- <options>
- <field name="newFile">
- <ref>FilePath</ref>
- <p>
- The new file path to which the given file is being moved.
- </p>
- </field>
- </options>
- </refactoring>
- <refactoring kind="RENAME">
+ </field>
+ </feedback>
+ </refactoring>
+ <refactoring kind="INLINE_METHOD">
+ <p>
+ Inline a method in place of one or all references to that
+ method.
+ </p>
+ <p>
+ It is an error if the range contains anything other than all
+ or part of the name of a single method.
+ </p>
+ <feedback>
+ <field name="className" optional="true">
+ <ref>String</ref>
<p>
- Rename a given element and all of the references to that
- element.
+ The name of the class enclosing the method being inlined.
+ If not a class member is being inlined, this field will be absent.
</p>
+ </field>
+ <field name="methodName">
+ <ref>String</ref>
<p>
- It is an error if the range contains anything other than all
- or part of the name of a single function (including methods,
- getters and setters), variable (including fields, parameters
- and local variables), class or function type.
+ The name of the method (or function) being inlined.
</p>
- <feedback>
- <field name="offset">
- <ref>int</ref>
- <p>
- The offset to the beginning of the name selected to be
- renamed.
- </p>
- </field>
- <field name="length">
- <ref>int</ref>
- <p>
- The length of the name selected to be renamed.
- </p>
- </field>
- <field name="elementKindName">
- <ref>String</ref>
- <p>
- The human-readable description of the kind of element being
- renamed (such as "class" or "function type
- alias").
- </p>
- </field>
- <field name="oldName">
- <ref>String</ref>
- <p>
- The old name of the element before the refactoring.
- </p>
- </field>
- </feedback>
- <options>
- <field name="newName">
- <ref>String</ref>
- <p>
- The name that the element should have after the
- refactoring.
- </p>
- </field>
- </options>
- </refactoring>
- </refactorings>
- <h2>Errors</h2>
+ </field>
+ <field name="isDeclaration">
+ <ref>bool</ref>
+ <p>
+ True if the declaration of the method is selected.
+ So all references should be inlined.
+ </p>
+ </field>
+ </feedback>
+ <options>
+ <field name="deleteSource">
+ <ref>bool</ref>
+ <p>
+ True if the method being inlined should be removed.
+ It is an error if this field is true and inlineAll is false.
+ </p>
+ </field>
+ <field name="inlineAll">
+ <ref>bool</ref>
+ <p>
+ True if all invocations of the method should be inlined,
+ or false if only the invocation site used to create this
+ refactoring should be inlined.
+ </p>
+ </field>
+ </options>
+ </refactoring>
+ <refactoring kind="MOVE_FILE">
+ <p>
+ Move the given file and update all of the references to that file
+ and from it. The move operation is supported in general case - for
+ renaming a file in the same folder, moving it to a different folder
+ or both.
+ </p>
+ <p>
+ The refactoring must be activated before an actual file moving
+ operation is performed.
+ </p>
<p>
- This section contains a list of all of the errors that are
- produced by the server and the data that is returned with each.
+ The "offset" and "length" fields from the request are ignored, but the
+ file specified in the request specifies the file to be moved.
+ </p>
+ <options>
+ <field name="newFile">
+ <ref>FilePath</ref>
+ <p>
+ The new file path to which the given file is being moved.
+ </p>
+ </field>
+ </options>
+ </refactoring>
+ <refactoring kind="RENAME">
+ <p>
+ Rename a given element and all of the references to that
+ element.
</p>
<p>
- TODO: TBD
+ It is an error if the range contains anything other than all
+ or part of the name of a single function (including methods,
+ getters and setters), variable (including fields, parameters
+ and local variables), class or function type.
</p>
- <h2 class="domain"><a name="index">Index</a></h2>
- <index></index>
- </body>
+ <feedback>
+ <field name="offset">
+ <ref>int</ref>
+ <p>
+ The offset to the beginning of the name selected to be
+ renamed.
+ </p>
+ </field>
+ <field name="length">
+ <ref>int</ref>
+ <p>
+ The length of the name selected to be renamed.
+ </p>
+ </field>
+ <field name="elementKindName">
+ <ref>String</ref>
+ <p>
+ The human-readable description of the kind of element being
+ renamed (such as "class" or "function type
+ alias").
+ </p>
+ </field>
+ <field name="oldName">
+ <ref>String</ref>
+ <p>
+ The old name of the element before the refactoring.
+ </p>
+ </field>
+ </feedback>
+ <options>
+ <field name="newName">
+ <ref>String</ref>
+ <p>
+ The name that the element should have after the
+ refactoring.
+ </p>
+ </field>
+ </options>
+ </refactoring>
+</refactorings>
+<h2>Errors</h2>
+<p>
+ This section contains a list of all of the errors that are
+ produced by the server and the data that is returned with each.
+</p>
+<p>
+ TODO: TBD
+</p>
+<h2 class="domain"><a name="index">Index</a></h2>
+<index></index>
+</body>
</html>

Powered by Google App Engine
This is Rietveld 408576698