diff --git a/.rgignore b/.rgignore new file mode 100644 index 0000000..13ba0e2 --- /dev/null +++ b/.rgignore @@ -0,0 +1,2 @@ +lib/words.txt +flake.lock diff --git a/lib/nixvim.nix b/lib/nixvim.nix index aa0f2c2..3091902 100644 --- a/lib/nixvim.nix +++ b/lib/nixvim.nix @@ -5,17 +5,26 @@ opts = { number = true; relativenumber = true; - tabstop = 2; + tabstop = 4; shiftwidth = 2; expandtab = true; smartindent = true; scrolloff = 4; undofile = true; + undodir.__raw = ''vim.fn.expand("$HOME/.local/share/nvim/undo")''; + + list = true; + listchars = builtins.concatStringsSep "," [ + "tab: >" + "leadmultispace: |" + "trail:." + "extends:>" + "precedes:<" + ]; }; 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"), @@ -49,6 +58,14 @@ require("actions-preview").code_actions ''; } + { + key = ""; + action = "tabnext"; + } + { + key = ""; + action = "tabprev"; + } { key = "gl"; action = "g$"; @@ -57,30 +74,84 @@ key = "gh"; action = "g0"; } + { + mode = "v"; + key = ">"; + action = ">gv"; + options.desc = "indent"; + options.silent = true; + } + { + mode = "v"; + key = "<"; + action = "fg" = "live_grep"; "/" = "live_grep"; @@ -101,6 +177,9 @@ "fb" = "buffers"; "fh" = "help_tags"; ":" = "commands"; + "ft" = "treesitter"; + "fr" = "lsp_references"; + "cr" = "lsp_definition"; }; }; @@ -114,17 +193,6 @@ 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"; }; @@ -148,10 +216,6 @@ lazygit.enable = true; which-key.enable = true; - dap = { - enable = true; - extensions.dap-ui.enable = true; - }; harpoon = { enable = true; keymaps = { @@ -162,6 +226,27 @@ }; vim-css-color.enable = true; + + treesitter = { + enable = true; + folding = true; + }; + treesitter-textobjects = { + enable = true; + select = { + enable = true; + lookahead = true; + keymaps = { + "af" = { query = "@function.outer"; desc = "Function Outer"; }; + "ac" = { query = "@comment.outer"; desc = "Comment Outer"; }; + "if" = { query = "@function.inner"; desc = "Function Inner"; }; + }; + }; + }; + + oil.enable = true; + autoclose.enable = true; + guess-indent.enable = true; }; }