-- Smaller updatetime for CursorHold & CursorHoldI vim.opt.updatetime = 300 -- don't give |ins-completion-menu| messages. vim.opt.shortmess:append('c') -- always show signcolumns vim.opt.signcolumn = 'yes' -- Some server have issues with backup files, see coc#649 vim.opt.backup = false vim.opt.writebackup = false -- Better display for messages vim.opt.cmdheight = 2 -- Use for trigger completion. vim.keymap.set('i', '', vim.fn['coc#refresh'], { silent = true, expr = true }) -- Use for confirm completion, `u` means break undo chain at current -- position. Coc only does snippet and additional edit on confirm. local function confirm_coc_completion() return vim.fn.pumvisible() == 1 and "" or "u" end vim.keymap.set('i', '', confirm_coc_completion, { expr = true }) local sr_opts = { silent = true, remap = true } -- Use `[c` and `]c` for navigate diagnostics vim.keymap.set('n', '[c', '(coc-diagnostic-prev)', sr_opts) vim.keymap.set('n', ']c', '(coc-diagnostic-next)', sr_opts) -- Remap keys for gotos vim.keymap.set('n', 'gd', '(coc-definition)', sr_opts) vim.keymap.set('n', 'gy', '(coc-type-definition)', sr_opts) vim.keymap.set('n', 'gi', '(coc-implementation)', sr_opts) vim.keymap.set('n', 'gr', '(coc-references)', sr_opts) -- Remap for do code action of current line vim.keymap.set('n', 'a', '(coc-codeaction)') -- Remap for rename current word vim.keymap.set('n', 'n', '(coc-rename)') -- Mapping for CocList vim.keymap.set('n', 'cl', ':CocList') vim.keymap.set('n', 'cd', ':CocList diagnostics') vim.keymap.set('n', 'cc', ':CocList commands') vim.keymap.set('n', 'co', ':CocList outline') vim.keymap.set('n', 'cs', ':CocList symbols')