Похоже, vim не находит.clang_complete

При попытке настроить автозавершение для C с помощью clang complete в vim, и до сих пор, когда я нахожусь внутри.c файла, я получаю автоматическое завершение, когда нажимаю ctrl + x, u. Однако он отображает только некоторые символы.

Ни одна из функций из включенных заголовков не появляется во всплывающем окне автозаполнения. Похоже, что только typedefs показывают?

Структура проекта очень проста:

$ tree -ap
.
├── [-rwxrw-r--]  .clang_complete
├── [-rwxrw-r--]  makefile
└── [drwxrw-r--]  src
    └── [-rwxrw-r--]  FlightControl.c

1 directory, 3 files

Я попытался создать файл.clang_complete в папке проекта, которая содержит следующее:

-I/.../Libraries/xpSDK/CHeaders/XPLM

Я дважды проверил путь к заголовкам XPLM, и это правильно.

Есть идеи, что не так?

1 ответ

Решение

Во время завершения libclang пытается сделать все возможное, игнорируя ошибки, чтобы предоставить пользователю самый длинный список совпадений. Я думаю, что у вас нет XPLM_API макрос определен. Так как он используется для объявления каждой функции в заголовках, вы не увидите никаких функций в списке завершения. Глядя на определяет в XPLMDefs.h я думаю что libclang получает Platform not defined! ошибка (может быть, даже несколько раз).

Это должно работать, если вы определите свою платформу для завершения, я сделал это, добавив -DLIN в .clang_complete файл и завершение работ сейчас.

Так что это не проблема VIM или clang_completeхотя было бы неплохо иметь предупреждение в таком случае.

Другие вопросы по тегам