Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.
Sign upcquery vs ccls #15
Comments
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
MaskRay
May 15, 2018
Owner
Someone has asked this before :) and I left a brief note at MaskRay/emacs-ccls#1
I will leverage more clang and llvm C++ API. Windows has not been tested. I know that releases.llvm.org Windows bundled clang+llvm does not include C++ headers so if someone do intent to use ccls on Windows, they need to clone the clang+llvm sources (see the bottom of https://github.com/MaskRay/ccls/wiki/Build)
|
Someone has asked this before :) and I left a brief note at MaskRay/emacs-ccls#1 I will leverage more clang and llvm C++ API. Windows has not been tested. I know that releases.llvm.org Windows bundled clang+llvm does not include C++ headers so if someone do intent to use ccls on Windows, they need to clone the clang+llvm sources (see the bottom of https://github.com/MaskRay/ccls/wiki/Build) |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
innerout
commented
May 15, 2018
|
What about the emacs question? |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
MaskRay
May 15, 2018
Owner
There are not many differences, except for
;; ccls.el
(defcustom ccls-project-root-matchers
'(".ccls-root" projectile-project-root)
"List of matchers that are used to locate the ccls project roots.and I use uint64_t as primary key in the memory index of ccls, thus corresponding changes to ccls-*-hierarchy.el
|
There are not many differences, except for ;; ccls.el
(defcustom ccls-project-root-matchers
'(".ccls-root" projectile-project-root)
"List of matchers that are used to locate the ccls project roots.and I use |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
innerout
commented
May 15, 2018
|
Feature wise will you keep up with cquery or you will add your own features? |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
MaskRay
May 15, 2018
Owner
I heavily rely on a good C++ cross reference tool and clangd cannot meet my needs (I actually have a lot of complains to its index design). I'll certainly maintain this (at least for considerable amount of time)
In terms of features, the number of supported LSP features has been stable for some time.
cross references + hierarchies. There are no newer extensions after {$cquery,$ccls}/memberHierarchy. I of course keep an eye on cquery development and backport useful commits (like some cleanup) but I also object to many of its choices:
- heuristic deriving of system include path. I replaced the project.cc code with clangDriver which I would enhance in the future to detect paths like
/usr/include/usr/include/c++/v1 - AbsolutePath
- Complicated import pipeline. The index merge and pipeline is unnecessarily complicated to me and I don't like it when I first saw them. I managed to remove them in the past 2 weeks, and benefited from that (much simpler code, faster indexing, mitigated bugs that used to bother me when I saved the document)
- The large number of files under
src/. ccls has ~30 fewer files til now.
|
I heavily rely on a good C++ cross reference tool and clangd cannot meet my needs (I actually have a lot of complains to its index design). I'll certainly maintain this (at least for considerable amount of time) In terms of features, the number of supported LSP features has been stable for some time.
|
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
innerout
May 15, 2018
OK one last question. I am talking about emacs because cquery's master branch does not work with emacs-cquery plugin so if you change something you are the maintainer of the emacs-ccls and it will have instant support right?
It would be good to have a link to the other issue with the cquery vs ccls conversation and mine issue in readme so people can see it easier.
innerout
commented
May 15, 2018
|
OK one last question. I am talking about emacs because cquery's master branch does not work with emacs-cquery plugin so if you change something you are the maintainer of the emacs-ccls and it will have instant support right? |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
MaskRay
May 15, 2018
Owner
I use emacs-ccls so I have to maintain it.
The original author of cquery uses vscode thus its emacs plugin needs people to help.
(Having too many users is also a somewhat annoying thing to me.. I do like my work appreciated by users, but honestly nowadays cquery has too many inconsiderable issues from users)
Both projects are evolving, making a careful comparison may be disrespectful so I am not sure if it is the right decision to put a link there.
|
I use emacs-ccls so I have to maintain it. Both projects are evolving, making a careful comparison may be disrespectful so I am not sure if it is the right decision to put a link there. |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
innerout
commented
May 15, 2018
|
OK thanks i am closing the issue you answered everything i wanted to know. |
innerout
closed this
May 15, 2018
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
MaskRay
Jun 20, 2018
Owner
scturtle uploaded #9 (comment)
vscode-cquery does not support memberHierarchy which I use a lot. I also find it unnecessary to have so many customized variables for semantic highlighting cquery.highlighting.enabled.memberFunctions
|
scturtle uploaded #9 (comment)
|
innerout commentedMay 15, 2018
•
edited
First of all congratulations for the great work on cquery and ccls.
I would like to ask what are the advantages of using ccls over cquery except the ones in Readme.
For example in the longterm?
Also i would like to ask if there will be better support in the emacs plugin for ccls compared to cquery?