Класс: Parser::Source::Buffer
- Наследует:
- Object
- Object
- Parser::Source::Buffer
- Определён в:
- sorbet/rbi/parser@3.3.8.0.rbi
Обзор
Буфер с исходным кодом. Buffer содержит сам исходный код, связанную с ним информацию о расположении (имя и номер первой строки) и отвечает за кодировку.
После заполнения исходный буфер становится неизменяемым.
source://parser//lib/parser/source/buffer.rb#25
Краткое описание констант свернуть
- ENCODING_RE =
Эта константа является частью закрытого API. Эту константу можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать эту константу, поскольку она может быть удалена или изменена без предупреждения.
source://parser//lib/parser/source/buffer.rb#31
T.let(T.unsafe(nil), Regexp)
Краткое описание методов класса свернуть
- .recognize_encoding(string) ⇒ String?
Попытаться распознать кодировку
stringтак, как это сделал бы Ruby, то есть - .reencode_string(input) ⇒ String
Распознать кодировку
inputи обработать его так, чтобы его можно было лексически анализировать.
Краткое описание методов экземпляра свернуть
- #column_for_position(position) ⇒ Integer закрытый
Преобразовать индекс символа в исходном коде в номер столбца.
- #decompose_position(position) ⇒ [Integer, Integer]
Преобразовать индекс символа в исходном коде в кортеж
[line, column]. - #first_line ⇒ Integer
Первая строка буфера; по умолчанию — 1.
- #freeze ⇒ Object
source://parser//lib/parser/source/buffer.rb#317.
- #initialize(name, first_line = T.unsafe(nil), source: T.unsafe(nil)) ⇒ Buffer конструктор
source://parser//lib/parser/source/buffer.rb#110.
- #last_line ⇒ Integer
Номер последней строки в буфере.
- #line_for_position(position) ⇒ Integer закрытый
Преобразовать индекс символа в исходном коде в номер строки.
- #line_range(lineno) ⇒ Range
Извлечь строку
linenoв виде новогоRangeс учётомfirst_line. - #name ⇒ String
Имя буфера.
- #raw_source=(input) ⇒ String
Заполнить этот буфер строкой без автоматического определения кодировки.
- #read ⇒ Buffer
Заполнить этот буфер из файла с соответствующим именем.
- #slice(start, length = T.unsafe(nil)) ⇒ Object
source://parser//lib/parser/source/buffer.rb#199.
- #source ⇒ String
Исходный код, содержащийся в этом буфере.
- #source=(input) ⇒ String
Заполнить этот буфер строкой с автоматическим определением кодировки.
- #source_line(lineno) ⇒ String
Извлечь строку
linenoиз исходного кода с учётомfirst_line. - #source_lines ⇒ Array<String>
Вернуть
Arrayстрок исходного кода. - #source_range ⇒ Range
source://parser//lib/parser/source/buffer.rb#303.
Подробное описание конструкторов
#initialize(name, first_line = T.unsafe(nil), source: T.unsafe(nil)) ⇒ Buffer
source://parser//lib/parser/source/buffer.rb#110
5155 | # File 'sorbet/rbi/parser@3.3.8.0.rbi', line 5155 def initialize(name, first_line = T.unsafe(nil), source: T.unsafe(nil)); end |
Подробное описание методов класса
.recognize_encoding(string) ⇒ String?
Попытаться распознать кодировку string так, как это сделал бы Ruby, то есть найти комментарий с указанием кодировки или BOM UTF-8. string может иметь любую кодировку.
source://parser//lib/parser/source/buffer.rb#52
5327 | # File 'sorbet/rbi/parser@3.3.8.0.rbi', line 5327 def recognize_encoding(string); end |
.reencode_string(input) ⇒ String
Распознать кодировку input и обработать его так, чтобы его можно было лексически анализировать.
- Если
inputне содержит BOM или комментария с указанием кодировки, строка сохраняет исходную кодировку. - Если обнаруженная кодировка двоичная,
inputсохраняется в двоичном формате. - В противном случае
inputперекодируется в UTF-8 и возвращается как новая строка.
Этот метод изменяет кодировку input, но не его содержимое.
source://parser//lib/parser/source/buffer.rb#95
5345 | # File 'sorbet/rbi/parser@3.3.8.0.rbi', line 5345 def reencode_string(input); end |
Подробное описание методов экземпляра
#column_for_position(position) ⇒ Integer
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
Преобразует индекс символа в исходном коде в номер столбца.
source://parser//lib/parser/source/buffer.rb#247
5164 | # File 'sorbet/rbi/parser@3.3.8.0.rbi', line 5164 def column_for_position(position); end |
#decompose_position(position) ⇒ [Integer, Integer]
Преобразует индекс символа в исходном коде в кортеж [line, column].
source://parser//lib/parser/source/buffer.rb#222
5173 | # File 'sorbet/rbi/parser@3.3.8.0.rbi', line 5173 def decompose_position(position); end |
#first_line ⇒ Integer
Первая строка буфера, по умолчанию 1.
source://parser//lib/parser/source/buffer.rb#26
5181 | # File 'sorbet/rbi/parser@3.3.8.0.rbi', line 5181 def first_line; end |
#freeze ⇒ Object
source://parser//lib/parser/source/buffer.rb#317
5186 | # File 'sorbet/rbi/parser@3.3.8.0.rbi', line 5186 def freeze; end |
#last_line ⇒ Integer
Номер последней строки в буфере
source://parser//lib/parser/source/buffer.rb#312
5199 | # File 'sorbet/rbi/parser@3.3.8.0.rbi', line 5199 def last_line; end |
#line_for_position(position) ⇒ Integer
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
Преобразует индекс символа в исходном коде в номер строки.
source://parser//lib/parser/source/buffer.rb#236
5208 | # File 'sorbet/rbi/parser@3.3.8.0.rbi', line 5208 def line_for_position(position); end |
#line_range(lineno) ⇒ Range
Извлекает строку lineno как новый Range с учётом first_line.
source://parser//lib/parser/source/buffer.rb#289
5218 | # File 'sorbet/rbi/parser@3.3.8.0.rbi', line 5218 def line_range(lineno); end |
#name ⇒ String
Имя буфера. Если буфер создан из файла, имя соответствует относительному пути к файлу.
source://parser//lib/parser/source/buffer.rb#26
5227 | # File 'sorbet/rbi/parser@3.3.8.0.rbi', line 5227 def name; end |
#raw_source=(input) ⇒ String
Заполняет этот буфер строкой без автоматического определения кодировки.
source://parser//lib/parser/source/buffer.rb#185
5237 | # File 'sorbet/rbi/parser@3.3.8.0.rbi', line 5237 def raw_source=(input); end |
#read ⇒ Buffer
Заполняет этот буфер из файла с соответствующим именем.
source://parser//lib/parser/source/buffer.rb#136
5248 | # File 'sorbet/rbi/parser@3.3.8.0.rbi', line 5248 def read; end |
#slice(start, length = T.unsafe(nil)) ⇒ Object
source://parser//lib/parser/source/buffer.rb#199
5253 | # File 'sorbet/rbi/parser@3.3.8.0.rbi', line 5253 def slice(start, length = T.unsafe(nil)); end |
#source ⇒ String
Исходный код, содержащийся в этом буфере.
source://parser//lib/parser/source/buffer.rb#150
5262 | # File 'sorbet/rbi/parser@3.3.8.0.rbi', line 5262 def source; end |
#source=(input) ⇒ String
Заполняет этот буфер строкой с автоматическим определением кодировки. input изменяется, если строка не заморожена.
source://parser//lib/parser/source/buffer.rb#167
5274 | # File 'sorbet/rbi/parser@3.3.8.0.rbi', line 5274 def source=(input); end |
#source_line(lineno) ⇒ String
Извлекает строку lineno из исходного кода с учётом first_line.
source://parser//lib/parser/source/buffer.rb#278
5284 | # File 'sorbet/rbi/parser@3.3.8.0.rbi', line 5284 def source_line(lineno); end |
#source_range ⇒ Range
source://parser//lib/parser/source/buffer.rb#303
5298 | # File 'sorbet/rbi/parser@3.3.8.0.rbi', line 5298 def source_range; end |
© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/Parser/Source/Buffer.html