diff --git a/client/out/languageserver.js b/client/out/languageserver.js index 6c7429c4a6f0a4a8eb42a743fc0e4233d7138b78..15fc87451ccbc59b8de50f9def690f8811bec0f1 100644 --- a/client/out/languageserver.js +++ b/client/out/languageserver.js @@ -67,6 +67,24 @@ class LuaClient { }; let config = vscode_1.workspace.getConfiguration(undefined, (_a = vscode.workspace.workspaceFolders) === null || _a === void 0 ? void 0 : _a[0]); let commandParam = config.get("Lua.misc.parameters"); + let command = yield this.getCommand(config); + let serverOptions = { + command: command, + args: commandParam, + }; + this.client = new node_1.LanguageClient('Lua', 'Lua', serverOptions, clientOptions); + //client.registerProposedFeatures(); + yield this.client.start(); + this.onCommand(); + this.statusBar(); + }); + } + getCommand(config) { + return __awaiter(this, void 0, void 0, function* () { + let executablePath = config.get("Lua.misc.executablePath"); + if (executablePath && executablePath != "") { + return executablePath; + } let command; let platform = os.platform(); let binDir; @@ -86,15 +104,7 @@ class LuaClient { yield fs.promises.chmod(command, '777'); break; } - let serverOptions = { - command: command, - args: commandParam, - }; - this.client = new node_1.LanguageClient('Lua', 'Lua', serverOptions, clientOptions); - //client.registerProposedFeatures(); - yield this.client.start(); - this.onCommand(); - this.statusBar(); + return command; }); } stop() { diff --git a/client/src/languageserver.ts b/client/src/languageserver.ts index 5d11ecf3c6110c62ad26c62ca5335bbb14fba6a5..cf31da004c55977edbcfd492249ac6658bcdeaf4 100644 --- a/client/src/languageserver.ts +++ b/client/src/languageserver.ts @@ -72,6 +72,31 @@ class LuaClient { let config = Workspace.getConfiguration(undefined, vscode.workspace.workspaceFolders?.[0]); let commandParam: string[] = config.get("Lua.misc.parameters"); + let command: string = await this.getCommand(config); + + let serverOptions: ServerOptions = { + command: command, + args: commandParam, + }; + + this.client = new LanguageClient( + 'Lua', + 'Lua', + serverOptions, + clientOptions + ); + + //client.registerProposedFeatures(); + await this.client.start(); + this.onCommand(); + this.statusBar(); + } + + private async getCommand(config: vscode.WorkspaceConfiguration) { + let executablePath: string = config.get("Lua.misc.executablePath"); + if (executablePath && executablePath != "") { + return executablePath; + } let command: string; let platform: string = os.platform(); let binDir: string; @@ -96,7 +121,7 @@ class LuaClient { 'lua-language-server' ) ); - await fs.promises.chmod(command, '777') + await fs.promises.chmod(command, '777'); break; case "darwin": command = this.context.asAbsolutePath( @@ -106,28 +131,12 @@ class LuaClient { 'lua-language-server' ) ); - await fs.promises.chmod(command, '777') + await fs.promises.chmod(command, '777'); break; } - - let serverOptions: ServerOptions = { - command: command, - args: commandParam, - }; - - this.client = new LanguageClient( - 'Lua', - 'Lua', - serverOptions, - clientOptions - ); - - //client.registerProposedFeatures(); - await this.client.start(); - this.onCommand(); - this.statusBar(); + return command; } - + async stop() { this.client.stop(); for (const disposable of this.disposables) {