シンタックスをハイライトしたいとき便利。PythonのpygmentsにFFIで繋ぎにいっているそうです。狂気じみてていいですね。
Python をインストール
独自の便利ツールを入れます。こちらの記事に詳しいです。 homebrewで入れる時は、easy_install
をはじめとした色々な実行ファイルが謎のディレクトリ(/usr/local/share/python
)に配置されるのでシンボリックリンクなどを貼るか$PATH
をいじる。
Pygments のインストール
setup
pip install pygments
ln -s /usr/local/share/python/pygmentize /usr/local/bin/pygmentize
やってみよう
kaiseki.rb
require 'pygments'
Pygments.start '/usr/local/bin/pygmentize'
code = File.read '/Users/udzura/.rvm/gems/ruby-1.9.3-p194@samples/gems/sinatra-1.3.3/lib/sinatra/base.rb'
puts Pygments.highlight code, lexer: 'ruby', formatter: 'terminal'
おまけ
pry-coolline というルッビージェムでは、自作で構文解析器とかを実装してるっぽくてヤバそう。
言及
Rubyでコードブロックに色を付けるときのこと で「ときどきSegmentation faultになる」と言っているが、そんなに落ちるような印象を受けなかった。バージョンが上がり安定しているのかもしれない。「pythonの環境をちゃんと整えれば」がどれくらい整える感じなのか分からない……。