diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9550ee3..ababbb9 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,10 +10,8 @@ jobs: test: runs-on: ubuntu-latest steps: - - uses: swift-actions/setup-swift@v2 - with: - swift-version: "5.10.1" - uses: actions/checkout@v4 - - run: swift package resolve - - run: swift build + - uses: vapor/swiftly-action@v0.2 + with: + toolchain: "6.3" - run: swift test diff --git a/.gitignore b/.gitignore index 62b7e8f..e358ffb 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ xcuserdata/ DerivedData/ .swiftpm .netrc +.vscode diff --git a/Package.resolved b/Package.resolved index e82d2a3..233e952 100644 --- a/Package.resolved +++ b/Package.resolved @@ -1,12 +1,13 @@ { + "originHash" : "1a71bb059423ce2785d3b08fe11c6cfc518197f3f201914375d55a51f718429d", "pins" : [ { "identity" : "codegenkit", "kind" : "remoteSourceControl", "location" : "https://github.com/omochi/CodegenKit.git", "state" : { - "revision" : "ab5ad508aab30b1572caa6e73ac0206611db0b0d", - "version" : "2.0.0" + "revision" : "75e9de2abe0d9ea1d821fdd008aba50ce339716e", + "version" : "2.1.1" } }, { @@ -14,35 +15,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/apple/swift-argument-parser.git", "state" : { - "revision" : "41982a3656a71c768319979febd796c6fd111d5c", - "version" : "1.5.0" - } - }, - { - "identity" : "swift-cmark", - "kind" : "remoteSourceControl", - "location" : "https://github.com/apple/swift-cmark.git", - "state" : { - "revision" : "3ccff77b2dc5b96b77db3da0d68d28068593fa53", - "version" : "0.5.0" - } - }, - { - "identity" : "swift-format", - "kind" : "remoteSourceControl", - "location" : "https://github.com/swiftlang/swift-format.git", - "state" : { - "revision" : "65f9da9aad84adb7e2028eb32ca95164aa590e3b", - "version" : "600.0.0" - } - }, - { - "identity" : "swift-markdown", - "kind" : "remoteSourceControl", - "location" : "https://github.com/apple/swift-markdown.git", - "state" : { - "revision" : "8f79cb175981458a0a27e76cb42fee8e17b1a993", - "version" : "0.5.0" + "revision" : "626b5b7b2f45e1b0b1c6f4a309296d1d21d7311b", + "version" : "1.7.1" } }, { @@ -50,10 +24,10 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/swiftlang/swift-syntax.git", "state" : { - "revision" : "cb53fa1bd3219b0b23ded7dfdd3b2baff266fd25", - "version" : "600.0.0" + "revision" : "9de99a78f099e59caf2b2beec65a4c45d54b2081", + "version" : "603.0.1" } } ], - "version" : 2 + "version" : 3 } diff --git a/Package.swift b/Package.swift index 88059a4..513cbce 100644 --- a/Package.swift +++ b/Package.swift @@ -1,4 +1,4 @@ -// swift-tools-version: 5.8 +// swift-tools-version: 6.0 import PackageDescription @@ -9,7 +9,7 @@ let package = Package( .library(name: "TypeScriptAST", targets: ["TypeScriptAST"]) ], dependencies: [ - .package(url: "https://github.com/omochi/CodegenKit.git", from: "2.0.0") + .package(url: "https://github.com/omochi/CodegenKit.git", from: "2.1.1") ], targets: [ .executableTarget( diff --git a/Plugins/CodegenPlugin/CodegenPlugin.swift b/Plugins/CodegenPlugin/CodegenPlugin.swift index cf577bc..558642e 100644 --- a/Plugins/CodegenPlugin/CodegenPlugin.swift +++ b/Plugins/CodegenPlugin/CodegenPlugin.swift @@ -6,11 +6,11 @@ struct CodegenPlugin: CommandPlugin { func performCommand(context: PluginContext, arguments: [String]) async throws { let codegen = try context.tool(named: "codegen") - let sourcesDir = context.package.directory.appending(subpath: "Sources") + let sourcesDir = context.package.directoryURL.appending(path: "Sources") let process = EasyProcess( - path: URL(fileURLWithPath: codegen.path.string), - args: [sourcesDir.string] + path: codegen.url, + args: [sourcesDir.path(percentEncoded: false)] ) try process.run() } diff --git a/Plugins/CodegenPlugin/EasyProcess.swift b/Plugins/CodegenPlugin/EasyProcess.swift index 3baf30b..5dfa654 100644 --- a/Plugins/CodegenPlugin/EasyProcess.swift +++ b/Plugins/CodegenPlugin/EasyProcess.swift @@ -4,8 +4,8 @@ struct EasyProcess { init( path: URL, args: [String], - outSink: ((Data) -> Void)? = nil, - errorSink: ((Data) -> Void)? = nil + outSink: (@Sendable (Data) -> Void)? = nil, + errorSink: (@Sendable (Data) -> Void)? = nil ) { self.path = path self.args = args @@ -15,20 +15,20 @@ struct EasyProcess { var path: URL var args: [String] - var outSink: (Data) -> Void - var errorSink: (Data) -> Void + var outSink: @Sendable (Data) -> Void + var errorSink: @Sendable (Data) -> Void - static func makeFileHandleSink(fileHandle: FileHandle) -> (Data) -> Void { + static func makeFileHandleSink(fileHandle: FileHandle) -> @Sendable (Data) -> Void { return { (data) in try? fileHandle.write(contentsOf: data) } } - static var defaultOutSink: (Data) -> Void { + static var defaultOutSink: @Sendable (Data) -> Void { makeFileHandleSink(fileHandle: .standardOutput) } - static var defaultErrorSink: (Data) -> Void { + static var defaultErrorSink: @Sendable (Data) -> Void { makeFileHandleSink(fileHandle: .standardError) } @@ -43,7 +43,7 @@ struct EasyProcess { let outPipe = Pipe() p.standardOutput = outPipe - outPipe.fileHandleForReading.readabilityHandler = { (h) in + outPipe.fileHandleForReading.readabilityHandler = { [outSink] (h) in queue.sync { let data = h.availableData if !data.isEmpty { @@ -55,7 +55,7 @@ struct EasyProcess { let errPipe = Pipe() p.standardError = errPipe - errPipe.fileHandleForReading.readabilityHandler = { (h) in + errPipe.fileHandleForReading.readabilityHandler = { [errorSink] (h) in queue.sync { let data = h.availableData if !data.isEmpty { diff --git a/Tests/TypeScriptASTTests/TestCaseBase.swift b/Tests/TypeScriptASTTests/TestCaseBase.swift index f221a82..45108e4 100644 --- a/Tests/TypeScriptASTTests/TestCaseBase.swift +++ b/Tests/TypeScriptASTTests/TestCaseBase.swift @@ -5,7 +5,7 @@ class TestCaseBase: XCTestCase { func assertPrint( _ node: any ASTNode, _ expected: String, - file: StaticString = #file, + file: StaticString = #filePath, line: UInt = #line ) { XCTAssertEqual(node.print(), expected, file: file, line: line)