コードに色を付ける beni を書いた

ソースコードにシンタックスに応じた色を付ける code syntax highlighter を golang で書いたので 紹介します。

beni - code syntax highlighter written in golang

皆さんは code syntax highlighter (以下ハイライター)って知ってます? & 使ってますか? github や gist にコードを貼ると、言語の文法に応じてカラフルに表示してくれるアレですね。なのでこの記事を読むような人は、まず使ったことがあるんじゃないでしょうか。

ちなみに git はたぶん pygments です。私はこのサイトなどでは、最近 pure ruby な rouge を使うようになりました。jekyll から使う場合には、 python (しかも2.x限定) に依存してしまう pygments.rb よりは rouge のほうが非常に使いやすいのです。

で rouge を使ってみて pure XXX なハイライターの便利さに気が付きまして、golang にも欲しい! ってことで beni を書き起こしました。まぁアレコレ紹介するより見たほうが速いでしょう。

$ ./beni lexer/go.go | less -R

してスクロールしていくと、こんなふうに見えます。

beni001.png

varmap などのキーワード、string といった埋込み型や文字列、それからちょっと見にくいですが、コメントにも色が付いています。

今はまだ対応言語が golang と Java だけ、しかも Java に至ってはかなりバグってます。また配色設定となるテーマも1種類のみ、出力フォーマットは256色対応ターミナルとHTMLだけです。あーあとライブラリとしてちゃんと使いやすくもしてない。正直なところまだまだゴミですね。

ボチボチと対応言語&フォーマット&テーマは増やしていくので、寛容の気持ちで見守って貰えたらならと思います。あ、pull requestはいつでも歓迎です!(笑