File: //usr/lib/ruby/gems/3.2.0/gems/rbs-2.8.2/sig/location.rbs
module RBS
# Location is the range on buffer, `start_pos..end_pos`.
# The index is based on characters.
#
# A location can have _child_ locations.
#
class Location[in RequiredChildKeys, in OptionalChildKeys]
# The buffer this location points on.
attr_reader buffer (): Buffer
# The index of character the range starts from.
attr_reader start_pos (): Integer
# The index of character the range ends at.
attr_reader end_pos (): Integer
def initialize: (Buffer, Integer start_pos, Integer end_pos) -> void
def self.new: (Buffer, Integer start_pos, Integer end_pos) -> instance
| (buffer: Buffer, start_pos: Integer, end_pos: Integer) -> instance
def inspect: () -> String
# Returns the name of the buffer.
def name: () -> untyped
# Line of the `start_pos` (1 origin)
attr_reader start_line (): Integer
# Column of the `start_pos` (0 origin)
attr_reader start_column (): Integer
# Line of the `end_pos` (1 origin)
attr_reader end_line (): Integer
# Column of the `end_pos` (0 origin)
attr_reader end_column (): Integer
attr_reader start_loc (): Buffer::loc
@start_loc: Buffer::loc?
attr_reader end_loc (): Buffer::loc
@end_loc: Buffer::loc?
attr_reader range (): Range[Integer]
@range: Range[Integer]?
# A substring of buffer associated to the location.
def source: () -> String
@source: String?
def to_s: () -> String
# Returns a string representation suitable for terminal output.
#
# Location.to_string(loc) # => a.rb:1:0...3:4
# Location.to_string(nil) # => *:*:*..*:*
#
def self.to_string: (Location[untyped, untyped]? location, ?default: ::String default) -> String
def ==: (untyped other) -> bool
include _ToJson
def add_optional_child: (OptionalChildKeys name, Range[Integer]? range) -> void
def add_required_child: (RequiredChildKeys name, Range[Integer] range) -> void
# Returns `Location` instance for given _child_ name.
#
# # @type var loc: Location::WithChildren[:name, :args]
# loc[:name] # => Location
# loc[:args] # => may be nil
#
# Note that passing unknown symbol raises an error even if the child is _optional_.
# You need explicitly set `nil` for absent optional children.
#
def []: (RequiredChildKeys) -> Location[bot, bot]
| (OptionalChildKeys) -> Location[bot, bot]?
| (Symbol) -> Location[bot, bot]?
alias aref []
def each_optional_key: () { (Symbol) -> void } -> void
| () -> Enumerator[Symbol, void]
def each_required_key: () { (Symbol) -> void } -> void
| () -> Enumerator[Symbol, void]
def optional_key?: (Symbol) -> bool
def required_key?: (Symbol) -> bool
def key?: (Symbol) -> bool
private
def _start_loc: () -> Buffer::loc?
def _end_loc: () -> Buffer::loc?
def _add_required_child: (RequiredChildKeys name, Integer start_pos, Integer end_pos) -> void
def _add_optional_child: (OptionalChildKeys name, Integer start_pos, Integer end_pos) -> void
def _add_optional_no_child: (OptionalChildKeys name) -> void
def _optional_keys: () -> Array[Symbol]
def _required_keys: () -> Array[Symbol]
WithChildren: singleton(Location)
end
end