Compare commits

..

No commits in common. "e473a4ddb15090e791b202531e165e969d600b93" and "af26fb3c7da1a8707a9c5c5bf9482cebabdcdbd3" have entirely different histories.

7 changed files with 81 additions and 57 deletions

View file

@ -2,18 +2,11 @@
## Breaking changes
[Lspsaga documentation]: https://nvimdev.github.io/lspsaga/
- `git-conflict` keybinds are now prefixed with `<leader>` 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
@ -76,8 +69,6 @@
- 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

6
flake.lock generated
View file

@ -38,11 +38,11 @@
},
"mnw": {
"locked": {
"lastModified": 1742255973,
"narHash": "sha256-XfEGVKatTgEMMOVb4SNp1LYLQOSzzrFTDMVDTZFyMVE=",
"lastModified": 1741647548,
"narHash": "sha256-UqVAeOylufUGIx7BXSneFHD8eI6n0sVwEY2noFENnSE=",
"owner": "Gerg-L",
"repo": "mnw",
"rev": "b982dbd5e6d55d4438832b3567c09bc2a129649d",
"rev": "3fb89e600e26b91d1795cf8a1a34e11e084b4a04",
"type": "github"
},
"original": {

View file

@ -3,24 +3,47 @@
lib,
...
}: let
inherit (lib.modules) mkIf mkDefault;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.nvim.dag) entryAnywhere;
inherit (lib.nvim.binds) addDescriptionsToMappings mkSetLuaBinding;
inherit (lib.nvim.lua) toLuaObject;
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 = {
lazy.plugins.lspsaga-nvim = {
package = "lspsaga-nvim";
setupModule = "lspsaga";
inherit (cfg.lspsaga) setupOpts;
startPlugins = ["lspsaga-nvim"];
event = ["LspAttach"];
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"))
];
};
# Optional dependencies, pretty useful to enhance default functionality of
# Lspsaga.
treesitter.enable = mkDefault true;
visuals.nvim-web-devicons.enable = mkDefault true;
};
};
}

View file

@ -3,21 +3,10 @@
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.
<https://nvimdev.github.io/lspsaga>
'')
];
options.vim.lsp.lspsaga = {
enable = mkEnableOption "LSP Saga";
@ -28,5 +17,26 @@ in {
description = "Border type, see {command}`:help nvim_open_win`";
};
};
mappings = {
lspFinder = mkMappingOption "LSP Finder [LSPSaga]" "<leader>lf";
renderHoveredDoc = mkMappingOption "Rendered hovered docs [LSPSaga]" "<leader>lh";
smartScrollUp = mkMappingOption "Smart scroll up [LSPSaga]" "<C-f>";
smartScrollDown = mkMappingOption "Smart scroll up [LSPSaga]" "<C-b>";
rename = mkMappingOption "Rename [LSPSaga]" "<leader>lr";
previewDefinition = mkMappingOption "Preview definition [LSPSaga]" "<leader>ld";
showLineDiagnostics = mkMappingOption "Show line diagnostics [LSPSaga]" "<leader>ll";
showCursorDiagnostics = mkMappingOption "Show cursor diagnostics [LSPSaga]" "<leader>lc";
nextDiagnostic = mkMappingOption "Next diagnostic [LSPSaga]" "<leader>ln";
previousDiagnostic = mkMappingOption "Previous diagnostic [LSPSaga]" "<leader>lp";
codeAction = mkMappingOption "Code action [LSPSaga]" "<leader>ca";
signatureHelp = mkMappingOption "Signature help [LSPSaga]" "<leader>ls";
};
};
}

View file

@ -10,13 +10,13 @@
cfg = config.vim.minimap.minimap-vim;
in {
config = mkIf cfg.enable {
vim = {
startPlugins = ["minimap-vim"];
extraPackages = [pkgs.code-minimap];
vim.startPlugins = [
pkgs.code-minimap
"minimap-vim"
];
binds.whichKey.register = pushDownDefault {
"<leader>m" = "+Minimap";
};
vim.binds.whichKey.register = pushDownDefault {
"<leader>m" = "+Minimap";
};
};
}

View file

@ -6,8 +6,9 @@
...
}: let
inherit (pkgs) vimPlugins;
inherit (lib.trivial) flip;
inherit (builtins) path filter isString;
inherit (lib.strings) isString;
inherit (lib.lists) filter map;
inherit (builtins) path;
getPin = name: ((pkgs.callPackages ../../../npins/sources.nix {}) // config.vim.pluginOverrides).${name};
@ -75,6 +76,13 @@
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 {
@ -84,17 +92,9 @@
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";
extraLuaPackages = ps: map (flip builtins.getAttr ps) config.vim.luaPackages;
inherit (config.vim) viAlias vimAlias withRuby withNodeJs withPython3;
inherit extraLuaPackages extraPython3Packages;
};
dummyInit = pkgs.writeText "nvf-init.lua" config.vim.builtLuaConfigRC;

View file

@ -717,13 +717,13 @@
"type": "Git",
"repository": {
"type": "GitHub",
"owner": "nvimdev",
"owner": "tami5",
"repo": "lspsaga.nvim"
},
"branch": "main",
"revision": "6063935cf68de9aa6dd79f8e1caf5df0a9385de3",
"url": "https://github.com/nvimdev/lspsaga.nvim/archive/6063935cf68de9aa6dd79f8e1caf5df0a9385de3.tar.gz",
"hash": "1pqasjg2f2yd3ci8hyxfqqs7xnkmwdc411dlm6qg1agiv1h8v205"
"revision": "5faeec9f2508d2d49a66c0ac0d191096b4e3fa81",
"url": "https://github.com/tami5/lspsaga.nvim/archive/5faeec9f2508d2d49a66c0ac0d191096b4e3fa81.tar.gz",
"hash": "1bw71db69na2sriv9q167z9bgkir4nwny1bdfv9z606bmng4hhzc"
},
"lua-utils-nvim": {
"type": "Git",