diff options
Diffstat (limited to 'editors/code/src')
-rw-r--r-- | editors/code/src/client.ts | 8 | ||||
-rw-r--r-- | editors/code/src/config.ts | 12 | ||||
-rw-r--r-- | editors/code/src/installation/fetch_latest_artifact_release_info.ts (renamed from editors/code/src/installation/fetch_latest_artifact_metadata.ts) | 6 | ||||
-rw-r--r-- | editors/code/src/installation/interfaces.ts | 2 | ||||
-rw-r--r-- | editors/code/src/installation/server.ts (renamed from editors/code/src/installation/language_server.ts) | 28 |
5 files changed, 28 insertions, 28 deletions
diff --git a/editors/code/src/client.ts b/editors/code/src/client.ts index dcf9d0c06..12c97be2f 100644 --- a/editors/code/src/client.ts +++ b/editors/code/src/client.ts | |||
@@ -2,7 +2,7 @@ import * as lc from 'vscode-languageclient'; | |||
2 | import * as vscode from 'vscode'; | 2 | import * as vscode from 'vscode'; |
3 | 3 | ||
4 | import { Config } from './config'; | 4 | import { Config } from './config'; |
5 | import { ensureLanguageServerBinary } from './installation/language_server'; | 5 | import { ensureServerBinary } from './installation/server'; |
6 | import { CallHierarchyFeature } from 'vscode-languageclient/lib/callHierarchy.proposed'; | 6 | import { CallHierarchyFeature } from 'vscode-languageclient/lib/callHierarchy.proposed'; |
7 | 7 | ||
8 | export async function createClient(config: Config): Promise<null | lc.LanguageClient> { | 8 | export 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 ensureLanguageServerBinary(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/fetch_latest_artifact_metadata.ts b/editors/code/src/installation/fetch_latest_artifact_release_info.ts index 7e3700603..29ee029a7 100644 --- a/editors/code/src/installation/fetch_latest_artifact_metadata.ts +++ b/editors/code/src/installation/fetch_latest_artifact_release_info.ts | |||
@@ -1,5 +1,5 @@ | |||
1 | import fetch from "node-fetch"; | 1 | import fetch from "node-fetch"; |
2 | import { GithubRepo, ArtifactMetadata } from "./interfaces"; | 2 | import { GithubRepo, ArtifactReleaseInfo } from "./interfaces"; |
3 | 3 | ||
4 | const GITHUB_API_ENDPOINT_URL = "https://api.github.com"; | 4 | const GITHUB_API_ENDPOINT_URL = "https://api.github.com"; |
5 | 5 | ||
@@ -7,9 +7,9 @@ const GITHUB_API_ENDPOINT_URL = "https://api.github.com"; | |||
7 | * Fetches the latest release from GitHub `repo` and returns metadata about | 7 | * Fetches the latest release from GitHub `repo` and returns metadata about |
8 | * `artifactFileName` shipped with this release or `null` if no such artifact was published. | 8 | * `artifactFileName` shipped with this release or `null` if no such artifact was published. |
9 | */ | 9 | */ |
10 | export async function fetchLatestArtifactMetadata( | 10 | export async function fetchLatestArtifactReleaseInfo( |
11 | repo: GithubRepo, artifactFileName: string | 11 | repo: GithubRepo, artifactFileName: string |
12 | ): Promise<null | ArtifactMetadata> { | 12 | ): Promise<null | ArtifactReleaseInfo> { |
13 | 13 | ||
14 | const repoOwner = encodeURIComponent(repo.owner); | 14 | const repoOwner = encodeURIComponent(repo.owner); |
15 | const repoName = encodeURIComponent(repo.name); | 15 | const repoName = encodeURIComponent(repo.name); |
diff --git a/editors/code/src/installation/interfaces.ts b/editors/code/src/installation/interfaces.ts index 8039d0b90..93ea577d4 100644 --- a/editors/code/src/installation/interfaces.ts +++ b/editors/code/src/installation/interfaces.ts | |||
@@ -6,7 +6,7 @@ export interface GithubRepo { | |||
6 | /** | 6 | /** |
7 | * Metadata about particular artifact retrieved from GitHub releases. | 7 | * Metadata about particular artifact retrieved from GitHub releases. |
8 | */ | 8 | */ |
9 | export interface ArtifactMetadata { | 9 | export interface ArtifactReleaseInfo { |
10 | releaseName: string; | 10 | releaseName: string; |
11 | downloadUrl: string; | 11 | downloadUrl: string; |
12 | } | 12 | } |
diff --git a/editors/code/src/installation/language_server.ts b/editors/code/src/installation/server.ts index 4797c3f01..406e2299c 100644 --- a/editors/code/src/installation/language_server.ts +++ b/editors/code/src/installation/server.ts | |||
@@ -7,13 +7,13 @@ import { spawnSync } from "child_process"; | |||
7 | import { throttle } from "throttle-debounce"; | 7 | import { throttle } from "throttle-debounce"; |
8 | 8 | ||
9 | import { BinarySource } from "./interfaces"; | 9 | import { BinarySource } from "./interfaces"; |
10 | import { fetchLatestArtifactMetadata } from "./fetch_latest_artifact_metadata"; | 10 | import { fetchLatestArtifactReleaseInfo } from "./fetch_latest_artifact_release_info"; |
11 | import { downloadFile } from "./download_file"; | 11 | import { downloadFile } from "./download_file"; |
12 | 12 | ||
13 | export async function downloadLatestLanguageServer( | 13 | export 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 fetchLatestArtifactMetadata( | 16 | const { releaseName, downloadUrl } = (await fetchLatestArtifactReleaseInfo( |
17 | repo, artifactFileName | 17 | repo, artifactFileName |
18 | ))!; | 18 | ))!; |
19 | 19 | ||
@@ -53,11 +53,11 @@ export async function downloadLatestLanguageServer( | |||
53 | ); | 53 | ); |
54 | console.timeEnd("Downloading ra_lsp_server"); | 54 | console.timeEnd("Downloading ra_lsp_server"); |
55 | } | 55 | } |
56 | export async function ensureLanguageServerBinary( | 56 | export 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 ensureLanguageServerBinary( | |||
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 ensureLanguageServerBinary( | |||
97 | if (userResponse !== "Download now") return null; | 97 | if (userResponse !== "Download now") return null; |
98 | 98 | ||
99 | try { | 99 | try { |
100 | await downloadLatestLanguageServer(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 ensureLanguageServerBinary( | |||
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 | ||