local utils = require("utils") local fn = vim.fn -- Automatically install packer local install_path = fn.stdpath("data") .. "/site/pack/packer/start/packer.nvim" if fn.empty(fn.glob(install_path)) > 0 then PACKER_BOOTSTRAP = fn.system({ "git", "clone", "--depth", "1", "https://github.com/wbthomason/packer.nvim", install_path, }) print("Installing packer close and reopen Neovim...") vim.cmd([[packadd packer.nvim]]) end -- Autocommand that reloads neovim whenever you save the plugins.lua file vim.cmd([[ augroup packer_user_config autocmd! autocmd BufWritePost pack.lua source | PackerSync augroup end ]]) -- Use a protected call so we don't error out on first use local status_ok, packer = pcall(require, "packer") if not status_ok then return end -- Have packer use a popup window packer.init({ auto_reload_compiled = true, display = { open_fn = function() return require("packer.util").float({ border = "rounded" }) end, }, }) -- Install your plugins here return packer.startup(function(use) use("wbthomason/packer.nvim") -- Have packer manage itself -- nvimlsp plugins --use({ -- "williamboman/mason.nvim", -- config = function() -- require("mason").setup() -- require("mason-lspconfig").setup({ -- ensure_installed = { "sumneko_lua", "clangd", "rust_analyzer" }, -- }) -- end, --}) use("williamboman/mason.nvim") use("williamboman/mason-lspconfig.nvim") use("neovim/nvim-lspconfig") use("williamboman/nvim-lsp-installer") use("glepnir/lspsaga.nvim") use("nvim-lua/lsp-status.nvim") --use({ -- "glepnir/lspsaga.nvim", -- branch = "main", -- config = function() -- local saga = require("lspsaga") -- saga.init_lsp_saga({ -- -- your configuration -- }) -- end, --}) -- use("nvim-lua/popup.nvim") use("nvim-lua/plenary.nvim") -- Useful lua functions used ny lots of plugins use("jose-elias-alvarez/null-ls.nvim") use({ "SmiteshP/nvim-navic", requires = "neovim/nvim-lspconfig", }) --use("SmiteshP/nvim-gps") -- autocomplete plugins use("hrsh7th/nvim-cmp") use("hrsh7th/cmp-nvim-lsp") use("hrsh7th/cmp-buffer") use("hrsh7th/cmp-path") use("hrsh7th/cmp-cmdline") use("onsails/lspkind-nvim") use("saadparwaiz1/cmp_luasnip") -- snippets use("L3MON4D3/LuaSnip") --snippet engine use("rafamadriz/friendly-snippets") -- a bunch of snippets to use --use("github/copilot.vim") --use({ --"zbirenbaum/copilot.lua", --event = { "VimEnter" }, --config = function() --vim.defer_fn(function() --require("plugins.copilot") --end, 100) --end, --}) --use({ --"zbirenbaum/copilot-cmp", --module = "copilot_cmp", --}) -- treesitter plugins use({ "nvim-treesitter/nvim-treesitter", run = ":TSUpdate" }) --folding, jumping, refactoring... use("nvim-treesitter/nvim-treesitter-refactor") use("nvim-treesitter/nvim-treesitter-context") --use({ -- "danymat/neogen", -- config = function() -- require("neogen").setup({ snippet_engine = "luasnip" }) -- end, -- requires = "nvim-treesitter/nvim-treesitter", --}) use({ "junegunn/fzf", run = ":call fzf#install()" }) -- telescope plugins use("nvim-telescope/telescope.nvim") use({ "nvim-telescope/telescope-fzf-native.nvim", run = "make" }) use("tami5/sqlite.lua") use("nvim-telescope/telescope-frecency.nvim") use("nvim-telescope/telescope-ui-select.nvim") use("nvim-telescope/telescope-media-files.nvim") use("nvim-telescope/telescope-file-browser.nvim") -- search emoji and other symbols use({ "nvim-telescope/telescope-symbols.nvim", after = "telescope.nvim" }) -- statusline plugins --use("nvim-lualine/lualine.nvim") use({ "nvim-lualine/lualine.nvim", requires = { "kyazdani42/nvim-web-devicons", opt = true }, }) --use({ -- "folke/trouble.nvim", -- requires = "kyazdani42/nvim-web-devicons", -- config = function() -- require("trouble").setup({ -- -- your configuration comes here -- -- or leave it empty to use the default settings -- -- refer to the configuration section below -- }) -- end, --}) use("rebelot/heirline.nvim") --use({ "akinsho/bufferline.nvim", tag = "v2.*", requires = "kyazdani42/nvim-web-devicons" }) --use("itchyny/lightline.vim") -- debug plugins --use("puremourning/vimspector") use("mfussenegger/nvim-dap") use("rcarriga/nvim-dap-ui") --use({ -- "rcarriga/neotest", -- requires = { -- "nvim-lua/plenary.nvim", -- "nvim-treesitter/nvim-treesitter", -- "antoinemadec/FixCursorHold.nvim", -- "rcarriga/neotest-python", -- "rcarriga/neotest-vim-test", -- "rcarriga/neotest-plenary", -- "vim-test/vim-test", -- }, -- config = function() -- require("plugins.neotest") -- end, --}) --use("vim-test/vim-test") --use({ -- "rcarriga/vim-ultest", -- requires = { "vim-test/vim-test" }, -- run = ":UpdateRemotePlugins", -- config = function() -- require("plugins.ultest") -- end, --}) -- UI use("karb94/neoscroll.nvim") use("folke/which-key.nvim") use("folke/lsp-colors.nvim") use("MunifTanjim/prettier.nvim") -- Prettier plugin for Neovim's built-in LSP client use("norcalli/nvim-colorizer.lua") use("folke/zen-mode.nvim") use("romainl/vim-cool") --use("p00f/nvim-ts-rainbow") --use("goolord/alpha-nvim") --use("feline-nvim/feline.nvim") --use({ "fgheng/winbar.nvim" }) --use("vim-airline/vim-airline") --use("kdheepak/tabline.nvim") -- use({ -- "kdheepak/tabline.nvim", -- config = function() -- require("tabline").setup({ enable = false }) -- end, -- requires = { "hoob3rt/lualine.nvim", "kyazdani42/nvim-web-devicons" }, -- notification plugin use("rcarriga/nvim-notify") --use("lukas-reineke/indent-blankline.nvim") use("kyazdani42/nvim-web-devicons") -- Colorschemes use("Mofiqul/vscode.nvim") use("gruvbox-community/gruvbox") use("srcery-colors/srcery-vim") use("tomasr/molokai") use("ayu-theme/ayu-vim") --use("sjl/badwolf") use("joshdick/onedark.vim") use("folke/tokyonight.nvim") use("everblush/everblush.nvim") use("sainnhe/edge") use("EdenEast/nightfox.nvim") use("bluz71/vim-nightfly-guicolors") --use({ "shaunsingh/oxocarbon.nvim", run = "./install.sh" }) use("jacoborus/tender.vim") use("sainnhe/sonokai") use("NTBBloodbath/doom-one.nvim") -- Utilities use("nathom/filetype.nvim") use("christoomey/vim-tmux-navigator") --use("preservim/vimux") use("myusuf3/numbers.vim") use("windwp/nvim-autopairs") use("lewis6991/gitsigns.nvim") use("dinhhuy258/git.nvim") -- For git blame & browse use("kyazdani42/nvim-tree.lua") use("numToStr/Comment.nvim") use("akinsho/toggleterm.nvim") --use("godlygeek/tabular") --use("Vonr/align.nvim") --use("junegunn/vim-easy-align") --use("dstein64/vim-startuptime") use("tweekmonster/startuptime.vim") use("lewis6991/impatient.nvim") -- use("luukvbaal/stabilize.nvim") --use({ -- "ggandor/leap.nvim", -- config = function() -- require("leap").set_default_keymaps() -- end, --}) --use("Shatur/neovim-session-manager") --use("rmagatti/auto-session") --use("rmagatti/session-lens") --use("ahmedkhalf/project.nvim") --use("aserowy/tmux.nvim") --use("wakatime/vim-wakatime") --use("tpope/vim-eunuch") -- Handy unix command inside Vim (Rename, Move etc.) use({ "tpope/vim-eunuch", cmd = { "Rename", "Delete" } }) --use("tpope/vim-fugitive") --use("tpope/vim-surround") --use("tpope/vim-obsession") --use("tpope/vim-unimpaired") --use("voldikss/vim-floaterm") --use("vimpostor/vim-tpipeline") --use({ -- "vimwiki/vimwiki", -- config = function() -- vim.g.vimwiki_list = { -- { -- path = "~/", -- syntax = "markdown", -- ext = ".md", -- }, -- } -- vim.g.vimwiki_ext2syntax = { -- [".md"] = "markdown", -- [".markdown"] = "markdown", -- [".mdown"] = "markdown", -- Automatically set up your configuration after cloning packer.nvim -- Put this at the end after all plugins if PACKER_BOOTSTRAP then require("packer").sync() end end)