On 23/09/19 09:45AM, Maciej Wieczór-Retman wrote: > Hi, > I'm using neovim for a long time now and I've been using ccls as the LSP > for anything in C. It's working very well with userspace programs (with > "bear -- make" to generate compile_commands.json) but it seems to take > up a lot of CPU power whenever I reboot and open any kernel code. > > The kernel provides it's own way to get compile_commands.json and I > understand that ccls needs a bit of time to index these thousands of > files. > > But does anyone know if there is a way to avoid indexing files so often? > Or maybe is there a better LSP for C? I couldn't really find anything > else and I'm running Arch Linux which suggests it's the recommended one > for C. Hey there Maciej! I've been using clangd with no problems, the indexing is expensive but after that it's a breeze. Are you cleaning your tree very often? (...) local lspconfig = require("lspconfig") local get_servers = require("mason-lspconfig").get_installed_servers for _, server_name in ipairs(get_servers()) do if server_name == "clangd" then local compile_commands = vim.fn.getcwd() .. "/compile_commands.json" if vim.fn.filereadable(compile_commands) == 1 then lspconfig[server_name].setup({ on_attach = LSPAttach, capabilities = LSPCapabilities, offset_encoding = "utf-16", }) end else lspconfig[server_name].setup({ on_attach = LSPAttach, capabilities = LSPCapabilities, offset_encoding = "utf-16", }) end end _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies