This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

superconfig / tools / nvim.nix
5.9 kB 217 lines
1{ inputs, ... }: 2{ 3 perSystem = 4 { system, ... }: 5 { 6 packages.nvim = inputs.nixvim.legacyPackages.${system}.makeNixvim { 7 vimAlias = true; 8 colorschemes.ayu = { 9 enable = true; 10 settings.overrides = { 11 EoLSpace = { 12 bg = "#883333"; 13 }; 14 }; 15 }; 16 globals.mapleader = " "; 17 opts = { 18 mouse = "a"; 19 number = true; 20 shiftwidth = 2; 21 clipboard = "unnamedplus"; 22 # undo stuff 23 undofile = { }; 24 undolevels = 10000; 25 undoreload = 10000; 26 listchars = "tab:⇥ ,extends:❯,precedes:❮,nbsp:␣,trail:·,eol:↲"; 27 }; 28 extraConfigVim = '' 29 set et 30 31 " show special characters 32 set list 33 34 " match trailing whitespace 35 match EoLSpace /\s\+$/ 36 37 " need to use lua to expand $HOME 38 lua vim.o.undodir = vim.fs.normalize('$HOME/.vim/undodir') 39 ''; 40 keymaps = [ 41 { 42 mode = "i"; 43 key = "<C-p>"; 44 action = "<Nop>"; 45 } 46 { 47 mode = "i"; 48 key = "<C-n>"; 49 action = "<Nop>"; 50 } 51 { 52 mode = "n"; 53 key = "<C-c>"; 54 action = ":q<cr>"; 55 } 56 { 57 mode = "n"; 58 key = "<Space>"; 59 action = "<Nop>"; 60 } 61 { 62 mode = "n"; 63 key = "<leader>u"; 64 action = ":UndotreeToggle<cr>"; 65 } 66 { 67 mode = "n"; 68 key = "<leader>sd"; 69 action = ":colorscheme ayu-dark<cr>"; 70 } 71 { 72 mode = "n"; 73 key = "<leader>sw"; 74 action = ":colorscheme ayu-light<cr>"; 75 } 76 { 77 mode = [ 78 "n" 79 "v" 80 ]; 81 key = "<leader>cc"; 82 action = ":CopilotChatOpen<cr>"; 83 } 84 { 85 mode = [ 86 "n" 87 "v" 88 ]; 89 key = "<leader>ce"; 90 action = ":CopilotChatExplain<cr>"; 91 } 92 { 93 mode = [ 94 "n" 95 "v" 96 ]; 97 key = "<leader>cr"; 98 action = ":CopilotChatReview<cr>"; 99 } 100 { 101 mode = [ 102 "n" 103 "v" 104 ]; 105 key = "<leader>cf"; 106 action = ":CopilotChatFix<cr>"; 107 } 108 { 109 mode = [ 110 "n" 111 "v" 112 ]; 113 key = "<leader>cd"; 114 action = ":CopilotChatDocs<cr>"; 115 } 116 { 117 mode = [ 118 "n" 119 "x" 120 ]; 121 key = "p"; 122 action = "<Plug>(YankyPutAfter)"; 123 } 124 { 125 mode = [ 126 "n" 127 "x" 128 ]; 129 key = "P"; 130 action = "<Plug>(YankyPutBefore)"; 131 } 132 ]; 133 plugins.web-devicons.enable = true; 134 plugins.telescope = { 135 enable = true; 136 keymaps = { 137 "<leader>b" = "buffers"; 138 "<leader>ff" = "find_files"; 139 "<leader>fg" = "live_grep"; 140 "<leader>fh" = "help_tags"; 141 "<leader>fp" = "yank_history"; 142 }; 143 }; 144 plugins.lsp-format.enable = true; 145 plugins.lsp = { 146 enable = true; 147 servers = { 148 bashls.enable = true; # bash 149 nixd.enable = true; # nix 150 ruff-lsp.enable = true; # python 151 harper-ls.enable = true; # comments 152 jsonls.enable = true; # json 153 }; 154 }; 155 plugins.undotree = { 156 enable = true; 157 settings.SetFocusWhenToggle = true; 158 }; 159 plugins.treesitter.enable = true; 160 plugins.copilot-cmp.enable = true; 161 plugins.copilot-lua.panel.enabled = false; 162 plugins.copilot-lua.suggestion.enabled = false; 163 plugins.cmp_yanky.enable = true; 164 plugins.cmp = { 165 enable = true; 166 autoEnableSources = true; 167 settings = { 168 experimental = { 169 ghost_text = true; 170 }; 171 sources = [ 172 { name = "nvim_lsp"; } 173 { name = "emoji"; } 174 { 175 name = "buffer"; # text within current buffer 176 option.get_bufnrs.__raw = "vim.api.nvim_list_bufs"; 177 keywordLength = 2; 178 } 179 { 180 name = "copilot"; # enable copilot 181 } 182 { 183 name = "path"; # file system paths 184 keywordLength = 3; 185 } 186 { name = "cmp_yanky"; } 187 ]; 188 189 mapping = { 190 "<Tab>" = "cmp.mapping.select_next_item()"; 191 "<S-Tab>" = "cmp.mapping.select_prev_item()"; 192 "<C-n>" = "cmp.mapping.select_next_item()"; 193 "<C-p>" = "cmp.mapping.select_prev_item()"; 194 "<C-e>" = "cmp.mapping.abort()"; 195 "<C-b>" = "cmp.mapping.scroll_docs(-4)"; 196 "<C-f>" = "cmp.mapping.scroll_docs(4)"; 197 "<C-Space>" = "cmp.mapping.complete()"; 198 "<CR>" = "cmp.mapping.confirm({ select = true })"; 199 "<S-CR>" = "cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = true })"; 200 }; 201 }; 202 }; 203 plugins.none-ls = { 204 enable = true; 205 sources.formatting.treefmt.enable = true; 206 }; 207 plugins.bufferline.enable = true; 208 plugins.which-key.enable = true; 209 plugins.yanky = { 210 enable = true; 211 enableTelescope = true; 212 }; 213 plugins.comment.enable = true; 214 plugins.copilot-chat.enable = true; 215 }; 216 }; 217}