{pkgs, ...}: { globals = { mapleader = " "; }; opts = { number = true; relativenumber = true; tabstop = 2; shiftwidth = 2; expandtab = true; smartindent = true; scrolloff = 4; undofile = true; }; extraPlugins = [(pkgs.vimPlugins.actions-preview-nvim)]; extraConfigLua = '' vim.o.undodir = vim.fn.expand("$HOME/.local/share/nvim/undo") require("actions-preview").setup { highlight_command = { require("actions-preview.highlight").delta("${pkgs.delta}/bin/delta --no-gitconfig --side-by-side"), }, telescope = { sorting_strategy = "ascending", layout_strategy = "vertical", layout_config = { width = 0.8, height = 0.9, prompt_position = "top", preview_cutoff = 20, preview_height = function(_, _, max_lines) return max_lines - 10 end, }, }, } vim.keymap.set({ "v", "n" }, "", require("actions-preview").code_actions) vim.keymap.set({ "n" }, "ca", require("actions-preview").code_actions) ''; keymaps = [ { key = ""; action = ''"+y''; options.desc = "copy to clipboard"; } { key = "ca"; action = '' require("actions-preview").code_actions ''; } { key = "gl"; action = "g$"; } { key = "gh"; action = "g0"; } { key = "q"; action = ":bd"; options.desc = "close buffer"; } { key = "gs"; action = ":Gitsigns stage_hunk"; options.desc = "git stage hunk"; } { key = "gr"; action = ":Gitsigns reset_hunk"; options.desc = "git restore hunk"; } { key = "gb"; action = ":Gitsigns blame"; options.desc = "show git blame"; } { key = "gg"; action = ":LazyGit"; options.desc = "open lazy git"; } ]; plugins = { bufferline.enable = true; web-devicons.enable = true; vim-surround.enable = true; comment.enable = true; markdown-preview.enable = true; telescope = { enable = true; keymaps = { "fg" = "live_grep"; "/" = "live_grep"; "ff" = "find_files"; "fb" = "buffers"; "fh" = "help_tags"; ":" = "commands"; }; }; lsp = { enable = true; servers = { ts-ls.enable = true; nil-ls.enable = true; }; keymaps = { lspBuf = { "ck" = "hover"; "K" = "hover"; # using actions-preview instead # "ca" = "code_action"; # "" = "code_action"; "cd" = "definition"; "gd" = "definition"; "cf" = "references"; "gr" = "references"; "cr" = "rename"; "" = "rename"; }; }; }; cmp = { enable = true; autoEnableSources = true; }; cmp-nvim-lsp.enable = true; cmp-path.enable = true; gitsigns.enable = true; git-worktree = { enable = true; enableTelescope = true; }; lazygit.enable = true; which-key.enable = true; dap = { enable = true; extensions.dap-ui.enable = true; }; harpoon = { enable = true; keymaps = { addFile = "ha"; toggleQuickMenu = "hf"; navNext = "n"; }; }; vim-css-color.enable = true; }; }