I’ve been using vim and neovim for quite some time now. I use vim and neovim for coding and other side creative writing projects that has to do with college. these side writeups are often gigantic, and aside from these textual files, i often rely on peculiar and often quaint terms and so i had to enable dictionary completion, and that’s where the problem started to arise. By enabling the french dictionary as a source, the completion was really slow and computationally intensive, with constant cpu spikes with each word completion. I know that for vim there happen coc-nvim, and after contacting the dev, he adjusted the searching algorithm which did result in a noticeable improvement, however it was bound to be slow as nodejs is the external code that process the buffer content. Now here we come to my inquiry, Is it possible for neovim to implement a native word/buffer completion that just gets enabled by default option without resorting to other additional language server implementation with cmp buffer source (as it’s equally slow)?
yes, will it? I’m not sure. Does it already exists? yes: fzf.vim
has some utility functions that allows you to call ripgrep on that dictionary and filter it with fzf. feed that into a completion function/source of your devising and you’ve got blazing fast completion. coq-nvim
does something similar with SQL, which is amazingly fast, but the python implementation gets me boggled, total python noob here, therefore I don’t use it anymore.
I was aspiring for native builtin implementation, and not relying on fzf&rg. Also sorry for the late reply, google decided for some reason to place this website’s domain’s email under my spam folder.
No problem. BTW, about native completion, with the introduction of Lua autocmds I was able to write down a simple autocompletion in Lua for lsp’s omnifunc. So it’s now possible to make Neovim’s completion look like other editors like sublime or vscode, just not as ergonomic. Look for CompleteDone
, CompleteDonePre
and CompleteChanged
augroup
s.
I was thinking of a standalone setting that can be toggled on and off, to enable buffer word completion. I thought such a feature was so rudimentary, that it should have a basic setting of its own(without relying on lua or scripting in general).