Re: Neovim LSP with Linux Kernel

"Ricardo B. Marliere" <[email protected]>
Newsgroups org.kernelnewbies.kernelnewbies
Message-ID <youdglg7f4couinsptuyzwjspulqy5jyloesdj6mjow74bwscv@ppbdgwss2vrp>
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
[email protected]
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.