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.

Methods

Public Class methods

[Source]

     # File ri/formatter.rb, line 369
369:   def initialize(*args)
370:     super
371:     @output.print "\033[0m"
372:   end

Public Instance methods

[Source]

     # File ri/formatter.rb, line 389
389:   def bold_print(txt)
390:     @output.print "\033[1m#{txt}\033[m"
391:   end

[Source]

     # 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

[Source]

     # 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

[Source]

     # 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

[Validate]