VSCodeのマーケットプレースにvscode-typenovel
というTypeNovel用のVisual Studio Code拡張を公開しました。
インストール後は、*.tn
ファイルを編集するときに有効になります。
実際に動かすと、こんな感じです。
主な機能
- ブロック(
@
で始まる)と注釈($
で始まる)のインテリセンス - 組み込みマークアップの引数説明を表示($rubyとか@notesとか)
- 文法のハイライトや、括弧を自動で閉じる設定
- セーブ時にエラーをチェック(注釈されていない制約、未定義の制約、重複した制約など)
ちなみに$
で起動するインテリセンスは、もちろん組み込みタグだけではなく、ブロックで定義した制約の一覧も表示します。
連絡先
バグや機能要望はGithubにて受け付けています。
余談(開発でハマったところ)
1 .vscodeignoreファイルの挙動
vsce package
コマンドで拡張機能をパッケージ化するときに、.vscodeignore
ファイルでパッケージに含めないファイルを定義できるのですが、このファイルに.gitignore
を入れると、.gitignore
の中身を勝手に見て、その中に記述されたファイルもパッケージの対象外にしてしまうみたいです。
つまり.gitignore
の中に「gitの管理は不要だが、vs拡張のパッケージには必要」なファイルを記述してしまうと、それらがvs拡張にパッケージされず、拡張機能が動かないことがあります。
これを回避するのは簡単で、ようするに.vscodeignore
に.gitignore
を記述しなければよいのです(幸い.gitignore
は、.vscodeignore
に記述しなくてもパッケージ対象にはならないので)。
ちなみにパッケージされるファイルを事前に確認したい場合は、vsce package
をする前にvsce ls
とすると、パッケージされるファイル一覧を事前に確認することができます。
2 ローカルの.vsixファイルをVSCodeのUIから直インストール・アンインストールした際の挙動
ローカルでインストールした.vsix
ファイルを、VSCodeのUIからアンインストールした場合、.vscode/extensions/<拡張機能のフォルダ>
が削除されないことがあります。
で、わかりにくいことに、この状態でVSCodeのUIから新しい.vsix
ファイルを読み込ませて上書きインストールさせようとすると、インストールは成功と表示されるのですが、実際には何も新しいファイルが展開されず、古いディレクトリだけが残っている状態になってしまいます。
つまりバグを修正して再インストールしても、修正されていない古い拡張が残り続けるので、まったく修正されていない状態になっているわけです。
この状態について、最初は「修正が正しくない」と判断して、ハマってしまいました。そこから「実は再インストール自体がなされておらず、古い拡張が残り続けているだけ」と気付くのに小一時間ぐらいかかりました。
ようするに「ローカルでインストール・アンインストールのテストするときは、UIを介さずに手動で拡張機能のディレクトリを削除する必要がある」ということになります。