class Amun::Windows::ModeLine
a line of small segments that display information about the current window, like mode name, line number, buffer name…etc
Attributes
left_segments[R]
right_segments[R]
Public Class Methods
new(size)
click to toggle source
Calls superclass method
Amun::Windows::Base::new
# File lib/amun/windows/mode_line.rb, line 14 def initialize(size) super(size) @right_segments = [] @left_segments = [ ModeLineSegments::BufferName.new, ModeLineSegments::MajorMode.new ] Helpers::Colors.register_default(:mode_line, 0, 255) end
Public Instance Methods
render(buffer)
click to toggle source
# File lib/amun/windows/mode_line.rb, line 25 def render(buffer) right_output = render_segments(right_segments, buffer) left_output = render_segments(left_segments, buffer) filler = empty_space(right_output, left_output) curses_window.erase Helpers::Colors.print(curses_window, *left_output, filler, *right_output) curses_window.refresh end
Private Instance Methods
empty_space(right_output, left_output)
click to toggle source
# File lib/amun/windows/mode_line.rb, line 37 def empty_space(right_output, left_output) text_size = (right_output + left_output).map(&:size).inject(0, :+) empty_space = [0, width - text_size].max (' ' * empty_space).colorize(:mode_line) end
render_segments(segments, buffer)
click to toggle source
# File lib/amun/windows/mode_line.rb, line 43 def render_segments(segments, buffer) segments.map do |segment| segment.render(buffer) end.flatten end