autocmd Filetype python noremap <F11> <ESC>:vert term python -i %<CR>
autocmd Filetype python noremap <F12> <ESC>:vert term python %<CR> 

autocmd Filetype tex noremap <silent> <F12> <ESC>:silent !pdflatex % && mupdf %:r.pdf&<CR>

autocmd FileType asm noremap <F12> <ESC>:execute 'silent !qtspim' expand('%::p')<CR>

" autocmd FileType python set sw=4
" autocmd FileType python set ts=4
" autocmd FileType python set sts=4

" let g:AutoPairsMapCR = 0 "Workaround for 27_AutoPairsReturn
" imap <silent><CR> <CR><Plug>AutoPairsReturn

nnoremap <C-p> :GFiles<CR>
nnoremap <C-g> :Ag<CR>

let python_highlight_all=1
let g:pymode_python = 'python3'
let g:pymode_options_max_line_length = 120
" let g:ctrlp_cmd = 'CtrlPTag'

let g:vimtex_view_method = 'mupdf'

" nnoremap <c-p> <plug>(YCMFindSymbolInDirectory)
" nnoremap <c-P> <plug>(YCMFindSymbolInWorkspace)

"Documentation
nnoremap K :execute 'vert term' &keywordprg '<cexpr>'<cr>
command Curl :execute 'vert term lynx -dump' escape(@+, '#')
command OpenLink :silent w !urlscan

let g:UltiSnipsExpandTrigger="<c-l>"
let g:UltiSnipsListSnipets="<c-h>"
let g:UltiSnipsEditSplit="vertical"

let g:cpp_attributes_highlight = 1

let g:ycm_always_populate_location_list = 1

" let g:completor_clang_binary = "/usr/bin/clang"
"fold with space
nnoremap <space> za
syntax on

set nu
set rnu
set hls
set tabstop=4
set shiftwidth=4
set encoding=utf-8
set nocompatible
set ignorecase
set nowrap
set splitbelow splitright
set spelllang+=fr
set foldmethod=syntax
set foldlevel=99
set incsearch
set autochdir
" set foldcolumn=1
set clipboard^=unnamed,unnamedplus
set listchars=eol:$,tab:>-,trail:~,extends:>,precedes:<,space:ยท
set concealcursor=""

color desert 
hi Normal ctermfg=None ctermbg=None
hi NonText ctermfg=None ctermbg=None

packadd termdebug

filetype off
set rtp+=$HOME/.vim/bundle/vundle.vim/
call vundle#begin()

"Mandatory
Plugin 'vundleVim/Vundle.vim'		"plugin Manager

"Quality of life (any) 
Plugin 'itchyny/lightline.vim'		"status bar
Plugin 'kien/rainbow_parentheses.vim'	"Better Raimbow Parentheses
Plugin 'mhinz/vim-startify'		"start screen 
Plugin 'lilydjwg/colorizer'		"color hexcode
Plugin 'jiangmiao/auto-pairs'		"auto Pair Brackets
Plugin 'Yggdroot/indentLine'		"show indent
" Plugin 'preservim/nerdtree'		"Directory Visulaliser :Nerdtree

"useful in multiple languages
Plugin 'SirVer/ultisnips'		"fast write
Plugin 'honza/vim-snippets'		"lib of snips
Plugin 'majutsushi/tagbar'		"display tagBar with :TagbarToggle
" Plugin 'vim-syntastic/syntastic'	"errors manager (Seem to be broken with ycm for java)
" Plugin 'maralla/completor.vim'		"completion menu
" Plugin 'tokorom/completor-shell'	"Add on of completor.vim for shell scripting
Plugin 'tpope/vim-commentary'		"comment with <gcc>
" Plugin 'dense-analysis/ale'		"Async error checker (test usefulness)
Plugin 'puremourning/vimspector'	"Debugger

Plugin 'ycm-core/YouCompleteMe'		"completion tool

"git
Plugin 'mhinz/vim-signify'		"git diff show
Plugin 'tpope/vim-fugitive'		"for the :Git <command>

"php
" Plugin 'StanAngeloff/php.vim'		"php syntax
" Plugin 'phpactor/phpactor'		"php auto-completion

"python
" Plugin 'python-mode/python-mode'	"A python IDE

"html/css
Plugin 'mattn/emmet-vim'		"Fast http
Plugin 'vim-scripts/loremipsum'		"ipsum generator :Loremipsum <word>
Plugin 'tpope/vim-surround'		"Surround html tags
Plugin 'sukima/xmledit'		"Edit XML and HTML

"lua
" Plugin 'wsdjeg/vim-lua'			"lua syntax

"markdown
Plugin 'iamcco/markdown-preview.nvim', { 'do': { -> mkdp#util#install() }, 'for': ['markdown', 'vundle'] }

"c & cpp
Plugin 'bfrg/vim-cpp-modern'		"Extended vim syntax highlight c++
Plugin 'a.vim'				"go from hpp to cpp with :A
" Plugin 'xavierd/clang_complete'		"CLang Complete (don't work with ycm)
" Plugin 'ctrlpvim/ctrlp.vim'		"ctrl p support
Plugin 'cdelledonne/vim-cmake'

"glsl (shader)
Plugin 'tikhomirov/vim-glsl'

"c sharp
" Plugin 'OmniSharp/omnisharp-vim'

"java

Plugin 'hdiniz/vim-gradle'

Plugin 'junegunn/fzf', {'do': { -> fzf#install() }}
Plugin 'junegunn/fzf.vim'

"latex

Plugin 'lervag/vimtex'

call vundle#end()

filetype plugin indent on
set omnifunc=syntaxcomplete#Complete