neovim conf based on kickstart.nvim
at main 174 lines 6.2 kB view raw
1-- You can add your own plugins here or in other files in this directory! 2-- I promise not to create any merge conflicts in this directory :) 3-- 4-- See the kickstart.nvim README for more information 5 6---@module 'lazy' 7---@type LazySpec 8return { 9 { 'RRethy/base16-nvim', config = function() require('matugen').setup() end }, 10 { 11 'folke/flash.nvim', 12 event = 'VeryLazy', 13 ---@type Flash.Config 14 opts = {}, 15 keys = { 16 { 's', mode = { 'n', 'x', 'o' }, function() require('flash').jump() end, desc = 'Flash' }, 17 { 'S', mode = { 'n', 'x', 'o' }, function() require('flash').treesitter() end, desc = 'Flash Treesitter' }, 18 { 'r', mode = 'o', function() require('flash').remote() end, desc = 'Remote Flash' }, 19 { 'R', mode = { 'o', 'x' }, function() require('flash').treesitter_search() end, desc = 'Treesitter Search' }, 20 { '<c-s>', mode = { 'c' }, function() require('flash').toggle() end, desc = 'Toggle Flash Search' }, 21 }, 22 }, 23 { 24 'folke/trouble.nvim', 25 cmd = { 'Trouble' }, 26 opts = { 27 modes = { 28 lsp = { 29 win = { position = 'right' }, 30 }, 31 }, 32 }, 33 keys = { 34 { '<leader>xx', '<cmd>Trouble diagnostics toggle<cr>', desc = 'Diagnostics (Trouble)' }, 35 { '<leader>xX', '<cmd>Trouble diagnostics toggle filter.buf=0<cr>', desc = 'Buffer Diagnostics (Trouble)' }, 36 { '<leader>cs', '<cmd>Trouble symbols toggle<cr>', desc = 'Symbols (Trouble)' }, 37 { '<leader>cS', '<cmd>Trouble lsp toggle<cr>', desc = 'LSP references/definitions/... (Trouble)' }, 38 { '<leader>xL', '<cmd>Trouble loclist toggle<cr>', desc = 'Location List (Trouble)' }, 39 { '<leader>xQ', '<cmd>Trouble qflist toggle<cr>', desc = 'Quickfix List (Trouble)' }, 40 { 41 '[q', 42 function() 43 if require('trouble').is_open() then 44 require('trouble').prev { skip_groups = true, jump = true } 45 else 46 local ok, err = pcall(vim.cmd.cprev) 47 if not ok then vim.notify(err, vim.log.levels.ERROR) end 48 end 49 end, 50 desc = 'Previous Trouble/Quickfix Item', 51 }, 52 { 53 ']q', 54 function() 55 if require('trouble').is_open() then 56 require('trouble').next { skip_groups = true, jump = true } 57 else 58 local ok, err = pcall(vim.cmd.cnext) 59 if not ok then vim.notify(err, vim.log.levels.ERROR) end 60 end 61 end, 62 desc = 'Next Trouble/Quickfix Item', 63 }, 64 }, 65 }, 66 { 67 'folke/lazydev.nvim', 68 ft = 'lua', 69 cmd = 'LazyDev', 70 opts = { 71 library = { 72 { path = '${3rd}/luv/library', words = { 'vim%.uv' } }, 73 { path = 'snacks.nvim', words = { 'Snacks' } }, 74 { path = 'lazy.nvim', words = { 'LazyVim' } }, 75 }, 76 }, 77 }, 78 { 79 'MagicDuck/grug-far.nvim', 80 opts = { headerMaxWidth = 80 }, 81 cmd = { 'GrugFar', 'GrugFarWithin' }, 82 keys = { 83 { 84 '<leader>sr', 85 function() 86 local grug = require 'grug-far' 87 local ext = vim.bo.buftype == '' and vim.fn.expand '%:e' 88 grug.open { 89 transient = true, 90 prefills = { 91 filesFilter = ext and ext ~= '' and '*.' .. ext or nil, 92 }, 93 } 94 end, 95 mode = { 'n', 'x' }, 96 desc = 'Search and Replace', 97 }, 98 }, 99 }, 100 { 101 'mistweaverco/kulala.nvim', 102 keys = { 103 { '<leader>Rs', desc = 'Send request' }, 104 { '<leader>Ra', desc = 'Send all requests' }, 105 { '<leader>Rb', desc = 'Open scratchpad' }, 106 }, 107 ft = { 'http', 'rest' }, 108 opts = { 109 global_keymaps = false, 110 global_keymaps_prefix = '<leader>R', 111 kulala_keymaps_prefix = '', 112 vscode_rest_client_environmentvars = false, 113 }, 114 }, 115 { 116 'gbprod/yanky.nvim', 117 recommended = true, 118 desc = 'Better Yank/Paste', 119 opts = { 120 system_clipboard = { 121 sync_with_ring = not vim.env.SSH_CONNECTION, 122 }, 123 highlight = { timer = 150 }, 124 }, 125 keys = { 126 { 127 '<leader>p', 128 function() Snacks.picker.yanky() end, 129 mode = { 'n', 'x' }, 130 desc = 'Open Yank History', 131 }, 132 -- stylua: ignore 133 { "y", "<Plug>(YankyYank)", mode = { "n", "x" }, desc = "Yank Text" }, 134 { 'p', '<Plug>(YankyPutAfter)', mode = { 'n', 'x' }, desc = 'Put Text After Cursor' }, 135 { 'P', '<Plug>(YankyPutBefore)', mode = { 'n', 'x' }, desc = 'Put Text Before Cursor' }, 136 { 'gp', '<Plug>(YankyGPutAfter)', mode = { 'n', 'x' }, desc = 'Put Text After Selection' }, 137 { 'gP', '<Plug>(YankyGPutBefore)', mode = { 'n', 'x' }, desc = 'Put Text Before Selection' }, 138 { '[y', '<Plug>(YankyCycleForward)', desc = 'Cycle Forward Through Yank History' }, 139 { ']y', '<Plug>(YankyCycleBackward)', desc = 'Cycle Backward Through Yank History' }, 140 { ']p', '<Plug>(YankyPutIndentAfterLinewise)', desc = 'Put Indented After Cursor (Linewise)' }, 141 { '[p', '<Plug>(YankyPutIndentBeforeLinewise)', desc = 'Put Indented Before Cursor (Linewise)' }, 142 { ']P', '<Plug>(YankyPutIndentAfterLinewise)', desc = 'Put Indented After Cursor (Linewise)' }, 143 { '[P', '<Plug>(YankyPutIndentBeforeLinewise)', desc = 'Put Indented Before Cursor (Linewise)' }, 144 { '>p', '<Plug>(YankyPutIndentAfterShiftRight)', desc = 'Put and Indent Right' }, 145 { '<p', '<Plug>(YankyPutIndentAfterShiftLeft)', desc = 'Put and Indent Left' }, 146 { '>P', '<Plug>(YankyPutIndentBeforeShiftRight)', desc = 'Put Before and Indent Right' }, 147 { '<P', '<Plug>(YankyPutIndentBeforeShiftLeft)', desc = 'Put Before and Indent Left' }, 148 { '=p', '<Plug>(YankyPutAfterFilter)', desc = 'Put After Applying a Filter' }, 149 { '=P', '<Plug>(YankyPutBeforeFilter)', desc = 'Put Before Applying a Filter' }, 150 }, 151 }, 152 { 153 'stevearc/aerial.nvim', 154 opts = {}, 155 -- Optional dependencies 156 dependencies = { 157 'nvim-treesitter/nvim-treesitter', 158 }, 159 }, 160 { 161 'ThePrimeagen/refactoring.nvim', 162 dependencies = { 163 'nvim-lua/plenary.nvim', 164 'nvim-treesitter/nvim-treesitter', 165 }, 166 lazy = false, 167 opts = {}, 168 }, 169 { 170 'smjonas/inc-rename.nvim', 171 cmd = 'IncRename', 172 opts = {}, 173 }, 174}