Jeff Peck writes:
 > I've been wondering with frustration why my windows disappear right after i
 > move to them to start editing...

Hi Jeff,

The behavior that you describe is supposed to happen in JDEE 2.3.5 only
if the  variable jde-compile-enable-kill-buffer is on (the default is
off). I've committed a fix for this bug in jde-compile.el to the
JDEE's CVS repository. I've also updated the JDEE User's Guide to
document this behavior.

Paul


 > Then i read: jde-compile-finish-kill-buffer, and lo! it intentionally waits
 > 2 seconds after a compile,
 > then sneaks in and destroys the window that contains the compiler output!
 > Two seconds is about the time it takes me to type C-xC-o, C-xC-b "buffer i
 > want to edit"
 > and magically i've been reduced from 2 windows to 1 window,
 > so now I have to C-x2 can again C-xC-b to get back to the buffer....
 > 
 > Yikes! Kill the compiler buffer, or bury the compile buffer;
 > but don't wait 2 seconds and then mess the window configuration!
 > [IMHO: changing my window configuration asynchronously goes way beyond the
 > principle of least astonishment.]
 > Ok, flame off;
 > Maybe you all use Emacs in the multi-frame pop-up mode and this is not a
 > problem?
 > If so, tell me how you make that work, just setting pop-up-frames makes more
 > and more frames...
 > 
 > 
 > 
 > 
 > Or maybe there is some confusion about deleting the window and killing the
 > buffer:
 > The function called "jde-compile-kill-buffer" un-conditionally deletes a
 > window,
 >  and only conditionally kills a buffer!
 > If the function was re-named "jde-compile-delete-window", then its function
 > and the [IMHO] severe consequences would be more clearly identified.
 > 
 > Can we at least move the (if  jde-compile-enable-kill-buffer ...) test
 > to include the (delete-winodws-on buf) or put *inside*
 > jde-compile-finish-kill-buffer?
 > so it controls not just the 'kill' of the buffer, but also the
 > delete-window-on aspect also?
 > [surely, there is little incentive to kill the compile buffer when compile
 > succeeds...?
 >  it is so small, what is the point of killing it?
 > 
 > Alright, i'm hacked it to work like this:
 > 
 > ;;; redefine jde-compile-enable-kill-buffer to be the time to wait...
 > (defun jde-compile-finish-kill-buffer (buf msg)
 >   "Removes the jde-compile window after a few seconds if no errors."
 >   (save-excursion
 >     (set-buffer buf)
 >     (if (null (or (string-match ".*exited abnormally.*" msg)
 >                   (string-match ".*BUILD FAILED.*" (buffer-string))
 >     (not (numberp jde-compile-enable-kill-buffer))))
 >         ;;no errors, make the compilation window go away in a few seconds
 >         (lexical-let ((compile-buffer buf))
 >           (run-at-time (format "%d secs" jde-compile-enable-kill-buffer)
 >          nil 'jde-compile-kill-buffer
 >            compile-buffer)
 >           (message "No compilation errors"))
 >       ;;there were errors, so jump to the first error
 >       (if jde-compile-jump-to-first-error (next-error 1)))))
 > 
 > (defun jde-compile-kill-buffer (buf)
 >   (kill-buffer buf))
 > 
 > (defcustom jde-compile-enable-kill-buffer 1
 >   "* Number of seconds to wait before 'jde-compile-finish-kill-buffer
 > will kill the compilation output buffer, or nil to not kill the buffer."
 >   :group 'jde-compile-options
 >   :type 'integer)
 > 

Reply via email to