Doug Schaefer來光顧了,他是Project Lead of Eclipse CDT。如果他滿意,並且他在 EclipseCon Europe 2018有宣講的話,也許能讓他提到ccls (盡力而爲)……感覺他可能在Windows鏈接clang/llvm C++有困難。確實,Windows上cquery好用很多,理由是Windows releases.llvm.org有libclang所需的header和library,而Clang C++ headers是缺的。如果有人願意折騰下msys2 clang+llvm構建ccls,貢獻一下wiki (publicly editable)我會感激~~
0.20180812 之后在无法在 el capitan (macOS 10.11) 下编译通过了:
Last 15 lines from ~/Library/Logs/Homebrew/ccls/02.cmake:
[ 41%] Building CXX object CMakeFiles/ccls.dir/src/query.cc.o
/usr/local/opt/llvm/bin/clang++ -DDEFAULT_RESOURCE_DIRECTORY="R\"(/usr/local/Cellar/llvm/7.0.0/lib/clang/7.0.0)\"" -I/tmp/ccls-20180922-8715-19vn0sx/src -isystem /tmp/ccls-20180922-8715-19vn0sx/third_party -isystem /tmp/ccls-20180922-8715-19vn0sx/third_party/rapidjson/include -isystem /usr/local/opt/llvm/include -DNDEBUG -fno-rtti -Wall -Wno-sign-compare -std=c++17 -o CMakeFiles/ccls.dir/src/query.cc.o -c /tmp/ccls-20180922-8715-19vn0sx/src/query.cc
/tmp/ccls-20180922-8715-19vn0sx/src/pipeline.cc:104:6: error: 'shared_mutex' is unavailable: introduced in macOS 10.12
std::shared_mutex g_index_mutex;
^
/usr/local/Cellar/llvm/7.0.0/include/c++/v1/shared_mutex:178:58: note: 'shared_mutex' has been explicitly marked unavailable here
class _LIBCPP_TYPE_VIS _LIBCPP_AVAILABILITY_SHARED_MUTEX shared_mutex
^
[ 43%] Building CXX object CMakeFiles/ccls.dir/src/serializer.cc.o
/usr/local/opt/llvm/bin/clang++ -DDEFAULT_RESOURCE_DIRECTORY="R\"(/usr/local/Cellar/llvm/7.0.0/lib/clang/7.0.0)\"" -I/tmp/ccls-20180922-8715-19vn0sx/src -isystem /tmp/ccls-20180922-8715-19vn0sx/third_party -isystem /tmp/ccls-20180922-8715-19vn0sx/third_party/rapidjson/include -isystem /usr/local/opt/llvm/include -DNDEBUG -fno-rtti -Wall -Wno-sign-compare -std=c++17 -o CMakeFiles/ccls.dir/src/serializer.cc.o -c /tmp/ccls-20180922-8715-19vn0sx/src/serializer.cc
1 error generated.
make[2]: *** [CMakeFiles/ccls.dir/src/pipeline.cc.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/ccls.dir/all] Error 2
make: *** [all] Error 2
Do not report this issue to Homebrew/brew or Homebrew/core!
Error: You are using macOS 10.11.
We (and Apple) do not provide support for this old version.
You will encounter build failures and other breakages.
Please create pull-requests instead of asking for help on Homebrew's
GitHub, Discourse, Twitter or IRC. As you are running this old version,
you are responsible for resolving any issues you experience.
struct Diagnostics {
// Like index.{whitelist,blacklist}, don't publish diagnostics to
// blacklisted files.
std::vector<std::string> blacklist;
// Time to wait before computing diagnostics for textDocument/didChange.
// -1: disable diagnostics on change
// 0: immediately
// positive (e.g. 500): wait for 500 milliseconds. didChange requests in
// this period of time will only cause one computation.
int onChange = 1000;
// Time to wait before computing diagnostics for textDocument/didOpen.
int onOpen = 0;
// Time to wait before computing diagnostics for textDocument/didSave.
int onSave = 0;
bool spellChecking = true;
std::vector<std::string> whitelist;
} diagnostics;