(Apologies if this questions has been asked before)
I am wondering why in Script Editor opening the AppleScript dictionary of an application also opens the application itself for some applications but not others.
It is the same when running “sdef path/to/SomeApplication.app” in the Terminal. Here I especially don’t want to open the application to open as a side-effect when I am processing the sdef output.
I find this behaviour very annoying and wonder if this can be changed somehow?
Application dictionaries can be static or dynamic. For example, an application that supports scriptable plug-ins will have a dynamic dictionary, because its dictionary will vary depending on the installed plug-ins.
Static dictionaries can be read without launching the app; dynamic ones cannot. It’s something fixed by the develop of an application, not something you can change.
One alternative is to view the dictionaries in Script Debugger, which can cache dictionaries. This of course means you’re responsible for clearing the cache in cases where the dictionary might have changed. (This caching also works in the free Lite mode.) As a bonus, you get a much more flexible and searchable view of dictionaries.
(Disclaimer: I work on Script Debugger.)
Thank you for the explanation, Shane.
To me, It would seem that quite a few developers do not create the dictionaries correctly; I have several applications installed that do not have plugins or have any other obvious reason (at least to me) for a dynamic dictionary. Yet they do.
Make sure you let the developers know. It’s unlikely to change if noone asks.