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

Reply via email to