TextTool is a powerful text editor with an extensive catalog of built-in text transformations. Developer Craig Pearlman has rewritten the app from the ground up and released it as a new Universal app. With support for URL schemes, JavaScript, and an extension, TextTool’s flexibility has never been greater.
TextTool defies easy categorization. It’s a text editor, but not a place where text lives. You won’t find an archive of past text documents you’ve created. Instead, TextTool is a temporary place to write, edit, and manipulate text that ends up somewhere else.
There are multiple ways to get text into TextTool. The ‘plus’ button on the left-hand side of the toolbar clears the editor when tapped so you can type or paste in text. Tapping and holding the plus button gives you additional options: you can paste text from the clipboard, create or insert a new document using the document picker, or pull in a document from a URL. The one option I would like to see added here is a document provider that lets me edit a document in place instead of editing an exported copy that I have to paste back into the source document.
TextTool also has a share extension for sending text to it from other apps. When you send text, you have the option of opening TextTool immediately or staying in the current app, in which case the text sent will be imported to TextTool the next time you open it. TextTool’s extension also lets you choose between appending or prepending the text sent to your TextTool document. The benefit of this system is that you can select and send text from multiple apps to TextTool appending or prepending it as you go. When you finally open TextTool, all that text will be there in the order you selected.1
TextTool’s writing environment is highly customizable. There are multiple typeface options found under the Options menu, a button represented by four circles. One especially nice touch is that the Type Options view includes a snippet of preview text so you can see exactly how the changes you make will look. Too few apps do this, but it saves a lot of trial and error time when setting up an app. In addition to changing type size and the typefaces, which include some unique to TextTool, the Type Options let you choose from Markdown, JavaScript, JSON, and HTML/XML syntax highlighting. You can also turn line numbers on and off, turn on fixed-width fonts, and pick among four different themes.
A keyboard accessory exposes keys for navigating by character, word, or line, and provides access to characters that are buried in the system keyboard interface. A unique trackpad key on the far left side of the extra keyboard row provides functionality similar to what is available on 3D Touch-enabled iPhones and via a two-finger tap on the iPad, but for all devices whether they support trackpad functionality or not.
It’s important to keep in mind that there is no way to save text in TextTool. That means if you work on a document and force quit the app, or it’s flushed from memory for some other reason, your text will be gone when you return to the app. That would be problematic in most text editors, but TextTool is designed to be a temporary stop for your text where you apply transformations to text that is bound for another destination.
It’s those text transformation actions that are at the heart of TextTool’s functionality. There are 27 actions in total, including the ability to change case, add list markers, indent, and outdent, join and split lines of text, sort lines of text, eliminate white space, URL encode and decode text, search and replace, and much more. Transformation actions are accessed from the menu button in the top right-hand corner of TextTool’s editor. Many include several options for tweaking how the transformation is applied, so you can adjust them to suit your specific needs. Text manipulation can be performed on all of the text in the editor or just the portion that is selected. Finally, if you need a transformation that isn’t already available in TextTool, you can create your own. TexTool is built on a JavaScript engine, and the app’s support pages document the modules that can be used to create scripts that run within the app.
TextTool also includes a new robust URL scheme. Everything available in the Options menu can be triggered with the URL scheme. In addition, there are parameters for positioning the cursor and selecting text, which can be combined with the transform parameter to apply transformation actions on a range of text. The scope and depth of TextTool’s URL scheme make it a perfect intermediary for manipulating text that starts in one app and ends up in another.
When you are finished with a document, tapping the share button opens the system share sheet, so you can send a document to another app you have installed. There is also a special Preview action extension that renders Markdown as HTML using one of several themes, to which more can be added. From preview mode, you can tap another share button to share the rendered HTML version of your Markdown document.
I like the redesign of TextTool. The update feels more like a traditional text editor with the customizations that are possible. Text transformations are available in other apps too, but what makes TextTool outstanding is the breadth, depth, and customizability of its tools. I don’t need them often, but when I have specific text transformation needs, I know TextTool is most likely to be able to adapt to handle them, which is why I’ve kept it on my iOS devices ever since version 1.0 was released.
TextTool is available on the App Store for $4.99. A bundle will be available as soon as it is approved by Apple for $4.99. That will allow existing customers to use the App Store’s ‘Complete My Bundle’ feature and only pay the difference between the price of TextTool 2.0 what they paid for TextTool 1.0, effectively providing existing customers a free upgrade if they paid $4.99 for TextTool 1.0.
- Because TextTool only supports text, you cannot send it URLs, even as text, so it cannot serve as a substitute for creating lists of links as you might do in Apple’s Notes app or Bear. ↩︎