return { -- gitignore generator { "wintermute-cell/gitignore.nvim", cmd = { "Gitignore" }, opts = {}, }, -- git signs { "lewis6991/gitsigns.nvim", events = { "BufReadPost", "BufNewFile" }, opts = { signcolumn = true, current_line_blame = true, attach_to_untracked = false, watch_gitdir = { follow_files = true, }, signs = { add = { text = " " }, change = { text = "󱗜 " }, delete = { text = "󰍵 " }, topdelete = { text = "󱥨 " }, changedelete = { text = "󰾟 " }, untracked = { text = "󰰧 " }, }, }, }, -- Todo Comments { "folke/todo-comments.nvim", event = "BufRead", opts = {}, }, -- Working with file permissions { "lambdalisue/vim-suda", cmd = { "SudaRead", "SudaWrite" }, }, -- Undo tree { "mbbill/undotree", cmd = "UndotreeToggle", keys = { { "u", "UndotreeToggle", desc = "Undo Tree" } }, }, -- visual multi { "mg979/vim-visual-multi", event = "VeryLazy", init = function() vim.g.VM_maps = { ["Find Under"] = "", ["Find Subword Under"] = "", ["Select All"] = "", ["Add Cursor Down"] = "", ["Add Cursor Up"] = "", } end, }, -- dimming the highlights of unused functions, variables, parameters, and more { "zbirenbaum/neodim", enabled = false, event = "LspAttach", config = function() require("neodim").setup({ alpha = 0.5, blend_color = nil, hide = { underline = true, virtual_text = true, signs = true, }, regex = { "[uU]nused", "[nN]ever [rR]ead", "[nN]ot [rR]ead", }, priority = 128, disable = {}, }) end, }, -- file operations { "chrisgrieser/nvim-genghis", keys = { { "fn", function() require("genghis").createNewFile() end, desc = "New File", }, { "fd", function() require("genghis").duplicateFile() end, desc = "Duplicate File", }, { "fr", function() require("genghis").renameFile() end, desc = "Rename File", }, { "fx", function() require("genghis").chmodx() end, desc = "Make Executable", }, }, }, -- Better folding { "kevinhwang91/nvim-ufo", dependencies = "kevinhwang91/promise-async", event = "BufReadPost", keys = { { "zR", function() require("ufo").openAllFolds() end, }, { "zM", function() require("ufo").closeAllFolds() end, }, { "zr", function() require("ufo").openFoldsExceptKinds() end, }, { "zm", function() require("ufo").closeFoldsWith() end, }, }, config = function() vim.o.foldcolumn = "1" vim.o.foldlevel = 99 vim.o.foldlevelstart = 99 vim.o.foldenable = true require("ufo").setup({ provider_selector = function() return { "treesitter", "indent" } end, }) end, }, -- rendering for html and markdown { "OXY2DEV/markview.nvim", lazy = false, -- to load before treesitter priority = 45, opts = { preview = { enable = false, }, }, keys = { { "cv", "Markview toggle", desc = "Toggle markdown preview", mode = "n" }, }, }, -- markdown preview { "iamcco/markdown-preview.nvim", build = "cd app && yarn install", init = function() vim.g.mkdp_filetypes = { "markdown" } end, ft = "markdown", cmd = { "MarkdownPreviewToggle", "MarkdownPreview" }, }, }