diff --git a/Home.md b/Home.md index af1358e..8012545 100644 --- a/Home.md +++ b/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.