Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Emacs, CEDET et la complétion automatique

3 réponses
Avatar
ptyxs
Bonjour,
Avec comme objectif premier de pouvoir disposer de la compl=E9tion
automatique en C++ sous Emacs, je viens d'installer les paquets :
- cedet-common
- ede
- cogre
- eieio
- speedbar
- semantic
que ma distribution Linux actuelle (Jaunty Ubuntu) met =E0 ma
disposition.
Et, m'inspirant de
A Gentle Introduction to CEDET
http://xtalk.msk.su/~ott/en/writings/em =85 Cedet.html
et de divers conseils j'ai cr=E9=E9 le fichier ~/.emacs suivant :

(set-default-font "lucidasanstypewriter-bold-24")

(load-file "/usr/share/emacs/site-lisp/cedet-common/cedet.el")

(global-ede-mode t)

(ede-cpp-root-project
"MonSuperProjet"
:name "Mon Super Projet"
:file "~/source/monsuperprojet/CMakeLists.txt"
:include-path '("/include" "../include"))

(semantic-load-enable-code-helpers)

(require 'semantic-ia)
(require 'semantic-gcc)
(require 'semanticdb)
(global-semanticdb-minor-mode 1)

;; Permet de limiter l'analyse de code au fichier courant ou au projet
courant.
;; Rajouter "unloaded system recursive" pour tout parser (beaucoup
plus long !)
(setq-mode-local c-mode semanticdb-find-default-throttle '(file local
project))
(setq-mode-local c++-mode semanticdb-find-default-throttle '(file
local project))

Apr=E8s lancement d'Emacs, j'obtiens alors dans *Messages* ce qui suit,
qui contient des messages d'erreur concernant ede :

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Loading /etc/emacs/site-start.d/50devhelp.el (source)...done
Loading /etc/emacs/site-start.d/50dictionaries-common.el (source)...
Loading debian-ispell...
Loading /var/cache/dictionaries-common/emacsen-ispell-default.el
(source)...done
Loading debian-ispell...done
Loading /var/cache/dictionaries-common/emacsen-ispell-dicts.el
(source)...done
Loading /etc/emacs/site-start.d/50dictionaries-common.el
(source)...done
Loading /etc/emacs/site-start.d/50eieio.el (source)...done
Loading /etc/emacs/site-start.d/50psvn.el (source)...done
Loading /etc/emacs/site-start.d/51ede.el (source)...done
Loading /etc/emacs/site-start.d/51speedbar.el (source)...done
Loading /etc/emacs/site-start.d/52semantic.el (source)...done
Loading /etc/emacs/site-start.d/53cedet-contrib.el (source)...done
Loading /etc/emacs/site-start.d/53cogre.el (source)...done
Loading /usr/share/emacs/site-lisp/cedet-common/cedet.el (source)...
"/usr/share/emacs/site-lisp/cedet-common/" added to `load-path'
Loading cl-macs...done
Setting up cedet...done
Setting up cogre...done
Setting up ede...
Loading ede...
!! File eieio uses old-style backquotes !!
Loading ede-speedbar...done
Loading ede...done
Setting up ede...done
Setting up eieio...done
Setting up semantic...
Loading derived...done
Loading regexp-opt...done
Setting up semantic...done
Setting up speedbar...done
Setting up cedet-contrib...done
Loading /usr/share/emacs/site-lisp/cedet-common/cedet.el
(source)...done


An error has occurred while loading `/home/toto/.emacs':

Symbol's function definition is void: ede-cpp-root-project

To ensure normal operation, you should investigate and remove the
cause of the error in your initialization file. Start Emacs with
the `--debug-init' option to view a complete error backtrace.

Loading semantic-el...done

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=
;;;;;;;;;;;;;;;;;;;;

Et si je lance ensuite la commande


M-x semantic-analyze-debug-assist

Il vient toujours un [no match] dans le mini-buffer.

J'ajoute que j'avais pris soin de cr=E9er un fichier texte vide :
"~/source/monsuperprojet/CMakeLists.txt" en supposant que cela
permettrait de faire fonctionner l'exemple.

Que faire pour que CEDET s'installe correctement et pour activer la
compl=E9tion automatique ?

3 réponses

Avatar
Vincent Belaïche
Je viens de faire un grep dans tous les source de ede, et je n'ai pas trouvé
de ede-cpp-root-project, ni d'ailleurs aucun symbol contenant à la fois (ede
et (root ou cpp)).

Es-tu sûr que cette classe existe ?


À+

Vincent.


ptyxs a écrit :
Bonjour,
Avec comme objectif premier de pouvoir disposer de la complétion
automatique en C++ sous Emacs, je viens d'installer les paquets :
- cedet-common
- ede
- cogre
- eieio
- speedbar
- semantic
que ma distribution Linux actuelle (Jaunty Ubuntu) met à ma
disposition.
Et, m'inspirant de
A Gentle Introduction to CEDET
http://xtalk.msk.su/~ott/en/writings/em … Cedet.html
et de divers conseils j'ai créé le fichier ~/.emacs suivant :

(set-default-font "lucidasanstypewriter-bold-24")

(load-file "/usr/share/emacs/site-lisp/cedet-common/cedet.el")

(global-ede-mode t)

(ede-cpp-root-project
"MonSuperProjet"
:name "Mon Super Projet"
:file "~/source/monsuperprojet/CMakeLists.txt"
:include-path '("/include" "../include"))

(semantic-load-enable-code-helpers)

(require 'semantic-ia)
(require 'semantic-gcc)
(require 'semanticdb)
(global-semanticdb-minor-mode 1)

;; Permet de limiter l'analyse de code au fichier courant ou au projet
courant.
;; Rajouter "unloaded system recursive" pour tout parser (beaucoup
plus long !)
(setq-mode-local c-mode semanticdb-find-default-throttle '(file local
project))
(setq-mode-local c++-mode semanticdb-find-default-throttle '(file
local project))

Après lancement d'Emacs, j'obtiens alors dans *Messages* ce qui suit,
qui contient des messages d'erreur concernant ede :

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Loading /etc/emacs/site-start.d/50devhelp.el (source)...done
Loading /etc/emacs/site-start.d/50dictionaries-common.el (source)...
Loading debian-ispell...
Loading /var/cache/dictionaries-common/emacsen-ispell-default.el
(source)...done
Loading debian-ispell...done
Loading /var/cache/dictionaries-common/emacsen-ispell-dicts.el
(source)...done
Loading /etc/emacs/site-start.d/50dictionaries-common.el
(source)...done
Loading /etc/emacs/site-start.d/50eieio.el (source)...done
Loading /etc/emacs/site-start.d/50psvn.el (source)...done
Loading /etc/emacs/site-start.d/51ede.el (source)...done
Loading /etc/emacs/site-start.d/51speedbar.el (source)...done
Loading /etc/emacs/site-start.d/52semantic.el (source)...done
Loading /etc/emacs/site-start.d/53cedet-contrib.el (source)...done
Loading /etc/emacs/site-start.d/53cogre.el (source)...done
Loading /usr/share/emacs/site-lisp/cedet-common/cedet.el (source)...
"/usr/share/emacs/site-lisp/cedet-common/" added to `load-path'
Loading cl-macs...done
Setting up cedet...done
Setting up cogre...done
Setting up ede...
Loading ede...
!! File eieio uses old-style backquotes !!
Loading ede-speedbar...done
Loading ede...done
Setting up ede...done
Setting up eieio...done
Setting up semantic...
Loading derived...done
Loading regexp-opt...done
Setting up semantic...done
Setting up speedbar...done
Setting up cedet-contrib...done
Loading /usr/share/emacs/site-lisp/cedet-common/cedet.el
(source)...done


An error has occurred while loading `/home/toto/.emacs':

Symbol's function definition is void: ede-cpp-root-project

To ensure normal operation, you should investigate and remove the
cause of the error in your initialization file. Start Emacs with
the `--debug-init' option to view a complete error backtrace.

Loading semantic-el...done

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Et si je lance ensuite la commande


M-x semantic-analyze-debug-assist

Il vient toujours un [no match] dans le mini-buffer.

J'ajoute que j'avais pris soin de créer un fichier texte vide :
"~/source/monsuperprojet/CMakeLists.txt" en supposant que cela
permettrait de faire fonctionner l'exemple.

Que faire pour que CEDET s'installe correctement et pour activer la
complétion automatique ?


Avatar
ptyxs
On 5 oct, 21:34, Vincent Belaïche wrote:
Je viens de faire un grep dans tous les source de ede, et je n'ai pas tro uvé
de ede-cpp-root-project, ni d'ailleurs aucun symbol contenant à la f ois (ede
et (root ou cpp)).

Es-tu sûr que cette classe existe ?

ÀDans A Gentle Introduction to CEDET, je lis ceci :



==========
How to customize Semantic to work with C & C++ projects

To proper work of Semantic with С & C++ code is recommended to use the
EDE package (work with projects, etc.). For these languages, EDE
package defines special project type — ede-cpp-root-project, that
provides additional information to Semantic, that will be used to
analyze source code of your project.

To define a project, you need to use following code:

(ede-cpp-root-project "Test"
:name "Test Project"
:file "~/work/project/CMakeLists.txt"
:include-path '("/"
"/Common"
"/Interfaces"
"/Libs"
)
:system-include-path '("~/exp/include")
:spp-table '(("isUnix" . "")
("BOOST_TEST_DYN_LINK" . "")))

==========
Ptyxs

    Vincent.

ptyxs a écrit :

> Bonjour,
> Avec comme objectif premier de pouvoir disposer de la complétion
> automatique en C++ sous Emacs, je viens d'installer les paquets :
> - cedet-common
> - ede
> - cogre
> - eieio
> - speedbar
> - semantic
> que ma distribution Linux actuelle (Jaunty Ubuntu) met à ma
> disposition.
> Et, m'inspirant de
> A Gentle Introduction to CEDET
>http://xtalk.msk.su/~ott/en/writings/em… Cedet.html
> et de divers conseils j'ai créé le fichier ~/.emacs suivant :

> (set-default-font "lucidasanstypewriter-bold-24")

> (load-file "/usr/share/emacs/site-lisp/cedet-common/cedet.el")

> (global-ede-mode t)

> (ede-cpp-root-project
>  "MonSuperProjet"
>  :name "Mon Super Projet"
>  :file "~/source/monsuperprojet/CMakeLists.txt"
>  :include-path '("/include" "../include"))

> (semantic-load-enable-code-helpers)

> (require 'semantic-ia)
> (require 'semantic-gcc)
> (require 'semanticdb)
> (global-semanticdb-minor-mode 1)

> ;; Permet de limiter l'analyse de code au fichier courant ou au projet
> courant.
> ;; Rajouter "unloaded system recursive" pour tout parser (beaucoup
> plus long !)
> (setq-mode-local c-mode semanticdb-find-default-throttle '(file local
> project))
> (setq-mode-local c++-mode semanticdb-find-default-throttle '(file
> local project))

> Après lancement d'Emacs,  j'obtiens alors dans *Messages* ce qui suit,
> qui contient des messages d'erreur concernant ede :

> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

> Loading /etc/emacs/site-start.d/50devhelp.el (source)...done
> Loading /etc/emacs/site-start.d/50dictionaries-common.el (source)...
> Loading debian-ispell...
> Loading /var/cache/dictionaries-common/emacsen-ispell-default.el
> (source)...done
> Loading debian-ispell...done
> Loading /var/cache/dictionaries-common/emacsen-ispell-dicts.el
> (source)...done
> Loading /etc/emacs/site-start.d/50dictionaries-common.el
> (source)...done
> Loading /etc/emacs/site-start.d/50eieio.el (source)...done
> Loading /etc/emacs/site-start.d/50psvn.el (source)...done
> Loading /etc/emacs/site-start.d/51ede.el (source)...done
> Loading /etc/emacs/site-start.d/51speedbar.el (source)...done
> Loading /etc/emacs/site-start.d/52semantic.el (source)...done
> Loading /etc/emacs/site-start.d/53cedet-contrib.el (source)...done
> Loading /etc/emacs/site-start.d/53cogre.el (source)...done
> Loading /usr/share/emacs/site-lisp/cedet-common/cedet.el (source)...
> "/usr/share/emacs/site-lisp/cedet-common/" added to `load-path'
> Loading cl-macs...done
> Setting up cedet...done
> Setting up cogre...done
> Setting up ede...
> Loading ede...
> !! File eieio uses old-style backquotes !!
> Loading ede-speedbar...done
> Loading ede...done
> Setting up ede...done
> Setting up eieio...done
> Setting up semantic...
> Loading derived...done
> Loading regexp-opt...done
> Setting up semantic...done
> Setting up speedbar...done
> Setting up cedet-contrib...done
> Loading /usr/share/emacs/site-lisp/cedet-common/cedet.el
> (source)...done

> An error has occurred while loading `/home/toto/.emacs':

> Symbol's function definition is void: ede-cpp-root-project

> To ensure normal operation, you should investigate and remove the
> cause of the error in your initialization file.  Start Emacs with
> the `--debug-init' option to view a complete error backtrace.

> Loading semantic-el...done

> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;

> Et si je lance ensuite la commande

> M-x semantic-analyze-debug-assist

> Il vient toujours un  [no match] dans le mini-buffer.

> J'ajoute que j'avais pris soin de créer un fichier texte vide :
> "~/source/monsuperprojet/CMakeLists.txt" en supposant que cela
> permettrait de faire fonctionner l'exemple.

> Que faire pour que CEDET s'installe correctement et pour activer la
> complétion automatique ?
Avatar
ptyxs
Je rappelle juste pour info l'adresse de A gentle introduction to
CEDET

http://xtalk.msk.su/~ott/en/writings/emacs-devenv/EmacsCedet.html

Ptyxs