You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Some of my thoughts on what the asyncomplete vnext (i.e. v3) should do.
Asyncomplete is pretty much done as there aren't many big features to add but one thing that keeps bothering me is the performance. This is mostly attributed to asyncomplete sources and not asyncomplete it self but given that there has been interesting traction going in both vim and neovim side it would be good if can revisit this. I recently sent a PR for vim to add first class support for vim.call and vim.fn.* which is similar to neovim and was merged. Bram also seems to be open to merging good changes like this that will help the lua interface. If we can have a PR in vim to support transferring between lua functions and vim functions seemlessly seems like a good opportunity to migrate asyncomplete.vim to lua for perf. I have also thought of having vimscript support stdin/stdout/stderr so one could remotely talk which is could be better even if we move to faster languages such as lua. And if neovim support remote lua interface it could even be better. Asyncomplete will always work with just vimscript so folks don't need to worry about it but this gives an opportunity for folks who have lua enabled to have a faster completion engine instead of being blocked by vimscript perf.
Another important feature that bothers me is the lack of cancellation support. While no one seems to have complained about it it is something that could improve perf. This will most likely change the completor interface but since I do want it to be backwards compact I will only change it for lua. https://github.com/prabirshrestha/callbag.vimhttps://github.com/prabirshrestha/lua-callbag
I have started to make the v3 branch open to public though nothing there works but gives an idea on where I would like to go. https://github.com/prabirshrestha/asyncomplete.vim/tree/v3. Currently the biggest blocker is calling vim functions from lua that takes in callbacks as functions in lua script without writing any vimscript.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
Some of my thoughts on what the asyncomplete vnext (i.e. v3) should do.
Asyncomplete is pretty much done as there aren't many big features to add but one thing that keeps bothering me is the performance. This is mostly attributed to asyncomplete sources and not asyncomplete it self but given that there has been interesting traction going in both vim and neovim side it would be good if can revisit this. I recently sent a PR for vim to add first class support for
vim.call
andvim.fn.*
which is similar to neovim and was merged. Bram also seems to be open to merging good changes like this that will help the lua interface. If we can have a PR in vim to support transferring between lua functions and vim functions seemlessly seems like a good opportunity to migrate asyncomplete.vim to lua for perf. I have also thought of having vimscript support stdin/stdout/stderr so one could remotely talk which is could be better even if we move to faster languages such as lua. And if neovim support remote lua interface it could even be better. Asyncomplete will always work with just vimscript so folks don't need to worry about it but this gives an opportunity for folks who have lua enabled to have a faster completion engine instead of being blocked by vimscript perf.Another important feature that bothers me is the lack of cancellation support. While no one seems to have complained about it it is something that could improve perf. This will most likely change the completor interface but since I do want it to be backwards compact I will only change it for lua. https://github.com/prabirshrestha/callbag.vim https://github.com/prabirshrestha/lua-callbag
I have started to make the v3 branch open to public though nothing there works but gives an idea on where I would like to go. https://github.com/prabirshrestha/asyncomplete.vim/tree/v3. Currently the biggest blocker is calling vim functions from lua that takes in callbacks as functions in lua script without writing any vimscript.
Related issues that can be solved.
Improving sources:
There are some plugins such as buffer which is very slow would be good to migrate this to using listener events.
The text was updated successfully, but these errors were encountered: