Wednesday, August 2, 2017

Re: Idea and prototype: Vim independent event based communication & completions?

2017-08-03 0:23 GMT+03:00 Marc Weber <marco-oweber@gmx.de>:
> Vim8 / NeoVim / maybe Emacs and more
> languages: VimL/Python (maybe lua)/ others
>
> But common features such as
> - completion
> - templates
> - describe thing at cursor
> - goto thing at cursor
> - show errors
> - run compilation
> - ...
>
> 500 plugins - but how to make them work together?
>
> http://github.com/MarcWeber/editor-cells
>
> Is an attempt to implement the features in an independent manner so that
> those parts can talk to each other by message passing style no matter
> what language they are written in.

Almost everything in your list is covered by language server protocol:
completion, describing things at cursor, goto definition, … It is more
logical to extend LSP then invent something else. Currently LSP does
not support only "templates" and, probably, "run compilation" ([code
action request][1] is documented to have different purpose) from your
list. What it does not support and what neither is on your list, but
what would be good to have is syntax highlighting support, [LSP's
document highlight][2] is a different thing.

From what I have read it looks like you are trying to create an LSP,
but without the "server" part, looking like a mesh network. Please, do
not do useless job, better work on LSP.

Though I am very unsure whether I understood right regarding how you
are going to implement anything you claim.

[1]: https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#textDocument_codeAction
[2]: https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#textDocument_documentHighlight.

>
> Because reinventing the wheel sucks.
>
> It is an experiment, maybe it will hit speed bottlenecks, but I felt its
> the most flexible way to learn from the past.
>
> https://github.com/MarcWeber/editor-cells/blob/master/vimrc
> and SetupVimTestCells() shows how to setup completion and a simple auto
> triggering implementation. You see that you can add custom completions
> to existing omnifuncs easily by using wrappers around existing omnifuncs
> such as CompleteMonth.
>
> The long term goal is to provide completions which you could combine
> with machine learning to see which options should be ranked highest for
> instance.
>
> So the idea is that you can compose individual features the way you
> need.
>
> SetupPy2TestCells works, the py3 async code needs more work - but its
> enough to get an idea.
>
> Once there is a 'common format' many editors car do basic things with
> then libraries even can provide their own snippets / dsls / stuff and be
> done. Currently its a lot of work for everyone.
>
> Feedback welcome - its very early stage.
>
> Marc Weber
>
> --
> --
> You received this message from the "vim_use" maillist.
> Do not top-post! Type your reply below the text you are replying to.
> For more information, visit http://www.vim.org/maillist.php
>
> ---
> You received this message because you are subscribed to the Google Groups "vim_use" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment