2014-12-05 3 views
2

я должен работать с C/C++ создать среду, которая падает промежуточные файлы повсюду:Предотвратить Cedet семантического из анализа некоторых типов файлов

  • .i файлов, содержащих вывод C-препроцессор (примерно сырец с)
  • .s файлы, содержащие вход C-ассемблере

Cedet (я полагаю, семантический анализатор) в конечном итоге находит эти файлы и попытки индексировать их. Это приводит к переходу на .i файлов, содержащих исходные значения C для определений и, как правило, замедление разбора и загрузки .semanticdb.

Я никогда не открываю эти файлы в emacs, поэтому они должны быть загружены анализатором фона.

Возможно ли предотвратить загрузку этих файлов анализатором? Я не могу найти какие-либо параметры конфигурации, которые определяют типы файлов, которые анализируются анализатором фона.

ответ

2

Если вам не нужен режим C для этих файлов, вот быстрое решение:

(add-to-list 'auto-mode-alist '("\\.i\\'" . fundamental-mode)) 
(add-to-list 'auto-mode-alist '("\\.s\\'" . fundamental-mode)) 
+0

Таким образом, семантический анализатор просто загружает файлы, которые он «знает» из-за 'mode-alist'? Это хитрый, но разочаровывающий, поскольку это глобальный список. Тем не менее, обходной путь, вероятно, подходит для меня. – Greg

+0

Нет, семантический запуск, потому что файл «* .i» открывается в 'c-mode' по умолчанию. И вы настроили синтаксический анализ всех буферов 'c-mode'. Таким образом, запуск «* .i» начинается в основном режиме. –

+0

Хм ... так что, возможно, это не так - я никогда не открывал эти файлы в emacs, чтобы вызвать такой синтаксический разбор (за исключением случайного использования семантики, чтобы найти символ, который взял меня там, потому что анализатор уже нашел и проиндексировал их) , – Greg

0

Ответ от Або-Або дал мне ключи мне нужно. Реализация grep (используемая EDE) semantic-symref-perform-search использует auto-mode-alist для поиска совпадающих файлов для заданного семантического режима (на основе режима текущего буфера, например `` c-mode ') при попытке разрешить символы.

Окончательное исправление я использовал специально исключить записи по умолчанию в auto-mode-alist с помощью:

(delete '("\\.i\\'" . c-mode) auto-mode-alist) (delete '("\\.ii\\'" . c++-mode) auto-mode-alist)

Добавление fundamental-mode записей в соответствии с предложением АВО-Або, кажется, работает также, но я был обеспокоен тем, что, поскольку записи c-mode все еще были в списке, изменение в реализации может привести к их повторной активации.

 Смежные вопросы

  • Нет связанных вопросов^_^