Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'editors/code/src/client.ts')
-rw-r--r--editors/code/src/client.ts7
1 files changed, 6 insertions, 1 deletions
diff --git a/editors/code/src/client.ts b/editors/code/src/client.ts
index f7520f6c43..99b72635d1 100644
--- a/editors/code/src/client.ts
+++ b/editors/code/src/client.ts
@@ -5,6 +5,7 @@ import * as Is from 'vscode-languageclient/lib/common/utils/is';
import { assert } from './util';
import { WorkspaceEdit } from 'vscode';
import { Workspace } from './ctx';
+import { updateConfig } from './config';
export interface Env {
[name: string]: string;
@@ -24,7 +25,7 @@ function renderHoverActions(actions: ra.CommandLinkGroup[]): vscode.MarkdownStri
return result;
}
-export function createClient(serverPath: string, workspace: Workspace, extraEnv: Env): lc.LanguageClient {
+export async function createClient(serverPath: string, workspace: Workspace, extraEnv: Env): Promise<lc.LanguageClient> {
// '.' 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.
@@ -45,6 +46,10 @@ export function createClient(serverPath: string, workspace: Workspace, extraEnv:
);
let initializationOptions = vscode.workspace.getConfiguration("rust-analyzer");
+
+ // Update outdated user configs
+ await updateConfig(initializationOptions);
+
if (workspace.kind === "Detached Files") {
initializationOptions = { "detachedFiles": workspace.files.map(file => file.uri.fsPath), ...initializationOptions };
}