-- English comments only. vim.cmd([[packadd packer.nvim]]) return require("packer").startup(function(use) -- Packer can manage itself use("wbthomason/packer.nvim") -- LSP use("neovim/nvim-lspconfig") -- Mason (LSP/DAP/formatters installer) use({ "williamboman/mason.nvim", config = function() require("mason").setup() end }) use({ "williamboman/mason-lspconfig.nvim", after = "mason.nvim", config = function() require("mason-lspconfig").setup({ ensure_installed = {"rust_analyzer", "csharp_ls" -- Add more later: "ts_ls", "gopls", "pyright", ... }, automatic_installation = true }) end }) -- Autocomplete use("hrsh7th/nvim-cmp") use("hrsh7th/cmp-nvim-lsp") use("L3MON4D3/LuaSnip") -- Treesitter use({ "nvim-treesitter/nvim-treesitter", run = function() pcall(vim.cmd, "TSUpdate") end }) -- Telescope use({ "nvim-telescope/telescope.nvim", requires = {"nvim-lua/plenary.nvim"}, config = function() require("telescope").setup({ extensions = { frecency = { show_scores = false, show_unindexed = true, ignore_patterns = {"*/.git/*", "*/node_modules/*", "*/.cache/*"} } } }) end }) use({ "nvim-telescope/telescope-frecency.nvim", requires = {"tami5/sqlite.lua"}, after = "telescope.nvim", config = function() require("telescope").load_extension("frecency") end }) use({"tami5/sqlite.lua"}) -- Trouble (diagnostics list) use({ "folke/trouble.nvim", requires = {"nvim-tree/nvim-web-devicons"}, config = function() require("trouble").setup({}) end }) -- Formatting (conform) use({"stevearc/conform.nvim"}) -- Session persistence use({ "rmagatti/auto-session", config = function() require("auto-session").setup({ log_level = "error", auto_session_root_dir = vim.fn.stdpath("data") .. "/sessions/", auto_restore_enabled = true, auto_save_enabled = true, sessionoptions = "buffers,curdir,tabpages,winsize,globals" }) end }) -- Debugging -- Debugging use("mfussenegger/nvim-dap") use({ "rcarriga/nvim-dap-ui", requires = {"mfussenegger/nvim-dap", "nvim-neotest/nvim-nio" -- REQUIRED dependency }, config = function() require("dapui").setup() end }) -- Optional icons (used by trouble/telescope) use("nvim-tree/nvim-web-devicons") -- Eye candy use("folke/tokyonight.nvim") use("nvim-lualine/lualine.nvim") use("lewis6991/gitsigns.nvim") use("lukas-reineke/indent-blankline.nvim") use("stevearc/dressing.nvim") use({ "akinsho/bufferline.nvim", tag = "*", requires = {"nvim-tree/nvim-web-devicons"} }) use("MunifTanjim/nui.nvim") use({"rcarriga/nvim-notify"}) use({ "folke/noice.nvim", requires = {"MunifTanjim/nui.nvim", "rcarriga/nvim-notify"} }) use({ "nvimdev/dashboard-nvim", requires = {"nvim-tree/nvim-web-devicons"} }) use("folke/which-key.nvim") use("karb94/neoscroll.nvim") use("echasnovski/mini.animate") use({ "nvim-tree/nvim-tree.lua", requires = {"nvim-tree/nvim-web-devicons"} }) use({ "akinsho/toggleterm.nvim", tag = "*" }) use({ "jackMort/ChatGPT.nvim", requires = {"MunifTanjim/nui.nvim", "nvim-lua/plenary.nvim", "nvim-telescope/telescope.nvim"} }) use("github/copilot.vim") use("stevearc/conform.nvim") end)