2170c061b0
Remove libraryUrisToImport and libraryUriToImportIndex. Change-Id: Iafe27d6fb0c5ce0c623567a0384a4579274b151f Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/227580 Reviewed-by: Jaime Wren <jwren@google.com> Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
5962 lines
188 KiB
HTML
5962 lines
188 KiB
HTML
<!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.32.8</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="https://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>Enumerations</h3>
|
||
<p>
|
||
Responses from the server may include enumerations indicating the kind of a
|
||
specific item. The enums may be extended with new values in future versions of
|
||
the server so clients should ensure unknown values are handled gracefully, either
|
||
ignoring the item or treating it with some default/fallback handling.
|
||
</p>
|
||
<h3>Changelog</h3>
|
||
<h4>1.32.8</h4>
|
||
<ul>
|
||
<li>Added <tt>server.cancelRequest</tt> to allow clients to request cancellation
|
||
of outstanding requests.</li>
|
||
</ul>
|
||
<h4>1.32.7</h4>
|
||
<ul>
|
||
<li><tt>HoverInformation.elementDescription</tt> may now include linebreaks to
|
||
improve formatting of functions and methods with many parameters. This is not
|
||
an API change but may be useful as a signal for clients that previously did their
|
||
own formatting.</li>
|
||
</ul>
|
||
<h4>1.32.6</h4>
|
||
<ul>
|
||
<li>Added <tt>FoldingKind.PARAMETERS</tt> for folding regions for parameters
|
||
that span multiple lines.</li>
|
||
</ul>
|
||
<h4>1.32.5</h4>
|
||
<ul>
|
||
<li>Added optional <tt>replacementOffset</tt> and <tt>replacementLength</tt> on
|
||
<tt>CompletionSuggestion</tt> to support different per-completion text replacement
|
||
ranges (for example when inserting names for arguments, a different range may be
|
||
supplied than for completions that are not name labels).</li>
|
||
</ul>
|
||
<h4>1.32.4</h4>
|
||
<ul>
|
||
<li>Added <tt>ElementKind.TYPE_ALIAS</tt> and <tt>HighlightRegionType.TYPE_ALIAS</tt>
|
||
for non-function type aliases.</li>
|
||
</ul>
|
||
<h4>1.32.3</h4>
|
||
<ul>
|
||
<li>Removed the experimental <tt>completion.listTokenDetails</tt> request and
|
||
the associated data types.</li>
|
||
</ul>
|
||
<h4>1.32.2</h4>
|
||
<ul>
|
||
<li>Added <tt>FoldingKind.COMMENT</tt> for folding regions for blocks of
|
||
comments.</li>
|
||
</ul>
|
||
<h4>1.32.1</h4>
|
||
<ul>
|
||
<li>Added <tt>CompletionSuggestionKind.PACKAGE_NAME</tt> for Pub package name
|
||
completions in <tt>pubspec.yaml</tt>.</li>
|
||
</ul>
|
||
<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.
|
||
</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>--client-version</dt>
|
||
<dd>
|
||
<p>
|
||
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">
|
||
<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>
|
||
<request method="cancelRequest">
|
||
<p>Requests cancellation of a request sent by the client by id.
|
||
This is provided on a best-effort basis and there is no
|
||
guarantee the server will be able to cancel any specific
|
||
request.
|
||
|
||
The server will still always produce a response to the request
|
||
even in the case of cancellation, but clients should discard
|
||
any results of any cancelled request because they may be
|
||
incomplete or inaccurate.
|
||
|
||
This request always completes without error regardless of
|
||
whether the request is successfully cancelled.</p>
|
||
<params>
|
||
<field name="id">
|
||
<ref>String</ref>
|
||
<p>The id of the request that should be cancelled.</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>
|
||
</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>
|
||
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="log" experimental="true">
|
||
<p>
|
||
The stream of entries describing events happened in the server.
|
||
</p>
|
||
<params>
|
||
<field name="entry">
|
||
<ref>ServerLogEntry</ref>
|
||
</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" deprecated="true">
|
||
<ref>PubStatus</ref>
|
||
<p>
|
||
The current status of pub execution, indicating whether we are
|
||
currently running pub.
|
||
</p>
|
||
|
||
<p>
|
||
Note: this status type is deprecated, and is no longer sent by
|
||
the server.
|
||
</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="getImportedElements" experimental="true">
|
||
<p>
|
||
Return a description of all of the elements referenced in a given region
|
||
of a given file that come from imported libraries.
|
||
</p>
|
||
<p>
|
||
If a request is made for a file that does not exist, or that is not
|
||
currently subject to analysis (e.g. because it is not associated with any
|
||
analysis root specified via analysis.setAnalysisRoots), an error of type
|
||
<tt>GET_IMPORTED_ELEMENTS_INVALID_FILE</tt> will be generated.
|
||
</p>
|
||
<params>
|
||
<field name="file">
|
||
<ref>FilePath</ref>
|
||
<p>
|
||
The file in which import information is being requested.
|
||
</p>
|
||
</field>
|
||
<field name="offset">
|
||
<ref>int</ref>
|
||
<p>
|
||
The offset of the region for which import information is being
|
||
requested.
|
||
</p>
|
||
</field>
|
||
<field name="length">
|
||
<ref>int</ref>
|
||
<p>
|
||
The length of the region for which import information is being
|
||
requested.
|
||
</p>
|
||
</field>
|
||
</params>
|
||
<result>
|
||
<field name="elements">
|
||
<list>
|
||
<ref>ImportedElements</ref>
|
||
</list>
|
||
<p>
|
||
The information about the elements that are referenced in the
|
||
specified region of the specified file that come from imported
|
||
libraries.
|
||
</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="getReachableSources" deprecated="true">
|
||
<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="getSignature" experimental="true">
|
||
<p>
|
||
Return the signature information associated with the given
|
||
location in the given file. If the signature information
|
||
for the given file has not yet been computed, or the most
|
||
recently computed signature information for the given file
|
||
is out of date, then the response for this request will be
|
||
delayed until it has been computed.
|
||
|
||
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_SIGNATURE_INVALID_FILE</tt> will be generated.
|
||
|
||
If the location given is not inside the argument list for a
|
||
function (including method and constructor) invocation, then
|
||
an error of type <tt>GET_SIGNATURE_INVALID_OFFSET</tt> will
|
||
be generated. If the location is inside an argument list but
|
||
the function is not defined or cannot be determined (such as
|
||
a method invocation where the target has type 'dynamic')
|
||
then an error of type <tt>GET_SIGNATURE_UNKNOWN_FUNCTION</tt>
|
||
will be generated.
|
||
</p>
|
||
<params>
|
||
<field name="file">
|
||
<ref>FilePath</ref>
|
||
<p>
|
||
The file in which signature information is being requested.
|
||
</p>
|
||
</field>
|
||
<field name="offset">
|
||
<ref>int</ref>
|
||
<p>
|
||
The location for which signature information is being requested.
|
||
</p>
|
||
</field>
|
||
</params>
|
||
<result>
|
||
<field name="name">
|
||
<ref>String</ref>
|
||
<p>The name of the function being invoked at the given offset.</p>
|
||
</field>
|
||
<field name="parameters">
|
||
<list>
|
||
<ref>ParameterInfo</ref>
|
||
</list>
|
||
<p>A list of information about each of the parameters of the function being invoked.</p>
|
||
</field>
|
||
<field name="dartdoc" optional="true">
|
||
<ref>String</ref>
|
||
<p>
|
||
The dartdoc associated with the function being invoked. 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>
|
||
</result>
|
||
</request>
|
||
<request method="reanalyze">
|
||
<p>
|
||
Force re-reading of all potentially changed files, re-resolving of all
|
||
referenced URIs, and corresponding re-analysis of everything affected in
|
||
the current analysis roots.
|
||
</p>
|
||
</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 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">
|
||
<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>
|
||
</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="closingLabels">
|
||
<p>
|
||
Reports closing labels relevant to a given file.
|
||
</p>
|
||
<p>
|
||
This notification is not subscribed to by default. Clients
|
||
can subscribe by including the value <tt>"CLOSING_LABELS"</tt>
|
||
in the list of services passed in an
|
||
analysis.setSubscriptions request.
|
||
</p>
|
||
<params>
|
||
<field name="file">
|
||
<ref>FilePath</ref>
|
||
<p>
|
||
The file the closing labels relate to.
|
||
</p>
|
||
</field>
|
||
<field name="labels">
|
||
<list>
|
||
<ref>ClosingLabel</ref>
|
||
</list>
|
||
<p>
|
||
Closing labels relevant to the file. Each item
|
||
represents a useful label associated with some range
|
||
with may be useful to display to the user within the editor
|
||
at the end of the range to indicate what construct is closed
|
||
at that location. Closing labels include constructor/method
|
||
calls and List arguments that span multiple lines.
|
||
Note that the ranges that are returned can overlap
|
||
each other because they may be associated with
|
||
constructs that can be nested.
|
||
</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">
|
||
<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>
|
||
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">
|
||
<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>
|
||
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">
|
||
<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>
|
||
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">
|
||
<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>
|
||
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">
|
||
<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>
|
||
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">
|
||
<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>
|
||
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>
|
||
<request method="getSuggestions2" experimental="true">
|
||
<p>
|
||
Request that completion suggestions for the given offset in the given
|
||
file be returned. The suggestions will be filtered using fuzzy matching
|
||
with the already existing prefix.
|
||
</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>
|
||
<field name="maxResults">
|
||
<ref>int</ref>
|
||
<p>
|
||
The maximum number of suggestions to return. If the number of
|
||
suggestions after filtering is greater than the <tt>maxResults</tt>,
|
||
then <tt>isIncomplete</tt> is set to <tt>true</tt>.
|
||
</p>
|
||
</field>
|
||
<field name="completionMode" experimental="true" optional="true">
|
||
<ref>CompletionMode</ref>
|
||
<p>
|
||
The mode of code completion being invoked. If no value is provided,
|
||
<tt>BASIC</tt> will be assumed. <tt>BASIC</tt> is also the only
|
||
currently supported.
|
||
</p>
|
||
</field>
|
||
<field name="invocationCount" experimental="true" optional="true">
|
||
<ref>int</ref>
|
||
<p>
|
||
The number of times that the user has invoked code completion at
|
||
the same code location, counting from 1. If no value is provided,
|
||
1 will be assumed.
|
||
</p>
|
||
</field>
|
||
<field name="timeout" experimental="true" optional="true">
|
||
<ref>int</ref>
|
||
<p>
|
||
The approximate time in milliseconds that the server should spend.
|
||
The server will perform some steps anyway, even if it takes longer
|
||
than the specified timeout. This field is intended to be used for
|
||
benchmarking, and usually should not be provided, so that the
|
||
default timeout is used.
|
||
</p>
|
||
</field>
|
||
</params>
|
||
<result>
|
||
<field name="replacementOffset">
|
||
<ref>int</ref>
|
||
<p>
|
||
The offset of the start of the text to be replaced. This will be
|
||
different from 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="suggestions">
|
||
<list>
|
||
<ref>CompletionSuggestion</ref>
|
||
</list>
|
||
<p>
|
||
The completion suggestions being reported. This list is filtered
|
||
by the already existing prefix, and sorted first by relevance,
|
||
and (if the same) by the suggestion text. The list will have at
|
||
most <tt>maxResults</tt> items. If the user types a new keystroke,
|
||
the client is expected to either do local filtering (when the
|
||
returned list was complete), or ask the server again (if
|
||
<tt>isIncomplete</tt> was <tt>true</tt>).
|
||
</p>
|
||
<p>
|
||
This list contains suggestions from both imported, and not yet
|
||
imported libraries. Items from not yet imported libraries will
|
||
have <tt>isNotImported</tt> set to <tt>true</tt>.
|
||
</p>
|
||
</field>
|
||
<field name="isIncomplete">
|
||
<ref>bool</ref>
|
||
<p>
|
||
True if the number of suggestions after filtering was greater than
|
||
the requested <tt>maxResults</tt>.
|
||
</p>
|
||
</field>
|
||
</result>
|
||
</request>
|
||
<request method="setSubscriptions">
|
||
<p>
|
||
Subscribe for completion 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>CompletionService</ref>
|
||
</list>
|
||
<p>A list of the services being subscribed to.</p>
|
||
</field>
|
||
</params>
|
||
</request>
|
||
<request method="registerLibraryPaths" deprecated="true">
|
||
<p>
|
||
The client can make this request to express interest in certain
|
||
libraries to receive completion suggestions from based on the client path.
|
||
If this request is received before the client has used
|
||
'completion.setSubscriptions' to subscribe to the <tt>AVAILABLE_SUGGESTION_SETS</tt>
|
||
service, then an error of type <tt>NOT_SUBSCRIBED_TO_AVAILABLE_SUGGESTION_SETS</tt>
|
||
will be generated. All previous paths are replaced by the given set of paths.
|
||
</p>
|
||
<params>
|
||
<field name="paths">
|
||
<list>
|
||
<ref>LibraryPathSet</ref>
|
||
</list>
|
||
<p>
|
||
A list of objects each containing a path and the additional libraries from which
|
||
the client is interested in receiving completion suggestions.
|
||
If one configured path is beneath another, the descendent
|
||
will override the ancestors' configured libraries of interest.
|
||
</p>
|
||
</field>
|
||
</params>
|
||
</request>
|
||
<request method="getSuggestionDetails">
|
||
<p>
|
||
Clients must make this request when the user has selected a completion
|
||
suggestion from an <tt>AvailableSuggestionSet</tt>. Analysis server will respond with
|
||
the text to insert as well as any <tt>SourceChange</tt> that needs to be applied
|
||
in case the completion requires an additional import to be added. It is an error
|
||
if the id is no longer valid, for instance if the library has been removed after
|
||
the completion suggestion is accepted.
|
||
</p>
|
||
<params>
|
||
<field name="file">
|
||
<ref>FilePath</ref>
|
||
<p>
|
||
The path of the file into which this completion is being inserted.
|
||
</p>
|
||
</field>
|
||
<field name="id">
|
||
<ref>int</ref>
|
||
<p>
|
||
The identifier of the <tt>AvailableSuggestionSet</tt> containing
|
||
the selected label.
|
||
</p>
|
||
</field>
|
||
<field name="label">
|
||
<ref>String</ref>
|
||
<p>
|
||
The label from the <tt>AvailableSuggestionSet</tt> with the `id`
|
||
for which insertion information is requested.
|
||
</p>
|
||
</field>
|
||
<field name="offset">
|
||
<ref>int</ref>
|
||
<p>
|
||
The offset in the file where the completion will be inserted.
|
||
</p>
|
||
</field>
|
||
</params>
|
||
<result>
|
||
<field name="completion">
|
||
<ref>String</ref>
|
||
<p>
|
||
The full text to insert, including any optional import prefix.
|
||
</p>
|
||
</field>
|
||
<field name="change" optional="true">
|
||
<ref>SourceChange</ref>
|
||
<p>
|
||
A change for the client to apply in case the library containing
|
||
the accepted completion suggestion needs to be imported. The field
|
||
will be omitted if there are no additional changes that need to be made.
|
||
</p>
|
||
</field>
|
||
</result>
|
||
</request>
|
||
<request method="getSuggestionDetails2" experimental="true">
|
||
<p>
|
||
Clients must make this request when the user has selected a completion
|
||
suggestion with the <tt>isNotImported</tt> field set to <tt>true</tt>.
|
||
The server will respond with the text to insert, as well as any
|
||
<tt>SourceChange</tt> that needs to be applied in case the completion
|
||
requires an additional import to be added. The text to insert might be
|
||
different from the original suggestion to include an import prefix if the
|
||
library will be imported with a prefix to avoid shadowing
|
||
conflicts in the file.
|
||
</p>
|
||
<params>
|
||
<field name="file">
|
||
<ref>FilePath</ref>
|
||
<p>
|
||
The path of the file into which this completion is being inserted.
|
||
</p>
|
||
</field>
|
||
<field name="offset">
|
||
<ref>int</ref>
|
||
<p>
|
||
The offset in the file where the completion will be inserted.
|
||
</p>
|
||
</field>
|
||
<field name="completion">
|
||
<ref>String</ref>
|
||
<p>
|
||
The <tt>completion</tt> from the selected
|
||
<tt>CompletionSuggestion</tt>. It could be a name of a class, or a
|
||
name of a constructor in form "typeName.constructorName()", or an
|
||
enumeration constant in form "enumName.constantName", etc.
|
||
</p>
|
||
</field>
|
||
<field name="libraryUri">
|
||
<ref>String</ref>
|
||
<p>
|
||
The URI of the library to import, so that the element referenced
|
||
in the <tt>completion</tt> becomes accessible.
|
||
</p>
|
||
</field>
|
||
</params>
|
||
<result>
|
||
<field name="completion">
|
||
<ref>String</ref>
|
||
<p>
|
||
The full text to insert, which possibly includes now an import prefix.
|
||
The client should insert this text, not the <tt>completion</tt> from
|
||
the selected <tt>CompletionSuggestion</tt>.
|
||
</p>
|
||
</field>
|
||
<field name="change">
|
||
<ref>SourceChange</ref>
|
||
<p>
|
||
A change for the client to apply to make the accepted completion
|
||
suggestion available. In most cases the change is to add a new
|
||
import directive to the file.
|
||
</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>
|
||
<field name="libraryFile" optional="true">
|
||
<ref>FilePath</ref>
|
||
<p>
|
||
The library file that contains the file where completion was
|
||
requested. The client might use it for example together with the
|
||
<tt>existingImports</tt> notification to filter out available
|
||
suggestions. If there were changes to existing imports in the library,
|
||
the corresponding <tt>existingImports</tt> notification will be sent
|
||
before the completion notification.
|
||
</p>
|
||
</field>
|
||
<field name="includedSuggestionSets" optional="true">
|
||
<list>
|
||
<ref>IncludedSuggestionSet</ref>
|
||
</list>
|
||
<p>
|
||
References to <tt>AvailableSuggestionSet</tt> objects previously sent
|
||
to the client. The client can include applicable names from the
|
||
referenced library in code completion suggestions.
|
||
</p>
|
||
</field>
|
||
<field name="includedElementKinds" optional="true">
|
||
<list>
|
||
<ref>ElementKind</ref>
|
||
</list>
|
||
<p>
|
||
The client is expected to check this list against the
|
||
<tt>ElementKind</tt> sent in <tt>IncludedSuggestionSet</tt> to decide
|
||
whether or not these symbols should should be presented to the user.
|
||
</p>
|
||
</field>
|
||
<field name="includedSuggestionRelevanceTags" optional="true">
|
||
<list>
|
||
<ref>IncludedSuggestionRelevanceTag</ref>
|
||
</list>
|
||
<p>
|
||
The client is expected to check this list against the values of the
|
||
field <tt>relevanceTags</tt> of <tt>AvailableSuggestion</tt> to
|
||
decide if the suggestion should be given a different relevance than
|
||
the <tt>IncludedSuggestionSet</tt> that contains it. This might be
|
||
used for example to give higher relevance to suggestions of matching
|
||
types.
|
||
</p>
|
||
<p>
|
||
If an <tt>AvailableSuggestion</tt> has relevance tags that match more
|
||
than one <tt>IncludedSuggestionRelevanceTag</tt>, the maximum
|
||
relevance boost is used.
|
||
</p>
|
||
</field>
|
||
</params>
|
||
</notification>
|
||
<notification event="availableSuggestions">
|
||
<p>
|
||
Reports the pre-computed, candidate completions from symbols defined
|
||
in a corresponding library. This notification may be sent multiple times.
|
||
When a notification is processed, clients should replace any previous
|
||
information about the libraries in the list of changedLibraries, discard
|
||
any information about the libraries in the list of removedLibraries, and
|
||
preserve any previously received information about any libraries that are
|
||
not included in either list.
|
||
</p>
|
||
<params>
|
||
<field name="changedLibraries" optional="true">
|
||
<list>
|
||
<ref>AvailableSuggestionSet</ref>
|
||
</list>
|
||
<p>
|
||
A list of pre-computed, potential completions coming from
|
||
this set of completion suggestions.
|
||
</p>
|
||
</field>
|
||
<field name="removedLibraries" optional="true">
|
||
<list>
|
||
<ref>int</ref>
|
||
</list>
|
||
<p>
|
||
A list of library ids that no longer apply.
|
||
</p>
|
||
</field>
|
||
</params>
|
||
</notification>
|
||
<notification event="existingImports">
|
||
<p>
|
||
Reports existing imports in a library. This notification may be sent
|
||
multiple times for a library. When a notification is processed, clients
|
||
should replace any previous information for the library.
|
||
</p>
|
||
<params>
|
||
<field name="file">
|
||
<ref>FilePath</ref>
|
||
<p>
|
||
The defining file of the library.
|
||
</p>
|
||
</field>
|
||
<field name="imports">
|
||
<ref>ExistingImports</ref>
|
||
<p>
|
||
The existing imports in the library.
|
||
</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>
|
||
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">
|
||
<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>
|
||
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">
|
||
<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>
|
||
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">
|
||
<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>
|
||
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="getElementDeclarations" experimental="true">
|
||
<p>
|
||
Return top-level and class member declarations.
|
||
</p>
|
||
<params>
|
||
<field name="file" optional="true">
|
||
<ref>FilePath</ref>
|
||
<p>
|
||
If this field is provided, return only declarations in this file.
|
||
If this field is missing, return declarations in all files.
|
||
</p>
|
||
</field>
|
||
<field name="pattern" optional="true">
|
||
<ref>String</ref>
|
||
<p>
|
||
The regular expression used to match the names of declarations.
|
||
If this field is missing, return all declarations.
|
||
</p>
|
||
</field>
|
||
<field name="maxResults" optional="true">
|
||
<ref>int</ref>
|
||
<p>
|
||
The maximum number of declarations to return.
|
||
If this field is missing, return all matching declarations.
|
||
</p>
|
||
</field>
|
||
</params>
|
||
<result>
|
||
<field name="declarations">
|
||
<list>
|
||
<ref>ElementDeclaration</ref>
|
||
</list>
|
||
<p>
|
||
The list of declarations.
|
||
</p>
|
||
</field>
|
||
<field name="files">
|
||
<list>
|
||
<ref>FilePath</ref>
|
||
</list>
|
||
<p>
|
||
The list of the paths of files with declarations.
|
||
</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>
|
||
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 name="selectionOnly" optional="true">
|
||
<ref>bool</ref>
|
||
<p>
|
||
True if the code to be formatted should be limited to the selected
|
||
text (or the smallest portion of text that encloses the selected
|
||
text that can be formatted).
|
||
</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">
|
||
<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>
|
||
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">
|
||
<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="bulkFixes" experimental="true">
|
||
<p>
|
||
Analyze the specified sources for fixes that can be applied in bulk
|
||
and return a set of suggested edits for those sources.
|
||
These edits may include changes to sources outside the set
|
||
of specified sources if a change in a specified source requires it.
|
||
</p>
|
||
<params>
|
||
<field name="included">
|
||
<list>
|
||
<ref>FilePath</ref>
|
||
</list>
|
||
<p>
|
||
A list of the files and directories for which edits should be
|
||
suggested.
|
||
</p>
|
||
<p>
|
||
If a request is made with a path that is invalid, e.g. is not absolute
|
||
and normalized, an error of type <tt>INVALID_FILE_PATH_FORMAT</tt>
|
||
will be generated. 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>FILE_NOT_ANALYZED</tt> will be generated.
|
||
</p>
|
||
</field>
|
||
<field name="inTestMode" optional="true">
|
||
<ref>bool</ref>
|
||
<p>
|
||
A flag indicating whether the bulk fixes are being run in test mode.
|
||
The only difference is that in test mode the fix processor will look
|
||
for a configuration file that can modify the content of the data file
|
||
used to compute the fixes when data-driven fixes are being considered.
|
||
</p>
|
||
<p>
|
||
If this field is omitted the flag defaults to <tt>false</tt>.
|
||
</p>
|
||
</field>
|
||
</params>
|
||
<result>
|
||
<field name="edits">
|
||
<list>
|
||
<ref>SourceFileEdit</ref>
|
||
</list>
|
||
<p>
|
||
A list of source edits to apply the recommended changes.
|
||
</p>
|
||
</field>
|
||
<field name="details">
|
||
<list>
|
||
<ref>BulkFix</ref>
|
||
</list>
|
||
<p>
|
||
Details that summarize the fixes associated with the recommended
|
||
changes.
|
||
</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>
|
||
<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_FIXES_INVALID_FILE</tt> will be generated.
|
||
</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="getPostfixCompletion">
|
||
<p>
|
||
Get the changes required to convert the postfix template at the given
|
||
location into the template's expanded form.
|
||
</p>
|
||
<params>
|
||
<field name="file">
|
||
<ref>FilePath</ref>
|
||
<p>
|
||
The file containing the postfix template to be expanded.
|
||
</p>
|
||
</field>
|
||
<field name="key">
|
||
<ref>String</ref>
|
||
<p>
|
||
The unique name that identifies the template in use.
|
||
</p>
|
||
</field>
|
||
<field name="offset">
|
||
<ref>int</ref>
|
||
<p>
|
||
The offset used to identify the code to which the template will be
|
||
applied.
|
||
</p>
|
||
</field>
|
||
</params>
|
||
<result>
|
||
<field name="change">
|
||
<ref>SourceChange</ref>
|
||
<p>
|
||
The change to be applied in order to complete the statement.
|
||
</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>
|
||
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="isPostfixCompletionApplicable" experimental="true">
|
||
<p>
|
||
Determine if the request postfix completion template is applicable at
|
||
the given location in the given file.
|
||
</p>
|
||
<params>
|
||
<field name="file">
|
||
<ref>FilePath</ref>
|
||
<p>
|
||
The file containing the postfix template to be expanded.
|
||
</p>
|
||
</field>
|
||
<field name="key">
|
||
<ref>String</ref>
|
||
<p>
|
||
The unique name that identifies the template in use.
|
||
</p>
|
||
</field>
|
||
<field name="offset">
|
||
<ref>int</ref>
|
||
<p>
|
||
The offset used to identify the code to which the template will be
|
||
applied.
|
||
</p>
|
||
</field>
|
||
</params>
|
||
<result>
|
||
<field name="value">
|
||
<ref>bool</ref>
|
||
<p>
|
||
True if the template can be expanded at the given location.
|
||
</p>
|
||
</field>
|
||
</result>
|
||
</request>
|
||
<request method="listPostfixCompletionTemplates" experimental="true">
|
||
<p>
|
||
Return a list of all postfix templates currently available.
|
||
</p>
|
||
<result>
|
||
<field name="templates">
|
||
<list>
|
||
<ref>PostfixTemplateDescriptor</ref>
|
||
</list>
|
||
<p>
|
||
The list of available templates.
|
||
</p>
|
||
</field>
|
||
</result>
|
||
</request>
|
||
<request method="importElements" experimental="true">
|
||
<p>
|
||
Return a list of edits that would need to be applied in order to ensure
|
||
that all of the elements in the specified list of imported elements are
|
||
accessible within the library.
|
||
</p>
|
||
<p>
|
||
If a request is made for a file that does not exist, or that is not
|
||
currently subject to analysis (e.g. because it is not associated with any
|
||
analysis root specified via analysis.setAnalysisRoots), an error of type
|
||
<tt>IMPORT_ELEMENTS_INVALID_FILE</tt> will be generated.
|
||
</p>
|
||
<params>
|
||
<field name="file">
|
||
<ref>FilePath</ref>
|
||
<p>
|
||
The file in which the specified elements are to be made accessible.
|
||
</p>
|
||
</field>
|
||
<field name="elements">
|
||
<list>
|
||
<ref>ImportedElements</ref>
|
||
</list>
|
||
<p>
|
||
The elements to be made accessible in the specified file.
|
||
</p>
|
||
</field>
|
||
<field name="offset" optional="true">
|
||
<ref>int</ref>
|
||
<p>
|
||
The offset at which the specified elements need to be made accessible.
|
||
If provided, this is used to guard against adding imports for text
|
||
that would be inserted into a comment, string literal, or other
|
||
location where the imports would not be necessary.
|
||
</p>
|
||
</field>
|
||
</params>
|
||
<result>
|
||
<field name="edit" optional="true">
|
||
<ref>SourceFileEdit</ref>
|
||
<p>
|
||
The edits to be applied in order to make the specified elements
|
||
accessible. The file to be edited will be the defining compilation
|
||
unit of the library containing the file specified in the request,
|
||
which can be different than the file specified in the request if the
|
||
specified file is a part file. This field will be omitted if there are
|
||
no edits that need to be applied.
|
||
</p>
|
||
</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>
|
||
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">
|
||
<p>
|
||
Organizes all of the directives - removes unused imports and sorts
|
||
directives of the given Dart file according to the
|
||
<a href="https://dart.dev/guides/language/effective-dart/style">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>
|
||
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">
|
||
<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>
|
||
The identifier of the execution context that is to be deleted.
|
||
</p>
|
||
</field>
|
||
</params>
|
||
</request>
|
||
<request method="getSuggestions">
|
||
<p>
|
||
Request completion suggestions for the given runtime context.
|
||
</p>
|
||
<p>
|
||
It might take one or two requests of this type to get completion
|
||
suggestions. The first request should have only "code", "offset",
|
||
and "variables", but not "expressions". If there are sub-expressions that
|
||
can have different runtime types, and are considered to be safe to
|
||
evaluate at runtime (e.g. getters), so using their actual runtime types
|
||
can improve completion results, the server will not include the
|
||
"suggestions" field in the response, and instead will return the
|
||
"expressions" field. The client will use debug API to get current runtime
|
||
types for these sub-expressions and send another request, this time with
|
||
"expressions". If there are no interesting sub-expressions to get
|
||
runtime types for, or when the "expressions" field is provided by the
|
||
client, the server will return "suggestions" in the response.
|
||
</p>
|
||
<params>
|
||
<field name="code">
|
||
<ref>String</ref>
|
||
<p>
|
||
The code to get suggestions in.
|
||
</p>
|
||
</field>
|
||
<field name="offset">
|
||
<ref>int</ref>
|
||
<p>
|
||
The offset within the code to get suggestions at.
|
||
</p>
|
||
</field>
|
||
<field name="contextFile">
|
||
<ref>FilePath</ref>
|
||
<p>
|
||
The path of the context file, e.g. the file of the current debugger
|
||
frame. The combination of the context file and context offset can
|
||
be used to ensure that all variables of the context are available
|
||
for completion (with their static types).
|
||
</p>
|
||
</field>
|
||
<field name="contextOffset">
|
||
<ref>int</ref>
|
||
<p>
|
||
The offset in the context file, e.g. the line offset in the current
|
||
debugger frame.
|
||
</p>
|
||
</field>
|
||
<field name="variables">
|
||
<list>
|
||
<ref>RuntimeCompletionVariable</ref>
|
||
</list>
|
||
<p>
|
||
The runtime context variables that are potentially referenced in the
|
||
code.
|
||
</p>
|
||
</field>
|
||
<field name="expressions" optional="true">
|
||
<list>
|
||
<ref>RuntimeCompletionExpression</ref>
|
||
</list>
|
||
<p>
|
||
The list of sub-expressions in the code for which the client wants
|
||
to provide runtime types. It does not have to be the full list of
|
||
expressions requested by the server, for missing expressions their
|
||
static types will be used.
|
||
</p>
|
||
<p>
|
||
When this field is omitted, the server will return completion
|
||
suggestions only when there are no interesting sub-expressions in the
|
||
given code. The client may provide an empty list, in this case the
|
||
server will return completion suggestions.
|
||
</p>
|
||
</field>
|
||
</params>
|
||
<result>
|
||
<field name="suggestions" optional="true">
|
||
<list>
|
||
<ref>CompletionSuggestion</ref>
|
||
</list>
|
||
<p>
|
||
The completion suggestions. In contrast to usual completion request,
|
||
suggestions for private elements also will be provided.
|
||
</p>
|
||
<p>
|
||
If there are sub-expressions that can have different runtime types,
|
||
and are considered to be safe to evaluate at runtime (e.g. getters),
|
||
so using their actual runtime types can improve completion results,
|
||
the server omits this field in the response, and instead will return
|
||
the "expressions" field.
|
||
</p>
|
||
</field>
|
||
<field name="expressions" optional="true">
|
||
<list>
|
||
<ref>RuntimeCompletionExpression</ref>
|
||
</list>
|
||
<p>
|
||
The list of sub-expressions in the code for which the server would
|
||
like to know runtime types to provide better completion suggestions.
|
||
</p>
|
||
<p>
|
||
This field is omitted the field "suggestions" is returned.
|
||
</p>
|
||
</field>
|
||
</result>
|
||
</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>
|
||
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">
|
||
<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>
|
||
<domain name="analytics" experimental="true">
|
||
<p>
|
||
The analytics domain contains APIs related to reporting analytics.
|
||
</p>
|
||
<p>
|
||
This API allows clients to expose a UI option to enable and disable the
|
||
analysis server's reporting of analytics. This value is shared with other
|
||
tools and can change outside of this API; because of this, clients should
|
||
use the analysis server's flag as the system of record. Clients can choose
|
||
to send in additional analytics (see <tt>sendEvent</tt> and
|
||
<tt>sendTiming</tt>) if they so choose. Dart command-line tools provide a
|
||
disclaimer similar to:
|
||
<tt>
|
||
Dart SDK tools anonymously report feature usage statistics and basic crash
|
||
reports to help improve Dart tools over time. See Google's privacy policy:
|
||
https://www.google.com/intl/en/policies/privacy/.
|
||
</tt>
|
||
</p>
|
||
<p>
|
||
The analysis server will send it's own analytics data (for example,
|
||
operations performed, operating system type, SDK version). No data (from the
|
||
analysis server or from clients) will be sent if analytics is disabled.
|
||
</p>
|
||
<request method="isEnabled">
|
||
<p>Query whether analytics is enabled.</p>
|
||
<p>
|
||
This flag controls whether the analysis server sends any analytics data to
|
||
the cloud. If disabled, the analysis server does not send any analytics
|
||
data, and any data sent to it by clients (from <tt>sendEvent</tt> and
|
||
<tt>sendTiming</tt>) will be ignored.
|
||
</p>
|
||
<p>
|
||
The value of this flag can be changed by other tools outside of the
|
||
analysis server's process. When you query the flag, you get the value of
|
||
the flag at a given moment. Clients should not use the value returned to
|
||
decide whether or not to send the <tt>sendEvent</tt> and
|
||
<tt>sendTiming</tt> requests. Those requests should be used
|
||
unconditionally and server will determine whether or not it is appropriate
|
||
to forward the information to the cloud at the time each request is
|
||
received.
|
||
</p>
|
||
<result>
|
||
<field name="enabled">
|
||
<ref>bool</ref>
|
||
<p>Whether sending analytics is enabled or not.</p>
|
||
</field>
|
||
</result>
|
||
</request>
|
||
<request method="enable">
|
||
<p>
|
||
Enable or disable the sending of analytics data. Note that there are other
|
||
ways for users to change this setting, so clients cannot assume that they
|
||
have complete control over this setting. In particular, there is no
|
||
guarantee that the result returned by the <tt>isEnabled</tt> request will
|
||
match the last value set via this request.
|
||
</p>
|
||
<params>
|
||
<field name="value">
|
||
<ref>bool</ref>
|
||
<p>Enable or disable analytics.</p>
|
||
</field>
|
||
</params>
|
||
</request>
|
||
<request method="sendEvent">
|
||
<p>Send information about client events.</p>
|
||
<p>
|
||
Ask the analysis server to include the fact that an action was performed
|
||
in the client as part of the analytics data being sent. The data will only
|
||
be included if the sending of analytics data is enabled at the time the
|
||
request is processed. The action that was performed is indicated by the
|
||
value of the <tt>action</tt> field.
|
||
</p>
|
||
<p>
|
||
The value of the action field should not include the identity of the
|
||
client. The analytics data sent by server will include the client id
|
||
passed in using the <tt>--client-id</tt> command-line argument. The
|
||
request will be ignored if the client id was not provided when server was
|
||
started.
|
||
</p>
|
||
<params>
|
||
<field name="action">
|
||
<ref>String</ref>
|
||
<p>The value used to indicate which action was performed.</p>
|
||
</field>
|
||
</params>
|
||
</request>
|
||
<request method="sendTiming">
|
||
<p>Send timing information for client events (e.g. code completions).</p>
|
||
<p>
|
||
Ask the analysis server to include the fact that a timed event occurred as
|
||
part of the analytics data being sent. The data will only be included if
|
||
the sending of analytics data is enabled at the time the request is
|
||
processed.
|
||
</p>
|
||
<p>
|
||
The value of the event field should not include the identity of the
|
||
client. The analytics data sent by server will include the client id
|
||
passed in using the <tt>--client-id</tt> command-line argument. The
|
||
request will be ignored if the client id was not provided when server was
|
||
started.
|
||
</p>
|
||
<params>
|
||
<field name="event">
|
||
<ref>String</ref>
|
||
<p>The name of the event.</p>
|
||
</field>
|
||
<field name="millis">
|
||
<ref>int</ref>
|
||
<p>The duration of the event in milliseconds.</p>
|
||
</field>
|
||
</params>
|
||
</request>
|
||
</domain>
|
||
<domain name="kythe" experimental="true">
|
||
<p>
|
||
The kythe domain contains APIs related to generating Dart content in the
|
||
<a href="http://kythe.io/">Kythe</a> format.
|
||
</p>
|
||
<request method="getKytheEntries">
|
||
<p>
|
||
Return the list of <tt>KytheEntry</tt> objects for some file, given the
|
||
current state of the file system populated by "analysis.updateContent".
|
||
</p>
|
||
<p>
|
||
If a request is made for a file that does not exist, or that 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_KYTHE_ENTRIES_INVALID_FILE</tt> will be generated.
|
||
</p>
|
||
<params>
|
||
<field name="file">
|
||
<ref>FilePath</ref>
|
||
<p>
|
||
The file containing the code for which the Kythe Entry objects are
|
||
being requested.
|
||
</p>
|
||
</field>
|
||
</params>
|
||
<result>
|
||
<field name="entries">
|
||
<list>
|
||
<ref>KytheEntry</ref>
|
||
</list>
|
||
<p>
|
||
The list of <tt>KytheEntry</tt> objects for the queried file.
|
||
</p>
|
||
</field>
|
||
<field name="files">
|
||
<list>
|
||
<ref>FilePath</ref>
|
||
</list>
|
||
<p>
|
||
The set of files paths that were required, but not in the file system,
|
||
to give a complete and accurate Kythe graph for the file. This could
|
||
be due to a referenced file that does not exist or generated files not
|
||
being generated or passed before the call to "getKytheEntries".
|
||
</p>
|
||
</field>
|
||
</result>
|
||
</request>
|
||
</domain>
|
||
<domain name="flutter">
|
||
<p>
|
||
The analysis domain contains API’s related to Flutter support.
|
||
</p>
|
||
<request method="getWidgetDescription" experimental="true">
|
||
<p>
|
||
Return the description of the widget instance at the given location.
|
||
</p>
|
||
<p>
|
||
If the location does not have a support widget, an error of type
|
||
<tt>FLUTTER_GET_WIDGET_DESCRIPTION_NO_WIDGET</tt> will be generated.
|
||
</p>
|
||
<p>
|
||
If a change to a file happens while widget descriptions are computed,
|
||
an error of type <tt>FLUTTER_GET_WIDGET_DESCRIPTION_CONTENT_MODIFIED</tt>
|
||
will be generated.
|
||
</p>
|
||
<params>
|
||
<field name="file">
|
||
<ref>FilePath</ref>
|
||
<p>
|
||
The file where the widget instance is created.
|
||
</p>
|
||
</field>
|
||
<field name="offset">
|
||
<ref>int</ref>
|
||
<p>
|
||
The offset in the file where the widget instance is created.
|
||
</p>
|
||
</field>
|
||
</params>
|
||
<result>
|
||
<field name="properties">
|
||
<list>
|
||
<ref>FlutterWidgetProperty</ref>
|
||
</list>
|
||
<p>
|
||
The list of properties of the widget. Some of the properties might be
|
||
read only, when their <tt>editor</tt> is not set. This might be
|
||
because they have type that we don't know how to edit, or for
|
||
compound properties that work as containers for sub-properties.
|
||
</p>
|
||
</field>
|
||
</result>
|
||
</request>
|
||
<request method="setWidgetPropertyValue" experimental="true">
|
||
<p>
|
||
Set the value of a property, or remove it.
|
||
</p>
|
||
<p>
|
||
The server will generate a change that the client should apply to the
|
||
project to get the value of the property set to the new value.
|
||
The complexity of the change might be from updating a single literal
|
||
value in the code, to updating multiple files to get libraries imported,
|
||
and new intermediate widgets instantiated.
|
||
</p>
|
||
<params>
|
||
<field name="id">
|
||
<ref>int</ref>
|
||
<p>
|
||
The identifier of the property, previously returned as a part of
|
||
a <tt>FlutterWidgetProperty</tt>.
|
||
</p>
|
||
<p>
|
||
An error of type <tt>FLUTTER_SET_WIDGET_PROPERTY_VALUE_INVALID_ID</tt>
|
||
is generated if the identifier is not valid.
|
||
</p>
|
||
</field>
|
||
<field name="value" optional="true">
|
||
<ref>FlutterWidgetPropertyValue</ref>
|
||
<p>
|
||
The new value to set for the property.
|
||
</p>
|
||
<p>
|
||
If absent, indicates that the property should be removed. If the
|
||
property corresponds to an optional parameter, the corresponding
|
||
named argument is removed. If the property <tt>isRequired</tt> is
|
||
true, <tt>FLUTTER_SET_WIDGET_PROPERTY_VALUE_IS_REQUIRED</tt> error
|
||
is generated.
|
||
</p>
|
||
<p>
|
||
If the <tt>expression</tt> is not a syntactically valid Dart code,
|
||
then <tt>FLUTTER_SET_WIDGET_PROPERTY_VALUE_INVALID_EXPRESSION</tt>
|
||
is reported.
|
||
</p>
|
||
</field>
|
||
</params>
|
||
<result>
|
||
<field name="change">
|
||
<ref>SourceChange</ref>
|
||
<p>
|
||
The change that should be applied.
|
||
</p>
|
||
</field>
|
||
</result>
|
||
</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>FlutterService</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>
|
||
<notification event="outline">
|
||
<p>
|
||
Reports the Flutter 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 flutter.setSubscriptions
|
||
request.
|
||
</p>
|
||
<params>
|
||
<field name="file">
|
||
<ref>FilePath</ref>
|
||
<p>
|
||
The file with which the outline is associated.
|
||
</p>
|
||
</field>
|
||
<field name="outline">
|
||
<ref>FlutterOutline</ref>
|
||
<p>
|
||
The outline associated with the file.
|
||
</p>
|
||
</field>
|
||
</params>
|
||
</notification>
|
||
</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>
|
||
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">
|
||
<p>
|
||
An enumeration of the services provided by the analysis domain that
|
||
are related to a specific list of files.
|
||
</p>
|
||
<enum>
|
||
<value><code>CLOSING_LABELS</code></value>
|
||
<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="BulkFix">
|
||
<p>
|
||
A description of bulk fixes to a library.
|
||
</p>
|
||
<object>
|
||
<field name="path">
|
||
<ref>FilePath</ref>
|
||
<p>
|
||
The path of the library.
|
||
</p>
|
||
</field>
|
||
<field name="fixes">
|
||
<list>
|
||
<ref>BulkFixDetail</ref>
|
||
</list>
|
||
<p>
|
||
A list of bulk fix details.
|
||
</p>
|
||
</field>
|
||
</object>
|
||
</type>
|
||
<type name="BulkFixDetail">
|
||
<p>
|
||
A description of a fix applied to a library.
|
||
</p>
|
||
<object>
|
||
<field name="code">
|
||
<ref>String</ref>
|
||
<p>
|
||
The code of the diagnostic associated with the fix.
|
||
</p>
|
||
</field>
|
||
<field name="occurrences">
|
||
<ref>int</ref>
|
||
<p>
|
||
The number times the associated diagnostic was fixed in the associated
|
||
source edit.
|
||
</p>
|
||
</field>
|
||
</object>
|
||
</type>
|
||
<type name="ClosingLabel">
|
||
<p>
|
||
A label that is associated with a range of code that may be useful to
|
||
render at the end of the range to aid code readability. For example, a
|
||
constructor call that spans multiple lines may result in a closing label
|
||
to allow the constructor type/name to be rendered alongside the closing
|
||
parenthesis.
|
||
</p>
|
||
<object>
|
||
<field name="offset">
|
||
<ref>int</ref>
|
||
<p>
|
||
The offset of the construct being labelled.
|
||
</p>
|
||
</field>
|
||
<field name="length">
|
||
<ref>int</ref>
|
||
<p>
|
||
The length of the whole construct to be labelled.
|
||
</p>
|
||
</field>
|
||
<field name="label">
|
||
<ref>String</ref>
|
||
<p>
|
||
The label associated with this range that should be displayed to the
|
||
user.
|
||
</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>
|
||
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="ElementDeclaration">
|
||
<p>
|
||
A declaration - top-level (class, field, etc) or a class member (method,
|
||
field, etc).
|
||
</p>
|
||
<object>
|
||
<field name="name">
|
||
<ref>String</ref>
|
||
<p>
|
||
The name of the declaration.
|
||
</p>
|
||
</field>
|
||
<field name="kind">
|
||
<ref>ElementKind</ref>
|
||
<p>
|
||
The kind of the element that corresponds to the declaration.
|
||
</p>
|
||
</field>
|
||
<field name="fileIndex">
|
||
<ref>int</ref>
|
||
<p>
|
||
The index of the file (in the enclosing response).
|
||
</p>
|
||
</field>
|
||
<field name="offset">
|
||
<ref>int</ref>
|
||
<p>
|
||
The offset of the declaration name in the file.
|
||
</p>
|
||
</field>
|
||
<field name="line">
|
||
<ref>int</ref>
|
||
<p>
|
||
The one-based index of the line containing the declaration name.
|
||
</p>
|
||
</field>
|
||
<field name="column">
|
||
<ref>int</ref>
|
||
<p>
|
||
The one-based index of the column containing the declaration name.
|
||
</p>
|
||
</field>
|
||
<field name="codeOffset">
|
||
<ref>int</ref>
|
||
<p>
|
||
The offset of the first character of the declaration code in the file.
|
||
</p>
|
||
</field>
|
||
<field name="codeLength">
|
||
<ref>int</ref>
|
||
<p>
|
||
The length of the declaration code in the file.
|
||
</p>
|
||
</field>
|
||
<field name="className" optional="true">
|
||
<ref>String</ref>
|
||
<p>
|
||
The name of the class enclosing this declaration. If the declaration
|
||
is not a class member, this field will be absent.
|
||
</p>
|
||
</field>
|
||
<field name="mixinName" optional="true">
|
||
<ref>String</ref>
|
||
<p>
|
||
The name of the mixin enclosing this declaration. If the declaration
|
||
is not a mixin member, this field will be absent.
|
||
</p>
|
||
</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 "()".
|
||
|
||
The value should not be treated as exact presentation of parameters,
|
||
it is just approximation of parameters to give the user general idea.
|
||
</p>
|
||
</field>
|
||
</object>
|
||
</type>
|
||
<type name="ExecutableFile">
|
||
<p>
|
||
A description of an executable file.
|
||
</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">
|
||
<ref>String</ref>
|
||
<p>
|
||
The identifier for a execution context.
|
||
</p>
|
||
</type>
|
||
<type name="AvailableSuggestion">
|
||
<p>
|
||
A partial completion suggestion that can be used in combination with
|
||
info from <tt>completion.results</tt> to build completion suggestions
|
||
for not yet imported library tokens.
|
||
</p>
|
||
<object>
|
||
<field name="label">
|
||
<ref>String</ref>
|
||
<p>
|
||
The identifier to present to the user for code completion.
|
||
</p>
|
||
</field>
|
||
<field name="declaringLibraryUri">
|
||
<ref>String</ref>
|
||
<p>
|
||
The URI of the library that declares the element being suggested,
|
||
not the URI of the library associated with the enclosing
|
||
<tt>AvailableSuggestionSet</tt>.
|
||
</p>
|
||
</field>
|
||
<field name="element">
|
||
<ref>Element</ref>
|
||
<p>
|
||
Information about the element reference being suggested.
|
||
</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="parameterNames" optional="true">
|
||
<list>
|
||
<ref>String</ref>
|
||
</list>
|
||
<p>
|
||
If the element is an executable, the names of the formal parameters of
|
||
all kinds - required, optional positional, and optional named. The
|
||
names of positional parameters are empty strings. Omitted if the element
|
||
is not an executable.
|
||
</p>
|
||
</field>
|
||
<field name="parameterTypes" optional="true">
|
||
<list>
|
||
<ref>String</ref>
|
||
</list>
|
||
<p>
|
||
If the element is an executable, the declared types of the formal parameters
|
||
of all kinds - required, optional positional, and optional named.
|
||
Omitted if the element is not an executable.
|
||
</p>
|
||
</field>
|
||
<field name="relevanceTags" optional="true">
|
||
<list>
|
||
<ref>AvailableSuggestionRelevanceTag</ref>
|
||
</list>
|
||
<p>
|
||
This field is set if the relevance of this suggestion might be
|
||
changed depending on where completion is requested.
|
||
</p>
|
||
</field>
|
||
<field name="requiredParameterCount" optional="true">
|
||
<ref>int</ref>
|
||
</field>
|
||
</object>
|
||
</type>
|
||
<type name="AvailableSuggestionRelevanceTag">
|
||
<ref>String</ref>
|
||
<p>
|
||
The opaque tag value.
|
||
</p>
|
||
</type>
|
||
<type name="AvailableSuggestionSet">
|
||
<object>
|
||
<field name="id">
|
||
<ref>int</ref>
|
||
<p>
|
||
The id associated with the library.
|
||
</p>
|
||
</field>
|
||
<field name="uri">
|
||
<ref>String</ref>
|
||
<p>
|
||
The URI of the library.
|
||
</p>
|
||
</field>
|
||
<field name="items">
|
||
<list>
|
||
<ref>AvailableSuggestion</ref>
|
||
</list>
|
||
</field>
|
||
</object>
|
||
</type>
|
||
<type name="ExistingImport">
|
||
<p>
|
||
Information about an existing import, with elements that it provides.
|
||
</p>
|
||
<object>
|
||
<field name="uri">
|
||
<ref>int</ref>
|
||
<p>
|
||
The URI of the imported library.
|
||
It is an index in the <tt>strings</tt> field, in the enclosing
|
||
<tt>ExistingImports</tt> and its <tt>ImportedElementSet</tt> object.
|
||
</p>
|
||
</field>
|
||
<field name="elements">
|
||
<list>
|
||
<ref>int</ref>
|
||
</list>
|
||
<p>
|
||
The list of indexes of elements, in the enclosing
|
||
<tt>ExistingImports</tt> object.
|
||
</p>
|
||
</field>
|
||
</object>
|
||
</type>
|
||
<type name="ExistingImports">
|
||
<p>
|
||
Information about all existing imports in a library.
|
||
</p>
|
||
<object>
|
||
<field name="elements">
|
||
<ref>ImportedElementSet</ref>
|
||
<p>
|
||
The set of all unique imported elements for all imports.
|
||
</p>
|
||
</field>
|
||
<field name="imports">
|
||
<list>
|
||
<ref>ExistingImport</ref>
|
||
</list>
|
||
<p>
|
||
The list of imports in the library.
|
||
</p>
|
||
</field>
|
||
</object>
|
||
</type>
|
||
<type name="ImportedElementSet">
|
||
<p>
|
||
The set of top-level elements encoded as pairs of the defining library
|
||
URI and the name, and stored in the parallel lists <tt>elementUris</tt>
|
||
and <tt>elementNames</tt>.
|
||
</p>
|
||
<object>
|
||
<field name="strings">
|
||
<list>
|
||
<ref>String</ref>
|
||
</list>
|
||
<p>
|
||
The list of unique strings in this object.
|
||
</p>
|
||
</field>
|
||
<field name="uris">
|
||
<list>
|
||
<ref>int</ref>
|
||
</list>
|
||
<p>
|
||
The library URI part of the element.
|
||
It is an index in the <tt>strings</tt> field.
|
||
</p>
|
||
</field>
|
||
<field name="names">
|
||
<list>
|
||
<ref>int</ref>
|
||
</list>
|
||
<p>
|
||
The name part of a the element.
|
||
It is an index in the <tt>strings</tt> field.
|
||
</p>
|
||
</field>
|
||
</object>
|
||
</type>
|
||
<type name="IncludedSuggestionSet">
|
||
<p>
|
||
A reference to an <tt>AvailableSuggestionSet</tt> noting
|
||
that the library's members which match the kind of this ref
|
||
should be presented to the user.
|
||
</p>
|
||
<object>
|
||
<field name="id">
|
||
<ref>int</ref>
|
||
<p>
|
||
Clients should use it to access the set of precomputed completions
|
||
to be displayed to the user.
|
||
</p>
|
||
</field>
|
||
<field name="relevance">
|
||
<ref>int</ref>
|
||
<p>
|
||
The relevance of completion suggestions from this
|
||
library where a higher number indicates a higher relevance.
|
||
</p>
|
||
</field>
|
||
<field name="displayUri" optional="true">
|
||
<ref>String</ref>
|
||
<p>
|
||
The optional string that should be displayed instead of the
|
||
<tt>uri</tt> of the referenced <tt>AvailableSuggestionSet</tt>.
|
||
</p>
|
||
<p>
|
||
For example libraries in the "test" directory of a package have only
|
||
"file://" URIs, so are usually long, and don't look nice, but actual
|
||
import directives will use relative URIs, which are short, so we
|
||
probably want to display such relative URIs to the user.
|
||
</p>
|
||
</field>
|
||
</object>
|
||
</type>
|
||
<type name="IncludedSuggestionRelevanceTag">
|
||
<p>
|
||
Each <tt>AvailableSuggestion</tt> can specify zero or more tags in the
|
||
field <tt>relevanceTags</tt>, so that when the included tag is equal to
|
||
one of the <tt>relevanceTags</tt>, the suggestion is given higher
|
||
relevance than the whole <tt>IncludedSuggestionSet</tt>.
|
||
</p>
|
||
<object>
|
||
<field name="tag">
|
||
<ref>AvailableSuggestionRelevanceTag</ref>
|
||
<p>
|
||
The opaque value of the tag.
|
||
</p>
|
||
</field>
|
||
<field name="relevanceBoost">
|
||
<ref>int</ref>
|
||
<p>
|
||
The boost to the relevance of the completion suggestions that match
|
||
this tag, which is added to the relevance of the containing
|
||
<tt>IncludedSuggestionSet</tt>.
|
||
</p>
|
||
</field>
|
||
</object>
|
||
</type>
|
||
<type name="CompletionService">
|
||
<p>
|
||
An enumeration of the completion services to which a client can subscribe.
|
||
</p>
|
||
<enum>
|
||
<value>
|
||
<code>AVAILABLE_SUGGESTION_SETS</code>
|
||
<p>
|
||
The client will receive <tt>availableSuggestions</tt> notifications
|
||
once subscribed with completion suggestion sets from the libraries of
|
||
interest. The client should keep an up-to-date record of these in
|
||
memory so that it will be able to union these candidates with other
|
||
completion suggestions when applicable at completion time.
|
||
</p>
|
||
<p>
|
||
The client will also receive <tt>existingImports</tt> notifications.
|
||
</p>
|
||
</value>
|
||
</enum>
|
||
</type>
|
||
<type name="LibraryPathSet">
|
||
<p>
|
||
A list of associations between paths and the libraries that should be
|
||
included for code completion when editing a file beneath that path.
|
||
</p>
|
||
<object>
|
||
<field name="scope">
|
||
<ref>FilePath</ref>
|
||
<p>
|
||
The filepath for which this request's libraries should be active
|
||
in completion suggestions. This object associates filesystem regions
|
||
to libraries and library directories of interest to the client.
|
||
</p>
|
||
</field>
|
||
<field name="libraryPaths">
|
||
<list>
|
||
<ref>FilePath</ref>
|
||
</list>
|
||
<p>
|
||
The paths of the libraries of interest to the client for completion suggestions.
|
||
</p>
|
||
</field>
|
||
</object>
|
||
</type>
|
||
<type name="CompletionMode">
|
||
<p>
|
||
An enumeration of the kinds of code completion that users can invoke.
|
||
</p>
|
||
<enum>
|
||
<value>
|
||
<code>BASIC</code>
|
||
<p>
|
||
Basic code completion invocation type, and the default for this
|
||
enumeration.
|
||
</p>
|
||
</value>
|
||
<value>
|
||
<code>SMART</code>
|
||
<p>
|
||
Smart code completion, currently not implemented.
|
||
</p>
|
||
</value>
|
||
</enum>
|
||
</type>
|
||
<type name="RuntimeCompletionExpression">
|
||
<p>
|
||
An expression for which we want to know its runtime type.
|
||
In expressions like 'a.b.c.where((e) => e.^)' we want to know the
|
||
runtime type of 'a.b.c' to enforce it statically at the time when we
|
||
compute completion suggestions, and get better type for 'e'.
|
||
</p>
|
||
<object>
|
||
<field name="offset">
|
||
<ref>int</ref>
|
||
<p>
|
||
The offset of the expression in the code for completion.
|
||
</p>
|
||
</field>
|
||
<field name="length">
|
||
<ref>int</ref>
|
||
<p>
|
||
The length of the expression in the code for completion.
|
||
</p>
|
||
</field>
|
||
<field name="type" optional="true">
|
||
<ref>RuntimeCompletionExpressionType</ref>
|
||
<p>
|
||
When the expression is sent from the server to the client, the
|
||
type is omitted. The client should fill the type when it sends the
|
||
request to the server again.
|
||
</p>
|
||
</field>
|
||
</object>
|
||
</type>
|
||
<type name="RuntimeCompletionVariable">
|
||
<p>
|
||
A variable in a runtime context.
|
||
</p>
|
||
<object>
|
||
<field name="name">
|
||
<ref>String</ref>
|
||
<p>
|
||
The name of the variable.
|
||
The name "this" has a special meaning and is used as an implicit
|
||
target for runtime completion, and in explicit "this" references.
|
||
</p>
|
||
</field>
|
||
<field name="type">
|
||
<ref>RuntimeCompletionExpressionType</ref>
|
||
<p>
|
||
The type of the variable.
|
||
</p>
|
||
</field>
|
||
</object>
|
||
</type>
|
||
<type name="RuntimeCompletionExpressionType">
|
||
<p>
|
||
A type at runtime.
|
||
</p>
|
||
<object>
|
||
<field name="libraryPath" optional="true">
|
||
<ref>FilePath</ref>
|
||
<p>
|
||
The path of the library that has this type.
|
||
Omitted if the type is not declared in any library, e.g. "dynamic",
|
||
or "void".
|
||
</p>
|
||
</field>
|
||
<field name="kind">
|
||
<ref>RuntimeCompletionExpressionTypeKind</ref>
|
||
<p>
|
||
The kind of the type.
|
||
</p>
|
||
</field>
|
||
<field name="name" optional="true">
|
||
<ref>String</ref>
|
||
<p>
|
||
The name of the type. Omitted if the type does not have a name, e.g.
|
||
an inline function type.
|
||
</p>
|
||
</field>
|
||
<field name="typeArguments" optional="true">
|
||
<list>
|
||
<ref>RuntimeCompletionExpressionType</ref>
|
||
</list>
|
||
<p>
|
||
The type arguments of the type.
|
||
Omitted if the type does not have type parameters.
|
||
</p>
|
||
</field>
|
||
<field name="returnType" optional="true">
|
||
<ref>RuntimeCompletionExpressionType</ref>
|
||
<p>
|
||
If the type is a function type, the return type of the function.
|
||
Omitted if the type is not a function type.
|
||
</p>
|
||
</field>
|
||
<field name="parameterTypes" optional="true">
|
||
<list>
|
||
<ref>RuntimeCompletionExpressionType</ref>
|
||
</list>
|
||
<p>
|
||
If the type is a function type, the types of the function parameters
|
||
of all kinds - required, optional positional, and optional named.
|
||
Omitted if the type is not a function type.
|
||
</p>
|
||
</field>
|
||
<field name="parameterNames" optional="true">
|
||
<list>
|
||
<ref>String</ref>
|
||
</list>
|
||
<p>
|
||
If the type is a function type, the names of the function parameters
|
||
of all kinds - required, optional positional, and optional named.
|
||
The names of positional parameters are empty strings.
|
||
Omitted if the type is not a function type.
|
||
</p>
|
||
</field>
|
||
</object>
|
||
</type>
|
||
<type name="RuntimeCompletionExpressionTypeKind">
|
||
<p>
|
||
An enumeration of the kinds of runtime expression types.
|
||
</p>
|
||
<enum>
|
||
<value><code>DYNAMIC</code></value>
|
||
<value><code>FUNCTION</code></value>
|
||
<value><code>INTERFACE</code></value>
|
||
</enum>
|
||
</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="FlutterWidgetProperty">
|
||
<p>
|
||
A property of a Flutter widget.
|
||
</p>
|
||
<object>
|
||
<field name="documentation" optional="true">
|
||
<ref>String</ref>
|
||
<p>
|
||
The documentation of the property to show to the user. Omitted if
|
||
the server does not know the documentation, e.g. because the
|
||
corresponding field is not documented.
|
||
</p>
|
||
</field>
|
||
<field name="expression" optional="true">
|
||
<ref>String</ref>
|
||
<p>
|
||
If the value of this property is set, the Dart code of the expression
|
||
of this property.
|
||
</p>
|
||
</field>
|
||
<field name="id">
|
||
<ref>int</ref>
|
||
<p>
|
||
The unique identifier of the property, must be passed back to the
|
||
server when updating the property value. Identifiers become invalid
|
||
on any source code change.
|
||
</p>
|
||
</field>
|
||
<field name="isRequired">
|
||
<ref>bool</ref>
|
||
<p>
|
||
True if the property is required, e.g. because it corresponds to
|
||
a required parameter of a constructor.
|
||
</p>
|
||
</field>
|
||
<field name="isSafeToUpdate">
|
||
<ref>bool</ref>
|
||
<p>
|
||
If the property expression is a concrete value (e.g. a literal, or
|
||
an enum constant), then it is safe to replace the expression with
|
||
another concrete value. In this case this field is true. Otherwise,
|
||
for example when the expression is a reference to a field, so that
|
||
its value is provided from outside, this field is false.
|
||
</p>
|
||
</field>
|
||
<field name="name">
|
||
<ref>String</ref>
|
||
<p>The name of the property to display to the user.</p>
|
||
</field>
|
||
<field name="children" optional="true">
|
||
<list>
|
||
<ref>FlutterWidgetProperty</ref>
|
||
</list>
|
||
<p>
|
||
The list of children properties, if any. For example any property of
|
||
type <tt>EdgeInsets</tt> will have four children properties of type
|
||
<tt>double</tt> - left / top / right / bottom.
|
||
</p>
|
||
</field>
|
||
<field name="editor" optional="true">
|
||
<ref>FlutterWidgetPropertyEditor</ref>
|
||
<p>
|
||
The editor that should be used by the client. This field is omitted
|
||
if the server does not know the editor for this property, for example
|
||
because it does not have one of the supported types.
|
||
</p>
|
||
</field>
|
||
<field name="value" optional="true">
|
||
<ref>FlutterWidgetPropertyValue</ref>
|
||
<p>
|
||
If the expression is set, and the server knows the value of the
|
||
expression, this field is set.
|
||
</p>
|
||
</field>
|
||
</object>
|
||
</type>
|
||
<type name="FlutterWidgetPropertyEditor">
|
||
<p>
|
||
An editor for a property of a Flutter widget.
|
||
</p>
|
||
<object>
|
||
<field name="kind">
|
||
<ref>FlutterWidgetPropertyEditorKind</ref>
|
||
</field>
|
||
<field name="enumItems" optional="true">
|
||
<list>
|
||
<ref>FlutterWidgetPropertyValueEnumItem</ref>
|
||
</list>
|
||
</field>
|
||
</object>
|
||
</type>
|
||
<type name="FlutterWidgetPropertyEditorKind">
|
||
<p>
|
||
An enumeration of the kinds of property editors.
|
||
</p>
|
||
<enum>
|
||
<value>
|
||
<code>BOOL</code>
|
||
<p>
|
||
The editor for a property of type <tt>bool</tt>.
|
||
</p>
|
||
</value>
|
||
<value>
|
||
<code>DOUBLE</code>
|
||
<p>
|
||
The editor for a property of the type <tt>double</tt>.
|
||
</p>
|
||
</value>
|
||
<value>
|
||
<code>ENUM</code>
|
||
<p>
|
||
The editor for choosing an item of an enumeration, see the
|
||
<tt>enumItems</tt> field of <tt>FlutterWidgetPropertyEditor</tt>.
|
||
</p>
|
||
</value>
|
||
<value>
|
||
<code>ENUM_LIKE</code>
|
||
<p>
|
||
The editor for either choosing a pre-defined item from a list of
|
||
provided static field references (like <tt>ENUM</tt>), or specifying
|
||
a free-form expression.
|
||
</p>
|
||
</value>
|
||
<value>
|
||
<code>INT</code>
|
||
<p>
|
||
The editor for a property of type <tt>int</tt>.
|
||
</p>
|
||
</value>
|
||
<value>
|
||
<code>STRING</code>
|
||
<p>
|
||
The editor for a property of the type <tt>String</tt>.
|
||
</p>
|
||
</value>
|
||
</enum>
|
||
</type>
|
||
<type name="FlutterWidgetPropertyValue">
|
||
<p>
|
||
A value of a property of a Flutter widget.
|
||
</p>
|
||
<object>
|
||
<field name="boolValue" optional="true">
|
||
<ref>bool</ref>
|
||
</field>
|
||
<field name="doubleValue" optional="true">
|
||
<ref>double</ref>
|
||
</field>
|
||
<field name="intValue" optional="true">
|
||
<ref>int</ref>
|
||
</field>
|
||
<field name="stringValue" optional="true">
|
||
<ref>String</ref>
|
||
</field>
|
||
<field name="enumValue" optional="true">
|
||
<ref>FlutterWidgetPropertyValueEnumItem</ref>
|
||
</field>
|
||
<field name="expression" optional="true">
|
||
<ref>String</ref>
|
||
<p>
|
||
A free-form expression, which will be used as the value as is.
|
||
</p>
|
||
</field>
|
||
</object>
|
||
</type>
|
||
<type name="FlutterWidgetPropertyValueEnumItem">
|
||
<p>
|
||
An item of an enumeration in a general sense - actual <tt>enum</tt>
|
||
value, or a static field in a class.
|
||
</p>
|
||
<object>
|
||
<field name="libraryUri">
|
||
<ref>String</ref>
|
||
<p>
|
||
The URI of the library containing the <tt>className</tt>. When the
|
||
enum item is passed back, this will allow the server to import the
|
||
corresponding library if necessary.
|
||
</p>
|
||
</field>
|
||
<field name="className">
|
||
<ref>String</ref>
|
||
<p>
|
||
The name of the class or enum.
|
||
</p>
|
||
</field>
|
||
<field name="name">
|
||
<ref>String</ref>
|
||
<p>
|
||
The name of the field in the enumeration, or the static field in the
|
||
class.
|
||
</p>
|
||
</field>
|
||
<field name="documentation" optional="true">
|
||
<ref>String</ref>
|
||
<p>
|
||
The documentation to show to the user. Omitted if the server does not
|
||
know the documentation, e.g. because the corresponding field is not
|
||
documented.
|
||
</p>
|
||
</field>
|
||
</object>
|
||
</type>
|
||
<type name="FlutterService">
|
||
<p>
|
||
An enumeration of the services provided by the flutter domain that
|
||
are related to a specific list of files.
|
||
</p>
|
||
<enum>
|
||
<value><code>OUTLINE</code></value>
|
||
</enum>
|
||
</type>
|
||
<type name="FlutterOutline">
|
||
<p>
|
||
An node in the Flutter specific outline structure of a file.
|
||
</p>
|
||
<object>
|
||
<field name="kind">
|
||
<ref>FlutterOutlineKind</ref>
|
||
<p>The kind of the 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 is 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="codeOffset">
|
||
<ref>int</ref>
|
||
<p>
|
||
The offset of the first character of the element code, which is
|
||
neither documentation, nor annotation.
|
||
</p>
|
||
</field>
|
||
<field name="codeLength">
|
||
<ref>int</ref>
|
||
<p>
|
||
The length of the element code.
|
||
</p>
|
||
</field>
|
||
<field name="label" optional="true">
|
||
<ref>String</ref>
|
||
<p>
|
||
The text label of the node children of the node.
|
||
It is provided for any FlutterOutlineKind.GENERIC node,
|
||
where better information is not available.
|
||
</p>
|
||
</field>
|
||
<field name="dartElement" optional="true">
|
||
<ref>Element</ref>
|
||
<p>
|
||
If this node is a Dart element, the description of it; omitted
|
||
otherwise.
|
||
</p>
|
||
</field>
|
||
<field name="attributes" optional="true">
|
||
<list>
|
||
<ref>FlutterOutlineAttribute</ref>
|
||
</list>
|
||
<p>
|
||
Additional attributes for this node, which might be interesting
|
||
to display on the client. These attributes are usually arguments
|
||
for the instance creation or the invocation that created the widget.
|
||
</p>
|
||
</field>
|
||
<field name="className" optional="true">
|
||
<ref>String</ref>
|
||
<p>
|
||
If the node creates a new class instance, or a reference to an
|
||
instance, this field has the name of the class.
|
||
</p>
|
||
</field>
|
||
<field name="parentAssociationLabel" optional="true">
|
||
<ref>String</ref>
|
||
<p>
|
||
A short text description how this node is associated with the parent
|
||
node. For example "appBar" or "body" in Scaffold.
|
||
</p>
|
||
</field>
|
||
<field name="variableName" optional="true">
|
||
<ref>String</ref>
|
||
<p>
|
||
If FlutterOutlineKind.VARIABLE, the name of the variable.
|
||
</p>
|
||
</field>
|
||
<field name="children" optional="true">
|
||
<list>
|
||
<ref>FlutterOutline</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="FlutterOutlineAttribute">
|
||
<p>
|
||
An attribute for a FlutterOutline.
|
||
</p>
|
||
<object>
|
||
<field name="name">
|
||
<ref>String</ref>
|
||
<p>
|
||
The name of the attribute.
|
||
</p>
|
||
</field>
|
||
<field name="label">
|
||
<ref>String</ref>
|
||
<p>
|
||
The label of the attribute value, usually the Dart code.
|
||
It might be quite long, the client should abbreviate as needed.
|
||
</p>
|
||
</field>
|
||
<field name="literalValueBoolean" optional="true">
|
||
<ref>bool</ref>
|
||
<p>
|
||
The boolean literal value of the attribute.
|
||
This field is absent if the value is not a boolean literal.
|
||
</p>
|
||
</field>
|
||
<field name="literalValueInteger" optional="true">
|
||
<ref>int</ref>
|
||
<p>
|
||
The integer literal value of the attribute.
|
||
This field is absent if the value is not an integer literal.
|
||
</p>
|
||
</field>
|
||
<field name="literalValueString" optional="true">
|
||
<ref>String</ref>
|
||
<p>
|
||
The string literal value of the attribute.
|
||
This field is absent if the value is not a string literal.
|
||
</p>
|
||
</field>
|
||
<field name="nameLocation" optional="true">
|
||
<ref>Location</ref>
|
||
<p>
|
||
If the attribute is a named argument, the location of the name,
|
||
without the colon.
|
||
</p>
|
||
</field>
|
||
<field name="valueLocation" optional="true">
|
||
<ref>Location</ref>
|
||
<p>
|
||
The location of the value.
|
||
</p>
|
||
<p>
|
||
This field is always available, but marked optional for backward
|
||
compatibility between new clients with older servers.
|
||
</p>
|
||
</field>
|
||
</object>
|
||
</type>
|
||
<type name="FlutterOutlineKind">
|
||
<p>
|
||
An enumeration of the kinds of FlutterOutline elements. The list of kinds
|
||
might be expanded with time, clients must be able to handle new kinds
|
||
in some general way.
|
||
</p>
|
||
<enum>
|
||
<value>
|
||
<code>DART_ELEMENT</code>
|
||
<p>A dart element declaration.</p>
|
||
</value>
|
||
<value>
|
||
<code>GENERIC</code>
|
||
<p>A generic Flutter element, without additional information.</p>
|
||
</value>
|
||
<value>
|
||
<code>NEW_INSTANCE</code>
|
||
<p>A new instance creation.</p>
|
||
</value>
|
||
<value>
|
||
<code>INVOCATION</code>
|
||
<p>An invocation of a method, a top-level function, a function
|
||
expression, etc.</p>
|
||
</value>
|
||
<value>
|
||
<code>VARIABLE</code>
|
||
<p>A reference to a local variable, or a field.</p>
|
||
</value>
|
||
<value>
|
||
<code>PLACEHOLDER</code>
|
||
<p>The parent node has a required Widget. The node works as a
|
||
placeholder child to drop a new Widget to.</p>
|
||
</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>
|
||
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 URI of the containing library, examples here include
|
||
"dart:core", "package:.." and file uris represented by the
|
||
path on disk, "/..". The data is omitted 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">
|
||
<p>
|
||
A description of a class that is implemented or extended.
|
||
</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">
|
||
<p>
|
||
A description of a class member that is implemented or overridden.
|
||
</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="ImportedElements">
|
||
<p>
|
||
A description of the elements that are referenced in a region of a file
|
||
that come from a single imported library.
|
||
</p>
|
||
<object>
|
||
<field name="path">
|
||
<ref>FilePath</ref>
|
||
<p>
|
||
The absolute and normalized path of the file containing the library.
|
||
</p>
|
||
</field>
|
||
<field name="prefix">
|
||
<ref>String</ref>
|
||
<p>
|
||
The prefix that was used when importing the library into the original
|
||
source.
|
||
</p>
|
||
</field>
|
||
<field name="elements">
|
||
<list>
|
||
<ref>String</ref>
|
||
</list>
|
||
<p>
|
||
The names of the elements imported from the library.
|
||
</p>
|
||
</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>
|
||
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="PostfixTemplateDescriptor">
|
||
<p>
|
||
The description of a postfix completion template.
|
||
</p>
|
||
<object>
|
||
<field name="name">
|
||
<ref>String</ref>
|
||
<p>
|
||
The template name, shown in the UI.
|
||
</p>
|
||
</field>
|
||
<field name="key">
|
||
<ref>String</ref>
|
||
<p>
|
||
The unique template key, not shown in the UI.
|
||
</p>
|
||
</field>
|
||
<field name="example">
|
||
<ref>String</ref>
|
||
<p>
|
||
A short example of the transformation performed when the template is
|
||
applied.
|
||
</p>
|
||
</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>
|
||
True if the server is currently running pub to produce a list of
|
||
package directories.
|
||
</p>
|
||
</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 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">
|
||
<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 "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>FLUTTER_GET_WIDGET_DESCRIPTION_CONTENT_MODIFIED</code>
|
||
<p>
|
||
A file was change while widget descriptions were being computed.
|
||
</p>
|
||
</value>
|
||
<value>
|
||
<code>FLUTTER_GET_WIDGET_DESCRIPTION_NO_WIDGET</code>
|
||
<p>
|
||
The given location does not have a supported widget.
|
||
</p>
|
||
</value>
|
||
<value>
|
||
<code>FLUTTER_SET_WIDGET_PROPERTY_VALUE_INVALID_EXPRESSION</code>
|
||
<p>
|
||
The given property expression is invalid, e.g. has a syntax error.
|
||
</p>
|
||
</value>
|
||
<value>
|
||
<code>FLUTTER_SET_WIDGET_PROPERTY_VALUE_INVALID_ID</code>
|
||
<p>
|
||
The given property identifier is not valid. It might have never been
|
||
valid, or a change to code invalidated it, or its TTL was exceeded.
|
||
</p>
|
||
</value>
|
||
<value>
|
||
<code>FLUTTER_SET_WIDGET_PROPERTY_VALUE_IS_REQUIRED</code>
|
||
<p>
|
||
The value of the property cannot be removed, for example because
|
||
the corresponding constructor argument is required, and the server
|
||
does not know what default value to use.
|
||
</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_FIXES_INVALID_FILE</code>
|
||
<p>
|
||
An "edit.getFixes" request specified a FilePath
|
||
which does not match a file currently subject to
|
||
analysis.
|
||
</p>
|
||
</value>
|
||
<value>
|
||
<code>GET_IMPORTED_ELEMENTS_INVALID_FILE</code>
|
||
<p>
|
||
An "analysis.getImportedElements" request specified a FilePath that
|
||
does not match a file currently subject to analysis.
|
||
</p>
|
||
</value>
|
||
<value>
|
||
<code>GET_KYTHE_ENTRIES_INVALID_FILE</code>
|
||
<p>
|
||
An "analysis.getKytheEntries" request specified a FilePath that does
|
||
not match a file that is 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>GET_SIGNATURE_INVALID_FILE</code>
|
||
<p>
|
||
An "analysis.getSignature" request specified a FilePath
|
||
which does not match a file currently subject to
|
||
analysis.
|
||
</p>
|
||
</value>
|
||
<value>
|
||
<code>GET_SIGNATURE_INVALID_OFFSET</code>
|
||
<p>
|
||
An "analysis.getSignature" request specified an offset
|
||
which is not a valid location within for the contents of
|
||
the file specified FilePath.
|
||
</p>
|
||
</value>
|
||
<value>
|
||
<code>GET_SIGNATURE_UNKNOWN_FUNCTION</code>
|
||
<p>
|
||
An "analysis.getSignature" request specified an offset
|
||
that could not be matched to a function call.
|
||
</p>
|
||
</value>
|
||
<value>
|
||
<code>IMPORT_ELEMENTS_INVALID_FILE</code>
|
||
<p>
|
||
An "edit.importElements" request specified a FilePath that 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>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>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
|
||
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>
|
||
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.
|
||
</p>
|
||
<enum>
|
||
<value><code>LOG</code></value>
|
||
<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>
|
||
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>
|
||
<type name="ServerLogEntry" experimental="true">
|
||
<p>
|
||
A log entry from the server.
|
||
</p>
|
||
<object>
|
||
<field name="time">
|
||
<ref>int</ref>
|
||
<p>
|
||
The time (milliseconds since epoch) at which the server created
|
||
this log entry.
|
||
</p>
|
||
</field>
|
||
<field name="kind" >
|
||
<ref>ServerLogEntryKind</ref>
|
||
<p>
|
||
The kind of the entry, used to determine how to interpret the "data"
|
||
field.
|
||
</p>
|
||
</field>
|
||
<field name="data">
|
||
<ref>String</ref>
|
||
<p>
|
||
The payload of the entry, the actual format is determined by the
|
||
"kind" field.
|
||
</p>
|
||
</field>
|
||
</object>
|
||
</type>
|
||
<type name="ServerLogEntryKind" experimental="true">
|
||
<p>
|
||
An enumeration of the kinds of server long entries.
|
||
</p>
|
||
<enum>
|
||
<value>
|
||
<code>NOTIFICATION</code>
|
||
<p>
|
||
A notification from the server, such as "analysis.highlights".
|
||
The "data" field contains a JSON object with abbreviated notification.
|
||
</p>
|
||
</value>
|
||
<value>
|
||
<code>RAW</code>
|
||
<p>
|
||
Arbitrary string, describing some event that happened in the server,
|
||
e.g. starting a file analysis, and details which files were accessed.
|
||
These entries are not structured, but provide context information
|
||
about requests and notification, and can be related by "time" for
|
||
further manual analysis.
|
||
</p>
|
||
</value>
|
||
<value>
|
||
<code>REQUEST</code>
|
||
<p>
|
||
A request from the client, as the server views it, e.g.
|
||
"edit.getAssists". The "data" field contains a JSON object with
|
||
abbreviated request.
|
||
</p>
|
||
</value>
|
||
<value>
|
||
<code>RESPONSE</code>
|
||
<p>
|
||
Various counters and measurements related to execution of a request.
|
||
The "data" field contains a JSON object with following fields:
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
"id" - the id of the request - copied from the request.
|
||
</li>
|
||
<li>
|
||
"method" - the method of the request, e.g. "edit.getAssists".
|
||
</li>
|
||
<li>
|
||
"clientRequestTime" - the time (milliseconds since epoch) at which
|
||
the client made the request - copied from the request.
|
||
</li>
|
||
<li>
|
||
"serverRequestTime" - the time (milliseconds since epoch) at which
|
||
the server received and decoded the JSON request.
|
||
</li>
|
||
<li>
|
||
"responseTime" - the time (milliseconds since epoch) at which the
|
||
server created the response to be encoded into JSON and sent to the
|
||
client.
|
||
</li>
|
||
</ul>
|
||
</value>
|
||
</enum>
|
||
</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>
|
||
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">
|
||
<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>
|
||
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="EXTRACT_WIDGET">
|
||
<p>
|
||
Create a new class that extends StatelessWidget, whose build() method is
|
||
the widget creation expression, or a method returning a Flutter widget,
|
||
at the specified offset.
|
||
</p>
|
||
<feedback>
|
||
</feedback>
|
||
<options>
|
||
<field name="name">
|
||
<ref>String</ref>
|
||
<p>
|
||
The name that the widget class should be given.
|
||
</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 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">
|
||
<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>
|
||
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.
|
||
</p>
|
||
<p>
|
||
The refactoring must be activated before an actual file moving
|
||
operation is performed.
|
||
</p>
|
||
<p>
|
||
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>
|
||
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>
|
||
<feedback>
|
||
<field name="offset">
|
||
<ref>int</ref>
|
||
<p>
|
||
The offset to the beginning of the name selected to be
|
||
renamed, or -1 if the name does not exist yet.
|
||
</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>
|