" COC - the Conquerer of Completion let g:coc_node_path = '/Users/christoomey/.asdf/shims/node' Plug 'neoclide/coc.nvim', {'branch': 'release'} let g:coc_global_extensions = [ \ 'coc-css', \ 'coc-json', \ 'coc-tsserver', \ 'coc-tailwindcss', \ 'coc-elixir', \ 'coc-svelte', \ 'coc-html', \ 'coc-yaml', \ 'coc-vimlsp', \ 'coc-svg', \ 'coc-lists', \ 'coc-json', \ 'coc-yank', \ 'coc-highlight', \ 'coc-solargraph', \ ] " autocmd FileType * let b:coc_suggest_disable = 1 " inoremap coc#refresh() nmap rn (coc-rename) inoremap \ coc#pum#visible() ? coc#pum#next(1) : \ CheckBackspace() ? "\" : \ coc#refresh() " \ 'coc-actions', if isdirectory('./node_modules') && isdirectory('./node_modules/prettier') let g:coc_global_extensions += ['coc-prettier'] endif if isdirectory('./node_modules') && isdirectory('./node_modules/eslint') let g:coc_global_extensions += ['coc-eslint'] endif if isdirectory('./node_modules') && isdirectory('./node_modules/stylelint') let g:coc_global_extensions += ['coc-stylelintplus'] endif function! s:check_eslint() if !isdirectory('./node_modules') || !isdirectory('./node_modules/eslint') call coc#config('eslint', { \ 'enable': v:false, \ }) endif endfunction autocmd BufEnter *.{js,jsx,ts,tsx} :call check_eslint() function! s:RestartCoc() abort silent! CocRestart echohl String | echom 'Restarting COC...' | echohl None endfunction command! RestartCoc call s:RestartCoc() nnoremap re :RestartCoc inoremap coc#pum#visible() ? coc#pum#confirm() : "\" inoremap coc#pum#visible() ? "\" : "\" " hi! CocMenuSel ctermbg=8 nmap (coc-definition) nmap do (coc-codeaction) " Jump to next / previous error nmap [r (coc-diagnostic-prev) nmap ]r (coc-diagnostic-next) " show documentation function! s:show_documentation() if (index(['vim','help'], &filetype) >= 0) execute 'h '.expand('') else call CocAction('doHover') endif endfunction nnoremap K :call show_documentation() " show error, otherwise documentation, on hold function! ShowDocIfNoDiagnostic(timer_id) " if (coc#util#has_float() == 0) silent call CocActionAsync('doHover') " endif endfunction function! s:show_hover_doc() call timer_start(200, 'ShowDocIfNoDiagnostic') endfunction nnoremap k :call show_hover_doc() " vim:ft=vim