Swift 包,用于解析和评估 glob 模式
注意
请查看这个功能更强大的替代品: https://github.com/davbeck/swift-glob
可以使用 C 函数 fnmatch
匹配 Glob 模式,并且可以使用 glob
定位文件,那么为什么还要创建这个库呢?
实际上,许多系统使用的 "glob" 模式并不遵循 glob 的实际语法规则。最常见的是分组,它完全由 shell 处理。我在许多地方都遇到过这种情况,特别是 Language Server Protocol。我不确定这是否只是一个疏忽,但这些模式实际上无法使用 C 库函数正常工作。
这个库提供了解析和评估功能,使其比依赖 glob
+ shell 扩展更有效。它也更方便。
支持的模式
strict
: 提供与 fnmatch
相同的结果grouping
: 具有 {}
分组的模式 (由 LSP 使用)editorconfig
: 具有 {}
分组和 {}
范围的模式 (参见 editorconfig spec)let pattern = Glob.pattern("file.{js,py}", mode: .grouping)
let result = pattern.match("file.js")
我更喜欢协作,并且如果您有类似的项目,我很乐意找到合作的方式。
我更喜欢用制表符进行缩进,以提高可访问性。但是,我更希望您使用您想要的系统并提出 PR,而不是因为空格而犹豫。
我很乐意收到您的来信! 通过 issue 或 pull request 与我联系。
通过参与此项目,您同意遵守 贡献者行为准则。