Sunday, 21 August 2022

neovim and nvim-agda

ほぼ実用というか、自分で使えるくらいまでなおしたんですが、

  ある状況になると、ex command line にわけわからんメッセージを表示して死ぬ

という状況が。Lua かなにかのError message なんだが、読めないのでどうしようもない。

Emacs 側で修正してとかやってたんですが、再現性はある。どうも、

  neovim 8 から Lua の stack trace が入ったらしい git log がある

なので、neovim 8 の build へ go! cmake なのね。

  cmake -GNinja CMAKE_BUILD_TYPE=RelWithDebInfo ../neovim

とかやるらしい。ところが、Lua-5.1 の library がやはり引っかかる。やはり、

  cp ~/.luarocks/lib/lua/5.1/lpeg.so /usr/local/lib/lua/5.1/

みたいに手動でコピる必要があるらしい。まぁ、気持ちはわかる。で build は、まぁ、通った。

なんですが、結果的には neovim 7 と同じで役に立たず。

lldb で b emsg_multiline とかもやってみたんですが、なんか、DLOG とかがソースにある。なるほど?!

   nvim -V99/tmp/aho zorn.agda

とかすると、Debug log が取れるのか。(-V15 とかではだめ)

  ...kono/.vim/pack/plugins/start/nvim-agda/lua/agda/init.lua:917: invalid UTF-8 code
  stack traceback:
  ^I[C]: in function 'gsub'
  ^I...kono/.vim/pack/plugins/start/nvim-agda/lua/agda/init.lua:917: in function <...kono/.vim/pack/plugins/start/nvim-agda/lua/agda/init.lua:910>

やっと捕まえましたよ。Luaの utf8 lib の utf8.gsub が invalid UTF-8 code で死んでる。良く見ると

 local v = utf8.gsub(vv, "^JSON> ", "")

で、JSON> を落としているだけなので、string.gsub に置き換えたら通りました。

で、そのまま pull req したら、「ばらばらじゃなくて、まとめろよ」とか言われたので、squash とかして出しなおしたところです。

https://github.com/shinji-kono/nvim-agda

No comments: