Raul Acevedo writes:
 > Paul Kinnucan wrote:
 > 
 >  > Emacs is not multithreaded. You can try to interleave operations
 >  > between keystrokes but this is dicey. Further, the current file is
 >  > not necessarily ever going to be completed in the current session.
 > 
 > Emacs Lisp isn't, but Emacs can start asynchronous processes.  If JDEE
 > uses Java reflection, I'm assuming this is done in the BSH buffer...
 > 

Yes. I suppose. One possibility might be to start a process when
emacs starts up that builds a completion database for the entire
classpath in the background and ships it over to Emacs either via
standard I/O or via a temporary file. Provision would need to be
made for updating the database as files are compiled.

- Paul

 > It's possible create multiple BSH buffers to handle multiple async
 > requests.  You create a new one (up to a configurable max) when all
 > others are busy, otherwise you pick the first free one.
 > 
 > I did something like this for my MIT undergrad thesis, which was done in
 > Emacs Lisp... it's been a while, but I'm sure something like this is
 > possible.  It shouldn't even be that bad to set up, if you properly
 > abstract how you dispatch a subprocess request.
 > 
 >  > One use is for the JDEE to build its own completion database, e.g.,
 >  > semantic, that does not rely on Java reflection. This approach has
 >  > been discussed at length on this list several times over the last
 >  > three years. Please refer to the archive for more info.
 > 
 > Interesting.  I'll have to look it up...
 > 
 > Raul

Reply via email to