-- load by calling `lua require('plugins')` from your init.vim local cmd = vim.cmd local g = vim.g local u = require('utils') function disable_distribution_plugins() g.loaded_gzip = 1 g.loaded_tar = 1 g.loaded_tarPlugin = 1 g.loaded_zip = 1 g.loaded_zipPlugin = 1 g.loaded_getscript = 1 g.loaded_getscriptPlugin = 1 g.loaded_vimball = 1 g.loaded_vimballPlugin = 1 g.loaded_matchit = 1 -- g.loaded_matchparen = 1 g.loaded_2html_plugin = 1 g.loaded_logiPat = 1 g.loaded_rrhelper = 1 g.loaded_netrw = 1 g.loaded_netrwPlugin = 1 g.loaded_netrwSettings = 1 g.loaded_netrwFileHandlers = 1 end -- enable to bootstrap packer from ~/.local/share/nvim/site/pack/packer/opt/packer.nvim -- vim.cmd [[packadd packer.nvim]] return require'packer'.startup(function() -- disable built-in plugins disable_distribution_plugins() -- manage packer itself use {'wbthomason/packer.nvim'} -- git status in the sign column use {'mhinz/vim-signify', config = "require('plugins._signify')" } use {'tpope/vim-commentary'} -- auto-comment using `gcc` use {'cohama/lexima.vim'} -- auto-close parens, brackets, etc. use {'tpope/vim-surround'} -- edit surroundings in pairs -- use {'neomake/neomake'} -- async job runner -- use {'sbdchd/neoformat'} -- async code formatter use {'justinmk/vim-dirvish'} -- folder browser use {'justinmk/vim-sneak', config = "vim.g['sneak#label'] = true" } use {'neovim/nvim-lspconfig', requires = { {'nvim-lua/completion-nvim', requires = {'steelsojka/completion-buffers'}, config = "require('plugins._completion')"}, 'kosayoda/nvim-lightbulb', }, config = "require('plugins._lsp')" } use {'nvim-treesitter/nvim-treesitter', requires = { 'nvim-lua/completion-nvim', 'nvim-treesitter/completion-treesitter', 'nvim-treesitter/nvim-treesitter-refactor', }, config = "require('plugins._treesitter')" } use {'nvim-telescope/telescope.nvim', requires = { 'nvim-lua/popup.nvim', 'nvim-lua/plenary.nvim', -- telescope plugins: 'nvim-telescope/telescope-fzf-writer.nvim', }, config = "require('plugins._telescope')" } -- polyfill for some missing stuff use {'tjdevries/astronauta.nvim'} -- snippets use {'SirVer/ultisnips', requires = {'honza/vim-snippets'}, config = "require('plugins._ultisnips')" } use {'junegunn/vim-easy-align'} -- use {'tpope/vim-sleuth'} -- detect indentation use {'nathanaelkane/vim-indent-guides', config = "require('plugins._indent-guides')" } use {'tpope/vim-repeat'} -- extend '.' to plugins use {'sgur/vim-editorconfig'} -- implements editorconfig in vimscript use {'michaeljsmith/vim-indent-object'} -- adds indentation text-objects use {'kshenoy/vim-signature', disable = true} -- toggle, display and navigate marks use {'norcalli/nvim-colorizer.lua', config = "require('plugins._colorizer')" } use {'rhysd/git-messenger.vim', config = "require('plugins._git-messenger')" } use {'rhysd/conflict-marker.vim', disable = true} -- use {'liuchengxu/vista.vim'} -- sidebar populated by lsp, ctags, etc. use {'kassio/neoterm', disable = true} -- languages -- NOTE: these should only be loaded when they are required... -- use {'rhysd/vim-grammarous', -- ft = {'markdown', 'latex', 'tex'} -- } use {'lervag/vimtex', ft = {'latex', 'tex'}, config = "require('plugins._vimtex')" } use {'plasticboy/vim-markdown', ft = {'markdown'}, config = "require('plugins._markdown')" } use {'masukomi/vim-markdown-folding', ft = {'markdown'} } use {'jjo/vim-cue', ft = {'cue'} } use {'gentoo/gentoo-syntax'} -- multi-language support with lazy loading -- NOTE: put language specific plugs before this to avoid conflicsts use {'sheerun/vim-polyglot'} -- minimal ux use {'junegunn/goyo.vim', cmd = 'Goyo', config = "require('plugins._goyo')" } use {'junegunn/limelight.vim', cmd = 'Limelight', config = "require('plugins._limelight')" } use {'rktjmp/lush.nvim', disable = true, config="require('plugins._lush')"} -- vim config debugging use {'dstein64/vim-startuptime', disable = true} -- local use {'~/devel/upstream/github.com/knsh14/vim-github-link'} end)