Skip to content
This repository was archived by the owner on Mar 19, 2024. It is now read-only.

Commit 3b6d8d7

Browse files
committed
Support rlsCommandOverride in environments without rustup
1 parent 187b146 commit 3b6d8d7

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

lib/index.js

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,20 @@ function installCompiler() {
9090
* @return {Promise<string>} `rustc --print sysroot` stdout
9191
*/
9292
async function rustcSysroot(toolchain) {
93-
let { stdout } = await exec(`rustup run ${toolchain} rustc --print sysroot`)
94-
return stdout.trim()
93+
try {
94+
let { stdout } = await exec(`rustup run ${toolchain} rustc --print sysroot`)
95+
return stdout.trim()
96+
}
97+
catch (e) {
98+
// make an attempt to use system rustc
99+
try {
100+
let { stdout } = await exec(`rustc --print sysroot`)
101+
return stdout.trim()
102+
}
103+
catch (sys_e) {
104+
throw e
105+
}
106+
}
95107
}
96108

97109
/** @return {string} environment variable path */
@@ -483,6 +495,11 @@ class RustLanguageClient extends AutoLanguageClient {
483495
// Watch config toolchain changes -> switch, install & update toolchains, restart servers
484496
this.disposables.add(atom.config.onDidChange('ide-rust.rlsToolchain',
485497
_.debounce(({ newValue }) => {
498+
if (rlsCommandOverride()) {
499+
// don't bother checking toolchain if an override is being used
500+
return
501+
}
502+
486503
return this._checkToolchain()
487504
.then(() => checkRls(this.busySignalService))
488505
.then(() => this._restartLanguageServers(`Switched Rls toolchain to \`${newValue}\``))

0 commit comments

Comments
 (0)