класс Prism::Location
Это представляет местоположение в источнике.
Атрибуты
Список комментариев, прикрепленных к этому местоположению
Длина этого местоположения в байтах.
Смещение в байтах от начала источника, где начинается это местоположение.
Публичные методы класса
# File lib/prism/parse_result.rb, line 108 def initialize(source, start_offset, length) @source = source @start_offset = start_offset @length = length @comments = [] end
Создать новый объект местоположения с заданным источником, начальным байтовым смещением и длиной в байтах.
# File lib/prism/parse_result.rb, line 221 def self.null new(nil, 0, 0) end
Возвращает пустое местоположение, которое не соответствует источнику и указывает на начало файла. Полезно, когда вам нужен объект местоположения, но вам неважно, куда он указывает.
Публичные методы экземпляра
# File lib/prism/parse_result.rb, line 202
def ==(other)
other.is_a?(Location) &&
other.start_offset == start_offset &&
other.end_offset == end_offset
end Возвращает true, если заданное местоположение other равно этому местоположению.
# File lib/prism/parse_result.rb, line 116
def copy(**options)
Location.new(
options.fetch(:source) { source },
options.fetch(:start_offset) { start_offset },
options.fetch(:length) { length }
)
end Создаёт новый объект местоположения с заданными параметрами.
# File lib/prism/parse_result.rb, line 192
def deconstruct_keys(keys)
{ start_offset: start_offset, end_offset: end_offset }
end Реализует интерфейс сопоставления с образцом хэша для Location.
# File lib/prism/parse_result.rb, line 187 def end_character_column source.character_column(end_offset) end
Номер столбца в символах, где заканчивается это местоположение от начала строки.
# File lib/prism/parse_result.rb, line 147 def end_character_offset source.character_offset(end_offset) end
Смещение символов от начала источника, где заканчивается это местоположение.
# File lib/prism/parse_result.rb, line 181 def end_column source.column(end_offset) end
Номер столбца в байтах, где заканчивается это местоположение от начала строки.
# File lib/prism/parse_result.rb, line 163 def end_line source.line(end_offset) end
Номер строки, где заканчивается это местоположение.
# File lib/prism/parse_result.rb, line 141 def end_offset start_offset + length end
Смещение в байтах от начала источника, где заканчивается это местоположение.
# File lib/prism/parse_result.rb, line 125
def inspect
"#<Prism::Location @start_offset=#{@start_offset} @length=#{@length} start_line=#{start_line}>"
end Возвращает строковое представление этого местоположения.
# File lib/prism/parse_result.rb, line 211 def join(other) raise "Incompatible sources" if source != other.source raise "Incompatible locations" if start_offset > other.start_offset Location.new(source, start_offset, other.end_offset - start_offset) end
Возвращает новое местоположение, которое простирается от этого местоположения до заданного местоположения other. Возвращает ошибку, если это местоположение не находится перед другим местоположением или если они не используют один и тот же источник.
# File lib/prism/parse_result.rb, line 197
def pretty_print(q)
q.text("(#{start_line},#{start_column})-(#{end_line},#{end_column})")
end Реализует интерфейс красивой печати для Location.
# File lib/prism/parse_result.rb, line 130 def slice source.slice(start_offset, length) end
Исходный код, который представляет это местоположение.
# File lib/prism/parse_result.rb, line 175 def start_character_column source.character_column(start_offset) end
Номер столбца в символах, где начинается это местоположение от начала строки.
# File lib/prism/parse_result.rb, line 136 def start_character_offset source.character_offset(start_offset) end
Смещение символов от начала источника, где начинается это местоположение.
# File lib/prism/parse_result.rb, line 169 def start_column source.column(start_offset) end
Номер столбца в байтах, где начинается это местоположение от начала строки.
# File lib/prism/parse_result.rb, line 152 def start_line source.line(start_offset) end
Номер строки, где начинается это местоположение.
# File lib/prism/parse_result.rb, line 157 def start_line_slice offset = source.line_start(start_offset) source.slice(offset, start_offset - offset) end
Содержимое строки, где начинается это местоположение, перед этим местоположением.
Ruby Core © 1993–2022 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.