| 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