Open r7kamura opened 1 year ago
「カーソルが指しているノードの型が分かる場合はそれを返す」という実装をつくってみようとしている。
ソースコードとカーソル位置を与えると、カーソルの指しているノードと、そのコンテキストを作り出しているノード (ここでは A#b) を返す、という実装を試しにつくった。これはソースコードをパースして位置情報やノードの種類で走査すれば実現できた。
A#b
メソッドの仮引数である foo の型注釈はYARDから引いてこれるので、これらを結び付ければ導出できるはず。
foo
メソッド内の
について、それぞれYARDで型注釈が与えられていないか調べにいって、あればそれを返すという実装ができた。
メソッドチェーンに再帰的に対応できた。
あとは対応するノードの種類を増やしていけば、YARDの注釈ベースで型を推測するという機能は完成しそう。
次回対応したいもの
「カーソルが指しているノードの型が分かる場合はそれを返す」という実装をつくってみようとしている。
ソースコードとカーソル位置を与えると、カーソルの指しているノードと、そのコンテキストを作り出しているノード (ここでは
A#b
) を返す、という実装を試しにつくった。これはソースコードをパースして位置情報やノードの種類で走査すれば実現できた。メソッドの仮引数である
foo
の型注釈はYARDから引いてこれるので、これらを結び付ければ導出できるはず。