Auto merge of #12427 - Veykril:configfix, r=Veykril

fix: Fix VSCode config patching incorrectly patching some configs
This commit is contained in:
bors 2022-05-31 11:48:42 +00:00
commit e10799536a

View File

@ -219,7 +219,7 @@ export async function updateConfig(config: vscode.WorkspaceConfiguration) {
},
];
for (const { val, langVal, target } of valMatrix) {
const pred = (val: unknown) => {
const patch = (val: unknown) => {
// some of the updates we do only append "enable" or "custom"
// that means on the next run we would find these again, but as objects with
// these properties causing us to destroy the config
@ -229,15 +229,15 @@ export async function updateConfig(config: vscode.WorkspaceConfiguration) {
!(
typeof val === "object" &&
val !== null &&
(val.hasOwnProperty("enable") || val.hasOwnProperty("custom"))
(oldKey === "completion.snippets" || !val.hasOwnProperty("custom"))
)
);
};
if (pred(val)) {
if (patch(val)) {
await config.update(newKey, val, target, false);
await config.update(oldKey, undefined, target, false);
}
if (pred(langVal)) {
if (patch(langVal)) {
await config.update(newKey, langVal, target, true);
await config.update(oldKey, undefined, target, true);
}