" automatische Installation vom vim-plug
let data_dir = has('nvim') ? stdpath('data') . '/site' : '~/.vim'
if empty(glob(data_dir . '/autoload/plug.vim'))
  silent execute '!curl -fLo '.data_dir.'/autoload/plug.vim --create-dirs  https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
endif

" vim-plug
call plug#begin()
  Plug 'mattn/emmet-vim'
  Plug 'preservim/nerdtree'
  Plug 'Xuyuanp/nerdtree-git-plugin'
  Plug 'preservim/tagbar'
  Plug 'romainl/vim-cool'
  Plug 'simnalamburt/vim-mundo'
  Plug 'tpope/vim-repeat'
  Plug 'tpope/vim-surround'
  Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
  Plug 'neovim/nvim-lspconfig'
  Plug 'windwp/nvim-autopairs'
  Plug 'windwp/nvim-ts-autotag'
call plug#end()

" EMMET
let g:user_emmet_install_global=0
let g:user_emmet_leader_key='<C-y>'

" NERDTree
let NERDTreeMinimalUI=1
let NERDTreeShowHidden=0

" NERDTree GIT Plugin
let g:NERDTreeGitStatusUntrackedFilesMode='all'
let g:NERDTreeGitStatusShowClean=1
let g:NERDTreeGitStatusConcealBrackets=1
let g:NERDTreeDirArrowExpandable='+'
let g:NERDTreeDirArrowCollapsible='-'

let g:WebDevIconsUnicodeDecorateFolderNodes=1
let g:DevIconsEnableFoldersOpenClose=1
let g:WebDevIconsNerdTreeBeforeGlyphPadding=''

" Tagbar
let g:tagbar_ctags_bin='/usr/local/bin/uctags'

" Vimundo
let g:mundo_right=1
let g:mundo_width=40
let g:mundo_preview_height=30

" Autopairs
let b:autopairs_enabled=1
let g:AutoPairsMapBS=1
let g:AutoPairsPrefix='<M-P>'

" Treesitter
lua << EOF
require'nvim-treesitter.configs'.setup {
  ensure_installed = { "c", "cpp", "lua", "vim", "vimdoc", "typescript" },
  sync_install = false,
  auto_install = false,
  highlight = {
    enable = true,
    disable = { "html" },
    additional_vim_regex_highlighting = true,
  },
  indent = {
    enable = false,
  },
}
EOF

lua << EOF
require'nvim-autopairs'.setup {}
require'nvim-ts-autotag'.setup {}
EOF

" LSP
lua << EOF
local lspconfig = require'lspconfig'
lspconfig.clangd.setup {
  cmd = { 'clangd15' }
}
lspconfig.lua_ls.setup {}
lspconfig.pyright.setup {}
lspconfig.tsserver.setup {}
lspconfig.vimls.setup {}
lspconfig.rust_analyzer.setup {
  settings = {
    ['rust-analyzer'] = {},
  },
}
EOF
