Loading ...
Sorry, an error occurred while loading the content.
 

Pluggable eventloop, was Re: Plans for Vim 7.4

Expand Messages
  • Jan Pobrislo
    ... 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
    Message 1 of 57 , May 10, 2013
      On Thu, 09 May 2013 05:51:48 +0200, Bram Moolenaar <Bram@...> 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+unsubscribe@....
      For more options, visit https://groups.google.com/groups/opt_out.
    • Bram Moolenaar
      ... Thanks, I ll include them. -- DENNIS: You can t expect to wield supreme executive power just cause some watery tart threw a sword at you! Monty Python
      Message 57 of 57 , May 23, 2013
        Thomas Köhler wrote:

        > Hello Bram, hello Ron,
        >
        > Bram Moolenaar wrote:
        > > Hello Vim users,
        > [...]
        > > Besides that, if you are maintaining runtime files, please send me any
        > > pending updates. I will not make big changes just before the release,
        > > everything needs some time for testing. Let's set a deadline at the end
        > > of May.
        >
        > Attached, you can find a new version of prolog.vim (syntax
        > highlightning for prolog) and koehler.vim (my colorscheme). The
        > former fixes a bug in prologClauseHead higlightning, the later
        > now supports the Underline and Ignore groups.

        Thanks, I'll include them.

        --
        DENNIS: You can't expect to wield supreme executive power just 'cause some
        watery tart threw a sword at you!
        "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD

        /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
        /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
        \\\ an exciting new programming language -- http://www.Zimbu.org ///
        \\\ help me help AIDS victims -- http://ICCF-Holland.org ///

        --
        --
        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+unsubscribe@....
        For more options, visit https://groups.google.com/groups/opt_out.
      Your message has been successfully submitted and would be delivered to recipients shortly.