@@ -91,19 +91,18 @@ function installCompiler() {
91
91
92
92
/**
93
93
* @param {string } toolchain
94
- * @return {string } `rustc --print sysroot` stdout
94
+ * @return {Promise< string> } `rustc --print sysroot` stdout
95
95
*/
96
- function rustcSysroot ( toolchain ) {
97
- return cp . execSync ( `rustup run ${ toolchain } rustc --print sysroot` , {
98
- env : { PATH : getPath ( ) }
99
- } ) . toString ( ) . trim ( )
96
+ async function rustcSysroot ( toolchain ) {
97
+ let { stdout } = await exec ( `rustup run ${ toolchain } rustc --print sysroot` )
98
+ return stdout . trim ( )
100
99
}
101
100
102
101
/**
103
102
* @param {string } [toolchain]
104
- * @return {object } environment vars
103
+ * @return {Promise< object> } environment vars
105
104
*/
106
- function serverEnv ( toolchain ) {
105
+ async function serverEnv ( toolchain ) {
107
106
const env = {
108
107
PATH : getPath ( ) ,
109
108
RUST_BACKTRACE : '1' ,
@@ -116,7 +115,8 @@ function serverEnv(toolchain) {
116
115
117
116
if ( toolchain ) {
118
117
try {
119
- env . RUST_SRC_PATH = path . join ( rustcSysroot ( toolchain ) , "/lib/rustlib/src/rust/src/" )
118
+ let sysroot = await rustcSysroot ( toolchain )
119
+ env . RUST_SRC_PATH = path . join ( sysroot , "/lib/rustlib/src/rust/src/" )
120
120
}
121
121
catch ( e ) {
122
122
console . error ( "Failed to find sysroot: " + e )
@@ -511,7 +511,7 @@ class RustLanguageClient extends AutoLanguageClient {
511
511
this . _warnedAboutRlsCommandOverride = true
512
512
}
513
513
return cp . spawn ( cmdOverride , {
514
- env : serverEnv ( configToolchain ( ) ) ,
514
+ env : await serverEnv ( configToolchain ( ) ) ,
515
515
shell : true ,
516
516
cwd : projectPath
517
517
} )
@@ -522,7 +522,7 @@ class RustLanguageClient extends AutoLanguageClient {
522
522
await checkRls ( this . busySignalService )
523
523
let toolchain = configToolchain ( )
524
524
return cp . spawn ( "rustup" , [ "run" , toolchain , "rls" ] , {
525
- env : serverEnv ( toolchain ) ,
525
+ env : await serverEnv ( toolchain ) ,
526
526
cwd : projectPath
527
527
} )
528
528
}
0 commit comments