This might be a job for jde-jeval-async, which asks the beanshell to
evaluate something and returns right away, unlike jde-jeval and
friends it doesn't wait for a response from bsh.
(defun jde-jeval-async (java-statement &optional eval-return)
"Uses the JDEE's instance of the BeanShell
Java interpreter to evaluate the Java expression EXPR. It
returns right away and doesn't wait for a response from the
BeanShell. If the BeanShell is not running, the JDEE starts an
instance. "
(let ((the-bsh (oref 'jde-bsh the-bsh)))
(when (not (bsh-running-p the-bsh))
(bsh-launch the-bsh)
(bsh-async-eval the-bsh (jde-create-prj-values-str)))
(bsh-async-eval the-bsh java-statement eval-return)))
I had to modify bsh-async-eval slightly to add the option on not
evaluating the return value.
(defmethod bsh-async-eval ((this bsh) expr &optional eval-return)
"Send the Java statement EXPR to the BeanShell for
evaluation. Do not wait for a response."
(unless (bsh-running-p this)
(bsh-launch this))
(oset this lisp-output "")
(oset this java-expr expr)
+ (if eval-return
+ (set-process-filter (oref (oref this buffer) process) (oref
this async-filter))
+ (set-process-filter (oref (oref this buffer) process) (oref
this eval-filter))
+ )
- (set-process-filter (oref (oref this buffer) process) (oref this
async-filter))
(when (bsh-running-p this)
(process-send-string (oref (oref this buffer) process) (concat expr "\n"))))
I don't know much about process filters but this seems to work as
expected even if more
than one command has been submitted to the beanshell.
For example:
(progn
(jde-jeval-async "Thread.sleep (10000);System.out.println (\"'a\");")
(jde-jeval-r "System.out.println (\"'b\");"))
returns 'b after 10 seconds as expected.
On Thu, 14 Oct 2004 22:38:39 -0400, Paul Kinnucan <[EMAIL PROTECTED]> wrote:
> Raul Acevedo writes:
> > On Wed, 2004-10-13 at 01:14 -0400, Paul Kinnucan wrote:
> >
> > > * Update the class list used by completion and by code generation
> > > wizards after compiling a class or building a project. This
> > > should ensure that completion and the wizards work for new
> > > classes and changes to existing classes after compiling
> > > new or changed classes.
> >
> > This is extremely slow on large projects, even if I'm just compiling a
> > single class. I'm assuming that's because it's updating everything in
> > the class path. If so, can it be changed to only update the class that
> > was just compiled? And until that happens, how can I disable it and run
> > it manually when necessary? It takes about 30 seconds right now.
> >
>
> Hi Raul,
>
> I'll see if I can get the first approach to work. Meanwhile, you can
> easily disable this feature by removing je-compile-finish-update-class-info
> from jde-compile-finish-hook.
>
> Paul
>
>