Почему Clangd не находит все ссылки?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему Clangd не находит все ссылки?

Сообщение Anonymous »

У меня есть проект C ++, построенный с Cmake, и файл compile_commands.json создан как часть сборки. Это загружается в Clangd LSP, но некоторые файлы, кажется, не будут индексированы, пока я не открываю их вручную с моим редактором. < /P>
Файлы исходного кода: < /p> Некоторые файлы CPP генерируются на шаге сборки (Cmake+Ninja+Python) и положить в папку сборки: < /p> , когда я выполняю LSP-call selicements () , чтобы попытаться найти Ссылки от A.CPP или a.hh Использование в файле Gen_a_usage.cpp не указано.
Как я могу понять, почему? В действительности проект намного больше, чем просто эти три файла. Оба a.cpp имеют записи и gen_a_usage.cpp есть записи в compile_commands.json файл.
clangd docs
У Clangd есть эта информация (см. >
Одной из потенциальных причин является то, что Clangd не проиндексировал все файлы в вашем проекте. Пожалуйста, убедитесь, что все файлы видны для Clangd через настройку проекта и Compile_commands.json. Просто то, что путь файла CPP указан явно где -то в файле JSON? Сделано с Cmake + Ninja < /li>
После сборки я запускаю мой редактор (neovim) < /li>
lsp (clangd) запускается с этой конфигурацией:
lsp.clangd.setup { cmd = {"clangd", "--clang-tidy", "--background-index", "--limit-references=0", "--cross-file-rename"}}
< /code>
< /li>
< /ul>
Я видел это поведение в Clangd версии 16, 19 и 20. и у моего коллега есть аналогичные проблемы в Vscode .

Подробнее здесь: https://stackoverflow.com/questions/794 ... references
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»