字符串处理成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}`;
}

 

posted @ 2025-12-29 18:22  SimoonJia  阅读(4)  评论(0)    收藏  举报