| <!DOCTYPE html><html><head> |
| <meta charset="UTF-8"> |
| <title>Analysis Server API Specification</title> |
| <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@300;400;700&family=Roboto:ital,wght@0,300;0,400;0,700;1,400&display=swap" type="text/css"><style>body { |
| font-family: 'Roboto', sans-serif; |
| max-width: 800px; |
| margin: 0 auto; |
| padding: 0 16px; |
| font-size: 16px; |
| line-height: 1.5; |
| color: #111; |
| background-color: #fdfdfd; |
| font-weight: 300; |
| -webkit-font-smoothing: auto; |
| } |
| |
| h2, h3, h4, h5 { |
| margin-bottom: 0; |
| } |
| |
| h2.domain { |
| border-bottom: 1px solid rgb(200, 200, 200); |
| margin-bottom: 0.5em; |
| } |
| |
| h4 { |
| font-size: 18px; |
| } |
| |
| h5 { |
| font-size: 16px; |
| } |
| |
| p { |
| margin-top: 0; |
| } |
| |
| pre { |
| margin: 0; |
| font-family: 'Roboto Mono', monospace; |
| font-size: 15px; |
| } |
| |
| div.box { |
| background-color: rgb(240, 245, 240); |
| border-radius: 4px; |
| padding: 4px 12px; |
| margin: 16px 0; |
| } |
| |
| div.hangingIndent { |
| padding-left: 3em; |
| text-indent: -3em; |
| } |
| |
| dl dt { |
| font-weight: bold; |
| } |
| |
| dl dd { |
| margin-left: 16px; |
| } |
| |
| dt { |
| margin-top: 1em; |
| } |
| |
| dt.notification { |
| font-weight: bold; |
| } |
| |
| dt.refactoring { |
| font-weight: bold; |
| } |
| |
| dt.request { |
| font-weight: bold; |
| } |
| |
| dt.typeDefinition { |
| font-weight: bold; |
| } |
| |
| a { |
| text-decoration: none; |
| } |
| |
| a:focus, a:hover { |
| text-decoration: underline; |
| } |
| |
| .deprecated { |
| text-decoration: line-through; |
| } |
| |
| /* Styles for index */ |
| |
| .subindex ul { |
| padding-left: 0; |
| margin-left: 0; |
| |
| -webkit-margin-before: 0; |
| -webkit-margin-start: 0; |
| -webkit-padding-start: 0; |
| |
| list-style-type: none; |
| } |
| </style></head> |
| <body> |
| <h1>Analysis Server API Specification</h1> |
| <h1 style="color:#999999">Version |
| 1.32.7 |
| </h1> |
| <p> |
| This document contains a specification of the API provided by the |
| analysis server. The API in this document is currently under |
| development. Changes to the API will be accompanied by an update to the |
| protocol version number according to the principles of semantic |
| versioning (<a href="https://semver.org/">semver.org</a>). |
| </p> |
| <h2>Overview</h2> |
| <p> |
| The analysis server API is a bi-directional client-server |
| API. The API is independent of the transport mechanism used, but |
| is heavily influenced by a model in which sockets or character |
| streams are used to transport JSON-RPC encoded information. |
| </p> |
| <h3>Transport Mechanism</h3> |
| <p> |
| The characters passed to the server are expected to be encoded |
| using UTF-8. |
| </p> |
| <p> |
| When character streams are used as the transport, messages are |
| delineated by newlines. This means, in particular, that the JSON |
| encoding process must not introduce newlines within a |
| message. Note however that newlines are used in this document |
| for readability. |
| </p> |
| <p> |
| It is the client's responsibility to read output from the server to |
| avoid its blocking. |
| </p> |
| <p> |
| To ease interoperability with Lisp-based clients (which may not |
| be able to easily distinguish between empty lists, empty maps, |
| and null), client-to-server communication is allowed to replace |
| any instance of "<tt>{}</tt>" or "<tt>[]</tt>" with null. The |
| server will always properly represent empty lists as |
| "<tt>[]</tt>" and empty maps as "<tt>{}</tt>". |
| </p> |
| <h3>Communication Structure</h3> |
| <p> |
| Clients can make a request of the server and the server will |
| provide a response for each request that it receives. While many |
| of the requests that can be made by a client are informational |
| in nature, we have chosen to always return a response so that |
| clients can know whether the request was received and was |
| correct. |
| </p> |
| <p> |
| There is no guarantee concerning the order in which responses |
| will be returned, but there is a guarantee that the server will |
| process requests in the order in which they are sent as long as |
| the transport mechanism also makes this guarantee. Responses can |
| be returned in an order that is different from the order in |
| which the requests were received because some requests take |
| longer to process than others. |
| </p> |
| <p> |
| Every request is required to have two fields and may have two |
| additional optional fields. The first required field is the ‘id’ |
| field, which is only used by the server to associate a response |
| with the request that generated the response. The second |
| required field is the ‘method’ field, which is used to determine |
| what the server is being requested to do. One optional field is |
| the ‘params’ field, whose structure is dependent on the method |
| being requested. The structure of this field is described with |
| each request for which it is required. The other optional field |
| is the 'clientRequestTime' field, which is a number indicating |
| the time at which the client made the request (milliseconds |
| since epoch). Providing clientRequestTime helps us track |
| how responsive analysis server is to client requests |
| and better address any issues that occur. |
| </p> |
| <p> |
| Every response has up to three fields. The first field is the |
| ‘id’ field, which is always present and whose value is the |
| identifier that was passed to the request that generated the |
| response. The second field is the ‘error’ field, which is only |
| present if an error was encountered while processing the |
| request. The third field is the ‘result’ field, whose structure |
| is dependent on the method being responded to, and is described |
| with each request that will produce it. |
| </p> |
| <p> |
| The server can also communicate to the clients by sending a |
| notification. The purpose of these notifications is to provide |
| information to clients as it becomes available rather than to |
| require that clients poll for it. Unless explicitly stated, all |
| notifications are designed to return the complete information |
| available at the time the notification is sent; clients are not |
| required to update previously communicated |
| results. Consequently, the server can and should return partial |
| results before all results are available. For example, the |
| syntactic errors for a file can be returned as soon as the |
| syntactic analysis is complete, and both syntactic and semantic |
| errors can be returned together at a later time. |
| </p> |
| <p> |
| Each notification has two fields. The first field is the ‘event’ |
| field, which identifies the kind of notification. The second |
| field is the ‘params’ field, whose structure is dependent on the |
| kind of notification being sent. The structure of this field is |
| described with each notification. |
| </p> |
| <p> |
| In order to be backward compatible, clients should ignore fields that were |
| not specified in the version of the API on which they were based. Clients |
| should also use the server.getVersion request to test that the version of |
| the server supports an API before using it. |
| </p> |
| <h3>Eventual Consistency</h3> |
| <p> |
| The analysis server satisfies requests under the principle of |
| <a href="https://en.wikipedia.org/wiki/Eventual_consistency">eventual |
| consistency</a>. |
| That is, in some cases it may return responses with the currently available |
| results while it's catching up with unprocessed changes. |
| </p> |
| <h3>Enumerations</h3> |
| <p> |
| Responses from the server may include enumerations indicating the kind of a |
| specific item. The enums may be extended with new values in future versions of |
| the server so clients should ensure unknown values are handled gracefully, either |
| ignoring the item or treating it with some default/fallback handling. |
| </p> |
| <h3>Changelog</h3> |
| <h4>1.32.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> |
| |
| <p><a href="#domain_server">Server</a></p><ul><li><a href="#request_server.getVersion">server.getVersion</a></li> |
| <li><a href="#request_server.shutdown">server.shutdown</a></li> |
| <li><a href="#request_server.setSubscriptions">server.setSubscriptions</a></li> |
| </ul> |
| |
| <p><a href="#domain_analysis">Analysis</a></p><ul><li><a href="#request_analysis.getErrors">analysis.getErrors</a></li> |
| <li><a href="#request_analysis.getHover">analysis.getHover</a></li> |
| <li><a href="#request_analysis.getLibraryDependencies">analysis.getLibraryDependencies</a></li> |
| <li><a href="#request_analysis.getNavigation">analysis.getNavigation</a></li> |
| <li><a class="deprecated" href="#request_analysis.getReachableSources">analysis.getReachableSources</a></li> |
| <li><a href="#request_analysis.reanalyze">analysis.reanalyze</a></li> |
| <li><a href="#request_analysis.setAnalysisRoots">analysis.setAnalysisRoots</a></li> |
| <li><a href="#request_analysis.setGeneralSubscriptions">analysis.setGeneralSubscriptions</a></li> |
| <li><a href="#request_analysis.setPriorityFiles">analysis.setPriorityFiles</a></li> |
| <li><a href="#request_analysis.setSubscriptions">analysis.setSubscriptions</a></li> |
| <li><a href="#request_analysis.updateContent">analysis.updateContent</a></li> |
| <li><a class="deprecated" href="#request_analysis.updateOptions">analysis.updateOptions</a></li> |
| </ul> |
| |
| <p><a href="#domain_completion">Completion</a></p><ul><li><a href="#request_completion.getSuggestions">completion.getSuggestions</a></li> |
| <li><a href="#request_completion.setSubscriptions">completion.setSubscriptions</a></li> |
| <li><a class="deprecated" href="#request_completion.registerLibraryPaths">completion.registerLibraryPaths</a></li> |
| <li><a href="#request_completion.getSuggestionDetails">completion.getSuggestionDetails</a></li> |
| </ul> |
| |
| <p><a href="#domain_search">Search</a></p><ul><li><a href="#request_search.findElementReferences">search.findElementReferences</a></li> |
| <li><a href="#request_search.findMemberDeclarations">search.findMemberDeclarations</a></li> |
| <li><a href="#request_search.findMemberReferences">search.findMemberReferences</a></li> |
| <li><a href="#request_search.findTopLevelDeclarations">search.findTopLevelDeclarations</a></li> |
| <li><a href="#request_search.getTypeHierarchy">search.getTypeHierarchy</a></li> |
| </ul> |
| |
| <p><a href="#domain_edit">Edit</a></p><ul><li><a href="#request_edit.format">edit.format</a></li> |
| <li><a href="#request_edit.getAssists">edit.getAssists</a></li> |
| <li><a href="#request_edit.getAvailableRefactorings">edit.getAvailableRefactorings</a></li> |
| <li><a href="#request_edit.getFixes">edit.getFixes</a></li> |
| <li><a href="#request_edit.getPostfixCompletion">edit.getPostfixCompletion</a></li> |
| <li><a href="#request_edit.getRefactoring">edit.getRefactoring</a></li> |
| <li><a href="#request_edit.sortMembers">edit.sortMembers</a></li> |
| <li><a href="#request_edit.organizeDirectives">edit.organizeDirectives</a></li> |
| </ul> |
| |
| <p><a href="#domain_execution">Execution</a></p><ul><li><a href="#request_execution.createContext">execution.createContext</a></li> |
| <li><a href="#request_execution.deleteContext">execution.deleteContext</a></li> |
| <li><a href="#request_execution.getSuggestions">execution.getSuggestions</a></li> |
| <li><a href="#request_execution.mapUri">execution.mapUri</a></li> |
| <li><a class="deprecated" href="#request_execution.setSubscriptions">execution.setSubscriptions</a></li> |
| </ul> |
| |
| <p><a href="#domain_diagnostic">Diagnostic</a></p><ul><li><a href="#request_diagnostic.getDiagnostics">diagnostic.getDiagnostics</a></li> |
| <li><a href="#request_diagnostic.getServerPort">diagnostic.getServerPort</a></li> |
| </ul> |
| |
| <p><a href="#domain_flutter">Flutter</a></p><ul><li><a href="#request_flutter.setSubscriptions">flutter.setSubscriptions</a></li> |
| </ul> |
| |
| <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> |
| <h1>Domains</h1> |
| <h2 class="domain"><a name="domain_server">server domain</a></h2> |
| <p> |
| The server domain contains API’s related to the execution of |
| the server. |
| </p> |
| |
| |
| |
| |
| |
| |
| |
| <h3>Requests</h3><dl><dt class="request"><a name="request_server.getVersion">server.getVersion</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "server.getVersion" |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| "result": { |
| "<b>version</b>": String |
| } |
| }</pre></div> |
| <p>Return the version number of the analysis server.</p> |
| |
| <h4>returns:</h4><dl><dt class="field"><b>version: String</b></dt><dd> |
| |
| <p>The version number of the analysis server.</p> |
| </dd></dl></dd><dt class="request"><a name="request_server.shutdown">server.shutdown</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "server.shutdown" |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| }</pre></div> |
| <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> |
| </dd><dt class="request"><a name="request_server.setSubscriptions">server.setSubscriptions</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "server.setSubscriptions" |
| "params": { |
| "<b>subscriptions</b>": List<<a href="#type_ServerService">ServerService</a>> |
| } |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| }</pre></div> |
| <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> |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>subscriptions: List<<a href="#type_ServerService">ServerService</a>></b></dt><dd> |
| |
| <p>A list of the services being subscribed to.</p> |
| </dd></dl></dd></dl><h3>Notifications</h3><dl><dt class="notification"><a name="notification_server.connected">server.connected</a></dt><dd><div class="box"><pre>notification: { |
| "event": "server.connected" |
| "params": { |
| "<b>version</b>": String |
| "<b>pid</b>": int |
| } |
| }</pre></div> |
| <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> |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>version: String</b></dt><dd> |
| |
| <p>The version number of the analysis server.</p> |
| </dd><dt class="field"><b>pid: int</b></dt><dd> |
| |
| <p>The process id of the analysis server process.</p> |
| </dd></dl></dd><dt class="notification"><a name="notification_server.error">server.error</a></dt><dd><div class="box"><pre>notification: { |
| "event": "server.error" |
| "params": { |
| "<b>isFatal</b>": bool |
| "<b>message</b>": String |
| "<b>stackTrace</b>": String |
| } |
| }</pre></div> |
| <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> |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>isFatal: bool</b></dt><dd> |
| |
| <p> |
| True if the error is a fatal error, meaning that the |
| server will shutdown automatically after sending this |
| notification. |
| </p> |
| </dd><dt class="field"><b>message: String</b></dt><dd> |
| |
| <p> |
| The error message indicating what kind of error was |
| encountered. |
| </p> |
| </dd><dt class="field"><b>stackTrace: String</b></dt><dd> |
| |
| <p> |
| The stack trace associated with the generation of the |
| error, used for debugging the server. |
| </p> |
| </dd></dl></dd><dt class="notification"><a name="notification_server.status">server.status</a></dt><dd><div class="box"><pre>notification: { |
| "event": "server.status" |
| "params": { |
| "<b>analysis</b>": <span style="color:#999999">optional</span> <a href="#type_AnalysisStatus">AnalysisStatus</a> |
| "<b>pub</b>": <span style="color:#999999">optional</span> <a href="#type_PubStatus">PubStatus</a> |
| } |
| }</pre></div> |
| <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> |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>analysis: <a href="#type_AnalysisStatus">AnalysisStatus</a><span style="color:#999999"> (optional)</span></b></dt><dd> |
| |
| <p> |
| The current status of analysis, including whether |
| analysis is being performed and if so what is being |
| analyzed. |
| </p> |
| </dd><dt class="field"><b><span class="deprecated">pub</span>: <a href="#type_PubStatus">PubStatus</a><span style="color:#999999"> (optional)</span></b></dt><dd> |
| |
| <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> |
| </dd></dl></dd></dl> |
| <h2 class="domain"><a name="domain_analysis">analysis domain</a></h2> |
| <p> |
| The analysis domain contains API’s related to the analysis of |
| files. |
| </p> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <h3>Requests</h3><dl><dt class="request"><a name="request_analysis.getErrors">analysis.getErrors</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "analysis.getErrors" |
| "params": { |
| "<b>file</b>": <a href="#type_FilePath">FilePath</a> |
| } |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| "result": { |
| "<b>errors</b>": List<<a href="#type_AnalysisError">AnalysisError</a>> |
| } |
| }</pre></div> |
| <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> |
| |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>file: <a href="#type_FilePath">FilePath</a></b></dt><dd> |
| |
| <p> |
| The file for which errors are being requested. |
| </p> |
| </dd></dl><h4>returns:</h4><dl><dt class="field"><b>errors: List<<a href="#type_AnalysisError">AnalysisError</a>></b></dt><dd> |
| |
| <p> |
| The errors associated with the file. |
| </p> |
| </dd></dl></dd><dt class="request"><a name="request_analysis.getHover">analysis.getHover</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "analysis.getHover" |
| "params": { |
| "<b>file</b>": <a href="#type_FilePath">FilePath</a> |
| "<b>offset</b>": int |
| } |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| "result": { |
| "<b>hovers</b>": List<<a href="#type_HoverInformation">HoverInformation</a>> |
| } |
| }</pre></div> |
| <p> |
| Return the hover information associate with the given |
| location. If some or all of the hover information is not |
| available at the time this request is processed the |
| information will be omitted from the response. |
| </p> |
| |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>file: <a href="#type_FilePath">FilePath</a></b></dt><dd> |
| |
| <p> |
| The file in which hover information is being requested. |
| </p> |
| </dd><dt class="field"><b>offset: int</b></dt><dd> |
| |
| <p> |
| The offset for which hover information is being requested. |
| </p> |
| </dd></dl><h4>returns:</h4><dl><dt class="field"><b>hovers: List<<a href="#type_HoverInformation">HoverInformation</a>></b></dt><dd> |
| |
| <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> |
| </dd></dl></dd><dt class="request"><a name="request_analysis.getLibraryDependencies">analysis.getLibraryDependencies</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "analysis.getLibraryDependencies" |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| "result": { |
| "<b>libraries</b>": List<<a href="#type_FilePath">FilePath</a>> |
| "<b>packageMap</b>": Map<String, Map<String, List<<a href="#type_FilePath">FilePath</a>>>> |
| } |
| }</pre></div> |
| <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> |
| |
| <h4>returns:</h4><dl><dt class="field"><b>libraries: List<<a href="#type_FilePath">FilePath</a>></b></dt><dd> |
| |
| <p> |
| A list of the paths of library elements referenced by |
| files in existing analysis roots. |
| </p> |
| </dd><dt class="field"><b>packageMap: Map<String, Map<String, List<<a href="#type_FilePath">FilePath</a>>>></b></dt><dd> |
| |
| <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> |
| </dd></dl></dd><dt class="request"><a name="request_analysis.getNavigation">analysis.getNavigation</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "analysis.getNavigation" |
| "params": { |
| "<b>file</b>": <a href="#type_FilePath">FilePath</a> |
| "<b>offset</b>": int |
| "<b>length</b>": int |
| } |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| "result": { |
| "<b>files</b>": List<<a href="#type_FilePath">FilePath</a>> |
| "<b>targets</b>": List<<a href="#type_NavigationTarget">NavigationTarget</a>> |
| "<b>regions</b>": List<<a href="#type_NavigationRegion">NavigationRegion</a>> |
| } |
| }</pre></div> |
| <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> |
| |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>file: <a href="#type_FilePath">FilePath</a></b></dt><dd> |
| |
| <p> |
| The file in which navigation information is being requested. |
| </p> |
| </dd><dt class="field"><b>offset: int</b></dt><dd> |
| |
| <p> |
| The offset of the region for which navigation information is being |
| requested. |
| </p> |
| </dd><dt class="field"><b>length: int</b></dt><dd> |
| |
| <p> |
| The length of the region for which navigation information is being |
| requested. |
| </p> |
| </dd></dl><h4>returns:</h4><dl><dt class="field"><b>files: List<<a href="#type_FilePath">FilePath</a>></b></dt><dd> |
| |
| <p> |
| A list of the paths of files that are referenced by the navigation |
| targets. |
| </p> |
| </dd><dt class="field"><b>targets: List<<a href="#type_NavigationTarget">NavigationTarget</a>></b></dt><dd> |
| |
| <p> |
| A list of the navigation targets that are referenced by the |
| navigation regions. |
| </p> |
| </dd><dt class="field"><b>regions: List<<a href="#type_NavigationRegion">NavigationRegion</a>></b></dt><dd> |
| |
| <p> |
| A list of the navigation regions within the requested region of |
| the file. |
| </p> |
| </dd></dl></dd><dt class="request deprecated"><a name="request_analysis.getReachableSources">analysis.getReachableSources</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "analysis.getReachableSources" |
| "params": { |
| "<b>file</b>": <a href="#type_FilePath">FilePath</a> |
| } |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| "result": { |
| "<b>sources</b>": Map<String, List<String>> |
| } |
| }</pre></div> |
| <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> |
| |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>file: <a href="#type_FilePath">FilePath</a></b></dt><dd> |
| |
| <p> |
| The file for which reachable source information is being requested. |
| </p> |
| </dd></dl><h4>returns:</h4><dl><dt class="field"><b>sources: Map<String, List<String>></b></dt><dd> |
| |
| <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> |
| </dd></dl></dd><dt class="request"><a name="request_analysis.reanalyze">analysis.reanalyze</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "analysis.reanalyze" |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| }</pre></div> |
| <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> |
| </dd><dt class="request"><a name="request_analysis.setAnalysisRoots">analysis.setAnalysisRoots</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "analysis.setAnalysisRoots" |
| "params": { |
| "<b>included</b>": List<<a href="#type_FilePath">FilePath</a>> |
| "<b>excluded</b>": List<<a href="#type_FilePath">FilePath</a>> |
| "<b>packageRoots</b>": <span style="color:#999999">optional</span> Map<<a href="#type_FilePath">FilePath</a>, <a href="#type_FilePath">FilePath</a>> |
| } |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| }</pre></div> |
| <p> |
| Sets the root paths used to determine which files to analyze. The set |
| of files to be analyzed are all of the files in one of the root paths |
| that are not either explicitly or implicitly excluded. A file is |
| explicitly excluded if it is in one of the excluded paths. A file is |
| implicitly excluded if it is in a subdirectory of one of the root |
| paths where the name of the subdirectory starts with a period (that |
| is, a hidden directory). |
| </p> |
| <p> |
| Note that this request determines the set of requested |
| analysis roots. The actual set of analysis roots at any |
| given time is the intersection of this set with the set of |
| files and directories actually present on the |
| filesystem. When the filesystem changes, the actual set of |
| analysis roots is automatically updated, but the set of |
| requested analysis roots is unchanged. This means that if |
| the client sets an analysis root before the root becomes |
| visible to server in the filesystem, there is no error; once |
| the server sees the root in the filesystem it will start |
| analyzing it. Similarly, server will stop analyzing files |
| that are removed from the file system but they will remain |
| in the set of requested roots. |
| </p> |
| <p> |
| If an included path represents a file, then server will look |
| in the directory containing the file for a pubspec.yaml |
| file. If none is found, then the parents of the directory |
| will be searched until such a file is found or the root of |
| the file system is reached. If such a file is found, it will |
| be used to resolve package: URI’s within the file. |
| </p> |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>included: List<<a href="#type_FilePath">FilePath</a>></b></dt><dd> |
| |
| <p> |
| A list of the files and directories that should be |
| analyzed. |
| </p> |
| </dd><dt class="field"><b>excluded: List<<a href="#type_FilePath">FilePath</a>></b></dt><dd> |
| |
| <p> |
| A list of the files and directories within the |
| included directories that should not be analyzed. |
| </p> |
| </dd><dt class="field"><b>packageRoots: Map<<a href="#type_FilePath">FilePath</a>, <a href="#type_FilePath">FilePath</a>><span style="color:#999999"> (optional)</span></b></dt><dd> |
| |
| <p> |
| A mapping from source directories to package roots |
| that should override the normal package: URI resolution |
| mechanism. |
| </p> |
| <p> |
| If a package root is a file, then the analyzer |
| will behave as though that file is a ".packages" file in the |
| source directory. The effect is the same as specifying the file |
| as a "--packages" parameter to the Dart VM when |
| executing any Dart file inside the source directory. |
| </p> |
| <p> |
| Files in any directories that are not overridden by this |
| mapping have their package: URI's resolved using the |
| normal pubspec.yaml mechanism. If this field is absent, |
| or the empty map is specified, that indicates that the |
| normal pubspec.yaml mechanism should always be used. |
| </p> |
| </dd></dl></dd><dt class="request"><a name="request_analysis.setGeneralSubscriptions">analysis.setGeneralSubscriptions</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "analysis.setGeneralSubscriptions" |
| "params": { |
| "<b>subscriptions</b>": List<<a href="#type_GeneralAnalysisService">GeneralAnalysisService</a>> |
| } |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| }</pre></div> |
| <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> |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>subscriptions: List<<a href="#type_GeneralAnalysisService">GeneralAnalysisService</a>></b></dt><dd> |
| |
| <p>A list of the services being subscribed to.</p> |
| </dd></dl></dd><dt class="request"><a name="request_analysis.setPriorityFiles">analysis.setPriorityFiles</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "analysis.setPriorityFiles" |
| "params": { |
| "<b>files</b>": List<<a href="#type_FilePath">FilePath</a>> |
| } |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| }</pre></div> |
| <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> |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>files: List<<a href="#type_FilePath">FilePath</a>></b></dt><dd> |
| |
| <p> |
| The files that are to be a priority for analysis. |
| </p> |
| </dd></dl></dd><dt class="request"><a name="request_analysis.setSubscriptions">analysis.setSubscriptions</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "analysis.setSubscriptions" |
| "params": { |
| "<b>subscriptions</b>": Map<<a href="#type_AnalysisService">AnalysisService</a>, List<<a href="#type_FilePath">FilePath</a>>> |
| } |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| }</pre></div> |
| <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> |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>subscriptions: Map<<a href="#type_AnalysisService">AnalysisService</a>, List<<a href="#type_FilePath">FilePath</a>>></b></dt><dd> |
| |
| <p> |
| A table mapping services to a list of the files being |
| subscribed to the service. |
| </p> |
| </dd></dl></dd><dt class="request"><a name="request_analysis.updateContent">analysis.updateContent</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "analysis.updateContent" |
| "params": { |
| "<b>files</b>": Map<<a href="#type_FilePath">FilePath</a>, <a href="#type_AddContentOverlay">AddContentOverlay</a> | <a href="#type_ChangeContentOverlay">ChangeContentOverlay</a> | <a href="#type_RemoveContentOverlay">RemoveContentOverlay</a>> |
| } |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| "result": { |
| } |
| }</pre></div> |
| <p> |
| Update the content of one or more files. Files that were |
| previously updated but not included in this update remain |
| unchanged. This effectively represents an overlay of the |
| filesystem. The files whose content is overridden are |
| therefore seen by server as being files with the given |
| content, even if the files do not exist on the filesystem or |
| if the file path represents the path to a directory on the |
| filesystem. |
| </p> |
| |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>files: Map<<a href="#type_FilePath">FilePath</a>, <a href="#type_AddContentOverlay">AddContentOverlay</a> | <a href="#type_ChangeContentOverlay">ChangeContentOverlay</a> | <a href="#type_RemoveContentOverlay">RemoveContentOverlay</a>></b></dt><dd> |
| |
| <p> |
| A table mapping the files whose content has changed to a |
| description of the content change. |
| </p> |
| </dd></dl><h4>returns:</h4><dl></dl></dd><dt class="request deprecated"><a name="request_analysis.updateOptions">analysis.updateOptions</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "analysis.updateOptions" |
| "params": { |
| "<b>options</b>": <a href="#type_AnalysisOptions">AnalysisOptions</a> |
| } |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| }</pre></div> |
| <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> |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>options: <a href="#type_AnalysisOptions">AnalysisOptions</a></b></dt><dd> |
| |
| <p> |
| The options that are to be used to control analysis. |
| </p> |
| </dd></dl></dd></dl><h3>Notifications</h3><dl><dt class="notification"><a name="notification_analysis.analyzedFiles">analysis.analyzedFiles</a></dt><dd><div class="box"><pre>notification: { |
| "event": "analysis.analyzedFiles" |
| "params": { |
| "<b>directories</b>": List<<a href="#type_FilePath">FilePath</a>> |
| } |
| }</pre></div> |
| <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> |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>directories: List<<a href="#type_FilePath">FilePath</a>></b></dt><dd> |
| |
| <p> |
| A list of the paths of the files that are being analyzed. |
| </p> |
| </dd></dl></dd><dt class="notification"><a name="notification_analysis.closingLabels">analysis.closingLabels</a></dt><dd><div class="box"><pre>notification: { |
| "event": "analysis.closingLabels" |
| "params": { |
| "<b>file</b>": <a href="#type_FilePath">FilePath</a> |
| "<b>labels</b>": List<<a href="#type_ClosingLabel">ClosingLabel</a>> |
| } |
| }</pre></div> |
| <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> |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>file: <a href="#type_FilePath">FilePath</a></b></dt><dd> |
| |
| <p> |
| The file the closing labels relate to. |
| </p> |
| </dd><dt class="field"><b>labels: List<<a href="#type_ClosingLabel">ClosingLabel</a>></b></dt><dd> |
| |
| <p> |
| Closing labels relevant to the file. Each item |
| represents a useful label associated with some range |
| with may be useful to display to the user within the editor |
| at the end of the range to indicate what construct is closed |
| at that location. Closing labels include constructor/method |
| calls and List arguments that span multiple lines. |
| Note that the ranges that are returned can overlap |
| each other because they may be associated with |
| constructs that can be nested. |
| </p> |
| </dd></dl></dd><dt class="notification"><a name="notification_analysis.errors">analysis.errors</a></dt><dd><div class="box"><pre>notification: { |
| "event": "analysis.errors" |
| "params": { |
| "<b>file</b>": <a href="#type_FilePath">FilePath</a> |
| "<b>errors</b>": List<<a href="#type_AnalysisError">AnalysisError</a>> |
| } |
| }</pre></div> |
| <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> |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>file: <a href="#type_FilePath">FilePath</a></b></dt><dd> |
| |
| <p> |
| The file containing the errors. |
| </p> |
| </dd><dt class="field"><b>errors: List<<a href="#type_AnalysisError">AnalysisError</a>></b></dt><dd> |
| |
| <p> |
| The errors contained in the file. |
| </p> |
| </dd></dl></dd><dt class="notification"><a name="notification_analysis.flushResults">analysis.flushResults</a></dt><dd><div class="box"><pre>notification: { |
| "event": "analysis.flushResults" |
| "params": { |
| "<b>files</b>": List<<a href="#type_FilePath">FilePath</a>> |
| } |
| }</pre></div> |
| <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> |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>files: List<<a href="#type_FilePath">FilePath</a>></b></dt><dd> |
| |
| <p> |
| The files that are no longer being analyzed. |
| </p> |
| </dd></dl></dd><dt class="notification"><a name="notification_analysis.folding">analysis.folding</a></dt><dd><div class="box"><pre>notification: { |
| "event": "analysis.folding" |
| "params": { |
| "<b>file</b>": <a href="#type_FilePath">FilePath</a> |
| "<b>regions</b>": List<<a href="#type_FoldingRegion">FoldingRegion</a>> |
| } |
| }</pre></div> |
| <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> |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>file: <a href="#type_FilePath">FilePath</a></b></dt><dd> |
| |
| <p> |
| The file containing the folding regions. |
| </p> |
| </dd><dt class="field"><b>regions: List<<a href="#type_FoldingRegion">FoldingRegion</a>></b></dt><dd> |
| |
| <p> |
| The folding regions contained in the file. |
| </p> |
| </dd></dl></dd><dt class="notification"><a name="notification_analysis.highlights">analysis.highlights</a></dt><dd><div class="box"><pre>notification: { |
| "event": "analysis.highlights" |
| "params": { |
| "<b>file</b>": <a href="#type_FilePath">FilePath</a> |
| "<b>regions</b>": List<<a href="#type_HighlightRegion">HighlightRegion</a>> |
| } |
| }</pre></div> |
| <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> |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>file: <a href="#type_FilePath">FilePath</a></b></dt><dd> |
| |
| <p> |
| The file containing the highlight regions. |
| </p> |
| </dd><dt class="field"><b>regions: List<<a href="#type_HighlightRegion">HighlightRegion</a>></b></dt><dd> |
| |
| <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> |
| </dd></dl></dd><dt class="notification"><a name="notification_analysis.implemented">analysis.implemented</a></dt><dd><div class="box"><pre>notification: { |
| "event": "analysis.implemented" |
| "params": { |
| "<b>file</b>": <a href="#type_FilePath">FilePath</a> |
| "<b>classes</b>": List<<a href="#type_ImplementedClass">ImplementedClass</a>> |
| "<b>members</b>": List<<a href="#type_ImplementedMember">ImplementedMember</a>> |
| } |
| }</pre></div> |
| <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> |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>file: <a href="#type_FilePath">FilePath</a></b></dt><dd> |
| |
| <p> |
| The file with which the implementations are associated. |
| </p> |
| </dd><dt class="field"><b>classes: List<<a href="#type_ImplementedClass">ImplementedClass</a>></b></dt><dd> |
| |
| <p> |
| The classes defined in the file that are implemented or extended. |
| </p> |
| </dd><dt class="field"><b>members: List<<a href="#type_ImplementedMember">ImplementedMember</a>></b></dt><dd> |
| |
| <p> |
| The member defined in the file that are implemented or overridden. |
| </p> |
| </dd></dl></dd><dt class="notification"><a name="notification_analysis.invalidate">analysis.invalidate</a></dt><dd><div class="box"><pre>notification: { |
| "event": "analysis.invalidate" |
| "params": { |
| "<b>file</b>": <a href="#type_FilePath">FilePath</a> |
| "<b>offset</b>": int |
| "<b>length</b>": int |
| "<b>delta</b>": int |
| } |
| }</pre></div> |
| <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> |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>file: <a href="#type_FilePath">FilePath</a></b></dt><dd> |
| |
| <p> |
| The file whose information has been invalidated. |
| </p> |
| </dd><dt class="field"><b>offset: int</b></dt><dd> |
| |
| <p> |
| The offset of the invalidated region. |
| </p> |
| </dd><dt class="field"><b>length: int</b></dt><dd> |
| |
| <p> |
| The length of the invalidated region. |
| </p> |
| </dd><dt class="field"><b>delta: int</b></dt><dd> |
| |
| <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> |
| </dd></dl></dd><dt class="notification"><a name="notification_analysis.navigation">analysis.navigation</a></dt><dd><div class="box"><pre>notification: { |
| "event": "analysis.navigation" |
| "params": { |
| "<b>file</b>": <a href="#type_FilePath">FilePath</a> |
| "<b>regions</b>": List<<a href="#type_NavigationRegion">NavigationRegion</a>> |
| "<b>targets</b>": List<<a href="#type_NavigationTarget">NavigationTarget</a>> |
| "<b>files</b>": List<<a href="#type_FilePath">FilePath</a>> |
| } |
| }</pre></div> |
| <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> |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>file: <a href="#type_FilePath">FilePath</a></b></dt><dd> |
| |
| <p> |
| The file containing the navigation regions. |
| </p> |
| </dd><dt class="field"><b>regions: List<<a href="#type_NavigationRegion">NavigationRegion</a>></b></dt><dd> |
| |
| <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> |
| </dd><dt class="field"><b>targets: List<<a href="#type_NavigationTarget">NavigationTarget</a>></b></dt><dd> |
| |
| <p> |
| The navigation targets referenced in the file. |
| They are referenced by <tt>NavigationRegion</tt>s by their |
| index in this array. |
| </p> |
| </dd><dt class="field"><b>files: List<<a href="#type_FilePath">FilePath</a>></b></dt><dd> |
| |
| <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> |
| </dd></dl></dd><dt class="notification"><a name="notification_analysis.occurrences">analysis.occurrences</a></dt><dd><div class="box"><pre>notification: { |
| "event": "analysis.occurrences" |
| "params": { |
| "<b>file</b>": <a href="#type_FilePath">FilePath</a> |
| "<b>occurrences</b>": List<<a href="#type_Occurrences">Occurrences</a>> |
| } |
| }</pre></div> |
| <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> |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>file: <a href="#type_FilePath">FilePath</a></b></dt><dd> |
| |
| <p> |
| The file in which the references occur. |
| </p> |
| </dd><dt class="field"><b>occurrences: List<<a href="#type_Occurrences">Occurrences</a>></b></dt><dd> |
| |
| <p> |
| The occurrences of references to elements within the |
| file. |
| </p> |
| </dd></dl></dd><dt class="notification"><a name="notification_analysis.outline">analysis.outline</a></dt><dd><div class="box"><pre>notification: { |
| "event": "analysis.outline" |
| "params": { |
| "<b>file</b>": <a href="#type_FilePath">FilePath</a> |
| "<b>kind</b>": <a href="#type_FileKind">FileKind</a> |
| "<b>libraryName</b>": <span style="color:#999999">optional</span> String |
| "<b>outline</b>": <a href="#type_Outline">Outline</a> |
| } |
| }</pre></div> |
| <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> |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>file: <a href="#type_FilePath">FilePath</a></b></dt><dd> |
| |
| <p> |
| The file with which the outline is associated. |
| </p> |
| </dd><dt class="field"><b>kind: <a href="#type_FileKind">FileKind</a></b></dt><dd> |
| |
| <p> |
| The kind of the file. |
| </p> |
| </dd><dt class="field"><b>libraryName: String<span style="color:#999999"> (optional)</span></b></dt><dd> |
| |
| <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> |
| </dd><dt class="field"><b>outline: <a href="#type_Outline">Outline</a></b></dt><dd> |
| |
| <p> |
| The outline associated with the file. |
| </p> |
| </dd></dl></dd><dt class="notification"><a name="notification_analysis.overrides">analysis.overrides</a></dt><dd><div class="box"><pre>notification: { |
| "event": "analysis.overrides" |
| "params": { |
| "<b>file</b>": <a href="#type_FilePath">FilePath</a> |
| "<b>overrides</b>": List<<a href="#type_Override">Override</a>> |
| } |
| }</pre></div> |
| <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> |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>file: <a href="#type_FilePath">FilePath</a></b></dt><dd> |
| |
| <p> |
| The file with which the overrides are associated. |
| </p> |
| </dd><dt class="field"><b>overrides: List<<a href="#type_Override">Override</a>></b></dt><dd> |
| |
| <p> |
| The overrides associated with the file. |
| </p> |
| </dd></dl></dd></dl> |
| <h2 class="domain"><a name="domain_completion">completion domain</a></h2> |
| <p> |
| The code completion domain contains commands related to |
| getting code completion suggestions. |
| </p> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <h3>Requests</h3><dl><dt class="request"><a name="request_completion.getSuggestions">completion.getSuggestions</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "completion.getSuggestions" |
| "params": { |
| "<b>file</b>": <a href="#type_FilePath">FilePath</a> |
| "<b>offset</b>": int |
| } |
| }</pre><br><pre>response: { |
| "<b>id</b>": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| "result": { |
| "<b>id</b>": <a href="#type_CompletionId">CompletionId</a> |
| } |
| }</pre></div> |
| <p> |
| Request that completion suggestions for the given offset in |
| the given file be returned. |
| </p> |
| |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>file: <a href="#type_FilePath">FilePath</a></b></dt><dd> |
| |
| <p> |
| The file containing the point at which suggestions are |
| to be made. |
| </p> |
| </dd><dt class="field"><b>offset: int</b></dt><dd> |
| |
| <p> |
| The offset within the file at which suggestions are to |
| be made. |
| </p> |
| </dd></dl><h4>returns:</h4><dl><dt class="field"><b>id: <a href="#type_CompletionId">CompletionId</a></b></dt><dd> |
| |
| <p> |
| The identifier used to associate results with this |
| completion request. |
| </p> |
| </dd></dl></dd><dt class="request"><a name="request_completion.setSubscriptions">completion.setSubscriptions</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "completion.setSubscriptions" |
| "params": { |
| "<b>subscriptions</b>": List<<a href="#type_CompletionService">CompletionService</a>> |
| } |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| }</pre></div> |
| <p> |
| Subscribe for completion services. All previous subscriptions are |
| replaced by the given set of services. |
| </p> |
| <p> |
| It is an error if any of the elements in the list are not valid |
| services. If there is an error, then the current subscriptions will |
| remain unchanged. |
| </p> |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>subscriptions: List<<a href="#type_CompletionService">CompletionService</a>></b></dt><dd> |
| |
| <p>A list of the services being subscribed to.</p> |
| </dd></dl></dd><dt class="request deprecated"><a name="request_completion.registerLibraryPaths">completion.registerLibraryPaths</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "completion.registerLibraryPaths" |
| "params": { |
| "<b>paths</b>": List<<a href="#type_LibraryPathSet">LibraryPathSet</a>> |
| } |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| }</pre></div> |
| <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> |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>paths: List<<a href="#type_LibraryPathSet">LibraryPathSet</a>></b></dt><dd> |
| |
| <p> |
| A list of objects each containing a path and the additional libraries from which |
| the client is interested in receiving completion suggestions. |
| If one configured path is beneath another, the descendent |
| will override the ancestors' configured libraries of interest. |
| </p> |
| </dd></dl></dd><dt class="request"><a name="request_completion.getSuggestionDetails">completion.getSuggestionDetails</a></dt><dd><div class="box"><pre>request: { |
| "<b>id</b>": String |
| "method": "completion.getSuggestionDetails" |
| "params": { |
| "<b>file</b>": <a href="#type_FilePath">FilePath</a> |
| "<b>id</b>": int |
| "<b>label</b>": String |
| "<b>offset</b>": int |
| } |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| "result": { |
| "<b>completion</b>": String |
| "<b>change</b>": <span style="color:#999999">optional</span> <a href="#type_SourceChange">SourceChange</a> |
| } |
| }</pre></div> |
| <p> |
| Clients must make this request when the user has selected a completion |
| suggestion from an <tt>AvailableSuggestionSet</tt>. Analysis server will respond with |
| the text to insert as well as any <tt>SourceChange</tt> that needs to be applied |
| in case the completion requires an additional import to be added. It is an error |
| if the id is no longer valid, for instance if the library has been removed after |
| the completion suggestion is accepted. |
| </p> |
| |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>file: <a href="#type_FilePath">FilePath</a></b></dt><dd> |
| |
| <p> |
| The path of the file into which this completion is being inserted. |
| </p> |
| </dd><dt class="field"><b>id: int</b></dt><dd> |
| |
| <p> |
| The identifier of the <tt>AvailableSuggestionSet</tt> containing |
| the selected label. |
| </p> |
| </dd><dt class="field"><b>label: String</b></dt><dd> |
| |
| <p> |
| The label from the <tt>AvailableSuggestionSet</tt> with the `id` |
| for which insertion information is requested. |
| </p> |
| </dd><dt class="field"><b>offset: int</b></dt><dd> |
| |
| <p> |
| The offset in the file where the completion will be inserted. |
| </p> |
| </dd></dl><h4>returns:</h4><dl><dt class="field"><b>completion: String</b></dt><dd> |
| |
| <p> |
| The full text to insert, including any optional import prefix. |
| </p> |
| </dd><dt class="field"><b>change: <a href="#type_SourceChange">SourceChange</a><span style="color:#999999"> (optional)</span></b></dt><dd> |
| |
| <p> |
| A change for the client to apply in case the library containing |
| the accepted completion suggestion needs to be imported. The field |
| will be omitted if there are no additional changes that need to be made. |
| </p> |
| </dd></dl></dd></dl><h3>Notifications</h3><dl><dt class="notification"><a name="notification_completion.results">completion.results</a></dt><dd><div class="box"><pre>notification: { |
| "event": "completion.results" |
| "params": { |
| "<b>id</b>": <a href="#type_CompletionId">CompletionId</a> |
| "<b>replacementOffset</b>": int |
| "<b>replacementLength</b>": int |
| "<b>results</b>": List<<a href="#type_CompletionSuggestion">CompletionSuggestion</a>> |
| "<b>isLast</b>": bool |
| "<b>libraryFile</b>": <span style="color:#999999">optional</span> <a href="#type_FilePath">FilePath</a> |
| "<b>includedSuggestionSets</b>": <span style="color:#999999">optional</span> List<<a href="#type_IncludedSuggestionSet">IncludedSuggestionSet</a>> |
| "<b>includedElementKinds</b>": <span style="color:#999999">optional</span> List<<a href="#type_ElementKind">ElementKind</a>> |
| "<b>includedSuggestionRelevanceTags</b>": <span style="color:#999999">optional</span> List<<a href="#type_IncludedSuggestionRelevanceTag">IncludedSuggestionRelevanceTag</a>> |
| } |
| }</pre></div> |
| <p> |
| Reports the completion suggestions that should be presented |
| to the user. The set of suggestions included in the |
| notification is always a complete list that supersedes any |
| previously reported suggestions. |
| </p> |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>id: <a href="#type_CompletionId">CompletionId</a></b></dt><dd> |
| |
| <p> |
| The id associated with the completion. |
| </p> |
| </dd><dt class="field"><b>replacementOffset: int</b></dt><dd> |
| |
| <p> |
| The offset of the start of the text to be |
| replaced. This will be different than the offset used |
| to request the completion suggestions if there was a |
| portion of an identifier before the original |
| offset. In particular, the replacementOffset will be |
| the offset of the beginning of said identifier. |
| </p> |
| </dd><dt class="field"><b>replacementLength: int</b></dt><dd> |
| |
| <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> |
| </dd><dt class="field"><b>results: List<<a href="#type_CompletionSuggestion">CompletionSuggestion</a>></b></dt><dd> |
| |
| <p> |
| The completion suggestions being reported. The |
| notification contains all possible completions at the |
| requested cursor position, even those that do not match |
| the characters the user has already typed. This allows |
| the client to respond to further keystrokes from the |
| user without having to make additional requests. |
| </p> |
| </dd><dt class="field"><b>isLast: bool</b></dt><dd> |
| |
| <p> |
| True if this is that last set of results that will be |
| returned for the indicated completion. |
| </p> |
| </dd><dt class="field"><b>libraryFile: <a href="#type_FilePath">FilePath</a><span style="color:#999999"> (optional)</span></b></dt><dd> |
| |
| <p> |
| The library file that contains the file where completion was |
| requested. The client might use it for example together with the |
| <tt>existingImports</tt> notification to filter out available |
| suggestions. If there were changes to existing imports in the library, |
| the corresponding <tt>existingImports</tt> notification will be sent |
| before the completion notification. |
| </p> |
| </dd><dt class="field"><b>includedSuggestionSets: List<<a href="#type_IncludedSuggestionSet">IncludedSuggestionSet</a>><span style="color:#999999"> (optional)</span></b></dt><dd> |
| |
| <p> |
| References to <tt>AvailableSuggestionSet</tt> objects previously sent |
| to the client. The client can include applicable names from the |
| referenced library in code completion suggestions. |
| </p> |
| </dd><dt class="field"><b>includedElementKinds: List<<a href="#type_ElementKind">ElementKind</a>><span style="color:#999999"> (optional)</span></b></dt><dd> |
| |
| <p> |
| The client is expected to check this list against the |
| <tt>ElementKind</tt> sent in <tt>IncludedSuggestionSet</tt> to decide |
| whether or not these symbols should should be presented to the user. |
| </p> |
| </dd><dt class="field"><b>includedSuggestionRelevanceTags: List<<a href="#type_IncludedSuggestionRelevanceTag">IncludedSuggestionRelevanceTag</a>><span style="color:#999999"> (optional)</span></b></dt><dd> |
| |
| <p> |
| The client is expected to check this list against the values of the |
| field <tt>relevanceTags</tt> of <tt>AvailableSuggestion</tt> to |
| decide if the suggestion should be given a different relevance than |
| the <tt>IncludedSuggestionSet</tt> that contains it. This might be |
| used for example to give higher relevance to suggestions of matching |
| types. |
| </p> |
| <p> |
| If an <tt>AvailableSuggestion</tt> has relevance tags that match more |
| than one <tt>IncludedSuggestionRelevanceTag</tt>, the maximum |
| relevance boost is used. |
| </p> |
| </dd></dl></dd><dt class="notification"><a name="notification_completion.availableSuggestions">completion.availableSuggestions</a></dt><dd><div class="box"><pre>notification: { |
| "event": "completion.availableSuggestions" |
| "params": { |
| "<b>changedLibraries</b>": <span style="color:#999999">optional</span> List<<a href="#type_AvailableSuggestionSet">AvailableSuggestionSet</a>> |
| "<b>removedLibraries</b>": <span style="color:#999999">optional</span> List<int> |
| } |
| }</pre></div> |
| <p> |
| Reports the pre-computed, candidate completions from symbols defined |
| in a corresponding library. This notification may be sent multiple times. |
| When a notification is processed, clients should replace any previous |
| information about the libraries in the list of changedLibraries, discard |
| any information about the libraries in the list of removedLibraries, and |
| preserve any previously received information about any libraries that are |
| not included in either list. |
| </p> |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>changedLibraries: List<<a href="#type_AvailableSuggestionSet">AvailableSuggestionSet</a>><span style="color:#999999"> (optional)</span></b></dt><dd> |
| |
| <p> |
| A list of pre-computed, potential completions coming from |
| this set of completion suggestions. |
| </p> |
| </dd><dt class="field"><b>removedLibraries: List<int><span style="color:#999999"> (optional)</span></b></dt><dd> |
| |
| <p> |
| A list of library ids that no longer apply. |
| </p> |
| </dd></dl></dd><dt class="notification"><a name="notification_completion.existingImports">completion.existingImports</a></dt><dd><div class="box"><pre>notification: { |
| "event": "completion.existingImports" |
| "params": { |
| "<b>file</b>": <a href="#type_FilePath">FilePath</a> |
| "<b>imports</b>": <a href="#type_ExistingImports">ExistingImports</a> |
| } |
| }</pre></div> |
| <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> |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>file: <a href="#type_FilePath">FilePath</a></b></dt><dd> |
| |
| <p> |
| The defining file of the library. |
| </p> |
| </dd><dt class="field"><b>imports: <a href="#type_ExistingImports">ExistingImports</a></b></dt><dd> |
| |
| <p> |
| The existing imports in the library. |
| </p> |
| </dd></dl></dd></dl> |
| <h2 class="domain"><a name="domain_search">search domain</a></h2> |
| <p> |
| The search domain contains commands related to searches that |
| can be performed against the code base. |
| </p> |
| |
| |
| |
| |
| |
| |
| |
| <h3>Requests</h3><dl><dt class="request"><a name="request_search.findElementReferences">search.findElementReferences</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "search.findElementReferences" |
| "params": { |
| "<b>file</b>": <a href="#type_FilePath">FilePath</a> |
| "<b>offset</b>": int |
| "<b>includePotential</b>": bool |
| } |
| }</pre><br><pre>response: { |
| "<b>id</b>": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| "result": { |
| "<b>id</b>": <span style="color:#999999">optional</span> <a href="#type_SearchId">SearchId</a> |
| "<b>element</b>": <span style="color:#999999">optional</span> <a href="#type_Element">Element</a> |
| } |
| }</pre></div> |
| <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> |
| |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>file: <a href="#type_FilePath">FilePath</a></b></dt><dd> |
| |
| <p> |
| The file containing the declaration of or reference to |
| the element used to define the search. |
| </p> |
| </dd><dt class="field"><b>offset: int</b></dt><dd> |
| |
| <p> |
| The offset within the file of the declaration of or |
| reference to the element. |
| </p> |
| </dd><dt class="field"><b>includePotential: bool</b></dt><dd> |
| |
| <p> |
| True if potential matches are to be included in the |
| results. |
| </p> |
| </dd></dl><h4>returns:</h4><dl><dt class="field"><b>id: <a href="#type_SearchId">SearchId</a><span style="color:#999999"> (optional)</span></b></dt><dd> |
| |
| <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> |
| </dd><dt class="field"><b>element: <a href="#type_Element">Element</a><span style="color:#999999"> (optional)</span></b></dt><dd> |
| |
| <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> |
| </dd></dl></dd><dt class="request"><a name="request_search.findMemberDeclarations">search.findMemberDeclarations</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "search.findMemberDeclarations" |
| "params": { |
| "<b>name</b>": String |
| } |
| }</pre><br><pre>response: { |
| "<b>id</b>": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| "result": { |
| "<b>id</b>": <a href="#type_SearchId">SearchId</a> |
| } |
| }</pre></div> |
| <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> |
| |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>name: String</b></dt><dd> |
| |
| <p> |
| The name of the declarations to be found. |
| </p> |
| </dd></dl><h4>returns:</h4><dl><dt class="field"><b>id: <a href="#type_SearchId">SearchId</a></b></dt><dd> |
| |
| <p> |
| The identifier used to associate results with this |
| search request. |
| </p> |
| </dd></dl></dd><dt class="request"><a name="request_search.findMemberReferences">search.findMemberReferences</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "search.findMemberReferences" |
| "params": { |
| "<b>name</b>": String |
| } |
| }</pre><br><pre>response: { |
| "<b>id</b>": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| "result": { |
| "<b>id</b>": <a href="#type_SearchId">SearchId</a> |
| } |
| }</pre></div> |
| <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> |
| |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>name: String</b></dt><dd> |
| |
| <p> |
| The name of the references to be found. |
| </p> |
| </dd></dl><h4>returns:</h4><dl><dt class="field"><b>id: <a href="#type_SearchId">SearchId</a></b></dt><dd> |
| |
| <p> |
| The identifier used to associate results with this |
| search request. |
| </p> |
| </dd></dl></dd><dt class="request"><a name="request_search.findTopLevelDeclarations">search.findTopLevelDeclarations</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "search.findTopLevelDeclarations" |
| "params": { |
| "<b>pattern</b>": String |
| } |
| }</pre><br><pre>response: { |
| "<b>id</b>": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| "result": { |
| "<b>id</b>": <a href="#type_SearchId">SearchId</a> |
| } |
| }</pre></div> |
| <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> |
| |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>pattern: String</b></dt><dd> |
| |
| <p> |
| The regular expression used to match the names of the |
| declarations to be found. |
| </p> |
| </dd></dl><h4>returns:</h4><dl><dt class="field"><b>id: <a href="#type_SearchId">SearchId</a></b></dt><dd> |
| |
| <p> |
| The identifier used to associate results with this |
| search request. |
| </p> |
| </dd></dl></dd><dt class="request"><a name="request_search.getTypeHierarchy">search.getTypeHierarchy</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "search.getTypeHierarchy" |
| "params": { |
| "<b>file</b>": <a href="#type_FilePath">FilePath</a> |
| "<b>offset</b>": int |
| "<b>superOnly</b>": <span style="color:#999999">optional</span> bool |
| } |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| "result": { |
| "<b>hierarchyItems</b>": <span style="color:#999999">optional</span> List<<a href="#type_TypeHierarchyItem">TypeHierarchyItem</a>> |
| } |
| }</pre></div> |
| <p> |
| Return the type hierarchy of the class declared or |
| referenced at the given location. |
| </p> |
| |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>file: <a href="#type_FilePath">FilePath</a></b></dt><dd> |
| |
| <p> |
| The file containing the declaration or reference to the |
| type for which a hierarchy is being requested. |
| </p> |
| </dd><dt class="field"><b>offset: int</b></dt><dd> |
| |
| <p> |
| The offset of the name of the type within the file. |
| </p> |
| </dd><dt class="field"><b>superOnly: bool<span style="color:#999999"> (optional)</span></b></dt><dd> |
| |
| <p> |
| True if the client is only requesting superclasses and |
| interfaces hierarchy. |
| </p> |
| </dd></dl><h4>returns:</h4><dl><dt class="field"><b>hierarchyItems: List<<a href="#type_TypeHierarchyItem">TypeHierarchyItem</a>><span style="color:#999999"> (optional)</span></b></dt><dd> |
| |
| <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> |
| </dd></dl></dd></dl><h3>Notifications</h3><dl><dt class="notification"><a name="notification_search.results">search.results</a></dt><dd><div class="box"><pre>notification: { |
| "event": "search.results" |
| "params": { |
| "<b>id</b>": <a href="#type_SearchId">SearchId</a> |
| "<b>results</b>": List<<a href="#type_SearchResult">SearchResult</a>> |
| "<b>isLast</b>": bool |
| } |
| }</pre></div> |
| <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> |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>id: <a href="#type_SearchId">SearchId</a></b></dt><dd> |
| |
| <p> |
| The id associated with the search. |
| </p> |
| </dd><dt class="field"><b>results: List<<a href="#type_SearchResult">SearchResult</a>></b></dt><dd> |
| |
| <p> |
| The search results being reported. |
| </p> |
| </dd><dt class="field"><b>isLast: bool</b></dt><dd> |
| |
| <p> |
| True if this is that last set of results that will be |
| returned for the indicated search. |
| </p> |
| </dd></dl></dd></dl> |
| <h2 class="domain"><a name="domain_edit">edit domain</a></h2> |
| <p> |
| The edit domain contains commands related to edits that can be |
| applied to the code. |
| </p> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <h3>Requests</h3><dl><dt class="request"><a name="request_edit.format">edit.format</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "edit.format" |
| "params": { |
| "<b>file</b>": <a href="#type_FilePath">FilePath</a> |
| "<b>selectionOffset</b>": int |
| "<b>selectionLength</b>": int |
| "<b>lineLength</b>": <span style="color:#999999">optional</span> int |
| } |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| "result": { |
| "<b>edits</b>": List<<a href="#type_SourceEdit">SourceEdit</a>> |
| "<b>selectionOffset</b>": int |
| "<b>selectionLength</b>": int |
| } |
| }</pre></div> |
| <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> |
| |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>file: <a href="#type_FilePath">FilePath</a></b></dt><dd> |
| |
| <p> |
| The file containing the code to be formatted. |
| </p> |
| </dd><dt class="field"><b>selectionOffset: int</b></dt><dd> |
| |
| <p> |
| The offset of the current selection in the file. |
| </p> |
| </dd><dt class="field"><b>selectionLength: int</b></dt><dd> |
| |
| <p> |
| The length of the current selection in the file. |
| </p> |
| </dd><dt class="field"><b>lineLength: int<span style="color:#999999"> (optional)</span></b></dt><dd> |
| |
| <p> |
| The line length to be used by the formatter. |
| </p> |
| </dd></dl><h4>returns:</h4><dl><dt class="field"><b>edits: List<<a href="#type_SourceEdit">SourceEdit</a>></b></dt><dd> |
| |
| <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> |
| </dd><dt class="field"><b>selectionOffset: int</b></dt><dd> |
| |
| <p> |
| The offset of the selection after formatting the code. |
| </p> |
| </dd><dt class="field"><b>selectionLength: int</b></dt><dd> |
| |
| <p> |
| The length of the selection after formatting the code. |
| </p> |
| </dd></dl></dd><dt class="request"><a name="request_edit.getAssists">edit.getAssists</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "edit.getAssists" |
| "params": { |
| "<b>file</b>": <a href="#type_FilePath">FilePath</a> |
| "<b>offset</b>": int |
| "<b>length</b>": int |
| } |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| "result": { |
| "<b>assists</b>": List<<a href="#type_SourceChange">SourceChange</a>> |
| } |
| }</pre></div> |
| <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> |
| |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>file: <a href="#type_FilePath">FilePath</a></b></dt><dd> |
| |
| <p> |
| The file containing the code for which assists are being |
| requested. |
| </p> |
| </dd><dt class="field"><b>offset: int</b></dt><dd> |
| |
| <p> |
| The offset of the code for which assists are being |
| requested. |
| </p> |
| </dd><dt class="field"><b>length: int</b></dt><dd> |
| |
| <p> |
| The length of the code for which assists are being |
| requested. |
| </p> |
| </dd></dl><h4>returns:</h4><dl><dt class="field"><b>assists: List<<a href="#type_SourceChange">SourceChange</a>></b></dt><dd> |
| |
| <p> |
| The assists that are available at the given location. |
| </p> |
| </dd></dl></dd><dt class="request"><a name="request_edit.getAvailableRefactorings">edit.getAvailableRefactorings</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "edit.getAvailableRefactorings" |
| "params": { |
| "<b>file</b>": <a href="#type_FilePath">FilePath</a> |
| "<b>offset</b>": int |
| "<b>length</b>": int |
| } |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| "result": { |
| "<b>kinds</b>": List<<a href="#type_RefactoringKind">RefactoringKind</a>> |
| } |
| }</pre></div> |
| <p> |
| Get a list of the kinds of refactorings that are valid for |
| the given selection in the given file. |
| </p> |
| |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>file: <a href="#type_FilePath">FilePath</a></b></dt><dd> |
| |
| <p> |
| The file containing the code on which the refactoring |
| would be based. |
| </p> |
| </dd><dt class="field"><b>offset: int</b></dt><dd> |
| |
| <p> |
| The offset of the code on which the refactoring would be |
| based. |
| </p> |
| </dd><dt class="field"><b>length: int</b></dt><dd> |
| |
| <p> |
| The length of the code on which the refactoring would be |
| based. |
| </p> |
| </dd></dl><h4>returns:</h4><dl><dt class="field"><b>kinds: List<<a href="#type_RefactoringKind">RefactoringKind</a>></b></dt><dd> |
| |
| <p> |
| The kinds of refactorings that are valid for the given |
| selection. |
| </p> |
| </dd></dl></dd><dt class="request"><a name="request_edit.getFixes">edit.getFixes</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "edit.getFixes" |
| "params": { |
| "<b>file</b>": <a href="#type_FilePath">FilePath</a> |
| "<b>offset</b>": int |
| } |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| "result": { |
| "<b>fixes</b>": List<<a href="#type_AnalysisErrorFixes">AnalysisErrorFixes</a>> |
| } |
| }</pre></div> |
| <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> |
| |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>file: <a href="#type_FilePath">FilePath</a></b></dt><dd> |
| |
| <p> |
| The file containing the errors for which fixes are being |
| requested. |
| </p> |
| </dd><dt class="field"><b>offset: int</b></dt><dd> |
| |
| <p> |
| The offset used to select the errors for which fixes |
| will be returned. |
| </p> |
| </dd></dl><h4>returns:</h4><dl><dt class="field"><b>fixes: List<<a href="#type_AnalysisErrorFixes">AnalysisErrorFixes</a>></b></dt><dd> |
| |
| <p> |
| The fixes that are available for the errors at the given offset. |
| </p> |
| </dd></dl></dd><dt class="request"><a name="request_edit.getPostfixCompletion">edit.getPostfixCompletion</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "edit.getPostfixCompletion" |
| "params": { |
| "<b>file</b>": <a href="#type_FilePath">FilePath</a> |
| "<b>key</b>": String |
| "<b>offset</b>": int |
| } |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| "result": { |
| "<b>change</b>": <a href="#type_SourceChange">SourceChange</a> |
| } |
| }</pre></div> |
| <p> |
| Get the changes required to convert the postfix template at the given |
| location into the template's expanded form. |
| </p> |
| |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>file: <a href="#type_FilePath">FilePath</a></b></dt><dd> |
| |
| <p> |
| The file containing the postfix template to be expanded. |
| </p> |
| </dd><dt class="field"><b>key: String</b></dt><dd> |
| |
| <p> |
| The unique name that identifies the template in use. |
| </p> |
| </dd><dt class="field"><b>offset: int</b></dt><dd> |
| |
| <p> |
| The offset used to identify the code to which the template will be |
| applied. |
| </p> |
| </dd></dl><h4>returns:</h4><dl><dt class="field"><b>change: <a href="#type_SourceChange">SourceChange</a></b></dt><dd> |
| |
| <p> |
| The change to be applied in order to complete the statement. |
| </p> |
| </dd></dl></dd><dt class="request"><a name="request_edit.getRefactoring">edit.getRefactoring</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "edit.getRefactoring" |
| "params": { |
| "<b>kind</b>": <a href="#type_RefactoringKind">RefactoringKind</a> |
| "<b>file</b>": <a href="#type_FilePath">FilePath</a> |
| "<b>offset</b>": int |
| "<b>length</b>": int |
| "<b>validateOnly</b>": bool |
| "<b>options</b>": <span style="color:#999999">optional</span> <a href="#type_RefactoringOptions">RefactoringOptions</a> |
| } |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| "result": { |
| "<b>initialProblems</b>": List<<a href="#type_RefactoringProblem">RefactoringProblem</a>> |
| "<b>optionsProblems</b>": List<<a href="#type_RefactoringProblem">RefactoringProblem</a>> |
| "<b>finalProblems</b>": List<<a href="#type_RefactoringProblem">RefactoringProblem</a>> |
| "<b>feedback</b>": <span style="color:#999999">optional</span> <a href="#type_RefactoringFeedback">RefactoringFeedback</a> |
| "<b>change</b>": <span style="color:#999999">optional</span> <a href="#type_SourceChange">SourceChange</a> |
| "<b>potentialEdits</b>": <span style="color:#999999">optional</span> List<String> |
| } |
| }</pre></div> |
| <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> |
| |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>kind: <a href="#type_RefactoringKind">RefactoringKind</a></b></dt><dd> |
| |
| <p> |
| The kind of refactoring to be performed. |
| </p> |
| </dd><dt class="field"><b>file: <a href="#type_FilePath">FilePath</a></b></dt><dd> |
| |
| <p> |
| The file containing the code involved in the |
| refactoring. |
| </p> |
| </dd><dt class="field"><b>offset: int</b></dt><dd> |
| |
| <p> |
| The offset of the region involved in the refactoring. |
| </p> |
| </dd><dt class="field"><b>length: int</b></dt><dd> |
| |
| <p> |
| The length of the region involved in the refactoring. |
| </p> |
| </dd><dt class="field"><b>validateOnly: bool</b></dt><dd> |
| |
| <p> |
| True if the client is only requesting that the values of |
| the options be validated and no change be generated. |
| </p> |
| </dd><dt class="field"><b>options: <a href="#type_RefactoringOptions">RefactoringOptions</a><span style="color:#999999"> (optional)</span></b></dt><dd> |
| |
| <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> |
| </dd></dl><h4>returns:</h4><dl><dt class="field"><b>initialProblems: List<<a href="#type_RefactoringProblem">RefactoringProblem</a>></b></dt><dd> |
| |
| <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> |
| </dd><dt class="field"><b>optionsProblems: List<<a href="#type_RefactoringProblem">RefactoringProblem</a>></b></dt><dd> |
| |
| <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> |
| </dd><dt class="field"><b>finalProblems: List<<a href="#type_RefactoringProblem">RefactoringProblem</a>></b></dt><dd> |
| |
| <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> |
| </dd><dt class="field"><b>feedback: <a href="#type_RefactoringFeedback">RefactoringFeedback</a><span style="color:#999999"> (optional)</span></b></dt><dd> |
| |
| <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> |
| </dd><dt class="field"><b>change: <a href="#type_SourceChange">SourceChange</a><span style="color:#999999"> (optional)</span></b></dt><dd> |
| |
| <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> |
| </dd><dt class="field"><b>potentialEdits: List<String><span style="color:#999999"> (optional)</span></b></dt><dd> |
| |
| <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> |
| </dd></dl></dd><dt class="request"><a name="request_edit.sortMembers">edit.sortMembers</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "edit.sortMembers" |
| "params": { |
| "<b>file</b>": <a href="#type_FilePath">FilePath</a> |
| } |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| "result": { |
| "<b>edit</b>": <a href="#type_SourceFileEdit">SourceFileEdit</a> |
| } |
| }</pre></div> |
| <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> |
| |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>file: <a href="#type_FilePath">FilePath</a></b></dt><dd> |
| |
| <p> |
| The Dart file to sort. |
| </p> |
| </dd></dl><h4>returns:</h4><dl><dt class="field"><b>edit: <a href="#type_SourceFileEdit">SourceFileEdit</a></b></dt><dd> |
| |
| <p> |
| The file edit that is to be applied to the given file to effect |
| the sorting. |
| </p> |
| </dd></dl></dd><dt class="request"><a name="request_edit.organizeDirectives">edit.organizeDirectives</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "edit.organizeDirectives" |
| "params": { |
| "<b>file</b>": <a href="#type_FilePath">FilePath</a> |
| } |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| "result": { |
| "<b>edit</b>": <a href="#type_SourceFileEdit">SourceFileEdit</a> |
| } |
| }</pre></div> |
| <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> |
| |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>file: <a href="#type_FilePath">FilePath</a></b></dt><dd> |
| |
| <p> |
| The Dart file to organize directives in. |
| </p> |
| </dd></dl><h4>returns:</h4><dl><dt class="field"><b>edit: <a href="#type_SourceFileEdit">SourceFileEdit</a></b></dt><dd> |
| |
| <p> |
| The file edit that is to be applied to the given file to effect |
| the organizing. |
| </p> |
| </dd></dl></dd></dl> |
| <h2 class="domain"><a name="domain_execution">execution domain</a></h2> |
| <p> |
| The execution domain contains commands related to providing an execution |
| or debugging experience. |
| </p> |
| |
| |
| |
| |
| |
| |
| <h3>Requests</h3><dl><dt class="request"><a name="request_execution.createContext">execution.createContext</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "execution.createContext" |
| "params": { |
| "<b>contextRoot</b>": <a href="#type_FilePath">FilePath</a> |
| } |
| }</pre><br><pre>response: { |
| "<b>id</b>": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| "result": { |
| "<b>id</b>": <a href="#type_ExecutionContextId">ExecutionContextId</a> |
| } |
| }</pre></div> |
| <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> |
| |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>contextRoot: <a href="#type_FilePath">FilePath</a></b></dt><dd> |
| |
| <p> |
| The path of the Dart or HTML file that will be launched, or the |
| path of the directory containing the file. |
| </p> |
| </dd></dl><h4>returns:</h4><dl><dt class="field"><b>id: <a href="#type_ExecutionContextId">ExecutionContextId</a></b></dt><dd> |
| |
| <p> |
| The identifier used to refer to the execution context that was |
| created. |
| </p> |
| </dd></dl></dd><dt class="request"><a name="request_execution.deleteContext">execution.deleteContext</a></dt><dd><div class="box"><pre>request: { |
| "<b>id</b>": String |
| "method": "execution.deleteContext" |
| "params": { |
| "<b>id</b>": <a href="#type_ExecutionContextId">ExecutionContextId</a> |
| } |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| }</pre></div> |
| <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> |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>id: <a href="#type_ExecutionContextId">ExecutionContextId</a></b></dt><dd> |
| |
| <p> |
| The identifier of the execution context that is to be deleted. |
| </p> |
| </dd></dl></dd><dt class="request"><a name="request_execution.getSuggestions">execution.getSuggestions</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "execution.getSuggestions" |
| "params": { |
| "<b>code</b>": String |
| "<b>offset</b>": int |
| "<b>contextFile</b>": <a href="#type_FilePath">FilePath</a> |
| "<b>contextOffset</b>": int |
| "<b>variables</b>": List<<a href="#type_RuntimeCompletionVariable">RuntimeCompletionVariable</a>> |
| "<b>expressions</b>": <span style="color:#999999">optional</span> List<<a href="#type_RuntimeCompletionExpression">RuntimeCompletionExpression</a>> |
| } |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| "result": { |
| "<b>suggestions</b>": <span style="color:#999999">optional</span> List<<a href="#type_CompletionSuggestion">CompletionSuggestion</a>> |
| "<b>expressions</b>": <span style="color:#999999">optional</span> List<<a href="#type_RuntimeCompletionExpression">RuntimeCompletionExpression</a>> |
| } |
| }</pre></div> |
| <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> |
| |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>code: String</b></dt><dd> |
| |
| <p> |
| The code to get suggestions in. |
| </p> |
| </dd><dt class="field"><b>offset: int</b></dt><dd> |
| |
| <p> |
| The offset within the code to get suggestions at. |
| </p> |
| </dd><dt class="field"><b>contextFile: <a href="#type_FilePath">FilePath</a></b></dt><dd> |
| |
| <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> |
| </dd><dt class="field"><b>contextOffset: int</b></dt><dd> |
| |
| <p> |
| The offset in the context file, e.g. the line offset in the current |
| debugger frame. |
| </p> |
| </dd><dt class="field"><b>variables: List<<a href="#type_RuntimeCompletionVariable">RuntimeCompletionVariable</a>></b></dt><dd> |
| |
| <p> |
| The runtime context variables that are potentially referenced in the |
| code. |
| </p> |
| </dd><dt class="field"><b>expressions: List<<a href="#type_RuntimeCompletionExpression">RuntimeCompletionExpression</a>><span style="color:#999999"> (optional)</span></b></dt><dd> |
| |
| <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> |
| </dd></dl><h4>returns:</h4><dl><dt class="field"><b>suggestions: List<<a href="#type_CompletionSuggestion">CompletionSuggestion</a>><span style="color:#999999"> (optional)</span></b></dt><dd> |
| |
| <p> |
| The completion suggestions. In contrast to usual completion request, |
| suggestions for private elements also will be provided. |
| </p> |
| <p> |
| If there are sub-expressions that can have different runtime types, |
| and are considered to be safe to evaluate at runtime (e.g. getters), |
| so using their actual runtime types can improve completion results, |
| the server omits this field in the response, and instead will return |
| the "expressions" field. |
| </p> |
| </dd><dt class="field"><b>expressions: List<<a href="#type_RuntimeCompletionExpression">RuntimeCompletionExpression</a>><span style="color:#999999"> (optional)</span></b></dt><dd> |
| |
| <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> |
| </dd></dl></dd><dt class="request"><a name="request_execution.mapUri">execution.mapUri</a></dt><dd><div class="box"><pre>request: { |
| "<b>id</b>": String |
| "method": "execution.mapUri" |
| "params": { |
| "<b>id</b>": <a href="#type_ExecutionContextId">ExecutionContextId</a> |
| "<b>file</b>": <span style="color:#999999">optional</span> <a href="#type_FilePath">FilePath</a> |
| "<b>uri</b>": <span style="color:#999999">optional</span> String |
| } |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| "result": { |
| "<b>file</b>": <span style="color:#999999">optional</span> <a href="#type_FilePath">FilePath</a> |
| "<b>uri</b>": <span style="color:#999999">optional</span> String |
| } |
| }</pre></div> |
| <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> |
| |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>id: <a href="#type_ExecutionContextId">ExecutionContextId</a></b></dt><dd> |
| |
| <p> |
| The identifier of the execution context in which the URI is to be |
| mapped. |
| </p> |
| </dd><dt class="field"><b>file: <a href="#type_FilePath">FilePath</a><span style="color:#999999"> (optional)</span></b></dt><dd> |
| |
| <p> |
| The path of the file to be mapped into a URI. |
| </p> |
| </dd><dt class="field"><b>uri: String<span style="color:#999999"> (optional)</span></b></dt><dd> |
| |
| <p> |
| The URI to be mapped into a file path. |
| </p> |
| </dd></dl><h4>returns:</h4><dl><dt class="field"><b>file: <a href="#type_FilePath">FilePath</a><span style="color:#999999"> (optional)</span></b></dt><dd> |
| |
| <p> |
| The file to which the URI was mapped. This field is omitted if the |
| uri field was not given in the request. |
| </p> |
| </dd><dt class="field"><b>uri: String<span style="color:#999999"> (optional)</span></b></dt><dd> |
| |
| <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> |
| </dd></dl></dd><dt class="request deprecated"><a name="request_execution.setSubscriptions">execution.setSubscriptions</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "execution.setSubscriptions" |
| "params": { |
| "<b>subscriptions</b>": List<<a href="#type_ExecutionService">ExecutionService</a>> |
| } |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| }</pre></div> |
| <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> |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>subscriptions: List<<a href="#type_ExecutionService">ExecutionService</a>></b></dt><dd> |
| |
| <p> |
| A list of the services being subscribed to. |
| </p> |
| </dd></dl></dd></dl><h3>Notifications</h3><dl><dt class="notification"><a name="notification_execution.launchData">execution.launchData</a></dt><dd><div class="box"><pre>notification: { |
| "event": "execution.launchData" |
| "params": { |
| "<b>file</b>": <a href="#type_FilePath">FilePath</a> |
| "<b>kind</b>": <span style="color:#999999">optional</span> <a href="#type_ExecutableKind">ExecutableKind</a> |
| "<b>referencedFiles</b>": <span style="color:#999999">optional</span> List<<a href="#type_FilePath">FilePath</a>> |
| } |
| }</pre></div> |
| <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> |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>file: <a href="#type_FilePath">FilePath</a></b></dt><dd> |
| |
| <p> |
| The file for which launch data is being provided. This will either |
| be a Dart library or an HTML file. |
| </p> |
| </dd><dt class="field"><b>kind: <a href="#type_ExecutableKind">ExecutableKind</a><span style="color:#999999"> (optional)</span></b></dt><dd> |
| |
| <p> |
| The kind of the executable file. This field is omitted if the file |
| is not a Dart file. |
| </p> |
| </dd><dt class="field"><b>referencedFiles: List<<a href="#type_FilePath">FilePath</a>><span style="color:#999999"> (optional)</span></b></dt><dd> |
| |
| <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> |
| </dd></dl></dd></dl> |
| <h2 class="domain"><a name="domain_diagnostic">diagnostic domain</a></h2> |
| <p> |
| The diagnostic domain contains server diagnostics APIs. |
| </p> |
| |
| |
| <h3>Requests</h3><dl><dt class="request"><a name="request_diagnostic.getDiagnostics">diagnostic.getDiagnostics</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "diagnostic.getDiagnostics" |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| "result": { |
| "<b>contexts</b>": List<<a href="#type_ContextData">ContextData</a>> |
| } |
| }</pre></div> |
| <p>Return server diagnostics.</p> |
| |
| <h4>returns:</h4><dl><dt class="field"><b>contexts: List<<a href="#type_ContextData">ContextData</a>></b></dt><dd> |
| |
| <p>The list of analysis contexts.</p> |
| </dd></dl></dd><dt class="request"><a name="request_diagnostic.getServerPort">diagnostic.getServerPort</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "diagnostic.getServerPort" |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| "result": { |
| "<b>port</b>": int |
| } |
| }</pre></div> |
| <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> |
| |
| <h4>returns:</h4><dl><dt class="field"><b>port: int</b></dt><dd> |
| |
| <p>The diagnostic server port.</p> |
| </dd></dl></dd></dl> |
| |
| |
| <h2 class="domain"><a name="domain_flutter">flutter domain</a></h2> |
| <p> |
| The analysis domain contains API’s related to Flutter support. |
| </p> |
| |
| |
| |
| |
| <h3>Requests</h3><dl><dt class="request"><a name="request_flutter.setSubscriptions">flutter.setSubscriptions</a></dt><dd><div class="box"><pre>request: { |
| "id": String |
| "method": "flutter.setSubscriptions" |
| "params": { |
| "<b>subscriptions</b>": Map<<a href="#type_FlutterService">FlutterService</a>, List<<a href="#type_FilePath">FilePath</a>>> |
| } |
| }</pre><br><pre>response: { |
| "id": String |
| "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a> |
| }</pre></div> |
| <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> |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>subscriptions: Map<<a href="#type_FlutterService">FlutterService</a>, List<<a href="#type_FilePath">FilePath</a>>></b></dt><dd> |
| |
| <p> |
| A table mapping services to a list of the files being |
| subscribed to the service. |
| </p> |
| </dd></dl></dd></dl><h3>Notifications</h3><dl><dt class="notification"><a name="notification_flutter.outline">flutter.outline</a></dt><dd><div class="box"><pre>notification: { |
| "event": "flutter.outline" |
| "params": { |
| "<b>file</b>": <a href="#type_FilePath">FilePath</a> |
| "<b>outline</b>": <a href="#type_FlutterOutline">FlutterOutline</a> |
| } |
| }</pre></div> |
| <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> |
| |
| <h4>parameters:</h4><dl><dt class="field"><b>file: <a href="#type_FilePath">FilePath</a></b></dt><dd> |
| |
| <p> |
| The file with which the outline is associated. |
| </p> |
| </dd><dt class="field"><b>outline: <a href="#type_FlutterOutline">FlutterOutline</a></b></dt><dd> |
| |
| <p> |
| The outline associated with the file. |
| </p> |
| </dd></dl></dd></dl> |
| |
| <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> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <dl><dt class="typeDefinition"><a name="type_AddContentOverlay">AddContentOverlay: object</a></dt><dd> |
| <p> |
| A directive to begin overlaying the contents of a file. The supplied |
| content will be used for analysis in place of the file contents in the |
| filesystem. |
| </p> |
| <p> |
| If this directive is used on a file that already has a file content |
| overlay, the old overlay is discarded and replaced with the new one. |
| </p> |
| |
| <dl><dt class="field"><b>type = "add"</b></dt><dd> |
| |
| |