Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

asyncomplete v3 #200

Closed
prabirshrestha opened this issue May 17, 2020 · 2 comments
Closed

asyncomplete v3 #200

prabirshrestha opened this issue May 17, 2020 · 2 comments

Comments

@prabirshrestha
Copy link
Owner

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.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.

@astier
Copy link

astier commented Aug 1, 2020

+1 for fuzzy

@stale
Copy link

stale bot commented Oct 17, 2020

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.

@stale stale bot added the wontfix label Oct 17, 2020
@stale stale bot closed this as completed Oct 24, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants