Skip to content

Commit 45be280

Browse files
committed
Make SKDRequestDictionaryReader conform to CustomStringConvertible
1 parent 49d0338 commit 45be280

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

Sources/SwiftSourceKitPlugin/SKDRequestDictionaryReader.swift

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,34 @@
1313
import Csourcekitd
1414
import SourceKitD
1515

16+
#if canImport(Darwin)
17+
import Darwin
18+
#elseif canImport(Glibc)
19+
import Glibc
20+
#elseif canImport(Musl)
21+
import Musl
22+
#elseif canImport(CRT)
23+
import CRT
24+
#elseif canImport(Bionic)
25+
import Bionic
26+
#endif
27+
1628
/// Provide getters to get values of a sourcekitd request dictionary.
1729
///
1830
/// This is not part of the `SourceKitD` module because it uses `SourceKitD.servicePluginAPI` which must not be accessed
1931
/// outside of the service plugin.
20-
final class SKDRequestDictionaryReader: Sendable {
32+
final class SKDRequestDictionaryReader: Sendable, CustomStringConvertible {
2133
private nonisolated(unsafe) let dict: sourcekitd_api_object_t
2234
let sourcekitd: SourceKitD
2335

36+
var description: String {
37+
guard let description = sourcekitd.api.request_description_copy(dict) else {
38+
return "getting request description failed"
39+
}
40+
defer { free(description) }
41+
return String(cString: description)
42+
}
43+
2444
/// Creates an `SKDRequestDictionary` that essentially provides a view into the given opaque
2545
/// `sourcekitd_api_object_t`.
2646
init?(_ request: sourcekitd_api_object_t, sourcekitd: SourceKitD) {

Sources/SwiftSourceKitPlugin/SKDResponse.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ final class SKDResponse: CustomStringConvertible, Sendable {
7474
}
7575

7676
public var description: String {
77-
let cstr = sourcekitd.api.request_description_copy(value)!
77+
let cstr = sourcekitd.api.response_description_copy(value)!
7878
defer { free(cstr) }
7979
return String(cString: cstr)
8080
}

0 commit comments

Comments
 (0)