Skip to content

Commit 23f994f

Browse files
snoweuphhorriblename
authored andcommitted
languages/lua: move lazdev from lsp namespace to extensions and allow configuring it
1 parent c943050 commit 23f994f

3 files changed

Lines changed: 29 additions & 17 deletions

File tree

docs/manual/release-notes/rl-26.12.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,13 @@
1818
into one module, because it creates scenarios where tools are connected to non
1919
supported filetypes.
2020

21-
- `languages/lua`: only enable treesitter support if the module itself is enabled.
21+
- `languages/lua`: only enable treesitter support if the module itself is
22+
enabled.
23+
24+
- `languages/lua`: allow configuring lazydev and move it to the modules
25+
`extensions` namespace. In this process the default options where also
26+
removed, falling back to lazydevs own defaults. This was done, due to the old
27+
defaults being extremely weird and what most people would never want.
2228

2329
## Changelog {#sec-release-26-12-changelog}
2430

modules/extra/deprecations.nix

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,5 +72,10 @@ in {
7272
(mkRenamedOptionModule ["vim" "languages" "json" "treesitter" "json5Package"] ["vim" "languages" "json5" "treesitter" "package"])
7373
(mkRenamedOptionModule ["vim" "languages" "json" "treesitter" "jsonPackage"] ["vim" "languages" "json" "treesitter" "package"])
7474
]
75+
76+
# 2026-08-07
77+
[
78+
(mkRenamedOptionModule ["vim" "languages" "lua" "lsp" "lazydev" "enable"] ["vim" "languages" "lua" "extensions" "lazydev" "enable"])
79+
]
7580
];
7681
}

modules/plugins/languages/lua.nix

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@
88
inherit (lib.modules) mkIf mkMerge;
99
inherit (lib) genAttrs;
1010
inherit (lib.types) enum listOf;
11-
inherit (lib.nvim.types) mkGrammarOption;
12-
inherit (lib.nvim.dag) entryBefore;
11+
inherit (lib.nvim.types) mkGrammarOption mkPluginSetupOption;
1312

1413
cfg = config.vim.languages.lua;
1514

@@ -52,8 +51,6 @@ in {
5251
default = defaultServers;
5352
description = "Lua LSP server to use";
5453
};
55-
56-
lazydev.enable = mkEnableOption "lazydev.nvim integration, useful for neovim plugin developers";
5754
};
5855

5956
format = {
@@ -83,6 +80,13 @@ in {
8380
description = "extra Lua diagnostics providers";
8481
};
8582
};
83+
84+
extensions = {
85+
lazydev = {
86+
enable = mkEnableOption "lazydev.nvim integration, useful for neovim plugin developers";
87+
setupOpts = mkPluginSetupOption "lazydev" {};
88+
};
89+
};
8690
};
8791

8892
config = mkIf cfg.enable (mkMerge [
@@ -100,18 +104,6 @@ in {
100104
};
101105
})
102106

103-
(mkIf cfg.lsp.lazydev.enable {
104-
vim.startPlugins = ["lazydev-nvim"];
105-
vim.pluginRC.lazydev = entryBefore ["lsp-servers"] ''
106-
require("lazydev").setup({
107-
enabled = function(root_dir)
108-
return not vim.uv.fs_stat(root_dir .. "/.luarc.json")
109-
end,
110-
library = { { path = "''${3rd}/luv/library", words = { "vim%.uv" } } },
111-
})
112-
'';
113-
})
114-
115107
(mkIf cfg.format.enable {
116108
vim.formatter.conform-nvim = {
117109
enable = true;
@@ -129,5 +121,14 @@ in {
129121
};
130122
};
131123
})
124+
125+
(mkIf cfg.extensions.lazydev.enable {
126+
vim.lazy.plugins.lazydev = {
127+
package = "lazydev-nvim";
128+
setupModule = "lazydev";
129+
ft = "lua";
130+
inherit (cfg.extensions.lazydev) setupOpts;
131+
};
132+
})
132133
]);
133134
}

0 commit comments

Comments
 (0)