plugins.lsp.servers.ccls.initOptions.clang.excludeArgs

Excluded arguments for compile_commands.json entries.

If your compiler is not Clang and it supports arguments which Clang doesn’t understand, then you can remove those arguments when indexing.

Example: ["-frounding-math"]

Type: null or (list of (string or raw lua code))

Default: null

Plugin default: [ ]

Declared by:

plugins.lsp.servers.ccls.initOptions.clang.extraArgs

Additional arguments for compile_commands.json entries.

Example: ["-frounding-math"]

Type: null or (list of (string or raw lua code))

Default: null

Plugin default: [ ]

Declared by:

plugins.lsp.servers.ccls.initOptions.clang.pathMappings

A list of src>dest path conversions used to remap the paths of files in the project. This can be used to move a project to a new location without re-indexing.

If cache files were built with project root /tmp/remote/proj, and you want to reuse them with a different project root /tmp/host/proj then copy the cache:

rsync -a /tmp/ccls/@tmp@remote@proj/ /tmp/ccls/@tmp@host@proj/ # files under project root
rsync -a /tmp/ccls/@@tmp@remote@proj/ /tmp/ccls/@@tmp@host@proj/ # files outside of project root

Then set this option to ["/remote/>/host/"].

When ccls indexes /tmp/host/proj/a.cc, the cache file /tmp/ccls/@tmp@remote@proj/a.cc.blob will be reused. When a.cc is saved (re-indexed), the newly generated a.cc.blob will not contain /tmp/remote paths any more.

Type: null or (list of (string or raw lua code))

Default: null

Plugin default: [ ]

Declared by:

plugins.lsp.servers.ccls.initOptions.clang.resourceDir

The clang resource directory (something like .../lib/clang/9.0.0) is hard-coded into ccls at compile time. You should be able to find <resourceDir>/include/stddef.h. Set this option to a non-empty string to override the hard-coded value.

Use the path provided as the Clang resource directory rather the default.

Type: null or string or raw lua code

Default: null

Plugin default: ""

Declared by: