module Lab42::KAK::Generic

Constants

INDENT_RGX
NL
NOP

Attributes

kak[R]
output[R]

Public Class Methods

new(kak) click to toggle source
# File lib/lab42/kak/cccomplete/generic.rb, line 51
def initialize kak
  @kak = kak
  @output = []
end

Private Instance Methods

_add_one(value, nl:, indented: output << indent(indented)) click to toggle source
# File lib/lab42/kak/cccomplete/generic.rb, line 12
def _add_one value, nl:, indented:
  output << indent(indented)
  output << value
  output << nl(nl)
end
_indent() click to toggle source
# File lib/lab42/kak/cccomplete/generic.rb, line 18
def _indent
  @___indent__ ||= _selection[INDENT_RGX]
end
_selection() click to toggle source
# File lib/lab42/kak/cccomplete/generic.rb, line 22
def _selection
  @___selection__ ||= kak.values.selection.chomp
end
add(*values, nl: false, indented: false) click to toggle source
# File lib/lab42/kak/cccomplete/generic.rb, line 27
def add *values, nl: false, indented: false
  # p [:values, values]
  values
    .flatten
    .each { _add_one(_1, nl: nl, indented: indented) }
  # p [:output, output]
end
add_lines(*values, indented: false) click to toggle source
# File lib/lab42/kak/cccomplete/generic.rb, line 35
def add_lines *values, indented: false
  lines =
    values
      .flatten
      .map { "#{indent(indented)}#{_1}" }
    add lines.join(NL)
end
indent(indented) click to toggle source
# File lib/lab42/kak/cccomplete/generic.rb, line 43
def indent indented
  indented ? _indent : nil
end
nl(nl) click to toggle source
# File lib/lab42/kak/cccomplete/generic.rb, line 47
def nl nl
  nl ? NL : nil
end