Install ECB with Emacs Starter Kit in Emacs 24

I have the Emacs Starter Kit installed. When I try to install and start ECB, it does not work.
What's wrong? How to make ECB work with Emacs Starter Kit?

ECB Installation

I tried two ways:

  • Adding ecb to my-packages list as described here
  • Install ecb with the list-packages command

Both methods give the same result. During installation, I got a lot of warnings, such as

 In ecb-test-with-original-advice-set: ecb-advice-test.el:122:16:Warning: reference to free variable `ecb-version' In ecb-analyse-jump-to-tag: ecb-analyse.el:443:24:Warning: `interactive-p' is an obsolete function (as of 23.2); use `called-interactively-p' instead. 

The total file size is 807 lines, and I do not know how to add it here, keeping the message readable :)

Using ECB

When I try to start ECB by adding (require 'ecb)
Before ~/.emacs.d/$USER.el , the following error occurs when starting Emacs:

 File error: Cannot open load file, ecb 

The variable load-path does not contain the path to the ecb files. When I start Emacs without (require 'ecb) , there are no errors, and the load-path "/home/maksim/.emacs.d/elpa/ecb-2.40" contain the line "/home/maksim/.emacs.d/elpa/ecb-2.40" . Adding the next line

 (add-to-list 'load-path (expand-file-name "~/.emacs.d/elpa/ecb-2.40")) 

Emacs starts without errors, but ECB still does not work, and ecb-activate acts as follows.

If I try to start ECB by calling ecb-activate , I see the following in the *Messages* buffer:

 ECB 2.40 uses CEDET 1.0 (contains semantic 2.0, eieio 1.3, speedbar <unknown version>). ecb-activate-internal: Symbol value as variable is void: stack-trace-on-error 

If I add the following line to ~/.emacs.d/$USER.el

 (setq stack-trace-on-error t) 

then ecb-activate answers as follows

 ECB 2.40 uses CEDET 1.0 (contains semantic 2.0, eieio 1.3, speedbar <unknown version>). All requirements for ECB 2.40 fulfilled - Enjoy it! The ECB is now deactivated. ecb-clean-up-after-activation-failure: ECB 2.40: Errors during the basic setup of ECB. (error-type: void-function, error-data: (ecb-enable-own-temp-buffer-show-futition)) 

Version Information

  • GNU Emacs 24.0.92.1 (x86_64-pc-linux-gnu, GTK + version 2.22.0)
    2011-12-06 on pluot modified by Debian
  • emacs-starter-kit 2.0.3
  • ecb 2.40
+6
source share
6 answers

I had the same problems as you, I just solved, here are my specifications:

  • GNU Emacs 24.0.93.1 (I am using the snapshot gtk version on Ubuntu 11.10)
  • starter kit 2.0.3
  • CEDET 1.0pre7 (it is built-in)
  • latest ECB from CVS repo (http: //ecb.cvs .sourceforge.net / ecb / ecb /)

Plus, I did as @ user1150335 said with the version number. I did not need to change the version number, as @ user1150335 said. Let me know if I missed something or you need something more about customization.

+3
source
  • add (setq version-error nil) to ecb-uprade.el
    which means no version verification of cedet.

  • correctly (ECB-enable-own-TEMP-buffer-show-futition) in (ECB-enable-own-TEMP-buffer-show-function) in ecb.el

  • remove ecb.elc and ecb-upgrade.elc

  • Mx compb byte file ecb.el and ecb-upgrade.el

  • add (setq stack-trace-on-error t) to .emacs or .emacs.d / init.el

  • Mx ecb-active

+3
source

Try editing the ecb-cedet-required-version-max variable (located in ecb-cedet-wrapper.el). Worked for me. Update: I do not know which version of cedet you are using. But there is an example of how I did this, step by step:

  • (setq stack-trace-on-error t) (add it to the .emacs file)
  • Next you should find the ecb-cedet-required-version-max variable. In my version of cedet, this is in ecb-cedet-wrapper.el: 83
  • To circumvent version verification, it must be larger than the currently installed cedet. (defconst ecb-cedet-required-version-max '(1 2 4 9) Will do the trick for all currently available versions.
  • It's all. Restart emacs to check it.

For some reason, the stack-trace-on-error error should be true even after fixing it. I tested it with GNU Emacs 24.0.92.1, CEDET Version: 1.1beta (last check from bzr) and last ecb check from cvs. Currently I do not use ecb, but I tried ecb-byte-compile, ecb-activate, ecb-deactivate, transitions to ecb windows (methods, dirs, sources), open cpp and elisp files. Everything works perfectly.

+2
source

You have to fix

(ECB-enable-native-TEMP-buffer-show-futition)

to

(ECB-enable-own-TEMP-buffer-show-function)

at ecb.el

+2
source

There is a new ECB branch on github called newcedet . This version of ECB is compatible with the newer versions of Emacs and CEDET 1.1 and higher. There are also discussions on the ECB mailing list regarding this.

+2
source

Install ecb-snapshot

 Mx package-list-packages 

and select an ecb snapshot from it. Also put this on your ~ / .emacs.d / $ USER.el

 (require 'ecb) (setq stack-trace-on-error t) 
+1
source

Source: https://habr.com/ru/post/905807/


All Articles