dotfiles/vim/plugs.vim

122 lines
3.5 KiB
VimL

" Install vim-plug if not installed already (requires curl)
if empty(glob('~/.vim/autoload/plug.vim'))
silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
\ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
autocmd VimEnter * PlugInstall --sync | source ~/.vimrc
endif
" Plugins
call plug#begin('~/.vim/vim-plug')
" Basic vim config
Plug 'tpope/vim-sensible'
" Colorscheme
Plug 'https://github.com/morhetz/gruvbox'
" Csv files 🤦
Plug 'https://github.com/mechatroner/rainbow_csv', { 'for': 'csv' }
" Asynchronous Linting Engine
Plug 'https://github.com/dense-analysis/ale'
" Git
Plug 'https://github.com/tpope/vim-fugitive'
" Comment shit easily
Plug 'https://github.com/tpope/vim-commentary'
" Browse file system
Plug 'https://github.com/scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }
" status line
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
" Tags integration
Plug 'https://github.com/preservim/tagbar'
" Insert parentheses in pairs
Plug 'https://github.com/jiangmiao/auto-pairs'
Plug 'https://github.com/amix/open_file_under_cursor.vim'
" Multi cursor
Plug 'https://github.com/mg979/vim-visual-multi'
" Yank history
Plug 'https://github.com/maxbrunsfeld/vim-yankstack'
" Mark indentation level
Plug 'https://github.com/nathanaelkane/vim-indent-guides'
if executable('meson')
Plug 'https://github.com/igankevich/mesonic'
endif
" fzf
Plug 'junegunn/fzf'
Plug 'junegunn/fzf.vim'
" Open tags with fzf's :Tags
if executable('ctags')
Plug 'https://github.com/ludovicchabant/vim-gutentags.git'
endif
" snippets
if has('python3')
Plug 'https://github.com/SirVer/ultisnips'
Plug 'https://github.com/honza/vim-snippets'
endif
" Git gutter line
Plug 'https://github.com/airblade/vim-gitgutter'
" Zero distractions
Plug 'https://github.com/junegunn/goyo.vim'
" Highlight lines not covered by tests
Plug 'https://github.com/mgedmin/coverage-highlight.vim'
"Languages
Plug 'https://github.com/bfrg/vim-cpp-modern', {'for': 'cpp'}
Plug 'epheien/termdbg', {'for': ['c', 'cpp']}
if executable('cargo')
Plug 'https://github.com/rust-lang/rust.vim', {'for': 'rust'}
endif
Plug 'https://github.com/vim-scripts/nginx.vim', {'for': 'nginx'}
Plug 'https://github.com/plasticboy/vim-markdown', {'for': 'markdown'}
Plug 'https://github.com/cespare/vim-toml', {'for': 'toml'}
Plug 'https://github.com/vim-scripts/iptables', {'for': 'iptables'}
if executable('vite')
" TODO: check if plugin is still up-to-date
Plug 'https://github.com/leafoftree/vim-vue-plugin', {'for': 'vue'}
endif
if executable('terraform')
Plug 'https://github.com/hashivim/vim-terraform', {'for': 'terraform'}
endif
if executable('go')
Plug 'https://github.com/fatih/vim-go', {'for': 'go'}
endif
if executable('adb') && executable('gradle')
Plug 'https://github.com/udalov/kotlin-vim', {'for': 'kotlin'}
Plug 'https://github.com/hsanson/vim-android', {'for': 'java'}
endif
if executable('qml')
Plug 'https://github.com/peterhoeg/vim-qml', {'for': 'qml'}
endif
if executable('pytest')
Plug 'https://github.com/alfredodeza/pytest.vim', {'for': 'python'}
endif
" Colorize hex codes and/or color strings
Plug 'https://github.com/chrisbra/Colorizer'
" No RGB, no party
let vim_razer = expand('~/projects_razer/vim-razer')
if isdirectory(vim_razer)
Plug vim_razer
endif
if g:uname ==? 'Linux'
Plug 'https://github.com/HiPhish/info.vim'
endif
call plug#end()
" Install plugins if missing
if ! isdirectory(expand('~/.vim/vim-plug'))
PlugInstall
endif