nvim/plugins/navigation.nix
2026-04-06 11:15:57 +02:00

51 lines
2.3 KiB
Nix

{pkgs, ...}: {
vim = {
extraPlugins = with pkgs.vimPlugins; {
harpoon2 = {
package = harpoon2;
setup = ''require("harpoon"):setup()'';
};
};
fzf-lua = {
enable = true;
profile = "telescope";
};
filetree.nvimTree = {
enable = true;
setupOpts = {
filters.dotfiles = false;
git.enable = true;
renderer.group_empty = true;
};
};
session.nvim-session-manager.enable = true;
keymaps = [
# Harpoon
{key = "<leader>ha"; mode = ["n"]; lua = true; action = ''function() require("harpoon"):list():add() end''; desc = "Harpoon add";}
{key = "<leader>hh"; mode = ["n"]; lua = true; action = ''function() local h = require("harpoon") h.ui:toggle_quick_menu(h:list()) end''; desc = "Harpoon menu";}
{key = "<leader>1"; mode = ["n"]; lua = true; action = ''function() require("harpoon"):list():select(1) end''; desc = "Harpoon file 1";}
{key = "<leader>2"; mode = ["n"]; lua = true; action = ''function() require("harpoon"):list():select(2) end''; desc = "Harpoon file 2";}
{key = "<leader>3"; mode = ["n"]; lua = true; action = ''function() require("harpoon"):list():select(3) end''; desc = "Harpoon file 3";}
{key = "<leader>4"; mode = ["n"]; lua = true; action = ''function() require("harpoon"):list():select(4) end''; desc = "Harpoon file 4";}
# FZF-lua
{key = "<leader>ff"; mode = ["n"]; action = "<cmd>FzfLua files<cr>"; desc = "Find Files";}
{key = "<leader>fg"; mode = ["n"]; action = "<cmd>FzfLua live_grep<cr>"; desc = "Live Grep";}
{key = "<leader>fb"; mode = ["n"]; action = "<cmd>FzfLua buffers<cr>"; desc = "Buffer List";}
{key = "<leader>fh"; mode = ["n"]; action = "<cmd>FzfLua help_tags<cr>"; desc = "Help Tags";}
{key = "<leader>fo"; mode = ["n"]; action = "<cmd>FzfLua oldfiles<cr>"; desc = "Recent Files";}
{key = "<leader>fn"; mode = ["n"]; action = "<cmd>Noice<cr>"; desc = "Notifications";}
# Nvim-tree
{key = "<leader><leader>"; mode = ["n"]; action = "<cmd>NvimTreeToggle<CR>"; desc = "File Tree";}
{key = "<leader>e"; mode = ["n"]; action = "<cmd>NvimTreeFindFile<CR>"; desc = "File Tree (find current file)";}
# Sessions
{key = "<leader>fp"; mode = ["n"]; action = "<cmd>SessionManager load_session<CR>"; desc = "Session List";}
];
};
}