UNPKG

flink-sql-language-server

Version:

A LSP-based language server for Apache Flink SQL

136 lines (135 loc) 5.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.handleExecuteCommand = void 0; const constants_1 = require("./constants"); const protocol_translation_1 = require("./protocol-translation"); function handleExecuteCommand(documents, lspServer, params) { if (params.command === constants_1.EXTRACT_SQL_STRUCTURE_COMMAND) { const uri = params.arguments?.[0]; const options = params.arguments?.[1]; if (!uri) { console.error('Language Server: Invalid document URI provided for Extract SQL Structure command.'); return; } const document = documents.get(uri); if (!document) { console.error('Language Server: TextDocument not found.'); return; } if (options !== undefined && typeof options === 'object') { return lspServer.parseStructure(document, options); } return lspServer.parseStructure(document); } else if (params.command === constants_1.REGISTER_SCHEMAS_COMMAND) { const registerMode = params.arguments?.[0]; if (registerMode !== 'set' && registerMode !== 'patch') { console.error("Language Server: 1st argument must be either 'patch' or 'set' to indicate register mode."); return; } const schemas = params.arguments?.[1]; if (!schemas || typeof schemas !== 'object') { console.error('Language Server: Schemas must be provided for Register Schemas command.'); return; } lspServer.schemaRegistry.register(registerMode, schemas); } else if (params.command === constants_1.EXTRACT_SCHEMA_CONTEXTS_COMMAND) { const uri = params.arguments?.[0]; if (!uri) { console.error('Language Server: Invalid document URI provided for Extract Schema Contexts command.'); return; } const document = documents.get(uri); if (!document) { console.error('Language Server: TextDocument not found.'); return; } const range = params.arguments?.[1] || undefined; if (range) { try { if (!(0, protocol_translation_1.instanceOfRange)(range)) { console.error('Language Server: 2nd argument must be Range type.'); return; } } catch { console.error('Language Server: 2nd argument must be Range type.'); return; } } return lspServer.extractSchemaContexts(document, range); } else if (params.command === constants_1.PREVIEW_SCRIPT_COMMAND) { const uri = params.arguments?.[0]; if (!uri) { console.error('Language Server: Invalid document URI provided for Preview Script command.'); return; } const document = documents.get(uri); if (!document) { console.error('Language Server: TextDocument not found.'); return; } const context = params.arguments?.[1] || { sources: [], sinks: [] }; if (!context.sinks || !context.sources) { console.error('Language Server: Preview contexts not found.'); return; } const range = params.arguments?.[2] || undefined; if (range) { try { if (!(0, protocol_translation_1.instanceOfRange)(range)) { console.error('Language Server: 3rd argument must be Range type.'); return; } } catch { console.error('Language Server: 3rd argument must be Range type.'); return; } } return lspServer.generatePreviewScript(document, context, range); } else if (params.command === constants_1.COLLECT_TOKENS_COMMAND) { const uri = params.arguments?.[0]; if (!uri) { console.error('Language Server: Invalid document URI provided for Collect Tokens command.'); return; } const document = documents.get(uri); if (!document) { console.error('Language Server: TextDocument not found.'); return; } const range = params.arguments?.[1] || undefined; if (range) { try { if (!(0, protocol_translation_1.instanceOfRange)(range)) { console.error('Language Server: 2nd argument must be Range type.'); return; } } catch { console.error('Language Server: 2nd argument must be Range type.'); return; } } return lspServer.collectTokens(document, range); } else if (params.command === constants_1.COLUMN_LEVEL_LINEAGE_COMMAND) { const uri = params.arguments?.[0]; if (!uri) { console.error('Language Server: Invalid document URI provided for Column-level lineage command.'); return; } const document = documents.get(uri); if (!document) { console.error('Language Server: TextDocument not found.'); return; } const options = params.arguments?.[1] || { mergeLeaves: true }; return lspServer.getLineage(document, options); } } exports.handleExecuteCommand = handleExecuteCommand;