From d47d7c75421a452633553e6462058198fa869587 Mon Sep 17 00:00:00 2001 From: dish Date: Fri, 23 Jan 2026 19:17:31 -0500 Subject: [PATCH 1/6] languages/python: support zuban language server https://zubanls.com/ --- docs/manual/release-notes/rl-0.9.md | 3 ++- modules/plugins/languages/python.nix | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/docs/manual/release-notes/rl-0.9.md b/docs/manual/release-notes/rl-0.9.md index c38d2421..20aa1f84 100644 --- a/docs/manual/release-notes/rl-0.9.md +++ b/docs/manual/release-notes/rl-0.9.md @@ -132,7 +132,8 @@ - Added [sqruff](https://github.com/quarylabs/sqruff) support to `languages.sql` -- Added [Pyrefly](https://pyrefly.org/) support to `languages.python` +- Added [Pyrefly](https://pyrefly.org/) and [zuban](https://zubanls.com/) + support to `languages.python` - Added TOML support via {option}`languages.toml` and the [Tombi](https://tombi-toml.github.io/tombi/) language server, linter, and diff --git a/modules/plugins/languages/python.nix b/modules/plugins/languages/python.nix index 0fffbbcc..04d2554f 100644 --- a/modules/plugins/languages/python.nix +++ b/modules/plugins/languages/python.nix @@ -169,6 +169,22 @@ ".git" ]; }; + + zuban = { + enable = true; + cmd = [(getExe pkgs.zuban) "server"]; + filetypes = ["python"]; + root_markers = [ + "pyproject.toml" + "setup.py" + "setup.cfg" + "requirements.txt" + "Pipfile" + ".git" + "mypy.ini" + ".mypy.ini" + ]; + }; }; defaultFormat = ["black"]; From 1f8d994e07b669f5bf0a57b58668a66a2c0a6eef Mon Sep 17 00:00:00 2001 From: Snoweuph Date: Sat, 24 Jan 2026 09:48:45 +0100 Subject: [PATCH 2/6] language/lua: add `selene` for more diagnostics --- docs/manual/release-notes/rl-0.9.md | 5 +++++ modules/plugins/languages/lua.nix | 7 +++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/docs/manual/release-notes/rl-0.9.md b/docs/manual/release-notes/rl-0.9.md index c38d2421..085a2b47 100644 --- a/docs/manual/release-notes/rl-0.9.md +++ b/docs/manual/release-notes/rl-0.9.md @@ -144,3 +144,8 @@ [Machshev](https://github.com/machshev): - Added `ruff` and `ty` LSP support for Python under `programs.python`. + +[Snoweuph](https://github.com/snoweuph) + +- Added [Selenen](https://github.com/kampfkarren/selene) for more diagnostics in + `languages.lua`. diff --git a/modules/plugins/languages/lua.nix b/modules/plugins/languages/lua.nix index 276c9a6a..564fcece 100644 --- a/modules/plugins/languages/lua.nix +++ b/modules/plugins/languages/lua.nix @@ -9,7 +9,7 @@ inherit (lib.modules) mkIf mkMerge; inherit (lib.meta) getExe; inherit (lib.types) bool enum listOf; - inherit (lib.nvim.types) diagnostics mkGrammarOption deprecatedSingleOrListOf; + inherit (lib.nvim.types) diagnostics mkGrammarOption; inherit (lib.nvim.dag) entryBefore; inherit (lib.nvim.attrsets) mapListToAttrs; @@ -46,6 +46,9 @@ luacheck = { package = pkgs.luajitPackages.luacheck; }; + selene = { + package = pkgs.selene; + }; }; in { imports = [ @@ -79,7 +82,7 @@ in { description = "Enable Lua formatting"; }; type = mkOption { - type = deprecatedSingleOrListOf "vim.language.lua.format.type" (enum (attrNames formats)); + type = listOf (enum (attrNames formats)); default = defaultFormat; description = "Lua formatter to use"; }; From 95f6a5d7ecf1960231f19bb204116b40e23b2190 Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Mon, 26 Jan 2026 01:04:09 +0100 Subject: [PATCH 3/6] editorconfig: remove rule conflicting with deno fmt --- .editorconfig | 1 - 1 file changed, 1 deletion(-) diff --git a/.editorconfig b/.editorconfig index f316f5ab..1f39b72e 100644 --- a/.editorconfig +++ b/.editorconfig @@ -13,7 +13,6 @@ trim_trailing_whitespace = true indent_style = space indent_size = 2 trim_trailing_whitespace = false -max_line_length = 80 [*.{js,json,nix,yml,yaml,toml}] indent_style = space From f278a25b2004c7f109d07c32e3416badb6269279 Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Mon, 26 Jan 2026 01:09:04 +0100 Subject: [PATCH 4/6] doc: add textwidth modeline in release-note --- docs/manual/release-notes/rl-0.9.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/manual/release-notes/rl-0.9.md b/docs/manual/release-notes/rl-0.9.md index f512540c..04a6ba17 100644 --- a/docs/manual/release-notes/rl-0.9.md +++ b/docs/manual/release-notes/rl-0.9.md @@ -150,3 +150,5 @@ - Added [Selenen](https://github.com/kampfkarren/selene) for more diagnostics in `languages.lua`. + + From 7bc9581b30df2b26cc25368c2c359d96be14c125 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Tue, 27 Jan 2026 09:56:12 +0300 Subject: [PATCH 5/6] lib/lua: fully deprecate old helper functions Signed-off-by: NotAShelf Change-Id: Ibed08522c3a9472556a74b6e3290e1916a6a6964 --- lib/lua.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/lua.nix b/lib/lua.nix index bf879031..01c73612 100644 --- a/lib/lua.nix +++ b/lib/lua.nix @@ -49,4 +49,4 @@ in "expToLua" "listToLuaTable" "attrsetToLuaTable" - ] (name: lib.warn "${name} is deprecated use toLuaObject instead" toLuaObject) + ] (name: builtins.throw "${name} is deprecated use toLuaObject instead") From f66d077294acfc44ae0aa856918245fbc2e23662 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Tue, 27 Jan 2026 10:06:20 +0300 Subject: [PATCH 6/6] languages/rust: `expToLua` -> `toLuaObject` Signed-off-by: NotAShelf Change-Id: I9b40d9129f6f9bf7a4cbda97ef1c165d6a6a6964 --- modules/plugins/languages/rust.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/plugins/languages/rust.nix b/modules/plugins/languages/rust.nix index 3c49d271..015b2956 100644 --- a/modules/plugins/languages/rust.nix +++ b/modules/plugins/languages/rust.nix @@ -11,7 +11,7 @@ inherit (lib.lists) isList; inherit (lib.attrsets) attrNames; inherit (lib.types) bool package str listOf either enum int; - inherit (lib.nvim.lua) expToLua toLuaObject; + inherit (lib.nvim.lua) toLuaObject; inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.types) mkGrammarOption mkPluginSetupOption deprecatedSingleOrListOf; inherit (lib.nvim.dag) entryAfter entryAnywhere; @@ -169,7 +169,7 @@ in { server = { cmd = ${ if isList cfg.lsp.package - then expToLua cfg.lsp.package + then toLuaObject cfg.lsp.package else ''{"${cfg.lsp.package}/bin/rust-analyzer"}'' }, default_settings = {