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