VB.NET用の構文ハイライト書いた

やあみんな、VB.NET強いられてますか?
僕は強いられてるよ! フォウ!

VisualStudioってさ、usertype.datを設定すればカラーリングを自分で設定することが出来るんだ!
でも、よくわかんないんだけど僕の環境だとVB.NETでは効いてくれないんだ。しかもさ、なんかC#と比べるとVB.NETって設定できる色、クソしょぼくねえ? って思いません?
確か世の中的には、プラグインでのハイライト拡張も出来るよね。うん、でも僕が今使わされているのはExpressなんだ。僕は目が弱いので、カラフルにハイライトしてくれないと読みにくいんだ。あとテンションもあがらない。


VisualStudioは諦めよう、ただの構文解析兼デバッガ兼ビルドツールとして使おう! 何? 補完だ? 訓練されたプログラマならきっと心のインテリセンスがある。だからVimを使おう! neocomplcacheのキャッシュ補完とかそこらへんでなんとかなる!
しかしだ、Vimには標準でVB.NETのsyntaxやindentが用意されていない。C#とVB6はあるのにね。

でも大丈夫。Vimの公式サイト的なところにいけば置いてあるよ! でも2006年から更新されていないクソだよ! そしてちょっとググった感じ、他には一切設定を公開している人がいないよ!
ああそうだね。VimユーザはVB.NETみたいなクソ言語はお気に召さないんだきっとね。


というわけで今日、は業務中に隙をみて作ってみた。indentはvbのをそのまま使うか、公式のを使わせてもらおう!

とりあえず、VB.NETのくそダサい構文を少しでも読みやすくするため、色んなところからパクってきてジェネリクスラムダ式をわかりやすくハイライトするよーな感じで設定してみた。

コードはなんか前に書いた奴です。

とりあえず、OfとかFunctionとかが色分けされる。あとみんな大好きIEnumerableとIObservableも無条件で黄色くした。
あと、ReDimとかDo LoopとかGotoとか古くさいのは嫌いなのでエラー色で表示するようにした。

ほんとはXMLリテラルもハイライトさせたくて、Scalaから適当にパクってみたんだけど属性定義の構文とかぶっちまってアレだったからコメントアウトしておいた。いかんせん仕事の休憩がてらだったので調べる時間ががが。明日もっかい調べて設定したいところだが……
あとXMLドキュメントコメントも……といいたいけど、なんかExpressってコメントを三連打してもXMLドキュメントコメント挿入してくれないwwクソwwww スニペット書けばいいんだろうけど……

ヘルプもざっとしか読んでなくて設定したから、良くないところ沢山あるだろうけど、とりあえず最低限見た目は綺麗になったので僕は満足です。気が向いたら順序とかcontains的なのとかそういうのも考えてあげたいけど、嫌いな言語の為にそこまで出来る気がしない。たぶん今後あんま使うことないだろうし。

 * 追記 インデントも書いたのでプラグイン的にしました
   VimのVB.NET用の各設定をプラギン的にまとめた - はちみつとビール

ソースはGistにあげておきます。あと僕のdotfileの.vim/syntaxの中にもあります。


しかしftdetectを設定しているのに、*.vbのファイルを一発でvbnetと認識してくれない……

Vimはデフォルトでハイライトがかなりの数用意されているのがいいよなー。でもvbと、あとSQLがかなりくそなので気が向いたらSQLのindentとかも書きたいけど、さすがにSQLならもうちょい探せばどっかで誰か作ってくれてそう……