It’s been mentioned in several places that GNU Emacs versions sometime after 23.1.50 do come with an integrated version of CEDET. While I think that’s a superb idea it unfortunately managed to break my setup, which relies on a common set of emacs-lisp files that I hold under version control and distribute across the machines I work on. Those machines have different versions of GNU-based Emacsen (pure GNU, Emacs/W32, Carbon Emacs etc) so I can’t rely on the default CEDET. Unfortunately when I got a new machine and put a GNU Emacs 23.2 on there, my carefully crafted (OK, I’m exaggerating) .emacs wouldn’t play ball because the built-in CEDET conflicted with the pre7 that I had already installed on that machine.

I didn’t want to have to make extensive modifications to my .emacs, but a little time spent on Google brought up a post by Marco Bardelli on the CEDET-devel mailing list with a little code snippet that removes the built-in CEDET from the load-path. After putting this into my .emacs, my -pre7 config is working again.

For those in a similar quandary, here is the snippet in all its glory:

(setq load-path
      (remove (concat "/usr/share/emacs/" 
		      (substring emacs-version 0 -2) "/lisp/cedet")
	      load-path))

2 thoughts on “Using CEDET-1.0 pre7 with Emacs 23.2”

  1. tried something similar in essence, but it didn’t work for me.
    semantic was complaining.

    [guess the reason’s that all sub-dirs of the built-in CEDET are in the load-path.
    to get the load-path clean, one needs to recursively remove them all.]

    P.S. the code snippet

    (setq load-path
    (remove
    (concat
    (replace-regexp-in-string “bin/$” “” invocation-directory)
    “lisp/cedet/”)
    load-path))

Leave a Reply