return { { 'norcalli/nvim-colorizer.lua', config = true, keys = { { 'oc', 'ColorizerToggle', desc = 'Toggle colorizer' } }, cmd = 'ColorizerToggle', }, { 'ThePrimeagen/harpoon', keys = { { 'fm', function() require('harpoon.mark').add_file() end, desc = 'Harpoon mark file' }, { 'fh', function() require('harpoon.ui').toggle_quick_menu() end, desc = 'Harpoon menu' }, { '', function() require('harpoon.ui').nav_file(1) end, desc = 'Harpoon file 1' }, { '', function() require('harpoon.ui').nav_file(2) end, desc = 'Harpoon file 2' }, { '', function() require('harpoon.ui').nav_file(3) end, desc = 'Harpoon file 3' }, { '', function() require('harpoon.ui').nav_file(4) end, desc = 'Harpoon file 4' }, { '', function() require('harpoon.ui').nav_file(5) end, desc = 'Harpoon file 5' }, }, }, { 's1n7ax/nvim-window-picker', config = true, opts = { use_winbar = 'always', fg_color = require('configs.colors').pallete.light0[1], current_win_hl_color = require('configs.colors').pallete.red[1], other_win_hl_color = require('configs.colors').pallete.green[1], }, keys = { { 'w', function() local picked_window_id = require('window-picker').pick_window() or vim.api.nvim_get_current_win() vim.api.nvim_set_current_win(picked_window_id) end, desc = 'Pick a window', }, }, }, { 'AndrewRadev/linediff.vim', cmd = 'Linediff' }, { 'lukas-reineke/indent-blankline.nvim', event = 'VeryLazy', config = true, main = 'ibl', opts = { -- show_current_context = true, -- show_current_context_start = false, -- filetype_exclude = { -- 'OverseerList', -- 'OverseerForm', -- 'lspinfo', -- 'packer', -- 'checkhealth', -- 'help', -- 'man', -- 'norg', -- '', -- }, }, }, { 'chrisgrieser/nvim-various-textobjs', keys = { { 'ii', function() require('various-textobjs').indentation('inner', 'inner', 'withBlanks') end, mode = { 'o', 'x' }, desc = 'Inside indent', }, { 'ai', function() require('various-textobjs').indentation('outer', 'outer', 'withBlanks') end, mode = { 'o', 'x' }, desc = 'Around indent', }, -- { 'iI', function() require('various-textobjs').indentation(true, true) end, mode = { 'o', 'x' }, desc = '' }, -- { 'aI', function() require('various-textobjs').indentation(false, false) end, mode = { 'o', 'x' }, desc = '' }, { 'iS', function() require('various-textobjs').subword('inner') end, mode = { 'o', 'x' }, desc = '' }, { 'aS', function() require('various-textobjs').subword('outer') end, mode = { 'o', 'x' }, desc = '' }, { '|', function() require('various-textobjs').column() end, mode = { 'o', 'x' }, desc = '' }, { 'L', function() require('various-textobjs').url() end, mode = { 'o', 'x' }, desc = '' }, -- {"YOUR_MAPPING",function() require("various-textobjs").toNextClosingBracket() end, mode = { "o", "x" }, desc = "" }, -- {"YOUR_MAPPING",function() require("various-textobjs").restOfParagraph() end, mode = { "o", "x" }, desc = "" }, -- {"YOUR_MAPPING",function() require("various-textobjs").entireBuffer() end, mode = { "o", "x" }, desc = "" }, -- {"YOUR_MAPPING",function() require("various-textobjs").nearEoL() end, mode = { "o", "x" }, desc = "" }, -- {"YOUR_MAPPING",function() require("various-textobjs").lineCharacterwise() end, mode = { "o", "x" }, desc = "" }, -- {"YOUR_MAPPING",function() require("various-textobjs").value(true) end, mode = { "o", "x" }, desc = "" }, -- {"YOUR_MAPPING",function() require("various-textobjs").value(false) end, mode = { "o", "x" }, desc = "" }, -- {"YOUR_MAPPING",function() require("various-textobjs").key(true) end, mode = { "o", "x" }, desc = "" }, -- {"YOUR_MAPPING",function() require("various-textobjs").key(false) end, mode = { "o", "x" }, desc = "" }, -- {"YOUR_MAPPING",function() require("various-textobjs").diagnostic() end, mode = { "o", "x" }, desc = "" }, -------------------------------------------------------------------------------------- -- put these into the ftplugins or autocms for the filetypes you want to use them with -- {"YOUR_MAPPING",function() require("various-textobjs").mdlink(true) end, { buffer = true }, mode = { "o", "x" }, desc = "" }, -- {"YOUR_MAPPING",function() require("various-textobjs").mdlink(false) end, { buffer = true }, mode = { "o", "x" }, desc = "" }, -- -- {"YOUR_MAPPING",function() require("various-textobjs").mdFencedCodeBlock(true) end, { buffer = true }, mode = { "o", "x" }, desc = "" }, -- {"YOUR_MAPPING",function() require("various-textobjs").mdFencedCodeBlock(false) end, { buffer = true }, mode = { "o", "x" }, desc = "" }, -- -- {"YOUR_MAPPING",function() require("various-textobjs").cssSelector(true) end, { buffer = true }, mode = { "o", "x" }, desc = "" }, -- {"YOUR_MAPPING",function() require("various-textobjs").cssSelector(false) end, { buffer = true }, mode = { "o", "x" }, desc = "" }, -- -- {"YOUR_MAPPING",function() require("various-textobjs").htmlAttribute(true) end, { buffer = true }, mode = { "o", "x" }, desc = "" }, -- {"YOUR_MAPPING",function() require("various-textobjs").htmlAttribute(false) end, { buffer = true }, mode = { "o", "x" }, desc = "" }, -- -- {"YOUR_MAPPING",function() require("various-textobjs").doubleSquareBrackets(true) end, { buffer = true }, mode = { "o", "x" }, desc = "" }, -- {"YOUR_MAPPING",function() require("various-textobjs").doubleSquareBrackets(false) end, { buffer = true }, mode = { "o", "x" }, desc = "" }, -- -- {"YOUR_MAPPING",function() require("various-textobjs").shellPipe(true) end, { buffer = true }, mode = { "o", "x" }, desc = "" }, -- {"YOUR_MAPPING",function() require("various-textobjs").shellPipe(false) end, { buffer = true }, mode = { "o", "x" }, desc = "" }, }, }, { 'chrisgrieser/nvim-spider', keys = { { '', function() require('spider').motion('w') end, mode = { 'n', 'o', 'x' }, desc = 'Spider-w' }, { '', function() require('spider').motion('e') end, mode = { 'n', 'o', 'x' }, desc = 'Spider-e' }, { '', function() require('spider').motion('b') end, mode = { 'n', 'o', 'x' }, desc = 'Spider-b' }, }, }, { 'echasnovski/mini.trailspace', version = '*', keys = { { 'eT', function() MiniTrailspace.trim() end, desc = 'Trim whiltespace' }, }, config = true, }, -- stolen from LazyVim { 'stevearc/dressing.nvim', lazy = true, init = function() ---@diagnostic disable-next-line: duplicate-set-field vim.ui.select = function(...) require('lazy').load({ plugins = { 'dressing.nvim' } }) return vim.ui.select(...) end ---@diagnostic disable-next-line: duplicate-set-field vim.ui.input = function(...) require('lazy').load({ plugins = { 'dressing.nvim' } }) return vim.ui.input(...) end end, }, { 'stevearc/overseer.nvim', config = true, cmd = { 'OverseerBuild', 'OverseerClearCache', 'OverseerClose', 'OverseerDeleteBundle', 'OverseerInfo', 'OverseerLoadBundle', 'OverseerOpen', 'OverseerQuickAction', 'OverseerRun', 'OverseerRunCmd', 'OverseerSaveBundle', 'OverseerTaskAction', 'OverseerToggle', }, keys = { { 'xx', 'OverseerToggle', desc = 'Overseer toggle' }, { 'xi', 'OverseerInfo', desc = 'Overseer info' }, { 'xa', 'OverseerTaskAction', desc = 'Overseer action' }, { 'xr', 'OverseerRun', desc = 'Overseer run' }, }, }, { 'numToStr/Comment.nvim', config = true, }, { 'dyng/ctrlsf.vim', cmd = 'CtrlSF' }, { 'https://git.sr.ht/~whynothugo/lsp_lines.nvim', config = function() local lines = require('lsp_lines') lines.setup() vim.diagnostic.config({ virtual_lines = function(_, bufnr) local ft = vim.api.nvim_get_option_value('filetype', { buf = bufnr }) if ft == 'lazy' then return false else return { only_current_line = true } end end, }) end, }, { 'andymass/vim-matchup', event = 'BufRead', config = function() vim.g.matchup_matchparen_offscreen = {} end, }, { 'echasnovski/mini.surround', version = '*', event = 'BufEnter', config = true, main = 'mini.surround', }, { 'nvim-neorg/neorg', enabled = false, ft = 'norg', dependencies = { 'nvim-lua/plenary.nvim' }, cmd = { 'Neorg' }, opts = { load = { ['core.defaults'] = {}, ['core.concealer'] = {}, ['core.completion'] = { config = { engine = 'nvim-cmp' } }, }, }, }, { 'fpob/nette.vim', ft = 'nette' }, { 'ziglang/zig.vim', ft = 'zig' }, { 'chrisbra/csv.vim', ft = 'csv' }, { 'NoahTheDuke/vim-just' }, { 'towolf/vim-helm' }, { 'grafana/vim-alloy' }, { 'williamboman/mason.nvim', cmd = 'Mason', config = true }, { 'yorickpeterse/nvim-pqf', opts = { signs = { error = { text = 'E', hl = 'DiagnosticSignError' }, warning = { text = 'W', hl = 'DiagnosticSignWarn' }, info = { text = 'I', hl = 'DiagnosticSignInfo' }, hint = { text = 'H', hl = 'DiagnosticSignHint' }, }, -- By default, only the first line of a multi line message will be shown. -- When this is true, multiple lines will be shown for an entry, separated by -- a space show_multiple_lines = false, -- How long filenames in the quickfix are allowed to be. 0 means no limit. -- Filenames above this limit will be truncated from the beginning with -- `filename_truncate_prefix`. max_filename_length = 40, -- Prefix to use for truncated filenames. filename_truncate_prefix = '[...]', }, }, { 'mfussenegger/nvim-jdtls', ft = 'java', }, { 'kristijanhusak/vim-dadbod-ui', dependencies = { { 'tpope/vim-dadbod', lazy = true }, { 'kristijanhusak/vim-dadbod-completion', ft = { 'sql', 'mysql', 'plsql' }, lazy = true }, }, cmd = { 'DBUI', 'DBUIToggle', 'DBUIAddConnection', 'DBUIFindBuffer', }, init = function() -- Your DBUI configuration vim.g.db_ui_use_nerd_fonts = 1 end, } }