Skip to content

Commit b376487

Browse files
address review comments from adam
1 parent 4ba242d commit b376487

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
@@ -35,23 +35,15 @@ suite("SwiftToolchain Unit Test Suite", () => {
3535
mockFS.restore();
3636
});
3737

38-
suite("create()", () => {
39-
suite("macOS", () => {
40-
setup(() => {
41-
mockedPlatform.setValue("darwin");
42-
});
43-
});
44-
});
45-
4638
suite("getLLDBDebugAdapter()", () => {
4739
function createSwiftToolchain(options: {
4840
manager?: "xcrun" | "swiftly" | "swiftenv" | "unknown";
49-
swiftBinaryPath: string;
41+
swiftFolderPath: string;
5042
toolchainPath: string;
5143
}): SwiftToolchain {
5244
return new SwiftToolchain(
5345
options.manager ?? "unknown",
54-
options.swiftBinaryPath,
46+
options.swiftFolderPath,
5547
options.toolchainPath,
5648
/* targetInfo */ {
5749
compilerVersion: "6.0.0",
@@ -84,7 +76,7 @@ suite("SwiftToolchain Unit Test Suite", () => {
8476
});
8577
const sut = createSwiftToolchain({
8678
manager: "unknown",
87-
swiftBinaryPath:
79+
swiftFolderPath:
8880
"/Library/Developer/Toolchains/swift-6.0.1-RELEASE.xctoolchain/usr/bin/swift",
8981
toolchainPath:
9082
"/Library/Developer/Toolchains/swift-6.0.1-RELEASE.xctoolchain/usr",
@@ -100,7 +92,7 @@ suite("SwiftToolchain Unit Test Suite", () => {
10092
"/Library/Developer/Toolchains/swift-6.0.1-RELEASE.xctoolchain/usr/bin": {},
10193
});
10294
const sut = createSwiftToolchain({
103-
swiftBinaryPath:
95+
swiftFolderPath:
10496
"/Library/Developer/Toolchains/swift-6.0.1-RELEASE.xctoolchain/usr/bin",
10597
toolchainPath:
10698
"/Library/Developer/Toolchains/swift-6.0.1-RELEASE.xctoolchain/usr",
@@ -133,7 +125,7 @@ suite("SwiftToolchain Unit Test Suite", () => {
133125
});
134126
const sut = createSwiftToolchain({
135127
manager: "xcrun",
136-
swiftBinaryPath: "/usr/bin/swift",
128+
swiftFolderPath: "/usr/bin/swift",
137129
toolchainPath:
138130
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr",
139131
});
@@ -153,7 +145,7 @@ suite("SwiftToolchain Unit Test Suite", () => {
153145
});
154146
const sut = createSwiftToolchain({
155147
manager: "xcrun",
156-
swiftBinaryPath: "/usr/bin/swift",
148+
swiftFolderPath: "/usr/bin/swift",
157149
toolchainPath: "/Library/Developer/CommandLineTools/usr",
158150
});
159151

@@ -178,7 +170,7 @@ suite("SwiftToolchain Unit Test Suite", () => {
178170
},
179171
});
180172
const sut = createSwiftToolchain({
181-
swiftBinaryPath: "/toolchains/swift-6.0.0/usr/bin",
173+
swiftFolderPath: "/toolchains/swift-6.0.0/usr/bin",
182174
toolchainPath: "/toolchains/swift-6.0.0/usr",
183175
});
184176

@@ -192,7 +184,7 @@ suite("SwiftToolchain Unit Test Suite", () => {
192184
"/toolchains/swift-6.0.0/usr/bin": {},
193185
});
194186
const sut = createSwiftToolchain({
195-
swiftBinaryPath: "/toolchains/swift-6.0.0/usr/bin",
187+
swiftFolderPath: "/toolchains/swift-6.0.0/usr/bin",
196188
toolchainPath: "/toolchains/swift-6.0.0/usr",
197189
});
198190

@@ -217,7 +209,7 @@ suite("SwiftToolchain Unit Test Suite", () => {
217209
},
218210
});
219211
const sut = createSwiftToolchain({
220-
swiftBinaryPath: "/toolchains/swift-6.0.0/usr/bin",
212+
swiftFolderPath: "/toolchains/swift-6.0.0/usr/bin",
221213
toolchainPath: "/toolchains/swift-6.0.0/usr",
222214
});
223215

@@ -231,7 +223,7 @@ suite("SwiftToolchain Unit Test Suite", () => {
231223
"/toolchains/swift-6.0.0/usr/bin": {},
232224
});
233225
const sut = createSwiftToolchain({
234-
swiftBinaryPath: "/toolchains/swift-6.0.0/usr/bin",
226+
swiftFolderPath: "/toolchains/swift-6.0.0/usr/bin",
235227
toolchainPath: "/toolchains/swift-6.0.0/usr",
236228
});
237229

0 commit comments

Comments
 (0)