Rework the Wiki home page

Paul Smith 2019-01-01 10:55:36 -05:00 committed by Fangrui Song
parent 57d1c06d8e
commit 97479b1e69

39
Home.md

@ -1,19 +1,40 @@
## >>>> [[Getting started]] (CLICK HERE) <<<<
**ccls** is a stand-alone server implementing the [Language Server
Protocol](https://langserver.org/) for C, C++, and Objective-C languages. It
can be used with [any editor](Editor-Configuration.md) which provides an LSP
client implementation. It originates from [cquery](https://github.com/cquery-project/cquery).
The language client (editor plugin) opens an instance of **ccls** for each
project. **ccls** runs in the background, indexing the source code in the
project and responding to requests from editors.
**ccls** uses the Clang+LLVM `libLLVM` library to parse your source code, so
it will recognize all language features supported by Clang.
## [[Build]]
For more build instructions. And how to build on Windows, FreeBSD, OpenIndiana!
First you must build **ccls**. You may (optionally) install it.
## [[compile_commands.json]]
## [[Editor Configuration]]
To tell ccls how to find the source tree in your project, you may create either `.ccls` or `compile_commands.json` in your project root. `.ccls` is easy and useful for simple projects. `compile_commands.json` allows for explicit specification of compilation command line for each source file.
Next you must configure your editor to use **ccls**.
## Editor configuration
## [[Project Setup]]
You need to set up a language client for your editor to use definition/reference/hover/... and for some advanced ccls features some extension is needed.
Finally you must set up your project for use with **ccls**.
## [[Initialization options]]
## [[Customization]]
Customization of ccls, e.g. indexing comments, using msgpack for cache files.
You may wish to customize the way **ccls** indexes your project, for
completeness and/or performance (especially for large projects).
Some tips for [[Debugging]]
## [[Debugging]]
If you need to debug issues with **ccls** these tips can help.
## [[FAQ]]
Some answers to frequently-asked questions.
## [[LSP]]
Notes about the Language Server Protocol.