return { { "nvim-neo-tree/neo-tree.nvim", keys = { { "ee", ":Neotree toggle float", silent = true, desc = "Float File Explorer" }, { "", ":Neotree toggle left", silent = true, desc = " Left File Explorer" }, }, cmd = { "Neotree" }, opts = { filesystem = { filtered_items = { visible = true, show_hidden_count = true, hide_dotfiles = false, hide_gitignored = true, hide_by_name = { ".git", ".DS_Store", "thumbs.db", ".venv", }, never_show = {}, }, }, window = { position = "right", width = 35, }, }, }, { "folke/flash.nvim", event = "VeryLazy", opts = { modes = { char = { jump_labels = true, }, }, }, -- stylua: ignore keys = { { 'jN', "lua require('flash').jump({search = { forward = false, wrap = false, multi_window = false },})", mode = { "n", "v" }, desc = 'Search Backward', }, { 'jc', '*', desc = 'Word' }, { 'jd', 'FlashDiagnostics', mode = { "n", "v" }, desc = 'Diagnostics' }, { 'jf', 'Telescope jumplist', desc = 'Jumplist' }, { 'jh', '', desc = 'Backward' }, { 'jj', "lua require('flash').remote()", mode = { "n", "v" }, desc = 'Remote' }, { 'jk', "lua require('flash').treesitter()", mode = { "n", "v" }, desc = 'Treesitter' }, { 'jl', '', desc = 'Forward' }, { 'jn', "lua require('flash').jump({search = { forward = true, wrap = false, multi_window = false },})", mode = { "n", "v" }, desc = 'Search Forward', }, { 'jp', "lua require('flash').jump({continue = true})", mode = { "n", "v" }, desc = 'Previous Jump' }, { 'js', "lua require('flash').jump()", mode = { "n", "v" }, desc = 'Search' }, { 'jt', "lua require('flash').treesitter_search()", mode = { "n", "v" }, desc = 'Remote Treesitter' }, { 'jw', 'lua require("flash").jump({ pattern = vim.fn.expand("")})', mode = { "n", "v" }, desc = 'Current Word', }, }, }, { "folke/trouble.nvim", lazy = true, cmd = { "Trouble", "TroubleToggle", "TroubleRefresh" }, opts = { modes = { lsp = { win = { position = "right" }, }, }, }, keys = { { "xx", "Trouble diagnostics toggle", desc = "Diagnostics (Trouble)" }, { "xX", "Trouble diagnostics toggle filter.buf=0", desc = "Buffer Diagnostics (Trouble)" }, { "xs", "Trouble symbols toggle", desc = "Symbols (Trouble)" }, { "xS", "Trouble lsp toggle", desc = "LSP references/definitions/... (Trouble)" }, { "xL", "Trouble loclist toggle", desc = "Location List (Trouble)" }, { "xQ", "Trouble qflist toggle", desc = "Quickfix List (Trouble)" }, { "[q", function() if require("trouble").is_open() then require("trouble").prev({ skip_groups = true, jump = true }) else local ok, err = pcall(vim.cmd.cprev) if not ok then vim.notify(err, vim.log.levels.ERROR) end end end, desc = "Previous Trouble/Quickfix Item", }, { "]q", function() if require("trouble").is_open() then require("trouble").next({ skip_groups = true, jump = true }) else local ok, err = pcall(vim.cmd.cnext) if not ok then vim.notify(err, vim.log.levels.ERROR) end end end, desc = "Next Trouble/Quickfix Item", }, }, }, { "nvim-telescope/telescope.nvim", cmd = "Telescope", version = false, lazy = true, dependencies = { { "nvim-tree/nvim-web-devicons" }, { "nvim-telescope/telescope-fzf-native.nvim", build = "zig" }, { "nvim-telescope/telescope-ui-select.nvim" }, { "nvim-telescope/telescope-symbols.nvim" }, { "nvim-telescope/telescope-file-browser.nvim" }, { "debugloop/telescope-undo.nvim" }, }, keys = { { "ff", "Telescope find_files", desc = "Find Files (CWD)" }, { "fg", "Telescope live_grep", desc = "Live Grep" }, { "fb", "Telescope buffers", desc = "Buffers" }, { "fh", "Telescope help_tags", desc = "Find Help" }, { "fo", "Telescope oldfiles", desc = "Old Recent Files" }, { "fm", "Telescope marks", desc = "Marks" }, { "fH", "Telescope highlights", desc = "Find Highlight Groups" }, { "fG", "Telescope grep_string", desc = "Grep String" }, { "kk", "Telescope keymaps", desc = "Keymaps" }, { "kc", "Telescope commands", desc = "Commands" }, { "kh", "Telescope command_history", desc = "Command History" }, { "ks", "Telescope search_history", desc = "Search History" }, { "fd", "Telescope diagnostics", desc = "Diagnostics" }, { "ef", "Telescope file_browser", desc = "File Browser" }, { "cr", "Telescope reloader", desc = "Reload Module" }, { "cn", "Telescope notify", desc = "Notifications" }, { "fu", "Telescope undo", desc = "Undo History" }, { "fb", "Telescope buffers", desc = "Buffers" }, { "fq", "Telescope quickfix", desc = "Quickfix" }, { "fs", "Telescope current_buffer_fuzzy_find", desc = "Fuzzy Find in File" }, }, config = function() require("configs.telescope") end, }, { "smjonas/inc-rename.nvim", cmd = "IncRename", config = true, }, { "akinsho/toggleterm.nvim", cmd = { "ToggleTerm" }, version = "v2.*", keys = { { "t1", "1ToggleTerm", desc = "Toggle Terminal", mode = "n" }, { "t2", "2ToggleTerm", desc = "Toggle Terminal", mode = "n" }, }, config = function() require("configs.toggleterm") end, }, { "2kabhishek/termim.nvim", cmd = { "Fterm", "FTerm", "Sterm", "STerm", "Vterm", "VTerm" }, keys = { { "th", "Sterm", desc = "Horizontal Terminal" }, { "tv", "Vterm", desc = "Vertical Terminal" }, }, }, { "nvimdev/lspsaga.nvim", lazy = true, event = "LspAttach", config = function() vim.keymap.set( "n", "lo", "Lspsaga outline", { desc = "Lspsaga | Code Outline", silent = true } ) local icons = require("lib.icons") require("lspsaga").setup({ ui = { theme = "round", border = "rounded", devicon = true, title = true, winblend = 1, expand = icons.ui.ArrowOpen, collapse = icons.ui.ArrowClosed, preview = icons.ui.List, code_action = icons.diagnostics.Hint, diagnostic = icons.ui.Bug, incoming = icons.ui.Incoming, outgoing = icons.ui.Outgoing, hover = icons.ui.Comment, }, lightbulb = { enable = false, enable_in_insert = true, sign = true, sign_priority = 40, virtual_text = true, }, symbol_in_winbar = { enable = false, separator = "  ", hide_keyword = true, show_file = true, folder_level = 0, }, }) end, }, { "HiPhish/rainbow-delimiters.nvim", event = { "BufReadPost", "BufNewFile" }, config = function() local rainbow_delimiters = require("rainbow-delimiters") require("rainbow-delimiters.setup").setup({ { strategy = { [""] = rainbow_delimiters.strategy["global"], vim = rainbow_delimiters.strategy["local"], }, query = { [""] = "rainbow-delimiters", lua = "rainbow-blocks", }, priority = { [""] = 110, lua = 210, }, highlight = { "RainbowDelimiterRed", "RainbowDelimiterYellow", "RainbowDelimiterBlue", "RainbowDelimiterOrange", "RainbowDelimiterGreen", "RainbowDelimiterViolet", "RainbowDelimiterCyan", }, }, }) end, }, { "2kabhishek/tdo.nvim", dependencies = "nvim-telescope/telescope.nvim", cmd = { "Tdo", "TdoEntry", "TdoNote", "TdoTodos", "TdoToggle", "TdoFind", "TdoFiles" }, keys = { { "nd", "Tdo", desc = "Today's Todo" }, { "ne", "TdoEntry", desc = "Today's Entry" }, { "nf", "TdoFiles", desc = "All Notes" }, { "ng", "TdoFind", desc = "Find Notes" }, { "nh", "Tdo -1", desc = "Yesterday's Todo" }, { "nl", "Tdo 1", desc = "Tomorrow's Todo" }, { "nn", "TdoNote", desc = "New Note" }, { "nt", "TdoTodos", desc = "Incomplete Todos" }, { "nx", "TdoToggle", desc = "Toggle Todo" }, }, }, }