r7kamura / diary

r7kamura's daily working log.
https://r7kamura.github.io/diary/
MIT License
2 stars 0 forks source link

2022-08-21 #108

Open r7kamura opened 1 year ago

r7kamura commented 1 year ago

image

「カーソルが指しているノードの型が分かる場合はそれを返す」という実装をつくってみようとしている。

ソースコードとカーソル位置を与えると、カーソルの指しているノードと、そのコンテキストを作り出しているノード (ここでは A#b) を返す、という実装を試しにつくった。これはソースコードをパースして位置情報やノードの種類で走査すれば実現できた。

メソッドの仮引数である foo の型注釈はYARDから引いてこれるので、これらを結び付ければ導出できるはず。

r7kamura commented 1 year ago

メソッド内の

について、それぞれYARDで型注釈が与えられていないか調べにいって、あればそれを返すという実装ができた。

image

r7kamura commented 1 year ago

メソッドチェーンに再帰的に対応できた。

あとは対応するノードの種類を増やしていけば、YARDの注釈ベースで型を推測するという機能は完成しそう。

r7kamura commented 1 year ago

次回対応したいもの