class Prism::Location
Repräsentiert eine Position im Quelltext.
Attribute
Die Länge dieser Position in Bytes.
Ein Source-Objekt, das verwendet wird, um weitere Informationen aus dem gegebenen Offset und der Länge zu ermitteln.
Der Byte-Offset vom Beginn der Quelle, an dem diese Position beginnt.
Öffentliche Klassenmethoden
Source
# File lib/prism/parse_result.rb, line 293 def initialize(source, start_offset, length) @source = source @start_offset = start_offset @length = length # These are used to store comments that are associated with this location. # They are initialized to `nil` to save on memory when there are no # comments to be attached and/or the comment-related APIs are not used. @leading_comments = nil @trailing_comments = nil end
Erstellt ein neues Positions-Objekt mit der gegebenen Quelle, dem Start-Byte-Offset und der Byte-Länge.
Öffentliche Instanzmethoden
Source
# File lib/prism/parse_result.rb, line 481 def ==(other) Location === other && other.start_offset == start_offset && other.end_offset == end_offset end
Gibt true zurück, wenn die gegebene andere Position mit dieser Position identisch ist.
Source
# File lib/prism/parse_result.rb, line 500 def adjoin(string) line_suffix = source.slice(end_offset, source.line_end(end_offset) - end_offset) line_suffix_index = line_suffix.byteindex(string) raise "Could not find #{string}" if line_suffix_index.nil? Location.new(source, start_offset, length + line_suffix_index + string.bytesize) end
Verbindet diese Position mit dem ersten Vorkommen des Strings in der Quelle, das nach dieser Position in derselben Zeile auftritt, und gibt die neue Position zurück. Löst einen Fehler aus, wenn der String nicht existiert.
Source
# File lib/prism/parse_result.rb, line 466 def cached_end_code_units_column(cache) cache[end_offset] - cache[source.line_start(end_offset)] end
Die Endspalte in Code Units unter Verwendung des gegebenen Caches, um den Wert abzurufen oder zu berechnen.
Source
# File lib/prism/parse_result.rb, line 402 def cached_end_code_units_offset(cache) cache[end_offset] end
Der End-Offset vom Beginn der Datei in Code Units unter Verwendung des gegebenen Caches, um den Wert abzurufen oder zu berechnen.
Source
# File lib/prism/parse_result.rb, line 442 def cached_start_code_units_column(cache) cache[start_offset] - cache[source.line_start(start_offset)] end
Die Startspalte in Code Units unter Verwendung des gegebenen Caches, um den Wert abzurufen oder zu berechnen.
Source
# File lib/prism/parse_result.rb, line 380 def cached_start_code_units_offset(cache) cache[start_offset] end
Der Start-Offset vom Beginn der Datei in Code Units unter Verwendung des gegebenen Caches, um den Wert abzurufen oder zu berechnen.
Source
# File lib/prism/parse_result.rb, line 339 def chop copy(length: length == 0 ? length : length - 1) end
Gibt eine neue Position zurück, die das Ergebnis des Abschneidens des letzten Bytes ist.
Source
# File lib/prism/parse_result.rb, line 329 def comments [*@leading_comments, *@trailing_comments] end
Gibt alle Kommentare zurück, die dieser Position zugeordnet sind (sowohl führende als auch nachfolgende Kommentare).
Source
# File lib/prism/parse_result.rb, line 334 def copy(source: self.source, start_offset: self.start_offset, length: self.length) Location.new(source, start_offset, length) end
Erstellt ein neues Positions-Objekt mit den gegebenen Optionen.
Source
# File lib/prism/parse_result.rb, line 471 def deconstruct_keys(keys) { start_offset: start_offset, end_offset: end_offset } end
Implementiert die Schnittstelle für Musterabgleich mit Hashes für Location.
Source
# File lib/prism/parse_result.rb, line 454 def end_character_column source.character_column(end_offset) end
Die Spaltennummer in Zeichen, an der diese Position vom Zeilenanfang aus endet.
Source
# File lib/prism/parse_result.rb, line 391 def end_character_offset source.character_offset(end_offset) end
Der Zeichen-Offset vom Beginn der Quelle, an dem diese Position endet.
Source
# File lib/prism/parse_result.rb, line 460 def end_code_units_column(encoding = Encoding::UTF_16LE) source.code_units_column(end_offset, encoding) end
Die Spaltennummer in Code Units der gegebenen Kodierung, an der diese Position vom Zeilenanfang aus endet.
Source
# File lib/prism/parse_result.rb, line 396 def end_code_units_offset(encoding = Encoding::UTF_16LE) source.code_units_offset(end_offset, encoding) end
Der Offset vom Beginn der Datei in Code Units der gegebenen Kodierung.
Source
# File lib/prism/parse_result.rb, line 448 def end_column source.column(end_offset) end
Die Spaltennummer in Bytes, an der diese Position vom Zeilenanfang aus endet.
Source
# File lib/prism/parse_result.rb, line 418 def end_line source.line(end_offset) end
Die Zeilennummer, an der diese Position endet.
Source
# File lib/prism/parse_result.rb, line 385 def end_offset start_offset + length end
Der Byte-Offset vom Beginn der Quelle, an dem diese Position endet.
Source
# File lib/prism/parse_result.rb, line 344 def inspect "#<Prism::Location @start_offset=#{@start_offset} @length=#{@length} start_line=#{start_line}>" end
Gibt eine String-Darstellung dieser Position zurück.
Source
# File lib/prism/parse_result.rb, line 490 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
Gibt eine neue Position zurück, die von dieser Position bis zur gegebenen anderen Position reicht. Löst einen Fehler aus, wenn diese Position nicht vor der anderen Position liegt oder wenn sie nicht dieselbe Quelle teilen.
Source
# File lib/prism/parse_result.rb, line 312 def leading_comment(comment) leading_comments << comment end
Hängt einen Kommentar an die führenden Kommentare dieser Position an.
Source
# File lib/prism/parse_result.rb, line 307 def leading_comments @leading_comments ||= [] end
Dies sind die Kommentare, die dieser Position zugeordnet sind und vor dem Beginn dieser Position liegen.
Source
# File lib/prism/parse_result.rb, line 476 def pretty_print(q) q.text("(#{start_line},#{start_column})-(#{end_line},#{end_column})") end
Implementiert die Schnittstelle für Pretty Printing für Location.
Source
# File lib/prism/parse_result.rb, line 354 def slice source.slice(start_offset, length) end
Der Quelltext, den diese Position repräsentiert.
Source
# File lib/prism/parse_result.rb, line 361 def slice_lines line_start = source.line_start(start_offset) line_end = source.line_end(end_offset) source.slice(line_start, line_end - line_start) end
Der Quelltext, den diese Position repräsentiert, beginnend vom Anfang der Zeile, in der diese Position beginnt, bis zum Ende der Zeile, in der diese Position endet.
Source
# File lib/prism/parse_result.rb, line 349 def source_lines source.lines end
Gibt alle Zeilen des Quellcodes zurück, der dieser Position zugeordnet ist.
Source
# File lib/prism/parse_result.rb, line 430 def start_character_column source.character_column(start_offset) end
Die Spaltennummer in Zeichen, an der diese Position vom Zeilenanfang aus endet.
Source
# File lib/prism/parse_result.rb, line 369 def start_character_offset source.character_offset(start_offset) end
Der Zeichen-Offset vom Beginn der Quelle, an dem diese Position beginnt.
Source
# File lib/prism/parse_result.rb, line 436 def start_code_units_column(encoding = Encoding::UTF_16LE) source.code_units_column(start_offset, encoding) end
Die Spaltennummer in Code Units der gegebenen Kodierung, an der diese Position vom Zeilenanfang aus beginnt.
Source
# File lib/prism/parse_result.rb, line 374 def start_code_units_offset(encoding = Encoding::UTF_16LE) source.code_units_offset(start_offset, encoding) end
Der Offset vom Beginn der Datei in Code Units der gegebenen Kodierung.
Source
# File lib/prism/parse_result.rb, line 424 def start_column source.column(start_offset) end
Die Spaltennummer in Bytes, an der diese Position vom Zeilenanfang aus beginnt.
Source
# File lib/prism/parse_result.rb, line 407 def start_line source.line(start_offset) end
Die Zeilennummer, an der diese Position beginnt.
Source
# File lib/prism/parse_result.rb, line 412 def start_line_slice offset = source.line_start(start_offset) source.slice(offset, start_offset - offset) end
Der Inhalt der Zeile, in der diese Position beginnt, vor dieser Position.
Source
# File lib/prism/parse_result.rb, line 323 def trailing_comment(comment) trailing_comments << comment end
Hängt einen Kommentar an die nachfolgenden Kommentare dieser Position an.
Source
# File lib/prism/parse_result.rb, line 318 def trailing_comments @trailing_comments ||= [] end
Dies sind die Kommentare, die dieser Position zugeordnet sind und nach dem Ende dieser Position liegen.