RegX 是一款非常实用的 Xcode 插件,由中国的 iOS/Mac 开发者 Lex Tang 使用 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 如何工作?
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),
]
)