|
@ -18,7 +18,7 @@ Plug 'tpope/vim-dispatch' " Needed for dadbod |
|
|
Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } " file tree |
|
|
Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } " file tree |
|
|
Plug 'Xuyuanp/nerdtree-git-plugin', { 'on': 'NERDTreeToggle' } |
|
|
Plug 'Xuyuanp/nerdtree-git-plugin', { 'on': 'NERDTreeToggle' } |
|
|
Plug 'scrooloose/nerdcommenter' " better commenting |
|
|
Plug 'scrooloose/nerdcommenter' " better commenting |
|
|
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } " completion engine |
|
|
|
|
|
|
|
|
Plug 'neoclide/coc.nvim', {'branch': 'release'} " coc - completion |
|
|
Plug 'Shougo/neosnippet.vim' " snippet engine |
|
|
Plug 'Shougo/neosnippet.vim' " snippet engine |
|
|
Plug 'Shougo/neosnippet-snippets' " snippets |
|
|
Plug 'Shougo/neosnippet-snippets' " snippets |
|
|
Plug 'easymotion/vim-easymotion' " better motion with leader |
|
|
Plug 'easymotion/vim-easymotion' " better motion with leader |
|
@ -48,12 +48,10 @@ Plug 'moll/vim-node', { 'for': [ 'javascript', 'vue' ]} " node support |
|
|
Plug 'https://github.com/othree/jspc.vim', { 'for': [ 'javascript', 'vue' ]} " Function parameter completion |
|
|
Plug 'https://github.com/othree/jspc.vim', { 'for': [ 'javascript', 'vue' ]} " Function parameter completion |
|
|
Plug 'heavenshell/vim-jsdoc', { 'for': [ 'javascript', 'vue' ]} " Generate JSDoc comments |
|
|
Plug 'heavenshell/vim-jsdoc', { 'for': [ 'javascript', 'vue' ]} " Generate JSDoc comments |
|
|
Plug 'posva/vim-vue', { 'for': [ 'javascript', 'html', 'vue' ] } " vue.js integration |
|
|
Plug 'posva/vim-vue', { 'for': [ 'javascript', 'html', 'vue' ] } " vue.js integration |
|
|
Plug 'carlitux/deoplete-ternjs', { 'for': [ 'javascript', 'vue', 'html' ], 'do': 'npm install -g tern' } " deoplete completion via ternjs |
|
|
|
|
|
"}}} |
|
|
"}}} |
|
|
|
|
|
|
|
|
" Go {{{ |
|
|
" Go {{{ |
|
|
Plug 'fatih/vim-go', { 'for': [ 'go', 'html', 'gohtmltmpl' ], 'do': ':GoInstallBinaries' } " go support |
|
|
Plug 'fatih/vim-go', { 'for': [ 'go', 'html', 'gohtmltmpl' ], 'do': ':GoInstallBinaries' } " go support |
|
|
Plug 'zchee/deoplete-go', { 'for': 'go' } |
|
|
|
|
|
"}}} |
|
|
"}}} |
|
|
|
|
|
|
|
|
" LaTeX{{{ |
|
|
" LaTeX{{{ |
|
@ -85,10 +83,6 @@ Plug 'rhysd/vim-clang-format', { 'for' : ['c', 'cpp', 'java'] } |
|
|
"}}} |
|
|
"}}} |
|
|
|
|
|
|
|
|
" PHP{{{ |
|
|
" PHP{{{ |
|
|
"Plug 'shawncplus/phpcomplete.vim', { 'for': 'php', 'do': 'curl -Ss http://vim-php.com/phpctags/install/phpctags.phar > ~/bin/phpctags && chmod +x ~/bin/phpctags' } |
|
|
|
|
|
"Plug 'lvht/phpcd.vim', { 'for': 'php', 'do': 'composer install' } |
|
|
|
|
|
Plug 'phpactor/phpactor', {'for': 'php', 'do': 'composer install'} |
|
|
|
|
|
Plug 'kristijanhusak/deoplete-phpactor', { 'for': 'php' } |
|
|
|
|
|
Plug 'captbaritone/better-indent-support-for-php-with-html', { 'for': 'php' } |
|
|
Plug 'captbaritone/better-indent-support-for-php-with-html', { 'for': 'php' } |
|
|
Plug 'lumiliet/vim-twig', { 'for': [ 'php', 'html' ] } " Twig templates |
|
|
Plug 'lumiliet/vim-twig', { 'for': [ 'php', 'html' ] } " Twig templates |
|
|
Plug 'Rican7/php-doc-modded', { 'for': 'php' } " Automatic phpdoc comments |
|
|
Plug 'Rican7/php-doc-modded', { 'for': 'php' } " Automatic phpdoc comments |
|
@ -108,10 +102,6 @@ Plug 'artur-shaik/vim-javacomplete2', { 'for': 'java' } |
|
|
Plug 'vim-scripts/mips.vim' |
|
|
Plug 'vim-scripts/mips.vim' |
|
|
"}}} |
|
|
"}}} |
|
|
|
|
|
|
|
|
" Rust {{{ |
|
|
|
|
|
Plug 'sebastianmarkow/deoplete-rust', {'for': 'rust' } |
|
|
|
|
|
"}}} |
|
|
|
|
|
|
|
|
|
|
|
" All of your Plugins must be added before the following line |
|
|
" All of your Plugins must be added before the following line |
|
|
call plug#end() " required |
|
|
call plug#end() " required |
|
|
filetype plugin indent on " required |
|
|
filetype plugin indent on " required |
|
@ -257,28 +247,128 @@ autocmd FileType c,cpp,objc vnoremap <buffer><Leader>f :ClangFormat<CR> |
|
|
"}}} |
|
|
"}}} |
|
|
|
|
|
|
|
|
" Completion {{{ |
|
|
" Completion {{{ |
|
|
" Use deoplete. |
|
|
|
|
|
let g:deoplete#enable_at_startup = 1 |
|
|
|
|
|
|
|
|
|
|
|
" Use TAB to cycle between matches |
|
|
|
|
|
inoremap <silent><expr><tab> pumvisible() ? "\<c-n>" : "\<tab>" |
|
|
|
|
|
inoremap <silent><expr><s-tab> pumvisible() ? "\<c-p>" : "\<s-tab>" |
|
|
|
|
|
|
|
|
|
|
|
let g:deoplete#ignore_sources = get(g:, 'deoplete#ignore_sources', {}) |
|
|
|
|
|
let g:deoplete#ignore_sources.php = ['omni'] |
|
|
|
|
|
|
|
|
|
|
|
" Neosnippet Settings |
|
|
|
|
|
imap <C-k> <Plug>(neosnippet_expand_or_jump) |
|
|
|
|
|
smap <C-k> <Plug>(neosnippet_expand_or_jump) |
|
|
|
|
|
xmap <C-k> <Plug>(neosnippet_expand_target) |
|
|
|
|
|
|
|
|
|
|
|
" SuperTab like snippets behavior. |
|
|
|
|
|
"imap <expr><TAB> |
|
|
|
|
|
" \ pumvisible() ? "\<C-n>" : |
|
|
|
|
|
" \ neosnippet#expandable_or_jumpable() ? |
|
|
|
|
|
" \ "\<Plug>(neosnippet_expand_or_jump)" : "\<TAB>" |
|
|
|
|
|
smap <expr><TAB> neosnippet#expandable_or_jumpable() ? |
|
|
|
|
|
\ "\<Plug>(neosnippet_expand_or_jump)" : "\<TAB>" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
" if hidden is not set, TextEdit might fail. |
|
|
|
|
|
set hidden |
|
|
|
|
|
|
|
|
|
|
|
" Some servers have issues with backup files, see #649 |
|
|
|
|
|
set nobackup |
|
|
|
|
|
set nowritebackup |
|
|
|
|
|
|
|
|
|
|
|
" Better display for messages |
|
|
|
|
|
set cmdheight=2 |
|
|
|
|
|
|
|
|
|
|
|
" You will have bad experience for diagnostic messages when it's default 4000. |
|
|
|
|
|
set updatetime=300 |
|
|
|
|
|
|
|
|
|
|
|
" don't give |ins-completion-menu| messages. |
|
|
|
|
|
set shortmess+=c |
|
|
|
|
|
|
|
|
|
|
|
" always show signcolumns |
|
|
|
|
|
set signcolumn=yes |
|
|
|
|
|
|
|
|
|
|
|
" Use tab for trigger completion with characters ahead and navigate. |
|
|
|
|
|
" Use command ':verbose imap <tab>' to make sure tab is not mapped by other plugin. |
|
|
|
|
|
inoremap <silent><expr> <TAB> |
|
|
|
|
|
\ pumvisible() ? "\<C-n>" : |
|
|
|
|
|
\ <SID>check_back_space() ? "\<TAB>" : |
|
|
|
|
|
\ coc#refresh() |
|
|
|
|
|
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>" |
|
|
|
|
|
|
|
|
|
|
|
function! s:check_back_space() abort |
|
|
|
|
|
let col = col('.') - 1 |
|
|
|
|
|
return !col || getline('.')[col - 1] =~# '\s' |
|
|
|
|
|
endfunction |
|
|
|
|
|
|
|
|
|
|
|
" Use <c-space> to trigger completion. |
|
|
|
|
|
inoremap <silent><expr> <c-space> coc#refresh() |
|
|
|
|
|
|
|
|
|
|
|
" Use <cr> to confirm completion, `<C-g>u` means break undo chain at current position. |
|
|
|
|
|
" Coc only does snippet and additional edit on confirm. |
|
|
|
|
|
inoremap <expr> <cr> pumvisible() ? "\<C-y>" : "\<C-g>u\<CR>" |
|
|
|
|
|
|
|
|
|
|
|
" Use `[c` and `]c` to navigate diagnostics |
|
|
|
|
|
nmap <silent> [c <Plug>(coc-diagnostic-prev) |
|
|
|
|
|
nmap <silent> ]c <Plug>(coc-diagnostic-next) |
|
|
|
|
|
|
|
|
|
|
|
" Remap keys for gotos |
|
|
|
|
|
nmap <silent> gd <Plug>(coc-definition) |
|
|
|
|
|
nmap <silent> gy <Plug>(coc-type-definition) |
|
|
|
|
|
nmap <silent> gi <Plug>(coc-implementation) |
|
|
|
|
|
nmap <silent> gr <Plug>(coc-references) |
|
|
|
|
|
|
|
|
|
|
|
" Use K to show documentation in preview window |
|
|
|
|
|
nnoremap <silent> K :call <SID>show_documentation()<CR> |
|
|
|
|
|
|
|
|
|
|
|
function! s:show_documentation() |
|
|
|
|
|
if (index(['vim','help'], &filetype) >= 0) |
|
|
|
|
|
execute 'h '.expand('<cword>') |
|
|
|
|
|
else |
|
|
|
|
|
call CocAction('doHover') |
|
|
|
|
|
endif |
|
|
|
|
|
endfunction |
|
|
|
|
|
|
|
|
|
|
|
" Highlight symbol under cursor on CursorHold |
|
|
|
|
|
autocmd CursorHold * silent call CocActionAsync('highlight') |
|
|
|
|
|
|
|
|
|
|
|
" Remap for rename current word |
|
|
|
|
|
nmap <leader>rn <Plug>(coc-rename) |
|
|
|
|
|
|
|
|
|
|
|
" Remap for format selected region |
|
|
|
|
|
xmap <leader>f <Plug>(coc-format-selected) |
|
|
|
|
|
nmap <leader>f <Plug>(coc-format-selected) |
|
|
|
|
|
|
|
|
|
|
|
augroup mygroup |
|
|
|
|
|
autocmd! |
|
|
|
|
|
" Setup formatexpr specified filetype(s). |
|
|
|
|
|
autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected') |
|
|
|
|
|
" Update signature help on jump placeholder |
|
|
|
|
|
autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp') |
|
|
|
|
|
augroup end |
|
|
|
|
|
|
|
|
|
|
|
" Remap for do codeAction of selected region, ex: `<leader>aap` for current paragraph |
|
|
|
|
|
xmap <leader>a <Plug>(coc-codeaction-selected) |
|
|
|
|
|
nmap <leader>a <Plug>(coc-codeaction-selected) |
|
|
|
|
|
|
|
|
|
|
|
" Remap for do codeAction of current line |
|
|
|
|
|
nmap <leader>ac <Plug>(coc-codeaction) |
|
|
|
|
|
" Fix autofix problem of current line |
|
|
|
|
|
nmap <leader>qf <Plug>(coc-fix-current) |
|
|
|
|
|
|
|
|
|
|
|
" Use <tab> for select selections ranges, needs server support, like: coc-tsserver, coc-python |
|
|
|
|
|
nmap <silent> <TAB> <Plug>(coc-range-select) |
|
|
|
|
|
xmap <silent> <TAB> <Plug>(coc-range-select) |
|
|
|
|
|
xmap <silent> <S-TAB> <Plug>(coc-range-select-backword) |
|
|
|
|
|
|
|
|
|
|
|
" Use `:Format` to format current buffer |
|
|
|
|
|
command! -nargs=0 Format :call CocAction('format') |
|
|
|
|
|
|
|
|
|
|
|
" Use `:Fold` to fold current buffer |
|
|
|
|
|
command! -nargs=? Fold :call CocAction('fold', <f-args>) |
|
|
|
|
|
|
|
|
|
|
|
" use `:OR` for organize import of current buffer |
|
|
|
|
|
command! -nargs=0 OR :call CocAction('runCommand', 'editor.action.organizeImport') |
|
|
|
|
|
|
|
|
|
|
|
" Add status line support, for integration with other plugin, checkout `:h coc-status` |
|
|
|
|
|
set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')} |
|
|
|
|
|
|
|
|
|
|
|
" Using CocList |
|
|
|
|
|
" Show all diagnostics |
|
|
|
|
|
nnoremap <silent> <space>a :<C-u>CocList diagnostics<cr> |
|
|
|
|
|
" Manage extensions |
|
|
|
|
|
nnoremap <silent> <space>e :<C-u>CocList extensions<cr> |
|
|
|
|
|
" Show commands |
|
|
|
|
|
nnoremap <silent> <space>c :<C-u>CocList commands<cr> |
|
|
|
|
|
" Find symbol of current document |
|
|
|
|
|
nnoremap <silent> <space>o :<C-u>CocList outline<cr> |
|
|
|
|
|
" Search workspace symbols |
|
|
|
|
|
nnoremap <silent> <space>s :<C-u>CocList -I symbols<cr> |
|
|
|
|
|
" Do default action for next item. |
|
|
|
|
|
nnoremap <silent> <space>j :<C-u>CocNext<CR> |
|
|
|
|
|
" Do default action for previous item. |
|
|
|
|
|
nnoremap <silent> <space>k :<C-u>CocPrev<CR> |
|
|
|
|
|
" Resume latest coc list |
|
|
|
|
|
nnoremap <silent> <space>p :<C-u>CocListResume<CR>: |
|
|
|
|
|
|
|
|
" For conceal markers. |
|
|
" For conceal markers. |
|
|
if has('conceal') |
|
|
if has('conceal') |
|
|