Xcode Source Editor Extension Tools (Xcode 8 Plugins)
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

README.md

Download

Let's Swift!

Language License

xTextHandler has been rewritten in Swift. The Objective-C version can be found in: https://github.com/cyanzhong/xTextHandler-objc

🇨🇳中文介绍

xTextHandler

Xcode Source Editor Extension Tools (Xcode 8 Plugins)

What is it

Xcode Source Editor Extension based tools to improve the text editing experience of Xcode 8 and provide extensions with simple code.

Features

  • Multiline Selections
  • Multiple Extensions
  • Extendable (Example: Dotify)
  • Swift 3.0
  • Clipboard Text Handling (if no selection is made)
  • Regular Expression Matching
  • Error handling
  • Preferences panel
  • JavaScript for text handling

Install from Mac App Store

  1. Clear DrivedData if you built xTextHandler before
  2. Install from: https://itunes.apple.com/app/id1163761963
  3. Open Xcode and select text
  4. Open Editor menu to find extensions
  5. You can set a shortcut (Key-Binding) for each extension
  6. If you got nothing after installed, it must be a bug of XcodeKit, you can try build this project

Setup if there's nothing on the Editor menu

image image

Build

  1. Install Xcode 8
  2. sudo /usr/libexec/xpccachectl in macOS EI Capitan
  3. Sign every targets (app & extensions) using your developer certificate
  4. Build & Run
  5. Choose Xcode 8 to debug (Or restart Xcode)
  6. Select text
  7. Open Editor menu to find extensions
  8. You can set a shortcut (Key-Binding) for each extension

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

Thanks to: vkBeautify

How to write a new Extension

Add definition in Plist:

<dict>
    <key>XCSourceEditorCommandClassName</key>
    <string>aClassName</string>
    <key>XCSourceEditorCommandIdentifier</key>
    <string>test.extension</string>
    <key>XCSourceEditorCommandName</key>
    <string>Test Extension</string>
</dict>

Map handler via commandIdentifier in class:

// Implement your modify strategy using block (you can implement as singleton dict)
// [ "commandIdentifier": handler ]
override func handlers() -> Dictionary<String, xTextModifyHandler> {
    return [
        "test.extension": { text: String -> String in text }
    ]
}

* Handle with regex:

// Override performCommandWithInvocation like that
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)
}

Contacts

Weibo Twitter Email