Meguro.vim #31に参加した


Meguro.vim #31に参加した。

#やったこと

#nvim-tree-docsのメンテナンス

nvim-treesitter/nvim-tree-docsというプラグインがある。

treesitterの情報をベースにjsdocとかのドキュメントを生成するプラグインである。

そこそこ便利なので使っているのだが、treesitterの更新に追従できていないので、forkしたものを使っている。

vim.lsp.util.apply_text_edits needs offset-encoding by Omochice · Pull Request #23 · nvim-treesitter/nvim-tree-docs

最近nvim-treesitterがbranchをmainに移行している。

Neovim ≧ 0.11ユーザーのためのnvim-treesitter最新版利用ガイド(mainブランチ切り替え) | Atusy’s blog

各種nvim-treesitterを使うプラグインもこれに追従しないといけない。

ただ、そもそもtree-docsは直接luaで書かれているのではなく、lisp方言のFennelを使っている。

javascriptにおけるtypescriptのようなものだが、transpileしたものもcommitされていてもにょる部分がある、かつ、fennelがわからないので直せないみたいなissueがそこそこ立ってて悲しいので、luaにしたい。

claude codeに変換させたが、一部挙動が壊れているので人間が直していた。

やはりぬくもりのある手書きがよいのか

もともとのものにもテストがないので動作担保がたいへんだなという気持ち。

function hoge(foo: string): void {
}

これに対して動作させると以下のようになってしまう。

/**
 * The hoge description
}

関数の情報とかが取れていないのだろうか?

ログをいれてみたところparamはとれていそうなのだが…

M.get_filtered_slots(ps_list, processors, slot_config, context)がどうやらfilterしてそうな雰囲気がある。

{ "doc-start", "description", "func" }

元のfennelのコードから生成されたluaと比べればよさそう。