class RBS::Location

Constants

WithChildren

Public Class Methods

new(buffer_ = nil, start_pos_ = nil, end_pos_ = nil, buffer: nil, start_pos: nil, end_pos: nil) click to toggle source
Calls superclass method
# File rbs-2.8.2/lib/rbs/location_aux.rb, line 11
def self.new(buffer_ = nil, start_pos_ = nil, end_pos_ = nil, buffer: nil, start_pos: nil, end_pos: nil)
  __skip__ =
    begin
      if buffer && start_pos && end_pos
        super(buffer, start_pos, end_pos)
      else
        super(buffer_, start_pos_, end_pos_)
      end
    end
end
to_string(location, default: "*:*:*...*:*") click to toggle source
# File rbs-2.8.2/lib/rbs/location_aux.rb, line 93
def self.to_string(location, default: "*:*:*...*:*")
  location&.to_s || default
end

Public Instance Methods

==(other) click to toggle source
# File rbs-2.8.2/lib/rbs/location_aux.rb, line 70
def ==(other)
  other.is_a?(Location) &&
    other.buffer == buffer &&
    other.start_pos == start_pos &&
    other.end_pos == end_pos
end
add_optional_child(name, range) click to toggle source
# File rbs-2.8.2/lib/rbs/location_aux.rb, line 101
def add_optional_child(name, range)
  if range
    _add_optional_child(name, range.begin, range.end)
  else
    _add_optional_no_child(name);
  end
end
add_required_child(name, range) click to toggle source
# File rbs-2.8.2/lib/rbs/location_aux.rb, line 97
def add_required_child(name, range)
  _add_required_child(name, range.begin, range.end)
end
each_optional_key(&block) click to toggle source
# File rbs-2.8.2/lib/rbs/location_aux.rb, line 109
def each_optional_key(&block)
  if block
    _optional_keys.uniq.each(&block)
  else
    enum_for(:each_optional_key)
  end
end
each_required_key(&block) click to toggle source
# File rbs-2.8.2/lib/rbs/location_aux.rb, line 117
def each_required_key(&block)
  if block
    _required_keys.uniq.each(&block)
  else
    enum_for(:each_required_key)
  end
end
end_column() click to toggle source
# File rbs-2.8.2/lib/rbs/location_aux.rb, line 42
def end_column
  end_loc[1]
end
end_line() click to toggle source
# File rbs-2.8.2/lib/rbs/location_aux.rb, line 38
def end_line
  end_loc[0]
end
end_loc() click to toggle source
# File rbs-2.8.2/lib/rbs/location_aux.rb, line 52
def end_loc
  @end_loc ||= begin
    _end_loc || buffer.pos_to_loc(end_pos)
  end
end
inspect() click to toggle source
# File rbs-2.8.2/lib/rbs/location_aux.rb, line 5
def inspect
  rks = each_required_key.to_a
  ops = each_optional_key.to_a.map {|x| "?#{x}" }
  "#<#{self.class}:#{self.__id__} buffer=#{buffer.name}, start=#{start_line}:#{start_column}, pos=#{start_pos}...#{end_pos}, children=#{(rks + ops).join(",")} source='#{source.lines.first&.chomp}'>"
end
key?(name) click to toggle source
# File rbs-2.8.2/lib/rbs/location_aux.rb, line 125
def key?(name)
  optional_key?(name) || required_key?(name)
end
name() click to toggle source
# File rbs-2.8.2/lib/rbs/location_aux.rb, line 26
def name
  buffer.name
end
optional_key?(name) click to toggle source
# File rbs-2.8.2/lib/rbs/location_aux.rb, line 129
def optional_key?(name)
  _optional_keys.include?(name)
end
range() click to toggle source
# File rbs-2.8.2/lib/rbs/location_aux.rb, line 58
def range
  @range ||= start_pos...end_pos
end
required_key?(name) click to toggle source
# File rbs-2.8.2/lib/rbs/location_aux.rb, line 133
def required_key?(name)
  _required_keys.include?(name)
end
source() click to toggle source
# File rbs-2.8.2/lib/rbs/location_aux.rb, line 62
def source
  @source ||= (buffer.content[range] || raise)
end
start_column() click to toggle source
# File rbs-2.8.2/lib/rbs/location_aux.rb, line 34
def start_column
  start_loc[1]
end
start_line() click to toggle source
# File rbs-2.8.2/lib/rbs/location_aux.rb, line 30
def start_line
  start_loc[0]
end
start_loc() click to toggle source
# File rbs-2.8.2/lib/rbs/location_aux.rb, line 46
def start_loc
  @start_loc ||= begin
    _start_loc || buffer.pos_to_loc(start_pos)
  end
end
to_json(state = _ = nil) click to toggle source
# File rbs-2.8.2/lib/rbs/location_aux.rb, line 77
def to_json(state = _ = nil)
  {
    start: {
      line: start_line,
      column: start_column
    },
    end: {
      line: end_line,
      column: end_column
    },
    buffer: {
      name: name&.to_s
    }
  }.to_json(state)
end
to_s() click to toggle source
# File rbs-2.8.2/lib/rbs/location_aux.rb, line 66
def to_s
  "#{name || "-"}:#{start_line}:#{start_column}...#{end_line}:#{end_column}"
end