LINUX.ORG.RU

Emacs: Python и ECB

 , ,


1

2

Доброго времени суток.

Как настроить ECB так, чтобы окно ecb-methods работало с python? Нужен ли для этого CEDET? Если да, нужен оригинальный или подойдет тот, что встроен в emacs >= 23? Нужны ли какие-то дополнительные настройки ECB или какой-то специальный режим для питона?

Пробовал включить semantic-mode (т.е. CEDET 1.0 в составе emacs) и CEDET 1.1 (внешний). Для питон-файлов окно ecb-methods пустое. Emacs 24.2, ECB 2.40.

Спасибо.


а M-x: speedbar , что показывает?
А так вообще ecb завязан на cedet, а в cedet чё-то было про поддержку питона, но не очень работало и никто не фиксил. Так что вряд ли удастся просто и быстро и чтобы всё работало сделать.
Можно ещё посмотреть в сторону
https://github.com/tkf/emacs-ipython-notebook
https://github.com/tkf/emacs-jedi

Bad_ptr ★★★★ ()
Ответ на: комментарий от Bad_ptr

а M-x: speedbar , что показывает?

Speedbar тоже не раскрывает питоновские файлы.

А так вообще ecb завязан на cedet, а в cedet чё-то было про поддержку питона, но не очень работало и никто не фиксил. Так что вряд ли удастся просто и быстро и чтобы всё работало сделать.

Я видел 2 скрина с работающим ECB, так что надеюсь проблема именно в моем кофниге.

http://altom.ro/blog/emacs-python-ide-recipe
http://durdn.com/blog/2008/07/25/my-emacs-setup-for-python-development/

Конфиг по первой ссылке не помогает.

Можно ещё посмотреть в сторону [...]

Спасибо, буду смотреть, но браузера кода я так понял там нет.

gv ()
Ответ на: комментарий от gv

Speedbar тоже не раскрывает питоновские файлы

ну это странно. ctags в системе установлен? Оно наверняка через него работает.
Вот сейчас попробовал на питоновском файле, при включённом semantic-mode, в speedbar — файлик раскрывается, cedet встроенный.

Bad_ptr ★★★★ ()
Ответ на: комментарий от iSlava

Вот на таком урезанном конфиге не работает:

(semantic-mode t)
(setq stack-trace-on-error t)

(require 'ecb)
(custom-set-variables '(ecb-source-path '("/home/user/directory-with-python-file")))
(custom-set-variables '(ecb-auto-activate t))

gv ()
Ответ на: комментарий от Bad_ptr

ну это странно. ctags в системе установлен? Оно наверняка через него работает

Разве по-умолчанию требуется ctags? Поставил на всякий случай, ничего не изменилось, но я его и не включал в конфиге.

gv ()
Ответ на: комментарий от Bad_ptr

Ха. Разобрался. Файл, на котором я все время проверял — слишком большой либо сложный. Если вырезать из него несколько любых классов работают и speedbar и ECB. При открытии файла появляется сообщение `Parsing file.py LALR...', но минут за 15 ничего не происходит.

Так что спасибо всем.

gv ()

Подскажите пожалуйста все же что прописать в .emacs

По умолчанию (GNU Emacs 23.3.1 ) у меня при включении ECB

M-x ecb-activate
Окно методов либо пустое ,либо в случае С кода , только с функциями. А если я включу
semantic-mode
То , все что нужно появляется.

Вопрос, как должен выглядеть хук врубающий semantic-mode при включении ECB?

(add-hook 'ecb-activate-hook (lambda () (semantic-mode t)))

Не работает.

DR_SL ★★★★★ ()
Последнее исправление: DR_SL (всего исправлений: 1 )
Ответ на: комментарий от DR_SL

Такой конфиг у меня работает в 24, покрайней мере на простых файлах:

(semantic-mode -1) ;; Отключаем для проверки

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

(custom-set-variables
    '(ecb-source-path (list (list "~" "~")))
    '(ecb-tip-of-the-day nil)
    '(ecb-primary-secondary-mouse-buttons (quote mouse-1--mouse-2))
    '(ecb-auto-compatibility-check nil)
    '(ecb-auto-activate t))

(add-hook 'ecb-activate-hook (lambda () (semantic-mode t)))  ;; Включаем в хуке
gv ()
Ответ на: комментарий от gv

Не , не , как то оно странно работаете + выпадет в Backtrace при достижении конца файла или его начала, при прокрутке мышью.

DR_SL ★★★★★ ()
Ответ на: комментарий от gv

В общем попробовал, пока полет нормальный)

(semantic-mode -1) ;; Отключаем для проверки
(require 'ecb)
(custom-set-variables
    '(ecb-source-path (list (list "~" "~")))
    '(ecb-tip-of-the-day nil)
    '(ecb-auto-compatibility-check nil)
    )

(add-hook 'ecb-activate-hook (lambda () (semantic-mode t)))  ;; Включаем в хуке

Надо будет ещё убрать flymake файлы из source окна, а так мне нравится))

DR_SL ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.