2017-04-26 01:47:10 +00:00
[![Join the chat at https://gitter.im/cquery-project/Lobby ](https://badges.gitter.im/Join%20Chat.svg )](https://gitter.im/cquery-project/Lobby?utm_source=badge& utm_medium=badge& utm_campaign=pr-badge& utm_content=badge)
2018-03-17 17:04:12 +00:00
# cquery
2017-12-22 00:07:32 +00:00
cquery is a highly-scalable, low-latency language server for C/C++/Objective-C. It is tested
2017-06-14 07:08:25 +00:00
and designed for large code bases like
[Chromium ](https://chromium.googlesource.com/chromium/src/ ). cquery provides
accurate and fast semantic analysis without interrupting workflow.
2017-04-18 04:53:34 +00:00
2017-12-31 09:54:51 +00:00
![Demo ](https://ptpb.pw/GlSQ.png?raw=true )
2017-04-18 04:53:34 +00:00
2017-06-14 07:08:25 +00:00
cquery implements almost the entire language server protocol and provides
some extra features to boot:
2017-05-15 07:31:44 +00:00
* code completion (with both signature help and snippets)
2018-03-17 17:10:26 +00:00
* finding [definition ](src/messages/text_document_definition.cc )/[references](src/messages/text_document_references.cc)
* [call (caller/callee) hierarchy ](src/messages/cquery_call_hierarchy.cc ), [inheritance (base/derived) hierarchy ](src/messages/cquery_inheritance_hierarchy.cc ), [member hierarchy ](src/messages/cquery_member_hierarchy.cc )
* [symbol rename ](src/messages/text_document_rename.cc )
2018-03-17 17:04:12 +00:00
* [document symbols ](src/messages/text_document_document_symbol.cc ) and approximate search of [workspace symbol ](src/messages/workspace_symbol.cc )
* [hover information ](src/messages/text_document_hover.cc )
2017-05-10 06:13:56 +00:00
* diagnostics
2017-05-20 19:31:07 +00:00
* code actions (clang FixIts)
2018-03-17 17:04:12 +00:00
* preprocessor skipped regions
2017-06-14 07:08:25 +00:00
* #include auto-complete, undefined type include insertion, include quick-jump
(goto definition, document links)
2017-05-29 23:57:56 +00:00
* auto-implement functions without a definition
2018-01-10 08:01:31 +00:00
* semantic highlighting, including support for [rainbow semantic highlighting ](https://medium.com/@evnbr/coding-in-color-3a6db2743a1e )
2017-04-18 04:53:34 +00:00
2018-01-18 23:50:23 +00:00
# >>> [Getting started](https://github.com/jacobdufault/cquery/wiki/Getting-started) (CLICK HERE) <<<
2017-12-17 03:39:51 +00:00
2018-03-17 17:04:12 +00:00
< a href = "https://repology.org/metapackage/cquery" >
< img src = "https://repology.org/badge/vertical-allrepos/cquery.svg" alt = "Packaging status" align = "right" >
< / a >
2017-04-18 04:53:34 +00:00
# Limitations
cquery is able to respond to queries quickly because it caches a huge amount of
information. When a request comes in, cquery just looks it up in the cache
without running many computations. As a result, there's a large memory overhead.
For example, a full index of Chrome will take about 10gb of memory. If you
2017-04-18 05:18:46 +00:00
exclude v8, webkit, and third_party, it goes down to about 6.5gb.
2017-04-18 04:53:34 +00:00
# License
2017-04-18 04:57:16 +00:00
MIT