ccls
https://github.com/MaskRay/ccls/wiki
ccls relies on a JSON compilation database specified as compile_commands.json or, for simpler projects, a compile_flags.txt. For details on how to automatically generate one using CMake look here.
Customization options are passed to ccls at initialization time via init_options, a list of available options can be found here. For example:
local lspconfig = require'lspconfig'
lspconfig.ccls.setup {
init_options = {
compilationDatabaseDirectory = "build";
index = {
threads = 0;
};
clang = {
excludeArgs = { "-frounding-math"} ;
};
}
}
Setup
require'lspconfig'.ccls.setup{}
Default values
cmd = { "ccls" }
filetypes = { "c", "cpp", "objc", "objcpp" }
root_dir = function(fname)
return util.root_pattern('compile_commands.json', 'compile_flags.txt', '.git')(fname) or util.path.dirname(fname)
end,