UNPKG

monaco-sql-languages

Version:

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

75 lines (74 loc) 3.24 kB
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; export class BaseSQLWorker { constructor(_ctx, _createData) { this.keywords = []; } doValidation(code) { return __awaiter(this, void 0, void 0, function* () { code = code || this.getTextDocument(); if (code) { const result = this.parser.validate(code); return Promise.resolve(result); } return Promise.resolve([]); }); } parserTreeToString(code) { return __awaiter(this, void 0, void 0, function* () { if (code) { const parser = this.parser.createParser(code); const parseTree = parser.program(); const result = parseTree.toStringTree(parser); return Promise.resolve(result); } return Promise.resolve(''); }); } doCompletion(code, position) { return __awaiter(this, void 0, void 0, function* () { code = code || this.getTextDocument(); if (code) { const suggestions = this.parser.getSuggestionAtCaretPosition(code, position); return Promise.resolve(suggestions); } return Promise.resolve(null); }); } doCompletionWithEntities(code, position) { return __awaiter(this, void 0, void 0, function* () { var _a; code = code || this.getTextDocument(); if (code) { const suggestions = this.parser.getSuggestionAtCaretPosition(code, position); let allEntities = null; if ((_a = suggestions === null || suggestions === void 0 ? void 0 : suggestions.syntax) === null || _a === void 0 ? void 0 : _a.length) { allEntities = this.parser.getAllEntities(code, position); } return Promise.resolve([suggestions, allEntities]); } return Promise.resolve([null, null]); }); } getAllEntities(code, position) { return __awaiter(this, void 0, void 0, function* () { code = code || this.getTextDocument(); if (code) { const allEntities = this.parser.getAllEntities(code, position); return Promise.resolve(allEntities); } return Promise.resolve(null); }); } getTextDocument() { const model = this._ctx.getMirrorModels()[0]; // When there are multiple files open, this will be an array return model && model.getValue(); } }