SwiftSyntax 是一组 Swift 库,用于解析、检查、生成和转换 Swift 源代码。
您可以在 swiftpackageindex.com 上阅读 SwiftSyntax 的文档。
交互式探索源文件的 SwiftSyntax 树的一个好方法是 https://swift-ast-explorer.com,由 @kishikawakatsumi 开发。
SwiftSyntax 的主线分支跟踪最新的开发进展。它不是官方版本,API 和行为可能会快速变化。要使用它,请将此仓库添加到您项目的 Package.swift
清单文件中
// swift-tools-version:5.7
import PackageDescription
let package = Package(
name: "MyTool",
dependencies: [
.package(url: "https://github.com/apple/swift-syntax.git", branch: "main"),
],
targets: [
.target(name: "MyTool", dependencies: [
.product(name: "SwiftSyntax", package: "swift-syntax"),
]),
]
)
主线 SwiftSyntax 还包括
SwiftParser
用于原生解析源代码SwiftOperators
用于折叠包含运算符的 SwiftSyntax 树SwiftSyntaxBuilder
用于使用结果构建器风格的接口生成 Swift 代码SwiftSyntax 的版本发布与相应的语言和工具版本发布对齐且稳定。要使用它们,请将此仓库添加到您项目的 Package.swift
清单文件中
// swift-tools-version:5.7
import PackageDescription
let package = Package(
name: "MyTool",
dependencies: [
.package(url: "https://github.com/apple/swift-syntax.git", exact: "<#Specify Release tag#>"),
],
targets: [
.target(name: "MyTool", dependencies: [
.product(name: "SwiftSyntax", package: "swift-syntax"),
]),
]
)
将 <#Specify Release tag#>
替换为您想要使用的 SwiftSyntax 版本(有关映射详细信息,请参见下表)。
Xcode 版本 | Swift 发布标签 | SwiftSyntax 发布标签 |
---|---|---|
Xcode 14.3 | swift-5.8-RELEASE | 508.0.0 |
Xcode 14.0 | swift-5.7-RELEASE | 0.50700.1 |
Xcode 13.3 | swift-5.6-RELEASE | 0.50600.1 |
Xcode 13.0 | swift-5.5-RELEASE | 0.50500.0 |
Xcode 12.5 | swift-5.4-RELEASE | 0.50400.0 |
Xcode 12.0 | swift-5.3-RELEASE | 0.50300.0 |
Xcode 11.4 | swift-5.2-RELEASE | 0.50200.0 |
SwiftSyntax 使用 DocC 包来构建其文档。要在 Xcode 中查看渲染后的文档,请打开 SwiftSyntax 包并选择
Product > Build Documentation
相关文章以 markdown 格式编写,可以在浏览器、文本编辑器或 IDE 中查看。
要开始为 SwiftSyntax 做贡献,请参阅本指南以获取更多信息。
如果您在使用 SwiftSyntax 时遇到任何问题,我们欢迎在 GitHub Issue 上提交错误报告。
SwiftSyntax 提供了一个实验性的 Bazel 构建配置,由 Keith Smiley 维护。要使用它,您可以从相关的发布标签中将源代码存档拉取到您的 WORKSPACE
中,并依赖于 BUILD.bazel
文件中您需要的库。每个库还有一个关联的 Library_opt
目标(例如 SwiftSyntax_opt
),它强制 SwiftSyntax 始终启用优化进行构建。这可能有助于提高本地运行时性能,但会牺牲可调试性和初始构建时间。请使用 “Bazel” 标签标记任何与 Bazel 配置相关的 问题。
有关更多信息,请参阅 LICENSE。