dotfiles/nvim/.config/nvim/lua/plugins.lua

165 lines
3.7 KiB
Lua

-- 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 'kevinhwang91/nvim-hlslens'
use 'wincent/ferret'
use 'lambdalisue/reword.vim'
-- 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')"
}
-- For tmux
use 'tmux-plugins/vim-tmux-focus-events'
-- Git support
use {
'mhinz/vim-signify',
config = "require('modules.signify')"
}
use 'tpope/vim-fugitive'
use 'rhysd/git-messenger.vim'
use 'rhysd/conflict-marker.vim'
use 'salcode/vim-interactive-rebase-reverse'
use 'whiteinge/diffconflicts'
-- Boost vim command line mode
use 'vim-utils/vim-husk'
-- Rainbow Parentheses
use 'luochen1990/rainbow'
-- Formatting
use {
'sbdchd/neoformat',
cmd = 'Neoformat'
}
-- Run things async
use {
'hauleth/asyncdo.vim',
config = "require('modules.asyncdo')"
}
-- Quickfix
use 'kevinhwang91/nvim-bqf'
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',
'coderifous/textobj-word-column.vim',
'tommcdo/vim-exchange',
'chaoren/vim-wordmotion'
}
-- 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')"
}
-- Clipboard
use 'christoomey/vim-system-copy'
-- 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'
-- LSP
use {
'neovim/nvim-lspconfig',
}
-- Language support & syntax highlighting
-- Haskell
use 'neovimhaskell/haskell-vim'
use {
'ndmitchell/ghcid',
rtp = 'plugins/nvim'
}
-- For C, Lua and Rust
use {
'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'
use 'LnL7/vim-nix'
-- LISP
use { 'Olical/aniseed', tag = 'v3.16.0' }
use {
'Olical/conjure',
tag = 'v4.15.0',
ft = { 'fennel', 'racket', 'scheme', 'scheme.guile' }
}
use {
'guns/vim-sexp',
'tpope/vim-sexp-mappings-for-regular-people',
ft = { 'fennel', 'racket', 'scheme', 'scheme.guile' }
}
use 'wlangstroth/vim-racket'
use {
'https://gitlab.com/HiPhish/guile.vim'
}
-- Other syntax highlighting support
use 'georgewitteman/vim-fish'
use 'inkarkat/SyntaxAttr.vim'
-- For statusline
use {
'glepnir/galaxyline.nvim',
config = "require('modules.statusline')",
requires = { 'kyazdani42/nvim-web-devicons' }
}
end
return require('packer').startup(init)