-- Make sure to install packer via the AUR -- $ yay -S nvim-packer-git local packer_status_ok, packer = pcall(require, "packer") if not packer_status_ok then return end vim.cmd [[packadd packer.nvim]] packer.startup { function(use) -- git clone --depth 1 https://github.com/wbthomason/packer.nvim \ -- ~/.local/share/nvim/site/pack/packer/start/packer.nvim -- Packer will try to delete itself otherwise use 'wbthomason/packer.nvim' -- -- General -- -- General Lua functions use { 'nvim-lua/plenary.nvim' } use { 'nvim-lua/popup.nvim' } -- General optimizations use { 'lewis6991/impatient.nvim' } use { 'nathom/filetype.nvim', config = function() vim.g.did_load_filetypes = 1 end } -- General Assets/Resources use { 'kyazdani42/nvim-web-devicons', config = function() require'configs.icons'.config() end } -- -- Style -- -- Colorscheme (See autocommands.lua) use { 'lunarvim/darkplus.nvim' } -- Buffer Line use { 'moll/vim-bbye' } -- Close buffers softly use { 'akinsho/bufferline.nvim', requires = { { 'kyazdani42/nvim-web-devicons' } }, config = function() require'configs.bufferline'.config() end } -- Git (git-blame must be before lualine) use { 'lewis6991/gitsigns.nvim', config = function() require'configs.gitsigns'.config() end } use { 'f-person/git-blame.nvim', config = function() require'configs.git-blame'.config() end } -- Status Line use { 'nvim-lualine/lualine.nvim', config = function() require'configs.lualine'.config() end } -- NvimTree use { 'kyazdani42/nvim-tree.lua', requires = { { 'kyazdani42/nvim-web-devicons' } }, config = function() require'configs.nvim-tree'.config() end } -- Show indentation use { 'lukas-reineke/indent-blankline.nvim', config = function() require'configs.indent-blankline'.config() end } -- Telescope (find files, words, git commits, etc) use { 'nvim-telescope/telescope.nvim', config = function() require'configs.telescope'.config() end } -- use { 'nvim-telescope/telescope-fzf-native.nvim', run = 'make' } -- -- Treesitter -- -- Treesitter use { 'nvim-treesitter/nvim-treesitter', run = ':TSUpdate', config = function() require'configs.treesitter'.config() end } -- Auto-close tags use { 'windwp/nvim-ts-autotag', after = 'nvim-treesitter' } -- Context-based auto commenting use { 'JoosepAlviste/nvim-ts-context-commentstring', after = 'nvim-treesitter' } -- -- LSP -- -- Cursorhold fix use { "antoinemadec/FixCursorHold.nvim", config = function() vim.g.cursorhold_updatetime = 300 end, } -- Built-In LSP Config use { 'neovim/nvim-lspconfig', -- event = 'BufRead', config = function() require'configs.lspconfig'.config() end } -- Formatting + Linting use { 'jose-elias-alvarez/null-ls.nvim', event = 'BufRead', config = function() require'configs.null-ls'.config() end } -- TODO: LSP Enhancer use { 'tami5/lspsaga.nvim', config = function() require'configs.lspsaga'.config() end } -- TODO: Symbols Outline -- use { 'simrat39'/symbols-outline.nvim', cmd = 'SymbolsOutline', setup = function ... } -- -- Autocompletion -- -- Autocompletion Engine use { 'hrsh7th/nvim-cmp', config = function() require'configs.cmp'.config() end } -- Snippet Engine (for nvim-cmp) -- TODO: Add snippets. rafamadriz/friendly-snippets is too cow for me and has too many snippets. -- I'd like to use my own collection exclusively (unless there is a better, less extensive collection) use { 'L3MON4D3/LuaSnip' } -- Autocompletion Sources use { 'saadparwaiz1/cmp_luasnip', after = 'nvim-cmp', requires = { 'nvim-cmp' } } use { 'hrsh7th/cmp-buffer', after = 'nvim-cmp', requires = { 'nvim-cmp' } } use { 'hrsh7th/cmp-path', after = 'nvim-cmp', requires = { 'nvim-cmp' } } use { 'hrsh7th/cmp-nvim-lsp', after = 'nvim-cmp', requires = { 'nvim-cmp' } } -- -- Quality of Life -- -- Autopairs use { 'windwp/nvim-autopairs', config = function() require'configs.autopairs'.config() end } -- Commenting use { 'numToStr/Comment.nvim', config = function() require'configs.comment'.config() end } -- Automatically colorize color strings (#f1b8f1) use { 'norcalli/nvim-colorizer.lua', config = function() require'configs.colorizer'.config() end } -- Remember your last place when opening a file use { 'farmergreg/vim-lastplace' } -- Import sorting for python (:Isort) use { 'stsewd/isort.nvim', run = ':UpdateRemotePlugins' } -- Formatting for python (:call Black()) use { 'averms/black-nvim', run = ':UpdateRemotePlugins' } end, config = { display = { open_fn = function() return require'packer.util'.float { border = 'rounded' } end }, profile = { enable = true, threshold = 0.0001, } } }