Установите ECB с Emacs Starter Kit в Emacs 24 - PullRequest
6 голосов
/ 12 января 2012

У меня установлен Emacs Starter Kit. Когда я пытаюсь установить и запустить ECB, он не работает.
Что случилось? Как заставить ECB работать с Emacs Starter Kit?

ECB установка

Я пробовал два способа:

  1. Добавление ecb в my-packages список, как описано здесь
  2. Установка ecb с помощью команды list-packages

Оба способа дают одинаковый результат. Во время установки я получил много предупреждений типа

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.

Общий размер файла составляет 807 строк, и я не знаю, как добавить его здесь, чтобы сохранить пост в удобочитаемом виде:)

Использование ECB

Когда я пытаюсь запустить ECB, добавив (require 'ecb)
~/.emacs.d/$USER.el при запуске Emacs возникает следующая ошибка:

File error: Cannot open load file, ecb

Переменная load-path не содержит путь к файлам ecb. Когда я запускаю Emacs без (require 'ecb), ошибок нет, а load-path содержит строку
"/home/maksim/.emacs.d/elpa/ecb-2.40". Добавление следующей строки

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

заставляет Emacs запускаться без ошибок, но ECB по-прежнему не работает, а ecb-activate действует так, как описано ниже.

Если я пытаюсь запустить ECB, вызывая ecb-activate, в буфере *Messages* я вижу следующее:

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

Если я добавлю следующую строку в ~/.emacs.d/$USER.el

(setq stack-trace-on-error t)

затем ecb-activate отвечает следующее

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))

Информация о версии

  • GNU Emacs 24.0.92.1 (x86_64-pc-linux-gnu, GTK + версия 2.22.0)
    от 2011-12-06 на pluot, модифицированный Debian
  • emacs-starter-kit 2.0.3
  • ecb 2,40

Ответы [ 6 ]

3 голосов
/ 04 сентября 2012
  1. add (setq version-error nil) в ecb-uprade.el
    , что означает отсутствие проверки версии cedet.

  2. исправить (ecb-enable-own-temp-buffer-show-futition) на (ecb-enable-own-temp-buffer-show-function) в ecb.el

  3. удалить ecb.elc и ecb-upgrade.elc

  4. Mx байт-файл-компиляции ecb.el и ecb-upgrade.el

  5. add (setq trace-on-error-t) в .emacs или .emacs.d / init.el

  6. Mx ecb-active

3 голосов
/ 23 февраля 2012

У меня были те же проблемы, что и у вас, я только что решил, вот мои характеристики:

  • GNU Emacs 24.0.93.1 (я использую версию снимка gtk на Ubuntu 11.10)
  • стартовый комплект 2.0.3
  • CEDET 1.0pre7 (встроенный)
  • последний ECB из репозитория CVS (http://ecb.cvs.sourceforge.net/ecb/ecb/)

Плюс я сделал, как сказал @ user1150335 с номером версии Мне не нужно было менять номер версии, как сказал @ user1150335. Дайте мне знать, если я что-то пропустил или вам нужно что-то еще о конфигурации.

2 голосов
/ 04 июля 2012

На github есть новая ветвь ECB с именем newcedet . Эта версия ECB совместима с новыми версиями Emacs и CEDET 1.1 и выше. В списке рассылки ЕЦБ также обсуждается *1003*.

2 голосов
/ 28 марта 2012

Вы должны исправить

(ECB-включить-собственный-ТЕМП-буфер-шоу-futition)

до

(ECB-включить-собственный-ТЕМП-буфер-шоу-функция)

в ecb.el

2 голосов
/ 15 января 2012

Попробуйте отредактировать переменную ecb-cedet-required-version-max (она находится в ecb-cedet-wrapper.el).Работал на меня.Обновление: я не знаю, какую версию cedet вы используете.Но есть пример, как я это делал, шаг за шагом:

  1. (setq stack-trace-on-error t) (добавьте его в свой файл .emacs)
  2. Далее,Вы должны найти переменную ecb-cedet-required-version-max.В моей версии cedet он находится в ecb-cedet-wrapper.el: 83
  3. Чтобы обойти проверку версии, она должна быть больше, чем установленный в настоящее время cedet.(defconst ecb-cedet-required-version-max '(1 2 4 9) сделает все возможное для всех доступных на данный момент версий.
  4. Вот и все. Перезапустите emacs, чтобы протестировать его.

По какой-то причине stack-trace-on-error должен быть истинным даже после исправления. Я проверил это с GNU Emacs 24.0.92.1, CEDET Version: 1.1beta (последняя проверка от bzr) и последней проверкой ecb из cvs.В настоящее время я действительно не использую ecb, но я попробовал ecb-byte-compile, ecb-activate, ecb-deactivate, переходы к окнам ecb (методы, каталоги, исходники), открытие файлов cpp и elisp. Все работает просто отлично.

1 голос
/ 11 января 2013

Установка ecb-snapshot

M-x package-list-packages

и выберите из него ecb-снимок. Также поместите это в ~ / .emacs.d / $ USER.el

(require 'ecb)
(setq stack-trace-on-error t)
...