謎's キッチン

謎のひとりごと。Amazon欲しい物リストはこちら: https://www.amazon.co.jp/hz/wishlist/ls/CCPOV7C6JTD2

シンタックスハイライトツール

はてなのが結構いい感じなのでそれを使おうとしたら大変大変。
vimcolorはperlで書かれていて(rubypythonに翻訳されたバージョンもあるが)、ライセンスが不明という。バックエンドにはvimを使っているが、*.vim作ってそれを動かしている…。/usr/share/vim/vim71/にfiletype.vim、script.vim、syntax/syntax.vimとあるので読んでみたが、うーむ。まぁ何というか。



んで他のハイライトツール探してみた。highlightが良さげ。ubuntuにパッケージもあるし(ちょっと古いけど)。言語はC++。対応している言語も十分…diffに対応していないのが気になるなぁ。
http://www.andre-simon.de/doku/highlight/highlight_langs.html

highlight -A foo

うん、悪くない悪くない。
けど--input-nameが動作しなかったり、言語検出ができないのが駄目だなぁ。後者はfileにでも検出させればいいかとpythonなファイルにfile -iしてみたらtext/x-pascalとして認識される件。
あとhighlightはhtml+jsやphpが駄目らしい。あと、ネストコメントにも対応してない。うーむ。



今度はsource-highlightを使おうと思った。D言語はサポートされてないけど、対応している言語はそれなりに多い。
source-highlight -fesc fooとしたらfoo.txtができる。source-highlight -fesc -i fooとしないと標準出力に出力されない。何でやねん。
ハイライトの色分けが気に入らない点とコマンド名が長い点を除けば一番マシな気がする…と思ったらパイプ通したら動作しない。-i /dev/stdinを追加しても駄目。
あとソースが重複部分多くてなぁ。



なんというかjust worksなもの無い。どれかを改良するのが一番な気がしてきた。
IDEシンタックスハイライトはコマンドでは使えないのかなぁ。まぁ使えたとしても依存が多くなるから避けたいけど。コマンドラインのみのツールもあればいいのになぁ。シンタックスハイライトとは関係ないけどinkscapeなんかもgui無しバージョンのコマンドがあればいいのに。