-- Add the in built Cfilter plugin. Replaces QFGrep. vim.cmd 'packadd cfilter' vim.cmd 'packadd packer.nvim' local init = function () use {'wbthomason/packer.nvim', opt = true} -- Vertical Motion use { 'justinmk/vim-sneak', config = "require('modules.sneak')" } -- Search use { 'junegunn/fzf', run = './install --bin' } use { 'junegunn/fzf.vim', config = "require('modules.fzf')" } use 'wincent/ferret' use 'lambdalisue/reword.vim' use 'bronson/vim-visual-star-search' -- Remove extraneous whitespace when edit mode is exited use { 'ntpeters/vim-better-whitespace', config = "require('modules.better-whitespace')" } -- Manage Project sessions use { 'thaerkh/vim-workspace', config = "require('modules.workspace')" } -- For autocompletion use { 'hrsh7th/nvim-compe', config = "require('modules.completion')" } -- Git support use { 'mhinz/vim-signify', config = "require('modules.signify')" } use 'tpope/vim-fugitive' use 'rhysd/git-messenger.vim' use 'whiteinge/diffconflicts' use 'sindrets/diffview.nvim' -- Boost vim command line mode use 'vim-utils/vim-husk' -- Formatting use { 'sbdchd/neoformat', cmd = 'Neoformat' } -- Run things async use { 'hauleth/asyncdo.vim', config = "require('modules.asyncdo')" } -- Quickfix use 'yssl/QFEnter' use 'ronakg/quickr-cscope.vim' use { 'milkypostman/vim-togglelist', config = "require('modules.togglelist')" } use { 'chengzeyi/fzf-preview.vim', config = "require('modules.fzf-preview')" } -- Text Object plugins use { 'wellle/targets.vim', 'tpope/vim-surround', 'tommcdo/vim-exchange', 'chaoren/vim-wordmotion', 'kana/vim-textobj-user', 'kana/vim-textobj-indent', 'kana/vim-textobj-entire', 'glts/vim-textobj-indblock', 'idbrii/textobj-word-column.vim', 'danidiaz/vim-textobj-do-block' } -- Tim pope essentials use { 'tpope/vim-commentary', 'tpope/vim-repeat', 'tpope/vim-sleuth' } -- Show indentation levels use 'Yggdroot/indentLine' -- Directory viewer use 'justinmk/vim-dirvish' -- Show leader key bindings use { 'liuchengxu/vim-which-key', config = "require('modules.which_key')" } -- Toggle terminal use { 'voldikss/vim-floaterm', config = "require('modules.floaterm')" } -- Take care of sudo use 'lambdalisue/suda.vim' -- Alignment use { 'junegunn/vim-easy-align', config = "require('modules.easyalign')" } use 'Rasukarusan/nvim-block-paste' use 'nvim-lua/plenary.nvim' use { 'jose-elias-alvarez/nvim-lsp-ts-utils', requires = { 'jose-elias-alvarez/null-ls.nvim' } } -- LSP use { 'neovim/nvim-lspconfig', 'ray-x/lsp_signature.nvim', } -- Language support & syntax highlighting -- Coq use { 'whonore/Coqtail', 'jlapolla/vim-coq-plugin' } -- Haskell use 'neovimhaskell/haskell-vim' use { 'ndmitchell/ghcid', rtp = 'plugins/nvim' } -- For C, Lua and Rust use { 'nvim-treesitter/nvim-treesitter-textobjects', requires = { 'nvim-treesitter/nvim-treesitter' }, config = "require('treesitter')", } -- All writing needs use 'lervag/vimtex' use 'vim-pandoc/vim-pandoc' use 'vim-pandoc/vim-pandoc-syntax' -- Dhall & nix use 'vmchale/dhall-vim' -- Other syntax highlighting support use 'inkarkat/SyntaxAttr.vim' -- For statusline use { 'glepnir/galaxyline.nvim', config = "require('modules.statusline')", requires = { 'kyazdani42/nvim-web-devicons' } } -- Marks and registers use { 'kshenoy/vim-signature', 'gennaro-tedesco/nvim-peekup' } -- Snippets use { 'rafamadriz/friendly-snippets', 'hrsh7th/vim-vsnip' } end return require('packer').startup(init)