2019-04-28 04:27:36 +02:00
|
|
|
|
""" ALE """
|
|
|
|
|
|
|
|
|
|
nmap <F3> :ALEFix<CR>
|
|
|
|
|
|
|
|
|
|
let g:ale_sign_error = '×'
|
|
|
|
|
let g:ale_sign_warning = '!'
|
|
|
|
|
let g:ale_completion_enabled = 1
|
2019-04-30 08:22:27 +02:00
|
|
|
|
let g:ale_fixers = ['autopep8', 'shfmt', 'uncrustify', 'remove_trailing_lines', 'trim_whitespace', 'phpcbf']
|
2019-04-28 04:27:36 +02:00
|
|
|
|
let g:ale_php_phpcs_standard = '/srv/http/machines/ruleset.xml'
|
|
|
|
|
|
2019-07-08 07:57:29 +02:00
|
|
|
|
" For PHP, install https://pear.php.net/package/PHP_CodeSniffer
|
2019-04-28 04:27:36 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
""" UNDOTREE """
|
|
|
|
|
|
|
|
|
|
nmap <F7> :UndotreeToggle<CR>
|
|
|
|
|
|
|
|
|
|
""" VIM-AIRLINE """
|
|
|
|
|
|
|
|
|
|
set noshowmode
|
|
|
|
|
set laststatus=2
|
|
|
|
|
let g:airline_powerline_fonts = 1
|
|
|
|
|
let g:airline#extensions#tabline#enabled = 1
|
|
|
|
|
|
|
|
|
|
let g:airline_section_a = airline#section#create(['mode'])
|
|
|
|
|
let g:airline_section_b = airline#section#create(['branch', 'hunks'])
|
|
|
|
|
" let g:airline_section_z = airline#section#create(['%B', '@', '%l', ':', '%c'])
|
|
|
|
|
let g:airline_theme = 'base16_monokai'
|
2019-07-08 07:57:29 +02:00
|
|
|
|
|
|
|
|
|
let airline#extensions#languageclient#error_symbol = '✖ '
|
|
|
|
|
let airline#extensions#languageclient#warning_symbol = '⚠ '
|
2019-04-28 04:27:36 +02:00
|
|
|
|
|
|
|
|
|
""" FZF """
|
|
|
|
|
|
|
|
|
|
let g:fzf_layout = { 'down': '~40%' }
|
|
|
|
|
let g:fzf_colors =
|
|
|
|
|
\ { 'fg': ['fg', 'Normal'],
|
|
|
|
|
\ 'bg': ['bg', 'Normal'],
|
|
|
|
|
\ 'hl': ['fg', 'Comment'],
|
|
|
|
|
\ 'fg+': ['fg', 'CursorLine', 'CursorColumn', 'Normal'],
|
|
|
|
|
\ 'bg+': ['bg', 'CursorLine', 'CursorColumn'],
|
|
|
|
|
\ 'hl+': ['fg', 'Statement'],
|
|
|
|
|
\ 'info': ['fg', 'PreProc'],
|
|
|
|
|
\ 'border': ['fg', 'Ignore'],
|
|
|
|
|
\ 'prompt': ['fg', 'Conditional'],
|
|
|
|
|
\ 'pointer': ['fg', 'Exception'],
|
|
|
|
|
\ 'marker': ['fg', 'Keyword'],
|
|
|
|
|
\ 'spinner': ['fg', 'Label'],
|
|
|
|
|
\ 'header': ['fg', 'Comment'] }
|
|
|
|
|
|
2019-07-08 07:57:29 +02:00
|
|
|
|
let g:fzf_command_prefix = 'Fzf'
|
|
|
|
|
nmap gF :FzfFiles<CR>
|
|
|
|
|
nmap gf :FzfGFiles<CR>
|
|
|
|
|
nmap gb :FzfBuffers<CR>
|
|
|
|
|
nmap gL :FzfLines<CR>
|
|
|
|
|
nmap gl :FzfBLines<CR>
|
|
|
|
|
nmap gT :FzfTags<CR>
|
|
|
|
|
nmap gt :FzfBTags<CR>
|
|
|
|
|
nmap gm :FzfMarks<CR>
|
|
|
|
|
nmap gw :FzfWindows<CR>
|
|
|
|
|
nmap gh :FzfHistory<CR>
|
|
|
|
|
nmap gH :FzfHistory:<CR>
|
|
|
|
|
nmap gS :FzfHistory/<CR>
|
|
|
|
|
nmap gs :FzfSnippets<CR>
|
2019-04-28 04:27:36 +02:00
|
|
|
|
|
|
|
|
|
" TODO `gd` → go to tag matching selected word, or show a list with that
|
|
|
|
|
" of tags pre-filtered with that word
|
|
|
|
|
|
|
|
|
|
""" SUPERTAB """
|
|
|
|
|
|
2020-05-03 13:24:45 +02:00
|
|
|
|
let g:SuperTabDefaultCompletionType = "<c-n>" " Go down when completing
|
|
|
|
|
let g:SuperTabContextDefaultCompletionType = "<c-n>"
|
2019-04-28 04:27:36 +02:00
|
|
|
|
|
|
|
|
|
""" LanguageTool """
|
|
|
|
|
|
|
|
|
|
let g:languagetool_jar = "/usr/share/java/languagetool/languagetool-commandline.jar"
|
|
|
|
|
|
|
|
|
|
""" vim-pandoc """
|
|
|
|
|
let g:pandoc#modules#disabled = ["folding"]
|
|
|
|
|
let g:pandoc#spell#enabled = 0
|
|
|
|
|
let g:pandoc#syntax#conceal#use = 0
|
|
|
|
|
|
2019-07-08 07:57:29 +02:00
|
|
|
|
""" LanguageClient-neovim """
|
|
|
|
|
|
2020-05-03 13:24:45 +02:00
|
|
|
|
" let g:LanguageClient_serverCommands = {
|
|
|
|
|
" \ 'python': ['pyls'],
|
|
|
|
|
" \ 'sh': ['bash-language-server', 'start'],
|
|
|
|
|
" \ }
|
|
|
|
|
" let g:LanguageClient_loggingFile = expand('~/.cache/vim/LanguageClient.log')
|
|
|
|
|
"
|
|
|
|
|
"
|
|
|
|
|
" function LC_maps()
|
|
|
|
|
" if has_key(g:LanguageClient_serverCommands, &filetype)
|
|
|
|
|
" nnoremap <buffer> <silent> K :call LanguageClient#textDocument_hover()<cr>
|
|
|
|
|
" nnoremap <buffer> <silent> gd :call LanguageClient#textDocument_definition()<CR>
|
|
|
|
|
" nnoremap <buffer> <silent> gD :call LanguageClient#textDocument_references()<CR>
|
|
|
|
|
" nnoremap <buffer> <silent> <F2> :call LanguageClient#textDocument_rename()<CR>
|
|
|
|
|
" nnoremap <buffer> <silent> <F3> :call LanguageClient#textDocument_formatting()<CR>
|
|
|
|
|
" set completefunc=LanguageClient#complete
|
|
|
|
|
" set omnifunc=LanguageClient#complete
|
|
|
|
|
" endif
|
|
|
|
|
" endfunction
|
|
|
|
|
" autocmd FileType * call LC_maps()
|
|
|
|
|
|
|
|
|
|
""" vim-lsp """
|
|
|
|
|
|
|
|
|
|
" (providers are automatically detected thanks to vim-lsp-settings.
|
|
|
|
|
" You can even install some locally using :LspInstallServer)
|
|
|
|
|
|
|
|
|
|
nnoremap gd :LspDefinition<CR>
|
|
|
|
|
nnoremap gD :LspDeclaration<CR>
|
|
|
|
|
nnoremap <F3> :LspDocumentFormat<CR>
|
|
|
|
|
vnoremap <F3> :LspDocumentRangeFormat<CR>
|
|
|
|
|
nnoremap gE :LspNextDiagnostic<CR>
|
|
|
|
|
nnoremap ge :LspNextError<CR>
|
|
|
|
|
nnoremap <F2> :LspRename<CR>
|
|
|
|
|
|
|
|
|
|
let g:lsp_signs_enabled = 1
|
|
|
|
|
let g:lsp_diagnostics_echo_cursor = 1
|
|
|
|
|
|
|
|
|
|
let g:lsp_signs_error = {'text': '✗'}
|
|
|
|
|
let g:lsp_signs_warning = {'text': '‼'}
|
|
|
|
|
let g:lsp_signs_information = {'text': 'ℹ'}
|
|
|
|
|
let g:lsp_signs_hint = {'text': '?'}
|
|
|
|
|
|
|
|
|
|
let g:lsp_highlight_references_enabled = 1
|
2019-07-08 07:57:29 +02:00
|
|
|
|
|
|
|
|
|
""" deoplete """
|
|
|
|
|
|
|
|
|
|
let g:deoplete#enable_at_startup = 1
|
2020-05-03 13:24:45 +02:00
|
|
|
|
inoremap <silent><expr> <TAB>
|
|
|
|
|
\ pumvisible() ? "\<C-n>" :
|
|
|
|
|
\ <SID>check_back_space() ? "\<TAB>" :
|
|
|
|
|
\ deoplete#manual_complete()
|
|
|
|
|
function! s:check_back_space() abort "{{{
|
|
|
|
|
let col = col('.') - 1
|
|
|
|
|
return !col || getline('.')[col - 1] =~ '\s'
|
|
|
|
|
endfunction"}}}
|
|
|
|
|
|
|
|
|
|
" suggested by ssemshi to make it not too slow
|
|
|
|
|
" let g:deoplete#auto_complete_delay = 100
|
|
|
|
|
call deoplete#custom#option({
|
|
|
|
|
\ 'auto_complete_delay': 100,
|
|
|
|
|
\ 'smart_case': v:true,
|
|
|
|
|
\ })
|
|
|
|
|
|
|
|
|
|
""" asyncomplete """
|
|
|
|
|
|
|
|
|
|
" let g:asyncomplete_auto_popup = 1
|
|
|
|
|
" inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
|
|
|
|
|
" inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"
|
|
|
|
|
" inoremap <expr> <cr> pumvisible() ? "\<C-y>" : "\<cr>"
|
|
|
|
|
" imap <c-space> <Plug>(asyncomplete_force_refresh)
|
|
|
|
|
|
|
|
|
|
""" asyncomplete-file
|
|
|
|
|
|
|
|
|
|
" au User asyncomplete_setup call asyncomplete#register_source(asyncomplete#sources#file#get_source_options({
|
|
|
|
|
" \ 'name': 'file',
|
|
|
|
|
" \ 'whitelist': ['*'],
|
|
|
|
|
" \ 'priority': 10,
|
|
|
|
|
" \ 'completor': function('asyncomplete#sources#file#completor')
|
|
|
|
|
" \ }))
|
2020-04-10 14:19:42 +02:00
|
|
|
|
|
|
|
|
|
""" vista.vim """
|
|
|
|
|
|
|
|
|
|
nmap <F8> :Vista!!<CR>
|
|
|
|
|
let g:vista_icon_indent = ["▸ ", ""]
|
|
|
|
|
|
|
|
|
|
let g:vista#renderer#enable_icon = 0
|
|
|
|
|
|
|
|
|
|
" The default icons can't be suitable for all the filetypes, you can extend it as you wish.
|
|
|
|
|
let g:vista#renderer#icons = {
|
|
|
|
|
\ "function": "f",
|
|
|
|
|
\ "variable": "x",
|
|
|
|
|
\ }
|
|
|
|
|
|
2020-05-25 09:05:56 +02:00
|
|
|
|
" EasyAlign
|
|
|
|
|
|
|
|
|
|
" Align GitHub-flavored Markdown tables
|
|
|
|
|
au FileType markdown vmap <Bar> :EasyAlign*<Bar><Enter>
|
|
|
|
|
|
|
|
|
|
" SmoothScroll
|
|
|
|
|
noremap <silent> <C-K> :call smooth_scroll#up(20, 5, 1)<CR>
|
|
|
|
|
noremap <silent> <C-J> :call smooth_scroll#down(20, 5, 1)<CR>
|