"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); // The module 'vscode' contains the VS Code extensibility API // Import the module and reference it with the alias vscode in your code below const vscode = require("vscode"); const languageClient = require("vscode-languageclient"); const path = require("path"); const fs = require("fs"); // Defines the search path of your language server DLL. (.NET Core) const languageServerPaths = [ "../UpsilonLanguageServer/UpsilonLanguageServer/bin/Debug/netcoreapp2.1/UpsilonLanguageServer.dll", "./server/UpsilonLanguageServer.dll" ]; function activateLanguageServer(context) { // The server is implemented in an executable application. let serverModule = null; for (let p of languageServerPaths) { p = context.asAbsolutePath(p); // console.log(p); if (fs.existsSync(p)) { serverModule = p; break; } } if (!serverModule) throw new URIError("Cannot find the language server module."); let workPath = path.dirname(serverModule); console.log(`Use ${serverModule} as server module.`); console.log(`Work path: ${workPath}.`); // If the extension is launched in debug mode then the debug server options are used // Otherwise the run options are used let serverOptions = { run: { command: "dotnet", args: [serverModule], options: { cwd: workPath } }, debug: { command: "dotnet", args: [serverModule, "--debug"], options: { cwd: workPath } } }; // Options to control the language client let clientOptions = { // Register the server for Upsilon documents documentSelector: [ { language: "upsilon", scheme: "file" } ], synchronize: { configurationSection: "upsilonLanguageServer", // Notify the server about file changes to '.clientrc files contain in the workspace fileEvents: [ vscode.workspace.createFileSystemWatcher("**/*.clientrc"), vscode.workspace.createFileSystemWatcher("**/*.yup"), vscode.workspace.createFileSystemWatcher("**/*.lua"), vscode.workspace.createFileSystemWatcher("**/.upsilon/*.json") ] } }; // Create the language client and start the client. let client = new languageClient.LanguageClient("upsilonLanguageServer", "Upsilon Language Server", serverOptions, clientOptions); let disposable = client.start(); // Push the disposable to the context's subscriptions so that the // client can be deactivated on extension deactivation context.subscriptions.push(disposable); } // this method is called when your extension is activated // your extension is activated the very first time the command is executed function activate(context) { console.log("Upsilon extension is now activated."); activateLanguageServer(context); } exports.activate = activate; // this method is called when your extension is deactivated function deactivate() { } exports.deactivate = deactivate; //# sourceMappingURL=extension.js.map