emacs-cquery is a client for cquery, a low-latency language server supporting multi-million line C++ code-bases, powered by libclang.
It leverages lsp-mode, but also provides some cquery extensions to LSP:
- semantic highlighting
- inactive region (e.g. a
#if false
region) - cross references:
$cquery/base
$cquery/callers
$cquery/derived
$cquery/vars
More on https://github.com/cquery-project/cquery/wiki/Emacs
(require 'cquery)
(setq cquery-executable "/path/to/cquery/build/release/bin/cquery")
;; (setq cquery-executable "/path/to/cquery-install-prefix/bin/cquery")
To enable comments and use Message Pack for cache files (which are stored in cacheDirectory
):
(setq cquery-extra-init-params '(:index (:comments 2) :cacheFormat "msgpack"))
Refer to https://github.com/jacobdufault/cquery/wiki/Emacs for details.
$cquery/callHierarchy
(caller hierarchy and callee hierarchy)