diff --git a/clang-tools-extra/docs/clangd/Installation.rst b/clang-tools-extra/docs/clangd/Installation.rst --- a/clang-tools-extra/docs/clangd/Installation.rst +++ b/clang-tools-extra/docs/clangd/Installation.rst @@ -352,20 +352,28 @@ Creating this file by hand is a reasonable place to start if your project is quite simple. -Project-wide Index -================== +Background Indexing +=================== -By default clangd only has a view on symbols coming from files you are -currently editing. You can extend this view to whole project by providing a -project-wide index to clangd. There are two ways to do this. +clangd builds an incremental index of your project (all files listed in the +compilation database). The index improves code navigation features (go-to-definition, +find-references) and code completion. -- Pass an experimental `-background-index` command line argument. With - this feature enabled, clangd incrementally builds an index of projects - that you work on and uses the just-built index automatically. +- the index is saved to the ``.clangd/index`` in the project root; +- clangd only uses idle cores to build the index, you can limit the total + amount of cores by passing the `-j=` flag; +- background indexing can be disabled by the ``--background-index=false`` flag; + if it is disabled, clangd doesn't have a global view of the whole project, it + only has a view on symbols coming from files you are currently editing; -- Generate an index file using `clangd-indexer +Build Index Manually +==================== + +**DISCLAMER: This is mainly for clangd developers.** + +There is a `clangd-indexer `__ - Then you can pass generated index file to clangd using - `-index-file=/path/to/index_file`. *Note that clangd-indexer isn't +which generates an index file for your project. To use the index, pass the flag +`-index=file=/path/to/index_file` to clangd. *Note that clangd-indexer isn't included alongside clangd in the Debian clang-tools package. You will likely have to build it from source to use this option.*