Re: flymake integration for the eclipse java compiler
"Suraj Acharya" <[email protected]> Fri, 27 Apr 2007 12:50:12 -0700
| Newsgroups | gmane.emacs.jdee |
|---|---|
| Message-ID | <[email protected]> |
Jason, The problem is because flymake thinks the temp file is called "c:/DOCUME~1/jcoffin/LOCALS~1/Temp/..." while ecj is returning error messages with filenames like "c:\Documents and Settings\jcoffin\Local Settings\Temp\...". I thought I fixed this in the new function definition I sent in my previous mail, by not calling file-truename. Are you sure you're using this function definition and not the one from your saved .el file? Basically the variable temp-file in that function should have the directory names with ~1 in them, and not spaces. What does the line that starts with "sent command=.." in your *Messages* buffer look like? Suraj On 4/27/07, Jason Coffin <[email protected]> wrote: > On 4/26/07, Suraj Acharya <[email protected]> wrote: > > Looks like another windows issue - filename expansion this time. Can > > you try this ? > > > > (defun jde-ecj-server-flymake-init () > > "Run the Eclipse Java compiler to collect flymake errors. > > 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)" > > > > (unless jde-ecj-server-setup-called > > (jde-ecj-server-setup)) > > > > (if (not (object-of-class-p (jde-compile-get-the-compiler) > > 'jde-compile-ejc-server)) > > (error "The ecj option for flymake can only be set when the > > jde-compiler is also set to ecj") > > ;; else > > (let* ((temp-file (flymake-init-create-temp-buffer-copy > > 'jde-ecj-create-temp-file)) > > (directory-sep-char ?/) > > (args (append (jde-compile-classpath-arg > > (jde-compile-get-the-compiler)) > > (list "-Xemacs" "-noExit") > > jde-ecj-command-line-args)) > > (arg-array (concat "new String[] {")) > > (bsh-process (oref (oref (oref 'jde-bsh the-bsh) buffer) process))) > > > > (unless (jde-bsh-running-p) > > (bsh-launch (oref 'jde-bsh the-bsh)) > > (bsh-eval (oref 'jde-bsh the-bsh) (jde-create-prj-values-str))) > > > > (if args (setq arg-array (concat arg-array > > (mapconcat > > (lambda (arg) > > (concat "\"" arg "\"")) args ",") > > ","))) > > > > (setq arg-array (concat arg-array "\"" temp-file "\"}")) > > > > > > (list (cons bsh-process ;; server process > > "bsh %") ;; output end marker > > ;; compile command > > (concat (format > > "(new > > org.eclipse.jdt.internal.compiler.batch.Main(new > > java.io.PrintWriter(System.out), > > > > new java.io.PrintWriter(System.err), true)).compile(%s);" > > arg-array)))))) > > Done. But the same issue is happening, only the first line of my > source file is highlighted. Below is the output (I wonder if the: > parsed 'bsh % ', no line-err-info has anything to do with it). > > received 287 byte(s) of output from process 3532 > output : c:\Documents and Settings\jcoffin\Local > Settings\Temp\-12027872\ISPSpamComplaintHandler.java:50: error: Syntax > error on token "stati", static expected > public stati final String MAIL_SERVER_NAME = > "backoffice.ISPSpamCompliantHandler.ServerName."; > ^^^^^ > 1 problem (1 error) > bsh % > file e:/work/LTY-P000039/backoffice/process/src/main/java/com/upromise/backoffice/daemons/ISPSpamComplaintHandler.java, > init=jde-ecj-server-flymake-init > parse line: file-idx=2 line-idx=4 file=c:\Documents and > Settings\jcoffin\Local > Settings\Temp\-12027872\ISPSpamComplaintHandler.java line=50 > text=error: Syntax error on token "stati", static expected > get-real-file-name: file-name=c:\Documents and Settings\jcoffin\Local > Settings\Temp\-12027872\ISPSpamComplaintHandler.java > real-name=c:/Documents and Settings/jcoffin/Local > Settings/Temp/-12027872/ISPSpamComplaintHandler.java > parsed 'c:\Documents and Settings\jcoffin\Local > Settings\Temp\-12027872\ISPSpamComplaintHandler.java:50: error: Syntax > error on token "stati", static expected', got line-err-info > parsed ' public stati final String MAIL_SERVER_NAME = > "backoffice.ISPSpamCompliantHandler.ServerName.";', no line-err-info > parsed ' ^^^^^', no line-err-info > parsed '1 problem (1 error)', no line-err-info > file e:/work/LTY-P000039/backoffice/process/src/main/java/com/upromise/backoffice/daemons/ISPSpamComplaintHandler.java, > init=jde-ecj-server-flymake-init > server process 3532 "exited" with output c:\Documents and > Settings\jcoffin\Local > Settings\Temp\-12027872\ISPSpamComplaintHandler.java:50: error: Syntax > error on token "stati", static expected > public stati final String MAIL_SERVER_NAME = > "backoffice.ISPSpamCompliantHandler.ServerName."; > ^^^^^ > 1 problem (1 error) > bsh % > cleaning up using jde-ecj-flymake-cleanup > deleted file c:/DOCUME~1/jcoffin/LOCALS~1/Temp/-12027872/ISPSpamComplaintHandler.java > file e:/work/LTY-P000039/backoffice/process/src/main/java/com/upromise/backoffice/daemons/ISPSpamComplaintHandler.java, > init=jde-ecj-server-flymake-init > parsed 'bsh % ', no line-err-info > created an overlay at (1-41) > ISPSpamComplaintHandler.java: 1 error(s), 0 warning(s) in 0.72 second(s) >