Commit graph

18 commits

Author SHA1 Message Date
Folke Lemaitre
23b9cdeb34
fix(lspconfig): remove all references to lspconfig. Closes #6426 2025-09-15 20:42:10 +02:00
Jinfeng Guo
167d39b2be
fix(clangd): rewrite the root_dir function (#6060)
## Description

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

Nvim 0.11 had some breaking changes in lsp related parts. And one of
them is that if the root_dir field of lsp config is a function, the
bufnr and a function would be passed instead of the file name in nvim
0.10. As a result, the configurations of extra.lang.clangd broke.

However, before the breaking changes of mason and mason-lspconfig, the
configurations of clangd still worked. So maybe what really broke the
configurations is mason-lspconfig, which uses a new way to enable lsp in
v2.

I rewrite the root_dir function and make it work both on 0.11 and 0.10.

It would check whether the first argument is a string to decide whether
to adapt the new interface.

To test whether it works, you can just add a plugin/clangd.lua to you
personal config with the content below:

```lua
return {
  "neovim/nvim-lspconfig",
  opts = {
    servers = {
      clangd = {
        root_dir = function(bufnr, ondir)
          local root_directory = function(fname)
            return require("lspconfig.util").root_pattern(
              "Makefile",
              "configure.ac",
              "configure.in",
              "config.h.in",
              "meson.build",
              "meson_options.txt",
              "build.ninja"
            )(fname) or require("lspconfig.util").root_pattern("compile_commands.json", "compile_flags.txt")(
              fname
            ) or require("lspconfig.util").find_git_ancestor(fname)
          end
          if type(bufnr) == "string" then
            return root_directory(bufnr)
          else
            local fname = vim.api.nvim_buf_get_name(bufnr)
            ondir(root_directory(fname))
          end
        end,
      },
    },
  },
}
```

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-09-15 17:19:23 +02:00
Folke Lemaitre
c20c402295
fix(mason): rename and pin to v1 2025-05-12 10:39:04 +02:00
iniw
c4b0d6d0d1
fix(clangd): avoid nil-indexing the completion sorting comparators (#5011)
## Description

This prevents the following popup appearing when opening nvim:

```
Failed to run `config` for nvim-cmp

.../lazy/LazyVim/lua/lazyvim/plugins/extras/lang/clangd.lua:108: attempt to index field 'sorting' (a nil value)

# stacktrace:
  - /LazyVim/lua/lazyvim/plugins/extras/lang/clangd.lua:108 _in_ **values**
  - ~/.config/nvim/lua/config/lazy.lua:17
  - ~/.config/nvim/init.lua:2
  
```

## Checklist

- [X] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-12 16:51:34 +01:00
Folke Lemaitre
94be6fb787
fix(clangd): nvim-cmp optional 2024-12-12 16:43:25 +01:00
Folke Lemaitre
a9a273d041
fix: fqn for nvim-cmp 2024-12-12 14:45:47 +01:00
Folke Lemaitre
a3547e4b3b
revert: "fix(dap): set host to 127.0.0.1 instead of localhost to prevent issues with ipv6. Fixes #3577"
This reverts commit 9b8a393edc.
2024-06-11 19:14:27 +02:00
Folke Lemaitre
9b8a393edc
fix(dap): set host to 127.0.0.1 instead of localhost to prevent issues with ipv6. Fixes #3577 2024-06-11 06:55:16 +02:00
Folke Lemaitre
ab41ff551b
refactor: use lazy's new opts_extend functionality for treesitter and mason 2024-06-07 09:03:59 +02:00
Folke Lemaitre
f8268faa7c
fix: cleanup unnecessary treesitter langs and mason lsp servers 2024-06-05 18:07:01 +02:00
Folke Lemaitre
a224ef2a73
fix(clangd): switch source/header is now leader-ch. Fixes #3363 2024-05-30 07:18:41 +02:00
Folke Lemaitre
c29213416b
feat(extras): added recommended detectors for all languages 2024-05-18 14:39:20 +02:00
XY Lin
3c04789ef1
fix(clangd): update the attribute name for process ID (#3047)
The attribute name for picked process id when attaching the debugger is `pid`, not `processId`
2024-05-14 22:37:27 +02:00
Folke Lemaitre
7a5dbeae75
feat: use LazyVim everywhere instead of require("lazyvim.util") 2024-03-22 09:15:09 +01:00
Amaan Qureshi
73dc5a503f
fix(clangd): update setup from upstream changes (#1308) 2023-08-29 17:57:09 +02:00
Luco Bellic
9264c54ae9
feat(clangd): remove CMakelists root_dir search (#1230)
Provide better handling of root_dir search for C++ project
using CMakelists.txt per folder
2023-07-26 21:44:47 +02:00
Amaan Qureshi
d71ebeab24
feat(clangd): better clangd root detection (#1165) 2023-07-21 22:35:02 +02:00
Amaan Qureshi
e5200e6358
feat(lang): add C/C++ support (#1025) 2023-07-03 15:48:51 +02:00