Xcode Source Editor Extension Tools (Xcode 8 Plugins)
Switch branches/tags
Nothing to show
Clone or download
cyan
Latest commit 0d89eb4 Dec 1, 2016
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
GIFs rename gif Jun 19, 2016
Screenshots Upload Screenshots Nov 4, 2016
xColor Bump version to 1.1 Dec 1, 2016
xEncode Bump version to 1.1 Dec 1, 2016
xFormat Bump version to 1.1 Dec 1, 2016
xLibrary Fix text clipping issue Dec 1, 2016
xRadix Bump version to 1.1 Dec 1, 2016
xSearch Bump version to 1.1 Dec 1, 2016
xTextHandler.xcodeproj Access control Nov 22, 2016
xTextHandler Bump version to 1.1 Dec 1, 2016
LICENSE Initial commit Jun 19, 2016
README.md Update README.md Nov 4, 2016
README_CN.md Update README.md Nov 4, 2016
mas.svg Upload mas.svg Oct 17, 2016

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