Re: Neovim LSP with Linux Kernel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]

  Powered by Linux