File tree Expand file tree Collapse file tree 6 files changed +26
-43
lines changed
tools/SwiftSourceKitClient Expand file tree Collapse file tree 6 files changed +26
-43
lines changed Original file line number Diff line number Diff line change 6
6
import StdlibUnittest
7
7
import Foundation
8
8
import SwiftSyntax
9
- import SwiftLang
9
+ import SwiftSourceKit
10
10
11
11
func getInput( _ file: String ) -> URL {
12
12
var result = URL ( fileURLWithPath: #file)
@@ -20,7 +20,7 @@ var DecodeTests = TestSuite("DecodeSyntax")
20
20
21
21
DecodeTests . test ( " Basic " ) {
22
22
expectDoesNotThrow ( {
23
- let content = try SwiftLang . parse ( getInput ( " visitor.swift " ) )
23
+ let content = try SourceFileSyntax . encodeSourceFileSyntax ( getInput ( " visitor.swift " ) )
24
24
let source = try String ( contentsOf: getInput ( " visitor.swift " ) )
25
25
let parsed = try SourceFileSyntax . decodeSourceFileSyntax ( content)
26
26
expectEqual ( " \( parsed) " , source)
Original file line number Diff line number Diff line change 6
6
import Foundation
7
7
import StdlibUnittest
8
8
import SwiftSyntax
9
- import SwiftLang
9
+ import SwiftSourceKit
10
10
11
11
var ParseFile = TestSuite ( " ParseFile " )
12
12
@@ -32,7 +32,7 @@ ParseFile.test("ParseSingleFile") {
32
32
expectDoesNotThrow ( {
33
33
let currentFileContents = try String ( contentsOf: currentFile)
34
34
let parsed = try SourceFileSyntax . decodeSourceFileSyntax ( try
35
- SwiftLang . parse ( currentFile) )
35
+ SourceKitdService . encodeSourceFileSyntax ( currentFile) )
36
36
expectEqual ( " \( parsed) " , currentFileContents)
37
37
} )
38
38
}
Original file line number Diff line number Diff line change 6
6
import StdlibUnittest
7
7
import Foundation
8
8
import SwiftSyntax
9
- import SwiftLang
9
+ import SwiftSourceKit
10
10
11
11
func getInput( _ file: String ) -> URL {
12
12
var result = URL ( fileURLWithPath: #file)
@@ -28,7 +28,7 @@ VisitorTests.test("Basic") {
28
28
}
29
29
expectDoesNotThrow ( {
30
30
let parsed = try SourceFileSyntax . decodeSourceFileSyntax ( try
31
- SwiftLang . parse ( getInput ( " visitor.swift " ) ) )
31
+ SourceKitdService . encodeSourceFileSyntax ( getInput ( " visitor.swift " ) ) )
32
32
let counter = FuncCounter ( )
33
33
let hashBefore = parsed. hashValue
34
34
counter. visit ( parsed)
Original file line number Diff line number Diff line change @@ -2,8 +2,7 @@ set(EXTRA_COMPILE_FLAGS "-F" "${SWIFT_LIBRARY_OUTPUT_INTDIR}")
2
2
set (EXTRA_LINKER_FLAGS "-Xlinker" "-rpath" "-Xlinker" "${SWIFT_LIBRARY_OUTPUT_INTDIR} "
3
3
"-Xlinker" "-F" "-Xlinker" "${SWIFT_LIBRARY_OUTPUT_INTDIR} " )
4
4
5
- add_swift_library (swiftSwiftLang SHARED
6
- SwiftLang.swift
5
+ add_swift_library (swiftSwiftSourceKit SHARED
7
6
SourceKitdClient.swift
8
7
SourceKitdRequest.swift
9
8
SourceKitdResponse.swift
Original file line number Diff line number Diff line change @@ -27,3 +27,22 @@ public class SourceKitdService {
27
27
return SourceKitdResponse ( resp: sourcekitd_send_request_sync ( request. rawRequest) )
28
28
}
29
29
}
30
+
31
+ extension SourceKitdService {
32
+ /// Parses the Swift file at the provided URL into a `Syntax` tree in Json
33
+ /// serialization format by querying SourceKitd service.
34
+ /// - Parameter url: The URL you wish to parse.
35
+ /// - Returns: The syntax tree in Json format string.
36
+ public static func encodeSourceFileSyntax( _ url: URL ) throws -> String {
37
+ let Service = SourceKitdService ( )
38
+ let Request = SourceKitdRequest ( uid: . source_request_editor_open)
39
+ let Path = url. path
40
+ Request . addParameter ( . key_sourcefile, value: Path)
41
+ Request . addParameter ( . key_name, value: Path)
42
+ Request . addParameter ( . key_enable_syntax_tree, value: 1 )
43
+
44
+ // FIXME: SourceKitd error handling.
45
+ let Resp = Service . sendSyn ( request: Request)
46
+ return Resp . value. getString ( . key_serialized_syntax_tree)
47
+ }
48
+ }
Load Diff This file was deleted.
You can’t perform that action at this time.
0 commit comments