diff --git a/editors/code/src/server.ts b/editors/code/src/server.ts index 50461b0c6ea..30ab874ab32 100644 --- a/editors/code/src/server.ts +++ b/editors/code/src/server.ts @@ -1,6 +1,6 @@ import * as lc from 'vscode-languageclient'; -import { window } from 'vscode'; +import { window, workspace } from 'vscode'; import { Config } from './config'; import { Highlighter } from './highlighting'; @@ -12,9 +12,25 @@ export class Server { public static start( notificationHandlers: Iterable<[string, lc.GenericNotificationHandler]> ) { + + // '.' Is the fallback if no folder is open + // TODO?: Workspace folders support Uri's (eg: file://test.txt). It might be a good idea to test if the uri points to a file. + let folder: string = '.'; + if (workspace.workspaceFolders !== undefined) { + + folder = workspace + .workspaceFolders[0].uri.fsPath + .toString(); + + if (workspace.workspaceFolders.length > 1) { + // Tell the user that we do not support multi-root workspaces yet + window.showWarningMessage("Multi-root workspaces are not currently supported"); + } + } + const run: lc.Executable = { command: this.config.raLspServerPath, - options: { cwd: '.' } + options: { cwd: folder } }; const serverOptions: lc.ServerOptions = { run,