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

instance method Prism::Node#tunnel

tunnel(line, column) -> [Prism::Node]Ruby 3.4 から[permalink][rdoc][edit]

指定した行・桁を位置に含むノードを、自分自身から子孫の方向へ順に並べた配列で返します。エディタ上のカーソル位置に対応するノードを特定するといった用途に使えます。

[PARAM] line:
行番号(1 始まり)を指定します。
[PARAM] column:
行頭からのバイト単位の桁位置(0 始まり)を指定します。
require "prism"

node = Prism.parse("x = 1 + 2").value
path = node.tunnel(1, 4)
p path.map(&:type)
# => [:program_node, :statements_node, :local_variable_write_node, :call_node, :integer_node]