return { -- ╭───────────╮ -- │ autopairs │ -- ╰───────────╯ { "windwp/nvim-autopairs", event = { "InsertEnter" }, dependencies = { "hrsh7th/nvim-cmp", }, config = function() -- import nvim-autopairs local autopairs = require("nvim-autopairs") -- configure autopairs autopairs.setup({ check_ts = true, -- enable treesitter ts_config = { lua = { "string" }, -- don't add pairs in lua string treesitter nodes javascript = { "template_string" }, -- don't add pairs in javascript template_string treesitter nodes java = false, -- don't check treesitter on java }, }) -- import nvim-autopairs completion functionality local cmp_autopairs = require("nvim-autopairs.completion.cmp") -- import nvim-cmp plugin (completions plugin) local cmp = require("cmp") -- make autopairs and completion work together cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done()) end, }, -- ╭─────────────────────────────────────╮ -- │ ╭───────────────╮ │ -- │ │ comment boxes │<- yes, those ones │ -- │ ╰───────────────╯ │ -- ╰─────────────────────────────────────╯ { "LudoPinelli/comment-box.nvim", lazy = false, opts = { comment_style = "line", doc_width = 90, -- width of the document box_width = 75, -- width of the boxes line_width = 120, -- width of the lines }, -- ───────────────────────────────< keymaps - commentboxes >─────────────────────────────── vim.keymap.set( "n", "cd", "CBd", { noremap = true, silent = true, desc = "[c]ommentbox [d]elete" } ), vim.keymap.set( "v", "cd", "CBd", { noremap = true, silent = true, desc = "[c]ommentbox [d]elete" } ), vim.keymap.set( "n", "cy", "CBy", { noremap = true, silent = true, desc = "[y]ank content of Commentbox" } ), vim.keymap.set( "v", "cy", "CBy", { noremap = true, silent = true, desc = "[y]ank content of Commentbox" } ), vim.keymap.set( "n", "cb", "CBlabox1", { noremap = true, silent = true, desc = "[c]reate comment [b]ox" } ), vim.keymap.set( "v", "cb", "CBlabox1", { noremap = true, silent = true, desc = "[c]reate comment [b]ox" } ), vim.keymap.set( "n", "cB", "CBcabox1", { noremap = true, silent = true, desc = "[c]reate comment [b]ox (centered)" } ), vim.keymap.set( "v", "cB", "CBcabox1", { noremap = true, silent = true, desc = "[c]reate comment [b]ox (centered)" } ), vim.keymap.set( "n", "cc", "CBllbox14", { noremap = true, silent = true, desc = "[c]reate [c]omment" } ), vim.keymap.set( "v", "cc", "CBllbox14", { noremap = true, silent = true, desc = "[c]reate [c]omment" } ), vim.keymap.set( "n", "cC", "CBclbox14", { noremap = true, silent = true, desc = "[c]reate [c]omment (C)entered" } ), vim.keymap.set( "v", "cC", "CBclbox14", { noremap = true, silent = true, desc = "[c]reate [c]omment (C)entered" } ), vim.keymap.set( "n", "cl", "CBllline8", { noremap = true, silent = true, desc = "[c]reate comment [l]ine" } ), vim.keymap.set( "n", "cL", "CBlcline8", { noremap = true, silent = true, desc = "[c]reate comment [L]ine" } ), }, -- ─< ERROR: Those comments are really great! >────────────────────────────────────────── -- ─────────────────────< NOTE: And they can be pretty satisfying... >───────────────────── -- ╭──────────────────────────────────────╮ -- │ WARN: Also they can change in color! │ -- ╰──────────────────────────────────────╯ { "folke/todo-comments.nvim", dependencies = { "nvim-lua/plenary.nvim" }, opts = { keywords = { NOTE = { icon = " ", color = "hint", alt = { "TIP" } }, INFO = { icon = " ", color = "info", alt = { "INFORMATION" } }, ERROR = { icon = " ", color = "error", alt = { "ERR" } }, WARNING = { icon = " ", color = "warning", alt = { "WARN", "WHY" } }, }, }, }, -- ╭───────────╮ -- │ colorizer │ -- ╰───────────╯ { "brenoprata10/nvim-highlight-colors", opts = { ---Render style ---@usage 'background'|'foreground'|'virtual' render = "background", -- render = "virtual", ---Set virtual symbol (requires render to be set to 'virtual') virtual_symbol = "■", ---Set virtual symbol suffix (defaults to '') virtual_symbol_prefix = "", ---Set virtual symbol suffix (defaults to ' ') virtual_symbol_suffix = " ", ---Set virtual symbol position() ---@usage 'inline'|'eol'|'eow' ---inline mimics VS Code style ---eol stands for `end of column` - Recommended to set `virtual_symbol_suffix = ''` when used. ---eow stands for `end of word` - Recommended to set `virtual_symbol_prefix = ' ' and virtual_symbol_suffix = ''` when used. virtual_symbol_position = "inline", ---Highlight hex colors, e.g. '#FFFFFF' enable_hex = true, ---Highlight short hex colors e.g. '#fff' enable_short_hex = true, ---Highlight rgb colors, e.g. 'rgb(0 0 0)' enable_rgb = true, ---Highlight hsl colors, e.g. 'hsl(150deg 30% 40%)' enable_hsl = true, ---Highlight CSS variables, e.g. 'var(--testing-color)' enable_var_usage = true, ---Highlight named colors, e.g. 'green' enable_named_colors = true, ---Highlight tailwind colors, e.g. 'bg-blue-500' enable_tailwind = true, ---Set custom colors ---Label must be properly escaped with '%' to adhere to `string.gmatch` --- :help string.gmatch custom_colors = { { label = "%-%-theme%-primary%-color", color = "#0f1219" }, { label = "%-%-theme%-secondary%-color", color = "#5a5d64" }, }, -- Exclude filetypes or buftypes from highlighting e.g. 'exclude_buftypes = {'text'}' exclude_filetypes = {}, exclude_buftypes = {}, }, }, -- ╭──────────────────────────────╮ -- │ renaming (also project wide) │ -- ╰──────────────────────────────╯ { "MagicDuck/grug-far.nvim", opts = { headerMaxWidth = 80 }, cmd = "GrugFar", -- ────────────────────────────────────< keybindings >───────────────────────────────── keys = { { "sr", function() local grug = require("grug-far") local ext = vim.bo.buftype == "" and vim.fn.expand("%:e") grug.grug_far({ transient = true, prefills = { filesFilter = ext and ext ~= "" and "*." .. ext or nil, }, }) end, mode = { "n", "v" }, desc = "Search and Replace", }, }, }, -- ╭──────────╮ -- │ snippets │ -- ╰──────────╯ { { "chrisgrieser/nvim-scissors", lazy = false, dependencies = { "nvim-telescope/telescope.nvim", "garymjr/nvim-snippets" }, opts = { snippetDir = "~/.config/nvim/snippets", -- <- i have this as a submodule in my neovim config to have a seperate repo https://git.k4li.de/dotfiles/nvim-snippets.git }, }, -- ──────────────────────────< keybindings for snippets engine >─────────────────────── vim.keymap.set("n", "sm", ":ScissorsEditSnippet"), vim.keymap.set("v", "sa", ":ScissorsAddNewSnippet"), }, }