Skip to content

Latest commit

 

History

History
131 lines (115 loc) · 4.27 KB

README_CN.md

File metadata and controls

131 lines (115 loc) · 4.27 KB

下载

Let's Swift!

Language License

xTextHandler 已经完全使用 Swift 重写,你可以在这里找到 Objective-C 版本:https://github.com/cyanzhong/xTextHandler-objc

xTextHandler

Xcode Source Editor 插件集

这是什么

基于 Xcode Source Editor Extension 的插件集,提高 Xcode 8 的文本处理的体验,你可以通过简单的几行代码扩展它

特点

  • 支持文本多行选择
  • 支持多个类型的插件
  • 易扩展(示例:Dotify
  • Swift 3.0
  • 支持剪贴板文本(当没有选择文本,处理剪贴板文本)
  • 提供基于正则表达式的匹配
  • 错误处理
  • App 配置面板
  • JavaScript 组件

下载安装

  1. 如果之前编译过 xTextHandler,清除 DrivedData
  2. 在这里安装:https://itunes.apple.com/app/id1163761963
  3. 打开 Xcode 并选择文本
  4. Editor 菜单中找到插件
  5. 你可以给每个插件都设置一个独立的快捷键
  6. 在安装之后你可能找不到菜单,应该是 XcodeKit 的一个 bug,你可以尝试编译安装

插件设置

image image

编译安装

  1. 安装 Xcode 8
  2. macOS EI Capitan 上面需要执行 sudo /usr/libexec/xpccachectl
  3. 对每一个 target 进行签名,包括 app 和 extensions
  4. 编译运行项目
  5. 选择 Xcode 8 进行调试(或者重启 Xcode)
  6. 选择文本
  7. Editor 菜单中找到插件
  8. 你可以给每个插件都设置一个独立的快捷键

xEncode

image

  • Base64 Encode
  • Base64 Decode
  • URL Encode
  • URL Decode
  • Upper Case
  • Lower Case
  • Escape
  • MD5
  • SHA1
  • SHA256
  • QR Code

xRadix

image

  • Hex
  • Bin
  • Oct
  • Dec

xColor

image

  • Hex
  • RGB
  • Preview

xSearch

image

  • Google
  • Translate
  • Developer
  • StackOverflow
  • GitHub
  • Dash
  • Dictionary

xFormat

image

  • JSON
  • XML
  • CSS
  • SQL

感谢:vkBeautify

如何实现一个新的 Extension

Plist 中添加定义:

<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": handler ]
override func handlers() -> Dictionary<String, xTextModifyHandler> {
    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)
}

联系方式

Weibo Twitter Email