jacobdufault

cquery

A highly-scalable C/C++/Objective-C language server for multi-million line codebases, powered by libclang, implementing the LSP protocol with cross-references, completion, diagnostics, and semantic highlighting.

v20180302
Published at
Mar 2, 2018
2,360
Stars
6,031
Download
Synced at
Sep 29, 2026

Latest release

v20180302Mar 2, 2018, 07:18 AM
Downloads slow? Switch the source anytime above

README

Project Overview

cquery is a highly-scalable, low-latency language server for C/C++/Objective-C, tested and designed for large code bases like Chromium. It implements almost the entire language server protocol and provides some extra features.

Key Features

  • Code completion (with signature help and snippets)
  • Find definition/references
  • Call (caller/callee) hierarchy
  • Inheritance (base/derived) hierarchy
  • Symbol rename
  • Document symbols and workspace symbol search
  • Hover information
  • Diagnostics and code actions (clang FixIts)
  • Preprocessor skipped regions
  • #include auto-complete, undefined type include insertion, include quick-jump
  • Auto-implement functions without a definition
  • Semantic highlighting, including rainbow semantic highlighting

Target Audience

  • Developers working on large C/C++ codebases
  • Users of LSP-compatible editors (Emacs, Vim, VSCode, etc.)

Quick Start

  1. Visit the cquery wiki to get started
  2. Follow the installation and configuration instructions
  3. Configure your editor's LSP client to point to cquery

Core Advantages

  • Optimized for large codebases like Chromium
  • Accurate and fast semantic analysis without interrupting workflow
  • Almost complete LSP protocol implementation
  • MIT licensed

System Requirements

  • OS: Cross-platform
  • Architectures: x86_64, arm64
  • Additional Dependencies: libclang

Notes

  • This project is archived and no longer under development. Recommended replacements: clangd and ccls
  • High memory overhead — a full index of Chrome takes about 10GB of memory

Release history

Sort