UNPKG

@azure/cosmos-language-service

Version:

Cosmos DB SQL Language Service for the Monaco editor

33 lines (24 loc) 1.11 kB
import { LanguageService } from "../language-service/LanguageService"; import { CosmosDBSqlLexer } from "../cosmosdb-sql/generated/CosmosDBSqlLexer"; import { CosmosDBSqlParser } from "../cosmosdb-sql/generated/CosmosDBSqlParser"; import { CosmosDBSqlKeywords } from "../cosmosdb-sql/grammar/CosmosDBSqlKeywords"; enum ParseReason { GetCompletionWords = 1, GetErrors = 2 } export module LanguageServiceWorker { // Respond to message from parent thread onmessage = (event: MessageEvent) => { const code: string = event.data.code; const reason : number = event.data.reason; let parseResults = []; let languageService = new LanguageService(CosmosDBSqlLexer, CosmosDBSqlParser, CosmosDBSqlKeywords.keywordsRegisteredForCompletion); if (reason == ParseReason.GetCompletionWords) { parseResults = languageService.getCompletionWords(code); } else if (reason == ParseReason.GetErrors) { parseResults = languageService.getSyntaxErrors(code); } postMessage(parseResults, undefined); close(); }; }