-- This file can be loaded by calling `lua require('plugins')` from your init.vim local ensure_packer = function() local fn = vim.fn local install_path = fn.stdpath("data") .. "/site/pack/packer/start/packer.nvim" if fn.empty(fn.glob(install_path)) > 0 then fn.system({ "git", "clone", "--depth", "1", "https://github.com/wbthomason/packer.nvim", install_path }) vim.cmd([[packadd packer.nvim]]) return true end return false end local packer_bootstrap = ensure_packer() return require("packer").startup(function(use) -- Packer can manage itself use("wbthomason/packer.nvim") use("folke/tokyonight.nvim") use({ "nvim-telescope/telescope.nvim", tag = "0.1.0", requires = { { "nvim-lua/plenary.nvim" } }, }) use({ "nvim-treesitter/nvim-treesitter", run = function() local ts_update = require("nvim-treesitter.install").update({ with_sync = true }) ts_update() end, }) use({ "williamboman/mason.nvim" }) use({ "williamboman/mason-lspconfig.nvim" }) -- configure lsp servers use("neovim/nvim-lspconfig") use("hrsh7th/cmp-nvim-lsp") use("hrsh7th/cmp-buffer") use("hrsh7th/nvim-cmp") -- use("tzachar/cmp-tabnine", { run = "./install.sh" }) use("onsails/lspkind-nvim") use("nvim-lua/lsp_extensions.nvim") use("glepnir/lspsaga.nvim") use("simrat39/symbols-outline.nvim") use("L3MON4D3/LuaSnip") use("saadparwaiz1/cmp_luasnip") -- formatting & linting use("jose-elias-alvarez/null-ls.nvim") use("jayp0521/mason-null-ls.nvim") use({ "nvim-lualine/lualine.nvim", requires = { "nvim-tree/nvim-web-devicons", opt = true }, }) use({ "lewis6991/gitsigns.nvim", config = function() require("gitsigns").setup() end, }) use("tpope/vim-fugitive") 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({ "kylechui/nvim-surround", tag = "*", -- Use for stability; omit to use `main` branch for the latest features config = function() require("nvim-surround").setup({ -- Configuration here, or leave empty to use defaults }) end, }) -- 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)