1<?php 2/************************************************************************************* 3 * autohotkey.php 4 * -------- 5 * Author: Naveen Garg (naveen.garg@gmail.com) 6 * Copyright: (c) 2009 Naveen Garg and GeSHi 7 * Release Version: 1.0.9.1 8 * Date Started: 2009/06/11 9 * 10 * Autohotkey language file for GeSHi. 11 * 12 * CHANGES 13 * ------- 14 * Release 1.0.8.5 (2009/06/11) 15 * - First Release 16 * 17 * TODO 18 * ---- 19 * Reference: http://www.autohotkey.com/docs/ 20 * 21 ************************************************************************************* 22 * 23 * This file is part of GeSHi. 24 * 25 * GeSHi is free software; you can redistribute it and/or modify 26 * it under the terms of the GNU General Public License as published by 27 * the Free Software Foundation; either version 2 of the License, or 28 * (at your option) any later version. 29 * 30 * GeSHi is distributed in the hope that it will be useful, 31 * but WITHOUT ANY WARRANTY; without even the implied warranty of 32 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 33 * GNU General Public License for more details. 34 * 35 * You should have received a copy of the GNU General Public License 36 * along with GeSHi; if not, write to the Free Software 37 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 38 * 39 ************************************************************************************/ 40 41$language_data = array ( 42 'LANG_NAME' => 'Autohotkey', 43 'COMMENT_SINGLE' => array( 44 1 => ';' 45 ), 46 'COMMENT_MULTI' => array('/*' => '*/'), 47 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 48 'QUOTEMARKS' => array('"'), 49 'ESCAPE_CHAR' => '', 50 'KEYWORDS' => array( 51 1 => array( 52 'while','if','and','or','else','return' 53 ), 54 2 => array( 55 // built in variables 56 'A_AhkPath','A_AhkVersion','A_AppData','A_AppDataCommon', 57 'A_AutoTrim','A_BatchLines','A_CaretX','A_CaretY', 58 'A_ComputerName','A_ControlDelay','A_Cursor','A_DD', 59 'A_DDD','A_DDDD','A_DefaultMouseSpeed','A_Desktop', 60 'A_DesktopCommon','A_DetectHiddenText','A_DetectHiddenWindows','A_EndChar', 61 'A_EventInfo','A_ExitReason','A_FormatFloat','A_FormatInteger', 62 'A_Gui','A_GuiEvent','A_GuiControl','A_GuiControlEvent', 63 'A_GuiHeight','A_GuiWidth','A_GuiX','A_GuiY', 64 'A_Hour','A_IconFile','A_IconHidden','A_IconNumber', 65 'A_IconTip','A_Index','A_IPAddress1','A_IPAddress2', 66 'A_IPAddress3','A_IPAddress4','A_ISAdmin','A_IsCompiled', 67 'A_IsCritical','A_IsPaused','A_IsSuspended','A_KeyDelay', 68 'A_Language','A_LastError','A_LineFile','A_LineNumber', 69 'A_LoopField','A_LoopFileAttrib','A_LoopFileDir','A_LoopFileExt', 70 'A_LoopFileFullPath','A_LoopFileLongPath','A_LoopFileName','A_LoopFileShortName', 71 'A_LoopFileShortPath','A_LoopFileSize','A_LoopFileSizeKB','A_LoopFileSizeMB', 72 'A_LoopFileTimeAccessed','A_LoopFileTimeCreated','A_LoopFileTimeModified','A_LoopReadLine', 73 'A_LoopRegKey','A_LoopRegName','A_LoopRegSubkey','A_LoopRegTimeModified', 74 'A_LoopRegType','A_MDAY','A_Min','A_MM', 75 'A_MMM','A_MMMM','A_Mon','A_MouseDelay', 76 'A_MSec','A_MyDocuments','A_Now','A_NowUTC', 77 'A_NumBatchLines','A_OSType','A_OSVersion','A_PriorHotkey', 78 'A_ProgramFiles','A_Programs','A_ProgramsCommon','A_ScreenHeight', 79 'A_ScreenWidth','A_ScriptDir','A_ScriptFullPath','A_ScriptName', 80 'A_Sec','A_Space','A_StartMenu','A_StartMenuCommon', 81 'A_Startup','A_StartupCommon','A_StringCaseSense','A_Tab', 82 'A_Temp','A_ThisFunc','A_ThisHotkey','A_ThisLabel', 83 'A_ThisMenu','A_ThisMenuItem','A_ThisMenuItemPos','A_TickCount', 84 'A_TimeIdle','A_TimeIdlePhysical','A_TimeSincePriorHotkey','A_TimeSinceThisHotkey', 85 'A_TitleMatchMode','A_TitleMatchModeSpeed','A_UserName','A_WDay', 86 'A_WinDelay','A_WinDir','A_WorkingDir','A_YDay', 87 'A_YEAR','A_YWeek','A_YYYY','Clipboard', 88 'ClipboardAll','ComSpec','ErrorLevel','ProgramFiles', 89 ), 90 3 => array( 91 'AutoTrim', 92 'BlockInput','Break','Click', 93 'ClipWait','Continue','Control', 94 'ControlClick','ControlFocus','ControlGet', 95 'ControlGetFocus','ControlGetPos','ControlGetText', 96 'ControlMove','ControlSend','ControlSendRaw', 97 'ControlSetText','CoordMode','Critical', 98 'DetectHiddenText','DetectHiddenWindows','DllCall','Drive', 99 'DriveGet','DriveSpaceFree', 100 'Else','EnvAdd','EnvDiv', 101 'EnvGet','EnvMult','EnvSet', 102 'EnvSub','EnvUpdate','Exit', 103 'ExitApp','FileAppend','FileCopy', 104 'FileCopyDir','FileCreateDir','FileCreateShortcut', 105 'FileDelete','FileGetAttrib','FileGetShortcut', 106 'FileGetSize','FileGetTime','FileGetVersion', 107 'FileInstall','FileMove','FileMoveDir', 108 'FileRead','FileReadLine','FileRecycle', 109 'FileRecycleEmpty','FileRemoveDir','FileSelectFile', 110 'FileSelectFolder','FileSetAttrib','FileSetTime', 111 'FormatTime','Gosub', 112 'Goto','GroupActivate','GroupAdd', 113 'GroupClose','GroupDeactivate','Gui', 114 'GuiControl','GuiControlGet','Hotkey', 115 'IfExist','IfGreater','IfGreaterOrEqual', 116 'IfInString','IfLess','IfLessOrEqual', 117 'IfMsgBox','IfNotEqual','IfNotExist', 118 'IfNotInString','IfWinActive','IfWinExist', 119 'IfWinNotActive','IfWinNotExist','ImageSearch', 120 'IniDelete','IniRead','IniWrite', 121 'Input','InputBox','KeyHistory', 122 'KeyWait','ListHotkeys','ListLines', 123 'ListVars','Loop', 124 'Menu','MouseClick','MouseClickDrag', 125 'MouseGetPos','MouseMove','MsgBox', 126 'OnMessage','OnExit','OutputDebug', 127 'PixelGetColor','PixelSearch','PostMessage', 128 'Process','Progress','Random', 129 'RegExMatch','RegExReplace','RegisterCallback', 130 'RegDelete','RegRead','RegWrite', 131 'Reload','Repeat','Return', 132 'Run','RunAs','RunWait', 133 'Send','SendEvent','SendInput', 134 'SendMessage','SendMode','SendPlay', 135 'SendRaw','SetBatchLines','SetCapslockState', 136 'SetControlDelay','SetDefaultMouseSpeed','SetEnv', 137 'SetFormat','SetKeyDelay','SetMouseDelay', 138 'SetNumlockState','SetScrollLockState','SetStoreCapslockMode', 139 'SetTimer','SetTitleMatchMode','SetWinDelay', 140 'SetWorkingDir','Shutdown','Sleep', 141 'Sort','SoundBeep','SoundGet', 142 'SoundGetWaveVolume','SoundPlay','SoundSet', 143 'SoundSetWaveVolume','SplashImage','SplashTextOff', 144 'SplashTextOn','SplitPath','StatusBarGetText', 145 'StatusBarWait','StringCaseSense','StringGetPos', 146 'StringLeft','StringLen','StringLower', 147 'StringMid','StringReplace','StringRight', 148 'StringSplit','StringTrimLeft','StringTrimRight', 149 'StringUpper','Suspend','SysGet', 150 'Thread','ToolTip','Transform', 151 'TrayTip','URLDownloadToFile','While', 152 'VarSetCapacity', 153 'WinActivate','WinActivateBottom','WinClose', 154 'WinGet','WinGetActiveStats','WinGetActiveTitle', 155 'WinGetClass','WinGetPos','WinGetText', 156 'WinGetTitle','WinHide','WinKill', 157 'WinMaximize','WinMenuSelectItem','WinMinimize', 158 'WinMinimizeAll','WinMinimizeAllUndo','WinMove', 159 'WinRestore','WinSet','WinSetTitle', 160 'WinShow','WinWait','WinWaitActive', 161 'WinWaitClose','WinWaitNotActive' 162 ), 163 4 => array( 164 'Abs','ACos','Asc','ASin', 165 'ATan','Ceil','Chr','Cos', 166 'Exp','FileExist','Floor', 167 'GetKeyState','IL_Add','IL_Create','IL_Destroy', 168 'InStr','IsFunc','IsLabel','Ln', 169 'Log','LV_Add','LV_Delete','LV_DeleteCol', 170 'LV_GetCount','LV_GetNext','LV_GetText','LV_Insert', 171 'LV_InsertCol','LV_Modify','LV_ModifyCol','LV_SetImageList', 172 'Mod','NumGet','NumPut', 173 'Round', 174 'SB_SetIcon','SB_SetParts','SB_SetText','Sin', 175 'Sqrt','StrLen','SubStr','Tan', 176 'TV_Add','TV_Delete','TV_GetChild','TV_GetCount', 177 'TV_GetNext','TV_Get','TV_GetParent','TV_GetPrev', 178 'TV_GetSelection','TV_GetText','TV_Modify', 179 'WinActive','WinExist' 180 ), 181 5 => array( 182 // #Directives 183 'AllowSameLineComments','ClipboardTimeout','CommentFlag', 184 'ErrorStdOut','EscapeChar','HotkeyInterval', 185 'HotkeyModifierTimeout','Hotstring','IfWinActive', 186 'IfWinExist','IfWinNotActive','IfWinNotExist', 187 'Include','IncludeAgain','InstallKeybdHook', 188 'InstallMouseHook','KeyHistory','LTrim', 189 'MaxHotkeysPerInterval','MaxMem','MaxThreads', 190 'MaxThreadsBuffer','MaxThreadsPerHotkey','NoEnv', 191 'NoTrayIcon','Persistent','SingleInstance', 192 'UseHook','WinActivateForce' 193 ), 194 6 => array( 195 'Shift','LShift','RShift', 196 'Alt','LAlt','RAlt', 197 'LControl','RControl', 198 'Ctrl','LCtrl','RCtrl', 199 'LWin','RWin','AppsKey', 200 'AltDown','AltUp','ShiftDown', 201 'ShiftUp','CtrlDown','CtrlUp', 202 'LWinDown','LWinUp','RWinDown', 203 'RWinUp','LButton','RButton', 204 'MButton','WheelUp','WheelDown', 205 'WheelLeft','WheelRight','XButton1', 206 'XButton2','Joy1','Joy2', 207 'Joy3','Joy4','Joy5', 208 'Joy6','Joy7','Joy8', 209 'Joy9','Joy10','Joy11', 210 'Joy12','Joy13','Joy14', 211 'Joy15','Joy16','Joy17', 212 'Joy18','Joy19','Joy20', 213 'Joy21','Joy22','Joy23', 214 'Joy24','Joy25','Joy26', 215 'Joy27','Joy28','Joy29', 216 'Joy30','Joy31','Joy32', 217 'JoyX','JoyY','JoyZ', 218 'JoyR','JoyU','JoyV', 219 'JoyPOV','JoyName','JoyButtons', 220 'JoyAxes','JoyInfo','Space', 221 'Tab','Enter', 222 'Escape','Esc','BackSpace', 223 'BS','Delete','Del', 224 'Insert','Ins','PGUP', 225 'PGDN','Home','End', 226 'Up','Down','Left', 227 'Right','PrintScreen','CtrlBreak', 228 'Pause','ScrollLock','CapsLock', 229 'NumLock','Numpad0','Numpad1', 230 'Numpad2','Numpad3','Numpad4', 231 'Numpad5','Numpad6','Numpad7', 232 'Numpad8','Numpad9','NumpadMult', 233 'NumpadAdd','NumpadSub','NumpadDiv', 234 'NumpadDot','NumpadDel','NumpadIns', 235 'NumpadClear','NumpadUp','NumpadDown', 236 'NumpadLeft','NumpadRight','NumpadHome', 237 'NumpadEnd','NumpadPgup','NumpadPgdn', 238 'NumpadEnter','F1','F2', 239 'F3','F4','F5', 240 'F6','F7','F8', 241 'F9','F10','F11', 242 'F12','F13','F14', 243 'F15','F16','F17', 244 'F18','F19','F20', 245 'F21','F22','F23', 246 'F24','Browser_Back','Browser_Forward', 247 'Browser_Refresh','Browser_Stop','Browser_Search', 248 'Browser_Favorites','Browser_Home','Volume_Mute', 249 'Volume_Down','Volume_Up','Media_Next', 250 'Media_Prev','Media_Stop','Media_Play_Pause', 251 'Launch_Mail','Launch_Media','Launch_App1', 252 'Launch_App2' 253 ), 254 7 => array( 255 // Gui commands 256 'Add', 257 'Show', 'Submit', 'Cancel', 'Destroy', 258 'Font', 'Color', 'Margin', 'Flash', 'Default', 259 'GuiEscape','GuiClose','GuiSize','GuiContextMenu','GuiDropFilesTabStop', 260 ), 261 8 => array( 262 // Gui Controls 263 'Button', 264 'Checkbox','Radio','DropDownList','DDL', 265 'ComboBox','ListBox','ListView', 266 'Text', 'Edit', 'UpDown', 'Picture', 267 'TreeView','DateTime', 'MonthCal', 268 'Slider' 269 ) 270 ), 271 'SYMBOLS' => array( 272 '(',')','[',']', 273 '+','-','*','/','&','^', 274 '=','+=','-=','*=','/=','&=', 275 '==','<','<=','>','>=',':=', 276 ',','.' 277 ), 278 'CASE_SENSITIVE' => array( 279 GESHI_COMMENTS => false, 280 1 => false, 281 2 => false, 282 3 => false, 283 4 => false, 284 5 => false, 285 6 => false, 286 7 => false, 287 8 => false 288 ), 289 'STYLES' => array( 290 'KEYWORDS' => array( 291 1 => 'color: #AAAAFF; font-weight: bold;', // reserved #blue 292 2 => 'color: #88FF88;', // BIV yellow 293 3 => 'color: #FF00FF; font-style: italic;', // commands purple 294 4 => 'color: #888844; font-weight: bold;', // functions #0080FF 295 5 => 'color: #000000; font-style: italic;', // directives #black 296 6 => 'color: #FF0000; font-style: italic;', // hotkeys #red 297 7 => 'color: #000000; font-style: italic;', // gui commands #black 298 8 => 'color: #000000; font-style: italic;' // gui controls 299 ), 300 'COMMENTS' => array( 301 'MULTI' => 'font-style: italic; color: #669900;', 302 1 => 'font-style: italic; color: #009933;' 303 ), 304 'ESCAPE_CHAR' => array( 305 0 => '' 306 ), 307 'BRACKETS' => array( 308 0 => 'color: #00FF00; font-weight: bold;' 309 ), 310 'STRINGS' => array( 311 0 => 'font-weight: bold; color: #008080;' 312 ), 313 'NUMBERS' => array( 314 0 => 'color: #0000dd;' 315 ), 316 'METHODS' => array( 317 1 => 'color: #0000FF; font-style: italic; font-weight: italic;' 318 ), 319 'SYMBOLS' => array( 320 0 => 'color: #000000; font-weight: italic;' 321 ), 322 'REGEXPS' => array( 323 0 => 'font-weight: italic; color: #A00A0;', 324 1 => 'color: #CC0000; font-style: italic;', 325 2 => 'color: #DD0000; font-style: italic;', 326 3 => 'color: #88FF88;' 327 ), 328 'SCRIPT' => array( 329 ) 330 ), 331 'OOLANG' => false, 332 'OBJECT_SPLITTERS' => array( 333 1 => '_' 334 ), 335 'REGEXPS' => array( 336 //Variables 337 0 => '%[a-zA-Z_][a-zA-Z0-9_]*%', 338 //hotstrings 339 1 => '::[\w\d]+::', 340 //labels 341 2 => '\w[\w\d]+:\s', 342 //Built-in Variables 343 3 => '\bA_\w+\b(?![^<]*>)' 344 ), 345 'URLS' => array( 346 1 => '', 347 2 => 'http://www.autohotkey.com/docs/Variables.htm#{FNAME}', 348 3 => 'http://www.autohotkey.com/docs/commands/{FNAME}.htm', 349 4 => 'http://www.autohotkey.com/docs/Functions.htm#BuiltIn', 350 5 => 'http://www.autohotkey.com/docs/commands/_{FNAME}.htm', 351 6 => '', 352 7 => 'http://www.autohotkey.com/docs/commands/Gui.htm#{FNAME}', 353 8 => 'http://www.autohotkey.com/docs/commands/GuiControls.htm#{FNAME}' 354 ), 355 'STRICT_MODE_APPLIES' => GESHI_MAYBE, 356 'SCRIPT_DELIMITERS' => array( 357 ), 358 'HIGHLIGHT_STRICT_BLOCK' => array( 359 0 => true, 360 1 => true, 361 2 => true, 362 3 => true 363 ), 364 'PARSER_CONTROL' => array( 365 'KEYWORDS' => array( 366 5 => array( 367 'DISALLOWED_BEFORE' => '(?<!\w)\#' 368 ) 369 ) 370 ) 371); 372