2021/12/08にリリースされたVSCodeの version 1.63 で、全角スペースがハイライトされるようになっていました。
とても便利ですが、テキストファイル等で普通に全角スペースを使いたいこともあるので、特定のファイルで機能を無効にする設定を調べました。
(画像で使用している"Ricty Diminished"フォントでは全角スペースが○として表示されるため、余計にハイライトが目立ちます)
特定のファイルでOFFにする設定
1. settings.json を開く
mac: command + ,, win: Ctrl + , で設定画面を開き、右上のアイコンをクリックするなどで開きます。
2. 設定を記載
.txt や .text ファイルでOFFにする場合は以下のように追記します。
"[plaintext]" の中に入るファイル種類については、 "[" のように途中まで入力した段階で候補が表示されます。
{
"[plaintext]": {
"editor.unicodeHighlight.invisibleCharacters": false, // ハイライト機能を全てOFFにする場合
"editor.unicodeHighlight.allowedCharacters": { // 特定の文字でのみOFFにする場合
" ": true
}
}
}
以上で設定完了です。(もしかしたらもっと簡単な方法もあるかもしれません)
全てのファイルでOFFにする設定
全てのファイルでハイライトをOFFにしたい場合は、上記の設定を "[plaintext]" の中にネストさせずに記載します。
そもそもこの場合は、ハイライト部分にマウスオーバーすると表示される Adjust settings をクリックして設定を選ぶことで、自動で上記の設定が settings.json に追記されます。
余談
リリースノート を見たところ、この機能は、意図せず全角スペースが紛れ込むことの防止よりも、見えない文字を意図的に使った攻撃を防ぐ目的があるようです。
以下の記事では、ハングルの空白文字にあたる \u3164 が、JavaScriptの変数として使用できることを利用した攻撃例がわかりやすく紹介されていました。
以下のような変なコードも、ハイライトのおかげで、\u3164 (ㅤ)が変数として使われている事が分かります。



