[prev in list] [next in list] [prev in thread] [next in thread] 

List:       vim
Subject:    RE: Intellisense for Vim Available (Beta)
From:       Bram Moolenaar <Bram () moolenaar ! net>
Date:       2003-08-29 20:24:05
[Download RAW message or body]


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@Moolenaar.net -- 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  ///
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic