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.ts | 25 |
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; +} |