Skip to content

Commit ae03102

Browse files
address review comments from adam
1 parent c85b7f5 commit ae03102

File tree

3 files changed

+23
-29
lines changed

3 files changed

+23
-29
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
- Suggest "Open Documentation" when toolchain not found ([#1939](https://github.com/swiftlang/vscode-swift/pull/1939))
88
- Make sure all folder operation listeners get past folder add events ([#1945](https://github.com/swiftlang/vscode-swift/pull/1945))
9+
- Fixed an issue where `lldb-dap` could not be found in Command Line Tools toolchains ([#1936](https://github.com/swiftlang/vscode-swift/pull/1936))
910

1011
## 2.14.0 - 2025-11-11
1112

@@ -17,7 +18,6 @@
1718
### Fixed
1819

1920
- Fixed an issue where the activation of the extension was held up while waiting on the debug configuration to update ([#1914](https://github.com/swiftlang/vscode-swift/pull/1914))
20-
- Fixed an issue where `lldb-dap` could not be found in Command Line Tools toolchains ([#1936](https://github.com/swiftlang/vscode-swift/pull/1936))
2121

2222
## 2.12.0 - 2025-10-29
2323

src/toolchain/toolchain.ts

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -101,18 +101,20 @@ export function getDarwinTargetTriple(target: DarwinCompatibleTarget): string |
101101
}
102102
}
103103

104+
/**
105+
* Different entities which are used to manage toolchain installations. Possible values are:
106+
* - `xcrun`: An Xcode/CommandLineTools toolchain controlled via the `xcrun` and `xcode-select` utilities on macOS.
107+
* - `swiftly`: A toolchain managed by `swiftly`.
108+
* - `swiftenv`: A toolchain managed by `swiftenv`.
109+
* - `unknown`: This toolchain was installed via a method unknown to the extension.
110+
*/
111+
export type ToolchainManager = "xcrun" | "swiftly" | "swiftenv" | "unknown";
112+
104113
export class SwiftToolchain {
105114
public swiftVersionString: string;
106115

107116
constructor(
108-
/**
109-
* Which entity manages this toolchain. Possible managers are:
110-
* - `xcrun`: An Xcode/CommandLineTools toolchain controlled via the `xcrun` and `xcode-select` utilities on macOS.
111-
* - `swiftly`: A toolchain managed by `swiftly`.
112-
* - `swiftenv`: A toolchain managed by `swiftenv`.
113-
* - `unknown`: This toolchain was installed via a method unknown to the extension.
114-
*/
115-
public manager: "xcrun" | "swiftly" | "swiftenv" | "unknown",
117+
public manager: ToolchainManager,
116118
public swiftFolderPath: string, // folder swift executable in $PATH was found in
117119
public toolchainPath: string, // toolchain folder. One folder up from swift bin folder. This is to support toolchains without usr folder
118120
private targetInfo: SwiftTargetInfo,
@@ -538,7 +540,7 @@ export class SwiftToolchain {
538540
if (!(await fileExists(binary))) {
539541
return false;
540542
}
541-
const objdumpOutput = await execFile("objdump", ["-h", binary]);
543+
const objdumpOutput = await execFile("/usr/bin/objdump", ["-h", binary]);
542544
return objdumpOutput.stdout.includes("__xcrun_shim");
543545
}
544546

@@ -552,7 +554,7 @@ export class SwiftToolchain {
552554
logger?: SwiftLogger
553555
): Promise<{
554556
toolchainPath: string;
555-
toolchainManager: "xcrun" | "swiftly" | "swiftenv" | "unknown";
557+
toolchainManager: ToolchainManager;
556558
}> {
557559
try {
558560
// swift may be a symbolic link

test/unit-tests/toolchain/toolchain.test.ts

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -36,23 +36,15 @@ suite("SwiftToolchain Unit Test Suite", () => {
3636
mockFS.restore();
3737
});
3838

39-
suite("create()", () => {
40-
suite("macOS", () => {
41-
setup(() => {
42-
mockedPlatform.setValue("darwin");
43-
});
44-
});
45-
});
46-
4739
suite("getLLDBDebugAdapter()", () => {
4840
function createSwiftToolchain(options: {
4941
manager?: "xcrun" | "swiftly" | "swiftenv" | "unknown";
50-
swiftBinaryPath: string;
42+
swiftFolderPath: string;
5143
toolchainPath: string;
5244
}): SwiftToolchain {
5345
return new SwiftToolchain(
5446
options.manager ?? "unknown",
55-
options.swiftBinaryPath,
47+
options.swiftFolderPath,
5648
options.toolchainPath,
5749
/* targetInfo */ {
5850
compilerVersion: "6.0.0",
@@ -85,7 +77,7 @@ suite("SwiftToolchain Unit Test Suite", () => {
8577
});
8678
const sut = createSwiftToolchain({
8779
manager: "unknown",
88-
swiftBinaryPath:
80+
swiftFolderPath:
8981
"/Library/Developer/Toolchains/swift-6.0.1-RELEASE.xctoolchain/usr/bin/swift",
9082
toolchainPath:
9183
"/Library/Developer/Toolchains/swift-6.0.1-RELEASE.xctoolchain/usr",
@@ -103,7 +95,7 @@ suite("SwiftToolchain Unit Test Suite", () => {
10395
"/Library/Developer/Toolchains/swift-6.0.1-RELEASE.xctoolchain/usr/bin": {},
10496
});
10597
const sut = createSwiftToolchain({
106-
swiftBinaryPath:
98+
swiftFolderPath:
10799
"/Library/Developer/Toolchains/swift-6.0.1-RELEASE.xctoolchain/usr/bin",
108100
toolchainPath:
109101
"/Library/Developer/Toolchains/swift-6.0.1-RELEASE.xctoolchain/usr",
@@ -136,7 +128,7 @@ suite("SwiftToolchain Unit Test Suite", () => {
136128
});
137129
const sut = createSwiftToolchain({
138130
manager: "xcrun",
139-
swiftBinaryPath: "/usr/bin/swift",
131+
swiftFolderPath: "/usr/bin/swift",
140132
toolchainPath:
141133
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr",
142134
});
@@ -156,7 +148,7 @@ suite("SwiftToolchain Unit Test Suite", () => {
156148
});
157149
const sut = createSwiftToolchain({
158150
manager: "xcrun",
159-
swiftBinaryPath: "/usr/bin/swift",
151+
swiftFolderPath: "/usr/bin/swift",
160152
toolchainPath: "/Library/Developer/CommandLineTools/usr",
161153
});
162154

@@ -181,7 +173,7 @@ suite("SwiftToolchain Unit Test Suite", () => {
181173
},
182174
});
183175
const sut = createSwiftToolchain({
184-
swiftBinaryPath: "/toolchains/swift-6.0.0/usr/bin",
176+
swiftFolderPath: "/toolchains/swift-6.0.0/usr/bin",
185177
toolchainPath: "/toolchains/swift-6.0.0/usr",
186178
});
187179

@@ -195,7 +187,7 @@ suite("SwiftToolchain Unit Test Suite", () => {
195187
"/toolchains/swift-6.0.0/usr/bin": {},
196188
});
197189
const sut = createSwiftToolchain({
198-
swiftBinaryPath: "/toolchains/swift-6.0.0/usr/bin",
190+
swiftFolderPath: "/toolchains/swift-6.0.0/usr/bin",
199191
toolchainPath: "/toolchains/swift-6.0.0/usr",
200192
});
201193

@@ -220,7 +212,7 @@ suite("SwiftToolchain Unit Test Suite", () => {
220212
},
221213
});
222214
const sut = createSwiftToolchain({
223-
swiftBinaryPath: "/toolchains/swift-6.0.0/usr/bin",
215+
swiftFolderPath: "/toolchains/swift-6.0.0/usr/bin",
224216
toolchainPath: "/toolchains/swift-6.0.0/usr",
225217
});
226218

@@ -234,7 +226,7 @@ suite("SwiftToolchain Unit Test Suite", () => {
234226
"/toolchains/swift-6.0.0/usr/bin": {},
235227
});
236228
const sut = createSwiftToolchain({
237-
swiftBinaryPath: "/toolchains/swift-6.0.0/usr/bin",
229+
swiftFolderPath: "/toolchains/swift-6.0.0/usr/bin",
238230
toolchainPath: "/toolchains/swift-6.0.0/usr",
239231
});
240232

0 commit comments

Comments
 (0)