dotfiles/nvim/.config/nvim/init.vim
Sanchayan Maity 467a660409 nvim: Drop neomake, QFGrep and vim-grepper
Profiling with below
nvim -c 'profile start vim.log' -c 'profile func *' -c 'q'

shows that neomake adds to the start up time. Currently we only use it
for two tasks. Running hlint for Haskell and stack build asynchronously.

Use asyncdo and define a generic wrapper command for running makeprg
asynchronously. This can be used for anything as long as makeprg is
set correctly.

vim-grepper also adds somewhat to the startup time though not much. We
do not need the functionality of switching between grep tools. Here
again just use asyncdo and define a generic command for running grepprg
asynchronously.

Drop QFGrep as we can use in built Cfilter plugin for filtering the
quickfix list.

Note that all start times mentioned above are a few milliseconds not
even more than 5ms. However, we would like to be as fast as possible
and use in built functions.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-21 16:39:06 +05:30

127 lines
3.6 KiB
VimL

call plug#begin('~/.config/nvim/plugged')
" Tab completion
Plug 'ervandew/supertab'
" Motions
Plug 'haya14busa/incsearch.vim'
Plug 'rhysd/clever-f.vim'
" Fuzzy search
Plug 'junegunn/fzf.vim'
" Remove extraneous whitespace when edit mode is exited
Plug 'axelf4/vim-strip-trailing-whitespace'
" Manage Project sessions
Plug 'thaerkh/vim-workspace'
" For autocompletion
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
Plug 'Shougo/neco-syntax'
Plug 'deoplete-plugins/deoplete-tag'
" For tmux
Plug 'tmux-plugins/vim-tmux-focus-events'
Plug 'wellle/tmux-complete.vim'
" Git support
Plug 'lambdalisue/gina.vim'
Plug 'airblade/vim-gitgutter'
Plug 'rhysd/git-messenger.vim'
Plug 'rhysd/conflict-marker.vim'
Plug 'whiteinge/diffconflicts'
Plug 'salcode/vim-interactive-rebase-reverse'
" Boost vim command line mode
Plug 'vim-utils/vim-husk'
" GDB
Plug 'sakhnik/nvim-gdb', { 'do': ':UpdateRemotePlugins' }
" Rainbow Parentheses
Plug 'luochen1990/rainbow'
" Formatting
Plug 'sbdchd/neoformat'
" Run things async
Plug 'hauleth/asyncdo.vim'
" Quickfix
Plug 'ronakg/quickr-cscope.vim'
Plug 'stefandtw/quickfix-reflector.vim'
Plug 'milkypostman/vim-togglelist'
Plug 'skywind3000/vim-quickui'
Plug 'yssl/QFEnter'
" Text Object plugins
Plug 'kana/vim-textobj-user'
Plug 'danidiaz/vim-textobj-do-block'
Plug 'michaeljsmith/vim-indent-object'
Plug 'wellle/targets.vim'
Plug 'tpope/vim-surround'
Plug 'junegunn/vim-easy-align'
Plug 'tommcdo/vim-exchange'
" Tim pope essentials
Plug 'tpope/vim-commentary'
Plug 'tpope/vim-repeat'
Plug 'tpope/vim-sleuth'
" Show indentation levels
Plug 'Yggdroot/indentLine'
" Floating terminal
Plug 'voldikss/vim-floaterm'
" Smooth scrolling
Plug 'psliwka/vim-smoothie'
" Directory viewer
Plug 'justinmk/vim-dirvish'
" Handle line & column jump specifications as found in stack traces
Plug 'wsdjeg/vim-fetch'
" Show leader key bindings
Plug 'liuchengxu/vim-which-key'
" Clipboard
Plug 'christoomey/vim-system-copy'
" Language support & syntax highlighting
" Haskell
Plug 'neovimhaskell/haskell-vim'
Plug 'Twinside/vim-haskellFold'
Plug 'Twinside/vim-hoogle', { 'for': 'haskell' }
Plug 'godlygeek/tabular', { 'for': 'haskell' }
Plug 'ndmitchell/ghcid', { 'rtp': 'plugins/nvim' }
" Rust
Plug 'rust-lang/rust.vim'
Plug 'sebastianmarkow/deoplete-rust', { 'for': 'rust' }
" Purescript
Plug 'purescript-contrib/purescript-vim'
Plug 'frigoeu/psc-ide-vim'
" Lisp
Plug 'wlangstroth/vim-racket'
Plug 'guns/vim-clojure-static'
Plug 'guns/vim-sexp', { 'for': [ 'racket', 'scheme', 'lisp', 'clojure' ] }
Plug 'tpope/vim-sexp-mappings-for-regular-people', { 'for': [ 'racket', 'scheme', 'lisp', 'clojure' ] }
" Erlang
Plug 'vim-erlang/vim-erlang-runtime', { 'for': 'erlang' }
Plug 'vim-erlang/vim-erlang-tags', { 'for': 'erlang' }
Plug 'vim-erlang/vim-erlang-omnicomplete', { 'for': 'erlang' }
Plug 'vim-erlang/vim-erlang-compiler', { 'for': 'erlang' }
" Python
Plug 'vim-python/python-syntax'
Plug 'deoplete-plugins/deoplete-jedi'
Plug 'davidhalter/jedi-vim', { 'for': 'python' }
" C/C++
Plug 'vim-jp/vim-cpp'
Plug 'octol/vim-cpp-enhanced-highlight'
" LaTeX
Plug 'lervag/vimtex'
" Dhall & nix
Plug 'vmchale/dhall-vim'
Plug 'LnL7/vim-nix'
" Other syntax highlighting support
Plug 'georgewitteman/vim-fish'
Plug 'elzr/vim-json'
Plug 'lifepillar/pgsql.vim'
Plug 'plasticboy/vim-markdown'
Plug 'mtdl9/vim-log-highlighting'
call plug#end()
let g:vim_home = get(g:, 'vim_home', expand('~/.config/nvim/'))
let config_list = [
\ 'autocmd.vim',
\ 'config.vim',
\ 'functions.vim',
\ 'keymappings.vim',
\ 'plugin_settings.vim',
\]
for files in config_list
for f in glob(g:vim_home.files, 1, 1)
exec 'source' f
endfor
endfor