1
0
Code Issues Pull Requests Packages Projects Releases Wiki Activity GitHub Gitee

feat: 顺序信息弹窗支持展示配置重复项和无效项

This commit is contained in:
2025-12-05 11:08:40 +08:00
parent 2d84be6976
commit dd757e586e

View File

@@ -17,6 +17,24 @@ export function showConvertCaseOrderDialog() {
formatNameMap[item.settingsKey] = item.name; formatNameMap[item.settingsKey] = item.name;
}); });
// 获取所有有效的settingsKey
const validSettingsKeys = new Set(quickPickSupportCases.map(item => item.settingsKey));
// 检测重复项和无效项
const seenSettingsKeys = new Set<string>();
const duplicateSettingsKeys = new Set<string>();
const invalidSettingsKeys = new Set<string>();
formatOrder.forEach(format => {
if (!validSettingsKeys.has(format)) {
invalidSettingsKeys.add(format);
} else if (seenSettingsKeys.has(format)) {
duplicateSettingsKeys.add(format);
} else {
seenSettingsKeys.add(format);
}
});
// 创建settingsKey到enableSettingsKey的映射 // 创建settingsKey到enableSettingsKey的映射
const settingsKeyToEnableKeyMap: Record<string, string> = {}; const settingsKeyToEnableKeyMap: Record<string, string> = {};
commands.forEach(item => { commands.forEach(item => {
@@ -30,9 +48,19 @@ export function showConvertCaseOrderDialog() {
if (formatOrder.length > 0) { if (formatOrder.length > 0) {
message += '用户自定义顺序:\n'; message += '用户自定义顺序:\n';
formatOrder.forEach((format, index) => { formatOrder.forEach((format, index) => {
const isEnabled = enabledFormats[format] !== false; const enableKey = settingsKeyToEnableKeyMap[format];
const status = isEnabled ? '✅' : '❌'; const isEnabled = enableKey ? enabledFormats[enableKey] !== false : true;
message += `${index + 1}. ${formatNameMap[format] || format} (${format}) ${status}\n`; const status = isEnabled ? '✔️' : '❌'; // ✅✔️☑️
// 添加重复和无效标记
let marker = '';
if (!validSettingsKeys.has(format)) {
marker = ' ❌ (无效格式)';
} else if (duplicateSettingsKeys.has(format)) {
marker = ' ⚠️ (重复配置)';
}
message += `${index + 1}. ${formatNameMap[format] || format} (${format}) ${marker || status}\n`;
}); });
} else { } else {
message += '未设置自定义顺序,使用默认顺序\n\n'; message += '未设置自定义顺序,使用默认顺序\n\n';
@@ -69,7 +97,22 @@ export function showConvertCaseOrderDialog() {
}); });
} }
message += '\n提示未启用的格式即使在顺序中配置也不会显示在转换选项中'; // 警告信息
if (duplicateSettingsKeys.size > 0 || invalidSettingsKeys.size > 0) {
message += '\n';
if (duplicateSettingsKeys.size > 0) {
message += `⚠️ 警告:发现重复配置的格式:${Array.from(duplicateSettingsKeys).join(', ')}\n`;
}
if (invalidSettingsKeys.size > 0) {
message += `❌ 错误:发现无效格式:${Array.from(invalidSettingsKeys).join(', ')}\n`;
}
}
message += '\n';
message += '提示:\n';
message += '- 未启用的格式即使在顺序中配置也不会显示在转换选项中\n';
message += '- 重复和无效的格式配置可能会导致显示异常\n';
// 显示信息弹窗 // 显示信息弹窗
vscode.window.showInformationMessage<vscode.MessageItem>('格式顺序配置信息', { modal: true, detail: message }); vscode.window.showInformationMessage<vscode.MessageItem>('格式顺序配置信息', { modal: true, detail: message });