Traffine I/O

Bahasa Indonesia

2022-09-18

Memecahkan Masalah Spasi Antara Alfabet dan Karakter Jepang saat Memformat Markdown dengan Prettier

Pendahuluan

Saat memformat Markdown dengan Prettier, secara default akan ditambahkan spasi setengah lebar antara alfabet dan karakter Jepang. Misalnya, saat memformat AIエンジニア (AI engineer), menjadi AI エンジニア.

Artikel ini memperkenalkan metode untuk mencegah penambahan spasi setengah lebar antara alfabet dan karakter Jepang saat memformat dengan Prettier.

Solusi

Prettier terletak di direktori berikut:

~/.vscode/extensions/esbenp.prettier-vscode-<Your Version>/node_modules/prettier

Buka file index.js di direktori tersebut dengan editor dan temukan bagian kode berikut.

~/.vscode/extensions/esbenp.prettier-vscode-<Your Version>/node_modules/prettier/index.js
if (lastNode && lastNode.type === "word") {
      if (lastNode.kind === KIND_NON_CJK && node.kind === KIND_CJ_LETTER && !lastNode.hasTrailingPunctuation || lastNode.kind === KIND_CJ_LETTER && node.kind === KIND_NON_CJK && !node.hasLeadingPunctuation) {
        nodes.push({
          type: "whitespace",
          value: " "
        });
      } else if (!isBetween(KIND_NON_CJK, KIND_CJK_PUNCTUATION) && // disallow leading/trailing full-width whitespace
      ![lastNode.value, node.value].some(function (value) {
        return /\u3000/.test(value);
      })) {
        nodes.push({
          type: "whitespace",
          value: ""
        });
      }
    }

Lakukan modifikasi berikut:

~/.vscode/extensions/esbenp.prettier-vscode-<Your Version>/node_modules/prettier/index.js
 if (lastNode && lastNode.type === "word") {
       if (lastNode.kind === KIND_NON_CJK && node.kind === KIND_CJ_LETTER && !lastNode.hasTrailingPunctuation || lastNode.kind === KIND_CJ_LETTER && node.kind === KIND_NON_CJK && !node.hasLeadingPunctuation) {
         nodes.push({
           type: "whitespace",
-           value: " "
+           value: ""
         });
       } else if (!isBetween(KIND_NON_CJK, KIND_CJK_PUNCTUATION) && // disallow leading/trailing full-width whitespace
       ![lastNode.value, node.value].some(function (value) {
         return /\u3000/.test(value);
       })) {
         nodes.push({
           type: "whitespace",
           value: ""
         });
       }
     }

Modifikasi tersebut mengubah value: " " menjadi value: "". Setelah Anda menyimpan perubahan tersebut, Prettier tidak akan lagi menambahkan spasi setengah lebar antara alfabet dan karakter Jepang saat memformat.

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!