Let's Swift!
xTextHandler 已经完全使用 Swift 重写,你可以在这里找到 Objective-C 版本:github.com/cyanzhong/x…
xTextHandler
Xcode Source Editor 插件集
这是什么
基于 Xcode Source Editor Extension 的插件集,提高 Xcode 文本处理的体验,你可以通过简单的几行代码扩展它
特点
- 支持文本多行选择
- 支持多个类型的插件
- 提供易扩展的接口
- 支持剪贴板文本(当没有选择文本,处理剪贴板文本)
- 提供基于正则表达式的匹配
xEncode
- Base64 Encode
- Base64 Decode
- URL Encode
- URL Decode
- Upper Case
- Lower Case
- Escape
- MD5
- SHA1
- SHA256
- QR Code
xRadix
xColor
xSearch
- Translate
- Developer
- StackOverflow
- GitHub
- Dash
- Dictionary
xFormat
感谢:vkBeautify
用法
- 安装 Xcode 8
- 编译运行项目
- 选择 Xcode 8 进行调试
- 选择文本
- 在 Editor 菜单中找到插件
- 你可以给每个插件都设置一个独立的快捷键
- 这个 WWDC Session 你应该会喜欢
如何实现一个新的 Extension
在 Plist 中添加定义:
XCSourceEditorCommandClassName
aClassName
XCSourceEditorCommandIdentifier
test.extension
XCSourceEditorCommandName
Test Extension
在实现类中映射你需要的处理函数:
// 在这个字典里面根据 identifier 映射 block,你可以实现一个字典单例
// [ "commandIdentifier": handler ]
override func handlers() -> Dictionary {
return [
"test.extension": { (text: String) -> (String) in text }
]
}* 处理正则表达式
// 重写这个方法,使用 select 方法传递你需要的正则表达式
override func perform(with invocation: XCSourceEditorCommandInvocation, completionHandler: (NSError?) -> Void) {
if let handler = self.handlers()[invocation.commandIdentifier] {
xTextModifier.select(invocation: invocation, pattern: "regex", handler: handler)
}
completionHandler(nil)
}TODO
- 错误处理
- App 配置面板
- JavaScript 组件
温馨提示
因为目前 Xcode 8.0 beta (8S128d) 是非常不稳定的,你在编译运行项目后可能在 Editor 里面找不到菜单 :(
联系方式
Weibo: @StackOverflowError
Twitter: @cyanapps
Email: log.e@qq.com




