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 diff --git a/docs/manual/release-notes/rl-0.9.md b/docs/manual/release-notes/rl-0.9.md index 680572fd..704a8f7c 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 @@ -150,5 +151,12 @@ [fish-lsp]: https://www.fish-lsp.dev/ [fish_indent]: https://fishshell.com/docs/current/cmds/fish_indent.html -- Add Fish support via {option}`languages.fish` using [fish-lsp] and +- Added Fish support via {option}`languages.fish` using [fish-lsp] and [fish_indent]. + +[Snoweuph](https://github.com/snoweuph) + +- Added [Selenen](https://github.com/kampfkarren/selene) for more diagnostics in + `languages.lua`. + + 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") diff --git a/modules/plugins/languages/fish.nix b/modules/plugins/languages/fish.nix index 7c086637..7c5dec6a 100644 --- a/modules/plugins/languages/fish.nix +++ b/modules/plugins/languages/fish.nix @@ -3,7 +3,8 @@ pkgs, lib, ... -}: let +}: +let inherit (builtins) attrNames; inherit (lib.meta) getExe; inherit (lib.options) mkEnableOption mkOption; @@ -14,32 +15,43 @@ cfg = config.vim.languages.fish; - defaultServers = ["fish-lsp"]; + defaultServers = [ "fish-lsp" ]; servers = { fish-lsp = { - cmd = [(getExe pkgs.fish-lsp) "start"]; - filetypes = ["fish"]; - root_markers = ["config.fish" ".git"]; + cmd = [ + (getExe pkgs.fish-lsp) + "start" + ]; + filetypes = [ "fish" ]; + root_markers = [ + "config.fish" + ".git" + ]; }; }; - defaultFormat = ["fish_indent"]; + defaultFormat = [ "fish_indent" ]; formats = { fish_indent = { package = pkgs.fish; config.command = "${cfg.format.package}/bin/fish_indent"; }; }; -in { +in +{ options.vim.languages.fish = { enable = mkEnableOption "Fish language support"; treesitter = { - enable = mkEnableOption "Fish treesitter support" // {default = config.vim.languages.enableTreesitter;}; + enable = mkEnableOption "Fish treesitter support" // { + default = config.vim.languages.enableTreesitter; + }; package = mkGrammarOption pkgs "fish"; }; lsp = { - enable = mkEnableOption "Fish LSP support" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "Fish LSP support" // { + default = config.vim.lsp.enable; + }; servers = mkOption { type = listOf (enum (attrNames servers)); default = defaultServers; @@ -48,7 +60,9 @@ in { }; format = { - enable = mkEnableOption "Fish formatting" // {default = config.vim.languages.enableFormat;}; + enable = mkEnableOption "Fish formatting" // { + default = config.vim.languages.enableFormat; + }; type = mkOption { type = listOf (enum (attrNames formats)); @@ -68,29 +82,25 @@ in { (mkIf cfg.treesitter.enable { vim.treesitter = { enable = true; - grammars = [cfg.treesitter.package]; + grammars = [ cfg.treesitter.package ]; }; }) (mkIf cfg.lsp.enable { - vim.lsp.servers = - mapListToAttrs (n: { - name = n; - value = servers.${n}; - }) - cfg.lsp.servers; + vim.lsp.servers = mapListToAttrs (n: { + name = n; + value = servers.${n}; + }) cfg.lsp.servers; }) (mkIf (cfg.format.enable && !cfg.lsp.enable) { vim.formatter.conform-nvim = { enable = true; setupOpts.formatters_by_ft.fish = cfg.format.type; - setupOpts.formatters = - mapListToAttrs (name: { - inherit name; - value = formats.${name}; - }) - cfg.format.type; + setupOpts.formatters = mapListToAttrs (name: { + inherit name; + value = formats.${name}; + }) cfg.format.type; }; }) ]); 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"; }; 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"]; 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 = {