Javadoc and Emacs 22 Incompatibility

Chris Britton <[email protected]> Fri, 6 Apr 2007 17:56:43 -0500
Newsgroups gmane.emacs.jdee
Message-ID <[email protected]>
The new compile.el in emacs 22 breaks the jde-javadoc-make-buffer
function.  There are two problems.  First, a

    Symbol's value as variable is void: compilation-nomessage-regexp-alist

message because this variable has been removed in emacs 22.  I worked
around this by adding:

    (defvar compilation-nomessage-regexp-alist '())
    
to my .emacs file.

After solving that error, running jde-javadoc-make-buffer failed with a

    Buffer is read-only

message for the the "*javadoc*" buffer.  The reason is that the new
compilation-mode function makes a buffer read-only where the old one
didn't.  (compilation-mode is called from the create-buffer method of
the efc-compiler class in efc.el.)  Adding the line:

    (add-hook 'compilation-mode-hook (lambda () (setq buffer-read-only nil)))
    
to my .emacs file works around this problem.

Alternatively, moving the line:

    (setq buffer-read-only nil)

in the efc create-buffer method after the line:

    (compilation-mode (oref this name))

also fixes the problem.  However, I'm not much of a Lisp programmer so
I'm not sure what undesirable effects this might have.

Hope this helps.

-- 
Chris Britton
[email protected]