neoclide / coc.nvim

Nodejs extension host for vim & neovim, load extensions like VSCode and host language servers.
Other
24.31k stars 955 forks source link

Remove the annoying error message before vim started #4822

Closed skysky97 closed 8 months ago

skysky97 commented 9 months ago

Is your feature request related to a problem? Please describe. I have some dockers which do not have node installed in it. When using vim in dockes, the error message of "[node] is not executable" is always displayed and I need to press ENTER to continue. That's annoying.

Describe the solution you'd like The error message is shown later in the vim window. People won't miss the error message, and can just ignore it without being disturbed.

Describe alternatives you've considered I have tried to remove the code "call coc#rpc#start_server()" in coc.vim and leave the autocmd VimEnter call it not changed. But the error message is not shown at all. Setting ‘g:coc_start_at_startup' to 0 and start coc manually works as what I wanted, but is annoying too. Maybe a timeout command to manual start coc can work, but I don't know how to realize it.

Additional context NA

fannheyward commented 9 months ago

coc.nvim needs Node.js to run, that's why we have this checking and warning.

The error message is shown later in the vim window. People won't miss the error message, and can just ignore it without being disturbed.

Can't understand, what's the error message is shown later in the vim window?

start coc manually works as what I wanted

You don't have Node.js installed, how to start it manually?

skysky97 commented 9 months ago

You don't have Node.js installed, how to start it manually Yes, we can't start coc without Node.js installed, so a ERROR message is shown in the bottom of the vim window. This is fine as I don't need coc in the docker.

coc.nvim needs Node.js to run, that's why we have this checking and warning. It's fine, but the warning is displayed before the vim windown launched, and what I want is that the warning is display after the vim window launched (like manually start coc without Node.js)

The difference is at which time the warning is diplayed. When displayed before the vim windown launched, I have to press ENTER to go on, and when displayed after vim windown launched, I do not have to press ENTER any more.

skysky97 commented 9 months ago

You don't have Node.js installed, how to start it manually

Yes, we can't start coc without Node.js installed, so a ERROR message is shown in the bottom of the vim window. This is fine as I don't need coc in the docker environment.

coc.nvim needs Node.js to run, that's why we have this checking and warning.

It's ok, but the warning is displayed before the vim windown launched, and what I want is that the warning is display after the vim window launched (like manually start coc without Node.js)

The difference is at which time the warning is diplayed. When displayed before the vim windown launched, I have to press ENTER to go on, and when displayed after vim windown launched, I do not have to press ENTER any more.

fannheyward commented 9 months ago

but the warning is displayed before the vim windown launched

Got your point, and found why I can't reproduce your issue. The behavior is different with vim and nvim.

mini.vim:

fun! s:Enable()
  echom "Enable"

  augroup Test
    autocmd!

    autocmd VimEnter * echom "VimEnter"
  augroup END
endf

echom "Start"
call s:Enable()
echom "End"

nvim -u mini.vim, nvim window launched first, echoed:

Start
Enable
VimEnter
press ENTER...

vim -u mini.vim, echoed first:

Start
Enable
End
press ENTER...

then vim window launched, echo VimEnter.

Both same results in :messages

:messages shows more:

Start
Enable
End
VimEnter
press ENTER...
fannheyward commented 8 months ago

vim's behavior, close for now.