aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--editors/code/src/client.ts8
-rw-r--r--editors/code/src/config.ts12
-rw-r--r--editors/code/src/installation/server.ts (renamed from editors/code/src/installation/lang_server.ts)24
3 files changed, 22 insertions, 22 deletions
diff --git a/editors/code/src/client.ts b/editors/code/src/client.ts
index 33d9b66df..12c97be2f 100644
--- a/editors/code/src/client.ts
+++ b/editors/code/src/client.ts
@@ -2,7 +2,7 @@ import * as lc from 'vscode-languageclient';
2import * as vscode from 'vscode'; 2import * as vscode from 'vscode';
3 3
4import { Config } from './config'; 4import { Config } from './config';
5import { ensureLangServerBinary } from './installation/lang_server'; 5import { ensureServerBinary } from './installation/server';
6import { CallHierarchyFeature } from 'vscode-languageclient/lib/callHierarchy.proposed'; 6import { CallHierarchyFeature } from 'vscode-languageclient/lib/callHierarchy.proposed';
7 7
8export async function createClient(config: Config): Promise<null | lc.LanguageClient> { 8export async function createClient(config: Config): Promise<null | lc.LanguageClient> {
@@ -11,11 +11,11 @@ export async function createClient(config: Config): Promise<null | lc.LanguageCl
11 // It might be a good idea to test if the uri points to a file. 11 // It might be a good idea to test if the uri points to a file.
12 const workspaceFolderPath = vscode.workspace.workspaceFolders?.[0]?.uri.fsPath ?? '.'; 12 const workspaceFolderPath = vscode.workspace.workspaceFolders?.[0]?.uri.fsPath ?? '.';
13 13
14 const langServerPath = await ensureLangServerBinary(config.langServerBinarySource); 14 const serverPath = await ensureServerBinary(config.serverBinarySource);
15 if (!langServerPath) return null; 15 if (!serverPath) return null;
16 16
17 const run: lc.Executable = { 17 const run: lc.Executable = {
18 command: langServerPath, 18 command: serverPath,
19 options: { cwd: workspaceFolderPath }, 19 options: { cwd: workspaceFolderPath },
20 }; 20 };
21 const serverOptions: lc.ServerOptions = { 21 const serverOptions: lc.ServerOptions = {
diff --git a/editors/code/src/config.ts b/editors/code/src/config.ts
index 8cd89e119..7866ed7e1 100644
--- a/editors/code/src/config.ts
+++ b/editors/code/src/config.ts
@@ -68,7 +68,7 @@ export class Config {
68 * `platform` on GitHub releases. (It is also stored under the same name when 68 * `platform` on GitHub releases. (It is also stored under the same name when
69 * downloaded by the extension). 69 * downloaded by the extension).
70 */ 70 */
71 get prebuiltLangServerFileName(): null | string { 71 get prebuiltServerFileName(): null | string {
72 // See possible `arch` values here: 72 // See possible `arch` values here:
73 // https://nodejs.org/api/process.html#process_process_arch 73 // https://nodejs.org/api/process.html#process_process_arch
74 74
@@ -98,17 +98,17 @@ export class Config {
98 } 98 }
99 } 99 }
100 100
101 get langServerBinarySource(): null | BinarySource { 101 get serverBinarySource(): null | BinarySource {
102 const langServerPath = RA_LSP_DEBUG ?? this.cfg.get<null | string>("raLspServerPath"); 102 const serverPath = RA_LSP_DEBUG ?? this.cfg.get<null | string>("raLspServerPath");
103 103
104 if (langServerPath) { 104 if (serverPath) {
105 return { 105 return {
106 type: BinarySource.Type.ExplicitPath, 106 type: BinarySource.Type.ExplicitPath,
107 path: Config.replaceTildeWithHomeDir(langServerPath) 107 path: Config.replaceTildeWithHomeDir(serverPath)
108 }; 108 };
109 } 109 }
110 110
111 const prebuiltBinaryName = this.prebuiltLangServerFileName; 111 const prebuiltBinaryName = this.prebuiltServerFileName;
112 112
113 if (!prebuiltBinaryName) return null; 113 if (!prebuiltBinaryName) return null;
114 114
diff --git a/editors/code/src/installation/lang_server.ts b/editors/code/src/installation/server.ts
index ccb936bf5..406e2299c 100644
--- a/editors/code/src/installation/lang_server.ts
+++ b/editors/code/src/installation/server.ts
@@ -10,7 +10,7 @@ import { BinarySource } from "./interfaces";
10import { fetchLatestArtifactReleaseInfo } from "./fetch_latest_artifact_release_info"; 10import { fetchLatestArtifactReleaseInfo } from "./fetch_latest_artifact_release_info";
11import { downloadFile } from "./download_file"; 11import { downloadFile } from "./download_file";
12 12
13export async function downloadLatestLangServer( 13export async function downloadLatestServer(
14 {file: artifactFileName, dir: installationDir, repo}: BinarySource.GithubRelease 14 {file: artifactFileName, dir: installationDir, repo}: BinarySource.GithubRelease
15) { 15) {
16 const { releaseName, downloadUrl } = (await fetchLatestArtifactReleaseInfo( 16 const { releaseName, downloadUrl } = (await fetchLatestArtifactReleaseInfo(
@@ -53,11 +53,11 @@ export async function downloadLatestLangServer(
53 ); 53 );
54 console.timeEnd("Downloading ra_lsp_server"); 54 console.timeEnd("Downloading ra_lsp_server");
55} 55}
56export async function ensureLangServerBinary( 56export async function ensureServerBinary(
57 langServerSource: null | BinarySource 57 serverSource: null | BinarySource
58): Promise<null | string> { 58): Promise<null | string> {
59 59
60 if (!langServerSource) { 60 if (!serverSource) {
61 vscode.window.showErrorMessage( 61 vscode.window.showErrorMessage(
62 "Unfortunately we don't ship binaries for your platform yet. " + 62 "Unfortunately we don't ship binaries for your platform yet. " +
63 "You need to manually clone rust-analyzer repository and " + 63 "You need to manually clone rust-analyzer repository and " +
@@ -69,21 +69,21 @@ export async function ensureLangServerBinary(
69 return null; 69 return null;
70 } 70 }
71 71
72 switch (langServerSource.type) { 72 switch (serverSource.type) {
73 case BinarySource.Type.ExplicitPath: { 73 case BinarySource.Type.ExplicitPath: {
74 if (isBinaryAvailable(langServerSource.path)) { 74 if (isBinaryAvailable(serverSource.path)) {
75 return langServerSource.path; 75 return serverSource.path;
76 } 76 }
77 77
78 vscode.window.showErrorMessage( 78 vscode.window.showErrorMessage(
79 `Unable to run ${langServerSource.path} binary. ` + 79 `Unable to run ${serverSource.path} binary. ` +
80 `To use the pre-built language server, set "rust-analyzer.raLspServerPath" ` + 80 `To use the pre-built language server, set "rust-analyzer.raLspServerPath" ` +
81 "value to `null` or remove it from the settings to use it by default." 81 "value to `null` or remove it from the settings to use it by default."
82 ); 82 );
83 return null; 83 return null;
84 } 84 }
85 case BinarySource.Type.GithubRelease: { 85 case BinarySource.Type.GithubRelease: {
86 const prebuiltBinaryPath = path.join(langServerSource.dir, langServerSource.file); 86 const prebuiltBinaryPath = path.join(serverSource.dir, serverSource.file);
87 87
88 if (isBinaryAvailable(prebuiltBinaryPath)) { 88 if (isBinaryAvailable(prebuiltBinaryPath)) {
89 return prebuiltBinaryPath; 89 return prebuiltBinaryPath;
@@ -97,10 +97,10 @@ export async function ensureLangServerBinary(
97 if (userResponse !== "Download now") return null; 97 if (userResponse !== "Download now") return null;
98 98
99 try { 99 try {
100 await downloadLatestLangServer(langServerSource); 100 await downloadLatestServer(serverSource);
101 } catch (err) { 101 } catch (err) {
102 vscode.window.showErrorMessage( 102 vscode.window.showErrorMessage(
103 `Failed to download language server from ${langServerSource.repo.name} ` + 103 `Failed to download language server from ${serverSource.repo.name} ` +
104 `GitHub repository: ${err.message}` 104 `GitHub repository: ${err.message}`
105 ); 105 );
106 106
@@ -122,7 +122,7 @@ export async function ensureLangServerBinary(
122 122
123 if (!isBinaryAvailable(prebuiltBinaryPath)) assert(false, 123 if (!isBinaryAvailable(prebuiltBinaryPath)) assert(false,
124 `Downloaded language server binary is not functional.` + 124 `Downloaded language server binary is not functional.` +
125 `Downloaded from: ${JSON.stringify(langServerSource)}` 125 `Downloaded from: ${JSON.stringify(serverSource)}`
126 ); 126 );
127 127
128 128