VSCodeで未登録な拡張子をオレオレ言語モードを通して認識させ設定する


例えば、VC++のリソーススクリプト(拡張子rc)なんかはVSCodeに登録されていないので、「わしゃrcのファイルはデフォルトでUTF-16になってほしいんじゃあ!」なんて場合に困ることになる。

厳密には、VSCodeに拡張子を直接指定しての設定なんてものは(私の知る限り)無くて、言語モードに含まれるファイルの種類としての設定という形でなら可能。

そこでどうしたかというと、目的の拡張子を扱うオレオレ言語を作り、オレオレ拡張機能として所定のフォルダに突っ込むことで解決したのでご紹介。

目的

冒頭で述べた通り、今回rcファイルがデフォルトでUTF-16 LEになるようにしてみる。

手順

エクスプローラー(VSCodeのじゃなくてWindowsのやつ)のアドレス欄に%userprofile%\.vscode\extensionsと入れるなどして、VSCodeの拡張機能が保存されているフォルダに入る。
そこで、「rc」という名前のフォルダを新規作成する。
さらに「rc」フォルダの中に「package.json」というテキストファイルを新規作成し、下記の内容を入れて保存する。

package.json
{
    "name": "rc",
    "displayName": "rc",
    "description": "resource script extension",
    "version": "0.0.1",
    "publisher": "vscode",
    "engines": {
        "vscode": "*"
    },
    "contributes": {
        "languages": [
            {
                "id": "rc",
                "extensions": [".rc"],
                "aliases": ["Resource Script"]
            }
        ],
        "configurationDefaults": {
            "[rc]": {
                "files.encoding": "utf16le"
            }
        }
    }
}

VSCodeを起動。
(すでに起動していた場合は再起動。)
拡張機能を見てみると…。

拡張子「.rc」を扱うオレオレ言語「rc」のためのオレオレ拡張機能「rc」が爆誕。

VSCode上で拡張子「.rc」のファイルを新規作成してみる。

ステータスバーを確認すると、ちゃんとUTF-16 LEになってることが分かる。

良かった良かった。