call plug#begin()
  " Plugin List
  Plug 'https://codeberg.org/ziglang/zig.vim'
  Plug 'morhetz/gruvbox'
  Plug 'preservim/nerdtree'
  Plug 'preservim/vim-lexical'
  Plug 'dense-analysis/ale'
  Plug 'editorconfig/editorconfig-vim'
  Plug 'towolf/vim-helm'
  Plug 'valloric/youcompleteme'
call plug#end()
syntax on

filetype plugin indent on

"
au BufNewFile,BufRead *.fcc              setf fcc

" Set blowfish2 encryption
setlocal cm=blowfish2

" Line numbers
set number

" Set UTF-8 for YCM
set encoding=utf-8

" YCM LSP
let g:ycm_language_server = [
  \   { 'name': 'zls',
  \     'filetypes': [ 'zig' ],
  \     'cmdline': [ '~/.local/bin/zls' ],
  \   },
  \ ]

" Adding Number Toggle
noremap <F3> :set invnumber<CR>
inoremap <F3> <C-O>:set invnumber<CR>

"autocmd vimenter * NERDTree
" This line remove trailing white space
autocmd FileType sh,markdown,python,go,yaml,c autocmd BufWritePre <buffer> %s/\s\+$//e

" These lines set up tab spacing
autocmd FileType tf,sh,fcc,c set tabstop=2 shiftwidth=2 softtabstop=2 expandtab

" NERDTree Toggle remap
map <C-n> :NERDTreeToggle<CR>

" These lines open NERDTree in your current working directory
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene | exe 'cd '.argv()[0] | endif

" Syntastic Config
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*

" Lexical config
set nocompatible
filetype plugin on

augroup lexical
  autocmd!
  autocmd FileType markdown,mkd call lexical#init()
  autocmd FileType textile call lexical#init()
  autocmd FileType text call lexical#init({ 'spell': 0 })
augroup END

let g:lexical#spell = 1         " 0=disabled, 1=enabled
let g:lexical#thesaurus = ['~/.vim/thesaurus/mthesaur.txt']

" Theme setup (Gruvbox)
let g:gruvbox_guisp_fallback = "bg"
set background=dark
autocmd vimenter * ++nested colorscheme gruvbox
