Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 691060 - dev-utils/ccls ebuild request
Summary: dev-utils/ccls ebuild request
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Default Assignee for New Packages
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-07-30 16:24 UTC by Anton Kochkov
Modified: 2020-02-05 06:57 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Anton Kochkov 2019-07-30 16:24:58 UTC
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}"
Comment 1 Larry the Git Cow gentoo-dev 2020-02-05 06:57:20 UTC
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(+)