DekGenius.com
Team LiB   Previous Section   Next Section

2.2 Scripting the Script Editor

You 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.

    Team LiB   Previous Section   Next Section