@ydb-platform/monaco-ghost
Version:
Inline completion adapter for Monaco Editor
53 lines • 1.9 kB
TypeScript
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