Re: Neovim LSP with Linux Kernel

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

 



On 2023-09-19 at 06:24:24 -0300, Ricardo B. Marliere wrote:
>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?

Yes, quite often lately. Does it affect the indexing? I'll try using
output directory for .o files and binaries and I'll clean that less, maybe
that will help. Thanks.

>(...)
>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
>

I see you're using mason-lspconfig. Is the default nvim-lspconfig worse
somehow? I picked it because it seemed pretty simple and I wanted to
start with something straight forward but maybe mason handles some stuff
better?

-- 
Kind regards
Maciej Wieczór-Retman

_______________________________________________
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