2.2 Scripting the Script EditorYou can also use Script Editor as the target application for the Apple events sent from your script. If you are like me, you might want to begin your script in a more robust programmer's editor, such as BBEdit. Once you are ready to test and compile the code, the following script in Example 2-4 copies the text from BBEdit, and then pastes it into a new Script Editor window. This applet is for demonstration purposes only and performs marginal error-trapping for the sake of brevity (it only checks to see if BBEdit has an open window). The applet has been developed under Mac OS 9 and uses the open for access, write, and close access scripting-additions commands from the Standard Additions. (Scripting additions are covered in Appendix A.) Presumably, a tweaked version of this script could run on OS X; however, BBEdit had not yet released an OS X version of its text editor at the time of this writing. Example 2-4. An AppleScript That Moves Script Code into a Script Editor File(* this variable will store the BBEdit text and is initialized to a string *) set allCode to "" (* this variable will store the path to the Desktop folder and is initialized to a string *) set deskPath to "" tell application "BBEdit 5.0" try activate set allCode to (window text of document 1) on error errMessage display dialog "Looks like BBEdit does not have any open windows" &¬ return & return & "Error: " & errMessage & return & return &¬ "Exiting applet" return -- this return statement exits the applet's run handler end try end tell (* ask the user for a new filename then create a Script Editor file on the desktop *) tell application "Finder" set frontmost to true display dialog¬ set newScript to (the text returned in the result) as string make file at desktop with properties¬ {name:newScript, file type:"TEXT", creator type:"ToyS"} set deskPath to (desktop as string) end tell (* Use the 'write' scripting addition to write the code to the Script Editor file *) tell application "Script Editor" activate set script_file to (deskPath & newScript) as alias open for access script_file with write permission write allCode to script_file close access script_file open script_file end tell Another solution to some of the limitations of using Script Editor as a text editor (e.g., no line numbering, bookmarks, and very little customization capabilities) is to not use Script Editor! See the footnote at the beginning of this chapter for a short list of alternative AppleScript development environments. Each of these programs, particularly the commercial ones, have many more features than Script Editor and are updated often. |