@@ -287,12 +287,14 @@ async function getServer(config: Config, state: PersistentState): Promise<string
287287 if ( config . package . releaseTag === null ) return "rust-analyzer" ;
288288
289289 let platform : string | undefined ;
290- if ( process . arch === "x64" || process . arch === "ia32" ) {
291- if ( process . platform === "linux" ) platform = "linux" ;
292- if ( process . platform === "darwin" ) platform = "mac" ;
293- if ( process . platform === "win32" ) platform = "windows" ;
290+ if ( ( process . arch === "x64" || process . arch === "ia32" ) && process . platform === "win32" ) {
291+ platform = "x86_64-pc-windows-msvc" ;
292+ } else if ( process . arch === "x64" && process . platform === "linux" ) {
293+ platform = "x86_64-unknown-linux-gnu" ;
294+ } else if ( process . arch === "x64" && process . platform === "darwin" ) {
295+ platform = "x86_64-apple-darwin" ;
294296 } else if ( process . arch === "arm64" && process . platform === "darwin" ) {
295- platform = "mac " ;
297+ platform = "aarch64-apple-darwin " ;
296298 }
297299 if ( platform === undefined ) {
298300 vscode . window . showErrorMessage (
@@ -305,7 +307,7 @@ async function getServer(config: Config, state: PersistentState): Promise<string
305307 ) ;
306308 return undefined ;
307309 }
308- const ext = platform === "windows" ? ".exe" : "" ;
310+ const ext = platform . indexOf ( "-windows-" ) !== - 1 ? ".exe" : "" ;
309311 const dest = path . join ( config . globalStoragePath , `rust-analyzer-${ platform } ${ ext } ` ) ;
310312 const exists = await fs . stat ( dest ) . then ( ( ) => true , ( ) => false ) ;
311313 if ( ! exists ) {
0 commit comments