return { { "ThePrimeagen/refactoring.nvim", config = function() require("refactoring").setup() -- vim.keymap.set("x", "re", ":Refactor extract ") -- vim.keymap.set("x", "rf", ":Refactor extract_to_file ") -- -- vim.keymap.set("x", "rv", ":Refactor extract_var ") -- -- vim.keymap.set({ "n", "x" }, "ri", ":Refactor inline_var") -- -- vim.keymap.set("n", "rI", ":Refactor inline_func") -- -- vim.keymap.set("n", "rb", ":Refactor extract_block") -- vim.keymap.set("n", "rbf", ":Refactor extract_block_to_file") -- load refactoring Telescope extension require("telescope").load_extension("refactoring") vim.keymap.set({ "n", "x" }, "rr", function() require("telescope").extensions.refactoring.refactors() end, { desc = "Refactor" }) end, }, { "2kabhishek/nerdy.nvim", dependencies = { "stevearc/dressing.nvim" }, cmd = "Nerdy", }, { "folke/persistence.nvim", event = "BufReadPre", opts = { options = vim.opt.sessionoptions:get() }, keys = { { "ms", function() require("persistence").load() end, desc = "Restore Session", }, { "ml", function() require("persistence").load({ last = true }) end, desc = "Restore Last Session", }, { "md", function() require("persistence").stop() end, desc = "Don't Save Current Session", }, }, }, { "nvim-lua/plenary.nvim", lazy = true, }, { "iamcco/markdown-preview.nvim", build = "cd app && yarn install", ft = { "markdown" }, keys = { { "cm", "MarkdownPreviewToggle", desc = "toggle markdown preview", }, }, }, { "nvim-pack/nvim-spectre", build = false, cmd = "Spectre", opts = { open_cmd = "noswapfile vnew" }, keys = { { "mr", function() require("spectre").open() end, desc = "Replace in Files (Spectre)", }, }, }, { "szw/vim-maximizer", keys = { { "mm", "MaximizerToggle", desc = "Maximize/minimize a split" }, }, }, { "folke/zen-mode.nvim", cmd = { "ZenMode" }, opts = {}, keys = { { "wz", "ZenMode", desc = "Toggle zen mode" }, }, }, { "chrisgrieser/nvim-recorder", dependencies = { "rcarriga/nvim-notify" }, event = "VeryLazy", vscode = true, keys = { { "q", desc = "Start Recording" }, { "Q", desc = "Play Recording" }, { "", desc = "Switch Slot" }, { "cq", desc = "Edit Macro" }, { "yq", desc = "Yank Macro" }, { "dq", desc = "Delete All Macros" }, }, opts = { useNerdFontsIcons = false, slots = { "a", "b", "c", "d" }, mapping = { startStopRecording = "q", playMacro = "Q", editMacro = "cq", switchSlot = "", deleteAllMacros = "dq", yankMacro = "yq", }, }, }, { "creativenull/dotfyle-metadata.nvim", cmd = { "DotfyleGenerate", "DotfyleOpen" }, }, { "willothy/flatten.nvim", priority = 1001, opts = { window = { open = "alternate", }, }, }, { "wakatime/vim-wakatime", event = { "VimEnter" }, lazy = false, }, { "mvllow/modes.nvim", event = { "BufReadPost", "BufNewFile" }, tag = "v0.2.0", config = function() require("modes").setup({ colors = { visual = "#f5c359", delete = "#c75c6a", copy = "#78ccc5", insert = "#c5739a", }, line_opacity = 0.15, set_cursor = true, set_cursorline = true, set_number = true, ignore_filetypes = { "NvimTree", "TelescopePrompt" }, }) end, }, { "LunarVim/bigfile.nvim", event = { "BufEnter", "WinEnter" }, opts = { -- Disables LSP/treesitter, etc for files above 5000 lives (even if they have really long lines) pattern = function(bufnr, filesize_mib) if filesize_mib >= 2 then return true end -- you can't use `nvim_buf_line_count` because this runs on BufReadPre local file_contents = vim.fn.readfile(vim.api.nvim_buf_get_name(bufnr)) local file_length = #file_contents if file_length > 5000 then return true end return false end, }, }, { "m4xshen/hardtime.nvim", config = function() require("hardtime").setup({ enabled = true }) end, cmd = "Hardtime", init = function() vim.keymap.set("n", "ch", "HardtimeToggle", { desc = "Toggle Hardtime" }) end, }, }