From 433000be34eafd052addd91afd605a81e137a433 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 31 Dec 2019 17:28:01 +0100 Subject: Move config to Ctx --- editors/code/src/ctx.ts | 5 +---- editors/code/src/main.ts | 2 +- editors/code/src/server.ts | 5 +++-- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/editors/code/src/ctx.ts b/editors/code/src/ctx.ts index 0e62a3a85..d86fe5a87 100644 --- a/editors/code/src/ctx.ts +++ b/editors/code/src/ctx.ts @@ -4,6 +4,7 @@ import { Server } from './server'; import { Config } from './config'; export class Ctx { + readonly config = new Config(); private extCtx: vscode.ExtensionContext; constructor(extCtx: vscode.ExtensionContext) { @@ -14,10 +15,6 @@ export class Ctx { return Server.client; } - get config(): Config { - return Server.config; - } - get activeRustEditor(): vscode.TextEditor | undefined { const editor = vscode.window.activeTextEditor; return editor && editor.document.languageId === 'rust' diff --git a/editors/code/src/main.ts b/editors/code/src/main.ts index 511f17ca4..3d9107927 100644 --- a/editors/code/src/main.ts +++ b/editors/code/src/main.ts @@ -31,7 +31,7 @@ export async function activate(context: vscode.ExtensionContext) { ctx.overrideCommand('type', commands.onEnter); } - const startServer = () => Server.start(); + const startServer = () => Server.start(ctx.config); const reloadCommand = () => reloadServer(startServer); vscode.commands.registerCommand('rust-analyzer.reload', reloadCommand); diff --git a/editors/code/src/server.ts b/editors/code/src/server.ts index 5dc8a36bd..ab9f3bfa6 100644 --- a/editors/code/src/server.ts +++ b/editors/code/src/server.ts @@ -12,10 +12,10 @@ function expandPathResolving(path: string) { } export class Server { - public static config = new Config(); + static config: Config; public static client: lc.LanguageClient; - public static async start() { + public static async start(config: Config) { // '.' 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 = '.'; @@ -23,6 +23,7 @@ export class Server { folder = workspace.workspaceFolders[0].uri.fsPath.toString(); } + this.config = config; const command = expandPathResolving(this.config.raLspServerPath); const run: lc.Executable = { command, -- cgit v1.2.3