Swift 编译器插件消息处理 509.1.0

Swift 编译器插件消息处理 509.1.0

SwiftyLab 维护。



 
依赖项
SwiftDiagnostics= 509.1.0
SwiftOperators= 509.1.0
SwiftParser= 509.1.0
SwiftSyntaxLib= 509.1.0
SwiftSyntaxMacros= 509.1.0
SwiftSyntaxMacroExpansion= 509.1.0
 

SwiftSyntax

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

文档

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

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

将 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
  • 用于将包含运算符的SwiftSyntax树进行折叠的SwiftOperators
  • 用于以结果构建器风格的界面生成Swift代码的SwiftSyntaxBuilder
  • 用于提供语法宏支持的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"),
    ]),
  ]
)

<#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以获取更多信息。