emacs: существует ли semantic-jump-to-declaration (использующий semantic.el)?

Предположим, что я редактирую буфер, содержащий C код.

Я запустил семантический с semantic-load-enable-code-helpers .

У меня есть точка, помещенная в название функции. Если я затем вызываю senator-jump Я могу перейти к месту, где это fn сначала объявляется в том модуле. Если существует объявление экстерна в том модуле, то это переходит к тому оператору экстерна. Иногда? Иногда это не работает, все же.

Существует также semantic-ia-fast-jump, который переходит к первому объявлению, также. Я не уверен, как этот fn отличается от senator-jump. Этот на самом деле работает все время, тем не менее, на функции, определяемые в локальном буфере.

Кто такой, если это функция я хочу перейти к, экстерн? Действительно ли возможно использовать сенатора для перехода к определению fn, если то определение находится в отдельном модуле? Разве ЭДЕ, как предполагается, не делает что-то вроде этого?

Спасибо.

6
задан Cheeso 7 May 2010 в 16:59
поделиться

2 ответа

Обратитесь к функции semantic-ia-fast-jump, определенной в semantic-ia. Для C и C++ также неплохо сгенерировать базу данных с gtags из GNU Global - в CEDET есть поддержка этого.

P.S. Я только что проверил - он перескочил из моего исходника на объявление std::string в /usr/include/....

5
ответ дан 17 December 2019 в 02:25
поделиться

Я не использовал сенатор, но вам не подходят etags? Я создаю таблицу тегов для всех .c . и файлы .h , используя

find . -name \*.c -o -name \*.h | xargs etags

, а затем используйте find-tag (по умолчанию привязанный к M - . ) и переходите к соответствующее определение. pop-tag-mark (привязанный по умолчанию к M - * ) можно использовать для возврата туда, откуда вы пришли.

У меня он работает нормально, но я использую его в основном при просмотре кодовых баз больших проектов, а не при редактировании C.

1
ответ дан 17 December 2019 в 02:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: