ccls, which originates from cquery, is a C/C++/Objective-C language server. code completion (with both signature help and snippets) definition/references, and other cross references cross reference extensions: $ccls/call $ccls/inheritance $ccls/member $ccls/vars ... formatting hierarchies: call (caller/callee) hierarchy, inheritance (base/derived) hierarchy, member hierarchy symbol rename document symbols and approximate search of workspace symbol hover information diagnostics and code actions (clang FixIts) semantic highlighting and preprocessor skipped regions semantic navigation: $ccls/navigate It has a global view of the code base and support a lot of cross reference features, see wiki/FAQ. It starts indexing the whole project (including subprojects if exist) parallelly when you open the first file, while the main thread can serve requests before the indexing is complete. Saving files will incrementally update the index. Compared with cquery, it makes use of C++17 features, has less third-party dependencies and slimmed-down code base. It leverages Clang C++ API as clangd does, which provides better support for code completion and diagnostics. Refactoring is a non-goal as it can be provided by clang-include-fixer and other Clang based tools. GitHub repository: https://github.com/MaskRay/ccls Building process: https://github.com/MaskRay/ccls/wiki/Build There are ebuilds for it already it seems: https://gpo.zugaina.org/dev-util/ccls # Copyright 2019-2019 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 or later EAPI=6 if [[ ${PV} == *9999 ]] ; then SCM="git-r3" EGIT_REPO_URI="https://github.com/MaskRay/${PN}" fi CMAKE_MIN_VERSION=3.8.0 inherit cmake-utils ${SCM} DESCRIPTION="C/C++/ObjC language server protocol implementation" HOMEPAGE="https://github.com/MaskRay/ccls" if [[ ${PV} == *9999 ]] ; then SRC_URI="" KEYWORDS="" else SRC_URI="https://github.com/MaskRay/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" KEYWORDS="~amd64 ~x86" fi LICENSE="Apache-2.0" SLOT="0" IUSE="" REQUIRED_USE="" RDEPEND=" sys-devel/llvm sys-devel/clang sys-libs/ncurses " DEPEND="${RDEPEND}"
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f9b14ac2791c1f8e68c5b750bc294e022f3465e3 commit f9b14ac2791c1f8e68c5b750bc294e022f3465e3 Author: Matt Turner <mattst88@gentoo.org> AuthorDate: 2020-02-04 19:32:20 +0000 Commit: Matt Turner <mattst88@gentoo.org> CommitDate: 2020-02-05 06:56:26 +0000 dev-util/ccls: Add new package Closes: https://bugs.gentoo.org/691060 Signed-off-by: Matt Turner <mattst88@gentoo.org> dev-util/ccls/Manifest | 1 + dev-util/ccls/ccls-0.20190823.5.ebuild | 40 ++++++++++++++++++++++++++++++++++ dev-util/ccls/ccls-9999.ebuild | 40 ++++++++++++++++++++++++++++++++++ dev-util/ccls/metadata.xml | 11 ++++++++++ 4 files changed, 92 insertions(+)