UNPKG

monaco-sql-languages

Version:

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

59 lines (58 loc) 1.92 kB
import { Emitter, languages } from './fillers/monaco-editor-core'; export class LanguageServiceDefaultsImpl { constructor(languageId, modeConfiguration, preprocessCode) { this._onDidChange = new Emitter(); this._languageId = languageId; this.setModeConfiguration(modeConfiguration); this._preprocessCode = preprocessCode !== null && preprocessCode !== void 0 ? preprocessCode : null; } get onDidChange() { return this._onDidChange.event; } get languageId() { return this._languageId; } get modeConfiguration() { return this._modeConfiguration; } get completionService() { return this._modeConfiguration.completionItems.completionService; } get triggerCharacters() { return this._modeConfiguration.completionItems.triggerCharacters; } get preprocessCode() { return this._preprocessCode; } setModeConfiguration(modeConfiguration) { this._modeConfiguration = modeConfiguration || Object.create(null); this._onDidChange.fire(this); } } /** * A built-in completion service. * It will invoke when there is no external completionService. * It will only build completion items of keywords. */ export const defaultCompletionService = function (_model, _position, _context, suggestions) { if (!suggestions) { return Promise.resolve([]); } const { keywords } = suggestions; const keywordsCompletionItems = keywords.map((kw) => ({ label: kw, kind: languages.CompletionItemKind.Keyword, detail: 'keyword' })); return Promise.resolve(keywordsCompletionItems); }; export const modeConfigurationDefault = { completionItems: { enable: true, completionService: defaultCompletionService, triggerCharacters: ['.', ' '] }, diagnostics: true, definitions: true, references: true };