This repository has no description
0

Configure Feed

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

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