From 76a70da04e12d1f783f2a430406497ef94bc754f Mon Sep 17 00:00:00 2001 From: sumneko <sumneko@hotmail.com> Date: Fri, 1 Oct 2021 17:09:22 +0800 Subject: [PATCH] fix multi configs of prop --- .vscode/tasks.json | 19 ++++++++++++++----- client/out/languageserver.js | 9 ++++++--- client/src/languageserver.ts | 9 ++++++--- 3 files changed, 26 insertions(+), 11 deletions(-) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index e22f7de..b2a814c 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -39,10 +39,7 @@ "cwd": "${workspaceFolder}/server" }, "problemMatcher": [], - "group": { - "kind": "build", - "isDefault": true - } + "group": "build" }, { "label": "Install", @@ -73,6 +70,18 @@ "${command:extensionPath}" ] } + }, + { + "type": "typescript", + "tsconfig": "client/tsconfig.json", + "problemMatcher": [ + "$tsc" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "label": "tsc: 构建 - client/tsconfig.json" } ] -} \ No newline at end of file +} diff --git a/client/out/languageserver.js b/client/out/languageserver.js index 97fb142..b42ba27 100644 --- a/client/out/languageserver.js +++ b/client/out/languageserver.js @@ -20,6 +20,7 @@ let defaultClient; let clients = new Map(); function registerCustomCommands(context) { context.subscriptions.push(vscode_1.commands.registerCommand('lua.config', (changes) => { + let propMap = new Map(); for (const data of changes) { let config = vscode_1.workspace.getConfiguration(undefined, vscode_1.Uri.parse(data.uri)); if (data.action == 'add') { @@ -33,9 +34,11 @@ function registerCustomCommands(context) { continue; } if (data.action == 'prop') { - let value = config.get(data.key); - value[data.prop] = data.value; - config.update(data.key, value, data.global); + if (!propMap[data.key]) { + propMap[data.key] = config.get(data.key); + } + propMap[data.key][data.prop] = data.value; + config.update(data.key, propMap[data.key], data.global); continue; } } diff --git a/client/src/languageserver.ts b/client/src/languageserver.ts index a994354..3fbc67b 100644 --- a/client/src/languageserver.ts +++ b/client/src/languageserver.ts @@ -32,6 +32,7 @@ type HintResult = { function registerCustomCommands(context: ExtensionContext) { context.subscriptions.push(Commands.registerCommand('lua.config', (changes) => { + let propMap: Map<string, Map<string, any>> = new Map(); for (const data of changes) { let config = Workspace.getConfiguration(undefined, Uri.parse(data.uri)); if (data.action == 'add') { @@ -45,9 +46,11 @@ function registerCustomCommands(context: ExtensionContext) { continue; } if (data.action == 'prop') { - let value: Map<string, any> = config.get(data.key); - value[data.prop] = data.value; - config.update(data.key, value, data.global); + if (!propMap[data.key]) { + propMap[data.key] = config.get(data.key); + } + propMap[data.key][data.prop] = data.value; + config.update(data.key, propMap[data.key], data.global); continue; } } -- GitLab