| <!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.40.0</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 the 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 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> |
| The server can also communicate to the clients by sending a request. As with |
| requests sent from the client, requests from the server have both an 'id' and |
| a 'method' field, and an optional 'params' field. The ids used by the server |
| are independent of the ids used by the client. In other words, the ids sent by |
| the server might be equal to ids already sent from the client, but are |
| unrelated to the client request with that same id. |
| </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.40.0</h4> |
| <ul> |
| <li>Added an optional <tt>version</tt> field to <tt>AddContentOverlay</tt> and <tt>ChangeContentOverlay</tt> to allow clients/servers to have a way to identify specific versions of documents.</li> |
| </ul> |
| <h4>1.39.0</h4> |
| <ul> |
| <li>Added a new <tt>lspCapabilities</tt> field to the <tt>setClientCapabilities</tt> parameters to allow clients to provide their LSP capabilities. These capabilities can indicate that a client can support <tt>lsp.handle</tt> requests in the server-to-client direction.</li> |
| </ul> |
| <h4>1.38.0</h4> |
| <ul> |
| <li>Deprecated the <tt>analytics.enable</tt> request.</li> |
| <li>Deprecated the <tt>analytics.isEnabled</tt> request.</li> |
| </ul> |
| <h4>1.37.0</h4> |
| <ul> |
| <li><tt>SourceEdit</tt> now has an optional human-readable <tt>description</tt> that |
| may contain a description of a change.</li> |
| </ul> |
| <h4>1.36.0</h4> |
| <ul> |
| <li> |
| Added a new <tt>supportsUris</tt> client capability to indicate that <tt>FilePath</tt>s should be URIs instead of file paths. |
| </li> |
| <li> |
| Added an experimental "lsp.handle" request to allow sending LSP requests through the protocol. |
| </li> |
| <li> |
| Added an experimental "lsp.notification" notification to allow receiving LSP notifications. |
| </li> |
| </ul> |
| <h4>1.35.0</h4> |
| <ul> |
| <li> |
| Removed the requests <tt>completion.getSuggestions</tt>, |
| <tt>completion.setSubscriptions</tt>, and |
| <tt>completion.getSuggestionDetails</tt>. These requests are no longer |
| supported and the server will return an error if they are invoked. The |
| associated object structures and notifications have also been removed. |
| </li> |
| </ul> |
| <h4>1.34.0</h4> |
| <ul> |
| <li> |
| Added the ability for the server to send requests to the client when the |
| client uses <tt>setClientCapabilities</tt> to enable the requests. Also |
| added the <tt>openUrlRequest</tt> and <tt>showMessageRequest</tt> requests. |
| </li> |
| </ul> |
| <h4>1.33.1</h4> |
| <ul> |
| <li><tt>SourceChange</tt> now has an optional <tt>selectionLength</tt> that may be |
| provided when <tt>selection</tt> is.</li> |
| </ul> |
| <h4>1.33.0</h4> |
| <ul> |
| <li>Requests <tt>getSuggestions2</tt> and <tt>getSuggestionDetails2</tt> |
| are enabled.</li> |
| </ul> |
| <h4>1.32.10</h4> |
| <ul> |
| <li>The <tt>MOVE_FILE</tt> refactor now supports moving/renaming folders.</li> |
| </ul> |
| <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> |
| <request method="setClientCapabilities"> |
| <p> |
| Record the capabilities supported by the client. The default values, |
| documented below, will be assumed until this request is received. |
| </p> |
| <params> |
| <field name="requests"> |
| <list> |
| <ref>String</ref> |
| </list> |
| <p> |
| The names of the requests that the server can safely send to the |
| client. Only requests whose name is in the list will be sent. |
| </p> |
| <p> |
| A request should only be included in the list if the client will |
| unconditionally honor the request. |
| </p> |
| <p> |
| The default, used before this request is received, is an empty list. |
| </p> |
| <p> |
| The following is a list of the names of the requests that can be |
| specified: |
| </p> |
| <ul> |
| <li> |
| <tt>openUrlRequest</tt> |
| </li> |
| <li> |
| <tt>showMessageRequest</tt> |
| </li> |
| </ul> |
| </field> |
| <field name="supportsUris" optional="true"> |
| <ref>bool</ref> |
| <p> |
| True if the client supports the server sending URIs in place of file paths. |
| </p> |
| <p> |
| In this mode, the server will use URIs in all protocol fields with the type <tt>FilePath</tt>. Returned URIs may be `file://` URIs or custom schemes. The client can fetch the file contents for URIs with custom schemes (and receive modification events) through the LSP protocol (see the "lsp" domain). |
| </p> |
| <p> |
| LSP notifications are automatically enabled when the client sets this capability. |
| </p> |
| </field> |
| <field name="lspCapabilities" optional="true"> |
| <ref>object</ref> |
| <p> |
| LSP capabilities of the client as defined by the Language Server Protocol specification. |
| </p> |
| <p> |
| If custom LSP capabilities are to be used, the setClientCapabilities request should be called before any LSP requests are made to the server. |
| </p> |
| <p> |
| If LSP capabilities are not provided or no setClientCapabilities request is made, a very basic set of capabilities will be assumed. |
| </p> |
| </field> |
| </params> |
| </request> |
| <request method="openUrlRequest"> |
| <p><b>Note:</b> This is a request from the server to the client.</p> |
| <p> |
| Request that a URL be opened. |
| </p> |
| <p> |
| The client is expected to open the URL, either within the client's UI or |
| in the default browser. |
| </p> |
| <p> |
| The request will only be sent from the server to the client if the client |
| has indicated that it supports this request by using the |
| <tt>setClientCapabilities</tt> request. |
| </p> |
| <params> |
| <field name="url"> |
| <ref>String</ref> |
| <p> |
| The URL to be opened. |
| </p> |
| </field> |
| </params> |
| </request> |
| <request method="showMessageRequest"> |
| <p><b>Note:</b> This is a request from the server to the client.</p> |
| <p> |
| Request that a message be displayed to the user. |
| </p> |
| <p> |
| The client is expected to display the message to the user with one or more |
| buttons with the specified labels, and to return a response consisting of |
| the label of the button that was clicked. |
| </p> |
| <p> |
| The request will only be sent from the server to the client if the client |
| has indicated that it supports this request by using the |
| <tt>setClientCapabilities</tt> request. |
| </p> |
| <p> |
| This request is modeled after the |
| <a href="https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#window_showMessageRequest"> |
| same request from the LSP specification</a>. |
| </p> |
| <params> |
| <field name="type"> |
| <ref>MessageType</ref> |
| <p> |
| The type of the message. |
| </p> |
| </field> |
| <field name="message"> |
| <ref>String</ref> |
| <p> |
| The message to be displayed. |
| </p> |
| </field> |
| <field name="actions"> |
| <list> |
| <ref>MessageAction</ref> |
| </list> |
| <p> |
| The labels of the buttons by which the user can dismiss the message. |
| </p> |
| </field> |
| </params> |
| <result> |
| <field name="action" optional="true"> |
| <ref>String</ref> |
| <p> |
| The label of the action that was selected by the user. May be |
| omitted or `null` if the user dismissed the message without |
| clicking an action button. |
| </p> |
| </field> |
| </result> |
| </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="pluginError"> |
| <p> |
| Reports that an unexpected error has occurred while |
| setting up an analyzer plugin, or during a plugin's |
| execution. |
| </p> |
| <p> |
| It is not possible to subscribe to or unsubscribe from this |
| notification. |
| </p> |
| <params> |
| <field name="message"> |
| <ref>String</ref> |
| <p> |
| The error message indicating what kind of error was |
| encountered. |
| </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 associated 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 the server in the filesystem, there is no error; |
| once the server sees the root in the filesystem it will start |
| analyzing it. Similarly, the 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 the 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 |
| ".dart_tool/package_config.json" 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 the 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 |
| which 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 members 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="getSuggestions2"> |
| <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="completionCaseMatchingMode" optional="true"> |
| <ref>CompletionCaseMatchingMode</ref> |
| <p> |
| The mode of code completion being invoked. If no value is provided, |
| <tt>MATCH_FIRST_CHAR</tt> will be assumed. |
| </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="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 descendant |
| will override the ancestors' configured libraries of interest. |
| </p> |
| </field> |
| </params> |
| </request> |
| <request method="getSuggestionDetails2"> |
| <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 the form "typeName.constructorName()", or an |
| enumeration constant in the 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="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. This value is ignored if a |
| <tt>formatter.page_width</tt> has been configured in the relevant |
| <tt>analysis_options.yaml</tt> file. |
| </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="formatIfEnabled" experimental="true"> |
| <p> |
| Format the contents of the files in one or more directories, but only if |
| the analysis options file for those files has enabled the 'format' option. |
| </p> |
| <p> |
| If any of the specified directories does not exist, that directory will be |
| ignored. If any of the files that are eligible for being formatted cannot |
| be formatted because of a syntax error in the file, that file will be |
| ignored. |
| </p> |
| <params> |
| <field name="directories"> |
| <list> |
| <ref>FilePath</ref> |
| </list> |
| <p> |
| The paths of the directories containing the code to be formatted. |
| </p> |
| </field> |
| </params> |
| <result> |
| <field name="edits"> |
| <list> |
| <ref>SourceFileEdit</ref> |
| </list> |
| <p> |
| The edit(s) to be applied in order to format the code. The list will |
| be empty if none of the files were formatted, whether because they |
| were not eligible to be formatted or because they were already |
| formatted. |
| </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> |
| <field name="updatePubspec" optional="true"> |
| <ref>bool</ref> |
| <p> |
| A flag indicating whether to validate that the dependencies used by the included files are |
| listed in the pubspec file. If specified, the fix processor will compute the set of |
| packages imported in the source and check to see if they are listed in the corresponding |
| pubspec file, and compute the fixes, if any. |
| </p> |
| <p> |
| If this field is omitted the flag defaults to <tt>false</tt>. |
| </p> |
| </field> |
| <field name="codes" optional="true"> |
| <list> |
| <ref>String</ref> |
| </list> |
| <p> |
| A list of diagnostic codes to be fixed. |
| </p> |
| </field> |
| </params> |
| <result> |
| <field name="message"> |
| <p> |
| An optional message explaining unapplied fixes. |
| </p> |
| <ref>String</ref> |
| </field> |
| <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 affect |
| 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 affect |
| 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 requests, |
| 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" deprecated="true"> |
| <p><b>Deprecated:</b> this flag is no longer supported.</p> |
| <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" deprecated="true"> |
| <p><b>Deprecated:</b> this option is no longer supported.</p> |
| <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="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> |
| <domain name="lsp" experimental="true"> |
| <p> |
| The LSP domain contains API's for interacting with LSP handlers. |
| </p> |
| <request method="handle" experimental="true"> |
| <p> |
| Call an LSP handler. Message can be requests or notifications. |
| </p> |
| <p> |
| This request can be called in either direction, either by the client to the server, or by the server to the client. The server will only call the client if the client has indicated it supports the associated LSP request via <tt>lspCapabilities</tt> in the <tt>setClientCapabilities</tt> request. |
| </p> |
| <params> |
| <field name="lspMessage"> |
| <p> |
| The LSP RequestMessage. |
| </p> |
| <ref>object</ref> |
| </field> |
| </params> |
| <result> |
| <field name="lspResponse"> |
| <p> |
| The LSP ResponseMessage returned by the handler. |
| </p> |
| <ref>object</ref> |
| </field> |
| </result> |
| </request> |
| <notification event="notification"> |
| <p> |
| Reports an LSP notification from the server. |
| </p> |
| <params> |
| <field name="lspNotification"> |
| <p> |
| The LSP NotificationMessage sent by the server. |
| </p> |
| <ref>object</ref> |
| </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="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="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="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="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="CompletionCaseMatchingMode"> |
| <p> |
| An enumeration of the character case matching modes that the user may set in the client. |
| </p> |
| <enum> |
| <value> |
| <code>FIRST_CHAR</code> |
| <p> |
| Match the first character case only when filtering completions, the default for this |
| enumeration. |
| </p> |
| </value> |
| <value> |
| <code>ALL_CHARS</code> |
| <p> |
| Match all character cases when filtering completion lists. |
| </p> |
| </value> |
| <value> |
| <code>NONE</code> |
| <p> |
| Do not match character cases when filtering completion lists. |
| </p> |
| </value> |
| </enum> |
| </type> |
| <type name="MessageAction"> |
| <p> |
| An action associated with a message that the server is requesting the |
| client to display to the user. |
| </p> |
| <object> |
| <field name="label"> |
| <ref>String</ref> |
| <p> |
| The label of the button to be displayed, and the value to be returned |
| to the server if the button is clicked. |
| </p> |
| </field> |
| </object> |
| </type> |
| <type name="MessageType"> |
| <p> |
| The type of a message that the server is requesting the client to display |
| to the user. The type can be used by the client to control the way in |
| which the message is displayed. |
| </p> |
| <enum> |
| <value> |
| <code>ERROR</code> |
| <p> |
| The message is an error message. |
| </p> |
| </value> |
| <value> |
| <code>WARNING</code> |
| <p> |
| The message is a warning message. |
| </p> |
| </value> |
| <value> |
| <code>INFO</code> |
| <p> |
| The message is an informational message. |
| </p> |
| </value> |
| <value> |
| <code>LOG</code> |
| <p> |
| The message is a log message. |
| </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_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 into 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 or folder and update all of the references to |
| and from it. The move operation is supported in general case - |
| for renaming an item in the same folder, moving it to a different |
| folder or both. |
| |
| Moving or renaming large folders may take time and clients should |
| consider showing an indicator to the user with the ability to |
| cancel the request (which can be done using |
| <tt>server.cancelRequest</tt>). |
| </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> |