diff --git a/plugins/by-name/clangd-extensions/default.nix b/plugins/by-name/clangd-extensions/default.nix index c2f10db9..7ff47823 100644 --- a/plugins/by-name/clangd-extensions/default.nix +++ b/plugins/by-name/clangd-extensions/default.nix @@ -76,18 +76,27 @@ lib.nixvim.plugins.mkNeovimPlugin { extraConfig = cfg: { warnings = lib.nixvim.mkWarnings "plugins.clangd-extensions" { - when = !config.plugins.lsp.enable; + when = !(config.plugins.lsp.enable || config.lsp.servers.clangd.enable); message = '' - You have enabled `clangd-extensions` but not the lsp (`plugins.lsp`). - You should set `plugins.lsp.enable = true` to make use of the clangd-extensions' features. + You have enabled `clangd-extensions` but not the lsp (`plugins.lsp` or `lsp.servers.clangd`). + You should set `plugins.lsp.enable = true` or `lsp.servers.clangd.enable = true` to make use of the clangd-extensions' features. ''; }; + lsp = { + servers.clangd = { + settings = lib.mkIf cfg.enableOffsetEncodingWorkaround { + capabilities = { + offsetEncoding = [ "utf-16" ]; + }; + }; + }; + }; + plugins.lsp = { servers.clangd = { enable = lib.mkDefault true; - extraOptions = lib.mkIf cfg.enableOffsetEncodingWorkaround { capabilities.__raw = '' vim.tbl_deep_extend( diff --git a/tests/test-sources/plugins/by-name/clangd-extensions/default.nix b/tests/test-sources/plugins/by-name/clangd-extensions/default.nix index e3c3863f..ce4e4fd3 100644 --- a/tests/test-sources/plugins/by-name/clangd-extensions/default.nix +++ b/tests/test-sources/plugins/by-name/clangd-extensions/default.nix @@ -1,15 +1,16 @@ { empty = { + lsp.servers.clangd.enable = true; + plugins = { - lsp.enable = true; clangd-extensions.enable = true; }; }; default = { - plugins = { - lsp.enable = true; + lsp.servers.clangd.enable = true; + plugins = { clangd-extensions = { enable = true; @@ -50,8 +51,9 @@ }; example = { + lsp.servers.clangd.enable = true; + plugins = { - lsp.enable = true; clangd-extensions = { enable = true; @@ -70,4 +72,11 @@ }; }; }; + + emptyOld = { + plugins = { + lsp.enable = true; + clangd-extensions.enable = true; + }; + }; }