set runtimepath+=~/.config/vim,~/.config/vim/after
set viminfo+=n~/.cache/viminfo

" Plug plugins using VimPlug
call plug#begin('~/.config/vim/plugged')
    Plug 'editorconfig/editorconfig-vim'
    Plug 'airblade/vim-gitgutter'
    Plug 'samoshkin/vim-mergetool'
    Plug 'fidian/hexmode'
    Plug 'scrooloose/nerdtree'
    Plug 'itchyny/lightline.vim'
    Plug 'nanotech/jellybeans.vim'
    Plug 'scrooloose/syntastic'
    Plug 'sersorrel/vim-lilypond'
    Plug 'vim-scripts/DoxygenToolkit.vim'
    Plug 'drmikehenry/vim-headerguard'
    Plug 'sirtaj/vim-openscad'
    Plug 'cespare/vim-toml'
    Plug 'posva/vim-vue'
    Plug 'vhdirk/vim-cmake'
    Plug 'lervag/vimtex'
call plug#end()

packadd termdebug

set number relativenumber
set splitbelow splitright

let mapleader = " "

augroup numbertoggle
  autocmd!
  autocmd WinEnter * set relativenumber
  autocmd WinLeave * set norelativenumber
augroup END

syntax on

set tabstop=4
set shiftwidth=4
set expandtab

set modeline
set laststatus=2

set encoding=utf-8

set nowrap

set wildmode=longest,list,full

set fillchars+=vert:\ 

runtime ftplugin/man.vim
set keywordprg=:Man

if has("autocmd")
    " Save cursor position. I don't understand this part
    au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal! g`\"" | endif

    au BufNewFile,BufRead neomutt-* setf mail

    au FileType yaml setlocal ai tabstop=2 shiftwidth=2 expandtab cuc nu

    au FileType lilypond au BufWritePost * !lilypond %
    au FileType dot au BufWritePost * !dot -Tpng -O %
endif



map <leader>b :Break<CR>
map <leader>n :NERDTreeToggle<CR>



autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif

let g:lightline = {
\   'active': {
\       'left': [
\           [ 'mode', 'paste' ],
\           [ 'readonly', 'filename', 'modified', 'gitbranch' ]
\       ],
\       'right': [
\           [ 'bufnum', 'percent', 'lineinfo' ],
\           [ 'fileformat', 'fileencoding', 'filetype', 'synthastic' ],
\           [ 'charvaluehex' ]
\       ]
\   },
\   'inactive': {
\       'left': [
\           [ 'filename' ]
\       ],
\       'right': [
\           [ 'lineinfo' ],
\           [ 'bufnum' ]
\       ]
\   },
\   'component': {
\       'charvaluehex': '0x%B',
\       'bufnum': '%n'
\   },
\   'component_function': {
\       'synthastic': 'SyntasticStatuslineFlag',
\       'gitbranch': 'fugitive#head'
\   },
\ }

if has('termguicolors') && &termguicolors
    let g:jellybeans_overrides['background']['guibg'] = 'none'
endif
let g:jellybeans_overrides = {
\   'Todo': {
\       'guifg': '303030',
\       'guibg': 'f0f000',
\       'ctermfg': 'Black',
\       'ctermbg': 'Yellow',
\       'attr': 'bold'
\   },
\   'Comment': { 'guifg': 'cccccc' },
\   'LineNr': { 'guifg': 'aaaaaa' },
\   'background': {
\       'ctermbg': 'none',
\       '256ctermbg': 'none'
\   },
\ }
colorscheme jellybeans

let g:syntastic_always_populate_loc_list = 0
let g:syntastic_auto_loc_list = 0
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0
let g:syntastic_oclint_config_file = '.syntastic_oclint_config'
let g:syntastic_c_config_file = '.syntastic_cc_config'

let g:tex_flavor = 'latex'
let g:vimtex_compiler_latexmk = {
\   'build_dir': 'latexmk_output'
\}