Class: RI::AnsiFormatter

Inherits:
AttributeFormatter show all
Defined in:
lib/rdoc/ri/ri_formatter.rb

Overview

This formatter uses ANSI escape sequences to colorize stuff works with pages such as man and less.

Constant Summary collapse

HEADINGS =
{
  1 => [ "\033[1;32m", "\033[m" ] ,
  2 => ["\033[4;32m", "\033[m" ],
  3 => ["\033[32m", "\033[m" ]
}
ATTR_MAP =
{
  BOLD   => "1",
  ITALIC => "33",
  CODE   => "36"
}

Constants inherited from AttributeFormatter

RI::AttributeFormatter::BOLD, RI::AttributeFormatter::CODE, RI::AttributeFormatter::ITALIC

Constants inherited from TextFormatter

TextFormatter::FORMATTERS

Instance Attribute Summary

Attributes inherited from TextFormatter

#indent

Instance Method Summary collapse

Methods inherited from AttributeFormatter

#wrap

Methods inherited from TextFormatter

#blankline, #break_to_newline, #conv_html, #conv_markup, #display_flow, #display_flow_item, #display_list, #display_verbatim_flow_item, #draw_line, for, list, #raw_print_line, #strip_attributes, #wrap

Constructor Details

#initialize(*args) ⇒ AnsiFormatter

Returns a new instance of AnsiFormatter.



405
406
407
408
# File 'lib/rdoc/ri/ri_formatter.rb', line 405

def initialize(*args)
  print "\033[0m"
  super
end

Instance Method Details

#bold_print(txt) ⇒ Object



426
427
428
# File 'lib/rdoc/ri/ri_formatter.rb', line 426

def bold_print(txt)
  print "\033[1m#{txt}\033[m"
end

#display_heading(text, level, indent) ⇒ Object



436
437
438
439
440
441
442
443
# File 'lib/rdoc/ri/ri_formatter.rb', line 436

def display_heading(text, level, indent)
  level = 3 if level > 3
  heading = HEADINGS[level]
  print indent
  print heading[0]
  print strip_attributes(text)
  puts heading[1]
end

#write_attribute_text(prefix, line) ⇒ Object



410
411
412
413
414
415
416
417
418
419
420
421
422
423
# File 'lib/rdoc/ri/ri_formatter.rb', line 410

def write_attribute_text(prefix, line)
  print prefix
  curr_attr = 0
  line.each do |achar|
    attr = achar.attr
    if achar.attr != curr_attr
      update_attributes(achar.attr)
      curr_attr = achar.attr
    end
    print achar.char
  end
  update_attributes(0) unless curr_attr.zero?
  puts
end