UNPKG

monaco-sql-languages

Version:

SQL languages for the Monaco Editor, based on monaco-languages.

96 lines (95 loc) 3.77 kB
import { EntityContext, Suggestions } from 'dt-sql-parser'; import { editor, IEvent, IRange, languages, Position } from './fillers/monaco-editor-core'; /** * A completion item. * ICompletionItem is pretty much the same as {@link languages.CompletionItem}, * with the only difference being that the range and insertText is optional. */ export interface ICompletionItem extends Omit<languages.CompletionItem, 'range' | 'insertText'> { range?: IRange | languages.CompletionItemRanges; insertText?: string; } /** * ICompletionList is pretty much the same as {@link languages.CompletionList}, * with the only difference being that the type of suggestion is {@link ICompletionItem} */ export interface ICompletionList extends Omit<languages.CompletionList, 'suggestions'> { suggestions: ICompletionItem[]; } /** * A service to build completions. * @param model monaco TextModel which triggers completion * @param position location that triggers completion * @param completionContext context of completion * @param suggestions suggestions for completion */ export type CompletionService = (model: editor.IReadOnlyModel, position: Position, completionContext: languages.CompletionContext, suggestions: Suggestions | null, entities: EntityContext[] | null) => Promise<ICompletionItem[] | ICompletionList>; export interface CompletionOptions { enable: boolean; /** * Define a service to customize completionItems. * By default, only keyword autocomplete items are included. */ completionService: CompletionService; triggerCharacters: string[]; } export interface ModeConfiguration { /** * Defines whether the built-in completionItemProvider is enabled. * Defaults to true. */ readonly completionItems: CompletionOptions; /** * Defines whether the built-in diagnostic provider is enabled. */ readonly diagnostics: boolean; /** * Defines whether the built-in hoverProvider is enabled. */ /** * Defines whether the built-in definitions provider is enabled. */ readonly definitions?: boolean; /** * Defines whether the built-in rename provider is enabled. */ /** * Defines whether the built-in references provider is enabled. */ readonly references?: boolean; } /** * A function to preprocess code. * @param code editor value */ export type PreprocessCode = (code: string) => string; export interface LanguageServiceDefaults { readonly languageId: string; readonly onDidChange: IEvent<LanguageServiceDefaults>; readonly modeConfiguration: ModeConfiguration; preprocessCode: PreprocessCode | null; completionService: CompletionService; triggerCharacters: string[]; setModeConfiguration(modeConfiguration: ModeConfiguration): void; } export declare class LanguageServiceDefaultsImpl implements LanguageServiceDefaults { private _onDidChange; private _modeConfiguration; private _languageId; private _preprocessCode; constructor(languageId: string, modeConfiguration: ModeConfiguration, preprocessCode?: PreprocessCode | null); get onDidChange(): IEvent<LanguageServiceDefaults>; get languageId(): string; get modeConfiguration(): ModeConfiguration; get completionService(): CompletionService; get triggerCharacters(): string[]; get preprocessCode(): PreprocessCode | null; setModeConfiguration(modeConfiguration: ModeConfiguration): void; } /** * A built-in completion service. * It will invoke when there is no external completionService. * It will only build completion items of keywords. */ export declare const defaultCompletionService: CompletionService; export declare const modeConfigurationDefault: Required<ModeConfiguration>;