mirror of
https://github.com/Microsoft/vscode
synced 2024-09-13 21:55:38 +00:00
Expose the inline completions provider in the monaco editor.
This commit is contained in:
parent
e9579534bb
commit
67a8548712
|
@ -686,7 +686,7 @@ export interface CompletionItemProvider {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* How an {@link InlineCompletionItemProvider inline completion provider} was triggered.
|
* How an {@link InlineCompletionsProvider inline completion provider} was triggered.
|
||||||
*/
|
*/
|
||||||
export enum InlineCompletionTriggerKind {
|
export enum InlineCompletionTriggerKind {
|
||||||
/**
|
/**
|
||||||
|
@ -709,9 +709,6 @@ export interface InlineCompletionContext {
|
||||||
readonly triggerKind: InlineCompletionTriggerKind;
|
readonly triggerKind: InlineCompletionTriggerKind;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @internal
|
|
||||||
*/
|
|
||||||
export interface InlineCompletion {
|
export interface InlineCompletion {
|
||||||
/**
|
/**
|
||||||
* The text to insert.
|
* The text to insert.
|
||||||
|
@ -729,20 +726,21 @@ export interface InlineCompletion {
|
||||||
readonly command?: Command;
|
readonly command?: Command;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @internal
|
|
||||||
*/
|
|
||||||
export interface InlineCompletions<TItem extends InlineCompletion = InlineCompletion> {
|
export interface InlineCompletions<TItem extends InlineCompletion = InlineCompletion> {
|
||||||
readonly items: readonly TItem[];
|
readonly items: readonly TItem[];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @internal
|
|
||||||
*/
|
|
||||||
export interface InlineCompletionsProvider<T extends InlineCompletions = InlineCompletions> {
|
export interface InlineCompletionsProvider<T extends InlineCompletions = InlineCompletions> {
|
||||||
provideInlineCompletions(model: model.ITextModel, position: Position, context: InlineCompletionContext, token: CancellationToken): ProviderResult<T>;
|
provideInlineCompletions(model: model.ITextModel, position: Position, context: InlineCompletionContext, token: CancellationToken): ProviderResult<T>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Will be called when an item is shown.
|
||||||
|
*/
|
||||||
handleItemDidShow?(completions: T, item: T['items'][number]): void;
|
handleItemDidShow?(completions: T, item: T['items'][number]): void;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Will be called when a completions list is no longer in use and can be garbage-collected.
|
||||||
|
*/
|
||||||
freeInlineCompletions(completions: T): void;
|
freeInlineCompletions(completions: T): void;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -361,7 +361,7 @@ export enum InlayHintKind {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* How an {@link InlineCompletionItemProvider inline completion provider} was triggered.
|
* How an {@link InlineCompletionsProvider inline completion provider} was triggered.
|
||||||
*/
|
*/
|
||||||
export enum InlineCompletionTriggerKind {
|
export enum InlineCompletionTriggerKind {
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -547,6 +547,13 @@ export function registerDocumentRangeSemanticTokensProvider(languageId: string,
|
||||||
return modes.DocumentRangeSemanticTokensProviderRegistry.register(languageId, provider);
|
return modes.DocumentRangeSemanticTokensProviderRegistry.register(languageId, provider);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register an inline completions provider.
|
||||||
|
*/
|
||||||
|
export function registerInlineCompletionsProvider(languageId: string, provider: modes.InlineCompletionsProvider): IDisposable {
|
||||||
|
return modes.InlineCompletionsProviderRegistry.register(languageId, provider);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Contains additional diagnostic information about the context in which
|
* Contains additional diagnostic information about the context in which
|
||||||
* a [code action](#CodeActionProvider.provideCodeActions) is run.
|
* a [code action](#CodeActionProvider.provideCodeActions) is run.
|
||||||
|
@ -613,6 +620,7 @@ export function createMonacoLanguagesAPI(): typeof monaco.languages {
|
||||||
registerSelectionRangeProvider: <any>registerSelectionRangeProvider,
|
registerSelectionRangeProvider: <any>registerSelectionRangeProvider,
|
||||||
registerDocumentSemanticTokensProvider: <any>registerDocumentSemanticTokensProvider,
|
registerDocumentSemanticTokensProvider: <any>registerDocumentSemanticTokensProvider,
|
||||||
registerDocumentRangeSemanticTokensProvider: <any>registerDocumentRangeSemanticTokensProvider,
|
registerDocumentRangeSemanticTokensProvider: <any>registerDocumentRangeSemanticTokensProvider,
|
||||||
|
registerInlineCompletionsProvider: <any>registerInlineCompletionsProvider,
|
||||||
|
|
||||||
// enums
|
// enums
|
||||||
DocumentHighlightKind: standaloneEnums.DocumentHighlightKind,
|
DocumentHighlightKind: standaloneEnums.DocumentHighlightKind,
|
||||||
|
|
38
src/vs/monaco.d.ts
vendored
38
src/vs/monaco.d.ts
vendored
|
@ -5330,6 +5330,11 @@ declare namespace monaco.languages {
|
||||||
*/
|
*/
|
||||||
export function registerDocumentRangeSemanticTokensProvider(languageId: string, provider: DocumentRangeSemanticTokensProvider): IDisposable;
|
export function registerDocumentRangeSemanticTokensProvider(languageId: string, provider: DocumentRangeSemanticTokensProvider): IDisposable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register an inline completions provider.
|
||||||
|
*/
|
||||||
|
export function registerInlineCompletionsProvider(languageId: string, provider: InlineCompletionsProvider): IDisposable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Contains additional diagnostic information about the context in which
|
* Contains additional diagnostic information about the context in which
|
||||||
* a [code action](#CodeActionProvider.provideCodeActions) is run.
|
* a [code action](#CodeActionProvider.provideCodeActions) is run.
|
||||||
|
@ -5837,7 +5842,7 @@ declare namespace monaco.languages {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* How an {@link InlineCompletionItemProvider inline completion provider} was triggered.
|
* How an {@link InlineCompletionsProvider inline completion provider} was triggered.
|
||||||
*/
|
*/
|
||||||
export enum InlineCompletionTriggerKind {
|
export enum InlineCompletionTriggerKind {
|
||||||
/**
|
/**
|
||||||
|
@ -5859,6 +5864,37 @@ declare namespace monaco.languages {
|
||||||
readonly triggerKind: InlineCompletionTriggerKind;
|
readonly triggerKind: InlineCompletionTriggerKind;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface InlineCompletion {
|
||||||
|
/**
|
||||||
|
* The text to insert.
|
||||||
|
* If the text contains a line break, the range must end at the end of a line.
|
||||||
|
* If existing text should be replaced, the existing text must be a prefix of the text to insert.
|
||||||
|
*/
|
||||||
|
readonly text: string;
|
||||||
|
/**
|
||||||
|
* The range to replace.
|
||||||
|
* Must begin and end on the same line.
|
||||||
|
*/
|
||||||
|
readonly range?: IRange;
|
||||||
|
readonly command?: Command;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface InlineCompletions<TItem extends InlineCompletion = InlineCompletion> {
|
||||||
|
readonly items: readonly TItem[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface InlineCompletionsProvider<T extends InlineCompletions = InlineCompletions> {
|
||||||
|
provideInlineCompletions(model: editor.ITextModel, position: Position, context: InlineCompletionContext, token: CancellationToken): ProviderResult<T>;
|
||||||
|
/**
|
||||||
|
* Will be called when an item is shown.
|
||||||
|
*/
|
||||||
|
handleItemDidShow?(completions: T, item: T['items'][number]): void;
|
||||||
|
/**
|
||||||
|
* Will be called when a completions list is no longer in use and can be garbage-collected.
|
||||||
|
*/
|
||||||
|
freeInlineCompletions(completions: T): void;
|
||||||
|
}
|
||||||
|
|
||||||
export interface CodeAction {
|
export interface CodeAction {
|
||||||
title: string;
|
title: string;
|
||||||
command?: Command;
|
command?: Command;
|
||||||
|
|
Loading…
Reference in a new issue