SwiftSyntax
SwiftSyntax是一组用于解析、检查、生成和转换Swift源代码的Swift库。
文档
您可以在swiftpackageindex.com上阅读SwiftSyntax的文档。
通过https://swift-ast-explorer.com,由@kishikawakatsumi开发,您可以实现与交互式探索源文件的SwiftSyntax树。
将SwiftSyntax作为依赖项添加
主分支开发
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代码SwiftSyntaxMacros
, 用于提供语法宏支持
发布版本
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"),
]),
]
)
将<#指定发布标签#>
替换为您想使用的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 上提交错误报告。
Bazel
SwiftSyntax 提供了一个由 Keith Smiley 维护的实验性 Bazel 构建配置。要使用它,您可以从中拉取相关发布标签的源存档到您的 WORKSPACE
,并在 BUILD.bazel
文件中依赖于您所需的库。每个库都有一个相关的 Library_opt
目标(如 SwiftSyntax_opt
),它会强制 SwiftSyntax 总是启用优化模式编译。这可能会提高本地运行时性能,但可能会牺牲调试能力和初始构建时间。请将任何与 Bazel 配置相关的 问题 标注为“Bazel”。
许可证
请参阅 LICENSE 以获取更多信息。