Re: flymake integration for the eclipse java compiler

James Ahlborn <[email protected]> Mon, 23 Apr 2007 10:44:36 -0400
Newsgroups gmane.emacs.jdee
Message-ID <[email protected]>
hey,
i gave this a fling on emacs 21.3 with the initial 0.3 version of
flymake (the first version checked into the emacs CVS tree), and i
didn't get very far at all.  i patched and patched for an hour or so and
finally gave up as it seems the initial 0.3 version of flymake is very
different from what jde-eclipse-compiler-server was written against.  i
eventually got the compilation to run, but the error buffer parsing was
a mess.  any chance the jde stuff could be backported for us emacs 21
users?  or, is there a more recent version of flymake out there that is
still 21.3 compatible?
thanks,
-james

On Wed, 2007-04-18 at 20:43 -0700, Suraj Acharya wrote:

> Hello,
> 
> I've updated the eclipse java compiler with JDE integration package at
> http://www.emacswiki.org/cgi-bin/wiki/jde-eclipse-compiler-server.el
> to take advantage of the -Xemacs flag in the 3.2 and newer versions of
> the compiler.
> 
> The docs to reflect the fact that the compiler is also available as a
> small (1 MB) download completely independent from eclipse. The "JDT
> Core Batch Compiler" at
> http://download.eclipse.org/eclipse/downloads/drops/R-3.2.2-200702121330/index.php
> has the latest (3.2.2) version.
> 
> And I've also added flymake integration. From the usage notes:
> ; * Flymake
> ;;
> ;; You have two options to hook the eclipse java compiler into flymake
> ;; to get automatic error/warning information in your source buffers:
> ;; (To use flymake with ecj you first have to select "eclipse java
> ;; compiler server" as your jdee compiler.)
> ;;
> ;; 1) jde-ecj-flymake-init : This is the simple, robust and painfully slow
> ;;    method, in which flymake forks a new jvm process each time it
> ;;    decides to error check the buffer.
> ;;
> ;; To use this funtion set the java line in
> ;; `flymake-allowed-file-name-masks' to
> ;; (\"\\.java\\'\" jde-ecj-flymake-init jde-ecj-flymake-cleanup)"
> 
> ;; 2) jde-ecj-server-flymake-init: This method involves flymake sending a
> ;;    compile command to the eclipse java compiler server in the JDEE
> ;;    bsh process, detecting when the compiler is done printing errors
> ;;    and warnings and then handing control of the bsh process back to
> ;;    JDEE. While it is much faster and compares well to the jikes
> ;;    flymake integration
> ;;    (http://www.emacswiki.org/cgi-bin/wiki/jde-flymake.el), it
> ;;    requires some significant changes to `flymake-process-filter'
> ;;    and `flymake-start-syntax-check-process' and so is more likely
> ;;    to be flaky, and cause problems if you use flymake with
> ;;    non-java buffers.
> ;;
> ;; To use this funtion set the java line in
> ;; `flymake-allowed-file-name-masks' to
> ;; (\"\\.java\\'\" jde-ecj-server-flymake-init jde-ecj-flymake-cleanup)"
> 
> I've only tested this with CVS emacs and the included flymake (version
> 0.3).  Any volunteer beta-testers for other platforms.
> 
> Suraj