LINUX.ORG.RU

Запустить bovinate сразу на всех файлах проекта EDE

 ,


1

1

Всем привет. Использую Emacs 24.3 + последний CEDET, и возникла одна небольшая проблема с навигацией по коду.

Есть проект на C/C++, в котором довольно часто приходится пользоваться функцией semantic-analyze-proto-impl-toggle, чтобы перескочить к определению функции. Но эта команда не работает для ещё ни разу не открывавшихся .c/.cpp файлов, тк semantic их ещё не распарсил. Есть ли в Semantic стандартный способ запустить распарсивание всех C/C++ файлов в корне проекта и подкаталогах, как будто мы заходим в каждый из них по отдельности и запускаем bovinate?


Ответ на: комментарий от iVS

Спасибо, создал .ede с перечислением файлов - заработало.

Хотя тут появляется проблема, уже упомянутая в комменте к посту - не всегда легко сгенерировать .ede, скорее стоит необходимость в команде вида M-x semantic-scan-every-file-reachable-from-this-folder. Проект, про который я говорю, большой и постоянно меняющийся, надо постоянно работать с его снапшотами из репозитория, соответственно один раз .ede создать недостаточно, нужно как-то генерировать его автоматом. (Сейчас у меня файл проекта в виде ede-cpp-root-project с жёстким списком include-каталогов)

Cheater
() автор топика
Ответ на: комментарий от iVS

Я правильно понимаю, что projman не взаимодействует с Semantic и что он заставит файлы проекта распарситься методом открытия их всех сразу? Если да, то это не подходит - во-первых является лишь хаком по отношению к исходному вопросу, во-вторых файлов в проекте слишком много для одновременного открытия.

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

Если да, то это не подходит - во-первых является лишь хаком по отношению к исходному вопросу, во-вторых файлов в проекте слишком много для одновременного открытия.

И что, более подходящего для твоих целей нет? В конце концов, всегда можно что-то дописать самому. Или смотри в сторону CEDET, может он может.

iVS ★★★★★
()
16 июля 2013 г.
Ответ на: комментарий от iVS

В итоге пришлось действительно дописать самому. Мб кому пригодится - https://github.com/c4eater/semantic-additions.

Основные команды там - bovinate-directory (распарсить целый каталог) и ede-initialize-root (создать EDE объект вида ede-cpp-root-project, автоматом включив в него все C/C++ файлы).

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