riでシンタックスハイライトする

riでシンタックスハイライトする

なんとなくコピペしていたらできた

RUBYOPT='-r ./to_rouge' RI_ROUGE=monokai.sublime ri --format=rouge --no-pager --no-gems String.scrub

作ってみたのだが、こういう出力フォーマットの追加がいまいちやりにくい感じの構造になっていて困った。

      formatters = RDoc::Markup.constants.grep(/^To[A-Z][a-z]+$/).sort
      formatters = formatters.sort.map do |formatter|
        formatter.to_s.sub('To', '').downcase
      end
      formatters -= %w[html label test] # remove useless output formats

      opt.on("--format=NAME", "-f",
             "Uses the selected formatter. The default",
             "formatter is bs for paged output and ansi",
             "otherwise. Valid formatters are:",
             formatters.join(' '), formatters) do |value|
        options[:formatter] = RDoc::Markup.const_get "To#{value.capitalize}"
        end

RUBYOPTで読み込ませているのは苦肉の策。RDocにはrdoc/discover.rbというのがあるのだが、riにはないか。