|
![](https://seccdn.libravatar.org/avatar/dcfe7af74d8d03d1a0ebd18962b3b8f18e13cfb21df46c214faa00e234336c40?s=16&d=retro) |
0547cef |
# ccls
|
|
![](https://seccdn.libravatar.org/avatar/dcfe7af74d8d03d1a0ebd18962b3b8f18e13cfb21df46c214faa00e234336c40?s=16&d=retro) |
0547cef |
|
|
![](https://seccdn.libravatar.org/avatar/4399a8a0495a76fb333484e49e3e8585ac91bcfee3c1c29c2ff21722548b7f6a?s=16&d=retro) |
1a51c06 |
ccls, which originates from [cquery](https://github.com/cquery-project/cquery), is a C/C++/Objective-C language server.
|
|
![](https://seccdn.libravatar.org/avatar/4399a8a0495a76fb333484e49e3e8585ac91bcfee3c1c29c2ff21722548b7f6a?s=16&d=retro) |
1a51c06 |
|
|
![](https://seccdn.libravatar.org/avatar/4399a8a0495a76fb333484e49e3e8585ac91bcfee3c1c29c2ff21722548b7f6a?s=16&d=retro) |
1a51c06 |
* code completion (with both signature help and snippets)
|
|
![](https://seccdn.libravatar.org/avatar/4399a8a0495a76fb333484e49e3e8585ac91bcfee3c1c29c2ff21722548b7f6a?s=16&d=retro) |
1a51c06 |
* [definition](src/messages/textDocument_definition.cc)/[references](src/messages/textDocument_references.cc), and other cross references
|
|
![](https://seccdn.libravatar.org/avatar/4399a8a0495a76fb333484e49e3e8585ac91bcfee3c1c29c2ff21722548b7f6a?s=16&d=retro) |
1a51c06 |
* cross reference extensions: `$ccls/call` `$ccls/inheritance` `$ccls/member` `$ccls/vars` ...
|
|
![](https://seccdn.libravatar.org/avatar/4399a8a0495a76fb333484e49e3e8585ac91bcfee3c1c29c2ff21722548b7f6a?s=16&d=retro) |
1a51c06 |
* formatting
|
|
![](https://seccdn.libravatar.org/avatar/4399a8a0495a76fb333484e49e3e8585ac91bcfee3c1c29c2ff21722548b7f6a?s=16&d=retro) |
1a51c06 |
* hierarchies: [call (caller/callee) hierarchy](src/messages/ccls_call.cc), [inheritance (base/derived) hierarchy](src/messages/ccls_inheritance.cc), [member hierarchy](src/messages/ccls_member.cc)
|
|
![](https://seccdn.libravatar.org/avatar/4399a8a0495a76fb333484e49e3e8585ac91bcfee3c1c29c2ff21722548b7f6a?s=16&d=retro) |
1a51c06 |
* [symbol rename](src/messages/textDocument_rename.cc)
|
|
![](https://seccdn.libravatar.org/avatar/4399a8a0495a76fb333484e49e3e8585ac91bcfee3c1c29c2ff21722548b7f6a?s=16&d=retro) |
1a51c06 |
* [document symbols](src/messages/textDocument_documentSymbol.cc) and approximate search of [workspace symbol](src/messages/workspace_symbol.cc)
|
|
![](https://seccdn.libravatar.org/avatar/4399a8a0495a76fb333484e49e3e8585ac91bcfee3c1c29c2ff21722548b7f6a?s=16&d=retro) |
1a51c06 |
* [hover information](src/messages/textDocument_hover.cc)
|
|
![](https://seccdn.libravatar.org/avatar/4399a8a0495a76fb333484e49e3e8585ac91bcfee3c1c29c2ff21722548b7f6a?s=16&d=retro) |
1a51c06 |
* diagnostics and code actions (clang FixIts)
|
|
![](https://seccdn.libravatar.org/avatar/4399a8a0495a76fb333484e49e3e8585ac91bcfee3c1c29c2ff21722548b7f6a?s=16&d=retro) |
1a51c06 |
* semantic highlighting and preprocessor skipped regions
|
|
![](https://seccdn.libravatar.org/avatar/4399a8a0495a76fb333484e49e3e8585ac91bcfee3c1c29c2ff21722548b7f6a?s=16&d=retro) |
1a51c06 |
* semantic navigation: `$ccls/navigate`
|