Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Generalized asynchronous Vim script evaluation (for vim-easytags)
The idea of forking Vim into the background to perform long running tasks that would otherwise block the user's editing session originates from the 'async-cleanup' feature branch of vim-easytags, where I picked it up from a tip by Inko Karkat (@inkarkat). Because I can see this being useful in several of my Vim plug-ins I decided to generalize the concept and implement it in vim-misc. One thing that may not be immediately obvious from the commit is why I implemented two ways for the results of asynchronous processes to feed back into the main Vim process. The reason is twofold, both having to do with Vim's client/server implementation: 1) Reading through the pull request of the mentioned feature branch it looks like Vim's client/server support on Mac OS X is either missing or problematic. 2) Running the 'async-cleanup' branch (which always used client/server communication) I saw several crashes on Linux. I have no proof but suspected the client/server communication to be the cause of this. So now there's an alternative if the client/server mechanism starts to act up (which it may very well do because it's a complex part of Vim). See also the pull request for the mentioned feature branch: xolox/vim-easytags#49
- Loading branch information
Showing
4 changed files
with
615 additions
and
44 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.