From d84a3a2663e80cf78549f5f40a3bab600573b123 Mon Sep 17 00:00:00 2001 From: Maxim Likhachev Date: Sat, 23 Oct 2021 18:19:30 +0300 Subject: [PATCH] vim: update plugins --- etc/soft/nvim/+plugins/MRU/LICENSE | 20 -- etc/soft/nvim/+plugins/MRU/test/.coveragerc | 3 - etc/soft/nvim/+plugins/coc.nvim/README.md | 334 ++++++++++++++++++++++++++++ etc/soft/nvim/+plugins/coc.nvim/Readme.md | 334 ---------------------------- 4 files changed, 334 insertions(+), 357 deletions(-) delete mode 100644 etc/soft/nvim/+plugins/MRU/LICENSE delete mode 100644 etc/soft/nvim/+plugins/MRU/test/.coveragerc create mode 100644 etc/soft/nvim/+plugins/coc.nvim/README.md delete mode 100644 etc/soft/nvim/+plugins/coc.nvim/Readme.md diff --git a/etc/soft/nvim/+plugins/MRU/LICENSE b/etc/soft/nvim/+plugins/MRU/LICENSE deleted file mode 100644 index 6f9c4c3..0000000 --- a/etc/soft/nvim/+plugins/MRU/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -License: MIT License -Copyright (c) 2003-2021 Yegappan Lakshmanan - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -IN THE SOFTWARE. diff --git a/etc/soft/nvim/+plugins/MRU/test/.coveragerc b/etc/soft/nvim/+plugins/MRU/test/.coveragerc deleted file mode 100644 index 8cddf91..0000000 --- a/etc/soft/nvim/+plugins/MRU/test/.coveragerc +++ /dev/null @@ -1,3 +0,0 @@ -[run] -plugins = covimerage -data_file = .coverage_covimerage diff --git a/etc/soft/nvim/+plugins/coc.nvim/README.md b/etc/soft/nvim/+plugins/coc.nvim/README.md new file mode 100644 index 0000000..aa5ed98 --- /dev/null +++ b/etc/soft/nvim/+plugins/coc.nvim/README.md @@ -0,0 +1,334 @@ +

+ + Coc Logo + +

Make your Vim/Neovim as smart as VSCode.

+

+ Software License + Actions + Codecov Coverage Status + Doc + Gitter +

+

+ +--- + +Gif + +_True snippet and additional text editing support_ + +## Why? + +- 🚀 **Fast**: [instant increment completion](https://github.com/neoclide/coc.nvim/wiki/Completion-with-sources), increment buffer sync using buffer update events. +- 💎 **Reliable**: typed language, tested with CI. +- 🌟 **Featured**: [full LSP support](https://github.com/neoclide/coc.nvim/wiki/Language-servers#supported-features) +- ❤️ **Flexible**: [configured like VSCode](https://github.com/neoclide/coc.nvim/wiki/Using-the-configuration-file), [extensions work like in VSCode](https://github.com/neoclide/coc.nvim/wiki/Using-coc-extensions) + +## Quick Start + +Install [nodejs](https://nodejs.org/en/download/) >= 12.12: + +```sh +curl -sL install-node.now.sh/lts | bash +``` + +For [vim-plug](https://github.com/junegunn/vim-plug) users: + +```vim +" Use release branch (recommend) +Plug 'neoclide/coc.nvim', {'branch': 'release'} + +" Or build from source code by using yarn: https://yarnpkg.com +Plug 'neoclide/coc.nvim', {'branch': 'master', 'do': 'yarn install --frozen-lockfile'} +``` + +in your `.vimrc` or `init.vim`, then restart Vim and run `:PlugInstall`. + +Checkout [Install +coc.nvim](https://github.com/neoclide/coc.nvim/wiki/Install-coc.nvim) for +more info. + +You **have to** install coc extension or configure language servers for +LSP support. + +Install extensions like: + + :CocInstall coc-json coc-tsserver + +Or configure language server in `coc-settings.json` opened by +`:CocConfig`, like: + +```json +{ + "languageserver": { + "go": { + "command": "gopls", + "rootPatterns": ["go.mod"], + "trace.server": "verbose", + "filetypes": ["go"] + } + } +} +``` + +Checkout wiki for more details: + +- [Completion with sources](https://github.com/neoclide/coc.nvim/wiki/Completion-with-sources) +- [Using the configuration file](https://github.com/neoclide/coc.nvim/wiki/Using-the-configuration-file) +- [Using coc extensions](https://github.com/neoclide/coc.nvim/wiki/Using-coc-extensions) +- [Configure language servers](https://github.com/neoclide/coc.nvim/wiki/Language-servers) +- [F.A.Q](https://github.com/neoclide/coc.nvim/wiki/F.A.Q) + +Checkout `:h coc-nvim` for vim interface. + +## Example vim configuration + +Configuration is required to make coc.nvim easier to work with, since it +doesn't change your key-mappings or Vim options. This is done as much as +possible to avoid conflict with your other plugins. + +**❗️Important**: Some Vim plugins could change key mappings. Please use +command like`:verbose imap ` to make sure that your keymap has taken effect. + +```vim +" 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=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("nvim-0.5.0") || has("patch-8.1.1564") + " Recently vim can merge signcolumn and number column into one + set signcolumn=number +else + set signcolumn=yes +endif + +" Use tab for trigger completion with characters ahead and navigate. +" 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#refresh() +inoremap pumvisible() ? "\" : "\" + +function! s:check_back_space() abort + let col = col('.') - 1 + return !col || getline('.')[col - 1] =~# '\s' +endfunction + +" 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 (index(['vim','help'], &filetype) >= 0) + execute 'h '.expand('') + elseif (coc#rpc#ready()) + call CocActionAsync('doHover') + else + execute '!' . &keywordprg . " " . expand('') + 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) + +" 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 CocAction('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') + +" 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 +``` + +## Articles + +- [coc.nvim 插件体系介绍](https://zhuanlan.zhihu.com/p/65524706) +- [CocList 入坑指南](https://zhuanlan.zhihu.com/p/71846145) +- [Create coc.nvim extension to improve Vim experience](https://medium.com/@chemzqm/create-coc-nvim-extension-to-improve-vim-experience-4461df269173) +- [How to write a coc.nvim extension (and why)](https://samroeca.com/coc-plugin.html) + +## Trouble shooting + +Try these steps when you have problem with coc.nvim. + +- Make sure your Vim version >= 8.0 by command `:version`. +- If service failed to start, use command `:CocInfo` or `:checkhealth` on Neovim. +- Checkout the log of coc.nvim by command `:CocOpenLog`. +- When you have issues with the language server, it's recommended to [checkout + the output](https://github.com/neoclide/coc.nvim/wiki/Debug-language-server#using-output-channel). + +## Feedback + +- If you think Coc is useful, consider giving it a star. +- If you have a question, [ask on gitter](https://gitter.im/neoclide/coc.nvim) +- 中文用户请到 [中文 gitter](https://gitter.im/neoclide/coc-cn) 讨论 +- If something is not working, [create an + issue](https://github.com/neoclide/coc.nvim/issues/new). + +## Backers + +[Become a backer](https://opencollective.com/cocnvim#backer) and get your image on our README on Github with a link to your site. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +## Support the project + +Buy cloud service from [www.vultr.com](https://www.vultr.com/?ref=8890170-6G) + +## License + +MIT diff --git a/etc/soft/nvim/+plugins/coc.nvim/Readme.md b/etc/soft/nvim/+plugins/coc.nvim/Readme.md deleted file mode 100644 index aa5ed98..0000000 --- a/etc/soft/nvim/+plugins/coc.nvim/Readme.md +++ /dev/null @@ -1,334 +0,0 @@ -

- - Coc Logo - -

Make your Vim/Neovim as smart as VSCode.

-

- Software License - Actions - Codecov Coverage Status - Doc - Gitter -

-

- ---- - -Gif - -_True snippet and additional text editing support_ - -## Why? - -- 🚀 **Fast**: [instant increment completion](https://github.com/neoclide/coc.nvim/wiki/Completion-with-sources), increment buffer sync using buffer update events. -- 💎 **Reliable**: typed language, tested with CI. -- 🌟 **Featured**: [full LSP support](https://github.com/neoclide/coc.nvim/wiki/Language-servers#supported-features) -- ❤️ **Flexible**: [configured like VSCode](https://github.com/neoclide/coc.nvim/wiki/Using-the-configuration-file), [extensions work like in VSCode](https://github.com/neoclide/coc.nvim/wiki/Using-coc-extensions) - -## Quick Start - -Install [nodejs](https://nodejs.org/en/download/) >= 12.12: - -```sh -curl -sL install-node.now.sh/lts | bash -``` - -For [vim-plug](https://github.com/junegunn/vim-plug) users: - -```vim -" Use release branch (recommend) -Plug 'neoclide/coc.nvim', {'branch': 'release'} - -" Or build from source code by using yarn: https://yarnpkg.com -Plug 'neoclide/coc.nvim', {'branch': 'master', 'do': 'yarn install --frozen-lockfile'} -``` - -in your `.vimrc` or `init.vim`, then restart Vim and run `:PlugInstall`. - -Checkout [Install -coc.nvim](https://github.com/neoclide/coc.nvim/wiki/Install-coc.nvim) for -more info. - -You **have to** install coc extension or configure language servers for -LSP support. - -Install extensions like: - - :CocInstall coc-json coc-tsserver - -Or configure language server in `coc-settings.json` opened by -`:CocConfig`, like: - -```json -{ - "languageserver": { - "go": { - "command": "gopls", - "rootPatterns": ["go.mod"], - "trace.server": "verbose", - "filetypes": ["go"] - } - } -} -``` - -Checkout wiki for more details: - -- [Completion with sources](https://github.com/neoclide/coc.nvim/wiki/Completion-with-sources) -- [Using the configuration file](https://github.com/neoclide/coc.nvim/wiki/Using-the-configuration-file) -- [Using coc extensions](https://github.com/neoclide/coc.nvim/wiki/Using-coc-extensions) -- [Configure language servers](https://github.com/neoclide/coc.nvim/wiki/Language-servers) -- [F.A.Q](https://github.com/neoclide/coc.nvim/wiki/F.A.Q) - -Checkout `:h coc-nvim` for vim interface. - -## Example vim configuration - -Configuration is required to make coc.nvim easier to work with, since it -doesn't change your key-mappings or Vim options. This is done as much as -possible to avoid conflict with your other plugins. - -**❗️Important**: Some Vim plugins could change key mappings. Please use -command like`:verbose imap ` to make sure that your keymap has taken effect. - -```vim -" 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=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("nvim-0.5.0") || has("patch-8.1.1564") - " Recently vim can merge signcolumn and number column into one - set signcolumn=number -else - set signcolumn=yes -endif - -" Use tab for trigger completion with characters ahead and navigate. -" 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#refresh() -inoremap pumvisible() ? "\" : "\" - -function! s:check_back_space() abort - let col = col('.') - 1 - return !col || getline('.')[col - 1] =~# '\s' -endfunction - -" 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 (index(['vim','help'], &filetype) >= 0) - execute 'h '.expand('') - elseif (coc#rpc#ready()) - call CocActionAsync('doHover') - else - execute '!' . &keywordprg . " " . expand('') - 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) - -" 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 CocAction('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') - -" 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 -``` - -## Articles - -- [coc.nvim 插件体系介绍](https://zhuanlan.zhihu.com/p/65524706) -- [CocList 入坑指南](https://zhuanlan.zhihu.com/p/71846145) -- [Create coc.nvim extension to improve Vim experience](https://medium.com/@chemzqm/create-coc-nvim-extension-to-improve-vim-experience-4461df269173) -- [How to write a coc.nvim extension (and why)](https://samroeca.com/coc-plugin.html) - -## Trouble shooting - -Try these steps when you have problem with coc.nvim. - -- Make sure your Vim version >= 8.0 by command `:version`. -- If service failed to start, use command `:CocInfo` or `:checkhealth` on Neovim. -- Checkout the log of coc.nvim by command `:CocOpenLog`. -- When you have issues with the language server, it's recommended to [checkout - the output](https://github.com/neoclide/coc.nvim/wiki/Debug-language-server#using-output-channel). - -## Feedback - -- If you think Coc is useful, consider giving it a star. -- If you have a question, [ask on gitter](https://gitter.im/neoclide/coc.nvim) -- 中文用户请到 [中文 gitter](https://gitter.im/neoclide/coc-cn) 讨论 -- If something is not working, [create an - issue](https://github.com/neoclide/coc.nvim/issues/new). - -## Backers - -[Become a backer](https://opencollective.com/cocnvim#backer) and get your image on our README on Github with a link to your site. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -## Support the project - -Buy cloud service from [www.vultr.com](https://www.vultr.com/?ref=8890170-6G) - -## License - -MIT