From 828f3e0c29704aa26c1b80bff7c77648cb9fd294 Mon Sep 17 00:00:00 2001 From: Nachuan Tang Date: Tue, 7 Feb 2023 02:28:16 -0500 Subject: [PATCH] . --- .exp-coc-config | 147 -------------------------------------------- .vimrc.bundles | 55 +++++++++-------- coc-nvim-config.vim | 76 +++++++++++++++++++++++ 3 files changed, 106 insertions(+), 172 deletions(-) delete mode 100644 .exp-coc-config create mode 100644 coc-nvim-config.vim diff --git a/.exp-coc-config b/.exp-coc-config deleted file mode 100644 index 7424ac4..0000000 --- a/.exp-coc-config +++ /dev/null @@ -1,147 +0,0 @@ -" Set internal encoding of vim, not needed on neovim, since coc.nvim using some -" unicode characters in the file autoload/float.vim -" set encoding=utf-8 - -" TextEdit might fail if hidden is not set. -set hidden - -" Some servers have issues with backup files, see #649. -set nobackup -set nowritebackup - -" Give more space for displaying messages. -"set cmdheight=2 - -" Having longer updatetime (default is 4000 ms = 4 s) leads to noticeable -" delays and poor user experience. -set updatetime=2000 - -" Don't pass messages to |ins-completion-menu|. -set shortmess+=c - -" Always show the signcolumn, otherwise it would shift the text each time -" diagnostics appear/become resolved. -"set signcolumn=yes - -" Use to trigger completion. -if has('nvim') - inoremap coc#refresh() -else - inoremap coc#refresh() -endif - -" Make auto-select the first completion item and notify coc.nvim to -" format on enter, could be remapped by other vim plugin -inoremap pumvisible() ? coc#_select_confirm() - \: "\u\\=coc#on_enter()\" - -" Use `[g` and `]g` to navigate diagnostics -" Use `:CocDiagnostics` to get all diagnostics of current buffer in location list. -nmap [g (coc-diagnostic-prev) -nmap ]g (coc-diagnostic-next) - -" GoTo code navigation. -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() - -function! s:show_documentation() - if CocAction('hasProvider', 'hover') - call CocActionAsync('doHover') - else - call feedkeys('K', 'in') - endif -endfunction - -" Highlight the symbol and its references when holding the cursor. -autocmd CursorHold * silent call CocActionAsync('highlight') - -" Symbol renaming. -nmap rn (coc-rename) - -" Formatting selected code. -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 - -" Applying codeAction to the selected region. -" Example: `aap` for current paragraph -xmap a (coc-codeaction-selected) -nmap a (coc-codeaction-selected) - -" Remap keys for applying codeAction to the current buffer. -nmap ac (coc-codeaction) -" Apply AutoFix to problem on the current line. -nmap qf (coc-fix-current) - -" Run the Code Lens action on the current line. -nmap cl (coc-codelens-action) - -" Map function and class text objects -" NOTE: Requires 'textDocument.documentSymbol' support from the language server. -xmap if (coc-funcobj-i) -omap if (coc-funcobj-i) -xmap af (coc-funcobj-a) -omap af (coc-funcobj-a) -xmap ic (coc-classobj-i) -omap ic (coc-classobj-i) -xmap ac (coc-classobj-a) -omap ac (coc-classobj-a) - -" Remap and for scroll float windows/popups. -if has('nvim-0.4.0') || has('patch-8.2.0750') - nnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" - nnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" - inoremap coc#float#has_scroll() ? "\=coc#float#scroll(1)\" : "\" - inoremap coc#float#has_scroll() ? "\=coc#float#scroll(0)\" : "\" - vnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" - vnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" -endif - -" Use CTRL-S for selections ranges. -" Requires 'textDocument/selectionRange' support of language server. -nmap (coc-range-select) -xmap (coc-range-select) - -" Add `:Format` command to format current buffer. -command! -nargs=0 Format :call CocActionAsync('format') - -" Add `:Fold` command to fold current buffer. -command! -nargs=? Fold :call CocAction('fold', ) - -" Add `:OR` command for organize imports of the current buffer. -command! -nargs=0 OR :call CocActionAsync('runCommand', 'editor.action.organizeImport') - -" Add (Neo)Vim's native statusline support. -" NOTE: Please see `:h coc-status` for integrations with external plugins that -" provide custom statusline: lightline.vim, vim-airline. -set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')} - -" Mappings for 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 diff --git a/.vimrc.bundles b/.vimrc.bundles index acb11f9..915ab56 100644 --- a/.vimrc.bundles +++ b/.vimrc.bundles @@ -73,12 +73,14 @@ " only work with vim if g:vim_type == 'vim' + set encoding=UTF-8 Plug 'scrooloose/nerdtree' " Plug 'tribela/vim-transparent' Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' " The bottom buffer display Plug 'Donaldttt/vim-bufferline' + Plug 'ryanoasis/vim-devicons' " Plug 'itchyny/lightline.vim' endif @@ -280,17 +282,17 @@ endif " This must using my fork version of bufferline " - let g:bufferline_max_length = &columns - 25 + let g:bufferline_max_length = &columns - 30 function! BufferNumber() return len(g:index_to_buffer) endfunction call airline#parts#define_function('bufnum', 'BufferNumber') let g:airline_section_b = '' - let g:airline_section_x = '' - "let g:airline_section_gutter = '' - let g:airline_section_y = airline#section#create(['bufnum']) + let g:airline_section_x = airline#section#create(['bufnum']) + let g:airline_section_y = '' let g:airline_section_z = airline#section#create(['filetype']) + "let g:airline_section_gutter = '' let g:airline_section_warning = '' let g:airline_section_error = '' "let g:airline_exclude_filetypes = ['nerdtree'] " see source for current list @@ -357,8 +359,8 @@ endif \ 'suggest.noselect': v:true, \ 'suggest.enablePreselect': v:false } - if filereadable(expand(config_dir . "/.exp-coc-config")) - exec "source " . config_dir . "/.exp-coc-config" + if filereadable(expand(config_dir . "/coc-nvim-config.vim")) + exec "source " . config_dir . "/coc-nvim-config.vim" endif " warning that coc work best for vim >= 8.3 let g:coc_disable_startup_warning = 1 @@ -441,26 +443,29 @@ endif " Fix colorscheme not working correctly under transparent background " There is no plugin for this for nvim < 0.5 or vim without lua support function! TransparentBackgroundFix() - "if !has('nvim') || g:vim_version < 0.5 - if v:true - "if v:false + if !has('nvim') || g:vim_version < 0.5 + " if v:true + " if v:true + highlight CursorLineNr ctermbg=none highlight SignColumn ctermbg=none - "highlight CursorLineNr ctermbg=none - highlight CocWarningHighlight ctermbg=none - highlight CocErrorSign ctermbg=none ctermfg=9 cterm=bold - highlight CocErrorHighlight ctermbg=none ctermfg=9 cterm=underline,bold - highlight CocInfoHighlight ctermbg=none - highlight CocHintHighlight ctermbg=none - highlight CocWarningSign ctermbg=none - highlight CocInfoSign ctermbg=none - highlight CocHintSign ctermbg=none - if g:dark_or_white_theme == 'dark' - highlight! link TempColor Visual - highlight! link CocFloating TempColor - highlight! link CocErrorFloat TempColor - highlight! link CocWarningFloat TempColor - highlight! link CocInfoFloat TempColor - highlight! link CocHintFloat TempColor + if v:false + "highlight CursorLineNr ctermbg=none + highlight CocWarningHighlight ctermbg=none + highlight CocErrorSign ctermbg=none ctermfg=9 cterm=bold + highlight CocErrorHighlight ctermbg=none ctermfg=9 cterm=underline,bold + highlight CocInfoHighlight ctermbg=none + highlight CocHintHighlight ctermbg=none + highlight CocWarningSign ctermbg=none + highlight CocInfoSign ctermbg=none + highlight CocHintSign ctermbg=none + if g:dark_or_white_theme == 'dark' + highlight! link TempColor Visual + highlight! link CocFloating TempColor + highlight! link CocErrorFloat TempColor + highlight! link CocWarningFloat TempColor + highlight! link CocInfoFloat TempColor + highlight! link CocHintFloat TempColor + endif endif endif endfunction diff --git a/coc-nvim-config.vim b/coc-nvim-config.vim new file mode 100644 index 0000000..eb4458b --- /dev/null +++ b/coc-nvim-config.vim @@ -0,0 +1,76 @@ + +" Use to trigger completion. +if has('nvim') + inoremap coc#refresh() +else + inoremap coc#refresh() +endif + +" Make auto-select the first completion item and notify coc.nvim to +" format on enter, could be remapped by other vim plugin +inoremap pumvisible() ? coc#_select_confirm() + \: "\u\\=coc#on_enter()\" + +" GoTo code navigation. +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() + +" function! s:show_documentation() +" if CocAction('hasProvider', 'hover') +" call CocActionAsync('doHover') +" else +" call feedkeys('K', 'in') +" endif +" endfunction + + +" Symbol renaming. +nmap rn (coc-rename) + +" Formatting selected code. +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 + +" Apply AutoFix to problem on the current line. +nmap qf (coc-fix-current) + +" Remap and for scroll float windows/popups. +if has('nvim-0.4.0') || has('patch-8.2.0750') + nnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" + nnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" + inoremap coc#float#has_scroll() ? "\=coc#float#scroll(1)\" : "\" + inoremap coc#float#has_scroll() ? "\=coc#float#scroll(0)\" : "\" + vnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" + vnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" +endif + +" Mappings for 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