### Changes

#### Version 7.4.3

IMPROVEMENTS

- Additional improvements to support OS X Yosemite.

BUG FIXES

- Addressed a crashing issue when trying to display text that contains certain control characters.

#### Version 7.4.2

IMPROVEMENTS

- General improvements made to address several potential crashes some users may have encountered.

BUG FIXES

- Fixed: Batch File Processing (incorrectly) indicates an error reading RTF files, even though the RTF files are correctly processed.
- Fixed: Possible crash at launch under OS X Yosemite.

#### Version 7.4.1

BUG FIXES

- Fixed: Potential crashing issue at launch could occur under some circumstances.

#### Version 7.4.0

IMPROVEMENTS

- Improved application stability.
- Added crash reporting.
- Preperation for security changes in future OS X releases.

BUG FIXES

- Fixed: Remove Duplicate Lines was too aggressive, removing all the blank lines (because technically once it finds a blank line, all others are duplicate). Use custom cleaner to apply "Remove Duplicate Lines" and then apply "Multiple Returns to 1 Return" if you need to remove blank lines.
- Fixed: Addressed a potential crashing issue that may occur in future releases of OS.
- Fixed: Addressed crashing issues when used with PopClip.

#### Version 7.3.8

IMPROVEMENTS

- Added menu item "Reveal Application Support Folder" to Help Menu.
- Renamed "Send Feedback" to "Contact Support" in Help Menu.
- Release notes window only shows "rate it" link(s) for either direct download or MAS release.

BUG FIXES

- Fixed: The "Set StrikeThrough Attributes" action did not properly change the underlying text.
- Fixed: Contextual menu with all items disabled could come up when control-clicking in parts of the custom cleaner list. Note: this was a remnant of previous interface and was replaced by the buttons at the bottom of the list.
- Fixed: Some issues related to OS X Mavericks

#### Version 7.3.7

IMPROVEMENTS

- TextSoap now offers to move itself to /Applications folder if is launched from another location (direct-download only).

BUG FIXES

- Fixed: Text labels in custom cleaner actions could overwrite buttons when action was collapsed.
- Fixed: When working on plain text document/workspace, applying a cleaner which changed attributes could sometimes lead to rich text result within a plain text document.
- Fixed: Ambiguity between custom cleaner action "Rewrap Text" and built-in cleaner "Rewrap Text". Action was renamed "Custom Text Wrap".
- Fixed: UTI issue that could prevent TextSoap from opening and installing a custom cleaner dragged onto its icon.
- Fixed: Extract Text action would sometimes use entire match, even when a capture group was specified.
- Fixed: Extract Middle Characters action did not properly use the specified starting position.
- Fixed: Descriptions for normalize date cleaners were incorrect.

#### Version 7.3.6

IMPROVEMENTS

- Insert special character(s) menu button for find & replace.
- Insert menu when editing regular expression replace fields.
- If focus is not on find field when insert special character menu item is selected, focus is brought to appropriate find field and text is appended to that field.
- Added light shadow on colored text of cleaner palette to make it easier to see when highlighted.
- Improved palette display option in Appearance preference.
- Customize Window no longer resizes when switching between tabs.

#### Version 7.3.5

BUG FIXES

- Fixed: Improved compatibility with OS X 10.8.2.
- Fixed: Launching TextSoap by dropping document on app icon could cause clipboard workspace cleaners not to display.

#### Version 7.3.4

BUG FIXES

- Fixed: Set Background Color action color picker did not accurately reflect the default color (white) when created.
- Fixed: App could hang or exhibit other weird behavior in some scenarios under OS X 10.6.8.
- Fixed: QuickLook previews were not displaying under OS X 10.8.
- Fixed: QuickLook did not show correct thumbnail for the supported cleaner files.
- Fixed: Display issues with dragged actions within the custom cleaner editor.

#### Version 7.3.3

BUG FIXES

- Fixed: Some built-in cleaners exhibited strange behavior in 7.3.2.

#### Version 7.3.2

BUG FIXES

- Fixed: When using \uHHHH to specify Unicode in regex replacement character, app could throw exception.
- Fixed: Title case would not work correctly with words that contained diacriticals.
- Fixed: Custom OS X Services were sometimes not correctly updated when custom cleaners or groups were changed.
- Fixed: Issues with individually importing older custom cleaners (from version 5 or 6).
- Fixed: In some cases, older database was not properly converted.
- Fixed: App could crash when user deleted last custom cleaner and then created a new custom cleaner.

#### Version 7.3.1

NEW FEATURES

- Textsoap 7 Agent

  - Lightweight (General Preferences option to launch at login)
  - Transparently will silently launch main app when needed.
  - Processes OS X Services requests.
  - Scriptable - supports same scripting commands as main app did. Replace "textsoap7" with"textsoap7agent" in your tell statements.

- New cleaners added to change text alignment.

  - Paragraph Ruler: Left Aligned Text
  - Paragraph Ruler: Right Aligned Text
  - Paragraph Ruler: Centered Text
  - Paragraph Ruler: Justified Text

- New cleaner - HTML Tag: Underline cleaner.

- New cleaner - HTML Tag: Horizontal Rule cleaner.
- New built-in group for paragraph ruler related cleaners.
- New built-in group "Basics" provides default set of cleaners.

IMPROVEMENTS

- High-res support for new MacBook Pro retina displays
- Built-in "Standard" group now also includes custom cleaners.
- Search history button icon updated to match new preference icon change.
- Renamed "Apply Default Paragraph Spacing" cleaner to "Paragraph Ruler: Default Spacing."

BUG FIXES

- Fixed: User-specified extensions (for text files) were sometimes ignored when using the Batch File Cleaner window.
- Fixed: Showing cleaner statistics could crash if no text had ever been processed.
- Fixed: Regex Lab would ignore some of the regex options set by user.
- Fixed: Direct download version could still silently check for updates even if the option was disabled.
- Fixed: Issues related to using subroutines within a custom cleaner.
- Fixed: Unexpected runtime error during certain interactive find and replace actions.
- Fixed: Interactive Replace button in find sidebar did not correctly support replacement case transformations.
- Fixed: Find Next/Previous could fail to find next/previous match when using certain regular expressions.
- Fixed: Replace/Extend options in Title Case action were not always selectable, forcing the default value of replace.
- Fixed: Potential crash when trying to delete a Saved Search item in preferences.
- Fixed: Remove Extra Returns cleaner returns to being an alias to Multiple Returns to 2 Returns cleaner.
- Fixed: Multiple Returns to 1 Return & Multiple Returns to 2 Returns cleaner remove extraneous returns at the top of the selected text.

- Fixed: Literal characters were incorrectly processed in replacement string handling.

- Fixed: Launch TextSoap Menu at login would not add TextSoap Menu to the LoginItems

- Fixed: Colors in custom groups were not displaying in TextSoap Menu or the global palette.

DIRECT DOWNLOAD SPECIFIC

The following changes are specific to direct download builds.

- Signed with Developer ID.
- TextSoap Menu, replaces Universal Menu feature
  - Now a separate app (bundled)
  - Direct Download users can access it through TextSoap's app menu.
  - Improvements over previous Universal Menu functionality:
    - Customizable icon
    - Display style: single group or all groups.
    - Added Hot Key support to toggle global palette.
    - Global palette will now remember its previous position between restarts.
    - Global palette selected group is now synced with Universal Menu.
    - Expanded number of Hot Keys user can define for Universal Menu options.
- Fixed: If ~/Library/Services/ folder did not exist, folder is now created when attempting to instal custom OS X Services.

#### Version 7.2

IMPROVEMENTS

- Additional polish when opening, closing, selecting sidebar tabs.
- Added iWorld,iPhone,iPad,iMac to common tech names capitalization cleaner.

- Major preferences rework

  - Renamed Universal to "Universal Menu", with new icon.
  - Renamed Grep to "Saved Searches", with new icon.
  - Moved Universal Menu tab to more prominent placement.
  - Moved Clipboard Workspace & Extras options into General tab.
  - Install Universal Menu in Menubar moved to General tab.
  - Agent mode option also moved to General tab.

- Markdown with Preview is now handled internally instead of opening Safari for the preview.

- Better handling of dropping Automator workflows onto TextSoap window.
- Better regular expression replacement string handling.
- Shows amount of text cleaned in about box.
- Usage statistics option added to about window to show specific cleaners applied and how often.

BUG FIXES

- Fixed: When closing find or regex lab sidebar, cursor focus would not return to text editor.
- Fixed: Text field heights in find & replace custom cleaner action could get incorrect value.
- Fixed: Under certain conditions, find sidebar tab would default to regular expression instead of text string searches.
- Fixed: Running an automator workflow from within a custom cleaner could cause cleaner to crash.
- Fixed: Could not properly replace match when also using look-ahead or look-behind groups in a regular expression.
- Fixed: Regression issue that could cause some html entities to incorrectly evaluated.
- Fixed: Conditional "If Text Matches" did not always respect the match capture group option.
- Fixed: Action list "cleaners" in cleaner editor would not update correctly when new cleaners were added.
- Fixed: Word count and invisibles properly update when document is opened and preferences are set.

#### Version 7.1

NEW FEATURES

- Custom cleaner preview lets users specify which text source to use for the preview.
- Global Hot Key options to display current group or a specified group.
- Global Hot Key options to automatically invoke a cleaner on the given text.
- Clean the existing contents of clipboard via TextSoap Universal Menu.
  - Hold down Command-key modifier before selecting menu.
- Leave cleaned results of TextSoap Universal Menu action on clipboard (vs. of auto-pasting).
  - Hold down Shift-key modifier before selecting menu.
- Conditional Results Modifiers allows users to modify the results of a conditional action.
  - Invert the found matches.
  - Limit the number of matches.
  - Skip past specified number of matches.
- New cleaner: Capitalize Common Tech Names will correctly capitalize common tech names like Xcode, AirDrop and more.

IMPROVEMENTS

- TextSoap Universal options are now in a separate preference tab. The new tab allows setting up hot keys for TextSoap Universal Menu.
- Adding a conditional action now also adds an end conditional action when dropped in the action list.
- Added new "For Each Line" conditional shortcut. Creates a standard If Text Matches conditional action.
- "Extract HTML" cleaner now removes text within <script> and <style> tags from HTML source.
- Better layout handling in custom cleaner editor.
- Faster launch sequence for app.
- Uses a new library for processing Markdown text with better performance.
- Custom cleaner subroutine management now uses a popover interface.
- Action menu item to select all items associated with the current conditional statement.
- Indicator on actions to show when a comment is associated with it.
- Comment indicator now displays comment as a tooltip.

BUG FIXES

- Fixed: Sort Lines built-in cleaners did not work correctly when initated via OS X Services.
- Fixed: "Remove Extra Returns" description updated to reflect being based on 'Multiple Returns to 1 Return'.
- Fixed: Hang in Find & Regex Lab tabs when an expression matched the newline character individually.
- Fixed: Runtime error that when a conditional came up with empty matches.
- Fixed: Converting lines to HTML lists would incorrectly handle blank lines.
- Fixed: Incorrect tooltip for "Show in Menubar" preference item.
- Fixed: "Remove Extra Spaces" did not remove spaces at the beginning of a line.
- Fixed: Separator in Groups menu was displayed when no custom groups defined.
- Fixed: Regex replace string processing of \ was not correctly handled.
- Fixed: Capture group option in extract text action was ignored.
- Fixed: Changing color in an action would change the text color of selected text in window beneath the custom cleaner editor.

#### Version 7.0.3

NEW FEATURES

- Added support for full screen editing of documents and clipboard workspace under Mac OS X Lion.
- Added support for autosave and Versions under Mac OS X Lion.

IMPROVEMENTS

- Automator actions now launch TextSoap as an agent if it is not already running.

BUG FIXES

- Automator action "Clean Text Content" would sometimes not use the cleaner specified by the user.

#### Version 7.0.2

NEW FEATURES

- New cleaner: "Convert to Plain Text" strips all attributes from rich text.

IMPROVEMENTS

- Added Quit menu option to TextSoap Universal Menu.
- Added link to Mac App Store page, and other favorite listing sites for reviews and ratings of app.
- "Remove Styles from Text" cleaner now performs same action as "Convert to Plain Text" cleaner.

BUG FIXES

- TextSoap Universal Menu now works in apps with a non-typical menu structure, like Nisus Writer Pro 2.0.
- Under some conditions, General Preferences icon would sometimes not display in Preference window.
- When used in Agent-mode, app would auto-quit too soon. Now waits a more reasonable amount of time before auto-quitting.

#### Version 7.0.1

NEW FEATURES

- New cleaner: Capitalize Sentences (Alt) capitalizes first character of a sentence without changing case of any other words in sentence.

IMPROVEMENTS

- If enabled in advanced preferences, app can launch as agent (invisible) when run from TextSoap Universal Menu.
- More descriptive error messages for batch file cleaning log.
- Set Default Spacing cleaner now completely resets all line spacing for a paragraph, including before & after spacing, line height multiplier and minimum line height.

BUG FIXES

- Changing Line Endings for a plain text document now correctly updates document setting.
- Insert Text action now correctly inserts the specified text.
- When importing a TextSoap 6 cleaner with regex find action, multiline option is now set.
- Selecting Open TextSoap menu item from TextSoap Universal Menu now works in all instances.
- Cleaner descriptions now correctly show for cleaners via tooltips.
- Make Paragraphs cleaner now works correctly when paragraphs start with numbers.
- Custom service items no longer have the "cannot run" overlay in Finder or the Services menu.
- Text fields in the Find and Replace custom cleaner action no long require pressing tab or enter for value changes to be noticed.
- Can now properly convert documents between plain and rich text using window popup.
- Can now properly change the line endings on plain text documents using window popup.

#### Version 7.0

#### Overview

- New and improved user interface throughout the application.
- New integration option (TextSoap Universal) provides TextSoap in most applications.
- New ICU regular expression engine designed for unicode.
- New regular expression lab simplifies building and testing your regular expressions with your sample text.
- New conditional actions in custom cleaners simplify text and attribute changes to specific portions of text.
- New custom cleaner actions to control setting and removing of more attributes such as underline, strikethrough, foreground color, background color, superscript, subscript, attachments.
- Improved international text support in smart quoting, date handling.
- New Batch File cleaning window provides batch file cleaning without the need of Automator. Although Automator is still supported.

#### General

- 64-bit support added.

- New regular expression engine. Now uses ICU-based regular expressions. ICU (International Components for Unicode) is unicode savvy including unicode properties. Note syntax change: when replacing use $0 instead of \0, $1 instead of \1, etc. Older cleaners that are imported are automatically converted to the new syntax.

- You can now apply cleaners to non-contiguously selected text within TextSoap.

- New search history added to remember your last 25 searches, whether working with the interactive find or a custom cleaner find action.

- New grep menu allows you to define and use common regular expressions through the application.

- New "Clean Text with TextSoap" service menu item. Brings up dialog to pick which cleaner to use. This is a built-in service item.

#### New Cleaners Add to Library

- Remove Duplicate Lines (without first sorting)
- Convert HTML Source to Rich Text
- Unsort Lines (randomizes lines)
- Normalize dates to System's short format
- Normalize dates to System's medium format
- Normalize dates to System's long format
- Normalize dates to System's full format

You can use system's date preferences to define short/medium/long/full date format.

#### Improved Cleaners

- Convert URLs to Hyperlinks has better URL matching
- Extract URLs by Replacing/Appending has better URL matching
- Smarten Quotes cleaner now uses system text preferences for smart quotes.

#### New and Improved Actions

- Resizeable Actions - Many actions are now sized to use a minimum amount of space by default, but are resizeable, given you more room to work in that action if needed.

- Find and Replace Action

  - Action is resizeable.
  - Find history button added
  - Grep menu button added
  - Multiline option for regex finds

- Bulk Find & Replace Action

  - Action is resizeable
  - Columns widths are resizeable
  - Easier movement in table with tab/shift-tab/return keys
  - Copy/Paste tab-delimmited text from Find/Replace table
  - Sort on columns
  - Support for drag-n-drop to arrange items within the action.

- Bulk Find Text and Associate URL - lets you specify a URL for the given text as a hyperlink.

- Adjust Font Size - action to relatively change font size independent of other font attributes.
- Set Text Color - action to change foreground color of text.
- Set Background Color - action to change background color of text.
- Conditional action to apply actions on text matching a specified font style.
- Conditional action to apply actions on text matching an find expression.
  - with regex, you can also specify the capture group allowing you to perform these actions on a subset of the matched expression.
- Conditional action to apply actions on text has specific attributes associated with it.

#### TextSoap Universal

TextSoap's application specific plug-ins & scripts (like those for BBEdit, Eudora, Coda, Entourage) were replaced with a system-wide menu bar access to TextSoap cleaners.

Once the feature is enabled (in General Preferences), it allows you to place the cursor in virtually any text editing field and clean either the entire contents of the text. Or just apply the cleaner to selected text.

TextSoap Universal also supports a global palette to apply cleaners to text in other applications.

#### New User Experience

TextSoap 7 adopts a more streamlined appearance.

In text editing windows, the lower left provides a popup that toggles between rich text & plain text. When using plain text, the popup also includes which line-endings to you.

To the right of the text, there are three available panes:

- Cleaners

  - You can select the group of cleaners to display.
  - Long items will now wrap when necessary.
  - You can sort the Library list alphabetically.
  - Filtering now combines the separated words with an AND to continually reduce the list size.

- Find and Replace Pane

  - Bigger text entry areas for more complex expressions
  - New regex options:
    - Multi-line searches (?m)
    - Dot Matches All (?s)
    - Use Unicode Words (?w)
    - Allow comments (?x)
  - Search History remembers the last 25 searches
  - Grep Menu allows you to recall common grep strings.
  - Find All - shows list of all Matches

- Regex Lab

Regex Lab is similar to the Find and Replace Pane, but is designed to be more interactive. As you type in your regular expression, the text result is displayed.

The customization windows have been combined into a single window allow you to edit custom cleaners, groups and the MyScrub cleaner within a single window.

#### Custom Cleaner Editor

- Custom Cleaner list can now be filtered to quickly find a specific cleaner.
- Simpler sorting. Click sort icon to sort cleaners alphabetically. Option-click to sort in reverse alphabetical order.
- Action layous were redesigned to use a minimum amount of space by default. Many actions can also be resized to provide a bigger work area.
- Find and Replace Action is now resizeable.
- Find and Replace also supports a find history & grep list popup menus.

- Bulk Find and Replace action is resizable.

  - Column widths are resizeable
  - Better keyboard navigation to move within the table
  - Supports copying to the clipboard, tab-delimited text
  - Supports pasting in (from clipboard) tab-delimited text
  - Columns are sortable
  - Support for dragging items within a table.

- New Find Text and associate URL action makes it easier to set a hyperlink to various text. For example, you can find "Apple" and associated the link "http://www.apple.com" -- any instances of "Apple" will have a hyperlink added to the text.

- Find and Replace Text using Template allows you to link up to three separate values and associate it with a key value. For example, you might want to use a company name as the key value, the company's URL as Value 1 and a perhaps a flag to indicate whether the link should be opened in a new window. Then you might write out the html: {key}
- New action to set Underline attributes, including type, pattern and color of underline.
- New action to set Strikethrough attributes, type, pattern and color of strikethrough.

- New action to set Super/Subscript of text

- The more complex set style action is now broken up into smaller pieces

  - Set Font action based on Font family, also shows a preview
  - Set Text color action
  - Adjust font size

- Set background color

- Remove character attribute allows removing a variety of attributes specified within the action.
- Subroutines moved to a popup menu. The popup menu enables selecting a different subroutine, adding, renaming, and removing subroutines.
- Cleaner properties are now provided in a popup window.

- Compound actions (Find Text and Apply Style, Find Style and Apply cleaner, etc) have been replaced by condtionals. There are currently three conditionals: "If Text Matches," "If Font Matches," "If Text Has Attribute". The new "End Conditional" marks the end of a conditional block.

  When a conditional block is encountered. TextSoap looks for text that matches the condition specified. If it finds any text, it then applies the list of actions within the block to that text.

  The End Conditional marks the end of a block of statements.

- Comments are now handled with a single comment area at the bottom of the action list.

- Simpler way to add an apply custom cleaner action. All cleaners are now also listed in the action source list of the custom cleaner editor. Just drag a custom cleaner item to create a basic "apply this cleaner" action. Note: If you need to be able to change the cleaner within the action, you can continue to use the "Apply Cleaner" action.

#### Batch Cleaning Interface

- Interactive batch cleaning option is now available. Select File > Batch Cleaning to display. Provides same functionality as the Automator action "Clean Text Files."

#### Misc

- \v (for veritcal tab) is now supported in textual finds.
- Non-metacharacters that follow \ in textual finds are converted to standard characters.
- Online documentation on new regular expression syntax is found under the Help menu.
- Agent scripting is replaced by directly scripting the main application. See online help.
- Improvements in invisible characters display
- End of Line options moved into "Plain/Rich Text" popup menu button. Only displays EOL options when clipboard text or document is plain text.
- Growl 1.2 support added