summaryrefslogtreecommitdiffstats
path: root/runtime/syntax/autohotkey.vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/syntax/autohotkey.vim')
-rw-r--r--runtime/syntax/autohotkey.vim325
1 files changed, 325 insertions, 0 deletions
diff --git a/runtime/syntax/autohotkey.vim b/runtime/syntax/autohotkey.vim
new file mode 100644
index 0000000..a888394
--- /dev/null
+++ b/runtime/syntax/autohotkey.vim
@@ -0,0 +1,325 @@
+" Vim syntax file
+" Language: AutoHotkey script file
+" Maintainer: Michael Wong
+" https://github.com/mmikeww/autohotkey.vim
+" Latest Revision: 2022-07-25
+" Previous Maintainers: SungHyun Nam <goweol@gmail.com>
+" Nikolai Weibull <now@bitwi.se>
+
+if exists("b:current_syntax")
+ finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn case ignore
+
+syn keyword autohotkeyTodo
+ \ contained
+ \ TODO FIXME XXX NOTE
+
+" only these chars are valid as escape sequences: ,%`;nrbtvaf
+" https://autohotkey.com/docs/commands/_EscapeChar.htm
+syn match autohotkeyEscape
+ \ display
+ \ '`[,%`;nrbtvaf]'
+
+syn region autohotkeyString
+ \ display
+ \ oneline
+ \ matchgroup=autohotkeyStringDelimiter
+ \ start=+"+
+ \ end=+"+
+ \ contains=autohotkeyEscape,autohotkeyMatchClass
+
+syn match autohotkeyVariable
+ \ display
+ \ oneline
+ \ contains=autohotkeyBuiltinVariable
+ \ keepend
+ \ '%\S\{-}%'
+
+syn keyword autohotkeyBuiltinVariable
+ \ A_Space A_Tab
+ \ A_WorkingDir A_ScriptDir A_ScriptName A_ScriptFullPath A_ScriptHwnd A_LineNumber
+ \ A_LineFile A_ThisFunc A_ThisLabel A_AhkVersion A_AhkPath A_IsUnicode A_IsCompiled A_ExitReason
+ \ A_YYYY A_MM A_DD A_MMMM A_MMM A_DDDD A_DDD A_WDay A_YDay A_YWeek A_Hour A_Min
+ \ A_Mon A_Year A_MDay A_NumBatchLines
+ \ A_Sec A_MSec A_Now A_NowUTC A_TickCount
+ \ A_IsSuspended A_IsPaused A_IsCritical A_BatchLines A_TitleMatchMode A_TitleMatchModeSpeed
+ \ A_DetectHiddenWindows A_DetectHiddenText A_AutoTrim A_StringCaseSense
+ \ A_FileEncoding A_FormatInteger A_FormatFloat A_WinDelay A_ControlDelay
+ \ A_SendMode A_SendLevel A_StoreCapsLockMode A_KeyDelay A_KeyDuration
+ \ A_KeyDelayPlay A_KeyDurationPlay A_MouseDelayPlay
+ \ A_MouseDelay A_DefaultMouseSpeed A_RegView A_IconHidden A_IconTip A_IconFile
+ \ A_CoordModeToolTip A_CoordModePixel A_CoordModeMouse A_CoordModeCaret A_CoordModeMenu
+ \ A_IconNumber
+ \ A_TimeIdle A_TimeIdlePhysical A_DefaultGui A_DefaultListView A_DefaultTreeView
+ \ A_Gui A_GuiControl A_GuiWidth A_GuiHeight A_GuiX A_GuiY A_GuiEvent
+ \ A_GuiControlEvent A_EventInfo
+ \ A_ThisMenuItem A_ThisMenu A_ThisMenuItemPos A_ThisHotkey A_PriorHotkey
+ \ A_PriorKey A_TimeSinceThisHotkey A_TimeSincePriorHotkey A_EndChar
+ \ ComSpec A_Temp A_OSType A_OSVersion A_Language A_ComputerName A_UserName
+ \ A_Is64BitOS A_PtrSize
+ \ A_WinDir A_ProgramFiles ProgramFiles A_AppData A_AppDataCommon A_Desktop
+ \ A_DesktopCommon A_StartMenu A_StartMenuCommon A_Programs
+ \ A_ProgramsCommon A_Startup A_StartupCommon A_MyDocuments A_IsAdmin
+ \ A_ScreenWidth A_ScreenHeight A_ScreenDPI A_IPAddress1 A_IPAddress2 A_IPAddress3
+ \ A_IPAddress4
+ \ A_Cursor A_CaretX A_CaretY Clipboard ClipboardAll ErrorLevel A_LastError
+ \ A_Index A_LoopFileName A_LoopRegName A_LoopReadLine A_LoopField
+ \ A_LoopFileExt A_LoopFileFullPath A_LoopFileLongPath A_LoopFileShortPath
+ \ A_LoopFileShortName A_LoopFileDir A_LoopFileTimeModified A_LoopFileTimeCreated
+ \ A_LoopFileTimeAccessed A_LoopFileAttrib A_LoopFileSize A_LoopFileSizeKB A_LoopFileSizeMB
+ \ A_LoopRegType A_LoopRegKey A_LoopRegSubKey A_LoopRegTimeModified
+ \ A_TimeIdleKeyboard A_TimeIdleMouse A_ListLines A_ComSpec A_LoopFilePath A_Args
+
+syn match autohotkeyBuiltinVariable
+ \ contained
+ \ display
+ \ '%\d\+%'
+
+syn keyword autohotkeyCommand
+ \ ClipWait EnvGet EnvSet EnvUpdate
+ \ Drive DriveGet DriveSpaceFree FileAppend FileCopy FileCopyDir
+ \ FileCreateDir FileCreateShortcut FileDelete FileGetAttrib FileEncoding
+ \ FileGetShortcut FileGetSize FileGetTime FileGetVersion FileInstall
+ \ FileMove FileMoveDir FileReadLine FileRead FileRecycle FileRecycleEmpty
+ \ FileRemoveDir FileSelectFolder FileSelectFile FileSetAttrib FileSetTime
+ \ IniDelete IniRead IniWrite SetWorkingDir
+ \ SplitPath
+ \ Gui GuiControl GuiControlGet IfMsgBox InputBox MsgBox Progress
+ \ SplashImage SplashTextOn SplashTextOff ToolTip TrayTip
+ \ Hotkey ListHotkeys BlockInput ControlSend ControlSendRaw GetKeyState
+ \ KeyHistory KeyWait Input Send SendRaw SendInput SendPlay SendEvent
+ \ SendMode SetKeyDelay SetNumScrollCapsLockState SetStoreCapslockMode
+ \ EnvAdd EnvDiv EnvMult EnvSub Random SetFormat Transform
+ \ AutoTrim BlockInput CoordMode Critical Edit ImageSearch
+ \ ListLines ListVars Menu OutputDebug PixelGetColor PixelSearch
+ \ SetBatchLines SetEnv SetTimer SysGet Thread Transform URLDownloadToFile
+ \ Click ControlClick MouseClick MouseClickDrag MouseGetPos MouseMove
+ \ SetDefaultMouseSpeed SetMouseDelay
+ \ Process Run RunWait RunAs Shutdown Sleep
+ \ RegDelete RegRead RegWrite
+ \ SoundBeep SoundGet SoundGetWaveVolume SoundPlay SoundSet
+ \ SoundSetWaveVolume
+ \ FormatTime IfInString IfNotInString Sort StringCaseSense StringGetPos
+ \ StringLeft StringRight StringLower StringUpper StringMid StringReplace
+ \ StringSplit StringTrimLeft StringTrimRight StringLen
+ \ StrSplit StrReplace Throw
+ \ Control ControlClick ControlFocus ControlGet ControlGetFocus
+ \ ControlGetPos ControlGetText ControlMove ControlSend ControlSendRaw
+ \ ControlSetText Menu PostMessage SendMessage SetControlDelay
+ \ WinMenuSelectItem GroupActivate GroupAdd GroupClose GroupDeactivate
+ \ DetectHiddenText DetectHiddenWindows SetTitleMatchMode SetWinDelay
+ \ StatusBarGetText StatusBarWait WinActivate WinActivateBottom WinClose
+ \ WinGet WinGetActiveStats WinGetActiveTitle WinGetClass WinGetPos
+ \ WinGetText WinGetTitle WinHide WinKill WinMaximize WinMinimize
+ \ WinMinimizeAll WinMinimizeAllUndo WinMove WinRestore WinSet
+ \ WinSetTitle WinShow WinWait WinWaitActive WinWaitNotActive WinWaitClose
+ \ SetCapsLockState SetNumLockState SetScrollLockState
+ \ Hotstring LoadPicture MenuGetHandle MenuGetName OnError OnClipboardChange
+
+syn keyword autohotkeyFunction
+ \ InStr RegExMatch RegExReplace StrLen SubStr Asc Chr Func
+ \ DllCall VarSetCapacity WinActive WinExist IsLabel OnMessage
+ \ Abs Ceil Exp Floor Log Ln Mod Round Sqrt Sin Cos Tan ASin ACos ATan
+ \ FileExist GetKeyState NumGet NumPut StrGet StrPut RegisterCallback
+ \ IsFunc Trim LTrim RTrim IsObject Object Array FileOpen
+ \ ComObjActive ComObjArray ComObjConnect ComObjCreate ComObjGet
+ \ ComObjError ComObjFlags ComObjQuery ComObjType ComObjValue ComObject
+ \ Format Exception Ord InputHook
+
+syn keyword autohotkeyStatement
+ \ Break Continue Exit ExitApp Gosub Goto OnExit Pause Return
+ \ Suspend Reload new class extends
+
+syn keyword autohotkeyRepeat
+ \ Loop
+
+syn keyword autohotkeyConditional
+ \ IfExist IfNotExist If IfEqual IfLess IfGreater Else
+ \ IfWinExist IfWinNotExist IfWinActive IfWinNotActive
+ \ IfNotEqual IfLessOrEqual IfGreaterOrEqual
+ \ while until for in try catch finally not
+ \ switch case default
+
+syn match autohotkeyPreProcStart
+ \ nextgroup=
+ \ autohotkeyInclude,
+ \ autohotkeyPreProc
+ \ skipwhite
+ \ display
+ \ '^\s*\zs#'
+
+syn keyword autohotkeyInclude
+ \ contained
+ \ Include
+ \ IncludeAgain
+
+syn keyword autohotkeyPreProc
+ \ contained
+ \ HotkeyInterval HotKeyModifierTimeout
+ \ Hotstring
+ \ IfWinActive IfWinNotActive IfWinExist IfWinNotExist
+ \ If IfTimeout
+ \ MaxHotkeysPerInterval MaxThreads MaxThreadsBuffer MaxThreadsPerHotkey
+ \ UseHook InstallKeybdHook InstallMouseHook
+ \ KeyHistory
+ \ NoTrayIcon SingleInstance
+ \ WinActivateForce
+ \ AllowSameLineComments
+ \ ClipboardTimeout
+ \ CommentFlag
+ \ ErrorStdOut
+ \ EscapeChar
+ \ MaxMem
+ \ NoEnv
+ \ Persistent
+ \ LTrim
+ \ InputLevel
+ \ MenuMaskKey
+ \ Warn
+
+syn keyword autohotkeyMatchClass
+ \ ahk_group ahk_class ahk_id ahk_pid ahk_exe
+
+syn match autohotkeyNumbers
+ \ display
+ \ transparent
+ \ contains=
+ \ autohotkeyInteger,
+ \ autohotkeyFloat
+ \ '\<\d\|\.\d'
+
+syn match autohotkeyInteger
+ \ contained
+ \ display
+ \ '\d\+\>'
+
+syn match autohotkeyInteger
+ \ contained
+ \ display
+ \ '0x\x\+\>'
+
+syn match autohotkeyFloat
+ \ contained
+ \ display
+ \ '\d\+\.\d*\|\.\d\+\>'
+
+syn keyword autohotkeyType
+ \ local
+ \ global
+ \ static
+ \ byref
+
+syn keyword autohotkeyBoolean
+ \ true
+ \ false
+
+syn match autohotkeyHotkey
+ \ contains=autohotkeyKey,
+ \ autohotkeyHotkeyDelimiter
+ \ display
+ \ '^\s*\S*\%( Up\)\?::'
+
+syn match autohotkeyKey
+ \ contained
+ \ display
+ \ '^.\{-}'
+
+syn match autohotkeyDelimiter
+ \ contained
+ \ display
+ \ '::'
+
+" allowable hotstring options:
+" https://autohotkey.com/docs/Hotstrings.htm
+syn match autohotkeyHotstringDefinition
+ \ contains=autohotkeyHotstring,
+ \ autohotkeyHotstringDelimiter
+ \ display
+ \ '^\s*:\%([*?]\|[BORZ]0\?\|C[01]\?\|K\d\+\|P\d\+\|S[IPE]\)*:.\{-}::'
+
+syn match autohotkeyHotstring
+ \ contained
+ \ display
+ \ '.\{-}'
+
+syn match autohotkeyHotstringDelimiter
+ \ contained
+ \ display
+ \ '::'
+
+syn match autohotkeyHotstringDelimiter
+ \ contains=autohotkeyHotstringOptions
+ \ contained
+ \ display
+ \ ':\%([*?]\|[BORZ]0\?\|C[01]\?\|K\d\+\|P\d\+\|S[IPE]\)*:'
+
+syn match autohotkeyHotstringOptions
+ \ contained
+ \ display
+ \ '\%([*?]\|[BORZ]0\?\|C[01]\?\|K\d\+\|P\d\+\|S[IPE]\)*'
+
+syn cluster autohotkeyCommentGroup
+ \ contains=
+ \ autohotkeyTodo,
+ \ @Spell
+
+syn match autohotkeyComment
+ \ display
+ \ contains=@autohotkeyCommentGroup
+ \ '\%(^;\|\s\+;\).*$'
+
+syn region autohotkeyComment
+ \ contains=@autohotkeyCommentGroup
+ \ matchgroup=autohotkeyCommentStart
+ \ start='^\s*/\*'
+ \ end='^\s*\*/'
+
+" TODO: Shouldn't we look for g:, b:, variables before defaulting to
+" something?
+if exists("g:autohotkey_syntax_sync_minlines")
+ let b:autohotkey_syntax_sync_minlines = g:autohotkey_syntax_sync_minlines
+else
+ let b:autohotkey_syntax_sync_minlines = 50
+endif
+exec "syn sync ccomment autohotkeyComment minlines=" . b:autohotkey_syntax_sync_minlines
+
+hi def link autohotkeyTodo Todo
+hi def link autohotkeyComment Comment
+hi def link autohotkeyCommentStart autohotkeyComment
+hi def link autohotkeyEscape Special
+hi def link autohotkeyHotkey Type
+hi def link autohotkeyKey Type
+hi def link autohotkeyDelimiter Delimiter
+hi def link autohotkeyHotstringDefinition Type
+hi def link autohotkeyHotstring Type
+hi def link autohotkeyHotstringDelimiter autohotkeyDelimiter
+hi def link autohotkeyHotstringOptions Special
+hi def link autohotkeyString String
+hi def link autohotkeyStringDelimiter autohotkeyString
+hi def link autohotkeyVariable Identifier
+hi def link autohotkeyVariableDelimiter autohotkeyVariable
+hi def link autohotkeyBuiltinVariable Macro
+hi def link autohotkeyCommand Keyword
+hi def link autohotkeyFunction Function
+hi def link autohotkeyStatement autohotkeyCommand
+hi def link autohotkeyRepeat Repeat
+hi def link autohotkeyConditional Conditional
+hi def link autohotkeyPreProcStart PreProc
+hi def link autohotkeyInclude Include
+hi def link autohotkeyPreProc PreProc
+hi def link autohotkeyMatchClass Typedef
+hi def link autohotkeyNumber Number
+hi def link autohotkeyInteger autohotkeyNumber
+hi def link autohotkeyFloat autohotkeyNumber
+hi def link autohotkeyType Type
+hi def link autohotkeyBoolean Boolean
+
+let b:current_syntax = "autohotkey"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save