mirror of
https://github.com/microsoft/vscode-extension-samples.git
synced 2026-06-13 07:10:26 +08:00
72 lines
2.9 KiB
TypeScript
72 lines
2.9 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
declare module 'vscode' {
|
|
|
|
// https://github.com/microsoft/vscode/issues/124024 @hediet
|
|
|
|
export namespace languages {
|
|
/**
|
|
* Registers an inline completion provider.
|
|
*
|
|
* Multiple providers can be registered for a language. In that case providers are asked in
|
|
* parallel and the results are merged. A failing provider (rejected promise or exception) will
|
|
* not cause a failure of the whole operation.
|
|
*
|
|
* @param selector A selector that defines the documents this provider is applicable to.
|
|
* @param provider An inline completion provider.
|
|
* @param metadata Metadata about the provider.
|
|
* @return A {@link Disposable} that unregisters this provider when being disposed.
|
|
*/
|
|
export function registerInlineCompletionItemProvider(selector: DocumentSelector, provider: InlineCompletionItemProvider, metadata: InlineCompletionItemProviderMetadata): Disposable;
|
|
}
|
|
|
|
export interface InlineCompletionItem {
|
|
/**
|
|
* If set to `true`, unopened closing brackets are removed and unclosed opening brackets are closed.
|
|
* Defaults to `false`.
|
|
*/
|
|
completeBracketPairs?: boolean;
|
|
}
|
|
|
|
export interface InlineCompletionItemProviderMetadata {
|
|
/**
|
|
* Specifies a list of extension ids that this provider yields to if they return a result.
|
|
* If some inline completion provider registered by such an extension returns a result, this provider is not asked.
|
|
*/
|
|
yieldTo: string[];
|
|
}
|
|
|
|
export interface InlineCompletionItemProvider {
|
|
/**
|
|
* @param completionItem The completion item that was shown.
|
|
* @param updatedInsertText The actual insert text (after brackets were fixed).
|
|
*/
|
|
// eslint-disable-next-line local/vscode-dts-provider-naming
|
|
handleDidShowCompletionItem?(completionItem: InlineCompletionItem, updatedInsertText: string): void;
|
|
|
|
/**
|
|
* Is called when an inline completion item was accepted partially.
|
|
* @param acceptedLength The length of the substring of the inline completion that was accepted already.
|
|
*/
|
|
// eslint-disable-next-line local/vscode-dts-provider-naming
|
|
handleDidPartiallyAcceptCompletionItem?(completionItem: InlineCompletionItem, acceptedLength: number): void;
|
|
}
|
|
|
|
// When finalizing `commands`, make sure to add a corresponding constructor parameter.
|
|
export interface InlineCompletionList {
|
|
/**
|
|
* A list of commands associated with the inline completions of this list.
|
|
*/
|
|
commands?: Command[];
|
|
|
|
/**
|
|
* When set and the user types a suggestion without derivating from it, the inline suggestion is not updated.
|
|
* Defaults to false (might change).
|
|
*/
|
|
enableForwardStability?: boolean;
|
|
}
|
|
}
|