" Install vim-plug
" # Vim (~/.vim/autoload)
" curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
" https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

" Plugins will be downloaded under the specified directory.
call plug#begin('~/.vim/plugged')

" Declare the list of plugins.
Plug 'scrooloose/nerdtree'
Plug 'majutsushi/tagbar'
Plug 'itchyny/lightline.vim'
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Plug 'junegunn/fzf.vim'
Plug 'tpope/vim-eunuch'
Plug 'rust-lang/rust.vim'
Plug 'townk/vim-autoclose'
Plug 'vim-syntastic/syntastic'
Plug 'arzg/vim-rust-syntax-ext'
Plug 'rafi/awesome-vim-colorschemes'
Plug 'https://gitlab.com/yorickpeterse/vim-paper.git'
Plug 'vim-scripts/AutoComplPop'

" List ends here. Plugins become visible to Vim after this call.
call plug#end()

nmap ; :Files<CR>
" autocmd vimenter * NERDTree
map <C-n> :NERDTreeToggle<CR>
" apt-get install exuberant-ctags
nmap <F8> :TagbarToggle<CR>
" GUI settings
set guifont=GohuFont\ 10
if has('gui_running')
autocmd GUIEnter * set vb t_vb=
" colorscheme parsec
colorscheme seoul256
endif

silent !mkdir -p ~/.vimbk > /dev/null 2>&1
set backupdir=$HOME/.vimbk/
set directory=$HOME/.vimbk/

""" Tagbar for Rust
let g:tagbar_type_rust = {
\ 'ctagstype' : 'rust',
\ 'kinds' : [
\'T:types,type definitions',
\'f:functions,function definitions',
\'g:enum,enumeration names',
\'s:structure names',
\'m:modules,module names',
\'c:consts,static constants',
\'t:traits',
\'i:impls,trait implementations',
\]
\}

""" Tagbar for Perl
let g:tagbar_type_perl = {
\ 'ctagstype' : 'perl',
\ 'kinds' : [
\ 'p:package:0:0',
\ 'w:roles:0:0',
\ 'e:extends:0:0',
\ 'u:uses:0:0',
\ 'r:requires:0:0',
\ 'o:ours:0:0',
\ 'a:properties:0:0',
\ 'b:aliases:0:0',
\ 'h:helpers:0:0',
\ 's:subroutines:0:0',
\ 'd:POD:1:0'
\ ]
\ }

" Lightline config
set laststatus=2
set number

if !has('gui_running')
set t_Co=256
endif

if has('gui_running')
set guifont=Envy\ Code\ R\ Regular\ 10
endif

let g:lightline = {
\ 'colorscheme': 'seoul256',
\ }