Estou usando o modo de empresa para conclusão no código C ++. Para informar ao clang back-end da empresa onde estão os arquivos de inclusão do projeto atual, tenho que usar o seguinte .dir-locals.el
arquivo
((c++-mode (eval setq company-clang-arguments (append
company-clang-arguments
'("-I/full/path/to/project/root/include"))))
Eu tenho que especificar o caminho completo sempre. Existe uma maneira de substituir full/path/to/project/root
por uma variável que armazena o caminho do .dir-locals.el
arquivo?
eu tentei
(c++-mode (eval setq company-clang-arguments (append
company-clang-arguments
(list concat "-I" default-directory "src")))))
mas como default-directory
é avaliado no arquivo que estou abrindo, ele não retorna ao caminho da raiz do projeto, mas a algum outro caminho dentro do projeto.
(locate-dominating-file default-directory ".dir-locals.el")
também pode ser uma opção, talvez até abreviada para uma função.projectile-project-root
faz. Obrigado pela dica embora..dir-locals.el
, não o de onde o formulário vem.dir-locals-file
variável em vez de ".dir-locals.el" string é mais apropriado