vscode-Remarkで全角文字をテーブルに入れても半角文字幅でしか整形されないのを解決

すごく汚い解決法

  1. RemarkをVSCodeで入れる

  2. VSコードのextensionインストールディレクトリ(%UserProfile%.vscode\extensionsなど)にあるmrmlnc.vscode-remark-1.1.0\node_modules\markdown-table\index.jsを編集

// 下部に↓の関数があるので定義書き換え
// function lengthNoop(value) {
//   return String(value).length;
// }
  
function lengthNoop(value) {
  let i = 0;
  let surrogatePairHead = false;
  for (let c of String(value)) {
    const cp = c.codePointAt();
    // codepointを得てASCII文字セットの範囲なら半角、そうでないなら全角幅として計算
    // サロゲートペアはうまいことかわす
    // 半角カタカナなどは2バイト文字になってしまう。他にもあるけどとりあえず入れるの面倒だったから放置
    // 内部エンコーディングがUTF16らしいのでほしかったら適宜定義
    if (!surrogatePairHead && 0xD800<= cp && cp <= 0xDFFF) {
      surrogatePairHead = true;
      continue;
    }
    surrogatePairHead = false;
    i += (cp & 0xff00) ? 2 : 1;
  }
  return i;
}
  1. VSコードを再起動

VScodeのsettingsってfunction(){} を値にできないんやろか