UNPKG

@ydb-platform/monaco-ghost

Version:

Inline completion adapter for Monaco Editor

53 lines 1.9 kB
import type * as monaco from 'monaco-editor/esm/vs/editor/editor.api.js'; import { AcceptEvent, DeclineEvent, GhostEventEmitter, IgnoreEvent } from './events'; export interface PromptPosition { lineNumber: number; column: number; } export interface PromptFragment { text: string; start: PromptPosition; end: PromptPosition; } export interface PromptFile { path: string; fragments: PromptFragment[]; cursorPosition: PromptPosition; } export interface Suggestions { items: string[]; requestId?: string; } export type DiscardReason = 'OnCancel'; export interface ICodeCompletionAPI { getCodeAssistSuggestions(data: PromptFile[]): Promise<Suggestions>; } export interface ICodeCompletionEventHandlers { onCompletionAccept?: (event: AcceptEvent) => void; onCompletionDecline?: (event: DeclineEvent) => void; onCompletionIgnore?: (event: IgnoreEvent) => void; onCompletionError?: (error: Error) => void; } export interface EnrichedCompletion extends monaco.languages.InlineCompletion { pristine: string; } export interface ICodeCompletionService extends monaco.languages.InlineCompletionsProvider { events: GhostEventEmitter; handleItemDidShow(completions: monaco.languages.InlineCompletions<EnrichedCompletion>, item: EnrichedCompletion): void; handlePartialAccept(completions: monaco.languages.InlineCompletions, item: monaco.languages.InlineCompletion, acceptedLetters: number): void; handleAccept(params: { requestId: string; suggestionText: string; }): void; commandDiscard(reason: DiscardReason, editor: monaco.editor.IStandaloneCodeEditor): void; emptyCache(): void; hasActiveSuggestions(): boolean; } export interface CodeCompletionConfig { debounceTime?: number; suggestionCache?: { enabled?: boolean; }; sessionId?: string; } //# sourceMappingURL=types.d.ts.map