LINUX.ORG.RU

func-menu in emacs (for C)


0

0

Подскажите, пожалуйста, можно ли в emacs (который не XEmacs - там это out of the box) добиться показа имени функции в статусной строке в c-mode? Еще хотелось бы листинга имен функций, но это не так актуально.

symantec и прочий ecb готовить не умею - хотелось бы легковесного решения.

anonymous

> symantec и прочий ecb готовить не умею - хотелось бы легковесного решения.

так учитесь готовить ecb & semantec, ибо нормального легковесного решения нет.

asgard
()

>листинга имен функций

Semantic + imenu, ставится просто и быстро. Можно ещё Speedbar.

Смотри Emacswiki.org, всё просто.

>показа имени функции в статусной строке в c-mode

Кстати, интересно, а зачем такое может понадобиться?

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

> Есть же which-function-mode (по крайней мере, в Emacs 22).

Интересно ... вот именно в GNU Emacs который FSF, а не в XEmacs, есть which-function-mode, работающий для c-mode? У меня в 21.4.1 он тоже есть, но работает только для Lisp (по крайней мере для Perl и для единственно важного для меня C показывает вопросительные знаки).

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

> Кстати, интересно, а зачем такое может понадобиться?

Когда приходится разбираться в коде, содержащем функции на десяток экранов, и при разработке которого активно использовался cut-and-paste, иногда становится непонятно, ты еще здесь, или уже где-то там.

Про hs-minor-mode знаю и пользуюсь, но к показу имени функции привык по XEmacs, и в Emacs без него неуютно.

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

>Semantic + imenu, ставится просто и быстро. Можно ещё Speedbar. >Смотри Emacswiki.org, всё просто.

А как с помощью Semantic понять, в какой функции находится курсор?

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

> так учитесь готовить ecb & semantec

Не получается. Точнее, не получается съесть то, что было приготовлено.

Не лежит у меня душа к ECB: я люблю располагать буфера на экране так, как мне это удобно в каждый конкретный момент.

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

Semantic это внутреннее универсальное средство GNU Emacs для использования другими утилитами. Например, imenu. Imenu юзает средства Semantic Bovinator для построения менюшек с листингами функций, классов, переменных и т.д. и т.п. В свою очередь, средства imenu используются в which-func-mode, который в статусной строке буфера выводит название текущей функции в поддерживаемых режимах. Нажимаешь `M-x which-func-mode` и всё работает. Разумеется, для этого должны стоять semantic bovinator и imenu (в свежих версиях GNU Emacs вроде уже в комплекте). Which-func-mode поддерживается везде, где работает imenu. Для настройки списка режимов, в которых может работать which-func-mode, смотри группу настроек 'which-func' (`M-x customize-group RET which-func`), увидишь там все нужные настройки.

Which-func-mode подглюкивает с темы сорцами, где есть классы (показывает имя класса, а не функции), например в Python.

Подробную информацию по всем этим приблудам читай на EmacsWiki.

http://www.emacswiki.org/cgi-bin/emacs-en/ImenuMode http://www.emacswiki.org/cgi-bin/emacs-en/SemanticBovinator http://www.emacswiki.org/cgi-bin/emacs-en/WhichFuncMode

Вот как работает which-func-mode:

http://img228.imageshack.us/img228/4391/screen1177753381ie2.png

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

Спасибо. Я и не подозревал, что which-func-mode основан на semantic.

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