I’m posting this in-progress document publicly as a bit of an experiment. Given that it has been several years since the release of Script Debugger 5, I hope that the appearance of this information will give people confidence that Script Debugger 6’s release is imminent.
Beta testing of Script Debugger 6 is on going and I will update this post as changes are made to the application.
DISCLAIMER: Nothing is final until the software ships and there is always the possibility that a feature may have to be removed or altered in the final product.
1. Code Signing
Script Debugger 6 adopts an always-on approach to code signing. Once you enable code signing for a script by selecting a developer ID, Script Debugger signs your script each time you save it. There is no requirement to go through a special Save or Export operation.
2. Improved Bundled Script Resource Editing
The Script Debugger 6 bundled script resource editor has been expanded. You are now able to edit a bundle ID, copyright string, marketing version string and build number. Script Debugger 6 gives you the option of auto-incrementing build numbers each time a script is saved.
Additionally, you are able to identify a Scripting Definition (SDEF) file from your script’s bundle and to select a developer ID to enable always-on code signing for your script.
You are able to specify a default copyright string which is used when creating new bundled scripts and applications. This default copyright string may containing clipping directives where are expanded at the time a new script document is created.
3. Progress Reporting
AppleScript’s progress reporting properties (introduced in Mac OS X 10.10 (Yosemite) are fully supported in Script Debugger 6. When a script begins reporting progress information by setting any of AppleScript’s progress reporting properties Script Debugger 6 responds by adding a progress bar display above the script’s source:
Script Debugger supports both determinate and indeterminate progress reporting.
Note also that progress information is shown in the window title bar and the script’s document tab. You can elect to dismiss the progress display by clicking the ‘x’ button.
4. Open Quickly
The Open Quickly command has been heavily revised for Script Debugger 6.
4.1 Improved Search Hit Display
The Open Quickly window highlights the portion of the script’s name, description, Finder comment or script source that matches the search term(s) entered.
4.1 Better Searching
Discontiguous search matches are reported (when a single search term is entered), similar to the way Xcode’s Open Quickly command behaves when looking up identifiers and source file names. When multiple search terms are entered the Open Quickly command looks for each term within the script name, description, finder comment and script source.
For example, if you have a series of scripts containing the same ‘writeToFile’ handler, you can locate these scripts by entering the search terms ‘write’, ‘writeToFile’ or ‘writeFile’.
5. Editor Improvements
5.1 Code Folding
While not yet fully complete, Script Debugger 6 at long last provides code folding where you can collapse block structures and comments within your code to reduce clutter when editing.
Improved code completion to include all matching user defined identifiers. Additional improvements to autocompletion are planned to better support AppleScript Objective-C development.
5.3 Identifier Case Changing
Script Debugger 6 performs each script compilation in a new AppleScript compiler instance. This avoids a long standing problem where it was impossible to change the case of a variable, property, handler or script object once the script had been compiled.
5.4 Automatic “it’s” Correction
If you type “it’s ” in code, it will be changed to “its “. This avoids the new “– Grammar Police” comment being inserted by the compiler in 10.11 (El Capitan).
5.5 Terminology Class Avoidance
When using interleaved syntax for handlers, parameters will be escaped with pipe characters if they clash with defined terminology.
5.6 Dash Support
If you have Dash installed, you can turn on support so that option-clicking on a word will look it up in Dash. See … in Preferences.
5.7 Application, Script Library and Framework Picker
Script Debugger 6 offers new powers for placeholders referring to applications, script libraries and AppleScript Objective-C framework names when existing clippings, text substitutions and command completions. Script Debugger offers a menu of running and favourite applications for application placeholders, a menu of installed script library names for script placeholders and a menu of commonly used framework names for framework placeholders.
5.8 …more coming
6. Debugging Improvements
6.1 Non-Persistent Global Variables
A new Persistent Global Variables command has been added to the Script menu which allows you to determine if the value of global variables and properties persists from one run to the next. Note that when Code Signing is enabled, this setting is forced off to match the behaviour of signed scripts.
6.2 AppleScript Objective-C Value Exploring
Script Debugger’s various explorers now support AppleScript Objective-C object references. Instead of seeing AppleScript Objective-C object references shown as «class ocid» id «data optr00000000F0FB3885FC7F0000», Script Debugger 6 shows you details of the object:
As this screen shot illustrates, you are even able to explore into container objects to examine their contents.
6.3 AppleScript Objective-C Value Viewers
Script Debugger 6’s support for AppleScript Objective-C objects extends to displaying “native” viewers for dates and images.
6.4 Breakpoint Dragging
You can move breakpoints by dragging them within the script’s gutter. Additionally, you can delete a breakpoint by dragging it out of the script’s gutter.
6.5 Popover Breakpoint Editor
Double-clicking on a breakpoint in the script’s gutter allows you to edit a breakpoint in a popover window. You can also summon this popover window using the breakpoint contextual menu or the Edit Breakpoint command in the Script menu.
6.6 Remove All Breakpoints
The Remove All Breakpoints command now confirms with you before removing all your breakpoints to avoid accidental breakpoint removal.
6.7 Remove All Disabled Breakpoints
A new Remove All Disabled Breakpoints command has been added to remove all disabled breakpoints. Like the Remove All Breakpoints command, this new command confirms with you before removing all your disabled breakpoints to avoid accidental breakpoint removal.
6.8 Improved Current Statement Highlighting
Like Script Debugger 5, Script Debugger 6 moves the current text selection to the current statement as you step through code or pause at breakpoints. However, Script Debugger 6 does not select the current statement’s trailing newline. This avoids some visibility problems which occurred for some users with Script Debugger 5 when their current statement highlight color preference was too similar to the system text selection color.
7. AppleEvent Logging Improvements
7.1 Added Close and Clear Buttons
Added a Clear and a Close button to the Event Log bar within the script window.
8. Dictionary Improvements
8.1 Open Application Dictionary
When the PrefChooseAppsUsingChooser expert preference is true, the dictionary chooser presented by Script Debugger when opening dictionaries lists scripting additions and script libraries just as the Script Editor does.
8.2 Better Application Scriptability Detection
Script Debugger 6 improves the way it determines if an application is scriptable. For example, Apple’s Preview application is not recognized as scriptable.