Cool!!! Thanks for sharing!!! 2016-09-25 12:15 GMT-03:00 Lyndon White <oxina...@ucc.asn.au>:
> Ok, I've had this kicking around for months. > It has taken me until now to get around to actually packaging it up so > that anyone could use it. > > Check it out: https://github.com/JuliaEditorSupport/deoplete-julia > > It actually works pretty well (even if I can't write reasonable code in > demos): > https://asciinema.org/a/688g8iyhj1idrtz8ooptr6iso > > Neovim <https://neovim.io/>is very close to vim in functionality -- it > can run all the same extensions etc. > If you run vim, you should not really even notice the change to neovim, as > a used. > As a plug-in developer though, things have gotten way better. > Writing a smart syntax completer for regular vim was historically nearly > impossible, because vim didn't support background tasks. > Neovim supports background takes out of the box, and these are used by > Deoplete > <https://github.com/Shougo/deoplete.nvim>completion engine, > which this plugin extends. > > > Syntax completion is loaded from what is exported from any modules you > `using`, > as well as from `Base` and `Core`. > It also spits out help text, as it goes (as you can see in the demo) > > > The way it works is a little bit (maybe a lot evil). > `jltag` loads up every module you `using` and generates a semantic tagfile > (technically a legal exuberant-ctags file even, I think). > It uses reflection to dump out all kinds of useful info, like docstrings > and constant values and a bunch of other stuff. > It caches this in a file, which is then loaded by a small chunck of python > code, that runs in deoplete. > If your dependency modules change the cache is regenerated. > `jltag` and the files it generated could be ported to be used with > another syntax completion engine. > I think you could with only a little work, get normal Vim YouCompleteMe > <https://github.com/Valloric/YouCompleteMe>syntax completion working, by > telling it to load from these tag files. but YCM has a terrifying codebase, > and overall architecture. > You could probably get a bunch of other syntax completers that accept tag > files working too. > (or you could use the ctagger from julialang/julia/contrib > <https://github.com/JuliaLang/julia/blob/master/contrib/ctags> to do that) > > > Anyway, > if you are a Vim user, I suggest grabbing Neovim, and Deoplete and then > firing this up. > Let me know what you think, and raise some issues over in the repo. > > >