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, }, { 'zapling/mason-lock.nvim', cmd = { 'MasonLock', 'MasonLockRestore' }, opts = {}, }, { '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' }, }, }, { '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, }, }