Next: Non-semantic files, Previous: General hints, Up: Setting up Emacs
To ensure ECB and semantic are working correctly for all by semantic supported languages you have to pay attention to the following aspects concerning your Emacs-setup:
This section implies that you have already successfully installed the CEDET-suite and describes how to setup cedet and here mainly semantic.
For all semantic-supported file-types parsing files is done completely by semantic. ECB just displays the parsing results. For all needs of ECB semantic is completely setup by ECB itself, i.e. ECB sets up semantic for you!
Please note: Nevertheless you should read carefully the file INSTALL shipped with the cedet-suite. In addition the CEDET-website offers a link to a “Gentle introduction to Cedet”. It's worth to read it! You find it here: http://xtalk.msk.su/~ott/en/writings/emacs-devenv/EmacsCedet.html If CEDET is not correctly installed then ECB can not setup semantic for its needs.
Minimum setup recommendation: It is very useful to enable the
global-semantic-idle-scheduler-mode
and
global-semanticdb-minor-mode
. Read the manual of cedet/semantic how to
do this. With CEDET-versions >= 1.0pre6 this can be done by adding
semantic-load-enable-minimum-features
to your startup-file. Please read
also the subsection “Jumping to the definition of external types” in
ECB Methods-window.
If you have already checked point (1.) and if you have still problems
getting ECB/semantic working properly for your sources you should
check the related major-mode hook. Every major-mode X has a hook with
name “X-hook” which is evaluated after activating the major-mode
(see above, 2.), e.g. the hook for the major-mode c++-mode
is
c++-mode-hook
.
Semantic adds automatically during load-time a special
“semantic-setup” to these major-mode hooks1 in form of a
“setup-function”. Example: For c and c++ modes semantic adds
semantic-default-c-setup
to c-mode-hook
and
c++-mode-hook
.
If your own Emacs-setup (e.g. in .emacs or site-lisp/site-start.el) overwrites such a major-mode-hook then semantic can not be activated for this major-mode and in consequence ECB can not work properly too!
Check if your Emacs-setup uses somewhere setq
for adding code
to a major-mode-hook. IMPORTANT: Use add-hook
instead of
setq
2!
If your source-files are “running” with correct major-mode
and correct major-mode hooks ECB and semantic will do what you expect
them doing!