return { -- Treesitter: syntax highlighting + code understanding { "nvim-treesitter/nvim-treesitter", opts = { ensure_installed = { "vim", "lua", "vimdoc", "go", "gomod", "gowork", "gosum", "c_sharp", "yaml", "bash", "json", "jsonc", "toml", "markdown", "markdown_inline", }, }, }, -- LSP servers { "neovim/nvim-lspconfig", config = function() require "configs.lspconfig" end, }, -- Formatting (with format-on-save) { "stevearc/conform.nvim", event = "BufWritePre", opts = require "configs.conform", }, -- Mason: auto-install LSPs, formatters, and DAP adapters { "williamboman/mason.nvim", opts = { ensure_installed = { -- LSPs "gopls", "omnisharp", "yaml-language-server", "bash-language-server", -- Formatters / linters "goimports", "csharpier", "prettier", "shfmt", "stylua", -- DAP adapters "delve", -- Go debugger "netcoredbg", -- .NET debugger }, }, }, -- Diagnostics panel { "folke/trouble.nvim", cmd = "Trouble", opts = { use_diagnostic_signs = true }, }, -- Floating terminal { "akinsho/toggleterm.nvim", version = "*", cmd = "ToggleTerm", keys = { [[]] }, opts = { open_mapping = [[]], direction = "float", float_opts = { border = "curved" }, }, }, -- Lazygit inside Neovim { "kdheepak/lazygit.nvim", cmd = "LazyGit", dependencies = { "nvim-lua/plenary.nvim" }, }, -- DAP core + UI { "mfussenegger/nvim-dap", dependencies = { "rcarriga/nvim-dap-ui", "nvim-neotest/nvim-nio", -- required by dap-ui "leoluz/nvim-dap-go", }, config = function() require "configs.dap" end, }, -- Highlight TODO/FIXME/HACK/NOTE comments { "folke/todo-comments.nvim", dependencies = { "nvim-lua/plenary.nvim" }, event = "BufReadPost", opts = {}, }, -- Harpoon2: quick-jump between pinned files per project { "ThePrimeagen/harpoon", branch = "harpoon2", dependencies = { "nvim-lua/plenary.nvim" }, opts = {}, }, -- Oil: edit the filesystem like a buffer { "stevearc/oil.nvim", lazy = false, dependencies = { "nvim-tree/nvim-web-devicons" }, opts = { -- Keep nvim-tree as the default explorer; oil opens on demand via `-` default_file_explorer = false, columns = { "icon", "permissions", "size", "mtime" }, view_options = { show_hidden = true }, -- Don't clobber window-navigation keys keymaps = { [""] = false, [""] = false, }, }, }, }