SwiftSyntax

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

注意:SwiftSyntax 仍在开发中,其 API 不保证稳定。它可能会在没有警告的情况下进行更改。

将 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.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 了解更多信息。