diff --git a/.config/coc/extensions/package.json b/.config/coc/extensions/package.json index dbe66ed..85a57c2 100644 --- a/.config/coc/extensions/package.json +++ b/.config/coc/extensions/package.json @@ -1,16 +1,19 @@ { "dependencies": { - "@yaegassy/coc-intelephense": ">=0.22.4", - "coc-clangd": ">=0.21.4", + "@yaegassy/coc-intelephense": ">=0.24.1", + "coc-clangd": ">=0.23.0", "coc-cmake": ">=0.2.1", "coc-css": ">=1.3.0", "coc-html": ">=1.6.1", "coc-java": ">=1.5.5", "coc-json": ">=1.4.2", "coc-python": ">=1.2.13", - "coc-rust-analyzer": ">=0.62.1", - "coc-sh": ">=0.6.1", + "coc-rust-analyzer": ">=0.64.1", + "coc-sh": ">=0.7.0", "coc-texlab": ">=3.2.0", - "coc-tsserver": ">=1.10.4" - } + "coc-tsserver": ">=1.10.5" + }, + "disabled": [], + "locked": [], + "lastUpdate": 1664812478230 } \ No newline at end of file diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim index 904f426..d8c1a22 100644 --- a/.config/nvim/init.vim +++ b/.config/nvim/init.vim @@ -1,5 +1,6 @@ set number norelativenumber set noshowmode +set mouse= " https://stackoverflow.com/a/1878983 set tabstop=8 softtabstop=0 expandtab shiftwidth=4 smarttab diff --git a/.config/nvim/plug-config/coc.vim b/.config/nvim/plug-config/coc.vim index d31962f..4e52f21 100644 --- a/.config/nvim/plug-config/coc.vim +++ b/.config/nvim/plug-config/coc.vim @@ -1,43 +1,35 @@ -" Set internal encoding of vim, not needed on neovim, since coc.nvim using some -" unicode characters in the file autoload/float.vim +" May need for vim (not neovim) since coc.nvim calculate byte offset by count +" utf-8 byte sequence. 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=300 -" 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. -if has("patch-8.1.1564") - " Recently vim can merge signcolumn and number column into one - set signcolumn=number -else - set signcolumn=yes -endif +set signcolumn=yes " Use tab for trigger completion with characters ahead and navigate. +" NOTE: There's always complete item selected by default, you may want to enable +" no select by `"suggest.noselect": true` in your configuration file. " NOTE: Use command ':verbose imap ' to make sure tab is not mapped by " other plugin before putting this into your config. inoremap - \ pumvisible() ? "\" : - \ check_back_space() ? "\" : + \ coc#pum#visible() ? coc#pum#next(1) : + \ CheckBackspace() ? "\" : \ coc#refresh() -inoremap pumvisible() ? "\" : "\" +inoremap coc#pum#visible() ? coc#pum#prev(1) : "\" -function! s:check_back_space() abort +" Make to accept selected completion item or notify coc.nvim to format +" u breaks current undo, please make your own choice. +inoremap coc#pum#visible() ? coc#pum#confirm() + \: "\u\\=coc#on_enter()\" + +function! CheckBackspace() abort let col = col('.') - 1 return !col || getline('.')[col - 1] =~# '\s' endfunction @@ -49,11 +41,6 @@ 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) @@ -66,15 +53,13 @@ nmap gi (coc-implementation) nmap gr (coc-references) " Use K to show documentation in preview window. -nnoremap K :call show_documentation() +nnoremap K :call ShowDocumentation() -function! s:show_documentation() - if (index(['vim','help'], &filetype) >= 0) - execute 'h '.expand('') - elseif (coc#rpc#ready()) +function! ShowDocumentation() + if CocAction('hasProvider', 'hover') call CocActionAsync('doHover') else - execute '!' . &keywordprg . " " . expand('') + call feedkeys('K', 'in') endif endfunction @@ -106,6 +91,9 @@ 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) @@ -133,13 +121,13 @@ nmap (coc-range-select) xmap (coc-range-select) " Add `:Format` command to format current buffer. -command! -nargs=0 Format :call CocAction('format') +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 CocAction('runCommand', 'editor.action.organizeImport') +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