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

RE: Intellisense for Vim Available (Beta)

Expand Messages
  • Bram Moolenaar
    ... A popup window from another process would certainly be hard to manage. On the other hand, if the window is managed by Vim then Vim must be changed to
    Message 1 of 19 , Aug 29, 2003
      Ravi Shankar Sivaraman wrote:

      > We had some problems with the UI, because it is from a seperate
      > process. First of all, "integrating" with vim was difficult since it should
      > act as vim as its parent window, while it is not. Sometimes we had the
      > problem of getting this window into foreground as, SetForegroundWindow in
      > WinApi blinks the windows from 2000.
      > As you can still see, vim window actually looses focus, and the cursor is
      > changed while intellisense window is on. I dont know how to stop this
      > behaviour. I guess these things are because it is a seperate process. If vim
      > provides this type of window, then integration would be fine and may work
      > for various platforms.

      A popup window from another process would certainly be hard to manage.
      On the other hand, if the window is managed by Vim then Vim must be
      changed to customize the window contents. Unless a simple selection
      list would be sufficient.

      Perhaps a trick is used to pass the Vim main window ID to the helper
      application, so that it can create a child window. But event handling
      might be complicated then.

      > Bram, I will look in to agide for UI. But backend might get complex if we
      > dont use a simple mechanism like dll. But dlls works only in windows,
      > may be we should try to find a way which is OS independent. Having a
      > seperate process , etc can make things slower. I guess speed is
      > important here, and window should appear within a preferred time(less
      > than 1 sec is good, 500ms will be better).
      > I havent got much experience in multiplatform, but I will look into it.

      The communication used in Agide between tools is very simple and easy to
      extend. The basic setup is done, thus you can take one of the existing
      interfaces and copy and/or extend it.

      In the case of Vim communicating with another tool to do completion,
      this would work like the balloon evaluation used with gdb: when the
      mouse pointer hovers over a variable Vim sends a message to Agide.
      Agide passes this on to the debugger and the debugger replies with the
      value of the variable. Agide then sends it back to Vim, which displays
      the balloon with the result.

      Agide plays the role of passing message between tools, so that Vim
      doesn't know what debugger is being used and the debugger doesn't know
      what editor is being used. Thus if completion is setup this way it
      could work with several editors.

      We're knights of the Round Table
      Our shows are formidable
      But many times
      We're given rhymes
      That are quite unsingable
      We're opera mad in Camelot
      We sing from the diaphragm a lot.
      "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD

      /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
      /// Creator of Vim - Vi IMproved -- http://www.Vim.org \\\
      \\\ Project leader for A-A-P -- http://www.A-A-P.org ///
      \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
    Your message has been successfully submitted and would be delivered to recipients shortly.