summary refs log tree commit diff
path: root/.vim/lua/plugins.lua
diff options
context:
space:
mode:
Diffstat (limited to '.vim/lua/plugins.lua')
-rw-r--r--.vim/lua/plugins.lua142
1 files changed, 142 insertions, 0 deletions
diff --git a/.vim/lua/plugins.lua b/.vim/lua/plugins.lua
new file mode 100644
index 0000000..1a66299
--- /dev/null
+++ b/.vim/lua/plugins.lua
@@ -0,0 +1,142 @@
+-- load by calling `lua require('plugins')` from your init.vim
+
+function disable_distribution_plugins()
+  vim.g.loaded_gzip              = 1
+  vim.g.loaded_tar               = 1
+  vim.g.loaded_tarPlugin         = 1
+  vim.g.loaded_zip               = 1
+  vim.g.loaded_zipPlugin         = 1
+  vim.g.loaded_getscript         = 1
+  vim.g.loaded_getscriptPlugin   = 1
+  vim.g.loaded_vimball           = 1
+  vim.g.loaded_vimballPlugin     = 1
+  vim.g.loaded_matchit           = 1
+  vim.g.loaded_matchparen        = 1
+  vim.g.loaded_2html_plugin      = 1
+  vim.g.loaded_logiPat           = 1
+  vim.g.loaded_rrhelper          = 1
+  vim.g.loaded_netrw             = 1
+  vim.g.loaded_netrwPlugin       = 1
+  vim.g.loaded_netrwSettings     = 1
+  vim.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'}
+
+	use {'mhinz/vim-signify'}      -- git status in the sign column
+	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 {'itchyny/lightline.vim'}  -- lightweight status bar
+	use {'glepnir/galaxyline.nvim',
+		branch = 'main',
+		config=function() require 'line' end}
+	use {'neomake/neomake'}        -- async job runner
+	use {'sbdchd/neoformat'}       -- async code formatter
+	use {'justinmk/vim-dirvish'}   -- folder browser
+	use {'justinmk/vim-sneak'}     -- powerful missing vim motions
+
+	use { 'neovim/nvim-lspconfig',
+		requires = {'nvim-lua/completion-nvim'}, -- , 'nvim-lua/diagnostic-nvim'},
+		config=function() require'conf.lsp' end}
+
+	use { 'steelsojka/completion-buffers' }
+		-- config = function()
+		-- 	vim.api.nvim_command("autocmd BufEnter * require'completion'.on_attach()")
+		-- end}
+
+	use { 'nvim-treesitter/nvim-treesitter',
+		requires = {
+			'nvim-lua/completion-nvim',
+			'nvim-treesitter/completion-treesitter',
+			'nvim-treesitter/nvim-treesitter-refactor',
+		},
+		config=function() require'conf.treesitter' end}
+	
+	use { 'nvim-lua/telescope.nvim',
+		requires = {'nvim-lua/popup.nvim', 'nvim-lua/plenary.nvim'},
+		config=function() require'conf.telescope' end}
+
+	-- snippets
+	use {'SirVer/ultisnips',
+		requires = {'honza/vim-snippets'}}
+
+	-- interactive finder / dispatcher
+	-- use {'liuchengxu/vim-clap',
+	-- 	run = ':Clap install-binary!'}
+
+	use {'junegunn/vim-easy-align',
+		cmd = {'EasyAlign'}}
+
+	-- use {'tpope/vim-sleuth'}                -- detect indentation
+	use {'nathanaelkane/vim-indent-guides'} -- show indentation levels
+	use {'tpope/vim-repeat'}                -- extend '.' to plugins
+	use {'liuchengxu/vista.vim'}            -- sidebar populated by lsp, ctags, etc.
+	use {'sgur/vim-editorconfig'}           -- implements editorconfig in vimscript
+	-- use 'rhysd/conflict-marker.vim'
+	use {'michaeljsmith/vim-indent-object'} -- adds indentation text-objects
+	use {'kshenoy/vim-signature'}           -- toggle, display and navigate marks
+	-- highlight color codes
+	use {'norcalli/nvim-colorizer.lua',
+		config=function()
+			require'colorizer'.setup(nil, {
+					name = true;
+					RRGGBB = true;
+					RRGGBBAA = false;
+					rgb_fn = true;
+					hsl_fn = true;
+					mode = 'background';
+				})
+		end}
+	use {'rhysd/git-messenger.vim'}         -- git-blame in a popup
+	use {'kassio/neoterm'}
+
+	-- 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'}}
+	use {'plasticboy/vim-markdown',       ft = {'markdown'}}
+	use {'masukomi/vim-markdown-folding', ft = {'markdown'}}
+	-- easy html editing
+	use {'mattn/emmet-vim',               ft = {'html'}}
+	-- use {'valloric/matchtagalways',    ft = {'html', 'vue', 'xml'}} -- visually match HTML tags enclosing cursor location
+	-- use {'ledger/vim-ledger',             ft = {'ledger'},
+	-- 	requires = {
+	-- 		'tpope/vim-speeddating',   -- easy time/date incrementing
+	-- 		'vim-scripts/utl.vim'}}    -- follow links/urls
+	
+	use {'gentoo/gentoo-syntax'}
+	use {'jjo/vim-cue'}
+
+	-- 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'}      -- hide ui clutter
+	use {'junegunn/limelight.vim',    cmd = 'Limelight'} -- dims colors
+	-- use 'equalsraf/neovim-gui-shim'
+
+	-- colorschemes
+	use {'NLKNguyen/papercolor-theme'}
+	-- use {'cideM/yui'}
+	use {'ayu-theme/ayu-vim'}
+	-- use {'rktjmp/lush.nvim',
+	-- 	config=function() require'conf.colors' end}
+
+	use {'dstein64/vim-startuptime'}
+
+	-- local
+	-- use {'~/devel/projects/nihon-theme/vim'}
+	-- use {'~/devel/projects/vim-orgdown'}
+	use {'~/.vim/devel/obsidian.nvim'}
+	use {'~/.vim/devel/vim-github-link'}
+end)