├── Commands ├── AppleScript Help.tmCommand ├── AppleScript Language Guide.tmCommand ├── AppleScript Reference Library.tmCommand ├── AppleScript Release Notes.tmCommand ├── AppleScript Resources.tmCommand ├── AppleScript Terminology : Event Codes.tmCommand ├── Compile in Script Editor.tmCommand ├── Compile.tmCommand ├── Continue Line (¬).tmCommand ├── Copy URL Encoded Script.tmCommand ├── Decompile AppleScript.tmCommand ├── Documentation for Application.tmCommand ├── End Block.tmCommand ├── Mac OS X Automation Resources.tmCommand ├── New Function.tmCommand ├── Run.tmCommand ├── Toggle AppleScript:osascript.tmCommand └── Toggle string:Unicode text.tmCommand ├── Preferences ├── Comments.tmPreferences ├── Completion: Application Name.tmPreferences ├── Folding.tmPreferences ├── Indent.tmPreferences └── Smart Typing Pairs.tmPreferences ├── README.mdown ├── Snippets ├── #!:usr:bin:osascript.tmSnippet ├── Alert.tmSnippet ├── Check that UI Scripting is Enabled.tmSnippet ├── Choose Application(s).tmSnippet ├── Choose Color.tmSnippet ├── Choose File(s).tmSnippet ├── Choose Folder(s).tmSnippet ├── Choose Item from List.tmSnippet ├── Choose New File.tmSnippet ├── Choose URL.tmSnippet ├── OK.tmSnippet ├── OK:Cancel.tmSnippet ├── OK:Cancel:Other.tmSnippet ├── Select Menu Item with UI Scripting.tmSnippet ├── Split:Join Helper Functions.tmSnippet ├── Text Field.tmSnippet ├── change text item delimiters.tmSnippet ├── considering … end.tmSnippet ├── copy … to ….tmSnippet ├── do shell script ….tmSnippet ├── duplicate … to ….tmSnippet ├── if … end.tmSnippet ├── if … then ….tmSnippet ├── ignoring … end.tmSnippet ├── prop parent ….tmSnippet ├── prop ….tmSnippet ├── repeat [times] … end.tmSnippet ├── repeat until ___ end.tmSnippet ├── repeat while ___ end.tmSnippet ├── repeat with ___ from ___ end.tmSnippet ├── repeat with ___ in ___ end.tmSnippet ├── script … end.tmSnippet ├── set … to ….tmSnippet ├── tell [app] … end.tmSnippet ├── try … on error … end.tmSnippet ├── using terms from [app] … end.tmSnippet ├── with timeout … end.tmSnippet └── with transaction … end.tmSnippet ├── Syntaxes └── AppleScript.tmLanguage ├── Templates ├── Droplet │ ├── info.plist │ └── template.applescript ├── Folder Action Script │ ├── info.plist │ └── template.applescript ├── Quicksilver Action │ ├── info.plist │ └── template.applescript ├── Script with Arguments │ ├── info.plist │ └── template.applescript └── Script │ ├── info.plist │ └── template.applescript ├── Tests └── Indent.applescript └── info.plist /Commands/AppleScript Help.tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | #!/bin/bash 9 | 10 | OPEN=$(command -v open 2>/dev/null) 11 | 12 | if [ -n "${OPEN}" ]; then 13 | "${OPEN}" "help:openbook='com.apple.AppleScript.help'" >/dev/null 2>&1 14 | else 15 | echo "unable to find command 'open'" 16 | fi 17 | 18 | fallbackInput 19 | scope 20 | input 21 | none 22 | keyEquivalent 23 | ^h 24 | name 25 | AppleScript Help 26 | outputFormat 27 | text 28 | outputLocation 29 | toolTip 30 | scope 31 | source.applescript 32 | uuid 33 | 2061AB22-C557-4C68-919E-9A8815577987 34 | 35 | 36 | -------------------------------------------------------------------------------- /Commands/AppleScript Language Guide.tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | #!/bin/bash 9 | 10 | # If there is a local copy of the Applescript 11 | # documentation, open it. Otherwise, use the 12 | # online copy. 13 | 14 | if [ -d "/Developer/ADC Reference Library/documentation/AppleScript/Conceptual/AppleScriptLangGuide/" ]; then 15 | open "file:///Developer/ADC%20Reference%20Library/documentation/AppleScript/Conceptual/AppleScriptLangGuide/index.html" 16 | else 17 | open "http://developer.apple.com/documentation/AppleScript/Conceptual/AppleScriptLangGuide/" 18 | fi 19 | 20 | fallbackInput 21 | scope 22 | input 23 | none 24 | keyEquivalent 25 | ^h 26 | name 27 | AppleScript Language Guide 28 | output 29 | discard 30 | scope 31 | source.applescript 32 | uuid 33 | C744043F-79AE-47D7-9E7A-F476F44437AC 34 | 35 | 36 | -------------------------------------------------------------------------------- /Commands/AppleScript Reference Library.tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | #!/bin/bash 9 | 10 | # The AppleScript Reference Library at the Apple Developer Connection. 11 | 12 | open "https://developer.apple.com/referencelibrary/ScriptingAutomation/idxAppleScript-date.html" 13 | 14 | fallbackInput 15 | scope 16 | input 17 | none 18 | keyEquivalent 19 | ^h 20 | name 21 | AppleScript Reference Library 22 | output 23 | discard 24 | scope 25 | source.applescript 26 | uuid 27 | 1A8892FB-D466-492D-A35C-DFF2C6168174 28 | 29 | 30 | -------------------------------------------------------------------------------- /Commands/AppleScript Release Notes.tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | #!/bin/bash 9 | 10 | # The AppleScript Release Notes at apple.com 11 | 12 | open "http://developer.apple.com/releasenotes/AppleScript/RN-AppleScript/" 13 | 14 | fallbackInput 15 | scope 16 | input 17 | none 18 | keyEquivalent 19 | ^h 20 | name 21 | AppleScript Release Notes 22 | output 23 | discard 24 | scope 25 | source.applescript 26 | uuid 27 | E26E1CA5-D173-48A3-853C-D9E962550F8E 28 | 29 | 30 | -------------------------------------------------------------------------------- /Commands/AppleScript Resources.tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | #!/bin/bash 9 | 10 | # A list of useful applescript resources at apple.com 11 | 12 | open "http://developer.apple.com/applescript/" 13 | 14 | fallbackInput 15 | scope 16 | input 17 | none 18 | keyEquivalent 19 | ^h 20 | name 21 | AppleScript Resources 22 | output 23 | discard 24 | scope 25 | source.applescript 26 | uuid 27 | 023F99B6-3F0B-4249-96E8-39CF824F1733 28 | 29 | 30 | -------------------------------------------------------------------------------- /Commands/AppleScript Terminology : Event Codes.tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | #!/bin/bash 9 | 10 | # a list of all built-in terms, their types, and the associated event codes. 11 | 12 | open "http://developer.apple.com/releasenotes/AppleScript/ASTerminology_AppleEventCodes/TermsAndCodes.html" 13 | 14 | fallbackInput 15 | scope 16 | input 17 | none 18 | keyEquivalent 19 | ^h 20 | name 21 | AppleScript Terminology / Event Codes 22 | output 23 | discard 24 | scope 25 | source.applescript 26 | uuid 27 | 0823F607-CC45-4AB7-A869-36DF8ED662A7 28 | 29 | 30 | -------------------------------------------------------------------------------- /Commands/Compile in Script Editor.tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | #!/bin/bash 9 | 10 | content () { 11 | iconv -cs -f utf-8 -t macroman//TRANSLIT | perl -pe 's/["\\]/\\$&/g' 12 | } 13 | 14 | osascript <<-APPLESCRIPT 15 | tell application "Script Editor" 16 | activate 17 | set theDocument to make new document 18 | tell theDocument 19 | set contents of selection to "$(content)" 20 | try 21 | check syntax 22 | compile 23 | on error error_message number the error_number 24 | display dialog "Error: " & the error_number & ". " & the error_message buttons {"OK"} default button 1 25 | end try 26 | end tell 27 | end tell 28 | APPLESCRIPT 29 | input 30 | selection 31 | inputFormat 32 | text 33 | keyEquivalent 34 | ~@b 35 | name 36 | Compile in Script Editor 37 | outputCaret 38 | afterOutput 39 | outputFormat 40 | text 41 | outputLocation 42 | toolTip 43 | scope 44 | source.applescript 45 | semanticClass 46 | process.external.build.applescript 47 | uuid 48 | E3DD341F-94E6-460C-8EDA-D1184B67866F 49 | version 50 | 2 51 | 52 | 53 | -------------------------------------------------------------------------------- /Commands/Compile.tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | #!/usr/bin/env ruby18 9 | 10 | require "tempfile" 11 | require ENV["TM_SUPPORT_PATH"] + "/lib/tm/executor" 12 | require ENV["TM_SUPPORT_PATH"] + "/lib/tm/save_current_document" 13 | 14 | TextMate.save_current_document 15 | TextMate::Executor.make_project_master_current_document 16 | 17 | error_fd = nil 18 | document = File.read(ENV["TM_FILEPATH"]) 19 | 20 | Tempfile::open('tm_osacompile') do |tmpfile| 21 | TextMate::Executor.run(ENV["TM_OSACOMPILE"] || "osacompile", "-o", tmpfile.path, ENV["TM_FILEPATH"], :create_error_pipe => true, :verb => "Compiling", :use_hashbang => false, :version_args => ["-o", tmpfile.path, "-e", "nil"]) do |str, type| 22 | error_fd ||= IO.for_fd(ENV["TM_ERROR_FD"].to_i) 23 | case type 24 | when :err 25 | if str =~ /^([^\:]+):(\d+):(\d+): (.*?): (.*) \((-?\d+)\)$/ then 26 | filepath, start, stop, err, msg, status = $1, $2.to_i, $3.to_i, $4, $5, $6 27 | 28 | err = err.gsub(/\b\w(?=\w{3,})/) { |m| m.upcase } 29 | 30 | error_fd << "<div id=\"exception_report\" class=\"framed\">\n" 31 | error_fd << "<p id=\"exception\"><strong>#{htmlize err}</strong>: #{htmlize msg}</p>\n" 32 | 33 | from = document[0..start].rindex(/^/) 34 | to = start + document[start..-1].index(/$/) 35 | src = document[from...to] 36 | 37 | line = document[0...start].count("\n") + 1 38 | column = start - from 39 | 40 | link = "txmt://open?line=#{line}&column=#{column}" 41 | error_fd << "<pre>#{src}\n" 42 | error_fd << "#{' ' * (column)}↑</pre>" 43 | error_fd << "<blockquote><a href=\"#{link}\">line #{line}, column #{column}</a> in #{ENV['TM_DISPLAYNAME']}\n" 44 | 45 | error_fd << "<p>Error #{status}.</p>\n" 46 | error_fd << "</div>\n" 47 | 48 | error_fd.flush 49 | "" 50 | elsif str =~ /^([^\:]+):(\d+): (.*) \((-?\d+)\)$/ then 51 | filepath, line, msg, status = $1, $2.to_i, $3, $4 52 | 53 | error_fd << "<div id=\"exception_report\" class=\"framed\">\n" 54 | error_fd << "<p id=\"exception\"><strong>Error</strong>: #{htmlize msg}</p>\n" 55 | 56 | src = document.split(/\n/)[line - 1] 57 | 58 | link = "txmt://open?line=#{line}" 59 | error_fd << "<pre>#{src}</pre>" 60 | error_fd << "<blockquote><a href=\"#{link}\">line #{line}</a> in #{ENV['TM_DISPLAYNAME']}\n" 61 | 62 | error_fd << "<p>Error #{status}.</p>\n" 63 | error_fd << "</div>\n" 64 | 65 | error_fd.flush 66 | "" 67 | else 68 | "<span class=\"err\" style=\"color:red;\">#{htmlize(str)}</span><br/>" 69 | end 70 | when :out 71 | htmlize(str) 72 | end 73 | end 74 | end 75 | 76 | input 77 | document 78 | inputFormat 79 | text 80 | keyEquivalent 81 | @b 82 | name 83 | Compile 84 | outputCaret 85 | afterOutput 86 | outputFormat 87 | html 88 | outputLocation 89 | newWindow 90 | scope 91 | source.applescript 92 | semanticClass 93 | process.build.applescript 94 | uuid 95 | FAA71813-1CC3-45BC-BDC4-EE388D80746C 96 | version 97 | 2 98 | 99 | 100 | -------------------------------------------------------------------------------- /Commands/Continue Line (¬).tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | #!/bin/bash 9 | 10 | if sed -n "$((TM_LINE_NUMBER-1))p" | grep -sq '¬$'; then 11 | echo -ne '¬\n' 12 | else 13 | echo -ne '¬\n\t' 14 | fi 15 | 16 | input 17 | document 18 | keyEquivalent 19 |  20 | name 21 | Continue Line (¬) 22 | output 23 | insertAsSnippet 24 | scope 25 | source.applescript 26 | uuid 27 | 9755F5E9-3919-4E82-AAAD-9ECB64FD718A 28 | 29 | 30 | -------------------------------------------------------------------------------- /Commands/Copy URL Encoded Script.tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | #!/usr/bin/env ruby18 -KA -ruri 9 | 10 | src = 'applescript://com.apple.scripteditor?action=new&script=' 11 | src << URI.encode(STDIN.read) 12 | 13 | open('|pbcopy', 'w') { |io| io << src } 14 | 15 | print "The URL encoded AppleScript was copied to the clipboard" 16 | 17 | fallbackInput 18 | document 19 | input 20 | selection 21 | keyEquivalent 22 | ^@C 23 | name 24 | Copy URL Encoded Script 25 | output 26 | showAsTooltip 27 | scope 28 | source.applescript 29 | uuid 30 | 565860C4-A665-4C64-81B0-CA7848B181A2 31 | 32 | 33 | -------------------------------------------------------------------------------- /Commands/Decompile AppleScript.tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | #!/bin/sh 9 | SCRIPT_FILE="$(/usr/bin/mktemp)" 10 | trap 'rm "$SCRIPT_FILE"' EXIT 11 | cat > "$SCRIPT_FILE" 12 | /usr/bin/osadecompile "$SCRIPT_FILE" 13 | 14 | contentMatch 15 | \AFasdUAS 1.101.10 16 | hideFromUser 17 | 1 18 | input 19 | document 20 | inputFormat 21 | text 22 | name 23 | Decompile AppleScript 24 | outputCaret 25 | interpolateByLine 26 | outputFormat 27 | text 28 | outputLocation 29 | replaceDocument 30 | semanticClass 31 | callback.document.binary-import 32 | uuid 33 | 5C7D926C-E9A4-424F-876A-D1D8DE8CE02F 34 | version 35 | 2 36 | 37 | 38 | -------------------------------------------------------------------------------- /Commands/Documentation for Application.tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | #!/bin/bash 9 | 10 | read appname 11 | osascript <<-APPLESCRIPT 12 | tell app "Script Editor" 13 | launch 14 | activate 15 | open path to application ${appname} 16 | end tell 17 | APPLESCRIPT 18 | 19 | input 20 | scope 21 | inputFormat 22 | text 23 | keyEquivalent 24 | ^h 25 | name 26 | Documentation for Application 27 | outputCaret 28 | afterOutput 29 | outputFormat 30 | text 31 | outputLocation 32 | discard 33 | scope 34 | string.quoted.double.application-name.applescript 35 | semanticClass 36 | lookup.define.applescript 37 | uuid 38 | 2263B3B6-8D09-4B98-B056-3DF129226C78 39 | version 40 | 2 41 | 42 | 43 | -------------------------------------------------------------------------------- /Commands/End Block.tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | #!/usr/bin/env ruby18 -wKU 9 | 10 | def end_what? 11 | ENV["TM_SCOPE"].split.reverse_each do |scope| 12 | case scope 13 | when /^meta\.function\./ 14 | return 'end' 15 | when /^meta\.block\.(\w+)\./ 16 | return "end #{$1}" 17 | end 18 | end 19 | end 20 | 21 | puts end_what? 22 | 23 | input 24 | none 25 | keyEquivalent 26 | ~@. 27 | name 28 | End Block 29 | output 30 | afterSelectedText 31 | scope 32 | source.applescript meta.block, source.applescript meta.function 33 | uuid 34 | 99F1A4C2-2156-4F24-902C-0F651B293ECE 35 | 36 | 37 | -------------------------------------------------------------------------------- /Commands/Mac OS X Automation Resources.tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | #!/bin/bash 9 | 10 | # A list of useful AppleScript Resources at 11 | # macosxautomation.com 12 | 13 | # open "http://www.macosxautomation.com/applescript/" 14 | 15 | fallbackInput 16 | scope 17 | input 18 | none 19 | keyEquivalent 20 | ^h 21 | name 22 | Mac OS X Automation Resources 23 | output 24 | discard 25 | scope 26 | source.applescript 27 | uuid 28 | BA54AD1A-04AC-4CD1-B282-7F65D58EFE2B 29 | 30 | 31 | -------------------------------------------------------------------------------- /Commands/New Function.tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | #!/bin/bash 9 | 10 | # Turn the selected text into a function with 11 | # positional arguments. 12 | 13 | NAME="$(cat)" 14 | if [[ -z "$NAME" ]]; then 15 | NAME='${1:function_name}' 16 | fi 17 | 18 | cat <<SNIPPET 19 | on $NAME(\${2:arguments}) 20 | \${0:-- statements} 21 | end $NAME 22 | SNIPPET 23 | 24 | fallbackInput 25 | word 26 | input 27 | selection 28 | keyEquivalent 29 | $ 30 | name 31 | New Function 32 | output 33 | insertAsSnippet 34 | scope 35 | source.applescript 36 | tabTrigger 37 | on 38 | uuid 39 | 883C87A4-C370-4C92-9307-3C46380EE12F 40 | 41 | 42 | -------------------------------------------------------------------------------- /Commands/Run.tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | #!/usr/bin/env ruby18 9 | 10 | require ENV["TM_SUPPORT_PATH"] + "/lib/tm/executor" 11 | require ENV["TM_SUPPORT_PATH"] + "/lib/tm/save_current_document" 12 | 13 | TextMate.save_current_document 14 | TextMate::Executor.make_project_master_current_document 15 | 16 | error_fd = nil 17 | document = File.read(ENV["TM_FILEPATH"]) 18 | 19 | TextMate::Executor.run(ENV["TM_OSASCRIPT"] || "osascript", "-ss", ENV["TM_FILEPATH"], :create_error_pipe => true, :version_args => ["-e", "\"AppleScript \" & (AppleScript's version as string)"]) do |str, type| 20 | error_fd ||= IO.for_fd(ENV["TM_ERROR_FD"].to_i) 21 | case type 22 | when :err 23 | if str =~ /^([^\:]+):(\d+):(\d+): (.*?): (.*) \((-?\d+)\)$/ then 24 | filepath, start, stop, err, msg, status = $1, $2.to_i, $3.to_i, $4, $5, $6 25 | 26 | err = err.gsub(/\b\w(?=\w{3,})/) { |m| m.upcase } 27 | 28 | error_fd << "<div id=\"exception_report\" class=\"framed\">\n" 29 | error_fd << "<p id=\"exception\"><strong>#{htmlize err}</strong>: #{htmlize msg}</p>\n" 30 | 31 | from = document[0..start].rindex(/^/) 32 | to = start + document[start..-1].index(/$/) 33 | src = document[from...to] 34 | 35 | line = document[0...start].count("\n") + 1 36 | column = start - from 37 | 38 | link = "txmt://open?line=#{line}&column=#{column}" 39 | error_fd << "<pre>#{src}\n" 40 | error_fd << "#{' ' * (column)}↑</pre>" 41 | error_fd << "<blockquote><a href=\"#{link}\">line #{line}, column #{column}</a> in #{ENV['TM_DISPLAYNAME']}\n" 42 | 43 | error_fd << "<p>Error #{status}.</p>\n" 44 | error_fd << "</div>\n" 45 | 46 | error_fd.flush 47 | "" 48 | else 49 | "<span class=\"err\" style=\"color:red;\">#{htmlize(str)}</span><br/>" 50 | end 51 | when :out 52 | htmlize(str) 53 | end 54 | end 55 | 56 | input 57 | document 58 | inputFormat 59 | text 60 | keyEquivalent 61 | @r 62 | name 63 | Run 64 | outputCaret 65 | afterOutput 66 | outputFormat 67 | html 68 | outputLocation 69 | newWindow 70 | scope 71 | source.applescript 72 | semanticClass 73 | process.run.script.applescript 74 | uuid 75 | 28D28F3B-C59B-4387-A67E-65CFF1CBC62B 76 | version 77 | 2 78 | 79 | 80 | -------------------------------------------------------------------------------- /Commands/Toggle AppleScript:osascript.tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | #!/usr/bin/env ruby18 9 | 10 | scrpt = STDIN.read 11 | 12 | if scrpt =~ /\A\s*osascript\s+-e\s*(.*)\z/m then 13 | scrpt = $1.gsub(/\s+-e\s*/, "\n") 14 | scrpt.gsub!(/\\(')|'([^']*)'/, '\1\2') 15 | print "${0:", scrpt.gsub(/[$`\\}]/, '\\\\\0'), "}" 16 | %x{ { sleep .1; osascript -e 'tell app "System Events" to keystroke "[" using {command down, option down}'; } &>/dev/null & } # Indent Selection 17 | exit 204 # this signals exit_insert_as_snippet 18 | else 19 | lines = scrpt.collect { |line| line.chomp.gsub(/'/, "'\\\\''") } 20 | lines.collect! { |line| "-e '#{line.strip}'" } 21 | print "osascript " + lines.join(' ') 22 | end 23 | 24 | fallbackInput 25 | line 26 | input 27 | selection 28 | keyEquivalent 29 | ^H 30 | name 31 | Toggle AppleScript / osascript 32 | output 33 | replaceSelectedText 34 | scope 35 | source.applescript, source.shell 36 | uuid 37 | B85D7CB4-5A47-4B49-831F-F2CCBFC5F48F 38 | 39 | 40 | -------------------------------------------------------------------------------- /Commands/Toggle string:Unicode text.tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | #!/usr/bin/env ruby18 9 | 10 | # AppleScript strings cannot handle Unicode text, so 11 | # any Unicode characters entered in a string will 12 | # simply be dropped when the script is run. However, 13 | # a Unicode text object obviously has no trouble 14 | # accepting any characters. This command toggles 15 | # between raw unicode data and a " delimited string, 16 | # to simplify the creation of Unicode text objects. 17 | 18 | case txt = STDIN.read 19 | when /\A«data utxt([0-9A-F]+)»(?: as Unicode text)?\z/i then 20 | decoded = $1.gsub(/([0-9A-F]{4})/i) { |m| [$1.hex].pack("U") } 21 | print '"' + decoded + '"' 22 | 23 | when /\A«data utf8([0-9A-F]+)»(?: as Unicode text)?\z/i then 24 | decoded = $1.gsub(/../) { |i| i.hex.chr } 25 | print '"' + decoded + '"' 26 | 27 | when /\A"(.*)"\z/ then 28 | encoded = "" 29 | $1.each_byte { |b| encoded << format("%02X", b) } 30 | print '«data utf8' + encoded + '» as Unicode text' 31 | 32 | else 33 | print txt 34 | end 35 | 36 | fallbackInput 37 | scope 38 | input 39 | selection 40 | keyEquivalent 41 | ^" 42 | name 43 | Toggle String / «data utf8» 44 | output 45 | replaceSelectedText 46 | scope 47 | string.quoted.double.applescript, constant.other.data.utxt.applescript 48 | uuid 49 | 7B6716C8-A890-4803-8C61-5E31F1A4BE63 50 | 51 | 52 | -------------------------------------------------------------------------------- /Preferences/Comments.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Comments 7 | scope 8 | source.applescript 9 | settings 10 | 11 | shellVariables 12 | 13 | 14 | name 15 | TM_COMMENT_START 16 | value 17 | -- 18 | 19 | 20 | name 21 | TM_COMMENT_START_2 22 | value 23 | (* 24 | 25 | 26 | name 27 | TM_COMMENT_END_2 28 | value 29 | *) 30 | 31 | 32 | 33 | uuid 34 | C293E159-C4ED-4757-AD60-82E068A13962 35 | 36 | 37 | -------------------------------------------------------------------------------- /Preferences/Completion: Application Name.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Completion: Application Name 7 | scope 8 | string.quoted.double.application-name.applescript 9 | settings 10 | 11 | completionCommand 12 | ps -xco command|grep "^$TM_CURRENT_WORD"|sort|uniq 13 | 14 | uuid 15 | F4324AFF-97E6-4D2D-B425-B24E99383AA3 16 | 17 | 18 | -------------------------------------------------------------------------------- /Preferences/Folding.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Folding 7 | scope 8 | source.applescript 9 | settings 10 | 11 | foldingStartMarker 12 | (?x) 13 | ^\s* 14 | ( 15 | tell \s+ (?! .* \b(to)\b) .* 16 | |tell\b.*?\bto\ tell \s+ (?! .* \b(to)\b) .* 17 | |using \s+ terms \s+ from \s+ .* 18 | |if\b .* \bthen\b 19 | |repeat\b .* 20 | |( on | to )\b (?!\s+ error) .* 21 | |try\b 22 | |with \s+ timeout\b .* 23 | |script\b .* 24 | |( considering | ignoring )\b .* 25 | )\s*(--.*?)?$ 26 | 27 | foldingStopMarker 28 | ^\s*end\b.*$ 29 | 30 | uuid 31 | 30F4F4CB-26DE-414B-A2CC-A251D06D413F 32 | 33 | 34 | -------------------------------------------------------------------------------- /Preferences/Indent.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Indent 7 | scope 8 | source.applescript 9 | settings 10 | 11 | decreaseIndentPattern 12 | (?x) 13 | ^\s* (end|else|on\ error) \b .*$ 14 | 15 | increaseIndentPattern 16 | (?x) 17 | ^\s* 18 | ( 19 | tell \s+ (?! .* \b(to)\b) .* 20 | |tell\b.*?\bto\ tell \s+ (?! .* \b(to)\b) .* 21 | |using\ terms\ from\b.* 22 | |if\b .* \bthen\b 23 | |else\b .* 24 | |repeat\b .* 25 | |( on | to ) \b .* 26 | |try 27 | |with \s+ timeout\b .* 28 | |ignoring\b .* 29 | )\s*(--.*?)?$ 30 | 31 | indentNextLinePattern 32 | ¬$ 33 | 34 | uuid 35 | 8F2DBD25-3DED-44CE-A902-05DCBC185A99 36 | 37 | 38 | -------------------------------------------------------------------------------- /Preferences/Smart Typing Pairs.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Smart Typing Pairs / Highlight Pairs 7 | scope 8 | source.applescript 9 | settings 10 | 11 | highlightPairs 12 | 13 | 14 | ( 15 | ) 16 | 17 | 18 | " 19 | " 20 | 21 | 22 | { 23 | } 24 | 25 | 26 | [ 27 | ] 28 | 29 | 30 | 31 | 32 | 33 | 34 | « 35 | » 36 | 37 | 38 | smartTypingPairs 39 | 40 | 41 | " 42 | " 43 | 44 | 45 | ( 46 | ) 47 | 48 | 49 | { 50 | } 51 | 52 | 53 | « 54 | » 55 | 56 | 57 | 58 | uuid 59 | 1E1529C4-A9D6-43AC-AB48-975F9BFCD7B7 60 | 61 | 62 | -------------------------------------------------------------------------------- /README.mdown: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | You can install this bundle in TextMate by opening the preferences and going to the bundles tab. After installation it will be automatically updated for you. 4 | 5 | # General 6 | 7 | * [Bundle Styleguide](http://kb.textmate.org/bundle_styleguide) — _before you make changes_ 8 | * [Commit Styleguide](http://kb.textmate.org/commit_styleguide) — _before you send a pull request_ 9 | * [Writing Bug Reports](http://kb.textmate.org/writing_bug_reports) — _before you report an issue_ 10 | 11 | # License 12 | 13 | If not otherwise specified (see below), files in this repository fall under the following license: 14 | 15 | Permission to copy, use, modify, sell and distribute this 16 | software is granted. This software is provided "as is" without 17 | express or implied warranty, and with no claim as to its 18 | suitability for any purpose. 19 | 20 | An exception is made for files in readable text which contain their own license information, or files where an accompanying file exists (in the same directory) with a “-license” suffix added to the base-name name of the original file, and an extension of txt, html, or similar. For example “tidy” is accompanied by “tidy-license.txt”. -------------------------------------------------------------------------------- /Snippets/#!:usr:bin:osascript.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | #!/usr/bin/osascript 7 | 8 | name 9 | #!/usr/bin/osascript 10 | scope 11 | L:dyn.caret.begin.document 12 | tabTrigger 13 | osa 14 | uuid 15 | 6A58371E-DED1-44A6-A873-88DEFE0CEA3B 16 | 17 | 18 | -------------------------------------------------------------------------------- /Snippets/Alert.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | display alert "${1:alert text}" ¬ 7 | ${2:message "${3:message text}" ¬ 8 | }${4:as warning} 9 | name 10 | Alert 11 | scope 12 | source.applescript 13 | tabTrigger 14 | alert 15 | uuid 16 | 36586BF4-F77B-42B6-ADEF-AD2B65298602 17 | 18 | 19 | -------------------------------------------------------------------------------- /Snippets/Check that UI Scripting is Enabled.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | on UIscript_check() 7 | -- check to see if assistive devices is enabled 8 | tell application "System Events" to set UI_enabled to UI elements enabled 9 | if not UI_enabled then 10 | tell application "AppleScript Utility" 11 | activate 12 | display dialog "This script utilizes the built-in Graphical User Interface Scripting architecture of Mac OS X which is currently disabled." & return & return & "You can activate GUI Scripting by selecting the checkbox “Enable GUI Scripting” in AppleScript Utility." with icon 1 buttons {"Okay"} default button 1 13 | end tell 14 | end if 15 | end UIscript_check 16 | 17 | UIscript_check() 18 | name 19 | Check that UI Scripting is Enabled 20 | scope 21 | source.applescript 22 | uuid 23 | E604B44D-3483-4993-9679-566392A03203 24 | 25 | 26 | -------------------------------------------------------------------------------- /Snippets/Choose Application(s).tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | ${1/.+/set /}${1:the_application}${1/.+/ to /}choose application with prompt "${2:Choose an Application:}"${3/.+/ ¬ 7 | /}${3:with multiple selections allowed} 8 | 9 | name 10 | Choose Application(s) 11 | scope 12 | source.applescript 13 | tabTrigger 14 | choose 15 | uuid 16 | 61FA9A41-E511-488F-AA30-4216C9154BE7 17 | 18 | 19 | -------------------------------------------------------------------------------- /Snippets/Choose Color.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | ${1:set the_color to }choose color default color ${2:{65536, 65536, 65536\}} 7 | $0 8 | name 9 | Choose Color 10 | scope 11 | source.applescript 12 | tabTrigger 13 | choose 14 | uuid 15 | C8B17E74-0D0F-4FC9-B53C-B2CD2BBE4EA4 16 | 17 | 18 | -------------------------------------------------------------------------------- /Snippets/Choose File(s).tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | ${1:set the_file to }choose file with prompt "${2:Pick a file:}"${3: ¬ 7 | default location path to home folder}${4: ¬ 8 | with invisibles}${5: ¬ 9 | with multiple selections allowed}${6: ¬ 10 | with showing package contents} 11 | $0 12 | name 13 | Choose File(s) 14 | scope 15 | source.applescript 16 | tabTrigger 17 | choose 18 | uuid 19 | 5C6AB1CA-170D-42A9-8E3C-961FE1054934 20 | 21 | 22 | -------------------------------------------------------------------------------- /Snippets/Choose Folder(s).tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | ${1:set the_folder to }choose folder with prompt "${2:Pick a folder:}"${3: ¬ 7 | default location path to home folder}${4: ¬ 8 | with invisibles}${5: ¬ 9 | with multiple selections allowed}${6: ¬ 10 | with showing package contents} 11 | $0 12 | name 13 | Choose Folder(s) 14 | scope 15 | source.applescript 16 | tabTrigger 17 | choose 18 | uuid 19 | CDEB7EDE-7171-4801-AE12-258ED3F7A2BA 20 | 21 | 22 | -------------------------------------------------------------------------------- /Snippets/Choose Item from List.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | set the_choice to choose from list ${1:{"${2:choices}"\}} 7 | $0 8 | name 9 | Choose Item from List 10 | scope 11 | source.applescript 12 | tabTrigger 13 | choose 14 | uuid 15 | 1D418F08-770F-4407-AE6A-3CCF2CD9FA6E 16 | 17 | 18 | -------------------------------------------------------------------------------- /Snippets/Choose New File.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | ${1:set the_filename to }choose file name with prompt "${2:Name this file:}" ¬ 7 | default name "${3:untitled}" default location ${4:path to home folder} 8 | $0 9 | name 10 | Choose New File 11 | scope 12 | source.applescript 13 | tabTrigger 14 | choose 15 | uuid 16 | DE1A37AA-FB0F-480F-99DC-3D79B35A49C1 17 | 18 | 19 | -------------------------------------------------------------------------------- /Snippets/Choose URL.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | ${1:set the_url to }choose URL showing ${2:Web} servers with editable URL 7 | $0 8 | name 9 | Choose URL 10 | scope 11 | source.applescript 12 | tabTrigger 13 | choose 14 | uuid 15 | 5100F3C7-EC8E-43C3-B844-2F384FCEC6C4 16 | 17 | 18 | -------------------------------------------------------------------------------- /Snippets/OK.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | display dialog ${1:"${2:text}"}${3/.+/ ¬ 7 | with icon /}${3:1} ¬ 8 | buttons {"${4:OK}"} ¬ 9 | default button 1 10 | 11 | name 12 | OK 13 | scope 14 | source.applescript 15 | tabTrigger 16 | dialog 17 | uuid 18 | 244EC5B2-5821-4364-8585-A2B241A57590 19 | 20 | 21 | -------------------------------------------------------------------------------- /Snippets/OK:Cancel.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | display dialog ${1:"${2:text}"}${3/.+/ ¬ 7 | with icon /}${3:1} ¬ 8 | buttons {"${5:Cancel}", "${4:OK}"} ¬ 9 | default button "$4" 10 | set button_pressed to button returned of result 11 | if button_pressed is "$4" then 12 | ${6:-- statements for default button}${7/.+/ 13 | else 14 | /}${7:-- statements for cancel button} 15 | end if 16 | 17 | name 18 | OK/Cancel 19 | scope 20 | source.applescript 21 | tabTrigger 22 | dialog 23 | uuid 24 | 3495D4D5-E454-4A90-9288-8E7D34094544 25 | 26 | 27 | -------------------------------------------------------------------------------- /Snippets/OK:Cancel:Other.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | display dialog ${1:"${2:text}"}${3/.+/ ¬ 7 | with icon /}${3:1} ¬ 8 | buttons {"${5:Cancel}", "${6:Other}", "${4:OK}"} ¬ 9 | default button "$4" 10 | set button_pressed to button returned of result 11 | if button_pressed is "$4" then 12 | ${7:-- statements for default button}${8/.+/ 13 | else if button_pressed is "$5" then 14 | /}${8:-- statements for cancel button}${9/.+/ 15 | else 16 | /}${9:-- statements for other button} 17 | end if 18 | 19 | name 20 | OK/Cancel/Other 21 | scope 22 | source.applescript 23 | tabTrigger 24 | dialog 25 | uuid 26 | 7DD1F1C1-3E7B-4157-951E-58B22BA00AB9 27 | 28 | 29 | -------------------------------------------------------------------------------- /Snippets/Select Menu Item with UI Scripting.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | -- \`menu_click\`, by Jacob Rus, September 2006 7 | -- 8 | -- Accepts a list of form: \`{"Finder", "View", "Arrange By", "Date"}\` 9 | -- Execute the specified menu item. In this case, assuming the Finder 10 | -- is the active application, arranging the frontmost folder by date. 11 | 12 | on menu_click(mList) 13 | local appName, topMenu, r 14 | 15 | -- Validate our input 16 | if mList's length < 3 then error "Menu list is not long enough" 17 | 18 | -- Set these variables for clarity and brevity later on 19 | set {appName, topMenu} to (items 1 through 2 of mList) 20 | set r to (items 3 through (mList's length) of mList) 21 | 22 | -- This overly-long line calls the menu_recurse function with 23 | -- two arguments: r, and a reference to the top-level menu 24 | tell app "System Events" to my menu_click_recurse(r, ((process appName)'s (menu bar 1)'s (menu bar item topMenu)'s (menu topMenu))) 25 | end menu_click 26 | 27 | on menu_click_recurse(mList, parentObject) 28 | local f, r 29 | 30 | -- \`f\` = first item, \`r\` = rest of items 31 | set f to item 1 of mList 32 | if mList's length > 1 then set r to (items 2 through (mList's length) of mList) 33 | 34 | -- either actually click the menu item, or recurse again 35 | tell app "System Events" 36 | if mList's length is 1 then 37 | click parentObject's menu item f 38 | else 39 | my menu_click_recurse(r, (parentObject's (menu item f)'s (menu f))) 40 | end if 41 | end tell 42 | end menu_click_recurse 43 | name 44 | Select Menu Item with UI Scripting 45 | scope 46 | source.applescript 47 | uuid 48 | E56CA3CB-D2C0-451F-B695-5E39D152708A 49 | 50 | 51 | -------------------------------------------------------------------------------- /Snippets/Split:Join Helper Functions.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | to split of aString by sep 7 | local aList, delims 8 | tell AppleScript 9 | set delims to text item delimiters 10 | set text item delimiters to sep 11 | set aList to text items of aString 12 | set text item delimiters to delims 13 | end tell 14 | return aList 15 | end split 16 | 17 | to join of aList by sep 18 | local aString, delims 19 | tell AppleScript 20 | set delims to text item delimiters 21 | set text item delimiters to sep 22 | set aString to aList as string 23 | set text item delimiters to delims 24 | end tell 25 | return aString 26 | end join 27 | name 28 | Split/Join Helper Functions 29 | scope 30 | source.applescript 31 | uuid 32 | DB76600C-38FC-4B63-A1B6-CC926496B620 33 | 34 | 35 | -------------------------------------------------------------------------------- /Snippets/Text Field.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | display dialog ${1:"${2:text}"} ¬ 7 | default answer ${3:"${4:default answer}"}${5/.+/ ¬ 8 | with icon /}${5:1} ¬ 9 | buttons {"${7:Cancel}", "${6:OK}"} ¬ 10 | default button "$6" 11 | set button_pressed to button returned of result 12 | set text_typed to text returned of result 13 | if button_pressed is "$6" then 14 | ${8:-- statements for default button}${9/.+/ 15 | else 16 | /}${9:-- statements for cancel button} 17 | end if 18 | name 19 | Text Field 20 | scope 21 | source.applescript 22 | tabTrigger 23 | dialog 24 | uuid 25 | E4CD6ED0-73A9-48A5-95F1-74794A93401F 26 | 27 | 28 | -------------------------------------------------------------------------------- /Snippets/change text item delimiters.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | set oldDelims to AppleScript's text item delimiters 7 | set AppleScript's text item delimiters to {"${1:,}"} 8 | ${0:-- statements} 9 | set AppleScript's text item delimiters to oldDelims 10 | name 11 | change text item delimiters 12 | scope 13 | source.applescript 14 | tabTrigger 15 | delim 16 | uuid 17 | 016BF4B7-53D3-49E0-A8DB-033917FAD031 18 | 19 | 20 | -------------------------------------------------------------------------------- /Snippets/considering … end.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | considering ${1:case} 7 | ${0:-- statements} 8 | end considering 9 | name 10 | considering … end 11 | scope 12 | source.applescript 13 | tabTrigger 14 | con 15 | uuid 16 | F6401A3A-7BDB-41E0-8628-3C2F24C3D5FC 17 | 18 | 19 | -------------------------------------------------------------------------------- /Snippets/copy … to ….tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | copy ${1:value} to ${0:location} 7 | name 8 | copy … to … 9 | scope 10 | source.applescript 11 | tabTrigger 12 | copy 13 | uuid 14 | 3754B2CC-DB4C-4B2D-9DAF-08CD402BB672 15 | 16 | 17 | -------------------------------------------------------------------------------- /Snippets/do shell script ….tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | ${1/.+/set /}${1:shell_output}${1/.+/ to /}do shell script${2/.+/ ¬ 7 | /}${2:"${3:script}"}${4/.+/ ¬ 8 | /}${4:without altering line endings} 9 | 10 | name 11 | do shell script … 12 | scope 13 | source.applescript 14 | tabTrigger 15 | shell 16 | uuid 17 | A26CF48B-F79C-4AEC-B2DC-9063DA264DDB 18 | 19 | 20 | -------------------------------------------------------------------------------- /Snippets/duplicate … to ….tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | duplicate ${1:value} to ${0:location} 7 | name 8 | duplicate … to … 9 | scope 10 | source.applescript 11 | tabTrigger 12 | dup 13 | uuid 14 | D1F93513-B220-4580-835D-0D689607E25B 15 | 16 | 17 | -------------------------------------------------------------------------------- /Snippets/if … end.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | if ${1:condition} then 7 | ${0:-- statements} 8 | end if 9 | name 10 | if … end 11 | scope 12 | source.applescript 13 | tabTrigger 14 | if 15 | uuid 16 | 301C492A-03BE-4EFF-87A9-2FD276376B9B 17 | 18 | 19 | -------------------------------------------------------------------------------- /Snippets/if … then ….tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | if ${1:condition} then ${0:value} 7 | name 8 | if … then … 9 | scope 10 | source.applescript 11 | tabTrigger 12 | iff 13 | uuid 14 | 1751AD24-B7C6-480B-A1A9-3A3682D5325E 15 | 16 | 17 | -------------------------------------------------------------------------------- /Snippets/ignoring … end.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | ignoring ${1:application responses} 7 | ${0:-- statements} 8 | end ignoring 9 | name 10 | ignoring … end 11 | scope 12 | source.applescript 13 | tabTrigger 14 | ign 15 | uuid 16 | AFC90003-4B8B-4661-8958-81F47D5E8277 17 | 18 | 19 | -------------------------------------------------------------------------------- /Snippets/prop parent ….tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | property parent : ${1:application "${2:Finder}"} 7 | name 8 | prop parent … 9 | scope 10 | source.applescript 11 | tabTrigger 12 | parent 13 | uuid 14 | 26A11710-54A2-4AB1-AE52-213869C21314 15 | 16 | 17 | -------------------------------------------------------------------------------- /Snippets/prop ….tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | property ${1:prop_name} : ${0:value} 7 | name 8 | prop … 9 | scope 10 | source.applescript 11 | tabTrigger 12 | prop 13 | uuid 14 | E11743D3-7286-470A-9B32-16AB6188244C 15 | 16 | 17 | -------------------------------------------------------------------------------- /Snippets/repeat [times] … end.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | repeat${1/.+/ /}${1:number}${1/.+/ times/} 7 | ${0:-- statements} 8 | end repeat 9 | name 10 | repeat [times] … end 11 | scope 12 | source.applescript 13 | tabTrigger 14 | rep 15 | uuid 16 | 4FFDA694-2B17-41AF-B92A-2172612CC82D 17 | 18 | 19 | -------------------------------------------------------------------------------- /Snippets/repeat until ___ end.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | repeat until ${1:condition} 7 | ${0:-- statements} 8 | end repeat 9 | name 10 | repeat until ... end 11 | scope 12 | source.applescript 13 | tabTrigger 14 | rep 15 | uuid 16 | 6CAD1A94-B03B-4E78-B67B-2F3CDAADBAFA 17 | 18 | 19 | -------------------------------------------------------------------------------- /Snippets/repeat while ___ end.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | repeat while ${1:condition} 7 | ${0:-- statements} 8 | end repeat 9 | name 10 | repeat while ... end 11 | scope 12 | source.applescript 13 | tabTrigger 14 | rep 15 | uuid 16 | 82EE8D3B-B2EE-457C-8412-F098DD5827FA 17 | 18 | 19 | -------------------------------------------------------------------------------- /Snippets/repeat with ___ from ___ end.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | repeat with ${1:counter} from ${2:start} to ${3:stop}${4/.+/ by /}${4:step} 7 | ${0:-- statements} 8 | end repeat 9 | name 10 | repeat with ... from ... end 11 | scope 12 | source.applescript 13 | tabTrigger 14 | rep 15 | uuid 16 | D1707E70-B8FA-4EAA-B6B6-3BC860268829 17 | 18 | 19 | -------------------------------------------------------------------------------- /Snippets/repeat with ___ in ___ end.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | repeat with ${1:item} in ${2:list} 7 | ${0:-- statements} 8 | end repeat 9 | name 10 | repeat with ... in ... end 11 | scope 12 | source.applescript 13 | tabTrigger 14 | rep 15 | uuid 16 | 1E31B99C-B436-4BA6-A754-E8EE5A73680D 17 | 18 | 19 | -------------------------------------------------------------------------------- /Snippets/script … end.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | script ${1:script_object} 7 | on run 8 | ${0:-- statements} 9 | end run 10 | end script 11 | name 12 | script … end 13 | scope 14 | source.applescript 15 | tabTrigger 16 | script 17 | uuid 18 | 27E30615-B821-4998-AC39-B503B75699DB 19 | 20 | 21 | -------------------------------------------------------------------------------- /Snippets/set … to ….tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | set ${1:var_name} to ${0:value} 7 | name 8 | set … to … 9 | scope 10 | source.applescript 11 | tabTrigger 12 | set 13 | uuid 14 | E9B6FF87-9B89-4F3C-811A-0A8CC78D1B26 15 | 16 | 17 | -------------------------------------------------------------------------------- /Snippets/tell [app] … end.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | tell ${1:application "${2:Finder}"} 7 | ${0:-- statements} 8 | end tell 9 | name 10 | tell [app] … end 11 | scope 12 | source.applescript 13 | tabTrigger 14 | tell 15 | uuid 16 | 3E62DF03-32E3-40B6-978F-CD3DD86F8494 17 | 18 | 19 | -------------------------------------------------------------------------------- /Snippets/try … on error … end.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | try 7 | ${1:-- statements} 8 | on error 9 | ${2:-- error handling} 10 | end try 11 | name 12 | try … on error … end 13 | scope 14 | source.applescript 15 | tabTrigger 16 | try 17 | uuid 18 | A7169FD9-63FB-46EB-974F-6B31FFF4C52B 19 | 20 | 21 | -------------------------------------------------------------------------------- /Snippets/using terms from [app] … end.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | using terms from ${1:application "${2:Finder}"} 7 | ${0:-- statements} 8 | end using terms from 9 | name 10 | using terms from [app] … end 11 | scope 12 | source.applescript 13 | tabTrigger 14 | terms 15 | uuid 16 | 9E5E9C0B-471D-41FE-83CF-6BC51783B27F 17 | 18 | 19 | -------------------------------------------------------------------------------- /Snippets/with timeout … end.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | with timeout ${1:number} seconds 7 | ${0:-- statements} 8 | end timeout 9 | name 10 | with timeout … end 11 | scope 12 | source.applescript 13 | tabTrigger 14 | timeout 15 | uuid 16 | 9C5B660B-94B9-44DD-AA84-F212AAE0065A 17 | 18 | 19 | -------------------------------------------------------------------------------- /Snippets/with transaction … end.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | with transaction${1/.+/ /}${1:session} 7 | ${0:-- statements} 8 | end transaction 9 | name 10 | with transaction … end 11 | scope 12 | source.applescript 13 | tabTrigger 14 | transaction 15 | uuid 16 | E17ACBC4-BDC8-4ACE-B67A-9148BA4B8B18 17 | 18 | 19 | -------------------------------------------------------------------------------- /Syntaxes/AppleScript.tmLanguage: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | fileTypes 6 | 7 | applescript 8 | scpt 9 | script editor 10 | 11 | firstLineMatch 12 | ^#!.*(osascript) 13 | keyEquivalent 14 | ^~A 15 | name 16 | AppleScript 17 | patterns 18 | 19 | 20 | include 21 | #blocks 22 | 23 | 24 | include 25 | #inline 26 | 27 | 28 | repository 29 | 30 | attributes.considering-ignoring 31 | 32 | patterns 33 | 34 | 35 | match 36 | , 37 | name 38 | punctuation.separator.array.attributes.applescript 39 | 40 | 41 | match 42 | \b(and)\b 43 | name 44 | keyword.control.attributes.and.applescript 45 | 46 | 47 | match 48 | \b(?i:case|diacriticals|hyphens|numeric\s+strings|punctuation|white\s+space)\b 49 | name 50 | constant.other.attributes.text.applescript 51 | 52 | 53 | match 54 | \b(?i:application\s+responses)\b 55 | name 56 | constant.other.attributes.application.applescript 57 | 58 | 59 | 60 | blocks 61 | 62 | patterns 63 | 64 | 65 | begin 66 | ^\s*(script)\s+(\w+) 67 | beginCaptures 68 | 69 | 1 70 | 71 | name 72 | keyword.control.script.applescript 73 | 74 | 2 75 | 76 | name 77 | entity.name.type.script-object.applescript 78 | 79 | 80 | end 81 | ^\s*(end(?:\s+script)?)(?=\s*(--.*?)?$) 82 | endCaptures 83 | 84 | 1 85 | 86 | name 87 | keyword.control.script.applescript 88 | 89 | 90 | name 91 | meta.block.script.applescript 92 | patterns 93 | 94 | 95 | include 96 | $self 97 | 98 | 99 | 100 | 101 | begin 102 | ^(?x) 103 | \s*(to|on)\s+ # "on" or "to" 104 | (\w+) # function name 105 | (\() # opening paren 106 | ((?:[\s,:\{\}]*(?:\w+)?)*) # parameters 107 | (\)) # closing paren 108 | 109 | beginCaptures 110 | 111 | 1 112 | 113 | name 114 | keyword.control.function.applescript 115 | 116 | 2 117 | 118 | name 119 | entity.name.function.handler.applescript 120 | 121 | 3 122 | 123 | name 124 | punctuation.definition.parameters.begin.applescript 125 | 126 | 4 127 | 128 | name 129 | variable.parameter.handler.applescript 130 | 131 | 5 132 | 133 | name 134 | punctuation.definition.parameters.end.applescript 135 | 136 | 137 | comment 138 | 139 | This is not a very well-designed rule. For now, 140 | we can leave it like this though, as it sorta works. 141 | 142 | end 143 | ^\s*(end)(?:\s+(\2))?(?=\s*(--.*?)?$) 144 | endCaptures 145 | 146 | 1 147 | 148 | name 149 | keyword.control.function.applescript 150 | 151 | 152 | name 153 | meta.function.positional.applescript 154 | patterns 155 | 156 | 157 | include 158 | $self 159 | 160 | 161 | 162 | 163 | begin 164 | ^(?x) 165 | \s*(to|on)\s+ # "on" or "to" 166 | (\w+) # function name 167 | (?:\s+ 168 | (of|in)\s+ # "of" or "in" 169 | (\w+) # direct parameter 170 | )? 171 | (?=\s+(above|against|apart\s+from|around|aside\s+from|at|below|beneath|beside|between|by|for|from|instead\s+of|into|on|onto|out\s+of|over|thru|under)\b) 172 | 173 | beginCaptures 174 | 175 | 1 176 | 177 | name 178 | keyword.control.function.applescript 179 | 180 | 2 181 | 182 | name 183 | entity.name.function.handler.applescript 184 | 185 | 3 186 | 187 | name 188 | keyword.control.function.applescript 189 | 190 | 4 191 | 192 | name 193 | variable.parameter.handler.direct.applescript 194 | 195 | 196 | comment 197 | TODO: match `given` parameters 198 | end 199 | ^\s*(end)(?:\s+(\2))?(?=\s*(--.*?)?$) 200 | endCaptures 201 | 202 | 1 203 | 204 | name 205 | keyword.control.function.applescript 206 | 207 | 208 | name 209 | meta.function.prepositional.applescript 210 | patterns 211 | 212 | 213 | captures 214 | 215 | 1 216 | 217 | name 218 | keyword.control.preposition.applescript 219 | 220 | 2 221 | 222 | name 223 | variable.parameter.handler.applescript 224 | 225 | 226 | match 227 | \b(?i:above|against|apart\s+from|around|aside\s+from|at|below|beneath|beside|between|by|for|from|instead\s+of|into|on|onto|out\s+of|over|thru|under)\s+(\w+)\b 228 | 229 | 230 | include 231 | $self 232 | 233 | 234 | 235 | 236 | begin 237 | ^(?x) 238 | \s*(to|on)\s+ # "on" or "to" 239 | (\w+) # function name 240 | (?=\s*(--.*?)?$) # nothing else 241 | 242 | beginCaptures 243 | 244 | 1 245 | 246 | name 247 | keyword.control.function.applescript 248 | 249 | 2 250 | 251 | name 252 | entity.name.function.handler.applescript 253 | 254 | 255 | end 256 | ^\s*(end)(?:\s+(\2))?(?=\s*(--.*?)?$) 257 | endCaptures 258 | 259 | 1 260 | 261 | name 262 | keyword.control.function.applescript 263 | 264 | 265 | name 266 | meta.function.parameterless.applescript 267 | patterns 268 | 269 | 270 | include 271 | $self 272 | 273 | 274 | 275 | 276 | include 277 | #blocks.tell 278 | 279 | 280 | include 281 | #blocks.repeat 282 | 283 | 284 | include 285 | #blocks.statement 286 | 287 | 288 | include 289 | #blocks.other 290 | 291 | 292 | 293 | blocks.other 294 | 295 | patterns 296 | 297 | 298 | begin 299 | ^\s*(considering)\b 300 | end 301 | ^\s*(end(?:\s+considering)?)(?=\s*(--.*?)?$) 302 | name 303 | meta.block.considering.applescript 304 | patterns 305 | 306 | 307 | begin 308 | (?<=considering) 309 | end 310 | (?<!¬)$ 311 | name 312 | meta.array.attributes.considering.applescript 313 | patterns 314 | 315 | 316 | include 317 | #attributes.considering-ignoring 318 | 319 | 320 | 321 | 322 | begin 323 | (?<=ignoring) 324 | end 325 | (?<!¬)$ 326 | name 327 | meta.array.attributes.ignoring.applescript 328 | patterns 329 | 330 | 331 | include 332 | #attributes.considering-ignoring 333 | 334 | 335 | 336 | 337 | match 338 | \b(but)\b 339 | name 340 | keyword.control.but.applescript 341 | 342 | 343 | include 344 | $self 345 | 346 | 347 | 348 | 349 | begin 350 | ^\s*(ignoring)\b 351 | end 352 | ^\s*(end(?:\s+ignoring)?)(?=\s*(--.*?)?$) 353 | name 354 | meta.block.ignoring.applescript 355 | patterns 356 | 357 | 358 | begin 359 | (?<=considering) 360 | end 361 | (?<!¬)$ 362 | name 363 | meta.array.attributes.considering.applescript 364 | patterns 365 | 366 | 367 | include 368 | #attributes.considering-ignoring 369 | 370 | 371 | 372 | 373 | begin 374 | (?<=ignoring) 375 | end 376 | (?<!¬)$ 377 | name 378 | meta.array.attributes.ignoring.applescript 379 | patterns 380 | 381 | 382 | include 383 | #attributes.considering-ignoring 384 | 385 | 386 | 387 | 388 | match 389 | \b(but)\b 390 | name 391 | keyword.control.but.applescript 392 | 393 | 394 | include 395 | $self 396 | 397 | 398 | 399 | 400 | begin 401 | ^\s*(if)\b 402 | beginCaptures 403 | 404 | 1 405 | 406 | name 407 | keyword.control.if.applescript 408 | 409 | 410 | end 411 | ^\s*(end(?:\s+if)?)(?=\s*(--.*?)?$) 412 | endCaptures 413 | 414 | 1 415 | 416 | name 417 | keyword.control.end.applescript 418 | 419 | 420 | name 421 | meta.block.if.applescript 422 | patterns 423 | 424 | 425 | match 426 | \b(then)\b 427 | name 428 | keyword.control.then.applescript 429 | 430 | 431 | match 432 | \b(else\s+if)\b 433 | name 434 | keyword.control.else-if.applescript 435 | 436 | 437 | match 438 | \b(else)\b 439 | name 440 | keyword.control.else.applescript 441 | 442 | 443 | include 444 | $self 445 | 446 | 447 | 448 | 449 | begin 450 | ^\s*(try)\b 451 | beginCaptures 452 | 453 | 1 454 | 455 | name 456 | keyword.control.try.applescript 457 | 458 | 459 | end 460 | ^\s*(end(?:\s+(try|error))?)(?=\s*(--.*?)?$) 461 | endCaptures 462 | 463 | 1 464 | 465 | name 466 | keyword.control.end.applescript 467 | 468 | 469 | name 470 | meta.block.try.applescript 471 | patterns 472 | 473 | 474 | begin 475 | ^\s*(on\s+error)\b 476 | beginCaptures 477 | 478 | 1 479 | 480 | name 481 | keyword.control.exception.on-error.applescript 482 | 483 | 484 | end 485 | (?<!¬)$ 486 | name 487 | meta.property.error.applescript 488 | patterns 489 | 490 | 491 | match 492 | \b(?i:number|partial|from|to)\b 493 | name 494 | keyword.control.exception.modifier.applescript 495 | 496 | 497 | include 498 | #inline 499 | 500 | 501 | 502 | 503 | include 504 | $self 505 | 506 | 507 | 508 | 509 | begin 510 | ^\s*(using\s+terms\s+from)\b 511 | beginCaptures 512 | 513 | 1 514 | 515 | name 516 | keyword.control.terms.applescript 517 | 518 | 519 | end 520 | ^\s*(end(?:\s+using\s+terms\s+from)?)(?=\s*(--.*?)?$) 521 | endCaptures 522 | 523 | 1 524 | 525 | name 526 | keyword.control.end.applescript 527 | 528 | 529 | name 530 | meta.block.terms.applescript 531 | patterns 532 | 533 | 534 | include 535 | $self 536 | 537 | 538 | 539 | 540 | begin 541 | ^\s*(with\s+timeout(\s+of)?)\b 542 | beginCaptures 543 | 544 | 1 545 | 546 | name 547 | keyword.control.timeout.applescript 548 | 549 | 550 | end 551 | ^\s*(end(?:\s+timeout)?)(?=\s*(--.*?)?$) 552 | endCaptures 553 | 554 | 1 555 | 556 | name 557 | keyword.control.end.applescript 558 | 559 | 560 | name 561 | meta.block.timeout.applescript 562 | patterns 563 | 564 | 565 | include 566 | $self 567 | 568 | 569 | 570 | 571 | begin 572 | ^\s*(with\s+transaction(\s+of)?)\b 573 | beginCaptures 574 | 575 | 1 576 | 577 | name 578 | keyword.control.transaction.applescript 579 | 580 | 581 | end 582 | ^\s*(end(?:\s+transaction)?)(?=\s*(--.*?)?$) 583 | endCaptures 584 | 585 | 1 586 | 587 | name 588 | keyword.control.end.applescript 589 | 590 | 591 | name 592 | meta.block.transaction.applescript 593 | patterns 594 | 595 | 596 | include 597 | $self 598 | 599 | 600 | 601 | 602 | 603 | blocks.repeat 604 | 605 | patterns 606 | 607 | 608 | begin 609 | ^\s*(repeat)\s+(until)\b 610 | beginCaptures 611 | 612 | 1 613 | 614 | name 615 | keyword.control.repeat.applescript 616 | 617 | 2 618 | 619 | name 620 | keyword.control.until.applescript 621 | 622 | 623 | end 624 | ^\s*(end(?:\s+repeat)?)(?=\s*(--.*?)?$) 625 | endCaptures 626 | 627 | 1 628 | 629 | name 630 | keyword.control.end.applescript 631 | 632 | 633 | name 634 | meta.block.repeat.until.applescript 635 | patterns 636 | 637 | 638 | include 639 | $self 640 | 641 | 642 | 643 | 644 | begin 645 | ^\s*(repeat)\s+(while)\b 646 | beginCaptures 647 | 648 | 1 649 | 650 | name 651 | keyword.control.repeat.applescript 652 | 653 | 2 654 | 655 | name 656 | keyword.control.while.applescript 657 | 658 | 659 | end 660 | ^\s*(end(?:\s+repeat)?)(?=\s*(--.*?)?$) 661 | endCaptures 662 | 663 | 1 664 | 665 | name 666 | keyword.control.end.applescript 667 | 668 | 669 | name 670 | meta.block.repeat.while.applescript 671 | patterns 672 | 673 | 674 | include 675 | $self 676 | 677 | 678 | 679 | 680 | begin 681 | ^\s*(repeat)\s+(with)\s+(\w+)\b 682 | beginCaptures 683 | 684 | 1 685 | 686 | name 687 | keyword.control.repeat.applescript 688 | 689 | 2 690 | 691 | name 692 | keyword.control.until.applescript 693 | 694 | 3 695 | 696 | name 697 | variable.parameter.loop.applescript 698 | 699 | 700 | end 701 | ^\s*(end(?:\s+repeat)?)(?=\s*(--.*?)?$) 702 | endCaptures 703 | 704 | 1 705 | 706 | name 707 | keyword.control.end.applescript 708 | 709 | 710 | name 711 | meta.block.repeat.with.applescript 712 | patterns 713 | 714 | 715 | match 716 | \b(from|to|by)\b 717 | name 718 | keyword.control.modifier.range.applescript 719 | 720 | 721 | match 722 | \b(in)\b 723 | name 724 | keyword.control.modifier.list.applescript 725 | 726 | 727 | include 728 | $self 729 | 730 | 731 | 732 | 733 | begin 734 | ^\s*(repeat)\b(?=\s*(--.*?)?$) 735 | beginCaptures 736 | 737 | 1 738 | 739 | name 740 | keyword.control.repeat.applescript 741 | 742 | 743 | end 744 | ^\s*(end(?:\s+repeat)?)(?=\s*(--.*?)?$) 745 | endCaptures 746 | 747 | 1 748 | 749 | name 750 | keyword.control.end.applescript 751 | 752 | 753 | name 754 | meta.block.repeat.forever.applescript 755 | patterns 756 | 757 | 758 | include 759 | $self 760 | 761 | 762 | 763 | 764 | begin 765 | ^\s*(repeat)\b 766 | beginCaptures 767 | 768 | 1 769 | 770 | name 771 | keyword.control.repeat.applescript 772 | 773 | 774 | end 775 | ^\s*(end(?:\s+repeat)?)(?=\s*(--.*?)?$) 776 | endCaptures 777 | 778 | 1 779 | 780 | name 781 | keyword.control.end.applescript 782 | 783 | 784 | name 785 | meta.block.repeat.times.applescript 786 | patterns 787 | 788 | 789 | match 790 | \b(times)\b 791 | name 792 | keyword.control.times.applescript 793 | 794 | 795 | include 796 | $self 797 | 798 | 799 | 800 | 801 | 802 | blocks.statement 803 | 804 | patterns 805 | 806 | 807 | begin 808 | \b(prop(?:erty)?)\s+(\w+)\b 809 | beginCaptures 810 | 811 | 1 812 | 813 | name 814 | keyword.control.def.property.applescript 815 | 816 | 2 817 | 818 | name 819 | variable.other.property.applescript 820 | 821 | 822 | end 823 | (?<!¬)$ 824 | name 825 | meta.statement.property.applescript 826 | patterns 827 | 828 | 829 | match 830 | : 831 | name 832 | punctuation.separator.key-value.property.applescript 833 | 834 | 835 | include 836 | #inline 837 | 838 | 839 | 840 | 841 | begin 842 | \b(set)\s+(\w+)\s+(to)\b 843 | beginCaptures 844 | 845 | 1 846 | 847 | name 848 | keyword.control.def.set.applescript 849 | 850 | 2 851 | 852 | name 853 | variable.other.readwrite.set.applescript 854 | 855 | 3 856 | 857 | name 858 | keyword.control.def.set.applescript 859 | 860 | 861 | end 862 | (?<!¬)$ 863 | name 864 | meta.statement.set.applescript 865 | patterns 866 | 867 | 868 | include 869 | #inline 870 | 871 | 872 | 873 | 874 | begin 875 | \b(local)\b 876 | beginCaptures 877 | 878 | 1 879 | 880 | name 881 | keyword.control.def.local.applescript 882 | 883 | 884 | end 885 | (?<!¬)$ 886 | name 887 | meta.statement.local.applescript 888 | patterns 889 | 890 | 891 | match 892 | , 893 | name 894 | punctuation.separator.variables.local.applescript 895 | 896 | 897 | match 898 | \b\w+ 899 | name 900 | variable.other.readwrite.local.applescript 901 | 902 | 903 | include 904 | #inline 905 | 906 | 907 | 908 | 909 | begin 910 | \b(global)\b 911 | beginCaptures 912 | 913 | 1 914 | 915 | name 916 | keyword.control.def.global.applescript 917 | 918 | 919 | end 920 | (?<!¬)$ 921 | name 922 | meta.statement.global.applescript 923 | patterns 924 | 925 | 926 | match 927 | , 928 | name 929 | punctuation.separator.variables.global.applescript 930 | 931 | 932 | match 933 | \b\w+ 934 | name 935 | variable.other.readwrite.global.applescript 936 | 937 | 938 | include 939 | #inline 940 | 941 | 942 | 943 | 944 | begin 945 | \b(error)\b 946 | beginCaptures 947 | 948 | 1 949 | 950 | name 951 | keyword.control.exception.error.applescript 952 | 953 | 954 | end 955 | (?<!¬)$ 956 | name 957 | meta.statement.error.applescript 958 | patterns 959 | 960 | 961 | match 962 | \b(number|partial|from|to)\b 963 | name 964 | keyword.control.exception.modifier.applescript 965 | 966 | 967 | include 968 | #inline 969 | 970 | 971 | 972 | 973 | begin 974 | \b(if)\b(?=.*\bthen\b(?!\s*(--.*?)?$)) 975 | beginCaptures 976 | 977 | 1 978 | 979 | name 980 | keyword.control.if.applescript 981 | 982 | 983 | end 984 | (?<!¬)$ 985 | name 986 | meta.statement.if-then.applescript 987 | patterns 988 | 989 | 990 | include 991 | #inline 992 | 993 | 994 | 995 | 996 | 997 | blocks.tell 998 | 999 | patterns 1000 | 1001 | 1002 | begin 1003 | ^\s*(tell)\s+(?=app(lication)?\s+"(?i:textmate)")(?!.*\bto(?!\s+tell)\b) 1004 | captures 1005 | 1006 | 1 1007 | 1008 | name 1009 | keyword.control.tell.applescript 1010 | 1011 | 1012 | comment 1013 | tell Textmate 1014 | end 1015 | ^\s*(end(?:\s+tell)?)(?=\s*(--.*?)?$) 1016 | name 1017 | meta.block.tell.application.textmate.applescript 1018 | patterns 1019 | 1020 | 1021 | include 1022 | #textmate 1023 | 1024 | 1025 | include 1026 | #standard-suite 1027 | 1028 | 1029 | include 1030 | $self 1031 | 1032 | 1033 | 1034 | 1035 | begin 1036 | ^\s*(tell)\s+(?=app(lication)?\s+"(?i:finder)")(?!.*\bto(?!\s+tell)\b) 1037 | captures 1038 | 1039 | 1 1040 | 1041 | name 1042 | keyword.control.tell.applescript 1043 | 1044 | 1045 | comment 1046 | tell Finder 1047 | end 1048 | ^\s*(end(?:\s+tell)?)(?=\s*(--.*?)?$) 1049 | name 1050 | meta.block.tell.application.finder.applescript 1051 | patterns 1052 | 1053 | 1054 | include 1055 | #finder 1056 | 1057 | 1058 | include 1059 | #standard-suite 1060 | 1061 | 1062 | include 1063 | $self 1064 | 1065 | 1066 | 1067 | 1068 | begin 1069 | ^\s*(tell)\s+(?=app(lication)?\s+"(?i:system events)")(?!.*\bto(?!\s+tell)\b) 1070 | captures 1071 | 1072 | 1 1073 | 1074 | name 1075 | keyword.control.tell.applescript 1076 | 1077 | 1078 | comment 1079 | tell System Events 1080 | end 1081 | ^\s*(end(?:\s+tell)?)(?=\s*(--.*?)?$) 1082 | name 1083 | meta.block.tell.application.system-events.applescript 1084 | patterns 1085 | 1086 | 1087 | include 1088 | #system-events 1089 | 1090 | 1091 | include 1092 | #standard-suite 1093 | 1094 | 1095 | include 1096 | $self 1097 | 1098 | 1099 | 1100 | 1101 | begin 1102 | ^\s*(tell)\s+(?=app(lication)?\s+"(?i:itunes)")(?!.*\bto(?!\s+tell)\b) 1103 | captures 1104 | 1105 | 1 1106 | 1107 | name 1108 | keyword.control.tell.applescript 1109 | 1110 | 1111 | comment 1112 | tell iTunes 1113 | end 1114 | ^\s*(end(?:\s+tell)?)(?=\s*(--.*?)?$) 1115 | name 1116 | meta.block.tell.application.itunes.applescript 1117 | patterns 1118 | 1119 | 1120 | include 1121 | #itunes 1122 | 1123 | 1124 | include 1125 | #standard-suite 1126 | 1127 | 1128 | include 1129 | $self 1130 | 1131 | 1132 | 1133 | 1134 | begin 1135 | ^\s*(tell)\s+(?=app(lication)?\s+process\b)(?!.*\bto(?!\s+tell)\b) 1136 | captures 1137 | 1138 | 1 1139 | 1140 | name 1141 | keyword.control.tell.applescript 1142 | 1143 | 1144 | comment 1145 | tell generic application process 1146 | end 1147 | ^\s*(end(?:\s+tell)?)(?=\s*(--.*?)?$) 1148 | name 1149 | meta.block.tell.application-process.generic.applescript 1150 | patterns 1151 | 1152 | 1153 | include 1154 | #standard-suite 1155 | 1156 | 1157 | include 1158 | $self 1159 | 1160 | 1161 | 1162 | 1163 | begin 1164 | ^\s*(tell)\s+(?=app(lication)?\b)(?!.*\bto(?!\s+tell)\b) 1165 | captures 1166 | 1167 | 1 1168 | 1169 | name 1170 | keyword.control.tell.applescript 1171 | 1172 | 1173 | comment 1174 | tell generic application 1175 | end 1176 | ^\s*(end(?:\s+tell)?)(?=\s*(--.*?)?$) 1177 | name 1178 | meta.block.tell.application.generic.applescript 1179 | patterns 1180 | 1181 | 1182 | include 1183 | #standard-suite 1184 | 1185 | 1186 | include 1187 | $self 1188 | 1189 | 1190 | 1191 | 1192 | begin 1193 | ^\s*(tell)\s+(?!.*\bto(?!\s+tell)\b) 1194 | captures 1195 | 1196 | 1 1197 | 1198 | name 1199 | keyword.control.tell.applescript 1200 | 1201 | 1202 | comment 1203 | generic tell block 1204 | end 1205 | ^\s*(end(?:\s+tell)?)(?=\s*(--.*?)?$) 1206 | name 1207 | meta.block.tell.generic.applescript 1208 | patterns 1209 | 1210 | 1211 | include 1212 | $self 1213 | 1214 | 1215 | 1216 | 1217 | begin 1218 | ^\s*(tell)\s+(?=.*\bto\b) 1219 | captures 1220 | 1221 | 1 1222 | 1223 | name 1224 | keyword.control.tell.applescript 1225 | 1226 | 1227 | comment 1228 | tell … to statement 1229 | end 1230 | (?<!¬)$ 1231 | name 1232 | meta.block.tell.generic.applescript 1233 | patterns 1234 | 1235 | 1236 | include 1237 | $self 1238 | 1239 | 1240 | 1241 | 1242 | 1243 | built-in 1244 | 1245 | patterns 1246 | 1247 | 1248 | include 1249 | #built-in.constant 1250 | 1251 | 1252 | include 1253 | #built-in.keyword 1254 | 1255 | 1256 | include 1257 | #built-in.support 1258 | 1259 | 1260 | include 1261 | #built-in.punctuation 1262 | 1263 | 1264 | 1265 | built-in.constant 1266 | 1267 | patterns 1268 | 1269 | 1270 | comment 1271 | yes/no can’t always be used as booleans, e.g. in an if() expression. But they work e.g. for boolean arguments. 1272 | match 1273 | \b(?i:true|false|yes|no)\b 1274 | name 1275 | constant.language.boolean.applescript 1276 | 1277 | 1278 | match 1279 | \b(?i:null|missing\s+value)\b 1280 | name 1281 | constant.language.null.applescript 1282 | 1283 | 1284 | match 1285 | -?\b\d+((\.(\d+\b)?)?(?i:e\+?\d*\b)?|\b) 1286 | name 1287 | constant.numeric.applescript 1288 | 1289 | 1290 | match 1291 | \b(?i:space|tab|return|linefeed|quote)\b 1292 | name 1293 | constant.other.text.applescript 1294 | 1295 | 1296 | match 1297 | \b(?i:all\s+(caps|lowercase)|bold|condensed|expanded|hidden|italic|outline|plain|shadow|small\s+caps|strikethrough|(sub|super)script|underline)\b 1298 | name 1299 | constant.other.styles.applescript 1300 | 1301 | 1302 | match 1303 | \b(?i:Jan(uary)?|Feb(ruary)?|Mar(ch)?|Apr(il)?|May|Jun(e)?|Jul(y)?|Aug(ust)?|Sep(tember)?|Oct(ober)?|Nov(ember)?|Dec(ember)?)\b 1304 | name 1305 | constant.other.time.month.applescript 1306 | 1307 | 1308 | match 1309 | \b(?i:Mon(day)?|Tue(sday)?|Wed(nesday)?|Thu(rsday)?|Fri(day)?|Sat(urday)?|Sun(day)?)\b 1310 | name 1311 | constant.other.time.weekday.applescript 1312 | 1313 | 1314 | match 1315 | \b(?i:AppleScript|pi|result|version|current\s+application|its?|m[ey])\b 1316 | name 1317 | constant.other.miscellaneous.applescript 1318 | 1319 | 1320 | match 1321 | \b(?i:text\s+item\s+delimiters|print\s+(length|depth))\b 1322 | name 1323 | variable.language.applescript 1324 | 1325 | 1326 | 1327 | built-in.keyword 1328 | 1329 | patterns 1330 | 1331 | 1332 | match 1333 | (&|\*|\+|-|/|÷|\^) 1334 | name 1335 | keyword.operator.arithmetic.applescript 1336 | 1337 | 1338 | match 1339 | (=|≠|>|<|≥|>=|≤|<=) 1340 | name 1341 | keyword.operator.comparison.applescript 1342 | 1343 | 1344 | match 1345 | (?ix)\b 1346 | (and|or|div|mod|as|not 1347 | |(a\s+)?(ref(\s+to)?|reference\s+to) 1348 | |equal(s|\s+to)|contains?|comes\s+(after|before)|(start|begin|end)s?\s+with 1349 | ) 1350 | \b 1351 | name 1352 | keyword.operator.word.applescript 1353 | 1354 | 1355 | comment 1356 | In double quotes so we can use a single quote in the keywords. 1357 | match 1358 | (?ix)\b 1359 | (is(n't|\s+not)?(\s+(equal(\s+to)?|(less|greater)\s+than(\s+or\s+equal(\s+to)?)?|in|contained\s+by))? 1360 | |does(n't|\s+not)\s+(equal|come\s+(before|after)|contain) 1361 | ) 1362 | \b 1363 | name 1364 | keyword.operator.word.applescript 1365 | 1366 | 1367 | match 1368 | \b(?i:some|every|whose|where|that|id|index|\d+(st|nd|rd|th)|first|second|third|fourth|fifth|sixth|seventh|eighth|ninth|tenth|last|front|back|middle|named|beginning|end|from|to|thr(u|ough)|before|(front|back|beginning|end)\s+of|after|behind|in\s+(front|back|beginning|end)\s+of)\b 1369 | name 1370 | keyword.operator.reference.applescript 1371 | 1372 | 1373 | match 1374 | \b(?i:continue|return|exit(\s+repeat)?)\b 1375 | name 1376 | keyword.control.loop.applescript 1377 | 1378 | 1379 | match 1380 | \b(?i:about|above|after|against|and|apart\s+from|around|as|aside\s+from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|contain|contains|contains|copy|div|does|eighth|else|end|equal|equals|error|every|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead\s+of|into|is|it|its|last|local|me|middle|mod|my|ninth|not|of|on|onto|or|out\s+of|over|prop|property|put|ref|reference|repeat|returning|script|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\b 1381 | name 1382 | keyword.other.applescript 1383 | 1384 | 1385 | 1386 | built-in.punctuation 1387 | 1388 | patterns 1389 | 1390 | 1391 | match 1392 | ¬ 1393 | name 1394 | punctuation.separator.continuation.line.applescript 1395 | 1396 | 1397 | comment 1398 | the : in property assignments 1399 | match 1400 | : 1401 | name 1402 | punctuation.separator.key-value.property.applescript 1403 | 1404 | 1405 | comment 1406 | the parentheses in groups 1407 | match 1408 | [()] 1409 | name 1410 | punctuation.section.group.applescript 1411 | 1412 | 1413 | 1414 | built-in.support 1415 | 1416 | patterns 1417 | 1418 | 1419 | match 1420 | \b(?i:POSIX\s+path|frontmost|id|name|running|version|days?|weekdays?|months?|years?|time|date\s+string|time\s+string|length|rest|reverse|items?|contents|quoted\s+form|characters?|paragraphs?|words?)\b 1421 | name 1422 | support.function.built-in.property.applescript 1423 | 1424 | 1425 | match 1426 | \b(?i:activate|log|clipboard\s+info|set\s+the\s+clipboard\s+to|the\s+clipboard|info\s+for|list\s+(disks|folder)|mount\s+volume|path\s+to(\s+resource)?|close\s+access|get\s+eof|open\s+for\s+access|read|set\s+eof|write|open\s+location|current\s+date|do\s+shell\s+script|get\s+volume\s+settings|random\s+number|round|set\s+volume|system\s+(attribute|info)|time\s+to\s+GMT|load\s+script|run\s+script|scripting\s+components|store\s+script|copy|count|get|launch|run|set|ASCII\s+(character|number)|localized\s+string|offset|summarize|beep|choose\s+(application|color|file(\s+name)?|folder|from\s+list|remote\s+application|URL)|delay|display\s+(alert|dialog)|say)\b 1427 | name 1428 | support.function.built-in.command.applescript 1429 | 1430 | 1431 | match 1432 | \b(?i:get|run)\b 1433 | name 1434 | support.function.built-in.applescript 1435 | 1436 | 1437 | match 1438 | \b(?i:anything|data|text|upper\s+case|propert(y|ies))\b 1439 | name 1440 | support.class.built-in.applescript 1441 | 1442 | 1443 | match 1444 | \b(?i:alias|class)(es)?\b 1445 | name 1446 | support.class.built-in.applescript 1447 | 1448 | 1449 | match 1450 | \b(?i:app(lication)?|boolean|character|constant|date|event|file(\s+specification)?|handler|integer|item|keystroke|linked\s+list|list|machine|number|picture|preposition|POSIX\s+file|real|record|reference(\s+form)?|RGB\s+color|script|sound|text\s+item|type\s+class|vector|writing\s+code(\s+info)?|zone|((international|styled(\s+(Clipboard|Unicode))?|Unicode)\s+)?text|((C|encoded|Pascal)\s+)?string)s?\b 1451 | name 1452 | support.class.built-in.applescript 1453 | 1454 | 1455 | match 1456 | (?ix)\b 1457 | ( (cubic\s+(centi)?|square\s+(kilo)?|centi|kilo)met(er|re)s 1458 | | square\s+(yards|feet|miles)|cubic\s+(yards|feet|inches)|miles|inches 1459 | | lit(re|er)s|gallons|quarts 1460 | | (kilo)?grams|ounces|pounds 1461 | | degrees\s+(Celsius|Fahrenheit|Kelvin) 1462 | ) 1463 | \b 1464 | name 1465 | support.class.built-in.unit.applescript 1466 | 1467 | 1468 | match 1469 | \b(?i:seconds|minutes|hours|days)\b 1470 | name 1471 | support.class.built-in.time.applescript 1472 | 1473 | 1474 | 1475 | comments 1476 | 1477 | patterns 1478 | 1479 | 1480 | begin 1481 | ^\s*(#!) 1482 | captures 1483 | 1484 | 1 1485 | 1486 | name 1487 | punctuation.definition.comment.applescript 1488 | 1489 | 1490 | end 1491 | \n 1492 | name 1493 | comment.line.number-sign.applescript 1494 | 1495 | 1496 | begin 1497 | (^[ \t]+)?(?=#) 1498 | beginCaptures 1499 | 1500 | 1 1501 | 1502 | name 1503 | punctuation.whitespace.comment.leading.applescript 1504 | 1505 | 1506 | end 1507 | (?!\G) 1508 | patterns 1509 | 1510 | 1511 | begin 1512 | # 1513 | beginCaptures 1514 | 1515 | 0 1516 | 1517 | name 1518 | punctuation.definition.comment.applescript 1519 | 1520 | 1521 | end 1522 | \n 1523 | name 1524 | comment.line.number-sign.applescript 1525 | 1526 | 1527 | 1528 | 1529 | begin 1530 | (^[ \t]+)?(?=--) 1531 | beginCaptures 1532 | 1533 | 1 1534 | 1535 | name 1536 | punctuation.whitespace.comment.leading.applescript 1537 | 1538 | 1539 | end 1540 | (?!\G) 1541 | patterns 1542 | 1543 | 1544 | begin 1545 | -- 1546 | beginCaptures 1547 | 1548 | 0 1549 | 1550 | name 1551 | punctuation.definition.comment.applescript 1552 | 1553 | 1554 | end 1555 | \n 1556 | name 1557 | comment.line.double-dash.applescript 1558 | 1559 | 1560 | 1561 | 1562 | begin 1563 | \(\* 1564 | captures 1565 | 1566 | 0 1567 | 1568 | name 1569 | punctuation.definition.comment.applescript 1570 | 1571 | 1572 | end 1573 | \*\) 1574 | name 1575 | comment.block.applescript 1576 | patterns 1577 | 1578 | 1579 | include 1580 | #comments.nested 1581 | 1582 | 1583 | 1584 | 1585 | 1586 | comments.nested 1587 | 1588 | patterns 1589 | 1590 | 1591 | begin 1592 | \(\* 1593 | beginCaptures 1594 | 1595 | 0 1596 | 1597 | name 1598 | punctuation.definition.comment.begin.applescript 1599 | 1600 | 1601 | end 1602 | \*\) 1603 | endCaptures 1604 | 1605 | 0 1606 | 1607 | name 1608 | punctuation.definition.comment.end.applescript 1609 | 1610 | 1611 | name 1612 | comment.block.applescript 1613 | patterns 1614 | 1615 | 1616 | include 1617 | #comments.nested 1618 | 1619 | 1620 | 1621 | 1622 | 1623 | data-structures 1624 | 1625 | patterns 1626 | 1627 | 1628 | begin 1629 | \{ 1630 | beginCaptures 1631 | 1632 | 0 1633 | 1634 | name 1635 | punctuation.definition.array.begin.applescript 1636 | 1637 | 1638 | comment 1639 | We cannot necessarily distinguish "records" from "arrays", and so this could be either. 1640 | end 1641 | \} 1642 | endCaptures 1643 | 1644 | 0 1645 | 1646 | name 1647 | punctuation.definition.array.end.applescript 1648 | 1649 | 1650 | name 1651 | meta.array.applescript 1652 | patterns 1653 | 1654 | 1655 | captures 1656 | 1657 | 1 1658 | 1659 | name 1660 | constant.other.key.applescript 1661 | 1662 | 2 1663 | 1664 | name 1665 | meta.identifier.applescript 1666 | 1667 | 3 1668 | 1669 | name 1670 | punctuation.definition.identifier.applescript 1671 | 1672 | 4 1673 | 1674 | name 1675 | punctuation.definition.identifier.applescript 1676 | 1677 | 5 1678 | 1679 | name 1680 | punctuation.separator.key-value.applescript 1681 | 1682 | 1683 | match 1684 | (\w+|((\|)[^|\n]*(\|)))\s*(:) 1685 | 1686 | 1687 | match 1688 | : 1689 | name 1690 | punctuation.separator.key-value.applescript 1691 | 1692 | 1693 | match 1694 | , 1695 | name 1696 | punctuation.separator.array.applescript 1697 | 1698 | 1699 | include 1700 | #inline 1701 | 1702 | 1703 | 1704 | 1705 | begin 1706 | (?:(?<=application )|(?<=app ))(") 1707 | captures 1708 | 1709 | 1 1710 | 1711 | name 1712 | punctuation.definition.string.applescript 1713 | 1714 | 1715 | end 1716 | (") 1717 | name 1718 | string.quoted.double.application-name.applescript 1719 | patterns 1720 | 1721 | 1722 | match 1723 | \\. 1724 | name 1725 | constant.character.escape.applescript 1726 | 1727 | 1728 | 1729 | 1730 | begin 1731 | (") 1732 | captures 1733 | 1734 | 1 1735 | 1736 | name 1737 | punctuation.definition.string.applescript 1738 | 1739 | 1740 | end 1741 | (") 1742 | name 1743 | string.quoted.double.applescript 1744 | patterns 1745 | 1746 | 1747 | match 1748 | \\. 1749 | name 1750 | constant.character.escape.applescript 1751 | 1752 | 1753 | 1754 | 1755 | captures 1756 | 1757 | 1 1758 | 1759 | name 1760 | punctuation.definition.identifier.applescript 1761 | 1762 | 2 1763 | 1764 | name 1765 | punctuation.definition.identifier.applescript 1766 | 1767 | 1768 | match 1769 | (\|)[^|\n]*(\|) 1770 | name 1771 | meta.identifier.applescript 1772 | 1773 | 1774 | captures 1775 | 1776 | 1 1777 | 1778 | name 1779 | punctuation.definition.data.applescript 1780 | 1781 | 2 1782 | 1783 | name 1784 | support.class.built-in.applescript 1785 | 1786 | 3 1787 | 1788 | name 1789 | storage.type.utxt.applescript 1790 | 1791 | 4 1792 | 1793 | name 1794 | string.unquoted.data.applescript 1795 | 1796 | 5 1797 | 1798 | name 1799 | punctuation.definition.data.applescript 1800 | 1801 | 6 1802 | 1803 | name 1804 | keyword.operator.applescript 1805 | 1806 | 7 1807 | 1808 | name 1809 | support.class.built-in.applescript 1810 | 1811 | 1812 | match 1813 | («)(data) (utxt|utf8)([[:xdigit:]]*)(»)(?:\s+(as)\s+(?i:Unicode\s+text))? 1814 | name 1815 | constant.other.data.utxt.applescript 1816 | 1817 | 1818 | begin 1819 | («)(\w+)\b(?=\s) 1820 | beginCaptures 1821 | 1822 | 1 1823 | 1824 | name 1825 | punctuation.definition.data.applescript 1826 | 1827 | 2 1828 | 1829 | name 1830 | support.class.built-in.applescript 1831 | 1832 | 1833 | end 1834 | (») 1835 | endCaptures 1836 | 1837 | 1 1838 | 1839 | name 1840 | punctuation.definition.data.applescript 1841 | 1842 | 1843 | name 1844 | constant.other.data.raw.applescript 1845 | 1846 | 1847 | captures 1848 | 1849 | 1 1850 | 1851 | name 1852 | punctuation.definition.data.applescript 1853 | 1854 | 2 1855 | 1856 | name 1857 | punctuation.definition.data.applescript 1858 | 1859 | 1860 | match 1861 | («)[^»]*(») 1862 | name 1863 | invalid.illegal.data.applescript 1864 | 1865 | 1866 | 1867 | finder 1868 | 1869 | patterns 1870 | 1871 | 1872 | match 1873 | \b(item|container|(computer|disk|trash)-object|disk|folder|((alias|application|document|internet location) )?file|clipping|package)s?\b 1874 | name 1875 | support.class.finder.items.applescript 1876 | 1877 | 1878 | match 1879 | \b((Finder|desktop|information|preferences|clipping) )windows?\b 1880 | name 1881 | support.class.finder.window-classes.applescript 1882 | 1883 | 1884 | match 1885 | \b(preferences|(icon|column|list) view options|(label|column|alias list)s?)\b 1886 | name 1887 | support.class.finder.type-definitions.applescript 1888 | 1889 | 1890 | match 1891 | \b(copy|find|sort|clean up|eject|empty( trash)|erase|reveal|update)\b 1892 | name 1893 | support.function.finder.items.applescript 1894 | 1895 | 1896 | match 1897 | \b(insertion location|product version|startup disk|desktop|trash|home|computer container|finder preferences)\b 1898 | name 1899 | support.constant.finder.applescript 1900 | 1901 | 1902 | match 1903 | \b(visible)\b 1904 | name 1905 | support.variable.finder.applescript 1906 | 1907 | 1908 | 1909 | inline 1910 | 1911 | patterns 1912 | 1913 | 1914 | include 1915 | #comments 1916 | 1917 | 1918 | include 1919 | #data-structures 1920 | 1921 | 1922 | include 1923 | #built-in 1924 | 1925 | 1926 | include 1927 | #standardadditions 1928 | 1929 | 1930 | 1931 | itunes 1932 | 1933 | patterns 1934 | 1935 | 1936 | match 1937 | \b(artwork|application|encoder|EQ preset|item|source|visual|(EQ |browser )?window|((audio CD|device|shared|URL|file) )?track|playlist window|((audio CD|device|radio tuner|library|folder|user) )?playlist)s?\b 1938 | name 1939 | support.class.itunes.applescript 1940 | 1941 | 1942 | match 1943 | \b(add|back track|convert|fast forward|(next|previous) track|pause|play(pause)?|refresh|resume|rewind|search|stop|update|eject|subscribe|update(Podcast|AllPodcasts)|download)\b 1944 | name 1945 | support.function.itunes.applescript 1946 | 1947 | 1948 | match 1949 | \b(current (playlist|stream (title|URL)|track)|player state)\b 1950 | name 1951 | support.constant.itunes.applescript 1952 | 1953 | 1954 | match 1955 | \b(current (encoder|EQ preset|visual)|EQ enabled|fixed indexing|full screen|mute|player position|sound volume|visuals enabled|visual size)\b 1956 | name 1957 | support.variable.itunes.applescript 1958 | 1959 | 1960 | 1961 | standard-suite 1962 | 1963 | patterns 1964 | 1965 | 1966 | match 1967 | \b(colors?|documents?|items?|windows?)\b 1968 | name 1969 | support.class.standard-suite.applescript 1970 | 1971 | 1972 | match 1973 | \b(close|count|delete|duplicate|exists|make|move|open|print|quit|save|activate|select|data size)\b 1974 | name 1975 | support.function.standard-suite.applescript 1976 | 1977 | 1978 | match 1979 | \b(name|frontmost|version)\b 1980 | name 1981 | support.constant.standard-suite.applescript 1982 | 1983 | 1984 | match 1985 | \b(selection)\b 1986 | name 1987 | support.variable.standard-suite.applescript 1988 | 1989 | 1990 | match 1991 | \b(attachments?|attribute runs?|characters?|paragraphs?|texts?|words?)\b 1992 | name 1993 | support.class.text-suite.applescript 1994 | 1995 | 1996 | 1997 | standardadditions 1998 | 1999 | patterns 2000 | 2001 | 2002 | match 2003 | \b((alert|dialog) reply)\b 2004 | name 2005 | support.class.standardadditions.user-interaction.applescript 2006 | 2007 | 2008 | match 2009 | \b(file information)\b 2010 | name 2011 | support.class.standardadditions.file.applescript 2012 | 2013 | 2014 | match 2015 | \b(POSIX files?|system information|volume settings)\b 2016 | name 2017 | support.class.standardadditions.miscellaneous.applescript 2018 | 2019 | 2020 | match 2021 | \b(URLs?|internet address(es)?|web pages?|FTP items?)\b 2022 | name 2023 | support.class.standardadditions.internet.applescript 2024 | 2025 | 2026 | match 2027 | \b(info for|list (disks|folder)|mount volume|path to( resource)?)\b 2028 | name 2029 | support.function.standardadditions.file.applescript 2030 | 2031 | 2032 | match 2033 | \b(beep|choose (application|color|file( name)?|folder|from list|remote application|URL)|delay|display (alert|dialog)|say)\b 2034 | name 2035 | support.function.standardadditions.user-interaction.applescript 2036 | 2037 | 2038 | match 2039 | \b(ASCII (character|number)|localized string|offset|summarize)\b 2040 | name 2041 | support.function.standardadditions.string.applescript 2042 | 2043 | 2044 | match 2045 | \b(set the clipboard to|the clipboard|clipboard info)\b 2046 | name 2047 | support.function.standardadditions.clipboard.applescript 2048 | 2049 | 2050 | match 2051 | \b(open for access|close access|read|write|get eof|set eof)\b 2052 | name 2053 | support.function.standardadditions.file-i-o.applescript 2054 | 2055 | 2056 | match 2057 | \b((load|store|run) script|scripting components)\b 2058 | name 2059 | support.function.standardadditions.scripting.applescript 2060 | 2061 | 2062 | match 2063 | \b(current date|do shell script|get volume settings|random number|round|set volume|system attribute|system info|time to GMT)\b 2064 | name 2065 | support.function.standardadditions.miscellaneous.applescript 2066 | 2067 | 2068 | match 2069 | \b(opening folder|(closing|moving) folder window for|adding folder items to|removing folder items from)\b 2070 | name 2071 | support.function.standardadditions.folder-actions.applescript 2072 | 2073 | 2074 | match 2075 | \b(open location|handle CGI request)\b 2076 | name 2077 | support.function.standardadditions.internet.applescript 2078 | 2079 | 2080 | 2081 | system-events 2082 | 2083 | patterns 2084 | 2085 | 2086 | match 2087 | \b(audio (data|file))\b 2088 | name 2089 | support.class.system-events.audio-file.applescript 2090 | 2091 | 2092 | match 2093 | \b(alias(es)?|(Classic|local|network|system|user) domain objects?|disk( item)?s?|domains?|file( package)?s?|folders?|items?)\b 2094 | name 2095 | support.class.system-events.disk-folder-file.applescript 2096 | 2097 | 2098 | match 2099 | \b(delete|open|move)\b 2100 | name 2101 | support.function.system-events.disk-folder-file.applescript 2102 | 2103 | 2104 | match 2105 | \b(folder actions?|scripts?)\b 2106 | name 2107 | support.class.system-events.folder-actions.applescript 2108 | 2109 | 2110 | match 2111 | \b(attach action to|attached scripts|edit action of|remove action from)\b 2112 | name 2113 | support.function.system-events.folder-actions.applescript 2114 | 2115 | 2116 | match 2117 | \b(movie data|movie file)\b 2118 | name 2119 | support.class.system-events.movie-file.applescript 2120 | 2121 | 2122 | match 2123 | \b(log out|restart|shut down|sleep)\b 2124 | name 2125 | support.function.system-events.power.applescript 2126 | 2127 | 2128 | match 2129 | \b(((application |desk accessory )?process|(check|combo )?box)(es)?|(action|attribute|browser|(busy|progress|relevance) indicator|color well|column|drawer|group|grow area|image|incrementor|list|menu( bar)?( item)?|(menu |pop up |radio )?button|outline|(radio|tab|splitter) group|row|scroll (area|bar)|sheet|slider|splitter|static text|table|text (area|field)|tool bar|UI element|window)s?)\b 2130 | name 2131 | support.class.system-events.processes.applescript 2132 | 2133 | 2134 | match 2135 | \b(click|key code|keystroke|perform|select)\b 2136 | name 2137 | support.function.system-events.processes.applescript 2138 | 2139 | 2140 | match 2141 | \b(property list (file|item))\b 2142 | name 2143 | support.class.system-events.property-list.applescript 2144 | 2145 | 2146 | match 2147 | \b(annotation|QuickTime (data|file)|track)s?\b 2148 | name 2149 | support.class.system-events.quicktime-file.applescript 2150 | 2151 | 2152 | match 2153 | \b((abort|begin|end) transaction)\b 2154 | name 2155 | support.function.system-events.system-events.applescript 2156 | 2157 | 2158 | match 2159 | \b(XML (attribute|data|element|file)s?)\b 2160 | name 2161 | support.class.system-events.xml.applescript 2162 | 2163 | 2164 | match 2165 | \b(print settings|users?|login items?)\b 2166 | name 2167 | support.class.sytem-events.other.applescript 2168 | 2169 | 2170 | 2171 | textmate 2172 | 2173 | patterns 2174 | 2175 | 2176 | match 2177 | \b(print settings)\b 2178 | name 2179 | support.class.textmate.applescript 2180 | 2181 | 2182 | match 2183 | \b(get url|insert|reload bundles)\b 2184 | name 2185 | support.function.textmate.applescript 2186 | 2187 | 2188 | 2189 | 2190 | scopeName 2191 | source.applescript 2192 | uuid 2193 | 777CF925-14B9-428E-B07B-17FAAB8FA27E 2194 | 2195 | 2196 | -------------------------------------------------------------------------------- /Templates/Droplet/info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | command 6 | if [[ ! -f "$TM_NEW_FILE" ]]; then 7 | TM_YEAR=`date +%Y` \ 8 | TM_DATE=`date +%Y-%m-%d` \ 9 | perl -pe 's/\$\{([^}]*)\}/$ENV{$1}/g' \ 10 | < template.applescript > "$TM_NEW_FILE" 11 | fi 12 | extension 13 | applescript 14 | name 15 | Droplet 16 | scope 17 | source.applescript 18 | uuid 19 | 316B199C-07AF-4BA7-81B7-BA01159D7D07 20 | 21 | 22 | -------------------------------------------------------------------------------- /Templates/Droplet/template.applescript: -------------------------------------------------------------------------------- 1 | -- ${TM_NEW_FILE_BASENAME}.applescript 2 | -- 3 | -- Created by ${TM_FULLNAME} on ${TM_DATE}. 4 | -- Copyright (c) ${TM_YEAR} ${TM_ORGANIZATION_NAME}. All rights reserved. 5 | -- 6 | 7 | on open dropped_items 8 | 9 | -- do something useful 10 | 11 | end open -------------------------------------------------------------------------------- /Templates/Folder Action Script/info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | command 6 | if [[ ! -f "$TM_NEW_FILE" ]]; then 7 | TM_YEAR=`date +%Y` \ 8 | TM_DATE=`date +%Y-%m-%d` \ 9 | perl -pe 's/\$\{([^}]*)\}/$ENV{$1}/g' \ 10 | < template.applescript > "$TM_NEW_FILE" 11 | fi 12 | extension 13 | applescript 14 | name 15 | Folder Action Script 16 | scope 17 | source.applescript 18 | uuid 19 | 91A9ACD3-7233-475C-A7AE-8B20CC04FF75 20 | 21 | 22 | -------------------------------------------------------------------------------- /Templates/Folder Action Script/template.applescript: -------------------------------------------------------------------------------- 1 | -- ${TM_NEW_FILE_BASENAME}.applescript 2 | -- 3 | -- Created by ${TM_FULLNAME} on ${TM_DATE}. 4 | -- Copyright (c) ${TM_YEAR} ${TM_ORGANIZATION_NAME}. All rights reserved. 5 | -- 6 | 7 | on adding folder items to this_folder after receiving added_items 8 | 9 | -- do something useful 10 | 11 | end adding folder items to 12 | 13 | 14 | 15 | on removing folder items from this_folder after losing removed_items 16 | 17 | -- do something useful 18 | 19 | end removing folder items from 20 | 21 | 22 | 23 | on opening folder this_folder 24 | 25 | -- do something useful 26 | 27 | end opening folder 28 | 29 | 30 | 31 | on moving folder window for this_folder from original_bounds 32 | 33 | -- do something useful 34 | 35 | end moving folder window for 36 | 37 | 38 | 39 | on closing folder window for this_folder 40 | 41 | -- do something useful 42 | 43 | end closing folder window for -------------------------------------------------------------------------------- /Templates/Quicksilver Action/info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | command 6 | if [[ ! -f "$TM_NEW_FILE" ]]; then 7 | TM_YEAR=`date +%Y` \ 8 | TM_DATE=`date +%Y-%m-%d` \ 9 | perl -pe 's/\$\{([^}]*)\}/$ENV{$1}/g' \ 10 | < template.applescript > "$TM_NEW_FILE" 11 | fi 12 | extension 13 | applescript 14 | name 15 | Quicksilver Action 16 | scope 17 | source.applescript 18 | uuid 19 | CF6E1EB5-1F27-48FE-9DF9-EBEE11D2B5AC 20 | 21 | 22 | -------------------------------------------------------------------------------- /Templates/Quicksilver Action/template.applescript: -------------------------------------------------------------------------------- 1 | -- ${TM_NEW_FILE_BASENAME}.applescript 2 | -- 3 | -- Created by ${TM_FULLNAME} on ${TM_DATE}. 4 | -- Copyright (c) ${TM_YEAR} ${TM_ORGANIZATION_NAME}. All rights reserved. 5 | -- 6 | -- Place in ~/Library/Application Support/Quicksilver/Actions/ 7 | -- 8 | 9 | using terms from application "Quicksilver" 10 | on process text the_text 11 | 12 | -- do something useful 13 | 14 | end process text 15 | end using terms from -------------------------------------------------------------------------------- /Templates/Script with Arguments/info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | command 6 | if [[ ! -f "$TM_NEW_FILE" ]]; then 7 | TM_YEAR=`date +%Y` \ 8 | TM_DATE=`date +%Y-%m-%d` \ 9 | perl -pe 's/\$\{([^}]*)\}/$ENV{$1}/g' \ 10 | < template.applescript > "$TM_NEW_FILE" 11 | fi 12 | extension 13 | applescript 14 | name 15 | Script With Arguments 16 | scope 17 | source.applescript 18 | uuid 19 | D223316D-093C-4666-B4BB-B0701D188971 20 | 21 | 22 | -------------------------------------------------------------------------------- /Templates/Script with Arguments/template.applescript: -------------------------------------------------------------------------------- 1 | -- ${TM_NEW_FILE_BASENAME}.applescript 2 | -- 3 | -- Created by ${TM_FULLNAME} on ${TM_DATE}. 4 | -- Copyright (c) ${TM_YEAR} ${TM_ORGANIZATION_NAME}. All rights reserved. 5 | -- 6 | 7 | on run argv 8 | 9 | -- do something useful 10 | 11 | end run -------------------------------------------------------------------------------- /Templates/Script/info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | command 6 | if [[ ! -f "$TM_NEW_FILE" ]]; then 7 | TM_YEAR=`date +%Y` \ 8 | TM_DATE=`date +%Y-%m-%d` \ 9 | perl -pe 's/\$\{([^}]*)\}/$ENV{$1}/g' \ 10 | < template.applescript > "$TM_NEW_FILE" 11 | fi 12 | extension 13 | applescript 14 | name 15 | Script 16 | scope 17 | source.applescript 18 | uuid 19 | 96956F64-C7C8-4ED6-AFBB-17DDD6E49CD9 20 | 21 | 22 | -------------------------------------------------------------------------------- /Templates/Script/template.applescript: -------------------------------------------------------------------------------- 1 | -- ${TM_NEW_FILE_BASENAME}.applescript 2 | -- 3 | -- Created by ${TM_FULLNAME} on ${TM_DATE}. 4 | -- Copyright (c) ${TM_YEAR} ${TM_ORGANIZATION_NAME}. All rights reserved. 5 | -- 6 | 7 | on run 8 | 9 | -- do something useful 10 | 11 | end run -------------------------------------------------------------------------------- /Tests/Indent.applescript: -------------------------------------------------------------------------------- 1 | -- Single line tell and if shuldn't cause an indent or fold 2 | if 1 is 2 then beep 3 | tell the application "Finder" to beep 4 | 5 | -- forcewrapped single line shoud indent without folding -- NOT POSSIBLE 6 | tell the application ¬ 7 | "Finder" to beep 8 | 9 | -- Normal tell & if should fold & indent 10 | tell the application "Finder" 11 | beep 12 | end tell 13 | 14 | if 1 is 2 then 15 | beep 16 | else if 1 is 5 17 | say "cool" 18 | else 19 | beep 20 | end if 21 | 22 | -------------------------------------------------------------------------------- /info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | contactEmailRot13 6 | wnpbobyhf@tznvy.pbz 7 | contactName 8 | Jacob Rus 9 | defaultScopeSelector 10 | source.applescript 11 | deleted 12 | 13 | 5E73B881-8616-4D0F-BFCE-1683F514E4B2 14 | AC4DE330-7111-44CB-A92D-A89BCBE453C6 15 | AC537FB5-DE6E-4D07-A22F-CE62215417F6 16 | 9AA919C1-D7EB-4675-9B7A-6D0A99378F3F 17 | AD6C0DB7-E3A9-44A0-A9AC-225BBAF49554 18 | 19 | description 20 | Write and run your <a href="http://www.apple.com/macosx/features/applescript/">AppleScripts</a> with this bundle. Contains lots of useful snippets. 21 | mainMenu 22 | 23 | excludedItems 24 | 25 | 9755F5E9-3919-4E82-AAAD-9ECB64FD718A 26 | 27 | items 28 | 29 | 28D28F3B-C59B-4387-A67E-65CFF1CBC62B 30 | FAA71813-1CC3-45BC-BDC4-EE388D80746C 31 | E3DD341F-94E6-460C-8EDA-D1184B67866F 32 | ------------------------------------ 33 | 62D406B7-43DD-4F31-B38C-FDFBE23675E2 34 | ------------------------------------ 35 | C612FAFE-1C82-444F-9EA1-20B113637890 36 | ------------------------------------ 37 | B3A4A195-4E22-482A-B257-189E7A6F67A3 38 | A804AEFD-CE31-4BC2-9C81-6F7F71B57ADE 39 | 64ED54CE-37EF-4714-9299-A647CF155BFF 40 | 7F78D9B6-A297-44E4-91EF-5B1E63D7B951 41 | ------------------------------------ 42 | 6A58371E-DED1-44A6-A873-88DEFE0CEA3B 43 | 44 | submenus 45 | 46 | 62D406B7-43DD-4F31-B38C-FDFBE23675E2 47 | 48 | items 49 | 50 | 565860C4-A665-4C64-81B0-CA7848B181A2 51 | B85D7CB4-5A47-4B49-831F-F2CCBFC5F48F 52 | 7B6716C8-A890-4803-8C61-5E31F1A4BE63 53 | 54 | name 55 | Conversion 56 | 57 | 64ED54CE-37EF-4714-9299-A647CF155BFF 58 | 59 | items 60 | 61 | 244EC5B2-5821-4364-8585-A2B241A57590 62 | 3495D4D5-E454-4A90-9288-8E7D34094544 63 | 7DD1F1C1-3E7B-4157-951E-58B22BA00AB9 64 | ------------------------------------ 65 | 36586BF4-F77B-42B6-ADEF-AD2B65298602 66 | E4CD6ED0-73A9-48A5-95F1-74794A93401F 67 | 1D418F08-770F-4407-AE6A-3CCF2CD9FA6E 68 | ------------------------------------ 69 | DE1A37AA-FB0F-480F-99DC-3D79B35A49C1 70 | 61FA9A41-E511-488F-AA30-4216C9154BE7 71 | 5C6AB1CA-170D-42A9-8E3C-961FE1054934 72 | CDEB7EDE-7171-4801-AE12-258ED3F7A2BA 73 | 5100F3C7-EC8E-43C3-B844-2F384FCEC6C4 74 | C8B17E74-0D0F-4FC9-B53C-B2CD2BBE4EA4 75 | 76 | name 77 | Dialogs 78 | 79 | 7F78D9B6-A297-44E4-91EF-5B1E63D7B951 80 | 81 | items 82 | 83 | DB76600C-38FC-4B63-A1B6-CC926496B620 84 | E56CA3CB-D2C0-451F-B695-5E39D152708A 85 | E604B44D-3483-4993-9679-566392A03203 86 | 87 | name 88 | Idioms 89 | 90 | A804AEFD-CE31-4BC2-9C81-6F7F71B57ADE 91 | 92 | items 93 | 94 | 26A11710-54A2-4AB1-AE52-213869C21314 95 | E11743D3-7286-470A-9B32-16AB6188244C 96 | E9B6FF87-9B89-4F3C-811A-0A8CC78D1B26 97 | 3754B2CC-DB4C-4B2D-9DAF-08CD402BB672 98 | D1F93513-B220-4580-835D-0D689607E25B 99 | 1751AD24-B7C6-480B-A1A9-3A3682D5325E 100 | A26CF48B-F79C-4AEC-B2DC-9063DA264DDB 101 | 102 | name 103 | Statements 104 | 105 | B3A4A195-4E22-482A-B257-189E7A6F67A3 106 | 107 | items 108 | 109 | 883C87A4-C370-4C92-9307-3C46380EE12F 110 | 99F1A4C2-2156-4F24-902C-0F651B293ECE 111 | ------------------------------------ 112 | 27E30615-B821-4998-AC39-B503B75699DB 113 | ------------------------------------ 114 | 3E62DF03-32E3-40B6-978F-CD3DD86F8494 115 | 9E5E9C0B-471D-41FE-83CF-6BC51783B27F 116 | ------------------------------------ 117 | 4FFDA694-2B17-41AF-B92A-2172612CC82D 118 | 82EE8D3B-B2EE-457C-8412-F098DD5827FA 119 | 6CAD1A94-B03B-4E78-B67B-2F3CDAADBAFA 120 | D1707E70-B8FA-4EAA-B6B6-3BC860268829 121 | 1E31B99C-B436-4BA6-A754-E8EE5A73680D 122 | ------------------------------------ 123 | 301C492A-03BE-4EFF-87A9-2FD276376B9B 124 | A7169FD9-63FB-46EB-974F-6B31FFF4C52B 125 | 9C5B660B-94B9-44DD-AA84-F212AAE0065A 126 | E17ACBC4-BDC8-4ACE-B67A-9148BA4B8B18 127 | ------------------------------------ 128 | F6401A3A-7BDB-41E0-8628-3C2F24C3D5FC 129 | AFC90003-4B8B-4661-8958-81F47D5E8277 130 | 016BF4B7-53D3-49E0-A8DB-033917FAD031 131 | 132 | name 133 | Blocks 134 | 135 | C612FAFE-1C82-444F-9EA1-20B113637890 136 | 137 | items 138 | 139 | 2263B3B6-8D09-4B98-B056-3DF129226C78 140 | ------------------------------------ 141 | 2061AB22-C557-4C68-919E-9A8815577987 142 | C744043F-79AE-47D7-9E7A-F476F44437AC 143 | 0823F607-CC45-4AB7-A869-36DF8ED662A7 144 | ------------------------------------ 145 | 1A8892FB-D466-492D-A35C-DFF2C6168174 146 | E26E1CA5-D173-48A3-853C-D9E962550F8E 147 | ------------------------------------ 148 | 023F99B6-3F0B-4249-96E8-39CF824F1733 149 | BA54AD1A-04AC-4CD1-B282-7F65D58EFE2B 150 | 151 | name 152 | Documentation 153 | 154 | 155 | 156 | name 157 | AppleScript 158 | ordering 159 | 160 | 28D28F3B-C59B-4387-A67E-65CFF1CBC62B 161 | E3DD341F-94E6-460C-8EDA-D1184B67866F 162 | FAA71813-1CC3-45BC-BDC4-EE388D80746C 163 | 2263B3B6-8D09-4B98-B056-3DF129226C78 164 | 2061AB22-C557-4C68-919E-9A8815577987 165 | C744043F-79AE-47D7-9E7A-F476F44437AC 166 | 0823F607-CC45-4AB7-A869-36DF8ED662A7 167 | 023F99B6-3F0B-4249-96E8-39CF824F1733 168 | BA54AD1A-04AC-4CD1-B282-7F65D58EFE2B 169 | 1A8892FB-D466-492D-A35C-DFF2C6168174 170 | E26E1CA5-D173-48A3-853C-D9E962550F8E 171 | 883C87A4-C370-4C92-9307-3C46380EE12F 172 | 99F1A4C2-2156-4F24-902C-0F651B293ECE 173 | B85D7CB4-5A47-4B49-831F-F2CCBFC5F48F 174 | 565860C4-A665-4C64-81B0-CA7848B181A2 175 | 7B6716C8-A890-4803-8C61-5E31F1A4BE63 176 | 9755F5E9-3919-4E82-AAAD-9ECB64FD718A 177 | 6A58371E-DED1-44A6-A873-88DEFE0CEA3B 178 | 27E30615-B821-4998-AC39-B503B75699DB 179 | 3E62DF03-32E3-40B6-978F-CD3DD86F8494 180 | 9E5E9C0B-471D-41FE-83CF-6BC51783B27F 181 | 4FFDA694-2B17-41AF-B92A-2172612CC82D 182 | 82EE8D3B-B2EE-457C-8412-F098DD5827FA 183 | 6CAD1A94-B03B-4E78-B67B-2F3CDAADBAFA 184 | D1707E70-B8FA-4EAA-B6B6-3BC860268829 185 | 1E31B99C-B436-4BA6-A754-E8EE5A73680D 186 | 301C492A-03BE-4EFF-87A9-2FD276376B9B 187 | A7169FD9-63FB-46EB-974F-6B31FFF4C52B 188 | 9C5B660B-94B9-44DD-AA84-F212AAE0065A 189 | E17ACBC4-BDC8-4ACE-B67A-9148BA4B8B18 190 | F6401A3A-7BDB-41E0-8628-3C2F24C3D5FC 191 | AFC90003-4B8B-4661-8958-81F47D5E8277 192 | 016BF4B7-53D3-49E0-A8DB-033917FAD031 193 | 26A11710-54A2-4AB1-AE52-213869C21314 194 | E11743D3-7286-470A-9B32-16AB6188244C 195 | E9B6FF87-9B89-4F3C-811A-0A8CC78D1B26 196 | 3754B2CC-DB4C-4B2D-9DAF-08CD402BB672 197 | D1F93513-B220-4580-835D-0D689607E25B 198 | 1751AD24-B7C6-480B-A1A9-3A3682D5325E 199 | A26CF48B-F79C-4AEC-B2DC-9063DA264DDB 200 | 244EC5B2-5821-4364-8585-A2B241A57590 201 | 3495D4D5-E454-4A90-9288-8E7D34094544 202 | 7DD1F1C1-3E7B-4157-951E-58B22BA00AB9 203 | 36586BF4-F77B-42B6-ADEF-AD2B65298602 204 | E4CD6ED0-73A9-48A5-95F1-74794A93401F 205 | 1D418F08-770F-4407-AE6A-3CCF2CD9FA6E 206 | DE1A37AA-FB0F-480F-99DC-3D79B35A49C1 207 | 61FA9A41-E511-488F-AA30-4216C9154BE7 208 | 5C6AB1CA-170D-42A9-8E3C-961FE1054934 209 | CDEB7EDE-7171-4801-AE12-258ED3F7A2BA 210 | 5100F3C7-EC8E-43C3-B844-2F384FCEC6C4 211 | C8B17E74-0D0F-4FC9-B53C-B2CD2BBE4EA4 212 | E604B44D-3483-4993-9679-566392A03203 213 | E56CA3CB-D2C0-451F-B695-5E39D152708A 214 | DB76600C-38FC-4B63-A1B6-CC926496B620 215 | 777CF925-14B9-428E-B07B-17FAAB8FA27E 216 | C293E159-C4ED-4757-AD60-82E068A13962 217 | F4324AFF-97E6-4D2D-B425-B24E99383AA3 218 | 8F2DBD25-3DED-44CE-A902-05DCBC185A99 219 | 1E1529C4-A9D6-43AC-AB48-975F9BFCD7B7 220 | 316B199C-07AF-4BA7-81B7-BA01159D7D07 221 | 91A9ACD3-7233-475C-A7AE-8B20CC04FF75 222 | 96956F64-C7C8-4ED6-AFBB-17DDD6E49CD9 223 | D223316D-093C-4666-B4BB-B0701D188971 224 | CF6E1EB5-1F27-48FE-9DF9-EBEE11D2B5AC 225 | 226 | uuid 227 | 75DD2785-07CA-46DB-A1FE-C3773484A2D9 228 | 229 | 230 | --------------------------------------------------------------------------------