local install_path = vim.fn.stdpath('data') .. '/site/pack/packer/start/packer.nvim' local packer_bootstrap if vim.fn.empty(vim.fn.glob(install_path)) > 0 then packer_bootstrap = vim.fn.system({ 'git', 'clone', 'https://github.com/wbthomason/packer.nvim', install_path }) vim.cmd [[packadd packer.nvim]] end require('packer').startup(function(use) use { 'https://github.com/wbthomason/packer.nvim' } -- settings use { 'https://github.com/owozsh/amora' } use { 'https://github.com/editorconfig/editorconfig-vim' } use { 'https://github.com/antoinemadec/FixCursorHold.nvim' } -- filetypes use { 'https://github.com/nvim-treesitter/nvim-treesitter', run = function() require('nvim-treesitter.install').update({ with_sync = true }) end } use { 'https://github.com/nvim-orgmode/orgmode', tag = '*', requires = 'https://github.com/nvim-treesitter/nvim-treesitter' } use { 'https://github.com/JoosepAlviste/nvim-ts-context-commentstring', requires = 'https://github.com/nvim-treesitter/nvim-treesitter' } -- completion use { 'https://github.com/hrsh7th/nvim-cmp', requires = { 'https://github.com/hrsh7th/cmp-nvim-lsp', 'https://github.com/hrsh7th/cmp-buffer', 'https://github.com/hrsh7th/cmp-path', 'https://github.com/hrsh7th/cmp-cmdline', { 'https://github.com/saadparwaiz1/cmp_luasnip', requires = 'https://github.com/L3MON4D3/LuaSnip' }, 'https://github.com/hrsh7th/cmp-nvim-lua', 'https://github.com/uga-rosa/cmp-dictionary', } } -- lsp use { 'https://github.com/neovim/nvim-lspconfig', tag = '*', requires = 'https://github.com/hrsh7th/cmp-nvim-lsp' } use { 'https://github.com/lukas-reineke/lsp-format.nvim', tag = '*' } use { 'https://github.com/ray-x/lsp_signature.nvim' } -- tools use { 'https://github.com/folke/which-key.nvim', config = function() require('which-key').setup({}) end } use { 'https://github.com/nvim-telescope/telescope.nvim', tag = '*', requires = { 'https://github.com/nvim-lua/plenary.nvim', 'https://github.com/nvim-treesitter/nvim-treesitter', }, } use { 'https://github.com/kyazdani42/nvim-tree.lua', tag = '*' } -- coding use { 'https://github.com/numToStr/Comment.nvim', tag = '*' } use { 'https://github.com/TimUntersberger/neogit', requires = { 'https://github.com/nvim-lua/plenary.nvim', 'https://github.com/folke/which-key.nvim', 'https://github.com/sindrets/diffview.nvim' }, } use { 'https://github.com/gentoo/gentoo-syntax' } use { 'https://github.com/windwp/nvim-autopairs', config = function() require("nvim-autopairs").setup {} end } use { 'https://github.com/L3MON4D3/LuaSnip' } use { 'https://github.com/tpope/vim-fugitive', tag = '*' } use { 'https://github.com/lewis6991/gitsigns.nvim', tag = '*' } use { 'https://github.com/ahmedkhalf/project.nvim' } -- net use { -- embed nvim in browsers 'https://github.com/glacambre/firenvim', tag = '*', run = function() vim.fn['firenvim#install'](0) end } -- ensure plugins are installed and compiled if packer_bootstrap then require('packer').sync() elseif not io.open(vim.fn.stdpath('config') .. '/plugin') then require('packer').install() end end) -- source file, install and compile plugins when this file is written vim.api.nvim_create_augroup('config_plugins', { clear = true }) vim.api.nvim_create_autocmd( { 'BufWritePost' }, { group = 'config_plugins', pattern = { vim.fn.stdpath('config') .. '/lua/my/plugins.lua' }, command = [[source | PackerInstall]] } ) vim.api.nvim_create_autocmd( { 'User' }, { group = 'config_plugins', pattern = 'PackerComplete', command = [[PackerCompile]] } ) vim.api.nvim_create_autocmd( { 'User' }, { group = 'config_plugins', pattern = 'PackerCompileDone', command = [[echo 'plugins compiled']] } )