From 7185c594fe1b6c282c432c1fbb57e8e6e23421ed Mon Sep 17 00:00:00 2001 From: Lucas Spits Date: Mon, 11 Mar 2019 20:38:46 +0100 Subject: Retrieve current directory from workspaces --- editors/code/src/server.ts | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'editors') diff --git a/editors/code/src/server.ts b/editors/code/src/server.ts index 50461b0c6..30ab874ab 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, -- cgit v1.2.3