Embarking on making an ahk syntax-highlighting scheme for EditPad Pro, my favorite plain-text editor. There's already one but ancient and I'd like something robust. Will share once ready.
Thought I'd ask if there's a "canonical list" of ahk special words (built-ins) etc. somewhere, in convenient form.
I looked inside the config files of a few programs and found some very encouraging things. Just thought I'd still ask in case there is something already prepared that is seen as official.
What I've found so far:
The best, so far, was the file inside of SciteAHK:
Spoiler
# AutoHotkey keyword definitions for SciTE
#
# Do NOT edit this file!
# If there is someting here you want to change, go to Options > Open User properties,
# copy the setting there and change it. If you instead want to delete a setting, just
# write an analogous line in the User properties that sets it to blank.
#
ahk.if.commands=if ifequal ifexist ifgreater ifgreaterorequal ifinstring \
ifless iflessorequal ifmsgbox ifnotequal ifnotexist ifnotinstring ifwinactive \
ifwinexist ifwinnotactive ifwinnotexist
# Flow of control
ahk.keywords=\
break continue else exit exitapp gosub goto $(ahk.if.commands) \
loop pause return settimer sleep suspend \
static global local byref while until for class try catch throw finally
keywords.$(file.patterns.ahk)=$(ahk.keywords)
# Commands
ahk.keywords2=\
autotrim blockinput clipwait control controlclick controlfocus \
controlget controlgetfocus controlgetpos controlgettext controlmove \
controlsend controlsendraw controlsettext coordmode critical detecthiddentext \
detecthiddenwindows drive driveget drivespacefree edit envadd \
envdiv envget envmult envset envsub envupdate fileappend filecopy \
filecopydir filecreatedir filecreateshortcut filedelete filegetattrib \
filegetshortcut filegetsize filegettime filegetversion fileinstall filemove \
filemovedir fileread filereadline filerecycle filerecycleempty fileremovedir \
fileselectfile fileselectfolder filesetattrib filesettime formattime \
getkeystate groupactivate groupadd groupclose groupdeactivate gui \
guicontrol guicontrolget hotkey \
imagesearch inidelete iniread iniwrite input inputbox keyhistory keywait \
listhotkeys listlines listvars menu mouseclick mouseclickdrag mousegetpos \
mousemove msgbox outputdebug pixelgetcolor pixelsearch \
postmessage process progress random regdelete regread regwrite reload \
run runas runwait \
send sendevent sendinput sendlevel sendmessage sendmode sendplay sendraw \
setbatchlines setcapslockstate setcontroldelay setdefaultmousespeed setenv setformat \
setkeydelay setmousedelay setnumlockstate setscrolllockstate \
setstorecapslockmode settitlematchmode setwindelay setworkingdir \
shutdown sort soundbeep soundget soundgetwavevolume soundplay soundset \
soundsetwavevolume splashimage splashtextoff splashtexton splitpath \
statusbargettext statusbarwait stringcasesense stringgetpos stringleft \
stringlen stringlower stringmid stringreplace stringright stringsplit \
stringtrimleft stringtrimright stringupper sysget thread tooltip \
transform traytip urldownloadtofile winactivate winactivatebottom winclose \
winget wingetactivestats wingetactivetitle wingetclass wingetpos wingettext \
wingettitle winhide winkill winmaximize winmenuselectitem winminimize \
winminimizeall winminimizeallundo winmove winrestore winset winsettitle \
winshow winwait winwaitactive winwaitclose winwaitnotactive fileencoding setregview
keywords2.$(file.patterns.ahk)=$(ahk.keywords2)
# Functions
ahk.keywords3=\
abs acos asc asin atan ceil chr cos dllcall exp fileexist floor getkeystate numget numput registercallback \
il_add il_create il_destroy instr islabel isfunc ln log lv_add lv_delete lv_deletecol \
lv_getcount lv_getnext lv_gettext lv_insert lv_insertcol lv_modify \
lv_modifycol lv_setimagelist mod onmessage round \
regexmatch regexreplace \
sb_seticon sb_setparts sb_settext sin sqrt strlen substr tan \
tv_add tv_delete tv_getchild tv_getcount tv_getnext tv_get tv_getparent \
tv_getprev tv_getselection tv_gettext tv_modify tv_setimagelist \
varsetcapacity winactive winexist \
trim ltrim rtrim fileopen strget strput \
object array isobject objinsert objremove objminindex objmaxindex objsetcapacity objgetcapacity \
objgetaddress objnewenum objaddref objrelease objhaskey objclone objbindmethod \
_newenum comobjcreate comobjget comobjconnect comobjerror \
comobjactive comobject comobjenwrap comobjunwrap comobjmissing comobjtype comobjvalue comobjarray \
comobjquery comobjflags func \
getkeyname getkeyvk getkeysc isbyref exception strsplit format \
onexit onclipboardchange \
objinsertat objpush objrawset objdelete objremoveat objpop objlength \
ord strreplace
keywords3.$(file.patterns.ahk)=$(ahk.keywords3)
# Directives
ahk.keywords4=\
clipboardtimeout commentflag errorstdout escapechar \
hotkeyinterval hotkeymodifiertimeout hotstring if iftimeout ifwinactive ifwinexist include \
includeagain inputlevel installkeybdhook installmousehook keyhistory ltrim \
maxhotkeysperinterval maxmem maxthreads maxthreadsbuffer maxthreadsperhotkey menumaskkey \
noenv notrayicon persistent singleinstance usehook warn winactivateforce \
ifwinnotactive ifwinnotexist
keywords4.$(file.patterns.ahk)=$(ahk.keywords4)
# Keys and buttons
ahk.keywords5=\
shift lshift rshift alt lalt ralt control lcontrol rcontrol \
ctrl lctrl rctrl lwin rwin appskey \
altdown altup shiftdown shiftup ctrldown ctrlup \
lwindown lwinup rwindown rwinup \
lbutton rbutton mbutton wheelup wheeldown xbutton1 xbutton2 \
joy1 joy2 joy3 joy4 joy5 joy6 joy7 joy8 joy9 joy10 joy11 joy12 joy13 joy14 \
joy15 joy16 joy17 joy18 joy19 joy20 joy21 joy22 joy23 joy24 joy25 joy26 joy27 \
joy28 joy29 joy30 joy31 joy32 \
joyx joyy joyz joyr joyu joyv joypov joyname joybuttons joyaxes joyinfo \
space tab enter escape esc backspace bs delete del insert ins pgup pgdn \
home end up down left right \
printscreen ctrlbreak pause scrolllock capslock numlock \
numpad0 numpad1 numpad2 numpad3 numpad4 numpad5 numpad6 numpad7 numpad8 numpad9 \
numpadmult numpadadd numpadsub numpaddiv numpaddot numpaddel numpadins \
numpadclear numpadup numpaddown numpadleft numpadright numpadhome numpadend \
numpadpgup numpadpgdn numpadenter \
f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 \
f13 f14 f15 f16 f17 f18 f19 f20 f21 f22 f23 f24 \
browser_back browser_forward browser_refresh browser_stop browser_search \
browser_favorites browser_home volume_mute volume_down volume_up \
media_next media_prev media_stop media_play_pause \
launch_mail launch_media launch_app1 launch_app2 \
blind click raw wheelleft wheelright
keywords5.$(file.patterns.ahk)=$(ahk.keywords5)
# Variables
ahk.keywords6=\
a_ahkpath a_ahkversion a_appdata a_appdatacommon a_autotrim a_batchlines \
a_caretx a_carety a_computername a_controldelay a_cursor \
a_dd a_ddd a_dddd a_defaultmousespeed a_desktop a_desktopcommon \
a_detecthiddentext a_detecthiddenwindows a_endchar \
a_eventinfo a_exitreason a_formatfloat a_formatinteger a_gui a_guievent \
a_guicontrol a_guicontrolevent a_guiheight a_guiwidth a_guix a_guiy a_hour \
a_iconfile a_iconhidden a_iconnumber a_icontip a_index \
a_ipaddress1 a_ipaddress2 a_ipaddress3 a_ipaddress4 a_isadmin a_iscompiled \
a_issuspended a_keydelay a_language a_lasterror a_linefile a_linenumber \
a_loopfield a_loopfileattrib a_loopfiledir a_loopfileext a_loopfilefullpath \
a_loopfilelongpath a_loopfilename a_loopfileshortname a_loopfileshortpath \
a_loopfilesize a_loopfilesizekb a_loopfilesizemb a_loopfiletimeaccessed \
a_loopfiletimecreated a_loopfiletimemodified a_loopreadline a_loopregkey \
a_loopregname a_loopregsubkey a_loopregtimemodified a_loopregtype \
a_mday a_min a_mm a_mmm a_mmmm a_mon a_mousedelay a_msec a_mydocuments \
a_now a_nowutc a_numbatchlines a_ostype a_osversion a_priorhotkey \
a_programfiles a_programs a_programscommon a_screenheight a_screenwidth \
a_scriptdir a_scriptfullpath a_scriptname a_sec a_space a_startmenu \
a_startmenucommon a_startup a_startupcommon a_stringcasesense a_tab a_temp \
a_thishotkey a_thismenu a_thismenuitem a_thismenuitempos a_tickcount \
a_timeidle a_timeidlephysical a_timesincepriorhotkey a_timesincethishotkey \
a_titlematchmode a_titlematchmodespeed a_username a_wday a_windelay a_windir \
a_workingdir a_yday a_year a_yweek a_yyyy \
clipboard clipboardall comspec errorlevel programfiles \
true false a_thisfunc a_thislabel a_ispaused a_iscritical a_isunicode a_ptrsize \
a_scripthwnd a_priorkey a_is64bitos a_regview a_screendpi a_fileencoding
keywords6.$(file.patterns.ahk)=$(ahk.keywords6)
# Keywords
ahk.keywords7=\
ltrim rtrim join \
ahk_id ahk_pid ahk_class ahk_group ahk_exe \
processname processpath minmax controllist statuscd filesystem setlabel \
alwaysontop mainwindow nomainwindow useerrorlevel \
altsubmit hscroll vscroll imagelist wantctrla wantf2 vis visfirst \
wantreturn backgroundtrans \
minimizebox maximizebox sysmenu toolwindow exstyle \
check3 checkedgray readonly notab \
lastfound lastfoundexist \
alttab shiftalttab alttabmenu alttabandmenu alttabmenudismiss \
controllisthwnd hwnd \
deref pow bitnot bitand bitor bitxor bitshiftleft bitshiftright \
sendandmouse mousemove mousemoveoff \
hkey_local_machine hkey_users hkey_current_user hkey_classes_root \
hkey_current_config hklm hku hkcu hkcr hkcc \
reg_sz reg_expand_sz reg_multi_sz reg_dword reg_qword reg_binary \
reg_link reg_resource_list reg_full_resource_descriptor \
reg_resource_requirements_list reg_dword_big_endian \
regex \
pixel mouse screen relative rgb \
low belownormal normal abovenormal high realtime \
between contains in is integer float number digit xdigit \
integerfast floatfast \
alpha upper lower alnum time date \
not or and \
topmost top bottom transparent transcolor redraw region id idlast \
count list capacity eject lock unlock \
label serial type status \
seconds minutes hours days \
read parse \
logoff close error single shutdown menu exit reload \
tray add rename check uncheck togglecheck enable disable toggleenable default \
nodefault standard nostandard color delete deleteall icon noicon tip click \
show \
edit progress hotkey text picture pic groupbox button link \
checkbox radio dropdownlist ddl combobox statusbar treeview \
listbox listview datetime monthcal updown slider tab tab2 activex custom \
iconsmall tile report sortdesc nosort nosorthdr grid hdr autosize range \
xm ym ys xs xp yp dpiscale \
font resize owner submit nohide minimize maximize restore noactivate na \
cancel destroy center \
margin owndialogs guiescape guiclose guisize guicontextmenu guidropfiles \
tabstop section wrap border top bottom buttons \
expand first lines \
number uppercase lowercase limit password multi group background \
bold italic strike underline norm theme caption delimiter \
flash style checked \
password hidden left right center section move \
focus hide choose choosestring text pos enabled disabled visible \
notimers interrupt priority waitclose unicode tocodepage fromcodepage\
yes no ok cancel abort retry ignore force \
on off all send wanttab \
monitorcount monitorprimary monitorname \
monitorworkarea pid \
this base extends __get __set __call __delete __new new \
useunsetlocal useunsetglobal useenv localsameasglobal
keywords7.$(file.patterns.ahk)=$(ahk.keywords7)
#
# Do NOT edit this file!
# If there is someting here you want to change, go to Options > Open User properties,
# copy the setting there and change it. If you instead want to delete a setting, just
# write an analogous line in the User properties that sets it to blank.
#
ahk.if.commands=if ifequal ifexist ifgreater ifgreaterorequal ifinstring \
ifless iflessorequal ifmsgbox ifnotequal ifnotexist ifnotinstring ifwinactive \
ifwinexist ifwinnotactive ifwinnotexist
# Flow of control
ahk.keywords=\
break continue else exit exitapp gosub goto $(ahk.if.commands) \
loop pause return settimer sleep suspend \
static global local byref while until for class try catch throw finally
keywords.$(file.patterns.ahk)=$(ahk.keywords)
# Commands
ahk.keywords2=\
autotrim blockinput clipwait control controlclick controlfocus \
controlget controlgetfocus controlgetpos controlgettext controlmove \
controlsend controlsendraw controlsettext coordmode critical detecthiddentext \
detecthiddenwindows drive driveget drivespacefree edit envadd \
envdiv envget envmult envset envsub envupdate fileappend filecopy \
filecopydir filecreatedir filecreateshortcut filedelete filegetattrib \
filegetshortcut filegetsize filegettime filegetversion fileinstall filemove \
filemovedir fileread filereadline filerecycle filerecycleempty fileremovedir \
fileselectfile fileselectfolder filesetattrib filesettime formattime \
getkeystate groupactivate groupadd groupclose groupdeactivate gui \
guicontrol guicontrolget hotkey \
imagesearch inidelete iniread iniwrite input inputbox keyhistory keywait \
listhotkeys listlines listvars menu mouseclick mouseclickdrag mousegetpos \
mousemove msgbox outputdebug pixelgetcolor pixelsearch \
postmessage process progress random regdelete regread regwrite reload \
run runas runwait \
send sendevent sendinput sendlevel sendmessage sendmode sendplay sendraw \
setbatchlines setcapslockstate setcontroldelay setdefaultmousespeed setenv setformat \
setkeydelay setmousedelay setnumlockstate setscrolllockstate \
setstorecapslockmode settitlematchmode setwindelay setworkingdir \
shutdown sort soundbeep soundget soundgetwavevolume soundplay soundset \
soundsetwavevolume splashimage splashtextoff splashtexton splitpath \
statusbargettext statusbarwait stringcasesense stringgetpos stringleft \
stringlen stringlower stringmid stringreplace stringright stringsplit \
stringtrimleft stringtrimright stringupper sysget thread tooltip \
transform traytip urldownloadtofile winactivate winactivatebottom winclose \
winget wingetactivestats wingetactivetitle wingetclass wingetpos wingettext \
wingettitle winhide winkill winmaximize winmenuselectitem winminimize \
winminimizeall winminimizeallundo winmove winrestore winset winsettitle \
winshow winwait winwaitactive winwaitclose winwaitnotactive fileencoding setregview
keywords2.$(file.patterns.ahk)=$(ahk.keywords2)
# Functions
ahk.keywords3=\
abs acos asc asin atan ceil chr cos dllcall exp fileexist floor getkeystate numget numput registercallback \
il_add il_create il_destroy instr islabel isfunc ln log lv_add lv_delete lv_deletecol \
lv_getcount lv_getnext lv_gettext lv_insert lv_insertcol lv_modify \
lv_modifycol lv_setimagelist mod onmessage round \
regexmatch regexreplace \
sb_seticon sb_setparts sb_settext sin sqrt strlen substr tan \
tv_add tv_delete tv_getchild tv_getcount tv_getnext tv_get tv_getparent \
tv_getprev tv_getselection tv_gettext tv_modify tv_setimagelist \
varsetcapacity winactive winexist \
trim ltrim rtrim fileopen strget strput \
object array isobject objinsert objremove objminindex objmaxindex objsetcapacity objgetcapacity \
objgetaddress objnewenum objaddref objrelease objhaskey objclone objbindmethod \
_newenum comobjcreate comobjget comobjconnect comobjerror \
comobjactive comobject comobjenwrap comobjunwrap comobjmissing comobjtype comobjvalue comobjarray \
comobjquery comobjflags func \
getkeyname getkeyvk getkeysc isbyref exception strsplit format \
onexit onclipboardchange \
objinsertat objpush objrawset objdelete objremoveat objpop objlength \
ord strreplace
keywords3.$(file.patterns.ahk)=$(ahk.keywords3)
# Directives
ahk.keywords4=\
clipboardtimeout commentflag errorstdout escapechar \
hotkeyinterval hotkeymodifiertimeout hotstring if iftimeout ifwinactive ifwinexist include \
includeagain inputlevel installkeybdhook installmousehook keyhistory ltrim \
maxhotkeysperinterval maxmem maxthreads maxthreadsbuffer maxthreadsperhotkey menumaskkey \
noenv notrayicon persistent singleinstance usehook warn winactivateforce \
ifwinnotactive ifwinnotexist
keywords4.$(file.patterns.ahk)=$(ahk.keywords4)
# Keys and buttons
ahk.keywords5=\
shift lshift rshift alt lalt ralt control lcontrol rcontrol \
ctrl lctrl rctrl lwin rwin appskey \
altdown altup shiftdown shiftup ctrldown ctrlup \
lwindown lwinup rwindown rwinup \
lbutton rbutton mbutton wheelup wheeldown xbutton1 xbutton2 \
joy1 joy2 joy3 joy4 joy5 joy6 joy7 joy8 joy9 joy10 joy11 joy12 joy13 joy14 \
joy15 joy16 joy17 joy18 joy19 joy20 joy21 joy22 joy23 joy24 joy25 joy26 joy27 \
joy28 joy29 joy30 joy31 joy32 \
joyx joyy joyz joyr joyu joyv joypov joyname joybuttons joyaxes joyinfo \
space tab enter escape esc backspace bs delete del insert ins pgup pgdn \
home end up down left right \
printscreen ctrlbreak pause scrolllock capslock numlock \
numpad0 numpad1 numpad2 numpad3 numpad4 numpad5 numpad6 numpad7 numpad8 numpad9 \
numpadmult numpadadd numpadsub numpaddiv numpaddot numpaddel numpadins \
numpadclear numpadup numpaddown numpadleft numpadright numpadhome numpadend \
numpadpgup numpadpgdn numpadenter \
f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 \
f13 f14 f15 f16 f17 f18 f19 f20 f21 f22 f23 f24 \
browser_back browser_forward browser_refresh browser_stop browser_search \
browser_favorites browser_home volume_mute volume_down volume_up \
media_next media_prev media_stop media_play_pause \
launch_mail launch_media launch_app1 launch_app2 \
blind click raw wheelleft wheelright
keywords5.$(file.patterns.ahk)=$(ahk.keywords5)
# Variables
ahk.keywords6=\
a_ahkpath a_ahkversion a_appdata a_appdatacommon a_autotrim a_batchlines \
a_caretx a_carety a_computername a_controldelay a_cursor \
a_dd a_ddd a_dddd a_defaultmousespeed a_desktop a_desktopcommon \
a_detecthiddentext a_detecthiddenwindows a_endchar \
a_eventinfo a_exitreason a_formatfloat a_formatinteger a_gui a_guievent \
a_guicontrol a_guicontrolevent a_guiheight a_guiwidth a_guix a_guiy a_hour \
a_iconfile a_iconhidden a_iconnumber a_icontip a_index \
a_ipaddress1 a_ipaddress2 a_ipaddress3 a_ipaddress4 a_isadmin a_iscompiled \
a_issuspended a_keydelay a_language a_lasterror a_linefile a_linenumber \
a_loopfield a_loopfileattrib a_loopfiledir a_loopfileext a_loopfilefullpath \
a_loopfilelongpath a_loopfilename a_loopfileshortname a_loopfileshortpath \
a_loopfilesize a_loopfilesizekb a_loopfilesizemb a_loopfiletimeaccessed \
a_loopfiletimecreated a_loopfiletimemodified a_loopreadline a_loopregkey \
a_loopregname a_loopregsubkey a_loopregtimemodified a_loopregtype \
a_mday a_min a_mm a_mmm a_mmmm a_mon a_mousedelay a_msec a_mydocuments \
a_now a_nowutc a_numbatchlines a_ostype a_osversion a_priorhotkey \
a_programfiles a_programs a_programscommon a_screenheight a_screenwidth \
a_scriptdir a_scriptfullpath a_scriptname a_sec a_space a_startmenu \
a_startmenucommon a_startup a_startupcommon a_stringcasesense a_tab a_temp \
a_thishotkey a_thismenu a_thismenuitem a_thismenuitempos a_tickcount \
a_timeidle a_timeidlephysical a_timesincepriorhotkey a_timesincethishotkey \
a_titlematchmode a_titlematchmodespeed a_username a_wday a_windelay a_windir \
a_workingdir a_yday a_year a_yweek a_yyyy \
clipboard clipboardall comspec errorlevel programfiles \
true false a_thisfunc a_thislabel a_ispaused a_iscritical a_isunicode a_ptrsize \
a_scripthwnd a_priorkey a_is64bitos a_regview a_screendpi a_fileencoding
keywords6.$(file.patterns.ahk)=$(ahk.keywords6)
# Keywords
ahk.keywords7=\
ltrim rtrim join \
ahk_id ahk_pid ahk_class ahk_group ahk_exe \
processname processpath minmax controllist statuscd filesystem setlabel \
alwaysontop mainwindow nomainwindow useerrorlevel \
altsubmit hscroll vscroll imagelist wantctrla wantf2 vis visfirst \
wantreturn backgroundtrans \
minimizebox maximizebox sysmenu toolwindow exstyle \
check3 checkedgray readonly notab \
lastfound lastfoundexist \
alttab shiftalttab alttabmenu alttabandmenu alttabmenudismiss \
controllisthwnd hwnd \
deref pow bitnot bitand bitor bitxor bitshiftleft bitshiftright \
sendandmouse mousemove mousemoveoff \
hkey_local_machine hkey_users hkey_current_user hkey_classes_root \
hkey_current_config hklm hku hkcu hkcr hkcc \
reg_sz reg_expand_sz reg_multi_sz reg_dword reg_qword reg_binary \
reg_link reg_resource_list reg_full_resource_descriptor \
reg_resource_requirements_list reg_dword_big_endian \
regex \
pixel mouse screen relative rgb \
low belownormal normal abovenormal high realtime \
between contains in is integer float number digit xdigit \
integerfast floatfast \
alpha upper lower alnum time date \
not or and \
topmost top bottom transparent transcolor redraw region id idlast \
count list capacity eject lock unlock \
label serial type status \
seconds minutes hours days \
read parse \
logoff close error single shutdown menu exit reload \
tray add rename check uncheck togglecheck enable disable toggleenable default \
nodefault standard nostandard color delete deleteall icon noicon tip click \
show \
edit progress hotkey text picture pic groupbox button link \
checkbox radio dropdownlist ddl combobox statusbar treeview \
listbox listview datetime monthcal updown slider tab tab2 activex custom \
iconsmall tile report sortdesc nosort nosorthdr grid hdr autosize range \
xm ym ys xs xp yp dpiscale \
font resize owner submit nohide minimize maximize restore noactivate na \
cancel destroy center \
margin owndialogs guiescape guiclose guisize guicontextmenu guidropfiles \
tabstop section wrap border top bottom buttons \
expand first lines \
number uppercase lowercase limit password multi group background \
bold italic strike underline norm theme caption delimiter \
flash style checked \
password hidden left right center section move \
focus hide choose choosestring text pos enabled disabled visible \
notimers interrupt priority waitclose unicode tocodepage fromcodepage\
yes no ok cancel abort retry ignore force \
on off all send wanttab \
monitorcount monitorprimary monitorname \
monitorworkarea pid \
this base extends __get __set __call __delete __new new \
useunsetlocal useunsetglobal useenv localsameasglobal
keywords7.$(file.patterns.ahk)=$(ahk.keywords7)
Also found some useful-looking stuff in the two VS Code schemes:
1. clevesque scheme:
Spoiler
2. cweijan scheme: <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>fileTypes</key>
<array>
<string>ahk</string>
</array>
<key>name</key>
<string>AutoHotkey</string>
<key>patterns</key>
<array>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.comment.ahk</string>
</dict>
</dict>
<key>match</key>
<string>\s(;).*</string>
<key>name</key>
<string>comment.line.semicolon.ahk</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.comment.ahk</string>
</dict>
</dict>
<key>match</key>
<string>^(;).*</string>
<key>name</key>
<string>comment.line.semicolon.ahk</string>
</dict>
<dict>
<key>begin</key>
<string>^\s*/\*</string>
<key>end</key>
<string>^\s*\*/</string>
<key>name</key>
<string>comment.block.slashstar.ahk</string>
</dict>
<dict>
<key>begin</key>
<string>^\s*\((?!.*\))</string>
<key>end</key>
<string>^\s*\)</string>
<key>name</key>
<string>string.ahk</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>entity.name.function.label.ahk</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>comment.line.semicolon.label.ahk</string>
</dict>
</dict>
<key>match</key>
<string>^\s*(\w+:)\s*(;.*)?$</string>
<key>name</key>
<string>labelline.ahk</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>entity.name.function.label.ahk</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.equals.colon</string>
</dict>
</dict>
<key>match</key>
<string>^\s*(.+)(::)</string>
<key>name</key>
<string>hotkeyline.ahk</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>string.parameter.import.ahk</string>
</dict>
</dict>
<key>match</key>
<string>#\b(?i:include|includeagain)\b(.*)$</string>
<key>name</key>
<string>keyword.control.import.ahk</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>string.parameter.directives.ahk</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>comment.line.semicolon.directive.ahk</string>
</dict>
</dict>
<key>match</key>
<string>#\b(?i:allowsamelinecomments|clipboardtimeout|commentflag|errorstdout|escapechar|hotkeyinterval|hotkeymodifiertimeout|hotstring|if|iftimeout|ifwinactive|ifwinexist|ifwinnotactive|ifwinnotexist|inputlevel|installkeybdhook|installmousehook|keyhistory|ltrim|maxhotkeysperinterval|maxmem|maxthreads|maxthreadsbuffer|maxthreadsperhotkey|menumaskkey|noenv|notrayicon|persistent|singleinstance|usehook|warn|winactivateforce)\b([^;]*)(;.*)?$</string>
<key>name</key>
<string>keyword.control.directives.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?i:autotrim|blockinput|click|clipwait|control|controlclick|controlfocus|controlget|controlgetfocus|controlgetpos|controlgettext|controlmove|controlsend|controlsendraw|controlsettext|coordmode|detecthiddentext|detecthiddenwindows|drive|driveget|drivespacefree|edit|envadd|envdiv|envget|envmult|envset|envsub|envupdate|fileappend|filecopy|filecopydir|filecreatedir|filecreateshortcut|filedelete|fileencoding|filegetattrib|filegetshortcut|filegetsize|filegettime|filegetversion|fileinstall|filemove|filemovedir|fileread|filereadline|filerecycle|filerecycleempty|fileremovedir|fileselectfile|fileselectfolder|filesetattrib|filesettime|formattime|getkeystate|gosub|goto|groupactivate|groupadd|groupclose|groupdeactivate|gui|guicontrol|guicontrolget|hotkey|ifequal|ifexist|ifgreater|ifgreaterorequal|ifinstring|ifless|iflessorequal|ifmsgbox|ifnotequal|ifnotexist|ifnotinstring|ifwinactive|ifwinexist|ifwinnotactive|ifwinnotexist|imagesearch|inidelete|iniread|iniwrite|input|inputbox|keyhistory|keywait|listhotkeys|listlines|listvars|menu|mouseclick|mouseclickdrag|mousegetpos|mousemove|msgbox|onexit|outputdebug|pause|pixelgetcolor|pixelsearch|postmessage|process|progress|random|regdelete|regread|regwrite|reload|run|runas|runwait|send|sendevent|sendinput|sendlevel|sendmessage|sendmode|sendplay|sendraw|setbatchlines|setcapslockstate|setcontroldelay|setdefaultmousespeed|setenv|setformat|setkeydelay|setmousedelay|setnumlockstate|setscrolllockstate|setstorecapslockmode|setregview|settimer|settitlematchmode|setwindelay|setworkingdir|shutdown|sleep|sort|soundbeep|soundget|soundgetwavevolume|soundplay|soundset|soundsetwavevolume|splashimage|splashtextoff|splashtexton|splitpath|statusbargettext|statusbarwait|stringcasesense|stringgetpos|stringleft|stringlen|stringlower|stringmid|stringreplace|stringright|stringsplit|stringtrimleft|stringtrimright|stringupper|suspend|sysget|thread|tooltip|transform|traytip|urldownloadtofile|winactivate|winactivatebottom|winclose|winget|wingetactivestats|wingetactivetitle|wingetclass|wingetpos|wingettext|wingettitle|winhide|winkill|winmaximize|winmenuselectitem|winminimize|winminimizeall|winminimizeallundo|winmove|winrestore|winset|winsettitle|winshow|winwait|winwaitactive|winwaitclose|winwaitnotactive)\b</string>
<key>name</key>
<string>support.function.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?!MsgBox)(?i:abs|acos|asc|asin|atan|ceil|chr|cos|comobjcreate|comobjactive|comobjarray|comobjconnect|comobjenwrap|comobjerror|comobjflags|comobjget|comobjmissing|comobjparameter|comobjquery|comobjtype|comobjunwrap|comobjvalue|dllcall|exp|fileexist|fileopen|floor|format|func|getkeyname|getkeyvk|getkeysc|getkeystate|il_add|il_create|il_destroy|instr|isbyref|isfunc|islabel|isobject|ln|log|ltrim|lv_add|lv_delete|lv_deletecol|lv_getcount|lv_getnext|lv_gettext|lv_insert|lv_insertcol|lv_modify|lv_modifycol|lv_setimagelist|mod|onmessage|numget|numput|regexmatch|regexreplace|registercallback|round|rtrim|sb_seticon|sb_setparts|sb_settext|sin|sqrt|strget|strlen|strput|strsplit|substr|tan|trim|tv_add|tv_delete|tv_getchild|tv_getcount|tv_getnext|tv_get|tv_getparent|tv_getprev|tv_getselection|tv_gettext|tv_modify|varsetcapacity|winactive|winexist)(?=\()\b</string>
<key>name</key>
<string>support.function.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?!MsgBox)(?<=\.)(?i:read|write|readline|writeline|readuint|readint|readint64|readshort|readushort|readchar|readuchar|readdouble|readfloat|writeuint|writeint|writeint64|writeshort|writeushort|writechar|writeuchar|writedouble|writefloat|rawread|rawwrite|seek|tell|close|insert|remove|minindex|maxindex|setcapacity|getcapacity|getaddress|newenum|haskey|clone|isoptional|__new|__call|__get|__set|__delete)(?=\()\b</string>
<key>name</key>
<string>support.function.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?!MsgBox)(?<=\.)(?i:length|ateof|encoding|__handle|name|isbuiltin|isvariadic|minparams|maxparams|position|pos)(?!\[|\(|\.)\b</string>
<key>name</key>
<string>support.function.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?!MsgBox)([\w]+)(?=\()</string>
<key>name</key>
<string>support.function.ahk</string>
</dict>
<dict>
<key>match</key>
<string>^MsgBox</string>
<key>name</key>
<string>support.function.msgbox.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?!MsgBox)(?i:a_ahkpath|a_ahkversion|a_appdata|a_appdatacommon|a_autotrim|a_batchlines|a_caretx|a_carety|a_computername|a_controldelay|a_cursor|a_dd|a_ddd|a_dddd|a_defaultmousespeed|a_desktop|a_desktopcommon|a_detecthiddentext|a_detecthiddenwindows|a_endchar|a_eventinfo|a_exitreason|a_fileencoding|a_formatfloat|a_formatinteger|a_gui|a_guievent|a_guicontrol|a_guicontrolevent|a_guiheight|a_guiwidth|a_guix|a_guiy|a_hour|a_iconfile|a_iconhidden|a_iconnumber|a_icontip|a_index|a_ipaddress1|a_ipaddress2|a_ipaddress3|a_ipaddress4|a_is64bitos|a_isadmin|a_iscompiled|a_iscritical|a_ispaused|a_issuspended|a_isunicode|a_keydelay|a_language|a_lasterror|a_linefile|a_linenumber|a_loopfield|a_loopfileattrib|a_loopfiledir|a_loopfileext|a_loopfilefullpath|a_loopfilelongpath|a_loopfilename|a_loopfileshortname|a_loopfileshortpath|a_loopfilesize|a_loopfilesizekb|a_loopfilesizemb|a_loopfiletimeaccessed|a_loopfiletimecreated|a_loopfiletimemodified|a_loopreadline|a_loopregkey|a_loopregname|a_loopregsubkey|a_loopregtimemodified|a_loopregtype|a_mday|a_min|a_mm|a_mmm|a_mmmm|a_mon|a_mousedelay|a_msec|a_mydocuments|a_now|a_nowutc|a_numbatchlines|a_ostype|a_osversion|a_priorhotkey|a_priorkey|a_programfiles|a_programs|a_programscommon|a_ptrsize|a_regview|a_screendpi|a_screenheight|a_screenwidth|a_scriptdir|a_scriptfullpath|a_scripthwnd|a_scriptname|a_sec|a_space|a_startmenu|a_startmenucommon|a_startup|a_startupcommon|a_stringcasesense|a_tab|a_temp|a_thisfunc|a_thishotkey|a_thislabel|a_thismenu|a_thismenuitem|a_thismenuitempos|a_tickcount|a_timeidle|a_timeidlephysical|a_timesincepriorhotkey|a_timesincethishotkey|a_titlematchmode|a_titlematchmodespeed|a_username|a_wday|a_windelay|a_windir|a_workingdir|a_yday|a_year|a_yweek|a_yyyy|clipboard|clipboardall|comspec|errorlevel|programfiles|true|false)\b</string>
<key>name</key>
<string>support.type.builtin.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?!MsgBox)(?i:shift|lshift|rshift|alt|lalt|ralt|control|lcontrol|rcontrol|ctrl|lctrl|rctrl|lwin|rwin|appskey|altdown|altup|shiftdown|shiftup|ctrldown|ctrlup|lwindown|lwinup|rwindown|rwinup|lbutton|rbutton|mbutton|wheelup|wheelleft|wheelright|wheeldown|xbutton1|xbutton2|joy1|joy2|joy3|joy4|joy5|joy6|joy7|joy8|joy9|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy30|joy31|joy32|joyx|joyy|joyz|joyr|joyu|joyv|joypov|joyname|joybuttons|joyaxes|joyinfo|space|tab|enter|escape|esc|backspace|bs|delete|del|insert|ins|pgup|pgdn|home|end|up|down|left|right|printscreen|ctrlbreak|pause|scrolllock|capslock|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadmult|numpadadd|numpadsub|numpaddiv|numpaddot|numpaddel|numpadins|numpadclear|numpadup|numpaddown|numpadleft|numpadright|numpadhome|numpadend|numpadpgup|numpadpgdn|numpadenter|f1|f2|f3|f4|f5|f6|f7|f8|f9|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f20|f21|f22|f23|f24|browser_back|browser_forward|browser_refresh|browser_stop|browser_search|browser_favorites|browser_home|volume_mute|volume_down|volume_up|media_next|media_prev|media_stop|media_play_pause|launch_mail|launch_media|launch_app1|launch_app2)\b</string>
<key>name</key>
<string>keyword.keys.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?!MsgBox)(?<!\.)(?i:pixel|mouse|screen|relative|rgb|ltrim|rtrim|join|low|belownormal|normal|abovenormal|high|realtime|ahk_id|ahk_pid|ahk_class|ahk_group|between|contains|in|is|integer|float|integerfast|floatfast|number|digit|xdigit|alpha|upper|lower|alnum|time|date|not|or|and|alwaysontop|topmost|top|bottom|transparent|transcolor|redraw|region|id|idlast|processname|minmax|controllist|count|list|capacity|statuscd|eject|lock|unlock|label|filesystem|label|setlabel|serial|type|status|static|global|local|byref|seconds|minutes|hours|days|read|parse|logoff|close|error|single|tray|add|rename|check|uncheck|togglecheck|enable|disable|toggleenable|default|nodefault|standard|nostandard|color|delete|deleteall|icon|noicon|tip|click|show|mainwindow|nomainwindow|useerrorlevel|text|picture|pic|groupbox|button|checkbox|radio|dropdownlist|ddl|combobox|listbox|listview|datetime|monthcal|updown|slider|tab|tab2|statusbar|treeview|iconsmall|tile|report|sortdesc|nosort|nosorthdr|grid|hdr|autosize|range|xm|ym|ys|xs|xp|yp|font|resize|owner|submit|nohide|minimize|maximize|restore|noactivate|na|cancel|destroy|center|margin|maxsize|minsize|owndialogs|guiescape|guiclose|guisize|guicontextmenu|guidropfiles|tabstop|section|altsubmit|wrap|hscroll|vscroll|border|top|bottom|buttons|expand|first|imagelist|lines|wantctrla|wantf2|vis|visfirst|number|uppercase|lowercase|limit|password|multi|wantreturn|group|background|bold|italic|strike|underline|norm|backgroundtrans|theme|caption|delimiter|minimizebox|maximizebox|sysmenu|toolwindow|flash|style|exstyle|check3|checked|checkedgray|readonly|password|hidden|left|right|center|notab|section|move|focus|hide|choose|choosestring|text|pos|enabled|disabled|visible|lastfound|lastfoundexist|alttab|shiftalttab|alttabmenu|alttabandmenu|alttabmenudismiss|notimers|interrupt|priority|waitclose|blind|raw|unicode|deref|pow|bitnot|bitand|bitor|bitxor|bitshiftleft|bitshiftright|yes|no|ok|cancel|abort|retry|ignore|tryagain|on|off|all|hkey_local_machine|hkey_users|hkey_current_user|hkey_classes_root|hkey_current_config|hklm|hku|hkcu|hkcr|hkcc|reg_sz|reg_expand_sz|reg_multi_sz|reg_dword|reg_qword|reg_binary|reg_link|reg_resource_list|reg_full_resource_descriptor|reg_resource_requirements_list|reg_dword_big_endian|alwayson|alwaysoff|dpiscale|parent)(?!\[|\(|\.)\b</string>
<key>name</key>
<string>keyword.other.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?!MsgBox)(?<!\.)(?i:if|else|return|loop|break|for|while|class|extends|catch|finally|throw|try|until|continue|critical|exit|exitapp)\b</string>
<key>name</key>
<string>keyword.control.ahk</string>
</dict>
<dict>
<key>match</key>
<string>(?x) \b
((0(x|X)[0-9a-fA-F]*)
|(
([0-9]+\.?[0-9]*)
|(\.[0-9]+)
)((e|E)(\+|-)?[0-9]+)?
)\b
</string>
<key>name</key>
<string>constant.numeric.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\+|-|\*|\^|/|&|#|!|~|\|</string>
<key>name</key>
<string>keyword.operator.arithmetic.ahk</string>
</dict>
<dict>
<key>match</key>
<string>:=|\.=|=|::</string>
<key>name</key>
<string>keyword.operator.assignment.ahk</string>
</dict>
<dict>
<key>match</key>
<string><|>|<>|[<>=]=|!=</string>
<key>name</key>
<string>keyword.operator.comparison.ahk</string>
</dict>
<dict>
<key>match</key>
<string>:|\?|`|,</string>
<key>name</key>
<string>punctuation.ahk</string>
</dict>
<dict>
<key>match</key>
<string>[\[\](){}]</string>
<key>name</key>
<string>punctuation.bracket.ahk</string>
</dict>
<dict>
<key>match</key>
<string>%</string>
<key>name</key>
<string>punctuation.definition.variable.percent.ahk</string>
</dict>
<dict>
<key>begin</key>
<string>(")</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ahk</string>
</dict>
</dict>
<key>end</key>
<string>(")(?!")|^</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ahk</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.ahk</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>""</string>
<key>name</key>
<string>constant.character.escape.ahk</string>
</dict>
</array>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>entity.name.function.ahk</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.bracket.parenthesis.ahk</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>string.function.arguments.ahk</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>punctuation.bracket.parenthesis.ahk</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.bracket.curly.ahk</string>
</dict>
<key>6</key>
<dict>
<key>name</key>
<string>comment.line.semicolon.functionline.ahk</string>
</dict>
</dict>
<key>match</key>
<string>^(\s*\w+)(\()(.*)(\))\s*({)\s*(;?.*)$</string>
<key>name</key>
<string>functionline.ahk</string>
</dict>
</array>
<key>scopeName</key>
<string>source.ahk</string>
<key>uuid</key>
<string>77AC23B6-8A90-11D9-BAA4-000A9584EC8D</string>
</dict>
</plist>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>fileTypes</key>
<array>
<string>ahk</string>
</array>
<key>name</key>
<string>AutoHotkey</string>
<key>patterns</key>
<array>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.comment.ahk</string>
</dict>
</dict>
<key>match</key>
<string>\s(;).*</string>
<key>name</key>
<string>comment.line.semicolon.ahk</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.comment.ahk</string>
</dict>
</dict>
<key>match</key>
<string>^(;).*</string>
<key>name</key>
<string>comment.line.semicolon.ahk</string>
</dict>
<dict>
<key>begin</key>
<string>^\s*/\*</string>
<key>end</key>
<string>^\s*\*/</string>
<key>name</key>
<string>comment.block.slashstar.ahk</string>
</dict>
<dict>
<key>begin</key>
<string>^\s*\((?!.*\))</string>
<key>end</key>
<string>^\s*\)</string>
<key>name</key>
<string>string.ahk</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>entity.name.function.label.ahk</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>comment.line.semicolon.label.ahk</string>
</dict>
</dict>
<key>match</key>
<string>^\s*(\w+:)\s*(;.*)?$</string>
<key>name</key>
<string>labelline.ahk</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>entity.name.function.label.ahk</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.equals.colon</string>
</dict>
</dict>
<key>match</key>
<string>^\s*(.+)(::)</string>
<key>name</key>
<string>hotkeyline.ahk</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>string.parameter.import.ahk</string>
</dict>
</dict>
<key>match</key>
<string>#\b(?i:include|includeagain)\b(.*)$</string>
<key>name</key>
<string>keyword.control.import.ahk</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>string.parameter.directives.ahk</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>comment.line.semicolon.directive.ahk</string>
</dict>
</dict>
<key>match</key>
<string>#\b(?i:allowsamelinecomments|clipboardtimeout|commentflag|errorstdout|escapechar|hotkeyinterval|hotkeymodifiertimeout|hotstring|if|iftimeout|ifwinactive|ifwinexist|ifwinnotactive|ifwinnotexist|inputlevel|installkeybdhook|installmousehook|keyhistory|ltrim|maxhotkeysperinterval|maxmem|maxthreads|maxthreadsbuffer|maxthreadsperhotkey|menumaskkey|noenv|notrayicon|persistent|singleinstance|usehook|warn|winactivateforce)\b([^;]*)(;.*)?$</string>
<key>name</key>
<string>keyword.control.directives.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?i:autotrim|blockinput|click|clipwait|control|controlclick|controlfocus|controlget|controlgetfocus|controlgetpos|controlgettext|controlmove|controlsend|controlsendraw|controlsettext|coordmode|detecthiddentext|detecthiddenwindows|drive|driveget|drivespacefree|edit|envadd|envdiv|envget|envmult|envset|envsub|envupdate|fileappend|filecopy|filecopydir|filecreatedir|filecreateshortcut|filedelete|fileencoding|filegetattrib|filegetshortcut|filegetsize|filegettime|filegetversion|fileinstall|filemove|filemovedir|fileread|filereadline|filerecycle|filerecycleempty|fileremovedir|fileselectfile|fileselectfolder|filesetattrib|filesettime|formattime|getkeystate|gosub|goto|groupactivate|groupadd|groupclose|groupdeactivate|gui|guicontrol|guicontrolget|hotkey|ifequal|ifexist|ifgreater|ifgreaterorequal|ifinstring|ifless|iflessorequal|ifmsgbox|ifnotequal|ifnotexist|ifnotinstring|ifwinactive|ifwinexist|ifwinnotactive|ifwinnotexist|imagesearch|inidelete|iniread|iniwrite|input|inputbox|keyhistory|keywait|listhotkeys|listlines|listvars|menu|mouseclick|mouseclickdrag|mousegetpos|mousemove|msgbox|onexit|outputdebug|pause|pixelgetcolor|pixelsearch|postmessage|process|progress|random|regdelete|regread|regwrite|reload|run|runas|runwait|send|sendevent|sendinput|sendlevel|sendmessage|sendmode|sendplay|sendraw|setbatchlines|setcapslockstate|setcontroldelay|setdefaultmousespeed|setenv|setformat|setkeydelay|setmousedelay|setnumlockstate|setscrolllockstate|setstorecapslockmode|setregview|settimer|settitlematchmode|setwindelay|setworkingdir|shutdown|sleep|sort|soundbeep|soundget|soundgetwavevolume|soundplay|soundset|soundsetwavevolume|splashimage|splashtextoff|splashtexton|splitpath|statusbargettext|statusbarwait|stringcasesense|stringgetpos|stringleft|stringlen|stringlower|stringmid|stringreplace|stringright|stringsplit|stringtrimleft|stringtrimright|stringupper|suspend|sysget|thread|tooltip|transform|traytip|urldownloadtofile|winactivate|winactivatebottom|winclose|winget|wingetactivestats|wingetactivetitle|wingetclass|wingetpos|wingettext|wingettitle|winhide|winkill|winmaximize|winmenuselectitem|winminimize|winminimizeall|winminimizeallundo|winmove|winrestore|winset|winsettitle|winshow|winwait|winwaitactive|winwaitclose|winwaitnotactive)\b</string>
<key>name</key>
<string>support.function.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?!MsgBox)(?i:abs|acos|asc|asin|atan|ceil|chr|cos|comobjcreate|comobjactive|comobjarray|comobjconnect|comobjenwrap|comobjerror|comobjflags|comobjget|comobjmissing|comobjparameter|comobjquery|comobjtype|comobjunwrap|comobjvalue|dllcall|exp|fileexist|fileopen|floor|format|func|getkeyname|getkeyvk|getkeysc|getkeystate|il_add|il_create|il_destroy|instr|isbyref|isfunc|islabel|isobject|ln|log|ltrim|lv_add|lv_delete|lv_deletecol|lv_getcount|lv_getnext|lv_gettext|lv_insert|lv_insertcol|lv_modify|lv_modifycol|lv_setimagelist|mod|onmessage|numget|numput|regexmatch|regexreplace|registercallback|round|rtrim|sb_seticon|sb_setparts|sb_settext|sin|sqrt|strget|strlen|strput|strsplit|substr|tan|trim|tv_add|tv_delete|tv_getchild|tv_getcount|tv_getnext|tv_get|tv_getparent|tv_getprev|tv_getselection|tv_gettext|tv_modify|varsetcapacity|winactive|winexist)(?=\()\b</string>
<key>name</key>
<string>support.function.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?!MsgBox)(?<=\.)(?i:read|write|readline|writeline|readuint|readint|readint64|readshort|readushort|readchar|readuchar|readdouble|readfloat|writeuint|writeint|writeint64|writeshort|writeushort|writechar|writeuchar|writedouble|writefloat|rawread|rawwrite|seek|tell|close|insert|remove|minindex|maxindex|setcapacity|getcapacity|getaddress|newenum|haskey|clone|isoptional|__new|__call|__get|__set|__delete)(?=\()\b</string>
<key>name</key>
<string>support.function.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?!MsgBox)(?<=\.)(?i:length|ateof|encoding|__handle|name|isbuiltin|isvariadic|minparams|maxparams|position|pos)(?!\[|\(|\.)\b</string>
<key>name</key>
<string>support.function.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?!MsgBox)([\w]+)(?=\()</string>
<key>name</key>
<string>support.function.ahk</string>
</dict>
<dict>
<key>match</key>
<string>^MsgBox</string>
<key>name</key>
<string>support.function.msgbox.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?!MsgBox)(?i:a_ahkpath|a_ahkversion|a_appdata|a_appdatacommon|a_autotrim|a_batchlines|a_caretx|a_carety|a_computername|a_controldelay|a_cursor|a_dd|a_ddd|a_dddd|a_defaultmousespeed|a_desktop|a_desktopcommon|a_detecthiddentext|a_detecthiddenwindows|a_endchar|a_eventinfo|a_exitreason|a_fileencoding|a_formatfloat|a_formatinteger|a_gui|a_guievent|a_guicontrol|a_guicontrolevent|a_guiheight|a_guiwidth|a_guix|a_guiy|a_hour|a_iconfile|a_iconhidden|a_iconnumber|a_icontip|a_index|a_ipaddress1|a_ipaddress2|a_ipaddress3|a_ipaddress4|a_is64bitos|a_isadmin|a_iscompiled|a_iscritical|a_ispaused|a_issuspended|a_isunicode|a_keydelay|a_language|a_lasterror|a_linefile|a_linenumber|a_loopfield|a_loopfileattrib|a_loopfiledir|a_loopfileext|a_loopfilefullpath|a_loopfilelongpath|a_loopfilename|a_loopfileshortname|a_loopfileshortpath|a_loopfilesize|a_loopfilesizekb|a_loopfilesizemb|a_loopfiletimeaccessed|a_loopfiletimecreated|a_loopfiletimemodified|a_loopreadline|a_loopregkey|a_loopregname|a_loopregsubkey|a_loopregtimemodified|a_loopregtype|a_mday|a_min|a_mm|a_mmm|a_mmmm|a_mon|a_mousedelay|a_msec|a_mydocuments|a_now|a_nowutc|a_numbatchlines|a_ostype|a_osversion|a_priorhotkey|a_priorkey|a_programfiles|a_programs|a_programscommon|a_ptrsize|a_regview|a_screendpi|a_screenheight|a_screenwidth|a_scriptdir|a_scriptfullpath|a_scripthwnd|a_scriptname|a_sec|a_space|a_startmenu|a_startmenucommon|a_startup|a_startupcommon|a_stringcasesense|a_tab|a_temp|a_thisfunc|a_thishotkey|a_thislabel|a_thismenu|a_thismenuitem|a_thismenuitempos|a_tickcount|a_timeidle|a_timeidlephysical|a_timesincepriorhotkey|a_timesincethishotkey|a_titlematchmode|a_titlematchmodespeed|a_username|a_wday|a_windelay|a_windir|a_workingdir|a_yday|a_year|a_yweek|a_yyyy|clipboard|clipboardall|comspec|errorlevel|programfiles|true|false)\b</string>
<key>name</key>
<string>support.type.builtin.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?!MsgBox)(?i:shift|lshift|rshift|alt|lalt|ralt|control|lcontrol|rcontrol|ctrl|lctrl|rctrl|lwin|rwin|appskey|altdown|altup|shiftdown|shiftup|ctrldown|ctrlup|lwindown|lwinup|rwindown|rwinup|lbutton|rbutton|mbutton|wheelup|wheelleft|wheelright|wheeldown|xbutton1|xbutton2|joy1|joy2|joy3|joy4|joy5|joy6|joy7|joy8|joy9|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy30|joy31|joy32|joyx|joyy|joyz|joyr|joyu|joyv|joypov|joyname|joybuttons|joyaxes|joyinfo|space|tab|enter|escape|esc|backspace|bs|delete|del|insert|ins|pgup|pgdn|home|end|up|down|left|right|printscreen|ctrlbreak|pause|scrolllock|capslock|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadmult|numpadadd|numpadsub|numpaddiv|numpaddot|numpaddel|numpadins|numpadclear|numpadup|numpaddown|numpadleft|numpadright|numpadhome|numpadend|numpadpgup|numpadpgdn|numpadenter|f1|f2|f3|f4|f5|f6|f7|f8|f9|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f20|f21|f22|f23|f24|browser_back|browser_forward|browser_refresh|browser_stop|browser_search|browser_favorites|browser_home|volume_mute|volume_down|volume_up|media_next|media_prev|media_stop|media_play_pause|launch_mail|launch_media|launch_app1|launch_app2)\b</string>
<key>name</key>
<string>keyword.keys.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?!MsgBox)(?<!\.)(?i:pixel|mouse|screen|relative|rgb|ltrim|rtrim|join|low|belownormal|normal|abovenormal|high|realtime|ahk_id|ahk_pid|ahk_class|ahk_group|between|contains|in|is|integer|float|integerfast|floatfast|number|digit|xdigit|alpha|upper|lower|alnum|time|date|not|or|and|alwaysontop|topmost|top|bottom|transparent|transcolor|redraw|region|id|idlast|processname|minmax|controllist|count|list|capacity|statuscd|eject|lock|unlock|label|filesystem|label|setlabel|serial|type|status|static|global|local|byref|seconds|minutes|hours|days|read|parse|logoff|close|error|single|tray|add|rename|check|uncheck|togglecheck|enable|disable|toggleenable|default|nodefault|standard|nostandard|color|delete|deleteall|icon|noicon|tip|click|show|mainwindow|nomainwindow|useerrorlevel|text|picture|pic|groupbox|button|checkbox|radio|dropdownlist|ddl|combobox|listbox|listview|datetime|monthcal|updown|slider|tab|tab2|statusbar|treeview|iconsmall|tile|report|sortdesc|nosort|nosorthdr|grid|hdr|autosize|range|xm|ym|ys|xs|xp|yp|font|resize|owner|submit|nohide|minimize|maximize|restore|noactivate|na|cancel|destroy|center|margin|maxsize|minsize|owndialogs|guiescape|guiclose|guisize|guicontextmenu|guidropfiles|tabstop|section|altsubmit|wrap|hscroll|vscroll|border|top|bottom|buttons|expand|first|imagelist|lines|wantctrla|wantf2|vis|visfirst|number|uppercase|lowercase|limit|password|multi|wantreturn|group|background|bold|italic|strike|underline|norm|backgroundtrans|theme|caption|delimiter|minimizebox|maximizebox|sysmenu|toolwindow|flash|style|exstyle|check3|checked|checkedgray|readonly|password|hidden|left|right|center|notab|section|move|focus|hide|choose|choosestring|text|pos|enabled|disabled|visible|lastfound|lastfoundexist|alttab|shiftalttab|alttabmenu|alttabandmenu|alttabmenudismiss|notimers|interrupt|priority|waitclose|blind|raw|unicode|deref|pow|bitnot|bitand|bitor|bitxor|bitshiftleft|bitshiftright|yes|no|ok|cancel|abort|retry|ignore|tryagain|on|off|all|hkey_local_machine|hkey_users|hkey_current_user|hkey_classes_root|hkey_current_config|hklm|hku|hkcu|hkcr|hkcc|reg_sz|reg_expand_sz|reg_multi_sz|reg_dword|reg_qword|reg_binary|reg_link|reg_resource_list|reg_full_resource_descriptor|reg_resource_requirements_list|reg_dword_big_endian|alwayson|alwaysoff|dpiscale|parent)(?!\[|\(|\.)\b</string>
<key>name</key>
<string>keyword.other.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?!MsgBox)(?<!\.)(?i:if|else|return|loop|break|for|while|class|extends|catch|finally|throw|try|until|continue|critical|exit|exitapp)\b</string>
<key>name</key>
<string>keyword.control.ahk</string>
</dict>
<dict>
<key>match</key>
<string>(?x) \b
((0(x|X)[0-9a-fA-F]*)
|(
([0-9]+\.?[0-9]*)
|(\.[0-9]+)
)((e|E)(\+|-)?[0-9]+)?
)\b
</string>
<key>name</key>
<string>constant.numeric.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\+|-|\*|\^|/|&|#|!|~|\|</string>
<key>name</key>
<string>keyword.operator.arithmetic.ahk</string>
</dict>
<dict>
<key>match</key>
<string>:=|\.=|=|::</string>
<key>name</key>
<string>keyword.operator.assignment.ahk</string>
</dict>
<dict>
<key>match</key>
<string><|>|<>|[<>=]=|!=</string>
<key>name</key>
<string>keyword.operator.comparison.ahk</string>
</dict>
<dict>
<key>match</key>
<string>:|\?|`|,</string>
<key>name</key>
<string>punctuation.ahk</string>
</dict>
<dict>
<key>match</key>
<string>[\[\](){}]</string>
<key>name</key>
<string>punctuation.bracket.ahk</string>
</dict>
<dict>
<key>match</key>
<string>%</string>
<key>name</key>
<string>punctuation.definition.variable.percent.ahk</string>
</dict>
<dict>
<key>begin</key>
<string>(")</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ahk</string>
</dict>
</dict>
<key>end</key>
<string>(")(?!")|^</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ahk</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.ahk</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>""</string>
<key>name</key>
<string>constant.character.escape.ahk</string>
</dict>
</array>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>entity.name.function.ahk</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.bracket.parenthesis.ahk</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>string.function.arguments.ahk</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>punctuation.bracket.parenthesis.ahk</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.bracket.curly.ahk</string>
</dict>
<key>6</key>
<dict>
<key>name</key>
<string>comment.line.semicolon.functionline.ahk</string>
</dict>
</dict>
<key>match</key>
<string>^(\s*\w+)(\()(.*)(\))\s*({)\s*(;?.*)$</string>
<key>name</key>
<string>functionline.ahk</string>
</dict>
</array>
<key>scopeName</key>
<string>source.ahk</string>
<key>uuid</key>
<string>77AC23B6-8A90-11D9-BAA4-000A9584EC8D</string>
</dict>
</plist>
Spoiler
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>fileTypes</key>
<array>
<string>ahk</string>
</array>
<key>name</key>
<string>AutoHotkey</string>
<key>patterns</key>
<array>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.comment.ahk</string>
</dict>
</dict>
<key>match</key>
<string>\s(;).*</string>
<key>name</key>
<string>comment.line.semicolon.ahk</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.comment.ahk</string>
</dict>
</dict>
<key>match</key>
<string>^(;).*</string>
<key>name</key>
<string>comment.line.semicolon.ahk</string>
</dict>
<dict>
<key>begin</key>
<string>^\s*/\*</string>
<key>end</key>
<string>^\s*\*/</string>
<key>name</key>
<string>comment.block.slashstar.ahk</string>
</dict>
<dict>
<key>begin</key>
<string>^\s*\((?!.*\))</string>
<key>end</key>
<string>^\s*\)</string>
<key>name</key>
<string>string.ahk</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>entity.name.function.label.ahk</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>comment.line.semicolon.label.ahk</string>
</dict>
</dict>
<key>match</key>
<string>^\s*(\w+:)\s*(;.*)?$</string>
<key>name</key>
<string>labelline.ahk</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>entity.name.function.label.ahk</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.equals.colon</string>
</dict>
</dict>
<key>match</key>
<string>^\s*(.+)(::)</string>
<key>name</key>
<string>hotkeyline.ahk</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>string.parameter.import.ahk</string>
</dict>
</dict>
<key>match</key>
<string>#\b(?i:include|includeagain)\b(.*)$</string>
<key>name</key>
<string>keyword.control.import.ahk</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>string.parameter.directives.ahk</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>comment.line.semicolon.directive.ahk</string>
</dict>
</dict>
<key>match</key>
<string>#\b(?i:allowsamelinecomments|clipboardtimeout|commentflag|errorstdout|escapechar|hotkeyinterval|hotkeymodifiertimeout|hotstring|if|iftimeout|ifwinactive|ifwinexist|ifwinnotactive|ifwinnotexist|inputlevel|installkeybdhook|installmousehook|keyhistory|ltrim|maxhotkeysperinterval|maxmem|maxthreads|maxthreadsbuffer|maxthreadsperhotkey|menumaskkey|noenv|notrayicon|persistent|singleinstance|usehook|warn|winactivateforce)\b([^;]*)(\s+;.*)?$</string>
<key>name</key>
<string>keyword.control.directives.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?i:autotrim|blockinput|click|clipwait|control|controlclick|controlfocus|controlget|controlgetfocus|controlgetpos|controlgettext|controlmove|controlsend|controlsendraw|controlsettext|coordmode|detecthiddentext|detecthiddenwindows|drive|driveget|drivespacefree|edit|envadd|envdiv|envget|envmult|envset|envsub|envupdate|fileappend|filecopy|filecopydir|filecreatedir|filecreateshortcut|filedelete|fileencoding|filegetattrib|filegetshortcut|filegetsize|filegettime|filegetversion|fileinstall|filemove|filemovedir|fileread|filereadline|filerecycle|filerecycleempty|fileremovedir|fileselectfile|fileselectfolder|filesetattrib|filesettime|formattime|getkeystate|gosub|goto|groupactivate|groupadd|groupclose|groupdeactivate|gui|guicontrol|guicontrolget|hotkey|ifequal|ifexist|ifgreater|ifgreaterorequal|ifinstring|ifless|iflessorequal|ifmsgbox|ifnotequal|ifnotexist|ifnotinstring|ifwinactive|ifwinexist|ifwinnotactive|ifwinnotexist|imagesearch|inidelete|iniread|iniwrite|input|inputbox|keyhistory|keywait|listhotkeys|listlines|listvars|menu|mouseclick|mouseclickdrag|mousegetpos|mousemove|msgbox|onexit|outputdebug|pause|pixelgetcolor|pixelsearch|postmessage|process|progress|random|regdelete|regread|regwrite|reload|run|runas|runwait|send|sendevent|sendinput|sendlevel|sendmessage|sendmode|sendplay|sendraw|setbatchlines|setcapslockstate|setcontroldelay|setdefaultmousespeed|setenv|setformat|setkeydelay|setmousedelay|setnumlockstate|setscrolllockstate|setstorecapslockmode|setregview|settimer|settitlematchmode|setwindelay|setworkingdir|shutdown|sleep|sort|soundbeep|soundget|soundgetwavevolume|soundplay|soundset|soundsetwavevolume|splashimage|splashtextoff|splashtexton|splitpath|statusbargettext|statusbarwait|stringcasesense|stringgetpos|stringleft|stringlen|stringlower|stringmid|stringreplace|stringright|stringsplit|stringtrimleft|stringtrimright|stringupper|suspend|sysget|thread|tooltip|transform|traytip|urldownloadtofile|winactivate|winactivatebottom|winclose|winget|wingetactivestats|wingetactivetitle|wingetclass|wingetpos|wingettext|wingettitle|winhide|winkill|winmaximize|winmenuselectitem|winminimize|winminimizeall|winminimizeallundo|winmove|winrestore|winset|winsettitle|winshow|winwait|winwaitactive|winwaitclose|winwaitnotactive)\b</string>
<key>name</key>
<string>support.function.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?!MsgBox)(?i:abs|acos|asc|asin|atan|ceil|chr|cos|comobjcreate|comobjactive|comobjarray|comobjconnect|comobjenwrap|comobjerror|comobjflags|comobjget|comobjmissing|comobjparameter|comobjquery|comobjtype|comobjunwrap|comobjvalue|dllcall|exp|fileexist|fileopen|floor|format|func|getkeyname|getkeyvk|getkeysc|getkeystate|il_add|il_create|il_destroy|instr|isbyref|isfunc|islabel|isobject|ln|log|ltrim|lv_add|lv_delete|lv_deletecol|lv_getcount|lv_getnext|lv_gettext|lv_insert|lv_insertcol|lv_modify|lv_modifycol|lv_setimagelist|mod|onmessage|numget|numput|regexmatch|regexreplace|registercallback|round|rtrim|sb_seticon|sb_setparts|sb_settext|sin|sqrt|strget|strlen|strput|strsplit|substr|tan|trim|tv_add|tv_delete|tv_getchild|tv_getcount|tv_getnext|tv_get|tv_getparent|tv_getprev|tv_getselection|tv_gettext|tv_modify|varsetcapacity|winactive|winexist)(?=\()\b</string>
<key>name</key>
<string>support.function.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?!MsgBox)(?<=\.)(?i:read|write|readline|writeline|readuint|readint|readint64|readshort|readushort|readchar|readuchar|readdouble|readfloat|writeuint|writeint|writeint64|writeshort|writeushort|writechar|writeuchar|writedouble|writefloat|rawread|rawwrite|seek|tell|close|insert|remove|minindex|maxindex|setcapacity|getcapacity|getaddress|newenum|haskey|clone|isoptional|__new|__call|__get|__set|__delete)(?=\()\b</string>
<key>name</key>
<string>support.function.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?!MsgBox)(?<=\.)(?i:length|ateof|encoding|__handle|name|isbuiltin|isvariadic|minparams|maxparams|position|pos)(?!\[|\(|\.)\b</string>
<key>name</key>
<string>support.function.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?!MsgBox)([\w]+)(?=\()</string>
<key>name</key>
<string>support.function.ahk</string>
</dict>
<dict>
<key>match</key>
<string>^MsgBox</string>
<key>name</key>
<string>support.function.msgbox.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?!MsgBox)(?i:a_ahkpath|a_ahkversion|a_appdata|a_appdatacommon|a_autotrim|a_batchlines|a_caretx|a_carety|a_computername|a_controldelay|a_cursor|a_dd|a_ddd|a_dddd|a_defaultmousespeed|a_desktop|a_desktopcommon|a_detecthiddentext|a_detecthiddenwindows|a_endchar|a_eventinfo|a_exitreason|a_fileencoding|a_formatfloat|a_formatinteger|a_gui|a_guievent|a_guicontrol|a_guicontrolevent|a_guiheight|a_guiwidth|a_guix|a_guiy|a_hour|a_iconfile|a_iconhidden|a_iconnumber|a_icontip|a_index|a_ipaddress1|a_ipaddress2|a_ipaddress3|a_ipaddress4|a_is64bitos|a_isadmin|a_iscompiled|a_iscritical|a_ispaused|a_issuspended|a_isunicode|a_keydelay|a_language|a_lasterror|a_linefile|a_linenumber|a_loopfield|a_loopfileattrib|a_loopfiledir|a_loopfileext|a_loopfilefullpath|a_loopfilelongpath|a_loopfilename|a_loopfileshortname|a_loopfileshortpath|a_loopfilesize|a_loopfilesizekb|a_loopfilesizemb|a_loopfiletimeaccessed|a_loopfiletimecreated|a_loopfiletimemodified|a_loopreadline|a_loopregkey|a_loopregname|a_loopregsubkey|a_loopregtimemodified|a_loopregtype|a_mday|a_min|a_mm|a_mmm|a_mmmm|a_mon|a_mousedelay|a_msec|a_mydocuments|a_now|a_nowutc|a_numbatchlines|a_ostype|a_osversion|a_priorhotkey|a_priorkey|a_programfiles|a_programs|a_programscommon|a_ptrsize|a_regview|a_screendpi|a_screenheight|a_screenwidth|a_scriptdir|a_scriptfullpath|a_scripthwnd|a_scriptname|a_sec|a_space|a_startmenu|a_startmenucommon|a_startup|a_startupcommon|a_stringcasesense|a_tab|a_temp|a_thisfunc|a_thishotkey|a_thislabel|a_thismenu|a_thismenuitem|a_thismenuitempos|a_tickcount|a_timeidle|a_timeidlephysical|a_timesincepriorhotkey|a_timesincethishotkey|a_titlematchmode|a_titlematchmodespeed|a_username|a_wday|a_windelay|a_windir|a_workingdir|a_yday|a_year|a_yweek|a_yyyy|clipboard|clipboardall|comspec|errorlevel|programfiles|true|false)\b</string>
<key>name</key>
<string>support.type.builtin.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?!MsgBox)(?i:shift|lshift|rshift|alt|lalt|ralt|control|lcontrol|rcontrol|ctrl|lctrl|rctrl|lwin|rwin|appskey|altdown|altup|shiftdown|shiftup|ctrldown|ctrlup|lwindown|lwinup|rwindown|rwinup|lbutton|rbutton|mbutton|wheelup|wheelleft|wheelright|wheeldown|xbutton1|xbutton2|joy1|joy2|joy3|joy4|joy5|joy6|joy7|joy8|joy9|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy30|joy31|joy32|joyx|joyy|joyz|joyr|joyu|joyv|joypov|joyname|joybuttons|joyaxes|joyinfo|space|tab|enter|escape|esc|backspace|bs|delete|del|insert|ins|pgup|pgdn|home|end|up|down|left|right|printscreen|ctrlbreak|pause|scrolllock|capslock|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadmult|numpadadd|numpadsub|numpaddiv|numpaddot|numpaddel|numpadins|numpadclear|numpadup|numpaddown|numpadleft|numpadright|numpadhome|numpadend|numpadpgup|numpadpgdn|numpadenter|f1|f2|f3|f4|f5|f6|f7|f8|f9|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f20|f21|f22|f23|f24|browser_back|browser_forward|browser_refresh|browser_stop|browser_search|browser_favorites|browser_home|volume_mute|volume_down|volume_up|media_next|media_prev|media_stop|media_play_pause|launch_mail|launch_media|launch_app1|launch_app2)\b</string>
<key>name</key>
<string>keyword.keys.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?!MsgBox)(?<!\.)(?i:pixel|mouse|screen|relative|rgb|ltrim|rtrim|join|low|belownormal|normal|abovenormal|high|realtime|ahk_id|ahk_pid|ahk_class|ahk_group|between|contains|in|is|integer|float|integerfast|floatfast|number|digit|xdigit|alpha|upper|lower|alnum|time|date|not|or|and|alwaysontop|topmost|top|bottom|transparent|transcolor|redraw|region|id|idlast|processname|minmax|controllist|count|list|capacity|statuscd|eject|lock|unlock|label|filesystem|label|setlabel|serial|type|status|static|global|local|byref|seconds|minutes|hours|days|read|parse|logoff|close|error|single|tray|add|rename|check|uncheck|togglecheck|enable|disable|toggleenable|default|nodefault|standard|nostandard|color|delete|deleteall|icon|noicon|tip|click|show|mainwindow|nomainwindow|useerrorlevel|text|picture|pic|groupbox|button|checkbox|radio|dropdownlist|ddl|combobox|listbox|listview|datetime|monthcal|updown|slider|tab|tab2|statusbar|treeview|iconsmall|tile|report|sortdesc|nosort|nosorthdr|grid|hdr|autosize|range|xm|ym|ys|xs|xp|yp|font|resize|owner|submit|nohide|minimize|maximize|restore|noactivate|na|cancel|destroy|center|margin|maxsize|minsize|owndialogs|guiescape|guiclose|guisize|guicontextmenu|guidropfiles|tabstop|section|altsubmit|wrap|hscroll|vscroll|border|top|bottom|buttons|expand|first|imagelist|lines|wantctrla|wantf2|vis|visfirst|number|uppercase|lowercase|limit|password|multi|wantreturn|group|background|bold|italic|strike|underline|norm|backgroundtrans|theme|caption|delimiter|minimizebox|maximizebox|sysmenu|toolwindow|flash|style|exstyle|check3|checked|checkedgray|readonly|password|hidden|left|right|center|notab|section|move|focus|hide|choose|choosestring|text|pos|enabled|disabled|visible|lastfound|lastfoundexist|alttab|shiftalttab|alttabmenu|alttabandmenu|alttabmenudismiss|notimers|interrupt|priority|waitclose|blind|raw|unicode|deref|pow|bitnot|bitand|bitor|bitxor|bitshiftleft|bitshiftright|yes|no|ok|cancel|abort|retry|ignore|tryagain|on|off|all|hkey_local_machine|hkey_users|hkey_current_user|hkey_classes_root|hkey_current_config|hklm|hku|hkcu|hkcr|hkcc|reg_sz|reg_expand_sz|reg_multi_sz|reg_dword|reg_qword|reg_binary|reg_link|reg_resource_list|reg_full_resource_descriptor|reg_resource_requirements_list|reg_dword_big_endian|alwayson|alwaysoff|dpiscale|parent)(?!\[|\(|\.)\b</string>
<key>name</key>
<string>keyword.other.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?!MsgBox)(?<!\.)(?i:if|else|return|loop|break|for|while|class|extends|catch|finally|throw|try|until|continue|critical|exit|exitapp)\b</string>
<key>name</key>
<string>keyword.control.ahk</string>
</dict>
<dict>
<key>match</key>
<string>(?x) \b
((0(x|X)[0-9a-fA-F]*)
|(
([0-9]+\.?[0-9]*)
|(\.[0-9]+)
)((e|E)(\+|-)?[0-9]+)?
)\b
</string>
<key>name</key>
<string>constant.numeric.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\+|-|\*|\^|/|&|#|!|~|\|</string>
<key>name</key>
<string>keyword.operator.arithmetic.ahk</string>
</dict>
<dict>
<key>match</key>
<string>:=|\.=|=|::</string>
<key>name</key>
<string>keyword.operator.assignment.ahk</string>
</dict>
<dict>
<key>match</key>
<string><|>|<>|[<>=]=|!=</string>
<key>name</key>
<string>keyword.operator.comparison.ahk</string>
</dict>
<dict>
<key>match</key>
<string>:|\?|`|,</string>
<key>name</key>
<string>punctuation.ahk</string>
</dict>
<dict>
<key>match</key>
<string>[\[\](){}]</string>
<key>name</key>
<string>punctuation.bracket.ahk</string>
</dict>
<dict>
<key>match</key>
<string>%</string>
<key>name</key>
<string>punctuation.definition.variable.percent.ahk</string>
</dict>
<dict>
<key>begin</key>
<string>(")</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ahk</string>
</dict>
</dict>
<key>end</key>
<string>(")(?!")|^</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ahk</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.ahk</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>""</string>
<key>name</key>
<string>constant.character.escape.ahk</string>
</dict>
</array>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>entity.name.function.ahk</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.bracket.parenthesis.ahk</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>string.function.arguments.ahk</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>punctuation.bracket.parenthesis.ahk</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.bracket.curly.ahk</string>
</dict>
<key>6</key>
<dict>
<key>name</key>
<string>comment.line.semicolon.functionline.ahk</string>
</dict>
</dict>
<key>match</key>
<string>^(\s*\w+)(\()(.*)(\))\s*({)\s*(;?.*)$</string>
<key>name</key>
<string>functionline.ahk</string>
</dict>
</array>
<key>scopeName</key>
<string>source.ahk</string>
<key>uuid</key>
<string>77AC23B6-8A90-11D9-BAA4-000A9584EC8D</string>
</dict>
</plist>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>fileTypes</key>
<array>
<string>ahk</string>
</array>
<key>name</key>
<string>AutoHotkey</string>
<key>patterns</key>
<array>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.comment.ahk</string>
</dict>
</dict>
<key>match</key>
<string>\s(;).*</string>
<key>name</key>
<string>comment.line.semicolon.ahk</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.comment.ahk</string>
</dict>
</dict>
<key>match</key>
<string>^(;).*</string>
<key>name</key>
<string>comment.line.semicolon.ahk</string>
</dict>
<dict>
<key>begin</key>
<string>^\s*/\*</string>
<key>end</key>
<string>^\s*\*/</string>
<key>name</key>
<string>comment.block.slashstar.ahk</string>
</dict>
<dict>
<key>begin</key>
<string>^\s*\((?!.*\))</string>
<key>end</key>
<string>^\s*\)</string>
<key>name</key>
<string>string.ahk</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>entity.name.function.label.ahk</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>comment.line.semicolon.label.ahk</string>
</dict>
</dict>
<key>match</key>
<string>^\s*(\w+:)\s*(;.*)?$</string>
<key>name</key>
<string>labelline.ahk</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>entity.name.function.label.ahk</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.equals.colon</string>
</dict>
</dict>
<key>match</key>
<string>^\s*(.+)(::)</string>
<key>name</key>
<string>hotkeyline.ahk</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>string.parameter.import.ahk</string>
</dict>
</dict>
<key>match</key>
<string>#\b(?i:include|includeagain)\b(.*)$</string>
<key>name</key>
<string>keyword.control.import.ahk</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>string.parameter.directives.ahk</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>comment.line.semicolon.directive.ahk</string>
</dict>
</dict>
<key>match</key>
<string>#\b(?i:allowsamelinecomments|clipboardtimeout|commentflag|errorstdout|escapechar|hotkeyinterval|hotkeymodifiertimeout|hotstring|if|iftimeout|ifwinactive|ifwinexist|ifwinnotactive|ifwinnotexist|inputlevel|installkeybdhook|installmousehook|keyhistory|ltrim|maxhotkeysperinterval|maxmem|maxthreads|maxthreadsbuffer|maxthreadsperhotkey|menumaskkey|noenv|notrayicon|persistent|singleinstance|usehook|warn|winactivateforce)\b([^;]*)(\s+;.*)?$</string>
<key>name</key>
<string>keyword.control.directives.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?i:autotrim|blockinput|click|clipwait|control|controlclick|controlfocus|controlget|controlgetfocus|controlgetpos|controlgettext|controlmove|controlsend|controlsendraw|controlsettext|coordmode|detecthiddentext|detecthiddenwindows|drive|driveget|drivespacefree|edit|envadd|envdiv|envget|envmult|envset|envsub|envupdate|fileappend|filecopy|filecopydir|filecreatedir|filecreateshortcut|filedelete|fileencoding|filegetattrib|filegetshortcut|filegetsize|filegettime|filegetversion|fileinstall|filemove|filemovedir|fileread|filereadline|filerecycle|filerecycleempty|fileremovedir|fileselectfile|fileselectfolder|filesetattrib|filesettime|formattime|getkeystate|gosub|goto|groupactivate|groupadd|groupclose|groupdeactivate|gui|guicontrol|guicontrolget|hotkey|ifequal|ifexist|ifgreater|ifgreaterorequal|ifinstring|ifless|iflessorequal|ifmsgbox|ifnotequal|ifnotexist|ifnotinstring|ifwinactive|ifwinexist|ifwinnotactive|ifwinnotexist|imagesearch|inidelete|iniread|iniwrite|input|inputbox|keyhistory|keywait|listhotkeys|listlines|listvars|menu|mouseclick|mouseclickdrag|mousegetpos|mousemove|msgbox|onexit|outputdebug|pause|pixelgetcolor|pixelsearch|postmessage|process|progress|random|regdelete|regread|regwrite|reload|run|runas|runwait|send|sendevent|sendinput|sendlevel|sendmessage|sendmode|sendplay|sendraw|setbatchlines|setcapslockstate|setcontroldelay|setdefaultmousespeed|setenv|setformat|setkeydelay|setmousedelay|setnumlockstate|setscrolllockstate|setstorecapslockmode|setregview|settimer|settitlematchmode|setwindelay|setworkingdir|shutdown|sleep|sort|soundbeep|soundget|soundgetwavevolume|soundplay|soundset|soundsetwavevolume|splashimage|splashtextoff|splashtexton|splitpath|statusbargettext|statusbarwait|stringcasesense|stringgetpos|stringleft|stringlen|stringlower|stringmid|stringreplace|stringright|stringsplit|stringtrimleft|stringtrimright|stringupper|suspend|sysget|thread|tooltip|transform|traytip|urldownloadtofile|winactivate|winactivatebottom|winclose|winget|wingetactivestats|wingetactivetitle|wingetclass|wingetpos|wingettext|wingettitle|winhide|winkill|winmaximize|winmenuselectitem|winminimize|winminimizeall|winminimizeallundo|winmove|winrestore|winset|winsettitle|winshow|winwait|winwaitactive|winwaitclose|winwaitnotactive)\b</string>
<key>name</key>
<string>support.function.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?!MsgBox)(?i:abs|acos|asc|asin|atan|ceil|chr|cos|comobjcreate|comobjactive|comobjarray|comobjconnect|comobjenwrap|comobjerror|comobjflags|comobjget|comobjmissing|comobjparameter|comobjquery|comobjtype|comobjunwrap|comobjvalue|dllcall|exp|fileexist|fileopen|floor|format|func|getkeyname|getkeyvk|getkeysc|getkeystate|il_add|il_create|il_destroy|instr|isbyref|isfunc|islabel|isobject|ln|log|ltrim|lv_add|lv_delete|lv_deletecol|lv_getcount|lv_getnext|lv_gettext|lv_insert|lv_insertcol|lv_modify|lv_modifycol|lv_setimagelist|mod|onmessage|numget|numput|regexmatch|regexreplace|registercallback|round|rtrim|sb_seticon|sb_setparts|sb_settext|sin|sqrt|strget|strlen|strput|strsplit|substr|tan|trim|tv_add|tv_delete|tv_getchild|tv_getcount|tv_getnext|tv_get|tv_getparent|tv_getprev|tv_getselection|tv_gettext|tv_modify|varsetcapacity|winactive|winexist)(?=\()\b</string>
<key>name</key>
<string>support.function.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?!MsgBox)(?<=\.)(?i:read|write|readline|writeline|readuint|readint|readint64|readshort|readushort|readchar|readuchar|readdouble|readfloat|writeuint|writeint|writeint64|writeshort|writeushort|writechar|writeuchar|writedouble|writefloat|rawread|rawwrite|seek|tell|close|insert|remove|minindex|maxindex|setcapacity|getcapacity|getaddress|newenum|haskey|clone|isoptional|__new|__call|__get|__set|__delete)(?=\()\b</string>
<key>name</key>
<string>support.function.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?!MsgBox)(?<=\.)(?i:length|ateof|encoding|__handle|name|isbuiltin|isvariadic|minparams|maxparams|position|pos)(?!\[|\(|\.)\b</string>
<key>name</key>
<string>support.function.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?!MsgBox)([\w]+)(?=\()</string>
<key>name</key>
<string>support.function.ahk</string>
</dict>
<dict>
<key>match</key>
<string>^MsgBox</string>
<key>name</key>
<string>support.function.msgbox.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?!MsgBox)(?i:a_ahkpath|a_ahkversion|a_appdata|a_appdatacommon|a_autotrim|a_batchlines|a_caretx|a_carety|a_computername|a_controldelay|a_cursor|a_dd|a_ddd|a_dddd|a_defaultmousespeed|a_desktop|a_desktopcommon|a_detecthiddentext|a_detecthiddenwindows|a_endchar|a_eventinfo|a_exitreason|a_fileencoding|a_formatfloat|a_formatinteger|a_gui|a_guievent|a_guicontrol|a_guicontrolevent|a_guiheight|a_guiwidth|a_guix|a_guiy|a_hour|a_iconfile|a_iconhidden|a_iconnumber|a_icontip|a_index|a_ipaddress1|a_ipaddress2|a_ipaddress3|a_ipaddress4|a_is64bitos|a_isadmin|a_iscompiled|a_iscritical|a_ispaused|a_issuspended|a_isunicode|a_keydelay|a_language|a_lasterror|a_linefile|a_linenumber|a_loopfield|a_loopfileattrib|a_loopfiledir|a_loopfileext|a_loopfilefullpath|a_loopfilelongpath|a_loopfilename|a_loopfileshortname|a_loopfileshortpath|a_loopfilesize|a_loopfilesizekb|a_loopfilesizemb|a_loopfiletimeaccessed|a_loopfiletimecreated|a_loopfiletimemodified|a_loopreadline|a_loopregkey|a_loopregname|a_loopregsubkey|a_loopregtimemodified|a_loopregtype|a_mday|a_min|a_mm|a_mmm|a_mmmm|a_mon|a_mousedelay|a_msec|a_mydocuments|a_now|a_nowutc|a_numbatchlines|a_ostype|a_osversion|a_priorhotkey|a_priorkey|a_programfiles|a_programs|a_programscommon|a_ptrsize|a_regview|a_screendpi|a_screenheight|a_screenwidth|a_scriptdir|a_scriptfullpath|a_scripthwnd|a_scriptname|a_sec|a_space|a_startmenu|a_startmenucommon|a_startup|a_startupcommon|a_stringcasesense|a_tab|a_temp|a_thisfunc|a_thishotkey|a_thislabel|a_thismenu|a_thismenuitem|a_thismenuitempos|a_tickcount|a_timeidle|a_timeidlephysical|a_timesincepriorhotkey|a_timesincethishotkey|a_titlematchmode|a_titlematchmodespeed|a_username|a_wday|a_windelay|a_windir|a_workingdir|a_yday|a_year|a_yweek|a_yyyy|clipboard|clipboardall|comspec|errorlevel|programfiles|true|false)\b</string>
<key>name</key>
<string>support.type.builtin.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?!MsgBox)(?i:shift|lshift|rshift|alt|lalt|ralt|control|lcontrol|rcontrol|ctrl|lctrl|rctrl|lwin|rwin|appskey|altdown|altup|shiftdown|shiftup|ctrldown|ctrlup|lwindown|lwinup|rwindown|rwinup|lbutton|rbutton|mbutton|wheelup|wheelleft|wheelright|wheeldown|xbutton1|xbutton2|joy1|joy2|joy3|joy4|joy5|joy6|joy7|joy8|joy9|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy30|joy31|joy32|joyx|joyy|joyz|joyr|joyu|joyv|joypov|joyname|joybuttons|joyaxes|joyinfo|space|tab|enter|escape|esc|backspace|bs|delete|del|insert|ins|pgup|pgdn|home|end|up|down|left|right|printscreen|ctrlbreak|pause|scrolllock|capslock|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadmult|numpadadd|numpadsub|numpaddiv|numpaddot|numpaddel|numpadins|numpadclear|numpadup|numpaddown|numpadleft|numpadright|numpadhome|numpadend|numpadpgup|numpadpgdn|numpadenter|f1|f2|f3|f4|f5|f6|f7|f8|f9|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f20|f21|f22|f23|f24|browser_back|browser_forward|browser_refresh|browser_stop|browser_search|browser_favorites|browser_home|volume_mute|volume_down|volume_up|media_next|media_prev|media_stop|media_play_pause|launch_mail|launch_media|launch_app1|launch_app2)\b</string>
<key>name</key>
<string>keyword.keys.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?!MsgBox)(?<!\.)(?i:pixel|mouse|screen|relative|rgb|ltrim|rtrim|join|low|belownormal|normal|abovenormal|high|realtime|ahk_id|ahk_pid|ahk_class|ahk_group|between|contains|in|is|integer|float|integerfast|floatfast|number|digit|xdigit|alpha|upper|lower|alnum|time|date|not|or|and|alwaysontop|topmost|top|bottom|transparent|transcolor|redraw|region|id|idlast|processname|minmax|controllist|count|list|capacity|statuscd|eject|lock|unlock|label|filesystem|label|setlabel|serial|type|status|static|global|local|byref|seconds|minutes|hours|days|read|parse|logoff|close|error|single|tray|add|rename|check|uncheck|togglecheck|enable|disable|toggleenable|default|nodefault|standard|nostandard|color|delete|deleteall|icon|noicon|tip|click|show|mainwindow|nomainwindow|useerrorlevel|text|picture|pic|groupbox|button|checkbox|radio|dropdownlist|ddl|combobox|listbox|listview|datetime|monthcal|updown|slider|tab|tab2|statusbar|treeview|iconsmall|tile|report|sortdesc|nosort|nosorthdr|grid|hdr|autosize|range|xm|ym|ys|xs|xp|yp|font|resize|owner|submit|nohide|minimize|maximize|restore|noactivate|na|cancel|destroy|center|margin|maxsize|minsize|owndialogs|guiescape|guiclose|guisize|guicontextmenu|guidropfiles|tabstop|section|altsubmit|wrap|hscroll|vscroll|border|top|bottom|buttons|expand|first|imagelist|lines|wantctrla|wantf2|vis|visfirst|number|uppercase|lowercase|limit|password|multi|wantreturn|group|background|bold|italic|strike|underline|norm|backgroundtrans|theme|caption|delimiter|minimizebox|maximizebox|sysmenu|toolwindow|flash|style|exstyle|check3|checked|checkedgray|readonly|password|hidden|left|right|center|notab|section|move|focus|hide|choose|choosestring|text|pos|enabled|disabled|visible|lastfound|lastfoundexist|alttab|shiftalttab|alttabmenu|alttabandmenu|alttabmenudismiss|notimers|interrupt|priority|waitclose|blind|raw|unicode|deref|pow|bitnot|bitand|bitor|bitxor|bitshiftleft|bitshiftright|yes|no|ok|cancel|abort|retry|ignore|tryagain|on|off|all|hkey_local_machine|hkey_users|hkey_current_user|hkey_classes_root|hkey_current_config|hklm|hku|hkcu|hkcr|hkcc|reg_sz|reg_expand_sz|reg_multi_sz|reg_dword|reg_qword|reg_binary|reg_link|reg_resource_list|reg_full_resource_descriptor|reg_resource_requirements_list|reg_dword_big_endian|alwayson|alwaysoff|dpiscale|parent)(?!\[|\(|\.)\b</string>
<key>name</key>
<string>keyword.other.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\b(?!MsgBox)(?<!\.)(?i:if|else|return|loop|break|for|while|class|extends|catch|finally|throw|try|until|continue|critical|exit|exitapp)\b</string>
<key>name</key>
<string>keyword.control.ahk</string>
</dict>
<dict>
<key>match</key>
<string>(?x) \b
((0(x|X)[0-9a-fA-F]*)
|(
([0-9]+\.?[0-9]*)
|(\.[0-9]+)
)((e|E)(\+|-)?[0-9]+)?
)\b
</string>
<key>name</key>
<string>constant.numeric.ahk</string>
</dict>
<dict>
<key>match</key>
<string>\+|-|\*|\^|/|&|#|!|~|\|</string>
<key>name</key>
<string>keyword.operator.arithmetic.ahk</string>
</dict>
<dict>
<key>match</key>
<string>:=|\.=|=|::</string>
<key>name</key>
<string>keyword.operator.assignment.ahk</string>
</dict>
<dict>
<key>match</key>
<string><|>|<>|[<>=]=|!=</string>
<key>name</key>
<string>keyword.operator.comparison.ahk</string>
</dict>
<dict>
<key>match</key>
<string>:|\?|`|,</string>
<key>name</key>
<string>punctuation.ahk</string>
</dict>
<dict>
<key>match</key>
<string>[\[\](){}]</string>
<key>name</key>
<string>punctuation.bracket.ahk</string>
</dict>
<dict>
<key>match</key>
<string>%</string>
<key>name</key>
<string>punctuation.definition.variable.percent.ahk</string>
</dict>
<dict>
<key>begin</key>
<string>(")</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ahk</string>
</dict>
</dict>
<key>end</key>
<string>(")(?!")|^</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ahk</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.ahk</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>""</string>
<key>name</key>
<string>constant.character.escape.ahk</string>
</dict>
</array>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>entity.name.function.ahk</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.bracket.parenthesis.ahk</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>string.function.arguments.ahk</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>punctuation.bracket.parenthesis.ahk</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.bracket.curly.ahk</string>
</dict>
<key>6</key>
<dict>
<key>name</key>
<string>comment.line.semicolon.functionline.ahk</string>
</dict>
</dict>
<key>match</key>
<string>^(\s*\w+)(\()(.*)(\))\s*({)\s*(;?.*)$</string>
<key>name</key>
<string>functionline.ahk</string>
</dict>
</array>
<key>scopeName</key>
<string>source.ahk</string>
<key>uuid</key>
<string>77AC23B6-8A90-11D9-BAA4-000A9584EC8D</string>
</dict>
</plist>
Thanks in advance for any tips and thoughts!