字符串处理成vscode风格
function formatLikeVSCode(str, indent = 2) {
if (typeof str !== 'string') return str;
const trimmed = str.trim();
// 必须是最外层对象
if (!trimmed.startsWith('{') || !trimmed.endsWith('}')) {
return str;
}
const space = ' '.repeat(indent);
const inner = trimmed.slice(1, -1).trim();
if (!inner) {
return `{\n}`;
}
// 仅在顶层逗号处分割(避免 ${} 内部)
const parts = inner.split(/,(?![^{}]*\})/);
const formatted = parts
.map(p => `${space}${p.trim()}`)
.join(',\n');
return `{\n${formatted}\n}`;
}

浙公网安备 33010602011771号