return { { "nvim-telescope/telescope.nvim", cmd = "Telescope", keys = function() return {} end, opts = { defaults = { layout_strategy = "flex", layout_config = { flex = { height = 0.95, width = 0.95, flip_columns = 100, }, vertical = { preview_height = 0.5, preview_cutoff = 5 }, horizontal = { preview_width = 0.7, preview_cutoff = 99 }, }, }, }, }, { "nvim-telescope/telescope-project.nvim", lazy = true, }, { "nvim-telescope/telescope-file-browser.nvim", lazy = true, config = function() require("telescope").load_extension("file_browser") end, }, { "jvgrootveld/telescope-zoxide", lazy = true, config = function() local z_utils = require("telescope._extensions.zoxide.utils") local t = require("telescope") -- Configure the extension t.setup({ extensions = { zoxide = { prompt_title = "[ Queries ]", mappings = { default = { after_action = function(selection) print("Update to (" .. selection.z_score .. ") " .. selection.path) end, }, [""] = { before_action = function(selection) print("before C-s") end, action = function(selection) vim.cmd("edit " .. selection.path) end, }, [""] = { action = z_utils.create_basic_command("split") }, }, }, }, }) -- Load the extension t.load_extension("zoxide") end, }, { "lervag/vimtex", config = function() vim.cmd("let g:vimtex_quickfix_mode=0") vim.cmd("let g:vimtex_view_general_viewer = 'evince'") vim.cmd("let g:vimtex_compiler_method = 'latexmk'") vim.cmd( "let g:vimtex_compiler_latexmk = {'options': ['-pdf', '-shell-escape', '-file-line-error', '--extra-mem-bot=10000000', '-synctex=1', '-interaction=nonstopmode',],}" ) end, }, { "jbyuki/instant.nvim", config = function() vim.cmd("let g:instant_username = 'dashie'") end, }, { "nvim-treesitter/nvim-treesitter", config = function(_, _) local opts = { ensure_installed = {}, -- parser_install_dir = "~/.config/nvim", textobjects = { select = { enable = true, lookahead = true, keymaps = { -- You can use the capture groups defined in textobjects.scm ["af"] = "@function.outer", ["if"] = "@function.inner", ["ac"] = "@class.outer", ["ic"] = "@class.inner", }, }, }, } require("nvim-treesitter.configs").setup(opts) end, }, { "karb94/neoscroll.nvim", config = function() require("neoscroll").setup() end, }, { "kaarmu/typst.vim", lazy = true, event = "FileType typst", }, { "folke/which-key.nvim", event = "VeryLazy", opts = { plugins = { spelling = true }, defaults = { mode = { "n", "v" }, ["g"] = { name = "+goto" }, ["gz"] = { name = "+surround" }, ["]"] = { name = "+next" }, ["["] = { name = "+prev" }, [""] = { name = "+tabs" }, ["b"] = { name = "+buffer" }, ["c"] = { name = "+code" }, ["f"] = { name = "+file/find" }, ["g"] = { name = "+git" }, ["gh"] = { name = "+hunks" }, ["q"] = { name = "+quit/session" }, ["s"] = { name = "+search" }, ["u"] = { name = "+ui" }, ["w"] = { name = "+windows" }, ["x"] = { name = "+diagnostics/quickfix" }, ["h"] = { name = "+harpoon" }, ["d"] = { name = "+DAP" }, }, }, config = function(_, opts) local wk = require("which-key") wk.setup(opts) wk.register(opts.defaults) end, }, { "f-person/git-blame.nvim", lazy = true, }, { "mg979/vim-visual-multi", }, { "barreiroleo/ltex_extra.nvim", ft = { "tex", "typst", "typ" }, lazy = true, }, { "smjonas/inc-rename.nvim", lazy = true, event = "BufEnter", config = function() require("inc_rename").setup({ cmd_name = "IncRename", -- the name of the command hl_group = "Substitute", -- the highlight group used for highlighting the identifier's new name preview_empty_name = true, -- whether an empty new name should be previewed; if false the command preview will be cancelled instead show_message = true, -- whether to display a `Renamed m instances in n files` message after a rename operation input_buffer_type = nil, -- the type of the external input buffer to use (the only supported value is currently "dressing") post_hook = nil, -- callback to run after renaming, receives the result table (from LSP handler) as an argument }) end, }, { "nvim-tree/nvim-tree.lua", dependencies = { "nvim-tree/nvim-web-devicons" }, config = function() require("nvim-tree").setup({ renderer = { group_empty = true, }, view = { side = "right", }, diagnostics = { enable = true, }, }) end, keys = { { "fe", function() require("nvim-tree.api").tree.toggle() end, desc = "Explorer NvimTree (root dir)", }, { "fE", function() require("nvim-tree.api").tree.toggle() end, desc = "Explorer NvimTree (cwd)", }, { "", "fe", desc = "Explorer NvimTree (root dir)", remap = true }, { "", "fE", desc = "Explorer NvimTree (cwd)", remap = true }, }, }, { "rcarriga/nvim-dap-ui", keys = { { "dk", function() require("dap").down() end, desc = "Down", }, { "dl", function() require("dap").up() end, desc = "Up", }, { "d;", function() require("dap").run_last() end, desc = "Run Last", }, }, }, { "nvim-neotest/neotest", dependencies = { "rcasia/neotest-java", }, opts = { adapters = { ["neotest-java"] = { ignore_wrapper = false, -- whether to ignore maven/gradle wrapper junit_jar = "/home/dashie/.local/share/nvim/mason/bin/junit-standalone.jar", -- default: .local/share/nvim/neotest-java/junit-platform-console-standalone-[version].jar }, }, }, }, { "DreamMaoMao/yazi.nvim", dependencies = { "nvim-telescope/telescope.nvim", "nvim-lua/plenary.nvim", }, keys = { { "fy", "Yazi", desc = "Toggle Yazi" }, }, }, { "sindrets/diffview.nvim", keys = { { "gd", "DiffviewOpen", desc = "Toggle Difftool" }, }, }, { "akinsho/git-conflict.nvim", version = "*", config = true }, { "Hoffs/omnisharp-extended-lsp.nvim" }, { "barreiroleo/ltex_extra.nvim", branch = "dev", ft = { "tex", "typst", "text" }, -- this causes an error with fsharp since -- they use markdown to show lsp messages config = function() require("ltex_extra").setup({ load_langs = { "en-US" }, path = vim.fn.stdpath("config") .. "/spell", }) end, }, { "ionide/Ionide-vim", ft = "fsharp" }, { "mrcjkb/haskell-tools.nvim", version = "^3", lazy = false, }, }