TextWrangler 4.5.4 Release Notes

TextWrangler 4.5.4 is a focused maintenance update which includes fixes for reported issues.

For details on all the new features and enhancements that were offered in TextWrangler 4.5, please see its release notes.

For information on changes made in previous versions, please see the release notes archive.

For detailed information on using any of TextWrangler's features, please refer to the user manual (choose "User Manual" from TextWrangler's Help menu).


TextWrangler 4.5 requires Mac OS X 10.6.8 or later.

PowerPC-based Macs are not supported.


  • This release consists entirely of fixes for reported issues, and contains no new features.


  • The application no longer presents a first-run dialog box when started up with fresh preferences.

  • Items in the "Stationery" application support folder (and in packages, as well) no longer need to have their Finder "Stationery Pad" option turned on in order to appear on the "New with Stationery" menu or in the Stationery palette. Note that in order for stationery to function as such, you must choose it from the "New with Stationery" menu. Opening it using the Finder, "Open" command, or other mechanism will open the actual stationery file for editing.

  • TextWrangler's "Register" dialog box (for non-App Store builds) has been rewritten.


  • Corrected word-o of chance for change in the Expert Preferences help page.

  • TextWrangler will no longer attempt to locate command-line tools using xcrun. On systems where Xcode is not installed, the command-line developer tools have not been configured, or the system just doesn't feel like cooperating, xcrun will become antisocial and put up alerts, log console entries, and engage in other behaviors deemed unacceptable in polite society.

    If for some reason you find it preferable for TextWrangler to use xcrun to locate tools, you can apply the following expert preference to restore the previous behavior:

    defaults write com.barebones.textwrangler AskXcodeForCommandLineTools -bool YES

  • Fixed bug in which super-secret class-specific expert prefs for recent item limits didn't work. (But nobody ever tried to use them, so that's OK.)

  • Fixed bug in which we were using the system's I-beam cursor instead of our own (the latter working much better on dark backgrounds).

  • Made some changes to the math used for computing the line number bar font size, so that the font used for drawing the line numbers is no longer allowed to be inordinately small.

  • Fixed a performance hotspot in the subsystem which determines filename-extension-to-language mappings. This should especially help with Open File by Name precaching performance, but its benefits should be felt throughout the application.

  • Made performance improvements to directory enumeration, to the benefit of Open File by Name, Open Counterpart, and other internal functions.

  • Made performance improvements to search-while-typing in the Open File by Name window.

  • The Open File by Name cache for system includes and frameworks is now built asynchronously when the application starts up, to reduce or avoid delays when opening the "Open File by Name" window for the first time.

  • Fixed bug in which the "Label" term in file filters was not correctly loaded when presenting the editing UI, nor correctly applied when filtering files.

  • File icons in disk browsers are now colored appropriately when the file/folder has a label (according to the file system metadata). This also includes single-tag items when running on 10.9.

  • Fixed crash which would occur when trying to compute a default file name extension and the Languages preferences contained one (or more) custom extension mappings with no extension.

  • There's a new expert pref:

    defaults write com.barebones.textwrangler ShowFullPathsInSearchResults -bool YES

    It's off by default, but turning it on will cause the application to display the full (home-relative) path for files listed in search results windows.

  • If Dash is installed, TextWrangler will now use it for "Find in Reference", in preference to any predefined or custom reference lookup URLs. This can be controlled via an expert preference, on a per-language basis if desired:

    defaults write com.barebones.textwrangler UseDashForReferenceLookups -bool NO # turn off Dash support entirely

    defaults write com.barebones.textwrangler UseDashForReferenceLookups_Ruby -bool NO #turn off Dash support only for Ruby

    You could, if you wanted, turn off Dash support by default and then enable it for specific languages, e.g.

    defaults write com.barebones.textwrangler UseDashForReferenceLookups -bool NO # turn off Dash support entirely

    defaults write com.barebones.textwrangler UseDashForReferenceLookups_C++ -bool YES #turn on Dash support only for C++

  • Added a table of contents and internal jump points to the Expert Preferences help.

  • Made changes to the language module loader to improve application startup performance.

  • Made internal application changes to improve startup performance.

  • We no longer use QuickTime to read image files, instead relying on NSImage for the heavy lifting. In the scripting dictionary, the QuickTime document and QuickTime window classes have been renamed to image document and image window, but their internal codes are unchanged to preserve script compatibility.

  • Use [NSCursor IBeamCursor] to resolve appearance problems on dark backgrounds and Retina displays. For better or worse, it'll now look the same as every other AppKit application.

  • Finder admin data files (Icon\r and .DS_Store) files are now ignored during multi-file search or Text Factory operations.

  • If a file name has colons in it (which is a bad idea anyway), the command-line tool will no longer report that it's an unsupported URL scheme, and try to resolve it as a file reference instead (which may or may not work).

  • Adjusted the default editing preferences so that Auto-Expand Tabs is on by default for YAML.

  • Fixed bug in which changes made to the list of bookmarks in the Setup window were not reflected in the Bookmarks popups in FTP Browsers and the "Save to FTP/SFTP Server" panel.

  • Search results in the "Open File by Name" window now include items that appear on the "Open Recent" menu.

  • Search results in the "Open File by Name" window now include open documents (including untitled ones). Thus, the Open File by Name window can be considered a means for switching between open documents by entering their names, whether or not they've been saved.

  • Removed BBEdit-only scripting terms (for the markup tools) from the TextWrangler scripting dictionary.

  • Fixed bug in which certain non-ASCII characters typed on non-US keyboard layouts couldn't be used as keyboard equivalents for menu commands.

  • In a Markdown document, a list which is immediately preceded by a horizontal rule ---- or a headline is now recognized as such. The documentation says to put blank lines before and after "block elements" (like lists and horizontal rules), but the implementations all support this format. #likeUnscramblingAnEgg

  • Added an ellipsis to "Print Selection" on the File menu, since, well, you know.

  • Fixed bug in which an error would be reported when using "Delete Line" to delete a blank line at the end of the document.

  • Fixed hang which could occur when attempting to drag a selected range of soft wrapped text.

  • Fixed bug in which function ranges were not correctly generated for subroutines and the main program in Fortran 90 files, so that the current function display usually reported "(no symbol selected)".

  • Corrected generation of fold points for functions, subroutines, program, and modules in Fortran source files.

  • The Text Statistics status bar item gets a tooltip with more verbose content.

  • Fixed bug in which the 'Always show full paths in "Open Recent" menu' preference manipulated the wrong setting, so it had no visible effect.

  • Made changes to reduce the energy overhead of text views and results list windows (e.g. search results).

  • Fixed bug in which "Open Selection" in an editing window with a selection range longer than 255 characters would fail.

  • There is now an expert preference which will cause the "Open File by Name" window to close after using the "Open" button:

    defaults write com.barebones.textwrangler CloseOFBNWindowAfterOpeningSelection -bool YES

  • Made changes to reduce drawing overhead in text views during routine operations such as typing or keyboard navigation.

  • Fixed bug in which changing an existing document's name in the process of saving it on an FTP/SFTP server, or using "Save As" to make a local copy of a file opened from an FTP/SFTP server, would fail to update the window's title accordingly.

  • The View -> Text Display menu gets a new option at the end: "Split/Unsplit Text View". If enabled, choosing this command operates like double-clicking on the split bar at the top of a text view's vertical scrollbar. Note that the command is also a convenient place to attach a keyboard equivalent for this purpose.

  • Hex Dump just got made wicked fast. You're welcome.

  • There is a new expert preference: PrecomposeUnicodeWhenPasting. This is useful in situations where you frequently bring in text that contains combining Unicode characters from external sources (such as PDFs generated on other platforms), and need to crush two combining characters into one composed character where possible. This is not a generalized need, but if you run into it often enough, turning on the expert preference will save you some work:

    defaults write com.barebones.textwrangler PrecomposeUnicodeWhenPasting -bool YES

    (Despite the name, the precomposition is done when TextWrangler imports the Clipboard from other applications, not when the paste is actually done.)

    Note that this requires an additional copy of the Clipboard when the application imports the text, and for very large pastes, there may be a noticeable delay while the text gets precomposed. Thus, you should only turn on this setting when you are frequently working with text that contains combining Unicode characters.

  • Worked around a bug in the OS (rdar://problem/15313924) in which files opened from remote file systems would, for some client/server combinations, open empty even though the file was decidedly not empty. This symptom appeared only when running on OS X 10.9.

  • Corrected search metadata in the Preferences window so that searching for "font" no longer returns the Application preferences, where there's no font setting, and now returns results including the Appearance preferences, where there is a font setting.

  • Fixed a bug which caused the application to require more transient memory while opening a file than was strictly necessary. (There is a performance gain that goes with this, though it will be primarily noticeable on giant files.)

  • Made a change to reduce the transient memory requirements for a single-file "Find All" operation when searching the entire document.

  • Made a change to reduce the transient memory requirements of Process Lines Containing, Process Duplicate Lines, and Sort Lines.

  • Introduce a short delay before refreshing menus backed by folders in Application Support/TextWrangler (e.g. Scripts) to allow for cases when items are written into those folders by non-user processes.

  • When closing a document opened from FTP/SFTP, the backing file is now deleted outright rather than moved to the trash.

  • We no longer depend on cooperative file system notifications to detect changes to folders which are used to generate menu content (e.g. stationery, scripts, text filters, and so on). This fixes problems in which certain manipulations in those folders weren't detected unless the application was restarted (or unless some other change occured which did trigger a cooperative notification).

  • Fixed bug in which the "Export" command in the File menu was occasionally mistitled.

  • Fixed bug in which Option-double-click incorrectly triggered a "Find Next (occurrence of selection)".

  • When quitting with no untitled documents open of a given type, the untitled count for that document type is reset at the next application launch.

  • The display font AppleScript property now returns the family name of the display font, rather than the missing value placeholder.

  • Added expert prefs help for FlashBalancePointsWhenNavigating.