From a28624574d8a62072e8d566ac9b1ecfde0e55fc9 Mon Sep 17 00:00:00 2001
From: Anthony Perkins
Date: Fri, 10 Mar 2023 16:38:45 +0000
Subject: [PATCH] Add coc.nvim back with simpler config
---
pack/acp/opt/coc.nvim/.gitignore | 13 +
pack/acp/opt/coc.nvim/LICENSE.md | 7 +
pack/acp/opt/coc.nvim/Readme.md | 845 ++++
pack/acp/opt/coc.nvim/autoload/coc.vim | 157 +
pack/acp/opt/coc.nvim/autoload/coc/api.vim | 898 ++++
pack/acp/opt/coc.nvim/autoload/coc/client.vim | 386 ++
pack/acp/opt/coc.nvim/autoload/coc/color.vim | 610 +++
pack/acp/opt/coc.nvim/autoload/coc/compat.vim | 203 +
pack/acp/opt/coc.nvim/autoload/coc/cursor.vim | 59 +
pack/acp/opt/coc.nvim/autoload/coc/dialog.vim | 753 +++
pack/acp/opt/coc.nvim/autoload/coc/dict.vim | 32 +
pack/acp/opt/coc.nvim/autoload/coc/float.vim | 1459 ++++++
pack/acp/opt/coc.nvim/autoload/coc/helper.vim | 148 +
.../opt/coc.nvim/autoload/coc/highlight.vim | 811 ++++
pack/acp/opt/coc.nvim/autoload/coc/list.vim | 466 ++
pack/acp/opt/coc.nvim/autoload/coc/math.vim | 11 +
pack/acp/opt/coc.nvim/autoload/coc/notify.vim | 539 +++
pack/acp/opt/coc.nvim/autoload/coc/prompt.vim | 216 +
pack/acp/opt/coc.nvim/autoload/coc/pum.vim | 622 +++
pack/acp/opt/coc.nvim/autoload/coc/rpc.vim | 236 +
.../acp/opt/coc.nvim/autoload/coc/snippet.vim | 155 +
pack/acp/opt/coc.nvim/autoload/coc/string.vim | 210 +
pack/acp/opt/coc.nvim/autoload/coc/task.vim | 179 +
.../opt/coc.nvim/autoload/coc/terminal.vim | 115 +
pack/acp/opt/coc.nvim/autoload/coc/ui.vim | 567 +++
pack/acp/opt/coc.nvim/autoload/coc/util.vim | 659 +++
pack/acp/opt/coc.nvim/autoload/coc/vtext.vim | 91 +
pack/acp/opt/coc.nvim/autoload/coc/window.vim | 210 +
pack/acp/opt/coc.nvim/autoload/health/coc.vim | 100 +
pack/acp/opt/coc.nvim/bin/fuzzy.wasm | Bin 0 -> 18363 bytes
pack/acp/opt/coc.nvim/bin/prompt.js | 108 +
pack/acp/opt/coc.nvim/bin/strwidth.wasm | Bin 0 -> 15630 bytes
pack/acp/opt/coc.nvim/bin/terminateProcess.sh | 12 +
pack/acp/opt/coc.nvim/build/index.js | 295 ++
pack/acp/opt/coc.nvim/doc/coc-api.txt | 414 ++
pack/acp/opt/coc.nvim/doc/coc-config.txt | 1793 +++++++
pack/acp/opt/coc.nvim/doc/coc.txt | 4137 +++++++++++++++++
pack/acp/opt/coc.nvim/history.md | 1844 ++++++++
pack/acp/opt/coc.nvim/lua/coc/highlight.lua | 85 +
pack/acp/opt/coc.nvim/package.json | 17 +
pack/acp/opt/coc.nvim/plugin/coc.vim | 796 ++++
vimrc | 4 +
42 files changed, 20262 insertions(+)
create mode 100644 pack/acp/opt/coc.nvim/.gitignore
create mode 100644 pack/acp/opt/coc.nvim/LICENSE.md
create mode 100644 pack/acp/opt/coc.nvim/Readme.md
create mode 100644 pack/acp/opt/coc.nvim/autoload/coc.vim
create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/api.vim
create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/client.vim
create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/color.vim
create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/compat.vim
create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/cursor.vim
create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/dialog.vim
create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/dict.vim
create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/float.vim
create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/helper.vim
create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/highlight.vim
create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/list.vim
create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/math.vim
create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/notify.vim
create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/prompt.vim
create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/pum.vim
create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/rpc.vim
create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/snippet.vim
create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/string.vim
create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/task.vim
create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/terminal.vim
create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/ui.vim
create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/util.vim
create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/vtext.vim
create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/window.vim
create mode 100644 pack/acp/opt/coc.nvim/autoload/health/coc.vim
create mode 100755 pack/acp/opt/coc.nvim/bin/fuzzy.wasm
create mode 100644 pack/acp/opt/coc.nvim/bin/prompt.js
create mode 100755 pack/acp/opt/coc.nvim/bin/strwidth.wasm
create mode 100755 pack/acp/opt/coc.nvim/bin/terminateProcess.sh
create mode 100644 pack/acp/opt/coc.nvim/build/index.js
create mode 100644 pack/acp/opt/coc.nvim/doc/coc-api.txt
create mode 100644 pack/acp/opt/coc.nvim/doc/coc-config.txt
create mode 100644 pack/acp/opt/coc.nvim/doc/coc.txt
create mode 100644 pack/acp/opt/coc.nvim/history.md
create mode 100644 pack/acp/opt/coc.nvim/lua/coc/highlight.lua
create mode 100644 pack/acp/opt/coc.nvim/package.json
create mode 100644 pack/acp/opt/coc.nvim/plugin/coc.vim
diff --git a/pack/acp/opt/coc.nvim/.gitignore b/pack/acp/opt/coc.nvim/.gitignore
new file mode 100644
index 0000000..f9ec5e3
--- /dev/null
+++ b/pack/acp/opt/coc.nvim/.gitignore
@@ -0,0 +1,13 @@
+lib
+*.map
+coverage
+__pycache__
+.pyc
+.log
+src
+publish.sh
+doc/tags
+doc/tags-cn
+node_modules
+src/__tests__/tags
+typings
diff --git a/pack/acp/opt/coc.nvim/LICENSE.md b/pack/acp/opt/coc.nvim/LICENSE.md
new file mode 100644
index 0000000..bee2bf1
--- /dev/null
+++ b/pack/acp/opt/coc.nvim/LICENSE.md
@@ -0,0 +1,7 @@
+Copyright 2018-2018 by Qiming Zhao aaa
+
+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/pack/acp/opt/coc.nvim/Readme.md b/pack/acp/opt/coc.nvim/Readme.md
new file mode 100644
index 0000000..b5336b6
--- /dev/null
+++ b/pack/acp/opt/coc.nvim/Readme.md
@@ -0,0 +1,845 @@
+
+
+
+
+
Make your Vim/Neovim as smart as VSCode
+
+
+
+
+
+
+
+
+
+---
+
+
+
+_Custom popup menu with snippet support_
+
+## Why?
+
+- ๐ **Fast**: separated NodeJS process that does not slow down Vim most of the time.
+- ๐ **Reliable**: typed language, tested with CI.
+- ๐ **Featured**: all LSP 3.16 features are supported, see `:h coc-lsp`.
+- โค๏ธ **Flexible**: [configured like VS Code](https://github.com/neoclide/coc.nvim/wiki/Using-the-configuration-file), [Coc extensions function similarly to VS Code extensions](https://github.com/neoclide/coc.nvim/wiki/Using-coc-extensions)
+
+## Quick Start
+
+Make sure use Vim >= 8.1.1719 or Neovim >= 0.4.0.
+
+Install [nodejs](https://nodejs.org/en/download/) >= 14.14:
+
+```bash
+curl -sL install-node.vercel.app/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 the 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
+
+" May need for Vim (not Neovim) since coc.nvim calculates byte offset by count
+" utf-8 byte sequence
+set encoding=utf-8
+" Some servers have issues with backup files, see #649
+set nobackup
+set nowritebackup
+
+" Having longer updatetime (default is 4000 ms = 4s) leads to noticeable
+" delays and poor user experience
+set updatetime=300
+
+" Always show the signcolumn, otherwise it would shift the text each time
+" diagnostics appear/become resolved
+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
+ \ coc#pum#visible() ? coc#pum#next(1) :
+ \ CheckBackspace() ? "\" :
+ \ coc#refresh()
+inoremap coc#pum#visible() ? coc#pum#prev(1) : "\"
+
+" 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
+
+" Use to trigger completion
+if has('nvim')
+ inoremap coc#refresh()
+else
+ inoremap coc#refresh()
+endif
+
+" 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 ShowDocumentation()
+
+function! ShowDocumentation()
+ 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 code actions to the selected code block
+" Example: `aap` for current paragraph
+xmap a (coc-codeaction-selected)
+nmap a (coc-codeaction-selected)
+
+" Remap keys for applying code actions at the cursor position
+nmap ac (coc-codeaction-cursor)
+" Remap keys for apply code actions affect whole buffer
+nmap as (coc-codeaction-source)
+" Apply the most preferred quickfix action to fix diagnostic on the current line
+nmap qf (coc-fix-current)
+
+" Remap keys for applying refactor code actions
+nmap re (coc-codeaction-refactor)
+xmap r (coc-codeaction-refactor-selected)
+nmap r (coc-codeaction-refactor-selected)
+
+" 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 to 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
+```
+
+## Example Lua configuration
+
+NOTE: This only works in Neovim 0.7.0dev+.
+
+```lua
+-- Some servers have issues with backup files, see #649
+vim.opt.backup = false
+vim.opt.writebackup = false
+
+-- Having longer updatetime (default is 4000 ms = 4s) leads to noticeable
+-- delays and poor user experience
+vim.opt.updatetime = 300
+
+-- Always show the signcolumn, otherwise it would shift the text each time
+-- diagnostics appeared/became resolved
+vim.opt.signcolumn = "yes"
+
+local keyset = vim.keymap.set
+-- Autocomplete
+function _G.check_back_space()
+ local col = vim.fn.col('.') - 1
+ return col == 0 or vim.fn.getline('.'):sub(col, col):match('%s') ~= nil
+end
+
+-- Use Tab for trigger completion with characters ahead and navigate
+-- NOTE: There's always a completion item selected by default, you may want to enable
+-- no select by setting `"suggest.noselect": true` in your configuration file
+-- NOTE: Use command ':verbose imap ' to make sure Tab is not mapped by
+-- other plugins before putting this into your config
+local opts = {silent = true, noremap = true, expr = true, replace_keycodes = false}
+keyset("i", "", 'coc#pum#visible() ? coc#pum#next(1) : v:lua.check_back_space() ? "" : coc#refresh()', opts)
+keyset("i", "", [[coc#pum#visible() ? coc#pum#prev(1) : "\"]], opts)
+
+-- Make to accept selected completion item or notify coc.nvim to format
+-- u breaks current undo, please make your own choice
+keyset("i", "", [[coc#pum#visible() ? coc#pum#confirm() : "\u\\=coc#on_enter()\"]], opts)
+
+-- Use to trigger snippets
+keyset("i", "", "(coc-snippets-expand-jump)")
+-- Use to trigger completion
+keyset("i", "", "coc#refresh()", {silent = true, expr = true})
+
+-- Use `[g` and `]g` to navigate diagnostics
+-- Use `:CocDiagnostics` to get all diagnostics of current buffer in location list
+keyset("n", "[g", "(coc-diagnostic-prev)", {silent = true})
+keyset("n", "]g", "(coc-diagnostic-next)", {silent = true})
+
+-- GoTo code navigation
+keyset("n", "gd", "(coc-definition)", {silent = true})
+keyset("n", "gy", "(coc-type-definition)", {silent = true})
+keyset("n", "gi", "(coc-implementation)", {silent = true})
+keyset("n", "gr", "(coc-references)", {silent = true})
+
+
+-- Use K to show documentation in preview window
+function _G.show_docs()
+ local cw = vim.fn.expand('')
+ if vim.fn.index({'vim', 'help'}, vim.bo.filetype) >= 0 then
+ vim.api.nvim_command('h ' .. cw)
+ elseif vim.api.nvim_eval('coc#rpc#ready()') then
+ vim.fn.CocActionAsync('doHover')
+ else
+ vim.api.nvim_command('!' .. vim.o.keywordprg .. ' ' .. cw)
+ end
+end
+keyset("n", "K", 'lua _G.show_docs()', {silent = true})
+
+
+-- Highlight the symbol and its references on a CursorHold event(cursor is idle)
+vim.api.nvim_create_augroup("CocGroup", {})
+vim.api.nvim_create_autocmd("CursorHold", {
+ group = "CocGroup",
+ command = "silent call CocActionAsync('highlight')",
+ desc = "Highlight symbol under cursor on CursorHold"
+})
+
+
+-- Symbol renaming
+keyset("n", "rn", "(coc-rename)", {silent = true})
+
+
+-- Formatting selected code
+keyset("x", "f", "(coc-format-selected)", {silent = true})
+keyset("n", "f", "(coc-format-selected)", {silent = true})
+
+
+-- Setup formatexpr specified filetype(s)
+vim.api.nvim_create_autocmd("FileType", {
+ group = "CocGroup",
+ pattern = "typescript,json",
+ command = "setl formatexpr=CocAction('formatSelected')",
+ desc = "Setup formatexpr specified filetype(s)."
+})
+
+-- Update signature help on jump placeholder
+vim.api.nvim_create_autocmd("User", {
+ group = "CocGroup",
+ pattern = "CocJumpPlaceholder",
+ command = "call CocActionAsync('showSignatureHelp')",
+ desc = "Update signature help on jump placeholder"
+})
+
+-- Apply codeAction to the selected region
+-- Example: `aap` for current paragraph
+local opts = {silent = true, nowait = true}
+keyset("x", "a", "(coc-codeaction-selected)", opts)
+keyset("n", "a", "(coc-codeaction-selected)", opts)
+
+-- Remap keys for apply code actions at the cursor position.
+keyset("n", "ac", "(coc-codeaction-cursor)", opts)
+-- Remap keys for apply code actions affect whole buffer.
+keyset("n", "as", "(coc-codeaction-source)", opts)
+-- Remap keys for applying codeActions to the current buffer
+keyset("n", "ac", "(coc-codeaction)", opts)
+-- Apply the most preferred quickfix action on the current line.
+keyset("n", "qf", "(coc-fix-current)", opts)
+
+-- Remap keys for apply refactor code actions.
+keyset("n", "re", "(coc-codeaction-refactor)", { silent = true })
+keyset("x", "r", "(coc-codeaction-refactor-selected)", { silent = true })
+keyset("n", "r", "(coc-codeaction-refactor-selected)", { silent = true })
+
+-- Run the Code Lens actions on the current line
+keyset("n", "cl", "(coc-codelens-action)", opts)
+
+
+-- Map function and class text objects
+-- NOTE: Requires 'textDocument.documentSymbol' support from the language server
+keyset("x", "if", "(coc-funcobj-i)", opts)
+keyset("o", "if", "(coc-funcobj-i)", opts)
+keyset("x", "af", "(coc-funcobj-a)", opts)
+keyset("o", "af", "(coc-funcobj-a)", opts)
+keyset("x", "ic", "(coc-classobj-i)", opts)
+keyset("o", "ic", "(coc-classobj-i)", opts)
+keyset("x", "ac", "(coc-classobj-a)", opts)
+keyset("o", "ac", "(coc-classobj-a)", opts)
+
+
+-- Remap and to scroll float windows/popups
+---@diagnostic disable-next-line: redefined-local
+local opts = {silent = true, nowait = true, expr = true}
+keyset("n", "", 'coc#float#has_scroll() ? coc#float#scroll(1) : ""', opts)
+keyset("n", "", 'coc#float#has_scroll() ? coc#float#scroll(0) : ""', opts)
+keyset("i", "",
+ 'coc#float#has_scroll() ? "=coc#float#scroll(1)" : ""', opts)
+keyset("i", "",
+ 'coc#float#has_scroll() ? "=coc#float#scroll(0)" : ""', opts)
+keyset("v", "", 'coc#float#has_scroll() ? coc#float#scroll(1) : ""', opts)
+keyset("v", "", 'coc#float#has_scroll() ? coc#float#scroll(0) : ""', opts)
+
+
+-- Use CTRL-S for selections ranges
+-- Requires 'textDocument/selectionRange' support of language server
+keyset("n", "", "(coc-range-select)", {silent = true})
+keyset("x", "", "(coc-range-select)", {silent = true})
+
+
+-- Add `:Format` command to format current buffer
+vim.api.nvim_create_user_command("Format", "call CocAction('format')", {})
+
+-- " Add `:Fold` command to fold current buffer
+vim.api.nvim_create_user_command("Fold", "call CocAction('fold', )", {nargs = '?'})
+
+-- Add `:OR` command for organize imports of the current buffer
+vim.api.nvim_create_user_command("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
+vim.opt.statusline:prepend("%{coc#status()}%{get(b:,'coc_current_function','')}")
+
+-- Mappings for CoCList
+-- code actions and coc stuff
+---@diagnostic disable-next-line: redefined-local
+local opts = {silent = true, nowait = true}
+-- Show all diagnostics
+keyset("n", "a", ":CocList diagnostics", opts)
+-- Manage extensions
+keyset("n", "e", ":CocList extensions", opts)
+-- Show commands
+keyset("n", "c", ":CocList commands", opts)
+-- Find symbol of current document
+keyset("n", "o", ":CocList outline