From 93d375af64c5db55e6be86a8bb27323a24b85452 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Tue, 18 Mar 2025 12:49:03 +0300 Subject: [PATCH 1/3] minimap/minimap-vim: move code-minimap to `extraPackages` --- modules/plugins/minimap/minimap-vim/config.nix | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/plugins/minimap/minimap-vim/config.nix b/modules/plugins/minimap/minimap-vim/config.nix index 5276a426..a39b9590 100644 --- a/modules/plugins/minimap/minimap-vim/config.nix +++ b/modules/plugins/minimap/minimap-vim/config.nix @@ -10,13 +10,13 @@ cfg = config.vim.minimap.minimap-vim; in { config = mkIf cfg.enable { - vim.startPlugins = [ - pkgs.code-minimap - "minimap-vim" - ]; + vim = { + startPlugins = ["minimap-vim"]; + extraPackages = [pkgs.code-minimap]; - vim.binds.whichKey.register = pushDownDefault { - "m" = "+Minimap"; + binds.whichKey.register = pushDownDefault { + "m" = "+Minimap"; + }; }; }; } From a297acc368f1f56310d422767e277886f3685d7f Mon Sep 17 00:00:00 2001 From: Gerg-L <88247690+Gerg-L@users.noreply.github.com> Date: Tue, 18 Mar 2025 09:51:20 +0000 Subject: [PATCH 2/3] flake: update mnw (#723) --- flake.lock | 6 +++--- modules/wrapper/build/config.nix | 24 ++++++++++++------------ 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/flake.lock b/flake.lock index 72912dee..3ced812a 100644 --- a/flake.lock +++ b/flake.lock @@ -38,11 +38,11 @@ }, "mnw": { "locked": { - "lastModified": 1741647548, - "narHash": "sha256-UqVAeOylufUGIx7BXSneFHD8eI6n0sVwEY2noFENnSE=", + "lastModified": 1742255973, + "narHash": "sha256-XfEGVKatTgEMMOVb4SNp1LYLQOSzzrFTDMVDTZFyMVE=", "owner": "Gerg-L", "repo": "mnw", - "rev": "3fb89e600e26b91d1795cf8a1a34e11e084b4a04", + "rev": "b982dbd5e6d55d4438832b3567c09bc2a129649d", "type": "github" }, "original": { diff --git a/modules/wrapper/build/config.nix b/modules/wrapper/build/config.nix index d145f798..3c778169 100644 --- a/modules/wrapper/build/config.nix +++ b/modules/wrapper/build/config.nix @@ -6,9 +6,8 @@ ... }: let inherit (pkgs) vimPlugins; - inherit (lib.strings) isString; - inherit (lib.lists) filter map; - inherit (builtins) path; + inherit (lib.trivial) flip; + inherit (builtins) path filter isString; getPin = name: ((pkgs.callPackages ../../../npins/sources.nix {}) // config.vim.pluginOverrides).${name}; @@ -76,13 +75,6 @@ buildConfigPlugins config.vim.optPlugins ); - # additional Lua and Python3 packages, mapped to their respective functions - # to conform to the format mnw expects. end user should - # only ever need to pass a list of packages, which are modified - # here - extraLuaPackages = ps: map (x: ps.${x}) config.vim.luaPackages; - extraPython3Packages = ps: map (x: ps.${x}) config.vim.python3Packages; - # Wrap the user's desired (unwrapped) Neovim package with arguments that'll be used to # generate a wrapped Neovim package. neovim-wrapped = inputs.mnw.lib.wrap pkgs { @@ -92,9 +84,17 @@ extraBinPath = config.vim.extraPackages; initLua = config.vim.builtLuaConfigRC; luaFiles = config.vim.extraLuaFiles; + providers = { + python3 = { + enable = config.vim.withPython3; + extraPackages = ps: map (flip builtins.getAttr ps) config.vim.python3Packages; + }; + ruby.enable = config.vim.withRuby; + nodeJs.enable = config.vim.withNodeJs; + }; + aliases = lib.optional config.vim.viAlias "vi" ++ lib.optional config.vim.vimAlias "vim"; - inherit (config.vim) viAlias vimAlias withRuby withNodeJs withPython3; - inherit extraLuaPackages extraPython3Packages; + extraLuaPackages = ps: map (flip builtins.getAttr ps) config.vim.luaPackages; }; dummyInit = pkgs.writeText "nvf-init.lua" config.vim.builtLuaConfigRC; From e473a4ddb15090e791b202531e165e969d600b93 Mon Sep 17 00:00:00 2001 From: raf Date: Tue, 18 Mar 2025 09:52:07 +0000 Subject: [PATCH 3/3] lsp/lspsaga: update source; lazyload; remove keybinds (#724) * pins: point lspsaga to new source Stop using the fork, the author is back. * pins: point lspsaga to new source Stop using the fork, the author is back. --- docs/release-notes/rl-0.8.md | 9 +++++ modules/plugins/lsp/lspsaga/config.nix | 45 ++++++------------------- modules/plugins/lsp/lspsaga/lspsaga.nix | 34 +++++++------------ npins/sources.json | 8 ++--- 4 files changed, 36 insertions(+), 60 deletions(-) diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index 278b0a68..399e2712 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -2,11 +2,18 @@ ## Breaking changes +[Lspsaga documentation]: https://nvimdev.github.io/lspsaga/ + - `git-conflict` keybinds are now prefixed with `` to avoid conflicting with builtins. - `alpha` is now configured with nix, default config removed. +- Lspsaga module no longer ships default keybindings. The keybind format has + been changed by upstream, and old keybindings do not have equivalents under + the new API they provide. Please manually set your keybinds according to + [Lspsaga documentation] following the new API. + [NotAShelf](https://github.com/notashelf): [typst-preview.nvim]: https://github.com/chomosuke/typst-preview.nvim @@ -69,6 +76,8 @@ - Move LSPSaga to `setupOpts` format, allowing freeform configuration in `vim.lsp.lspsaga.setupOpts`. +- Lazyload Lspsaga and remove default keybindings for it. + [amadaluzia](https://github.com/amadaluzia): [haskell-tools.nvim]: https://github.com/MrcJkb/haskell-tools.nvim diff --git a/modules/plugins/lsp/lspsaga/config.nix b/modules/plugins/lsp/lspsaga/config.nix index 2d2903a6..811d0178 100644 --- a/modules/plugins/lsp/lspsaga/config.nix +++ b/modules/plugins/lsp/lspsaga/config.nix @@ -3,47 +3,24 @@ lib, ... }: let - inherit (lib.modules) mkIf mkMerge; - inherit (lib.nvim.dag) entryAnywhere; - inherit (lib.nvim.binds) addDescriptionsToMappings mkSetLuaBinding; - inherit (lib.nvim.lua) toLuaObject; + inherit (lib.modules) mkIf mkDefault; cfg = config.vim.lsp; - self = import ./lspsaga.nix {inherit config lib;}; - - mappingDefinitions = self.options.vim.lsp.lspsaga.mappings; - mappings = addDescriptionsToMappings cfg.lspsaga.mappings mappingDefinitions; in { config = mkIf (cfg.enable && cfg.lspsaga.enable) { vim = { - startPlugins = ["lspsaga-nvim"]; + lazy.plugins.lspsaga-nvim = { + package = "lspsaga-nvim"; + setupModule = "lspsaga"; + inherit (cfg.lspsaga) setupOpts; - pluginRC.lspsaga = entryAnywhere '' - require('lspsaga').init_lsp_saga(${toLuaObject cfg.lspsaga.setupOpts}) - ''; - - maps = { - visual = mkSetLuaBinding mappings.codeAction "require('lspsaga.codeaction').range_code_action"; - normal = mkMerge [ - (mkSetLuaBinding mappings.lspFinder "require('lspsaga.provider').lsp_finder") - (mkSetLuaBinding mappings.renderHoveredDoc "require('lspsaga.hover').render_hover_doc") - - (mkSetLuaBinding mappings.smartScrollUp "function() require('lspsaga.action').smart_scroll_with_saga(-1) end") - (mkSetLuaBinding mappings.smartScrollDown "function() require('lspsaga.action').smart_scroll_with_saga(1) end") - - (mkSetLuaBinding mappings.rename "require('lspsaga.rename').rename") - (mkSetLuaBinding mappings.previewDefinition "require('lspsaga.provider').preview_definition") - - (mkSetLuaBinding mappings.showLineDiagnostics "require('lspsaga.diagnostic').show_line_diagnostics") - (mkSetLuaBinding mappings.showCursorDiagnostics "require('lspsaga.diagnostic').show_cursor_diagnostics") - - (mkSetLuaBinding mappings.nextDiagnostic "require('lspsaga.diagnostic').navigate('next')") - (mkSetLuaBinding mappings.previousDiagnostic "require('lspsaga.diagnostic').navigate('prev')") - - (mkSetLuaBinding mappings.codeAction "require('lspsaga.codeaction').code_action") - (mkIf (!cfg.lspSignature.enable) (mkSetLuaBinding mappings.signatureHelp "require('lspsaga.signaturehelp').signature_help")) - ]; + event = ["LspAttach"]; }; + + # Optional dependencies, pretty useful to enhance default functionality of + # Lspsaga. + treesitter.enable = mkDefault true; + visuals.nvim-web-devicons.enable = mkDefault true; }; }; } diff --git a/modules/plugins/lsp/lspsaga/lspsaga.nix b/modules/plugins/lsp/lspsaga/lspsaga.nix index 59fea808..39ce6298 100644 --- a/modules/plugins/lsp/lspsaga/lspsaga.nix +++ b/modules/plugins/lsp/lspsaga/lspsaga.nix @@ -3,10 +3,21 @@ lib, ... }: let + inherit (lib.modules) mkRemovedOptionModule; inherit (lib.options) mkOption mkEnableOption; - inherit (lib.nvim.binds) mkMappingOption; inherit (lib.nvim.types) borderType mkPluginSetupOption; in { + imports = [ + (mkRemovedOptionModule ["vim" "lsp" "lspsaga" "mappings"] '' + Lspsaga mappings have been removed from nvf, as the original author has made + very drastic changes to the API after taking back ownership, and the fork we + used is now archived. Please refer to Lspsaga documentation to add keybinds + for functionality you have used. + + + '') + ]; + options.vim.lsp.lspsaga = { enable = mkEnableOption "LSP Saga"; @@ -17,26 +28,5 @@ in { description = "Border type, see {command}`:help nvim_open_win`"; }; }; - - mappings = { - lspFinder = mkMappingOption "LSP Finder [LSPSaga]" "lf"; - renderHoveredDoc = mkMappingOption "Rendered hovered docs [LSPSaga]" "lh"; - - smartScrollUp = mkMappingOption "Smart scroll up [LSPSaga]" ""; - smartScrollDown = mkMappingOption "Smart scroll up [LSPSaga]" ""; - - rename = mkMappingOption "Rename [LSPSaga]" "lr"; - previewDefinition = mkMappingOption "Preview definition [LSPSaga]" "ld"; - - showLineDiagnostics = mkMappingOption "Show line diagnostics [LSPSaga]" "ll"; - showCursorDiagnostics = mkMappingOption "Show cursor diagnostics [LSPSaga]" "lc"; - - nextDiagnostic = mkMappingOption "Next diagnostic [LSPSaga]" "ln"; - previousDiagnostic = mkMappingOption "Previous diagnostic [LSPSaga]" "lp"; - - codeAction = mkMappingOption "Code action [LSPSaga]" "ca"; - - signatureHelp = mkMappingOption "Signature help [LSPSaga]" "ls"; - }; }; } diff --git a/npins/sources.json b/npins/sources.json index 3e903dc3..91c3f68e 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -717,13 +717,13 @@ "type": "Git", "repository": { "type": "GitHub", - "owner": "tami5", + "owner": "nvimdev", "repo": "lspsaga.nvim" }, "branch": "main", - "revision": "5faeec9f2508d2d49a66c0ac0d191096b4e3fa81", - "url": "https://github.com/tami5/lspsaga.nvim/archive/5faeec9f2508d2d49a66c0ac0d191096b4e3fa81.tar.gz", - "hash": "1bw71db69na2sriv9q167z9bgkir4nwny1bdfv9z606bmng4hhzc" + "revision": "6063935cf68de9aa6dd79f8e1caf5df0a9385de3", + "url": "https://github.com/nvimdev/lspsaga.nvim/archive/6063935cf68de9aa6dd79f8e1caf5df0a9385de3.tar.gz", + "hash": "1pqasjg2f2yd3ci8hyxfqqs7xnkmwdc411dlm6qg1agiv1h8v205" }, "lua-utils-nvim": { "type": "Git",