From 33066712df2ab70229b1f92503bd9e1126701cb9 Mon Sep 17 00:00:00 2001 From: Paul Walker Date: Wed, 5 Feb 2020 12:29:06 +0000 Subject: [PATCH] vim: enable coc only for v8.0 and up --- vimrc | 216 +++++++++++++++++++++++++++++----------------------------- 1 file changed, 109 insertions(+), 107 deletions(-) diff --git a/vimrc b/vimrc index 2c9da6d..1e98ef8 100644 --- a/vimrc +++ b/vimrc @@ -23,11 +23,9 @@ call plug#begin('~/.vim/plugged') Plug 'wesQ3/vim-windowswap' Plug 'majutsushi/tagbar' - " be sure to read full install instructions. this still needs - " you to cd ~/.vim/plugged/YouCompleteMe - " python ./install.py --js-completer - " Plug 'Valloric/YouCompleteMe' - Plug 'neoclide/coc.nvim', {'branch': 'release'} + if version >= 800 + Plug 'neoclide/coc.nvim', {'branch': 'release'} + endif Plug 'dense-analysis/ale' Plug 'tpope/vim-commentary' @@ -153,6 +151,7 @@ augroup filetype au bufRead,BufNewFile *.cpp set filetype=cpp au bufRead,BufNewFile *.inc set filetype=make au BufRead,BufNewFile *.eex set filetype=html + au BufRead,BufNewFile *.bss set filetype=vb augroup END augroup cppprog @@ -432,134 +431,137 @@ endfunction nnoremap wst :call ToggleWindowHorizontalVerticalSplit() " inoremap / ==gi -" if hidden is not set, TextEdit might fail. -set hidden +" COC configuration +if version >= 800 + " if hidden is not set, TextEdit might fail. + set hidden -" Some servers have issues with backup files, see #649 -set nobackup -set nowritebackup + " Some servers have issues with backup files, see #649 + set nobackup + set nowritebackup -" Better display for messages -set cmdheight=2 + " Better display for messages + set cmdheight=2 -" You will have bad experience for diagnostic messages when it's default 4000. -set updatetime=300 + " 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 + " don't give |ins-completion-menu| messages. + set shortmess+=c -" always show signcolumns -set signcolumn=yes + " always show signcolumns + set signcolumn=yes -" Use tab for trigger completion with characters ahead and navigate. -" Use command ':verbose imap ' to make sure tab is not mapped by other plugin. -inoremap - \ pumvisible() ? "\" : - \ check_back_space() ? "\" : - \ coc#refresh() -inoremap pumvisible() ? "\" : "\" + " Use tab for trigger completion with characters ahead and navigate. + " Use command ':verbose imap ' to make sure tab is not mapped by other plugin. + inoremap + \ pumvisible() ? "\" : + \ check_back_space() ? "\" : + \ coc#refresh() + inoremap pumvisible() ? "\" : "\" -function! s:check_back_space() abort - let col = col('.') - 1 - return !col || getline('.')[col - 1] =~# '\s' -endfunction + function! s:check_back_space() abort + let col = col('.') - 1 + return !col || getline('.')[col - 1] =~# '\s' + endfunction -" Use to trigger completion. -inoremap coc#refresh() + " Use to trigger completion. + inoremap coc#refresh() -" Use to confirm completion, `u` means break undo chain at current position. -" Coc only does snippet and additional edit on confirm. -inoremap pumvisible() ? "\" : "\u\" -" Or use `complete_info` if your vim support it, like: -" inoremap complete_info()["selected"] != "-1" ? "\" : "\u\" + " Use to confirm completion, `u` means break undo chain at current position. + " Coc only does snippet and additional edit on confirm. + inoremap pumvisible() ? "\" : "\u\" + " Or use `complete_info` if your vim support it, like: + " inoremap complete_info()["selected"] != "-1" ? "\" : "\u\" -" Use `[g` and `]g` to navigate diagnostics -nmap [g (coc-diagnostic-prev) -nmap ]g (coc-diagnostic-next) + " Use `[g` and `]g` to navigate diagnostics + nmap [g (coc-diagnostic-prev) + nmap ]g (coc-diagnostic-next) -" Remap keys for gotos -nmap gd (coc-definition) -nmap gy (coc-type-definition) -nmap gi (coc-implementation) -nmap gr (coc-references) + " Remap keys for gotos + nmap gd (coc-definition) + nmap gy (coc-type-definition) + nmap gi (coc-implementation) + nmap gr (coc-references) -" Use K to show documentation in preview window -nnoremap K :call show_documentation() + " Use K to show documentation in preview window + nnoremap K :call show_documentation() -function! s:show_documentation() - if (index(['vim','help'], &filetype) >= 0) - execute 'h '.expand('') - else - call CocAction('doHover') - endif -endfunction + function! s:show_documentation() + if (index(['vim','help'], &filetype) >= 0) + execute 'h '.expand('') + else + call CocAction('doHover') + endif + endfunction -" Highlight symbol under cursor on CursorHold -autocmd CursorHold * silent call CocActionAsync('highlight') + " Highlight symbol under cursor on CursorHold + autocmd CursorHold * silent call CocActionAsync('highlight') -" Remap for rename current word -nmap rn (coc-rename) + " Remap for rename current word + nmap rn (coc-rename) -" Remap for format selected region -xmap f (coc-format-selected) -nmap f (coc-format-selected) + " Remap for format selected region + xmap f (coc-format-selected) + nmap f (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 + 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: `aap` for current paragraph -xmap a (coc-codeaction-selected) -nmap a (coc-codeaction-selected) + " Remap for do codeAction of selected region, ex: `aap` for current paragraph + xmap a (coc-codeaction-selected) + nmap a (coc-codeaction-selected) -" Remap for do codeAction of current line -nmap ac (coc-codeaction) -" Fix autofix problem of current line -nmap qf (coc-fix-current) + " Remap for do codeAction of current line + nmap ac (coc-codeaction) + " Fix autofix problem of current line + nmap qf (coc-fix-current) -" Create mappings for function text object, requires document symbols feature of languageserver. -xmap if (coc-funcobj-i) -xmap af (coc-funcobj-a) -omap if (coc-funcobj-i) -omap af (coc-funcobj-a) + " Create mappings for function text object, requires document symbols feature of languageserver. + xmap if (coc-funcobj-i) + xmap af (coc-funcobj-a) + omap if (coc-funcobj-i) + omap af (coc-funcobj-a) -" Use for select selections ranges, needs server support, like: coc-tsserver, coc-python -nmap (coc-range-select) -xmap (coc-range-select) + " Use for select selections ranges, needs server support, like: coc-tsserver, coc-python + nmap (coc-range-select) + xmap (coc-range-select) -" Use `:Format` to format current buffer -command! -nargs=0 Format :call CocAction('format') + " 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', ) + " Use `:Fold` to fold current buffer + command! -nargs=? Fold :call CocAction('fold', ) -" use `:OR` for organize import of current buffer -command! -nargs=0 OR :call CocAction('runCommand', 'editor.action.organizeImport') + " 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','')} + " 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 a :CocList diagnostics -" Manage extensions -nnoremap e :CocList extensions -" Show commands -nnoremap c :CocList commands -" Find symbol of current document -nnoremap o :CocList outline -" Search workspace symbols -nnoremap s :CocList -I symbols -" Do default action for next item. -nnoremap j :CocNext -" Do default action for previous item. -nnoremap k :CocPrev -" Resume latest coc list -nnoremap p :CocListResume + " Using CocList + " Show all diagnostics + nnoremap a :CocList diagnostics + " Manage extensions + nnoremap e :CocList extensions + " Show commands + nnoremap c :CocList commands + " Find symbol of current document + nnoremap o :CocList outline + " Search workspace symbols + nnoremap s :CocList -I symbols + " Do default action for next item. + nnoremap j :CocNext + " Do default action for previous item. + nnoremap k :CocPrev + " Resume latest coc list + nnoremap p :CocListResume +endif nmap :> vmap :>