Xcode Source Editor 插件集
基于 Xcode Source Editor Extension 的插件集,提高 Xcode 文本处理的体验,你可以通过简单的几行代码扩展它
- 支持文本多行选择
- 支持多个类型的插件
- 提供易扩展的接口
- 支持剪贴板文本(当没有选择文本,处理剪贴板文本)
- 提供基于正则表达式的匹配
- Base64 Encode
- Base64 Decode
- URL Encode
- URL Decode
- MD5
- Upper Case
- Lower Case
- Escape
- Hex
- Bin
- Oct
- Dec
- Hex
- RGB
- Preview
- Translate
- Developer
- StackOverflow
- GitHub
- Dash
- Dictionary
- JSON
- 安装 Xcode 8
- 编译运行项目
- 选择 Xcode 8 进行调试
- 选择文本
- 在 Editor 菜单中找到插件
- 你可以给每个插件都设置一个独立的快捷键
- 这个 WWDC Session 你应该会喜欢
<dict>
<key>XCSourceEditorCommandClassName</key>
<string>aClassName</string>
<key>XCSourceEditorCommandIdentifier</key>
<string>test.extension</string>
<key>XCSourceEditorCommandName</key>
<string>Test Extension</string>
</dict>
// 在这个字典里面根据 identifier 映射 block,你可以实现一个字典单例
// @{ @"commandIdentifier": handlerBlock }
- (NSDictionary *)handlers {
static NSDictionary *_instance;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_instance = @{
@"test.extension": ^NSString *(NSString *text) { return text; }
};
});
return _instance;
}
// 重写这个方法,使用 select 方法传递你需要的正则表达式
- (void)performCommandWithInvocation:(XCSourceEditorCommandInvocation *)invocation completionHandler:(void (^)(NSError * _Nullable nilOrError))completionHandler {
[xTextModifier select:invocation pattern:@"regex" handler:self.handlers[invocation.commandIdentifier]];
completionHandler(nil);
}
- 更多的格式化策略
- 错误处理
- App 配置面板
- JavaScript 组件
因为目前 Xcode 8.0 beta (8S128d) 是非常不稳定的,你在编译运行项目后可能在 Editor 里面找不到菜单 :(
Weibo: @StackOverflowError
Twitter: @cyanapps
Email: [email protected]