Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'editors/code/src/util.ts')
-rw-r--r--editors/code/src/util.ts25
1 files changed, 25 insertions, 0 deletions
diff --git a/editors/code/src/util.ts b/editors/code/src/util.ts
index 410b055100..05b475080c 100644
--- a/editors/code/src/util.ts
+++ b/editors/code/src/util.ts
@@ -328,3 +328,28 @@ export function normalizeDriveLetter(path: string, isWindowsOS: boolean = isWind
return path;
}
+
+export const RUST_TOOLCHAIN_FILES = ["rust-toolchain.toml", "rust-toolchain"] as const;
+
+export async function findRustToolchainFiles(): Promise<vscode.Uri[]> {
+ const found: vscode.Uri[] = [];
+ const workspaceFolders = vscode.workspace.workspaceFolders;
+ if (!workspaceFolders) {
+ return found;
+ }
+
+ for (const folder of workspaceFolders) {
+ for (const filename of RUST_TOOLCHAIN_FILES) {
+ const toolchainUri = vscode.Uri.joinPath(folder.uri, filename);
+ try {
+ await vscode.workspace.fs.stat(toolchainUri);
+ found.push(toolchainUri);
+ // Only add the first toolchain file found per workspace folder
+ break;
+ } catch {
+ // File doesn't exist, continue
+ }
+ }
+ }
+ return found;
+}