Tu Do | 25 Jan 12:22 2015
Picon

Enable Semantic for duration of a function execution

Hi Eric,

I want to enable `semantic-mode` temporarily in a function to fetch all its tags with `semantic-fetch-tags`. I want it temporary because many users don't enable Semantic by default. But I can make use of the the tags perform other things in a single command.

How do I do this?

Regards,

Tu.
------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
Cedet-devel mailing list
Cedet-devel <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cedet-devel
Alastair Rankine | 24 Jan 21:04 2015
Picon

Test framework

Hi David,

I’ve had a look at the existing cedet tests with a view to adding tests for ede-compdb. Here are some
thoughts on that topic, I would definitely appreciate your input.

I think that it would help immensely if I could continue to use ert as the test framework. I realise that this
library is not available in emacs 23, so in this case I would suggest we just include it in cedet.

Assuming this is possible, I would just add the compdb tests to cedet-utests-test-alist. Probably I would
just use a lambda to invoke the tests via invoke ert-run-tests-batch (or just ert if in interactive mode).

The next thing to look at is removing the dependency on the el-mock library. Is there an equivalent of this in
the existing cedet test framework? If not, it’s not a huge deal because I only need it for one test, and can
probably work around it somehow.

Cheers,

------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
Cedet-devel mailing list
Cedet-devel <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cedet-devel
Michael Kuryshev | 22 Jan 04:21 2015
Picon

Semantic preprocessor and Qt

I know this topic has been discussed too many times, but please bear
with me.

I have trouble with setting up Semantic and Qt sources. I've read
mails here regarding this matter, there were some very useful insights
regarding Semantics internals, but nothing works, thought it
shoud(?).
I'm using Fedora 21 with Emacs-24.4.1 (but can compile and test any
version, if needed) and cedet from git repository
(6a5701d76932259311ef412285ccd0701b5b31e5 commit, current HEAD).

Here is my minimal .emacs:

    (load "~/.emacs.d/cedet/cedet-devel-load")
    (semantic-mode 1)
    (semantic-load-enable-excessive-code-helpers)
    (add-to-list 'auto-mode-alist '("/usr/include" . c++-mode))
    (global-ede-mode t)
    (require 'semantic/ia)
    (require 'semantic/bovine/gcc)
    (require 'semantic/analyze/debug)
    (ede-cpp-root-project "test-cedet"
                          :file "/tmp/test-cedet/main.cc"
                          :spp-files '("/usr/include/Qt/qconfig.h"
                                       "/usr/include/Qt/qconfig-dist.h"
                                       "/usr/include/Qt/qglobal.h"))

And simple file with Qt includes, same as in Alex Ott's posts:

    #include <QApplication>
    #include <QPushButton>

    int main(int argc, char *argv[])
    {
      QApplication app(argc, argv);
      QPushButton quit("Quit");
      quit.
      return 0;
    }

After parsing all include files, I'm issuing
`M-x semantic-ia-complete-tip' and getting this in *Messages* buffer:

    semantic-analyze-possible-completions-default: Cannot find types for `QPushButton quit ()'

`M-x semantic-analyze-debug-assist' yields:

    Unable to find datatype for: "class QPushButton quit ()".
    Declared type is: "class QPushButton {}"
    Raw data type is: ("QPushButton" type (:type "class") nil nil)

    Semantic could not find this data type in any of its global tables.

    Semantic locates datatypes through either the local scope, or the global
    typecache.

    Local Scope Information:
     * Tag Class Constraint against SCOPE: (type)
     * No known parents in current scope.
     * No known symbols currently in scope.
     * No known symbols declared locally.
    Semantic creates and maintains a type cache for each buffer.
    If the type is a global type, then it should appear in they typecache.
    To examine the typecache, type:

      M-x semanticdb-typecache-dump RET   [ Do It ]

    Current typecache Statistics:
        0 types global in this file
        350 types from includes.

    If the datatype is not in the typecache, then your include
    path may be incorrect.
    ---cut---

There is indeed no QPushButton in semanticdb-typecache-dump, only
QPushButtonPrivate.

Here is excerpt from /usr/include/QtGui/qpushbutton.h

    class QPushButtonPrivate;
    class QMenu;
    class QStyleOptionButton;

    class Q_GUI_EXPORT QPushButton : public QAbstractButton
    {

And when I'm looking at `M-x semantic-c-describe-environment' macro
`Q_GUI_EXPORT = nil' is present here. Maybe Semantic doesn't have
access to that table whenever it's parsing system headers? It's in
place right after opening main.cc file, EDE project definition is
working fine. I just have no idea what is wrong.

And everytime I'm starting with blank SemanticDB.

--
with best regards,
Michael Kuryshev.

------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
Michael Kuryshev | 22 Jan 04:52 2015
Picon

Semantic C preprocessor and Qt

I have trouble with setting up Semantic and Qt sources. I've read
mails here regarding this matter, there were some very useful insights
regarding Semantics internals, but nothing works, thought it
shoud(?).
I'm using Fedora 21 with Emacs-24.4.1 (but can compile and test any
version, if needed) and cedet from git repository
(6a5701d76932259311ef412285ccd0701b5b31e5 commit, current HEAD).

Here is my minimal .emacs:

    (load "~/.emacs.d/cedet/cedet-devel-load")
    (semantic-mode 1)
    (semantic-load-enable-excessive-code-helpers)
    (add-to-list 'auto-mode-alist '("/usr/include" . c++-mode))
    (global-ede-mode t)
    (require 'semantic/ia)
    (require 'semantic/bovine/gcc)
    (require 'semantic/analyze/debug)
    (ede-cpp-root-project "test-cedet"
                          :file "/tmp/test-cedet/main.cc"
                          :spp-files '("/usr/include/Qt/qconfig.h"
                                       "/usr/include/Qt/qconfig-dist.h"
                                       "/usr/include/Qt/qglobal.h"))

And simple file with Qt includes, same as in Alex Ott's posts:

    #include <QApplication>
    #include <QPushButton>

    int main(int argc, char *argv[])
    {
      QApplication app(argc, argv);
      QPushButton quit("Quit");
      quit.
      return 0;
    }

After parsing all include files, I'm issuing
`M-x semantic-ia-complete-tip' and getting this in *Messages* buffer:

    semantic-analyze-possible-completions-default: Cannot find types for `QPushButton quit ()'

`M-x semantic-analyze-debug-assist' yields:

    Unable to find datatype for: "class QPushButton quit ()".
    Declared type is: "class QPushButton {}"
    Raw data type is: ("QPushButton" type (:type "class") nil nil)

    Semantic could not find this data type in any of its global tables.

    Semantic locates datatypes through either the local scope, or the global
    typecache.

    Local Scope Information:
     * Tag Class Constraint against SCOPE: (type)
     * No known parents in current scope.
     * No known symbols currently in scope.
     * No known symbols declared locally.
    Semantic creates and maintains a type cache for each buffer.
    If the type is a global type, then it should appear in they typecache.
    To examine the typecache, type:

      M-x semanticdb-typecache-dump RET   [ Do It ]

    Current typecache Statistics:
        0 types global in this file
        350 types from includes.

    If the datatype is not in the typecache, then your include
    path may be incorrect.
    ---cut---

There is indeed no QPushButton in semanticdb-typecache-dump, only
QPushButtonPrivate.

Here is excerpt from /usr/include/QtGui/qpushbutton.h

    class QPushButtonPrivate;
    class QMenu;
    class QStyleOptionButton;

    class Q_GUI_EXPORT QPushButton : public QAbstractButton
    {

And when I'm looking at `M-x semantic-c-describe-environment' macro
`Q_GUI_EXPORT = nil' is present here. Maybe Semantic doesn't have
access to that table whenever it's parsing system headers? It's in
place right after opening main.cc file, EDE project definition is
working fine. I just have no idea what is wrong.

And everytime I'm starting with blank SemanticDB.

--
with best regards,
Michael Kuryshev.

------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
Vincent Semeria | 21 Jan 16:38 2015
Picon

semantic-ia-complete-symbol cannot find the type of a c++ vector iterator

Hello,

In the attached c++ file, set the point after beg-> and run semantic-ia-complete-symbol. It will fail saying

semantic-analyze-possible-completions-default: Cannot find types for `std::vector::iterator beg[=v.begin()]'

Thanks,
Vincent
Attachment (BugVector.cpp): text/x-c++src, 235 bytes
------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
Cedet-devel mailing list
Cedet-devel <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cedet-devel
Ramkumar Ramachandra | 21 Jan 23:50 2015
Picon

[PATCH] semantic/bovine/c: Parse C++11 strongly typed enum

* semantic/bovine/c.by (ENUM, opt-enum-type): Add opt-enum-type argument
  to ENUM, that matches either a colon + typeformbase or nothing.

* semantic/bovine/c.el (semantic-c-reconstitute token): Add :enum-type.

Helped-by: David Engster <deng <at> randomsample.de>
Signed-off-by: Ramkumar Ramachandra <artagnon <at> gmail.com>
---
 lisp/cedet/semantic/bovine/c.by     | 15 +++++++++++----
 lisp/cedet/semantic/bovine/c.el     |  1 +
 tests/cedet/semantic/tests/test.cpp |  5 +++++
 3 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/lisp/cedet/semantic/bovine/c.by b/lisp/cedet/semantic/bovine/c.by
index 8dc3a82..8d0911f 100644
--- a/lisp/cedet/semantic/bovine/c.by
+++ b/lisp/cedet/semantic/bovine/c.by
 <at>  <at>  -114,7 +114,7  <at>  <at> 
 %token UNION "union"
 %put UNION summary "Union Type Declaration: union [name] { ... };"
 %token ENUM "enum"
-%put ENUM summary "Enumeration Type Declaration: enum [name] { ... };"
+%put ENUM summary "Enumeration Type Declaration: enum [name] [: type] { ... };"
 %token TYPEDEF "typedef"
 %put TYPEDEF summary "Arbitrary Type Declaration: typedef <typedeclaration> <name>;"
 %token CLASS "class"
 <at>  <at>  -416,6 +416,12  <at>  <at>  opt-name
     ( "" )
   ;

+opt-enum-type
+  : COLON typeformbase
+    ( ,$2 )
+  | ;; EMPTY
+  ;
+
 typesimple
   : struct-or-class opt-class opt-name opt-template-specifier
     opt-class-parents semantic-list
 <at>  <at>  -434,9 +440,10  <at>  <at>  typesimple
   | UNION opt-class opt-name unionparts
     (TYPE-TAG (car $3) $1 $4 nil
               :parent (car ,$2))
-  | ENUM opt-class opt-name enumparts
-    (TYPE-TAG (car $3) $1 $4 nil
-              :parent (car ,$2))
+  | ENUM opt-class opt-name opt-enum-type enumparts
+    (TYPE-TAG (car $3) $1 $5 nil
+              :parent (car ,$2)
+              :enum-type (car ,$4))
  ;; Klaus Berndl: a typedef can be a typeformbase with all this
  ;; declmods stuff.
   | TYPEDEF declmods typeformbase cv-declmods typedef-symbol-list
diff --git a/lisp/cedet/semantic/bovine/c.el b/lisp/cedet/semantic/bovine/c.el
index d0e1a16..22463b6 100644
--- a/lisp/cedet/semantic/bovine/c.el
+++ b/lisp/cedet/semantic/bovine/c.el
 <at>  <at>  -1341,6 +1341,7  <at>  <at>  Optional argument STAR and REF indicate the number of * and & in the typedef."
 	    :constant-flag (if (member "const" declmods) t nil)
 	    :typemodifiers (delete "const" declmods)
 	    :parent (car (nth 2 tokenpart))
+	    :enum-type (nth 3 tokenpart)
 	    :destructor-flag (if (car (nth 3 tokenpart) ) t)
 	    :constructor-flag (if constructor t)
 	    :function-pointer fcnpointer
diff --git a/tests/cedet/semantic/tests/test.cpp b/tests/cedet/semantic/tests/test.cpp
index 8bb27ed..a170c52 100644
--- a/tests/cedet/semantic/tests/test.cpp
+++ b/tests/cedet/semantic/tests/test.cpp
 <at>  <at>  -22,6 +22,11  <at>  <at>  int simple1(int a) {

 }

+enum typedenum : unsigned {
+  FIRST = 0UL,
+  SECOND = ~0UL
+};
+
 struct foo1 {
   int test;
 };
--

-- 
2.2.1

------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
Ramkumar Ramachandra | 21 Jan 21:08 2015
Picon

[INCOMPLETE] semantic/bovine/c: support typed enum

Signed-off-by: Ramkumar Ramachandra <artagnon <at> gmail.com>
---
 I've struggled with this long enough. Why doesn't it work? What am I
 missing?

 lisp/cedet/semantic/bovine/c.by     | 19 +++++++++++++++----
 lisp/cedet/semantic/bovine/c.el     |  1 +
 tests/cedet/semantic/tests/test.cpp |  5 +++++
 3 files changed, 21 insertions(+), 4 deletions(-)

diff --git a/lisp/cedet/semantic/bovine/c.by b/lisp/cedet/semantic/bovine/c.by
index 8dc3a82..3ac63b6 100644
--- a/lisp/cedet/semantic/bovine/c.by
+++ b/lisp/cedet/semantic/bovine/c.by
 <at>  <at>  -114,7 +114,7  <at>  <at> 
 %token UNION "union"
 %put UNION summary "Union Type Declaration: union [name] { ... };"
 %token ENUM "enum"
-%put ENUM summary "Enumeration Type Declaration: enum [name] { ... };"
+%put ENUM summary "Enumeration Type Declaration: enum [name] [: type] { ... };"
 %token TYPEDEF "typedef"
 %put TYPEDEF summary "Arbitrary Type Declaration: typedef <typedeclaration> <name>;"
 %token CLASS "class"
 <at>  <at>  -416,6 +416,16  <at>  <at>  opt-name
     ( "" )
   ;

+enum-type
+  : type
+  ;
+
+opt-enum-type
+  : COLON enum-type
+    ,(car $2)
+  |
+  ;
+
 typesimple
   : struct-or-class opt-class opt-name opt-template-specifier
     opt-class-parents semantic-list
 <at>  <at>  -434,9 +444,10  <at>  <at>  typesimple
   | UNION opt-class opt-name unionparts
     (TYPE-TAG (car $3) $1 $4 nil
               :parent (car ,$2))
-  | ENUM opt-class opt-name enumparts
-    (TYPE-TAG (car $3) $1 $4 nil
-              :parent (car ,$2))
+  | ENUM opt-class opt-name opt-enum-type enumparts
+    (TYPE-TAG (car $3) $1 $5 nil
+              :parent (car ,$2)
+	      :enum-type $4)
  ;; Klaus Berndl: a typedef can be a typeformbase with all this
  ;; declmods stuff.
   | TYPEDEF declmods typeformbase cv-declmods typedef-symbol-list
diff --git a/lisp/cedet/semantic/bovine/c.el b/lisp/cedet/semantic/bovine/c.el
index d0e1a16..22463b6 100644
--- a/lisp/cedet/semantic/bovine/c.el
+++ b/lisp/cedet/semantic/bovine/c.el
 <at>  <at>  -1341,6 +1341,7  <at>  <at>  Optional argument STAR and REF indicate the number of * and & in the typedef."
 	    :constant-flag (if (member "const" declmods) t nil)
 	    :typemodifiers (delete "const" declmods)
 	    :parent (car (nth 2 tokenpart))
+	    :enum-type (nth 3 tokenpart)
 	    :destructor-flag (if (car (nth 3 tokenpart) ) t)
 	    :constructor-flag (if constructor t)
 	    :function-pointer fcnpointer
diff --git a/tests/cedet/semantic/tests/test.cpp b/tests/cedet/semantic/tests/test.cpp
index 8bb27ed..a170c52 100644
--- a/tests/cedet/semantic/tests/test.cpp
+++ b/tests/cedet/semantic/tests/test.cpp
 <at>  <at>  -22,6 +22,11  <at>  <at>  int simple1(int a) {

 }

+enum typedenum : unsigned {
+  FIRST = 0UL,
+  SECOND = ~0UL
+};
+
 struct foo1 {
   int test;
 };
--

-- 
2.2.1

------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
Ramkumar Ramachandra | 17 Jan 23:34 2015
Picon

[PATCH] semantic/bovine: parse C++ override functions correctly

"override" is a perfectly good opt-post-fcn-modifiers in C++. Parse it
correctly.

Signed-off-by: Ramkumar Ramachandra <artagnon <at> gmail.com>
---
 The red lines under override functions were really annoying. Here's a
 patch to fix that.

 lisp/cedet/semantic/bovine/c.by     | 3 +++
 lisp/cedet/semantic/bovine/c.el     | 2 ++
 tests/cedet/semantic/tests/test.cpp | 6 ++++++
 3 files changed, 11 insertions(+)

diff --git a/lisp/cedet/semantic/bovine/c.by b/lisp/cedet/semantic/bovine/c.by
index e4214b4..ac4b83c 100644
--- a/lisp/cedet/semantic/bovine/c.by
+++ b/lisp/cedet/semantic/bovine/c.by
 <at>  <at>  -140,6 +140,8  <at>  <at> 
 %put THROW summary "<type> <methoddef> (<method args>) throw (<exception>) ..."
 %token REENTRANT "reentrant"
 %put REENTRANT summary "<type> <methoddef> (<method args>) reentrant ..."
+%token OVERRIDE "override"
+%put OVERRIDE summary "<type> <methoddef> (<method args>) override ..."
 %token TRY "try"
 %token CATCH "catch"
 %put { TRY CATCH } summary "try { <body> } catch { <catch code> }"
 <at>  <at>  -844,6 +846,7  <at>  <at>  opt-post-fcn-modifiers
 post-fcn-modifiers
   : REENTRANT
   | CONST
+  | OVERRIDE
   ;

 opt-throw
diff --git a/lisp/cedet/semantic/bovine/c.el b/lisp/cedet/semantic/bovine/c.el
index 8592400..ff62fd5 100644
--- a/lisp/cedet/semantic/bovine/c.el
+++ b/lisp/cedet/semantic/bovine/c.el
 <at>  <at>  -1352,6 +1352,8  <at>  <at>  Optional argument STAR and REF indicate the number of * and & in the typedef."
 	    :throws (nth 5 tokenpart)
 	    ;; Reentrant is a C++ thingy.  Add it here
 	    :reentrant-flag (if (member "reentrant" (nth 6 tokenpart)) t)
+	    ;; override is a C++ thingy.  Add it here
+	    :override-flag (if (member "override" (nth 6 tokenpart)) t)
 	    ;; A function post-const is funky.  Try stuff
 	    :methodconst-flag (if (member "const" (nth 6 tokenpart)) t)
 	    ;; prototypes are functions w/ no body
diff --git a/tests/cedet/semantic/tests/test.cpp b/tests/cedet/semantic/tests/test.cpp
index 8a00c6b..2926baf 100644
--- a/tests/cedet/semantic/tests/test.cpp
+++ b/tests/cedet/semantic/tests/test.cpp
 <at>  <at>  -161,6 +161,12  <at>  <at>  void *class3::method5_for_class3( int a, int b) const
 {
 }

+void *class3::method6_for_class3( int a, int b) override
+{
+  int q = a;
+  return "Moose";
+}
+
 /*
  * Namespace parsing tests
  */
--

-- 
2.2.1

------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
fulvio ciriaco | 17 Jan 09:06 2015
Picon

fortran support

Hello,
I have been trying cedet for fortran development these days.
It appears to me that semantic features work only inside program
sections but not inside modules.
Inside a program most features work as expected, even used modules
are parsed.
However inside a module, not even completions for subroutines contained in
the body complete.
Unfortunately, most programming happens inside modules!
Semantic works as expected if I add use clauses inside the subroutines, so
what is missed is probably only the fact that the module body should inherit
all the use clauses of the module and also the module declarations.
I attach the module testmodule.f90 of cedet itself with a subroutine 
"testcompletion"
at the bottom prepared for testing and another "testcompletionb" with a 
use clause
inside where semantic works as expected.

Ah, I am using cedet from git with emacs 24.4.1

Thank you
Fulvio

Attachment (testmodule.f90): text/x-fortran, 1334 bytes
------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
Cedet-devel mailing list
Cedet-devel <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cedet-devel
Joris Steyn | 16 Jan 20:03 2015
Picon

[PATCH] Make semanticdb-default-find-index-class buffer-local

Hi cedet-devel,

attached is a patch fixing a typo in semanticdb that caused semanticdb-default-find-index-class to not be declared buffer-local.

I don't believe anyone or any package is actually setting this variable but we ought to fix this regardless.

--
Joris.

------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
Cedet-devel mailing list
Cedet-devel <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cedet-devel
Matthew Smith | 16 Jan 22:53 2015
Picon

Which version of cedet should I be using for Java development support?

Hi all,

I am writing malabar-mode for JVM integration in EMACS based on CEDET.

I posed this  question "Which version of cedet should I be using for Java development support?" a while back
on
http://emacs.stackexchange.com/questions/3850/which-version-of-cedet-should-be-used-with-emacs-24-4-1-for-java-development
and Alex suggested using his branch at  https://github.com/alexott/cedet/tree/devel which I have been
doing successfully for the past while.

However, I found a bug in it and wanted to submit it but I am not sure where the best place to submit it is.  Has
that stuff been merged back into the main branch or do I need to keep updating Alex dev branch?  Which code
should I be basing malabar-mode upon?

The Bug:  in jvm-base.el line 95 is this method.  The ext binding is not needed and crashes when parsing the
*javap output* buffer

(defmethod ede-find-target ((proj ede-jvm-base-project) buffer)
  "Find an EDE target in PROJ for BUFFER.
If one doesn't exist, create a new one for this directory."
  (let* ((ext (file-name-extension (buffer-file-name buffer)))
         (cls 'ede-jvm-base-target)
         (targets (oref proj targets))
         (dir default-directory)
         (ans (ede-jvm-base-find-matching-target cls dir targets))
         )
    (when (not ans)
      (setq ans (make-instance
                 cls
                 :name (file-name-nondirectory (directory-file-name dir))
                 :path dir
                 :source nil
		 :project proj))
      (object-add-to-list proj :targets ans))
    ans))

I am, very sincerely and truly,
your Friend and Well-Wisher,                                

Matthew O. Smith
Programmer / Analyst - Senior
http://www.ferociousflirting.com

------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet

Gmane