Re: flymake integration for the eclipse java compiler

James Ahlborn <[email protected]> Fri, 27 Apr 2007 10:32:51 -0400
Newsgroups gmane.emacs.jdee
Message-ID <[email protected]>
to follow up with more details, it seems to be some sort of interaction
with the bsh process that is the root of the problem.  once the jde-ecj-
server-flymake-init method has run once and established some interaction
with the beanshell process, anytime i try to open another java file and
jde tries to load the project file with a
"jde.util.JdeUtilities.setProjectValues()" command, it fails waiting for
the beanshell process to respond.  if i then "revert" the buffer once
open, the jde-mode starts successfully.  then i can manually invoke
"flymake-mode" to get flymake working in the buffer.  obviously not an
ideal interaction scenario (especially since there is a 30 second
timeout waiting for the initial project file to load, which is the cause
of the delay).  i'm currently using jde 2.3.5 (which is not the latest,
i'm aware).

On Thu, 2007-04-26 at 16:10 -0700, Suraj Acharya wrote:

> Hi James,
> 
> Can you try getting the latest flymake.el from CVS, commenting out the
> line that looks like this:
>   (flymake-reformat-err-line-patterns-from-compile-el
> compilation-error-regexp-alist-alist))
> 
> and uncommenting the previous line, ie the line that looks like this:
> 
>    ;; compilation-error-regexp-alist)
> 
> Suraj
> 
> On 4/23/07, James Ahlborn <[email protected]> wrote:
> >
> >  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
> >
> >