From 9b443da4413fa0fa33490ff1e2505f9b70f06734 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E5=A2=A8?= Date: Fri, 5 Dec 2025 11:51:50 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=85=8D=E7=BD=AE=E9=A1=B9=20variable-c?= =?UTF-8?q?onversion.formatOrder=20=E5=9C=A8=E8=BD=AC=E6=8D=A2=E6=97=B6?= =?UTF-8?q?=E4=B8=8D=E7=94=9F=E6=95=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core/variable-convert/cyclic-conversion.ts | 9 +++++++-- .../variable-convert/types/SupportVariableCaseType.ts | 6 ++++++ src/handler/variable-convert/quick-pick-handler.ts | 9 +++++++-- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/core/variable-convert/cyclic-conversion.ts b/src/core/variable-convert/cyclic-conversion.ts index 9398a4c..0ebfc72 100644 --- a/src/core/variable-convert/cyclic-conversion.ts +++ b/src/core/variable-convert/cyclic-conversion.ts @@ -1,6 +1,6 @@ import * as vscode from 'vscode'; import { EOL } from "../../types/EOLType"; -import { cyclicConvertCaseOrder } from "./types/SupportVariableCaseType"; +import { cyclicConvertCaseOrder, settingsKeyToEnableSettingsKey } from "./types/SupportVariableCaseType"; import { caseConversion } from "./conversion"; import { isStringArrayEqual, stringListArrayDuplicateRemoval } from '../../utils/utils'; import { getUserConfigurations } from '../../utils/user-configuration'; @@ -79,7 +79,12 @@ function lazyConvert() { for (const cyclicConvertCase of cyclicConvertCaseOrder) { // issue: #1 https://github.com/coder-xiaomo/variable-conversion-vscode-extension/issues/1 // 跳过禁用的目标格式 - if (enabledFormats[cyclicConvertCase.settingsKey] === false) { + const enableSettingsKey = settingsKeyToEnableSettingsKey.get(cyclicConvertCase.settingsKey); + if (!enableSettingsKey) { + console.warn('Cannot find enableSettingsKey for settingsKey:', cyclicConvertCase.settingsKey); + continue; + } + if (enabledFormats[enableSettingsKey] !== true) { continue; } diff --git a/src/core/variable-convert/types/SupportVariableCaseType.ts b/src/core/variable-convert/types/SupportVariableCaseType.ts index dc03de6..62fa365 100644 --- a/src/core/variable-convert/types/SupportVariableCaseType.ts +++ b/src/core/variable-convert/types/SupportVariableCaseType.ts @@ -417,6 +417,12 @@ export const commands: Array = [ }, ]; +// settingsKey 到 enableSettingsKey 的映射 +export const settingsKeyToEnableSettingsKey = new Map(); +commands.forEach(command => { + settingsKeyToEnableSettingsKey.set(command.settingsKey, command.enableSettingsKey); +}); + export interface QuickPickSupportCaseItem { type: SupportVariableCase, name: string, diff --git a/src/handler/variable-convert/quick-pick-handler.ts b/src/handler/variable-convert/quick-pick-handler.ts index 4697775..27ba2f7 100644 --- a/src/handler/variable-convert/quick-pick-handler.ts +++ b/src/handler/variable-convert/quick-pick-handler.ts @@ -1,6 +1,6 @@ import * as vscode from 'vscode'; import QuickPickItemEx from "../types/QuickPickItemExType"; -import { QuickPickSupportCaseItem, quickPickSupportCases } from '../../core/variable-convert/types/SupportVariableCaseType'; +import { QuickPickSupportCaseItem, quickPickSupportCases, settingsKeyToEnableSettingsKey } from '../../core/variable-convert/types/SupportVariableCaseType'; import { TransformTextResult } from '../../types/TransformTextResultType'; import { transformMultiSelectionText } from '../../utils/transform'; import { EOL } from '../../types/EOLType'; @@ -104,7 +104,12 @@ export function handleQuickPick() { // issue: #1 https://github.com/coder-xiaomo/variable-conversion-vscode-extension/issues/1 const enabledQuickPickSupportCases = []; for (const quickPick of quickPickSupportCases) { - if (enabledFormats[quickPick.settingsKey] === false) { + const enableSettingsKey = settingsKeyToEnableSettingsKey.get(quickPick.settingsKey); + if (!enableSettingsKey) { + console.warn('Cannot find enableSettingsKey for settingsKey:', quickPick.settingsKey); + continue; + } + if (enabledFormats[enableSettingsKey] !== true) { continue; } enabledQuickPickSupportCases.push(quickPick);