SwiftSyntax

SwiftSyntax 是一组 Swift 库,用于解析、检查、生成和转换 Swift 源代码。

文档

您可以在 swiftpackageindex.com 上阅读 SwiftSyntax 的文档。

交互式探索源文件的 SwiftSyntax 树的一个好方法是 https://swift-ast-explorer.com,由 @kishikawakatsumi 开发。

将 SwiftSyntax 添加为依赖项

主干开发 (main)

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 还包括

版本发布

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 上提交错误报告。

Bazel

SwiftSyntax 提供了一个实验性的 Bazel 构建配置,由 Keith Smiley 维护。要使用它,您可以从相关的发布标签中将源代码存档拉取到您的 WORKSPACE 中,并依赖于 BUILD.bazel 文件中您需要的库。每个库还有一个关联的 Library_opt 目标(例如 SwiftSyntax_opt),它强制 SwiftSyntax 始终启用优化进行构建。这可能有助于提高本地运行时性能,但会牺牲可调试性和初始构建时间。请使用 “Bazel” 标签标记任何与 Bazel 配置相关的 问题

许可证

有关更多信息,请参阅 LICENSE