---
name: "clangd-15"
section: "1"
platform: "linux"
package: "clangd-15"
version: "1:15.0.6-4+b1"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/clangd-15"
---

# clangd-15(1)

manual page for clangd 15

## NAME

clangd - manual page for clangd 15

## DESCRIPTION

OVERVIEW: clangd is a language server that provides IDE-like features to editors.

### It should be used via an editor plugin rather than invoked directly. For more information, see:

-

  https://clangd.llvm.org/ https://microsoft.github.io/language-server-protocol/

clangd accepts flags on the commandline, and in the CLANGD\_FLAGS environment variable.

USAGE: clangd \[options\]

OPTIONS:

Generic Options:

**--help**                              - Display available options (**--help-hidden** for more)

**--help-list**                         - Display list of available options (**--help-list-hidden** for more)

**--version**                           - Display the version of this program

clangd compilation flags options:

**--compile-commands-dir=**\<string\>     - Specify a path to look for compile\_commands.json. If path is invalid, clangd will look in the current directory and parent paths of each source file

**--query-driver=**\<string\>             - Comma separated list of globs for white-listing gcc-compatible drivers that are safe to execute. Drivers matching any of these globs will be used to extract system includes. e.g. /usr/bin/\*\*/clang-\*,/path/to/repo/\*\*/g++-\*

clangd feature options:

**--all-scopes-completion**             - If set to true, code completion will include index symbols that are not defined in the scopes (e.g. namespaces) visible from the code completion point. Such completions can insert scope qualifiers

**--background-index**                  - Index project code in the background and persist index on disk.

**--background-index-priority=**\<value\> - Thread priority for building the background index. The effect of this flag is OS-specific.

- \=background

  \-   Minimum priority, runs on idle CPUs. May leave 'performance' cores unused.

- \=low

  \-   Reduced priority compared to interactive work.

- \=normal

  \-   Same priority as other clangd work.

**--clang-tidy**                        - Enable clang-tidy diagnostics

**--completion-style=**\<value\>          - Granularity of code completion suggestions

- \=detailed

  \-   One completion item for each semantically distinct completion, with full type information

- \=bundled

  \-   Similar completion items (e.g. function overloads) are combined. Type information shown where possible

**--fallback-style=**\<string\>           - clang-format style to apply by default when no .clang-format file is found

**--function-arg-placeholders**         - When disabled, completions contain only parentheses for function calls. When enabled, completions also contain placeholders for method parameters

**--header-insertion=**\<value\>          - Add #include directives when accepting code completions

- \=iwyu

  \-   Include what you use. Insert the owning header for top-level symbols, unless the header is already directly included or the symbol is forward-declared

- \=never

  \-   Never insert #include directives as part of code completion

**--header-insertion-decorators**       - Prepend a circular dot or space before the completion label, depending on whether an include line will be inserted or not

**--limit-references=**\<int\>            - Limit the number of references returned by clangd. 0 means no limit (default=1000)

**--limit-results=**\<int\>               - Limit the number of results returned by clangd. 0 means no limit (default=100)

**--project-root=**\<string\>             - Path to the project root. Requires remote-index-address to be set.

**--remote-index-address=**\<string\>     - Address of the remote index server

clangd miscellaneous options:

**--check\[=**\<string\>\]                    - Parse one file in isolation instead of acting as a language server. Useful to investigate/reproduce crashes or configuration problems. With **--check=**\<filename\>, attempts to parse a particular file.

**--check-lines\[=**\<string\>\]              - If specified, limits the range of tokens in **-check** file on which various features are tested. Example **--check-lines**=*3-7* restricts testing to lines 3 to 7 (inclusive) or **--check-lines**=*5* to restrict to one line. Default is testing entire file.

- **--enable-config** - Read user and project configuration from YAML files.

  Project config is from a .clangd file in the project directory. User config is from clangd/config.yaml in the following directories:

- Windows: %USERPROFILE%\\AppData\\Local

  Mac OS: ~/Library/Preferences/ Others: $XDG\_CONFIG\_HOME, usually ~/.config

-

  Configuration is documented at https://clangd.llvm.org/config.html

**-j** \<uint\>                           - Number of async workers used by clangd. Background index also uses this many workers.

**--malloc-trim**                       - Release memory periodically via [malloc\_trim(3)](/malloc_trim/3.md).

**--pch-storage=**\<value\>               - Storing PCHs in memory increases memory usages, but may improve performance

- \=disk

  \-   store PCHs on disk

- \=memory

  \-   store PCHs in memory

clangd protocol and logging options:

**--log=**\<value\>                       - Verbosity of log messages written to stderr

- \=error

  \-   Error messages only

- \=info

  \-   High level execution tracing

- \=verbose

  \-   Low level details

**--offset-encoding=**\<value\>           - Force the offsetEncoding used for character positions. This bypasses negotiation via client capabilities

- \=utf-8

  \-   Offsets are in UTF-8 bytes

- \=utf-16

  \-   Offsets are in UTF-16 code units

- \=utf-32

  \-   Offsets are in unicode codepoints

**--path-mappings=**\<string\>            - Translates between client paths (as seen by a remote editor) and server paths (where clangd sees files on disk). Comma separated list of '\<client\_path\>=\<server\_path\>' pairs, the first entry matching a given path is used. e.g. /home/project/incl=/opt/include,/home/project=/workarea/project

**--pretty**                            - Pretty-print JSON output
