Sitrep 是一个 Swift 项目的源代码分析器,它能为您提供代码的高级概览
在幕后,Sitrep 捕获了更多可以利用的信息——您有多少个函数,有多少个注释(常规注释和文档注释),您的枚举有多大,等等。这些目前没有报告,但可能会在未来的版本中报告。它也被编写为库和可执行文件,因此可以根据需要在其他地方集成。
Sitrep 是使用 Apple 的 SwiftSyntax 构建的,这意味着它可以准确有效地解析 Swift 代码。
注意:请确保 Package.swift 中指定的 SwiftSyntax 版本与您当前的 Swift 工具版本匹配。
如果您想安装 Sitrep 命令行工具,您有三个选择:Homebrew、Mint,或者从命令行自己构建它。
使用此命令来安装 Homebrew
brew install twostraws/brew/sitrep
使用 Homebrew 允许您直接从命令行运行 sitrep
。
对于 Mint,使用以下命令安装和运行 Sitrep
mint install twostraws/Sitrep@main
mint run sitrep@main
最后,要自己构建和安装命令行工具,请克隆存储库并运行 make install
git clone https://github.com/twostraws/Sitrep
cd Sitrep
make install
与 Homebrew 选项一样,自己构建命令行工具允许您直接从命令行使用 sitrep
命令。
Sitrep 被实现为一个库,它完成了扫描和报告的所有繁重工作,以及一个处理命令行读写的较小的前端。除了从命令行使用 Sitrep 之外,您还可以在自己的 Swift 代码中使用其库 SitrepCore。
首先,在您的 Package.swift
文件中添加 Sitrep 作为依赖项
let package = Package(
//...
dependencies: [
.package(url: "https://github.com/twostraws/Sitrep", .branch("master"))
],
//...
)
然后在您想要使用它的任何地方 import SitrepCore
。
在没有任何标志的情况下从命令行运行时,Sitrep 将自动扫描您当前目录并将结果打印为文本。要控制此行为,Sitrep 支持几个命令行标志
-c
允许您指定 .sitrep.yml 配置文件的路径(如果存在)。-f
设置输出格式。例如,-f json
启用 JSON 输出。默认行为是文本输出,等同于 -f text
。-i
将打印调试信息,显示如果请求真实扫描 Sitrep 将使用的设置,然后退出。-p
设置 Sitrep 应扫描的路径。默认为您当前的工作目录。-h
打印命令行帮助。您可以通过在要扫描的目录中创建一个 .sitrep.yml 文件来自定义 Sitrep 的行为。这是一个 YAML 文件,允许您为此路径的扫描提供永久选项,尽管目前仅限于一件事:要从扫描中排除的目录名称数组。
例如,如果您想排除 .build 目录和您的测试,您可以创建一个类似于以下的 .sitrep.yml 文件
excluded:
- .build
- Tests
您可以使用 -c
参数要求 Sitrep 使用自定义配置文件,例如 sitrep -c /path/to/.sitrep.yml -p /path/to/swift/project
。
或者,您可以使用 -i
参数让 Sitrep 告诉您在实际分析运行中它将使用的配置选项。这将打印配置信息然后退出。
Sitrep 使用 Swift 5.8 编写。您可以直接构建和运行可执行文件,也可以将 SitrepCore 库集成到您自己的代码中。
要构建 Sitrep,请克隆此存储库并在存储库根目录中打开 Terminal。 然后运行
swift build
swift run sitrep -p ~/path/to/your/project/root
如果您想保留 sitrep
可执行文件的副本,请在运行 swift build
后在 .debug
目录中找到它。
要从命令行运行 Sitrep,只需向其提供要解析的项目目录的名称——它将从那里递归地定位所有 Swift 文件。或者,单独使用 sitrep
将扫描当前目录。
非常欢迎您为此项目提供任何帮助,相信我:这里有很多大大小小的机会,即使只有少量 Swift 经验的人也可以提供帮助。
您可能想要探索的一些建议
请确保编写测试来支持您贡献的任何代码,并且 SwiftLint 不返回任何错误或警告。
Sitrep 由 Paul Hudson 设计和构建,版权所有 © Paul Hudson 2023。Sitrep 在带有运行时库异常的 Apache License v2.0 下获得许可; 有关完整许可证,请参阅 LICENSE 文件。
Sitrep 构建于 Apple 的 SwiftSyntax 库之上,用于解析代码,该库也在带有运行时库异常的 Apache License v2.0 下可用。
Swift、Swift 徽标和 Xcode 是 Apple Inc. 在美国和其他国家/地区注册的商标。
如果您觉得 Sitrep 有用,您可能会觉得我的网站上满是 Swift 教程同样有用:Hacking with Swift。