library prettyprint

[edit]

要約

pretty printing アルゴリズムのためのライブラリです。

使い方

pretty printing アルゴリズムは読みやすいインデントと改行を決定するためのアルゴリズムです。インデントと改行はユーザによって与えられたツリー構造から決定されます。つまりユーザは以下のように表示したい内容を保持したツリーを作成する必要があります。

同じノード内で呼ばれた breakable は、改行するならば全て同時に改行します。


require 'prettyprint'

p2 = PrettyPrint.new('', 10)
s = 'hello'
p2.text(s)
p2.group(p2.indent + s.size + 1) do
  p2.breakable
  p2.text('a')
  p2.breakable
  p2.text('b')
  p2.breakable
  p2.text('c')
end
p2.flush
puts p2.output
#=>
# hello
#       a
#       b
#       c

References

Christian Lindig, Strictly Pretty, March 2000, http://www.st.cs.uni-sb.de/~lindig/papers/pretty/strictly-pretty.html

Philip Wadler, A prettier printer, March 1998, http://homepages.inf.ed.ac.uk/wadler/topics/language-design.html#prettier

クラス

PrettyPrint

pretty printing アルゴリズムのためのクラスです。改行の位置を探し、きれいなインデントを施します。