# SciTE settings for AutoHotkey files
# Roman Hubacek - http://permalink.gmane.org/gmane.editors.scite.general/5917
# Updated 2006/02/21 by Philippe Lhoste (PhiLho) & Serenity

# AutoHotkey program installation directory:
# for API file access, running scripts (F5) and getting help on keywords (F1)
#~ autohotkeydir=C:\Program Files\AutoHotkey
autohotkeydir=C:\Program Files\USys\AutoHotkey

file.patterns.ahk=*.ahk
lexer.$(file.patterns.ahk)=asm


# Keywords must be in lowercase for case-insensitive comparison

# Commands and Functions
keywords.$(file.patterns.ahk)=\
allowsamelinecomments clipboardtimeout commentflag errorstdout escapechar \
hotkeyinterval hotkeymodifiertimeout hotstring include includeagain \
installkeybdhook installmousehook keyhistory ltrim maxhotkeysperinterval \
maxmem maxthreads maxthreadsbuffer maxthreadsperhotkey noenv notrayicon persistent \
singleinstance usehook winactivateforce \
autotrim blockinput break click clipwait continue control controlclick controlfocus \
controlget controlgetfocus  controlgetpos controlgettext controlmove \
controlsend controlsendraw controlsettext coordmode critical detecthiddentext \
detecthiddenwindows drive driveget drivespacefree edit else endrepeat envadd \
envdiv envget envmult envset envsub envupdate exit exitapp 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 gosub goto groupactivate groupadd groupclose groupdeactivate gui \
guicontrol guicontrolget hideautoitwin hotkey if  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 loop menu mouseclick mouseclickdrag mousegetpos \
mousemove msgbox onexit outputdebug pause pixelgetcolor pixelsearch \
postmessage process progress random regdelete regread regwrite reload repeat \
return run runas runwait send sendevent sendinput sendmode sendplay sendmessage sendraw setbatchlines \
setcapslockstate setcontroldelay setdefaultmousespeed setenv setformat \
setkeydelay setmousedelay setnumlockstate setscrolllockstate \
setstorecapslockmode 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 while 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 \
\
abs acos asc asin atan ceil chr cos dllcall exp fileexist floor getkeystate \
il_add il_create il_destroy instr substr isfunc islabel 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 numget numput registercallback regexmatch regexreplace round sin tan sqrt strlen \
sb_seticon sb_setparts sb_settext \
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

# Keys, buttons, variables and keywords
keywords2.$(file.patterns.ahk)=\
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 \
\
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_iscritical a_ispaused 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 \
programfiles 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_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 \
true false \
\
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

# API file for AutoHotkey can be found in Extras\Editors\Notepad++ directory
api.$(file.patterns.ahk)=$(autohotkeydir)\Extras\Editors\Notepad++\AHK Autohotkey.api
calltip.asm.word.characters=#$(chars.alpha)$(chars.numeric)
calltip.asm.parameters.start= (,


# Base (background, base font)
style.asm.32=
# Default (everything not below: spaces, unrecognised operators {}#)
style.asm.0=
# Comment (; syntax)
style.asm.1=$(colour.code.comment.line),$(font.code.comment.line)
# Number
style.asm.2=$(colour.number)
# String
style.asm.3=$(colour.string)
# Operator
style.asm.4=$(colour.operator),bold
# Identifier
style.asm.5=
# Keyword - commands & functions
style.asm.6=$(colour.keyword),bold
# Keyword 2 - keys & variables
style.asm.7=$(colour.char)
# Comment block (/*...*/ syntax, unimplemented)
style.asm.11=$(colour.code.comment.box),$(font.code.comment.box)
# Character/String (single quote) (not used in AHK, left to default)
style.asm.12=
# End of line where string is not closed (left as default as it triggers on single " or ')
style.asm.13=


# Command to run script (F5)
command.go.$(file.patterns.ahk)="$(autohotkeydir)\AutoHotkey.exe" "$(FileNameExt)"
# Commands to compile script (F7 & Ctrl+F7)
command.compile.*.ahk=$(autohotkeydir)\Compiler\Ahk2Exe.exe /in "$(FilePath)"
command.build.*.ahk="$(autohotkeydir)\Compiler\Ahk2Exe.exe" /in "$(FilePath)"
# Help on keywords (F1)
command.help.*.ahk=$(CurrentWord)!$(autohotkeydir)\AutoHotkey.chm
command.help.subsystem.*.ahk=4
