fannheyward / coc-rust-analyzer

rust-analyzer extension for coc.nvim
MIT License
1.12k stars 39 forks source link

Fails to load when `rust-analyzer` component is not installed via rustup #1247

Closed overdrivenpotato closed 2 months ago

overdrivenpotato commented 3 months ago

What's the output of :CocInfo

## versions

vim version: NVIM v0.9.5
node version: v20.12.2
coc.nvim version: 0.0.82-2c7e7156 2024-05-15 09:42:33 +0800
coc.nvim directory: /home/marko/.vim/plugged/coc.nvim
term: tmux
platform: linux

## Log of coc.nvim

2024-05-18T15:35:40.009 INFO (pid:139802) [plugin] - coc.nvim initialized with node: v20.12.2 after 108
2024-05-18T15:35:40.009 INFO (pid:139802) [services] - LanguageClient Rust Analyzer Language Server state change: stopped => starting
2024-05-18T15:35:40.014 INFO (pid:139802) [language-client-index] - Language server "rust-analyzer" started with 139815
2024-05-18T15:35:40.331 INFO (pid:139802) [services] - LanguageClient Rust Analyzer Language Server state change: starting => stopped
2024-05-18T15:35:40.331 INFO (pid:139802) [services] - LanguageClient Rust Analyzer Language Server state change: stopped => starting
2024-05-18T15:35:40.335 ERROR (pid:139802) [language-client-client] - Server rust-analyzer initialization failed. _ResponseError: Pending response rejected since connection got disposed
    at Object.dispose (/home/marko/.vim/plugged/coc.nvim/build/index.js:20762:25)
    at Object.dispose (/home/marko/.vim/plugged/coc.nvim/build/index.js:73460:31)
    at LanguageClient.handleConnectionClosed (/home/marko/.vim/plugged/coc.nvim/build/index.js:74378:30)
    at LanguageClient.handleConnectionClosed (/home/marko/.vim/plugged/coc.nvim/build/index.js:74880:15)
    at closeHandler (/home/marko/.vim/plugged/coc.nvim/build/index.js:74365:16)
    at CallbackList.invoke (/home/marko/.vim/plugged/coc.nvim/build/index.js:18921:35)
    at _Emitter.fire (/home/marko/.vim/plugged/coc.nvim/build/index.js:18980:34)
    at closeHandler (/home/marko/.vim/plugged/coc.nvim/build/index.js:19972:24)
    at CallbackList.invoke (/home/marko/.vim/plugged/coc.nvim/build/index.js:18921:35)
    at _Emitter.fire (/home/marko/.vim/plugged/coc.nvim/build/index.js:18980:34) {
  code: -32097,
  data: undefined
}
2024-05-18T15:35:40.336 INFO (pid:139802) [services] - LanguageClient Rust Analyzer Language Server state change: starting => stopped
2024-05-18T15:35:40.337 ERROR (pid:139802) [server] - unhandledRejection  Promise {
  <rejected> _ResponseError: Pending response rejected since connection got disposed
      at Object.dispose (/home/marko/.vim/plugged/coc.nvim/build/index.js:20762:25)
      at Object.dispose (/home/marko/.vim/plugged/coc.nvim/build/index.js:73460:31)
      at LanguageClient.handleConnectionClosed (/home/marko/.vim/plugged/coc.nvim/build/index.js:74378:30)
      at LanguageClient.handleConnectionClosed (/home/marko/.vim/plugged/coc.nvim/build/index.js:74880:15)
      at closeHandler (/home/marko/.vim/plugged/coc.nvim/build/index.js:74365:16)
      at CallbackList.invoke (/home/marko/.vim/plugged/coc.nvim/build/index.js:18921:35)
      at _Emitter.fire (/home/marko/.vim/plugged/coc.nvim/build/index.js:18980:34)
      at closeHandler (/home/marko/.vim/plugged/coc.nvim/build/index.js:19972:24)
      at CallbackList.invoke (/home/marko/.vim/plugged/coc.nvim/build/index.js:18921:35)
      at _Emitter.fire (/home/marko/.vim/plugged/coc.nvim/build/index.js:18980:34) {
    code: -32097,
    data: undefined
  }
} _ResponseError: Pending response rejected since connection got disposed
    at Object.dispose (/home/marko/.vim/plugged/coc.nvim/build/index.js:20762:25)
    at Object.dispose (/home/marko/.vim/plugged/coc.nvim/build/index.js:73460:31)
    at LanguageClient.handleConnectionClosed (/home/marko/.vim/plugged/coc.nvim/build/index.js:74378:30)
    at LanguageClient.handleConnectionClosed (/home/marko/.vim/plugged/coc.nvim/build/index.js:74880:15)
    at closeHandler (/home/marko/.vim/plugged/coc.nvim/build/index.js:74365:16)
    at CallbackList.invoke (/home/marko/.vim/plugged/coc.nvim/build/index.js:18921:35)
    at _Emitter.fire (/home/marko/.vim/plugged/coc.nvim/build/index.js:18980:34)
    at closeHandler (/home/marko/.vim/plugged/coc.nvim/build/index.js:19972:24)
    at CallbackList.invoke (/home/marko/.vim/plugged/coc.nvim/build/index.js:18921:35)
    at _Emitter.fire (/home/marko/.vim/plugged/coc.nvim/build/index.js:18980:34) {
  code: -32097,
  data: undefined
}
2024-05-18T15:35:40.338 INFO (pid:139802) [language-client-index] - Language server "rust-analyzer" started with 139818
2024-05-18T15:35:40.664 INFO (pid:139802) [services] - LanguageClient Rust Analyzer Language Server state change: stopped => starting
2024-05-18T15:35:40.664 ERROR (pid:139802) [language-client-client] - Server rust-analyzer initialization failed. _ResponseError: Pending response rejected since connection got disposed
    at Object.dispose (/home/marko/.vim/plugged/coc.nvim/build/index.js:20762:25)
    at Object.dispose (/home/marko/.vim/plugged/coc.nvim/build/index.js:73460:31)
    at LanguageClient.handleConnectionClosed (/home/marko/.vim/plugged/coc.nvim/build/index.js:74378:30)
    at LanguageClient.handleConnectionClosed (/home/marko/.vim/plugged/coc.nvim/build/index.js:74880:15)
    at closeHandler (/home/marko/.vim/plugged/coc.nvim/build/index.js:74365:16)
    at CallbackList.invoke (/home/marko/.vim/plugged/coc.nvim/build/index.js:18921:35)
    at _Emitter.fire (/home/marko/.vim/plugged/coc.nvim/build/index.js:18980:34)
    at closeHandler (/home/marko/.vim/plugged/coc.nvim/build/index.js:19972:24)
    at CallbackList.invoke (/home/marko/.vim/plugged/coc.nvim/build/index.js:18921:35)
    at _Emitter.fire (/home/marko/.vim/plugged/coc.nvim/build/index.js:18980:34) {
  code: -32097,
  data: undefined
}
2024-05-18T15:35:40.665 INFO (pid:139802) [services] - LanguageClient Rust Analyzer Language Server state change: starting => stopped
2024-05-18T15:35:40.665 ERROR (pid:139802) [services] - Server rust-analyzer failed to start: _ResponseError: Pending response rejected since connection got disposed
    at Object.dispose (/home/marko/.vim/plugged/coc.nvim/build/index.js:20762:25)
    at Object.dispose (/home/marko/.vim/plugged/coc.nvim/build/index.js:73460:31)
    at LanguageClient.handleConnectionClosed (/home/marko/.vim/plugged/coc.nvim/build/index.js:74378:30)
    at LanguageClient.handleConnectionClosed (/home/marko/.vim/plugged/coc.nvim/build/index.js:74880:15)
    at closeHandler (/home/marko/.vim/plugged/coc.nvim/build/index.js:74365:16)
    at CallbackList.invoke (/home/marko/.vim/plugged/coc.nvim/build/index.js:18921:35)
    at _Emitter.fire (/home/marko/.vim/plugged/coc.nvim/build/index.js:18980:34)
    at closeHandler (/home/marko/.vim/plugged/coc.nvim/build/index.js:19972:24)
    at CallbackList.invoke (/home/marko/.vim/plugged/coc.nvim/build/index.js:18921:35)
    at _Emitter.fire (/home/marko/.vim/plugged/coc.nvim/build/index.js:18980:34) {
  code: -32097,
  data: undefined
}
2024-05-18T15:35:40.666 INFO (pid:139802) [language-client-index] - Language server "rust-analyzer" started with 139819
2024-05-18T15:35:40.986 INFO (pid:139802) [services] - LanguageClient Rust Analyzer Language Server state change: stopped => starting
2024-05-18T15:35:40.986 ERROR (pid:139802) [language-client-client] - Server rust-analyzer initialization failed. _ResponseError: Pending response rejected since connection got disposed
    at Object.dispose (/home/marko/.vim/plugged/coc.nvim/build/index.js:20762:25)
    at Object.dispose (/home/marko/.vim/plugged/coc.nvim/build/index.js:73460:31)
    at LanguageClient.handleConnectionClosed (/home/marko/.vim/plugged/coc.nvim/build/index.js:74378:30)
    at LanguageClient.handleConnectionClosed (/home/marko/.vim/plugged/coc.nvim/build/index.js:74880:15)
    at closeHandler (/home/marko/.vim/plugged/coc.nvim/build/index.js:74365:16)
    at CallbackList.invoke (/home/marko/.vim/plugged/coc.nvim/build/index.js:18921:35)
    at _Emitter.fire (/home/marko/.vim/plugged/coc.nvim/build/index.js:18980:34)
    at closeHandler (/home/marko/.vim/plugged/coc.nvim/build/index.js:19972:24)
    at CallbackList.invoke (/home/marko/.vim/plugged/coc.nvim/build/index.js:18921:35)
    at _Emitter.fire (/home/marko/.vim/plugged/coc.nvim/build/index.js:18980:34) {
  code: -32097,
  data: undefined
}
2024-05-18T15:35:40.986 INFO (pid:139802) [services] - LanguageClient Rust Analyzer Language Server state change: starting => stopped
2024-05-18T15:35:40.988 INFO (pid:139802) [language-client-index] - Language server "rust-analyzer" started with 139927
2024-05-18T15:35:41.302 ERROR (pid:139802) [language-client-client] - Server rust-analyzer initialization failed. _ResponseError: Pending response rejected since connection got disposed
    at Object.dispose (/home/marko/.vim/plugged/coc.nvim/build/index.js:20762:25)
    at Object.dispose (/home/marko/.vim/plugged/coc.nvim/build/index.js:73460:31)
    at LanguageClient.handleConnectionClosed (/home/marko/.vim/plugged/coc.nvim/build/index.js:74378:30)
    at LanguageClient.handleConnectionClosed (/home/marko/.vim/plugged/coc.nvim/build/index.js:74880:15)
    at closeHandler (/home/marko/.vim/plugged/coc.nvim/build/index.js:74365:16)
    at CallbackList.invoke (/home/marko/.vim/plugged/coc.nvim/build/index.js:18921:35)
    at _Emitter.fire (/home/marko/.vim/plugged/coc.nvim/build/index.js:18980:34)
    at closeHandler (/home/marko/.vim/plugged/coc.nvim/build/index.js:19972:24)
    at CallbackList.invoke (/home/marko/.vim/plugged/coc.nvim/build/index.js:18921:35)
    at _Emitter.fire (/home/marko/.vim/plugged/coc.nvim/build/index.js:18980:34) {
  code: -32097,
  data: undefined
}
2024-05-18T15:35:44.980 ERROR (pid:139802) [timing] - activate coc-rust-analyzer timeout after 5000ms
2024-05-18T15:35:49.356 INFO (pid:139802) [attach] - receive notification: showInfo []

What's the output of :CocCommand rust-analyzer.serverVersion

No output

What's your coc-rust-analyzer version? You can get it from :CocList extensions

coc-rust-analyzer 0.75.5


I noticed that the extension works with version 0.73.0. It looks like the extension is trying to use rust-analyzer from my path, because when I run that locally I see it does exist:

$ rust-analyzer
error: Unknown binary 'rust-analyzer' in official toolchain 'stable-x86_64-unknown-linux-gnu'.

Adding the rust-analyzer component fixes 0.75.5, but I would like to avoid doing this and instead have the extension use the latest release from GitHub, as it did in 0.73.0

fannheyward commented 3 months ago

Yes, coc-rust-analyzer 0.75+ will fallback to use rust-analyzer from PATH if not found in extension or configuration. https://github.com/fannheyward/coc-rust-analyzer/pull/1114

fannheyward commented 2 months ago

Added rust-analyzer.install command to install rust-analyzer from GitHub manually.