Recentemente troquei o ctags pelo clangd para melhor suporte ao lsp no neovim. Agora o clangd não reconhece meus diretórios include locais.
Tentei os seguintes arquivos .clangd sem sucesso (com o primeiro pelo menos as macros funcionaram, o que é alguma coisa)
CompileFlags:
Add:
- -I./include
- -I./lib
- -D_GNU_SOURCE
- -DSHELL="/bin/sh"
CompileFlags:
Add: [-D_GNU_SOURCE, -DSHELL="/bin/sh", -I./include, -I./lib]
o arquivo .clangd está na raiz do projeto, mas ele simplesmente não funciona. O que acontece?
O clangd não suporta caminhos relativos em
CompileFlags
; veja https://github.com/clangd/clangd/issues/1038 .A solução correta aparentemente é usar um arquivo
compile_flags.txt
ou .compile_commands.json
Postagens relacionadas no Stack Overflow (onde as respostas recomendam usar
CompileFlags
in.clangd
, eles parecem esquecer de mencionar que isso só funciona para caminhos absolutos):