RegX 是一款非常实用的 Xcode 插件,由中国的 iOS/Mac 开发者 Krunoslav Zaher 使用 Swift 和 Objective-C 编写。其用于对齐特定源代码的元素,使得代码更易读和易理解。你可以在这里获取源码。
$ git clone git@github.com:kzaher/RegX.git
在 Xcode 中构建(构建方案会自动将编译好的插件 bundle 安装到 Xcode 能够找到的地方
重启 Xcode
如果 RegX 没有正常工作,请检查一下启动 Xcode 时 Console.app 中的输出信息,并且找到错误消息。这有可能是因为你的 Xcode 版本的 DVTPlugInCompatibilityUUID 还没有被指定在 >> Info.plist 文件。为了解决该问题,请向 Info.plist 文件中添加 DVTPlugInCompatibilityUUID 条目。
RegX 使用正则表达式对列中的文本进行分组,然后对齐这些列。每个正则表达式分组都会创建一个垂直对齐的列。你可以自己为列指定额外的设置。
所有正则表达式以及针对正则表达式的设置都被定义在名为 Configuration.swift 的文件中。
比如:
static let assignments = "^" + " (?# lvalue GROUP)" + " ([^=]*)" + " (?# = GROUP)" + " (\\=) " + " (?# expression GROUP)" + " ((?:[^/] | (?:/(?!/)) )*)" + " (?# comments GROUP)" + " (//.*)?" + "$" RegularForm(name: "Assignments", // name in Edit -> RegX menu pattern: Patterns.assignments, // grouping regular expression shortcut: String(UnicodeScalar(NSF4FunctionKey)), // shortcut key modifier: NSEventModifierFlags.CommandKeyMask, // shortcut modifier settings: [ // each setting controls start and end padding GroupSettings(nil, 0), // nil means keep existing padding GroupSettings(1, 1), // value means ensure padding GroupSettings(0, 0), GroupSettings(1, 0), ] )