Class | RDoc::RI::AnsiFormatter |
In: |
ri/formatter.rb
|
Parent: | RDoc::RI::AttributeFormatter |
This formatter uses ANSI escape sequences to colorize stuff works with pagers such as man and less.
# File ri/formatter.rb, line 369 369: def initialize(*args) 370: super 371: @output.print "\033[0m" 372: end
# File ri/formatter.rb, line 389 389: def bold_print(txt) 390: @output.print "\033[1m#{txt}\033[m" 391: end
# File ri/formatter.rb, line 399 399: def display_heading(text, level, indent) 400: level = 3 if level > 3 401: heading = HEADINGS[level] 402: @output.print indent 403: @output.print heading[0] 404: @output.print strip_attributes(text) 405: @output.puts heading[1] 406: end
# File ri/formatter.rb, line 416 416: def update_attributes(attr) 417: str = "\033[" 418: for quality in [ BOLD, ITALIC, CODE] 419: unless (attr & quality).zero? 420: str << ATTR_MAP[quality] 421: end 422: end 423: @output.print str, "m" 424: end
# File ri/formatter.rb, line 374 374: def write_attribute_text(prefix, line) 375: @output.print prefix 376: curr_attr = 0 377: line.each do |achar| 378: attr = achar.attr 379: if achar.attr != curr_attr 380: update_attributes(achar.attr) 381: curr_attr = achar.attr 382: end 383: @output.print achar.char 384: end 385: update_attributes(0) unless curr_attr.zero? 386: @output.puts 387: end