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' }, }, }, { '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', -- '', -- }, }, }, { '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, }, { '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, }, { 'fpob/nette.vim', ft = 'nette' }, { 'ziglang/zig.vim', ft = 'zig' }, { 'chrisbra/csv.vim', ft = 'csv' }, { 'NoahTheDuke/vim-just' }, { 'towolf/vim-helm' }, { 'grafana/vim-alloy' }, { 'kcl-lang/kcl.nvim' }, { '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, } }