сделать семантический поиск в emacs cedet для включения каталогов - PullRequest
3 голосов
/ 03 августа 2011

Cedet - хороший набор инструментов, но в конфигурации по умолчанию ему трудно найти включенные файлы.

Я бы хотел, чтобы он искал каталог с именем include / в каждом родительском каталоге и получил оттуда файл.

для примера /home/fakedrake/my-project/some-thing/something-else/file.c имеет #include "file.h" file.h находится в some-thing / file.h, но cedet не может его найти

Что было бы замечательно, так это заставить cedet искать файл file.h для создания дополнений в каталогах

/home/fakedrake/my-project/some-thing/include/
/home/fakedrake/my-project/include/

(и я мог бы жить с этим, если бы он попытался найти

/include/
/home/include/
/home/fakedrake/include/ 

)

1 Ответ

4 голосов
/ 03 августа 2011

Вы можете использовать EDE для него. Более того, он позволяет указывать разные пути включения для конкретных проектов. EDE является частью Cedet, поэтому вам не нужно ничего устанавливать.

Базовая настройка:

(global-ede-mode t)

Тогда для каждого проекта у вас должно быть что-то подобное:

(if (file-exists-p "~/dev/chanconf/Makefile")
    (ede-cpp-root-project "chanconf"
                          :name "Channel Config"
                          :file "~/dev/chanconf/Makefile"
                          :system-include-path '("/usr/include"
                                                 "/usr/include/boost")
                          :include-path '("/src"
                                          "/test/gtest/include")
                          :spp-table '(("BOOST_PROGRAM_OPTIONS_DECL" . ""))))

Это не совсем то, что вы просите, так как вам все еще нужно перечислить все включаемые каталоги. Но обычно это делается только один раз для каждого проекта и не требует слишком больших усилий, поэтому я надеюсь, что это поможет.

Статья Алекса Отта о Cedet - довольно хороший источник идей, если вам нужно больше.

...