On Thu, 09 May 2013 05:51:48 +0200, Bram Moolenaar <b...@moolenaar.net> wrote:
> The top five of the voting list:
> http://www.vim.org/sponsor/vote_results.php
> 
> 1. add IDE features
> 2. add integration with Python instead of inventing more Vim script
> 3. fix all problems, big and small; make Vim more robust
> 4. improve syntax highlighting speed
> 5. add collaborative editing

Hello

I'm quite curious what is meant by IDE-like features. From my experience
most of that is covered by plugins already, except for one significant
roadblock: inability to communicate with external processes without blocking
whole UI. There are hacks to get around it crudely, but they break other
stuff.

To allow really complex interactions from vim plugins, one "simple" change
needs to be done: allow plugins to hook into vim's eventloop. Given
interface to add and remove filedescriptors being watched with custom
callbacks and possibly a timeout callback would be all that's needed.

To actually implement that there are some options. Currently vim has several
system-specific and UI-specific eventloop implementations. So we can:

1) Add VimL api to hook into the eventloops. The unix poll() eventloop seems
   simple enough to start with.

   1a) Use it from other languages, which will be awkward, since one has to
       generate vim code to run.

   1b) Write vim wrappers for functions like popen(), socket(), connect()...
       so pure-VimL scripting will be possible.

2) Add support for some established eventloop that is already pluggable. I
   suspect glib can already be accessed inside gvim. My choice for terminal
   vim would probably be libevent which is highly portable and supported by
   libraries of most scripting languages out there (I know of gevent for
   python. Perl, lua and ruby should also have one). That way we can have
   features working those languages first and then go on with VimL api
   as for 1)

My main issue so far was not knowing enough of C interfaces in vim to code
an actual api. I want to go on with 2) when I have spare time, which I sadly
can't guarantee right now, but I wanted to atleast to bring up this
question.

Footnotes:
 - I know of the netbeans protocol. It's old and clunky and I don't believe
   it lives up to this task.
 - I've seen some patch for this several years back in the archives of the
   mailing list, no further work has been done on this from what I found.

Thanks for great editor btw! :-)

-- 
-- 
You received this message from the "vim_dev" 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_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Raspunde prin e-mail lui