5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

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

Last updated at Posted at 2021-03-03

初回記事執筆時は、所定のフォルダにpackage.jsonを置くだけでオレオレ拡張機能が有効になっていたが、2022年12月現在、その方法は無効になっていた。
若干面倒だがパッケージ化の手順を踏む必要があるようだ。
(記事編集済み。)

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

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

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

目的

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

手順

まず拡張機能を自作するための下準備として、「Node.js」およびその上で動く「vsce」を導入する。

Node.js
https://nodejs.org/ja/

上記Node.jsの公式からインストーラーを入手してインストール。推奨版と最新版があるが、推奨版の方で良いと思う。
無事インストール出来たら、ターミナルあるいはコマンドプロンプトで下記コマンドを実行。
npm install -g vsce
これでvsceも入り、下準備完了。

任意の作業フォルダに「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"
			}
		}
	}
}

そしたらターミナルあるいはコマンドプロンプトで「rc」フォルダに移動し、下記コマンドを実行。
npx vsce package
いろいろ足りないので警告が2回くらい出るが、都度「y」入力してEnterでスルー。
上手くいけば「DONE」となり、「rc」フォルダの中に「rc-0.0.1.vsix」が生成されると思う。これが拡張機能のインストーラーファイルとなる。

VSCodeを起動して、拡張機能タブに移動。
拡張機能リストの右上の方にある三点リーダー(「…」)をクリック、「VSIXからのインストール」を選び、先ほど作成した「rc-0.0.1.vsix」を読み込む。

拡張機能を見てみると…。
extrc.png

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

extrc2.png

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

extrc4.png

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

良かった良かった。

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?