require('packer').startup(function(use) -- Package manager use 'wbthomason/packer.nvim' use { -- LSP Configuration & Plugins 'neovim/nvim-lspconfig', requires = { -- Automatically install LSPs to stdpath for neovim 'williamboman/mason.nvim', 'williamboman/mason-lspconfig.nvim', -- Useful status updates for LSP 'j-hui/fidget.nvim', -- Additional lua configuration, makes nvim stuff amazing 'folke/neodev.nvim', }, } use 'RRethy/nvim-base16' use 'xiyaowong/nvim-transparent' use 'm4xshen/autoclose.nvim' use { -- Autocompletion 'hrsh7th/nvim-cmp', requires = { 'hrsh7th/cmp-nvim-lsp', 'L3MON4D3/LuaSnip', 'saadparwaiz1/cmp_luasnip' }, } use { -- Highlight, edit, and navigate code 'nvim-treesitter/nvim-treesitter', run = function() pcall(require('nvim-treesitter.install').update { with_sync = true }) end, } use { -- Additional text objects via treesitter 'nvim-treesitter/nvim-treesitter-textobjects', after = 'nvim-treesitter', } use { 'nvim-tree/nvim-tree.lua', requires = { 'nvim-tree/nvim-web-devicons', -- optional, for file icons }, } use { 'akinsho/toggleterm.nvim' } use { -- rainbow brackets using treesitter 'p00f/nvim-ts-rainbow', after = 'nvim-treesitter' } use { 'glepnir/dashboard-nvim' } -- Git related plugins use 'tpope/vim-fugitive' use 'tpope/vim-rhubarb' use 'lewis6991/gitsigns.nvim' use 'nvim-lualine/lualine.nvim' -- Fancier statusline use 'lukas-reineke/indent-blankline.nvim' -- Add indentation guides even on blank lines use 'numToStr/Comment.nvim' -- "gc" to comment visual regions/lines use 'tpope/vim-sleuth' -- Detect tabstop and shiftwidth automatically use 'matbme/JABS.nvim' if is_bootstrap then require('packer').sync() end end)