Ruby 4.1 リファレンスマニュアル

instance method Prism::Source#find_line

find_line(byte_offset) -> IntegerRuby 4.1 から[permalink][rdoc][edit]

byte_offset の位置がある行の、Prism::Source#offsets 配列上でのインデックス(0 起点)を二分探索で求めます。

実際の行番号(1 起点)ではなく、内部で保持している配列上のインデックスを返す点に注意してください。実際の行番号を得たい場合は Prism::Source#line を使ってください。Prism::Source#line・Prism::Source#line_start・Prism::Source#line_end が内部でこのメソッドを使用します。

[PARAM] byte_offset:
バイトオフセットを指定します。
例
require "prism"

source = Prism.parse("foo = 1\nbar = 2\n").source
p source.find_line(9) # => 1
p source.line(9)      # => 2

[SEE_ALSO] Prism::Source#line