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