Emacs, Cedet и семантический

Я настроил CEDET для emacs после Alex article (отлично!!). Теперь вопросы:

  • Я создал GTAGS с Gnu Global в моем /usr/include, как я могу проверить, использует ли семантика GTAGS?
  • Могу ли я сохранить GTAGS в другом каталоге и указать семантику для использования этого каталога?
  • В источниках C/С++ завершение включения include (из системы заголовки) не перечисляет все доступные заголовки. Хорошо, это глупо проблема.. но заставляет меня думать, что что-то не работает правильно.

Ответ 1

Вы можете использовать команду:

M-x semantic-c-describe-environment RET

чтобы узнать о настройках макроса include и CPP.

Чтобы проверить использование GNU Global, вы можете использовать:

M-x semanticdb-test-gnu-global RET printf RET

для поиска "printf" в каком-либо проекте. Поскольку ваш проект (возможно, в /home/you/myproject ) не имеет printf, он будет терпеть неудачу, но если вы откроете файл в /usr/include и выполните ту же команду, он, надеюсь, идентифицирует printf.

Более общий способ узнать о GNU Global - это:

M-x cedet-gnu-global-version-check RET

Все сказанное: поддержка GNU Global лучше всего в ситуациях, когда вы хотите иметь много и много готовых файлов, к которым вы обращаетесь нечасто. Как только заголовок будет доступен один раз (например, для printf), база данных GNU Global больше не будет использоваться, потому что для нее будет создана эквивалентная семантическая база данных. Это необходимо, потому что GNU Global не предоставляет достаточной информации для интеллектуального завершения.