Re: cedet-1.0beta1 /Semantic 2.0 and JDEE-2.3.2

2003-12-18 Thread Paul Kinnucan
 Michael == Michael Schierl [EMAIL PROTECTED] writes:

Michael On Tue, 9 Dec 2003 18:03:26 -0500, Paul Kinnucan wrote:
 Michael Schierl writes:
  On Thu, 6 Nov 2003 13:17:50 -0500, Paul Kinnucan wrote:
 
  When I use that one with cedet-1.0beta1c on emacs-21.3
  (Windows), it works as long as i only edit one file. When I
  open the second file (or do a M-x jde-mode RET in the first
  one), I see
 

 I was not able to get cedet-1.0beta1c to load on my Windows
 system, let alone work with the JDEE 2.3.3.

Michael Hmm, my windows system (w/ cygwin) did not make any
Michael problems. just run make and then add the line mentioned
Michael in the INSTALL file into .emacs (it will create the
Michael needed load path itself).

Michael Some investigation with lots of (message)s and
Michael edebug-sessions later, i noticed that the error does not
Michael occur when i disable
Michael jde-project-context-switching-enabled-p. It does not
Michael occur either when i load the project manually afterwards
Michael (huh?).

Michael After some stepping through jde-set-variables-init-value,
Michael the problem is (funcall set symbol val-to-set) on
Michael jde-enable-senator.

Michael So the shortest hack to make it work with latest cedet
Michael seems to be changing the set function for
Michael jde-enable-senator.

Michael Now i simply use:

Michael (defcustom jde-enable-senator t
Michael   Enable senator minor mode.
Michael This mode provides Java-aware buffer navigation and
Michael searching commands.
Michael   :group 'jde-project :type 'boolean :set '(lambda (sym
Michael   val)
Michael   ;; Starting with version 1.4 beta 12 Semantic
Michael   ;; can globally enable `senator-minor-mode'.
Michael   ;; So don't override the global setting in
Michael   ;; JDE's buffers.
Michael   (or (and (boundp 'global-senator-minor-mode)
Michaelglobal-senator-minor-mode)
Michael  t ;;  added
Michael  by me
Michael   (mapc
Michael(lambda (buff)
Michael  (save-excursion
Michael(set-buffer buff) (senator-minor-mode
Michael(if val 1 -1
Michael(jde-get-java-source-buffers)))
Michael  (set-default sym val)))

Michael which seems to work as expected (although i might have
Michael broken senator, but I don't care about that on my
Michael machine).

This effectively disables the resetting of existing open buffers
when a user customizes jde-enable-senator. I would rather fix the
bug then cripple a function in order to avoid it. I've narrowed
the problem, i.e., resetting the value of jde-enable-senator
triggers the error:

  Setting JDE variables to startup values... [3 times]
  wisent-java-tags-lexer: 
  Wrong type argument: stringp, nil


to the java version of the semantic-parse-region function. However, I
cannot get any further because the semantic java parser is implemented
via macros that cannot be enabled for edebugging, which is the only
way I know how to find the exact line that causes a particular
error. (BTW, I find the heavy reliance on macros a serious problem
with the design of semantic 2.0; it makes debugging problems with
semantic next to impossible, at least that has been my experience so
far.)  Perhaps Eric or David can find the line that causes the error
or suggest a way for me to find it so this bug can be fixed.

Paul
 

Michael Perhaps that helps tracking down the bug (which occurs on
Michael my Linux box as well).

Michael Another bug: Since jde-2.3.3 jde-build-ant-command uses '
Michael chars here instead of  to enclose the build file name -
Michael however ant (or my shell, which is plain old command.com)
Michael does not like that... Would be helpful to have a custom
Michael option for that.

Michael Michael




Re[2]: cedet-1.0beta1 /Semantic 2.0 and JDEE-2.3.2

2003-12-18 Thread Eric M. Ludlam
 Paul Kinnucan [EMAIL PROTECTED] seems to think that:
 Michael == Michael Schierl [EMAIL PROTECTED] writes:
  [ ... ]
Michael (defcustom jde-enable-senator t
Michael   Enable senator minor mode.
Michael This mode provides Java-aware buffer navigation and
Michael searching commands.
Michael   :group 'jde-project :type 'boolean :set '(lambda (sym
Michael   val)
Michael   ;; Starting with version 1.4 beta 12 Semantic
Michael   ;; can globally enable `senator-minor-mode'.
Michael   ;; So don't override the global setting in
Michael   ;; JDE's buffers.
Michael   (or (and (boundp 'global-senator-minor-mode)
Michaelglobal-senator-minor-mode)
Michael t ;;  added
Michael by me
Michael   (mapc
Michael(lambda (buff)
Michael  (save-excursion
Michael(set-buffer buff) (senator-minor-mode
Michael(if val 1 -1
Michael(jde-get-java-source-buffers)))
Michael (set-default sym val)))

Michael which seems to work as expected (although i might have
Michael broken senator, but I don't care about that on my
Michael machine).

This effectively disables the resetting of existing open buffers
when a user customizes jde-enable-senator. I would rather fix the
bug then cripple a function in order to avoid it. I've narrowed
the problem, i.e., resetting the value of jde-enable-senator
triggers the error:

  Setting JDE variables to startup values... [3 times]
  wisent-java-tags-lexer: 
  Wrong type argument: stringp, nil


to the java version of the semantic-parse-region function. However, I
cannot get any further because the semantic java parser is implemented
via macros that cannot be enabled for edebugging, which is the only
way I know how to find the exact line that causes a particular
error. (BTW, I find the heavy reliance on macros a serious problem
with the design of semantic 2.0; it makes debugging problems with
semantic next to impossible, at least that has been my experience so
far.)  Perhaps Eric or David can find the line that causes the error
or suggest a way for me to find it so this bug can be fixed.
  [ ... ]

Hi Paul ( co)

  In semantic 2.0 we are spending brain power on a pair of goals in the
parser generation area.  Make it fast, and make it easy to implement
new languages.

  The best way to make a lexer fast is to cut back on the number of
regexp matches and remove as many function calls as possible.
Side-effect: funny-macros for constructing custom lexers.

  On the make it easy side, Emacs Lisp is just not a great language
for making an easy-to-read lexical analyzer.  The macros let you write
and mix individual analyzers in a convenient high-level way.

  As for debugging, there is the `semantic-lex-debug' command.  This
lets you debug the meaning of an analyzer, and is unfortunately not
what you are really looking for.

  Also, it is easy to just re-evaluate the lexer construction element,
and toggle-debug-on-error to see what aspect of a given lexer is
failing, which is what I usually use.

  I will try and track you down at work sometime to see what solutions
there may be.

Eric

-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: http://www.ludlam.netSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org


Re: cedet-1.0beta1 /Semantic 2.0 and JDEE-2.3.2

2003-12-18 Thread Kai Grossjohann
Eric M. Ludlam [EMAIL PROTECTED] writes:

   On the make it easy side, Emacs Lisp is just not a great language
 for making an easy-to-read lexical analyzer.  The macros let you write
 and mix individual analyzers in a convenient high-level way.

My understanding was that Common Lisp has a configurable reader that
is flexible enough so that one does not need to use lexers.  Is this
true?

I wonder if it would be a workable approach to augment Emacs to have a
better reader, then to use that as the lexer.

I don't have practical experience with building parsers.
Theoretically, one wouldn't need a lexer, just something that returns
the next character from the input would be sufficient and the rest
could be done from the grammar.  (I mean that one doesn't need lex and
could do everything in yacc instead.)  But that makes parsers
difficult to write, and also probably slow.  So one does need lexers.
But the theory seems to imply that the lexers don't need to be
all-powerful: if the lexer is too stupid, then one can still do it
from the grammar.

So would it work in practice to just use an augmented Lisp reader as
the lexer?

Kai



Re: cedet-1.0beta1 /Semantic 2.0 and JDEE-2.3.2

2003-12-18 Thread Michael Schierl
Paul Kinnucan schrieb:

 This effectively disables the resetting of existing open buffers
 when a user customizes jde-enable-senator. I would rather fix the
 bug then cripple a function in order to avoid it. 

Sure. But it is better to cripple a feature out of my jde i (and 
probably others) never use instead of changing load path (for older 
semantic version) and restarting emacs whenever i want to use jde or 
not...

 I've narrowed
 the problem, i.e., resetting the value of jde-enable-senator
 triggers the error:
 
   Setting JDE variables to startup values... [3 times]
   wisent-java-tags-lexer:
   Wrong type argument: stringp, nil

BTW: working.el seems to have fun with duplicating messages and 
confusing the user debugging it:

(progn
  (message One)
  (message Two)
  (working-status-forms Doing stuff done
(working-status 10)
(working-status 80)
(working-status 90)
(working-status t))
  (message Three!))

produces:

One
Two [2 times]
Three!

 to the java version of the semantic-parse-region function. However, I
 cannot get any further because the semantic java parser is implemented
 via macros that cannot be enabled for edebugging, which is the only
 way I know how to find the exact line that causes a particular
 error. 

Same for me ;) That's why i stopped there with debugging. Further more, 
it does work when you call that (senator-minor-mode 1) function by hand, 
so there must be some side effect with the code calling it.


 (BTW, I find the heavy reliance on macros a serious problem
 with the design of semantic 2.0; it makes debugging problems with
 semantic next to impossible, at least that has been my experience so
 far.)  Perhaps Eric or David can find the line that causes the error
 or suggest a way for me to find it so this bug can be fixed.

it could work to expand the macros into a temp buffer and edebug 
there - but that is not easy either. to make it a bit easier:

(defun make-expanded-macro ()
  Treat the current `defun' around point as a macro
and expand it into a temp buffer.
  (interactive)
  (let (beg end expr)
(beginning-of-defun)
(setq beg (point))
(end-of-defun)
(setq end (point))
(setq expr (read (buffer-substring beg end)))
(with-current-buffer (get-buffer-create *expanded-macros*)
  (emacs-lisp-mode)
  (goto-char (point-max))
  (insert \n\n\n 
  (prin1-to-string (macroexpand expr
(pop-to-buffer (get-buffer-create *expanded-macros*

Michael


Re[2]: cedet-1.0beta1 /Semantic 2.0 and JDEE-2.3.2

2003-12-18 Thread Eric M. Ludlam
 Kai Grossjohann [EMAIL PROTECTED] seems to think that:
Eric M. Ludlam [EMAIL PROTECTED] writes:

   On the make it easy side, Emacs Lisp is just not a great language
 for making an easy-to-read lexical analyzer.  The macros let you write
 and mix individual analyzers in a convenient high-level way.

My understanding was that Common Lisp has a configurable reader that
is flexible enough so that one does not need to use lexers.  Is this
true?

This I don't know, but it sounds like something CL would do.

I wonder if it would be a workable approach to augment Emacs to have a
better reader, then to use that as the lexer.

I have thought of this often.  My consideration was something like
'parse-partial-sexp'.  The Emacs syntax-table really is exactly the
way to build a nice lexical analyzer.

I don't have practical experience with building parsers.
Theoretically, one wouldn't need a lexer, just something that returns
the next character from the input would be sufficient and the rest
could be done from the grammar.  (I mean that one doesn't need lex and
could do everything in yacc instead.)  But that makes parsers
difficult to write, and also probably slow.  So one does need lexers.
But the theory seems to imply that the lexers don't need to be
all-powerful: if the lexer is too stupid, then one can still do it
from the grammar.
  [ ... ]

Lexical analysis is nice because matching characters is really easy to
to do compared to actual syntax parsing.

Regexp matching is nice because you can have fairly complex lexical
tokens such as #include.  Mixed mode code such as C preprocessor
and C code is made simpler to handle this way.

Semantic's lexers are pretty simple.  Syntax table regexps such as
\s. or \s_ are used so specific generic analyzers can be used
in most lexers.

Anyway, the problem is how to debug a lexer.  I can imagine this
being even more difficult if it were a built-in. ;)

If you were to look at a lex file sometime, it's syntax and content
is usually really simple, along the lines of (from the man page):

if|then|begin|end|procedure|function {  some action here }

which basically says if you see the characters i f, it makes a
token if.  Your action then does whatever.

Semantic lex analyzers are the same, and could be:

(define-lex-simple-regexp-analyzer my-analyzer
  obligatory docstirng
  if\\|then\\|begin\\|end\\|procedure\\|function
  'keyword
  0  ; index into the regexp
  (other code here))

so it is very similar.  What is different is that you have to then
combine your named analyzers via the define-lex call.

Another big difference is that the semantic lexer can skip over lists
like { a method body } as a single token.  The process of identifying
those characters is very fast (an Emacs built in) and when tagging a
file, often those characters are not needed anyway.  This short cut is
what makes the C and Java semantic parsers fast enough to be usable in
while editing without getting in the way too much.

Have fun
Eric

-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: http://www.ludlam.netSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org


Re: cedet-1.0beta1 /Semantic 2.0 and JDEE-2.3.2

2003-12-15 Thread Michael Schierl
On Tue, 9 Dec 2003 18:03:26 -0500, Paul Kinnucan wrote:
 Michael Schierl writes:
   On Thu, 6 Nov 2003 13:17:50 -0500, Paul Kinnucan wrote:
   
   When I use that one with cedet-1.0beta1c on emacs-21.3 (Windows), it works
   as long as i only edit one file. When I open the second file (or do a M-x
   jde-mode RET in the first one), I see 
   
 
 I was not able to get cedet-1.0beta1c to load on my Windows system, let alone
 work with the JDEE 2.3.3.

Hmm, my windows system (w/ cygwin) did not make any problems. just run make
and then add the line mentioned in the INSTALL file into .emacs (it will
create the needed load path itself).

Some investigation with lots of (message)s and edebug-sessions later, i
noticed that the error does not occur when i disable
jde-project-context-switching-enabled-p. It does not occur either when i
load the project manually afterwards (huh?).

After some stepping through jde-set-variables-init-value, the problem is 
(funcall set symbol val-to-set) on jde-enable-senator.

So the shortest hack to make it work with latest cedet seems to be changing
the set function for jde-enable-senator.

Now i simply use:

(defcustom jde-enable-senator t
  Enable senator minor mode.
This mode provides Java-aware buffer navigation and searching
commands.
  :group 'jde-project
  :type 'boolean
  :set '(lambda (sym val)
  ;; Starting with version 1.4 beta 12 Semantic can globally
  ;; enable `senator-minor-mode'.  So don't override the
  ;; global setting in JDE's buffers.
  (or (and (boundp 'global-senator-minor-mode)
   global-senator-minor-mode)
  t ;;  added by me
  (mapc 
   (lambda (buff)
 (save-excursion   
   (set-buffer buff)
   (senator-minor-mode (if val 1 -1
   (jde-get-java-source-buffers)))
  (set-default sym val)))

which seems to work as expected (although i might have broken senator, but
I don't care about that on my machine). 

Perhaps that helps tracking down the bug (which occurs on my Linux box as
well).

Another bug: Since jde-2.3.3 jde-build-ant-command uses ' chars here
instead of  to enclose the build file name - however ant (or my shell,
which is plain old command.com) does not like that... Would be helpful to
have a custom option for that. 

Michael



Re: cedet-1.0beta1 /Semantic 2.0 and JDEE-2.3.2

2003-12-09 Thread Michael Schierl
On Thu, 6 Nov 2003 13:17:50 -0500, Paul Kinnucan wrote:

 Ed == Ed Soniat [EMAIL PROTECTED] writes:
 
 Ed I tried install JDEE-2.3.2 which claims compatibility with
 Ed Semantic 1.blah.blah or greater.  Semantic 2.0 deleted
 Ed semantic-bnf in Aug/03 or so.
 
 Ed The change log in JDEE is out of date, makes it look like a
 Ed dead project.
 
 Install JDEE 2.3.3beta6 to get semantic 2.0 support and an updated
 change log.

Hmm. JDEE 2.3.3 is supposed to be newer than 2.3.3beta6, isn't it?

When I use that one with cedet-1.0beta1c on emacs-21.3 (Windows), it works
as long as i only edit one file. When I open the second file (or do a M-x
jde-mode RET in the first one), I see 

Wrong type argument: stringp, nil

in the echo area and *messages* buffer shows:

[...]
Setting JDE variables to startup values... [3 times]
wisent-java-tags-lexer: 
Wrong type argument: stringp, nil

debug-on-error does not seem to help. When i remove the condition-case err
clause from the function jde-mode in jde.el, i get this backtrace:

Debugger entered--Lisp error: (wrong-type-argument stringp nil)
  looking-at(nil)
  wisent-java-tags-lexer(1 2949 nil nil)
  semantic-lex(1 2949 nil)
  semantic-parse-region-default(1 2949 nil nil nil)
  semantic-parse-region(1 2949)
  semantic-bovinate-toplevel(t)
  byte-code(ÀÁ!,HBÃ(B!,HDÃÅÆÁ(B$,HBÇ(B!,HDÇÅÆÁ(B$,G(B 
[semantic-bovinate-toplevel t semantic-make-local-hook 
semantic-after-toplevel-cache-change-hook add-hook senator-completion-cache-flush-fcn 
nil semantic-after-partial-cache-change-hook] 5)
  senator-minor-mode-setup()
  senator-minor-mode(1)
  (save-excursion (set-buffer buff) (senator-minor-mode (if val 1 -1)))
  (lambda (buff) (save-excursion (set-buffer buff) (senator-minor-mode ...)))(#buffer 
Eins.java)
  mapc((lambda (buff) (save-excursion (set-buffer buff) (senator-minor-mode ...))) 
(#buffer Eins.java))
  (or (and (boundp ...) global-senator-minor-mode) (mapc (lambda ... ...) 
(jde-get-java-source-buffers)))
  (lambda (sym val) (or (and ... global-senator-minor-mode) (mapc ... ...)) 
(set-default sym val))(jde-enable-senator t)
  funcall((lambda (sym val) (or (and ... global-senator-minor-mode) (mapc ... ...)) 
(set-default sym val)) jde-enable-senator t)
  (if (or (get symbol ...) (get symbol ...)) (funcall set symbol val-to-set))
  (let ((val-to-set ...) (set ...)) (if (or ... ...) (funcall set symbol val-to-set)) 
(put symbol (quote customized-value) nil) (put symbol (quote jde-project) nil) 
(jde-put-project symbol default val-to-set))
  (lambda (symbol) (let (... ...) (if ... ...) (put symbol ... nil) (put symbol ... 
nil) (jde-put-project symbol default val-to-set)))(jde-enable-senator)
  mapcar((lambda (symbol) (let (... ...) (if ... ...) (put symbol ... nil) (put symbol 
... nil) (jde-put-project symbol default val-to-set))) 
(jde-gen-session-bean-template jde-gen-beep jde-complete-signature-display 
jde-project-name jde-which-method-format jde-run-classic-mode-vm [cut]
  jde-set-variables-init-value(t)
  (if prj-files (progn (jde-set-variables-init-value) (loop for file in prj-files do 
... ... ... ... ...) (run-hooks ...)) (jde-set-variables-init-value t))
  (let ((prj-files ...)) (if prj-files (progn ... ... ...) 
(jde-set-variables-init-value t)))
  jde-load-project-file()
  (if (and (not ...) jde-project-context-switching-enabled-p) (jde-load-project-file))
  (progn (jde-check-versions) (java-mode) (if (get ... ...) (put ... ... t)) (setq 
major-mode (quote jde-mode)) (setq mode-name JDE) (derived-mode-set-keymap (quote 
jde-mode)) (derived-mode-set-syntax-table (quote jde-mode)) 
(derived-mode-set-abbrev-table (quote jde-mode)) (make-lo[cut]
  jde-mode()
  call-interactively(jde-mode)
  execute-extended-command(nil)
* call-interactively(execute-extended-command)


When I replace cedet-1.0beta1c (by moving the folder out of load path and
the other into load path) by eieio 0.17, semantic 1.4.3 and speedbar
0.14beta4 (the versions i used before upgrading cedet), everything works.

Michael



Re: [jde] cedet-1.0beta1 /Semantic 2.0 and JDEE-2.3.2

2003-11-08 Thread Henrik Kjær
Question (I am an Emacs novice! :-) )

I get following when executing M-x
flymake-start-syntax-check-for-current-buffer in a java file buffer.

Symbol's function definition is void: flymake-start-syntax-check



What am I missing.
I have commented the original function out in flymake and inserted the new
definition.
My _emacs has (require 'flymake).

Henrik

- Original Message - 
From: Suraj Acharya [EMAIL PROTECTED]
To: Eric M. Ludlam [EMAIL PROTECTED]
Cc: Henrik Kjær [EMAIL PROTECTED]; [EMAIL PROTECTED];
[EMAIL PROTECTED]; [EMAIL PROTECTED]; [EMAIL PROTECTED]
Sent: Friday, November 07, 2003 10:30 PM
Subject: Re: [jde] cedet-1.0beta1 /Semantic 2.0 and JDEE-2.3.2


 I just tried out flymake and it is pretty neat. It highlights errors as
advertised
 and brings up a little pop-up window with the error message when your
mouse is over the line.

 If you have jde-compile setup correctly to compile the current file then
this redefinition
 for flymake-start-syntax-check-process will automatically run jde-compile.

 Caveats :
 * flymake automatically saves your current buffer before it compiles
 * the error/warning message do not appear in the minibuffer when point is
on a line
   which has been highlighted.
  * may not be very nice on a slower machine using javac




 (defun flymake-start-syntax-check-process(buffer base-dir
 master-file-name patched-master-file-name
 source-file-name patched-source-file-name)
start syntax check-process

(let* ((process  nil)
 (file-to-compile  (flymake-get-file-to-compile patched-master-file-name
patched-source-file-name source-file-name))
 (compiler (jde-compile-get-the-compiler))
 (program-name (oref compiler :path))
 (program-args (append (jde-compile-get-args compiler) (list
file-to-compile
  (condition-case err
 (progn
   (setq process (get-process (apply 'start-process
 flymake-proc
 nil
 program-name
 program-args)))
 (set-process-sentinel process 'flymake-process-sentinel)
 (set-process-filter process 'flymake-process-filter)

 (flymake-reg-names(process-id process) (buffer-name buffer)
patched-master-file-name patched-source-file-name)
 (flymake-set-buffer-base-dir buffer base-dir)
 (flymake-set-buffer-master-file-name buffer master-file-name)
 (flymake-set-buffer-is-running buffer t)
 (flymake-set-buffer-last-change-time buffer nil)
 (flymake-set-buffer-check-start-time buffer (float-time))

 (flymake-report-status buffer nil *)
 (flymake-log 2 started process %d, command=%s, dir=%s
(process-id process) (process-command process) default-directory)
 process
 )
   (error
 (let ((err-str (format Failed to launch syntax check process '%s'
with args %s: %s
 program-name program-args (error-message-string err
 (flymake-log 0 err-str)
 (flymake-safe-delete-file patched-master-file-name)
 (flymake-safe-delete-file patched-source-file-name)
 (flymake-set-buffer-last-change-time buffer nil)
 (flymake-report-fatal-status buffer PROCERR err-str)
 )
 )
 )
 )
 )


 Suraj

 Eric M. Ludlam wrote:

  The support for highlighting unmatched syntax is still rudimentary,
  but it is a longterm goal to highlight all syntactic issues.  Parsing
  an entire file is pretty slow.  Parsing only the visible parts, is one
  option.  For missing ; after things already being parsed (method and
  type declarations) you will get the highlighting.  The new incremental
  parser helps with this.
 
  Detecting missing imports or methods is not a part of any short term
  plan.  The semantic analyzer has not been modified much as we've been
  concentrating on low level APIs, and speed.
 
  The version of eieio in the beta includes a feature similar to
  something I think is called flymake.  You can run a build, and it will
  detect the errors, and highlight them for you.  I think flymake may
  have more user features.  The version in eieio is an example program
  for using a line highlighting feature.
 
  Eric
 






Re[3]: [jde] cedet-1.0beta1 /Semantic 2.0 and JDEE-2.3.2

2003-11-07 Thread Eric M. Ludlam
The support for highlighting unmatched syntax is still rudimentary,
but it is a longterm goal to highlight all syntactic issues.  Parsing
an entire file is pretty slow.  Parsing only the visible parts, is one
option.  For missing ; after things already being parsed (method and
type declarations) you will get the highlighting.  The new incremental
parser helps with this.

Detecting missing imports or methods is not a part of any short term
plan.  The semantic analyzer has not been modified much as we've been
concentrating on low level APIs, and speed.

The version of eieio in the beta includes a feature similar to
something I think is called flymake.  You can run a build, and it will
detect the errors, and highlight them for you.  I think flymake may
have more user features.  The version in eieio is an example program
for using a line highlighting feature.

Eric 

 =?iso-8859-1?Q?Henrik_Kj=E6r?= [EMAIL PROTECTED] seems to think that:
Hi

Will it support parsing of java files so the most obvious errors in a class,
like a missing ;, missing imports, unknown methods, etc. can be caught
before compiling.

Henrik
- Original Message - 
From: Eric M. Ludlam [EMAIL PROTECTED]
To: Raul Acevedo [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]; [EMAIL PROTECTED]; [EMAIL PROTECTED]
Sent: Thursday, November 06, 2003 9:01 PM
Subject: Re[1]: [jde] cedet-1.0beta1 /Semantic 2.0 and JDEE-2.3.2


 Semantic 2.0 lives in cedet-1.0beta1.tar.gz on the cedet web page.
 There was no formal announcement as I'm still working through build
 and compatibility issues for various versions of Emacs.  In fact, I'm
 a bit behind on a mountain of reports.

 For those willing to work around some of the problems, the overall
 response has been positive.  There are a few patches for some problems
 in the cedet-devel mailing list archive for those brave enough to try
 it.

 Eric

  Raul Acevedo [EMAIL PROTECTED] seems to think that:
 Semantic 2.0 is out???
 
 Paul Kinnucan wrote:
 
Ed == Ed Soniat [EMAIL PROTECTED] writes:
  
   Ed I tried install JDEE-2.3.2 which claims compatibility with
   Ed Semantic 1.blah.blah or greater.  Semantic 2.0 deleted
   Ed semantic-bnf in Aug/03 or so.
  
   Ed The change log in JDEE is out of date, makes it look like a
   Ed dead project.
  
   Install JDEE 2.3.3beta6 to get semantic 2.0 support and an updated
   change log.
  
   Paul
  
  
 

 -- 
   Eric Ludlam: [EMAIL PROTECTED],
[EMAIL PROTECTED]
Home: http://www.ludlam.netSiege: www.siege-engine.com
 Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org





-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: http://www.ludlam.netSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org


Re: [jde] cedet-1.0beta1 /Semantic 2.0 and JDEE-2.3.2

2003-11-07 Thread Suraj Acharya
I just tried out flymake and it is pretty neat. It highlights errors as advertised
and brings up a little pop-up window with the error message when your mouse is over 
the line.
If you have jde-compile setup correctly to compile the current file then this 
redefinition
for flymake-start-syntax-check-process will automatically run jde-compile.
Caveats :
* flymake automatically saves your current buffer before it compiles
* the error/warning message do not appear in the minibuffer when point is on a 
line
  which has been highlighted.
* may not be very nice on a slower machine using javac


(defun flymake-start-syntax-check-process(buffer base-dir
 master-file-name 
patched-master-file-name
 source-file-name 
patched-source-file-name)
  start syntax check-process
  (let* ((process  nil)
 (file-to-compile  (flymake-get-file-to-compile patched-master-file-name 
patched-source-file-name source-file-name))
 (compiler (jde-compile-get-the-compiler))
 (program-name (oref compiler :path))
 (program-args (append (jde-compile-get-args compiler) (list 
file-to-compile
(condition-case err
(progn
  (setq process (get-process (apply 'start-process
flymake-proc
   
  nil
   
  program-name
   
  program-args)))
(set-process-sentinel process 
'flymake-process-sentinel)
(set-process-filter process 'flymake-process-filter)
(flymake-reg-names(process-id process) (buffer-name 
buffer) patched-master-file-name patched-source-file-name)
(flymake-set-buffer-base-dir buffer base-dir)
(flymake-set-buffer-master-file-name buffer 
master-file-name)
(flymake-set-buffer-is-running buffer t)
(flymake-set-buffer-last-change-time buffer nil)
(flymake-set-buffer-check-start-time buffer 
(float-time))
(flymake-report-status buffer nil *)
(flymake-log 2 started process %d, command=%s, dir=%s
   (process-id process) 
(process-command process) default-directory)
process
)
(error
(let ((err-str (format Failed to launch syntax check process 
'%s' with args %s: %s
 program-name program-args 
(error-message-string err
(flymake-log 0 err-str)
(flymake-safe-delete-file patched-master-file-name)
(flymake-safe-delete-file 
patched-source-file-name)
(flymake-set-buffer-last-change-time buffer 
nil)
(flymake-report-fatal-status buffer PROCERR 
err-str)
)
)
)
)
)
Suraj

Eric M. Ludlam wrote:

The support for highlighting unmatched syntax is still rudimentary,
but it is a longterm goal to highlight all syntactic issues.  Parsing
an entire file is pretty slow.  Parsing only the visible parts, is one
option.  For missing ; after things already being parsed (method and
type declarations) you will get the highlighting.  The new incremental
parser helps with this.
Detecting missing imports or methods is not a part of any short term
plan.  The semantic analyzer has not been modified much as we've been
concentrating on low level APIs, and speed.
The version of eieio in the beta includes a feature similar to
something I think is called flymake.  You can run a build, and it will
detect the errors, and highlight them for you.  I think flymake may
have more user features.  The version in eieio is an example program
for using a line highlighting feature.
Eric 




cedet-1.0beta1 /Semantic 2.0 and JDEE-2.3.2

2003-11-06 Thread Ed Soniat
I tried install JDEE-2.3.2 which claims compatibility with Semantic 1.blah.blah or 
greater.
Semantic 2.0 deleted semantic-bnf in Aug/03 or so.

The change log in JDEE is out of date, makes it look like a dead project.

Ed Soniat
Software Engineer
[EMAIL PROTECTED]
404 495 7226





cedet-1.0beta1 /Semantic 2.0 and JDEE-2.3.2

2003-11-06 Thread Paul Kinnucan
 Ed == Ed Soniat [EMAIL PROTECTED] writes:

Ed I tried install JDEE-2.3.2 which claims compatibility with
Ed Semantic 1.blah.blah or greater.  Semantic 2.0 deleted
Ed semantic-bnf in Aug/03 or so.

Ed The change log in JDEE is out of date, makes it look like a
Ed dead project.

Install JDEE 2.3.3beta6 to get semantic 2.0 support and an updated
change log.

Paul





[jde] cedet-1.0beta1 /Semantic 2.0 and JDEE-2.3.2

2003-11-06 Thread Raul Acevedo
Semantic 2.0 is out??? 

Paul Kinnucan wrote:

   Ed == Ed Soniat [EMAIL PROTECTED] writes:
  
  Ed I tried install JDEE-2.3.2 which claims compatibility with
  Ed Semantic 1.blah.blah or greater.  Semantic 2.0 deleted
  Ed semantic-bnf in Aug/03 or so.
  
  Ed The change log in JDEE is out of date, makes it look like a
  Ed dead project.
  
  Install JDEE 2.3.3beta6 to get semantic 2.0 support and an updated
  change log.
  
  Paul
  
  


Re[1]: [jde] cedet-1.0beta1 /Semantic 2.0 and JDEE-2.3.2

2003-11-06 Thread Raul Acevedo
I'd be interested in trying it.  :)  What would be some of the more
obvious benefits to JDEE users?

Raul

Eric M. Ludlam wrote:

  Semantic 2.0 lives in cedet-1.0beta1.tar.gz on the cedet web page.
  There was no formal announcement as I'm still working through build
  and compatibility issues for various versions of Emacs.  In fact, I'm
  a bit behind on a mountain of reports.
  
  For those willing to work around some of the problems, the overall
  response has been positive.  There are a few patches for some problems
  in the cedet-devel mailing list archive for those brave enough to try
  it.
  
  Eric
  
   Raul Acevedo [EMAIL PROTECTED] seems to think that:
  Semantic 2.0 is out??? 
  
  Paul Kinnucan wrote:
  
 Ed == Ed Soniat [EMAIL PROTECTED] writes:

Ed I tried install JDEE-2.3.2 which claims compatibility with
Ed Semantic 1.blah.blah or greater.  Semantic 2.0 deleted
Ed semantic-bnf in Aug/03 or so.

Ed The change log in JDEE is out of date, makes it look like a
Ed dead project.

Install JDEE 2.3.3beta6 to get semantic 2.0 support and an updated
change log.

Paul


  
  
  -- 
Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
 Home: http://www.ludlam.netSiege: www.siege-engine.com
  Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org


Re[1]: [jde] cedet-1.0beta1 /Semantic 2.0 and JDEE-2.3.2

2003-11-06 Thread Eric M. Ludlam
Semantic 2.0 lives in cedet-1.0beta1.tar.gz on the cedet web page.
There was no formal announcement as I'm still working through build
and compatibility issues for various versions of Emacs.  In fact, I'm
a bit behind on a mountain of reports.

For those willing to work around some of the problems, the overall
response has been positive.  There are a few patches for some problems
in the cedet-devel mailing list archive for those brave enough to try
it.

Eric

 Raul Acevedo [EMAIL PROTECTED] seems to think that:
Semantic 2.0 is out??? 

Paul Kinnucan wrote:

   Ed == Ed Soniat [EMAIL PROTECTED] writes:
  
  Ed I tried install JDEE-2.3.2 which claims compatibility with
  Ed Semantic 1.blah.blah or greater.  Semantic 2.0 deleted
  Ed semantic-bnf in Aug/03 or so.
  
  Ed The change log in JDEE is out of date, makes it look like a
  Ed dead project.
  
  Install JDEE 2.3.3beta6 to get semantic 2.0 support and an updated
  change log.
  
  Paul
  
  


-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: http://www.ludlam.netSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org