예전부터 YouCompleteMe 쓰던 사람인데 소스파일 (*.cc,.cpp) 쓰는 프로젝트에선 불편한 점없이 썼음
근데 header-only library 만드려니까 compilation database (compile_commands.json) 에 헤더가 반영이 안 돼서 문제임
Sarcasm/compdb: The compilation database Swiss army knife (github.com)
이 레포도 써봤는데 소스에 존재하는 헤더만 compilation database 에 추가하는 거 같더라고
짜증나는 점이 compilation database 에 헤더가 없으면 clangd 에 의해서 작동하는 linting 이 안 먹히거든
그래서 내가 그냥 헤더 추가하는 스크립트 만드려고 하거든
다른 방법 있냐?
compile-flags.txt 에 수동으로 컴파일 옵션 추가하는 방법이 있는데 캐싱이 안되는 단점이 있음 프로젝트 규모 크면 신경쓰일 정도로 느려짐
이거 IDE 써도 clangd 를 쓰는 이상 똑같다 들었는데 어쩌지
내 말을 듣기는 들은 거 맞냐? 뭔 이상한 소리를 하고있어 compile_commands.json 은 캐싱이 지원이 되는데 compile-flags.txt 는 캐싱 안되고 대신 헤더 온리도 LSP 정상작동 가능하다니까
내가 목적어를 빼먹고 안 썼어. compile_commands.json 을 쓰면 IDE 여도 안된다 말한 거야. 제안은 고마워
IDE 인지 뭔지는 중요한게 아니라 clangd 를 LSP 로 굴리는 이상 compile_commands.json 이 생성 가능해야 최적의 환경이 나오고 IDE 자체에 파서가 내장돼있어서 clangd 를 안 쓰면 상관없다
clangd 보다 ccls 많이 쓰지 않나?
좀 힙한데 clangd 랑 비교해서 어때?
ccls 기능은 깔끔하게 돌아가긴 하는데 프리빌드 바이너리 제공도 안 해주고 뭔가 llvm 에서 직접 만든 clangd 보다는 손이 안 가지 않냐
어차피 ccls 개발자도 LLVM 메인테이너급이고, clangd 프로젝트 자체가 활발하게 개발되지 않는 거 같아서 ccls 씀
Ccls 요샌 우분투에서도 그냥 apt install로 깔 수 있음