Как я могу узнать, использует ли CEDET GNU Global?
У меня есть CEDET, работающий по большей части на emacs 24.2 с последним из репозитория bzr.
Когда я ищу символы или определения, я вижу, что мини-буфер cedet показывает синтаксический анализ множества файлов, некоторые из которых отсутствуют в виде заголовочных файлов, файлы не имеют никакой ссылки на символы, которые я ищу. Я оставлю CEDET на своей работе, пусть он ищет символы так, как считает нужным.
Есть ли какой-нибудь механизм отладки или подробный режим, который я могу включить, чтобы увидеть 1) Что это за файлы, которые он ищет. 2) Если он нашел файл GTAGS в основе моего проекта. Я понимаю, что CEDET консультируется только с файлом GTAGS, чтобы узнать о символах.
Я спрашиваю, потому что есть некоторые символы, для которых CEDET не может найти определение, но я могу найти его из командной строки gtags.
Спасибо Алексу и Эрику за их многочисленные посты по всей сети.
1 ответ
Это многошаговый процесс.
Во-первых, убедитесь, что вы настроили Global так, как хотите, например, через функцию поиска ede и через Symref.
Далее, при посещении файла в проекте, который вас интересует, используйте:
M-x cedet-gnu-global-show-root RET
чтобы увидеть, может ли он найти файл Глобального индекса в этом проекте.
Затем, чтобы увидеть, нашел ли symref его, вам нужно проверить это:
M-: (semantic-symref-detect-symref-tool)
и он даст вам символ, представляющий инструмент, который он выбрал для использования. Это скажет 'grep
если не удалось использовать Global.
Если вы занимались настройкой, вам может потребоваться сбросить настройки для буфера. Самый простой способ - убить буфер и найти его снова, или:
M-x (setq semantic-symref-tool 'detect) RET
заставить обнаружение снова.