You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
vscode-api-cn.js/interfaces/CompletionItemProvider.html

275 lines
15 KiB

<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>CompletionItemProvider | VS Code API 中文文档</title>
<meta name="description" content="Documentation for VS Code API 中文文档">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
<script async src="../assets/js/search.js" id="search-script"></script>
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../index.html" class="title">VS Code API 中文文档</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
<input type="checkbox" id="tsd-filter-externals" checked />
<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<li>
<a href="../index.html">VS Code API 中文文档</a>
</li>
<li>
<a href="CompletionItemProvider.html">CompletionItemProvider</a>
</li>
</ul>
<h1>Interface CompletionItemProvider&lt;T&gt;</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The completion item provider interface defines the contract between extensions and
<a href="https://code.visualstudio.com/docs/editor/intellisense">IntelliSense</a>.</p>
</div>
<p>Providers can delay the computation of the <a href="../classes/CompletionItem.html#detail"><code>detail</code></a>
and <a href="../classes/CompletionItem.html#documentation"><code>documentation</code></a> properties by implementing the
<a href="CompletionItemProvider.html#resolveCompletionItem"><code>resolveCompletionItem</code></a>-function. However, properties that
are needed for the initial sorting and filtering, like <code>sortText</code>, <code>filterText</code>, <code>insertText</code>, and <code>range</code>, must
not be changed during resolve.</p>
<p>Providers are asked for completions either explicitly by a user gesture or -depending on the configuration-
implicitly when typing words or trigger characters.</p>
</div>
</section>
<section class="tsd-panel tsd-type-parameters">
<h3>Type parameters</h3>
<ul class="tsd-type-parameters">
<li>
<h4>T<span class="tsd-signature-symbol">: </span><a href="../classes/CompletionItem.html" class="tsd-signature-type" data-tsd-kind="Class">CompletionItem</a> = <a href="../classes/CompletionItem.html" class="tsd-signature-type" data-tsd-kind="Class">CompletionItem</a></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">CompletionItemProvider</span>
</li>
</ul>
</section>
<section class="tsd-panel-group tsd-index-group">
<h2>索引</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Methods</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-method tsd-parent-kind-interface"><a href="CompletionItemProvider.html#provideCompletionItems" class="tsd-kind-icon">provide<wbr>Completion<wbr>Items</a></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><a href="CompletionItemProvider.html#resolveCompletionItem" class="tsd-kind-icon">resolve<wbr>Completion<wbr>Item</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Methods</h2>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
<a name="provideCompletionItems" class="tsd-anchor"></a>
<h3>provide<wbr>Completion<wbr>Items</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
<li class="tsd-signature tsd-kind-icon">provide<wbr>Completion<wbr>Items<span class="tsd-signature-symbol">(</span>document<span class="tsd-signature-symbol">: </span><a href="TextDocument.html" class="tsd-signature-type" data-tsd-kind="Interface">TextDocument</a>, position<span class="tsd-signature-symbol">: </span><a href="../classes/Position.html" class="tsd-signature-type" data-tsd-kind="Class">Position</a>, token<span class="tsd-signature-symbol">: </span><a href="CancellationToken.html" class="tsd-signature-type" data-tsd-kind="Interface">CancellationToken</a>, context<span class="tsd-signature-symbol">: </span><a href="CompletionContext.html" class="tsd-signature-type" data-tsd-kind="Interface">CompletionContext</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../index.html#ProviderResult" class="tsd-signature-type" data-tsd-kind="Type alias">ProviderResult</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">T</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> | </span><a href="../classes/CompletionList.html" class="tsd-signature-type" data-tsd-kind="Class">CompletionList</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">T</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/youngjuning/vscode-api-cn/blob/d11038c/vscode.d.ts#L4284">vscode.d.ts:4284</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Provide completion items for the given position and document.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>document: <a href="TextDocument.html" class="tsd-signature-type" data-tsd-kind="Interface">TextDocument</a></h5>
<div class="tsd-comment tsd-typography">
<p>The document in which the command was invoked.</p>
</div>
</li>
<li>
<h5>position: <a href="../classes/Position.html" class="tsd-signature-type" data-tsd-kind="Class">Position</a></h5>
<div class="tsd-comment tsd-typography">
<p>The position at which the command was invoked.</p>
</div>
</li>
<li>
<h5>token: <a href="CancellationToken.html" class="tsd-signature-type" data-tsd-kind="Interface">CancellationToken</a></h5>
<div class="tsd-comment tsd-typography">
<p>A cancellation token.</p>
</div>
</li>
<li>
<h5>context: <a href="CompletionContext.html" class="tsd-signature-type" data-tsd-kind="Interface">CompletionContext</a></h5>
<div class="tsd-comment tsd-typography">
<p>How the completion was triggered.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="../index.html#ProviderResult" class="tsd-signature-type" data-tsd-kind="Type alias">ProviderResult</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">T</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> | </span><a href="../classes/CompletionList.html" class="tsd-signature-type" data-tsd-kind="Class">CompletionList</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">T</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">&gt;</span></h4>
<p>An array of completions, a <a href="../classes/CompletionList.html">completion list</a>, or a thenable that resolves to either.
The lack of a result can be signaled by returning <code>undefined</code>, <code>null</code>, or an empty array.</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
<a name="resolveCompletionItem" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> resolve<wbr>Completion<wbr>Item</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
<li class="tsd-signature tsd-kind-icon">resolve<wbr>Completion<wbr>Item<span class="tsd-signature-symbol">(</span>item<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">T</span>, token<span class="tsd-signature-symbol">: </span><a href="CancellationToken.html" class="tsd-signature-type" data-tsd-kind="Interface">CancellationToken</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../index.html#ProviderResult" class="tsd-signature-type" data-tsd-kind="Type alias">ProviderResult</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">T</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/youngjuning/vscode-api-cn/blob/d11038c/vscode.d.ts#L4305">vscode.d.ts:4305</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Given a completion item fill in more data, like <a href="../classes/CompletionItem.html#documentation">doc-comment</a>
or <a href="../classes/CompletionItem.html#detail">details</a>.</p>
</div>
<p>The editor will only resolve a completion item once.</p>
<p><em>Note</em> that this function is called when completion items are already showing in the UI or when an item has been
selected for insertion. Because of that, no property that changes the presentation (label, sorting, filtering etc)
or the (primary) insert behaviour (<a href="../classes/CompletionItem.html#insertText">insertText</a>) can be changed.</p>
<p>This function may fill in <a href="../classes/CompletionItem.html#additionalTextEdits">additionalTextEdits</a>. However, that means an item might be
inserted <em>before</em> resolving is done and in that case the editor will do a best effort to still apply those additional
text edits.</p>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>item: <span class="tsd-signature-type">T</span></h5>
<div class="tsd-comment tsd-typography">
<p>A completion item currently active in the UI.</p>
</div>
</li>
<li>
<h5>token: <a href="CancellationToken.html" class="tsd-signature-type" data-tsd-kind="Interface">CancellationToken</a></h5>
<div class="tsd-comment tsd-typography">
<p>A cancellation token.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="../index.html#ProviderResult" class="tsd-signature-type" data-tsd-kind="Type alias">ProviderResult</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">T</span><span class="tsd-signature-symbol">&gt;</span></h4>
<p>The resolved completion item or a thenable that resolves to of such. It is OK to return the given
<code>item</code>. When no result is returned, the given <code>item</code> will be used.</p>
</li>
</ul>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<nav class="tsd-navigation primary">
<ul>
<li class=" ">
<a href="../index.html">Exports</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-interface tsd-has-type-parameter">
<a href="CompletionItemProvider.html" class="tsd-kind-icon">Completion<wbr>Item<wbr>Provider</a>
<ul>
<li class=" tsd-kind-method tsd-parent-kind-interface">
<a href="CompletionItemProvider.html#provideCompletionItems" class="tsd-kind-icon">provide<wbr>Completion<wbr>Items</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-interface">
<a href="CompletionItemProvider.html#resolveCompletionItem" class="tsd-kind-icon">resolve<wbr>Completion<wbr>Item</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<footer class="with-border-bottom">
<div class="container">
<h2>图例</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-property tsd-parent-kind-class"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited property</span></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-static"><span class="tsd-kind-icon">Static property</span></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-static"><span class="tsd-kind-icon">Static method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated by <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>