ms-jpq / coq_nvim

Fast as FUCK nvim completion. SQLite, concurrent scheduler, hundreds of hours of optimization.
GNU General Public License v3.0
3.54k stars 101 forks source link

Coq completely hangs Neovim on some completions :-/ #446

Closed laomaiweng closed 2 years ago

laomaiweng commented 2 years ago

I'm regularly running into an issue where Coq hangs all of Neovim and I have to kill the process, which is kind of frustrating.

Basically, this happens when I just do this after starting Neovim:

:COQnow    " nothing bad happens if Coq stays off
:enew
:set ft=c
i
void main() {

Right there after typing the {, ~75% of the time Neovim hangs indefinitely. This is definitely an issue related to my setup (interaction w/ another plugin perhaps? I don't know yet) as trying out Coq in a clean environment (with just a Neovim package manager and Coq) doesn't seem to result in hangs.

There are other circumstances that lead to the hang, e.g. { <start typing here in Insert mode> } in Lua, and even in Rust code (though I've only observed it once).

What's more, while Neovim is hung it starts consuming more and more RAM: several 10s of MBs more with each passing second, until I kill it to avoid OOM. This behavior occurs on Windows, Android (inside Termux) and Linux.

I tried to add more logging statements to the code, but couldn't pinpoint the root cause:

I'm not yet done debugging this issue, but I'm running out of ideas on how to further investigate, so any help is appreciated. :-/

nthapaliya commented 2 years ago

I had the same problem. For me it would occur semi-regularly on when entering insert mode and typing enter. I've commented out coq_nvim in my configs for now. I'm willing to help debug this issue, but like OP I've no idea where to start.

laomaiweng commented 2 years ago

Found the cause, in my case it's vim-closer playing forbidden tricks with mappings: https://github.com/rstacruz/vim-closer/issues/37

exe "imap <CR> ".oldmap."<Plug>CloserClose"

😱

This breaks Coq's expr mapping on <CR>.