return { { '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', 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, }, }