FastScripts 2.3.2 has been released, and contains a few very significant bug fixes:
- Support for aliases to folders in script hierarchy!
- Improve performance of syncing changes to script folders
- Fix display of keyboard shortcuts on non-US keyboard layout
- Avoid adding menu item separators for empty script folders
This was easily the most difficult bug-fix release I’ve shipped yet. See the first item in the list above? Wonder why there’s a an exclamation point at the end of that sentence? Partly it’s because the feature has been requested for many years, so it’s long overdue. But mainly it’s because finally delivering this functionality puts a cap on what have been some very frustrating and difficult design changes behind the scenes with FastScripts.
All of this work, and all I get is a double-dot bug fix release?
The reason is that although FastScripts is dramatically changed by this fix, I do consider the failure to support folder aliases as a bug. It was an oversight on my part when I first designed FastScripts, and the oversight cost me dearly in the ways I decided to implement it. The short story is that the automatic syncing that goes on between your scripts, the menu display, and your keyboard shortcuts is all sort of magical. It’s a design goal of FastScripts that you should be able to do just about anything you like with your scripts: move them, edit them, delete them, add shortcuts, remove shortcuts, etc., and that FastScripts should not only keep up but keep up correctly, without requiring you to quit and relaunch the application.
Allowing folder aliases just adds to the complexity. For instance, a particular script can now be pointed to by two separate keyboard shortcuts, which reach the script via different paths through the script tree. Sounds academic, but it’s important to distinguish between these two shortcuts, because one might be a global shortcut, and the other application-specific.
The magic comes at the cost of repeated developer forehead-slapping. Enjoy :)
Update: I was sort of holding my breath hoping nothing too terrible would be discovered in this release. Well, so far nothing too terrible, but Takaaki Kato found a little issue: aliases to applications bundles no longer show the application as a launchable icon in the menu. The problem here is aliases to .app bundles are technically aliases to folders. The new feature is working too well! I will get working on a fix for this.
Update 2: Fixed in 2.3.3.