monaco-sql-languages
Version:
SQL languages for the Monaco Editor, based on monaco-languages.
96 lines (95 loc) • 3.77 kB
TypeScript
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>;