1071d4279SBram Moolenaar" Vim syntax file 2b6b046b2SBram Moolenaar" Language: Lua 4.0, Lua 5.0, Lua 5.1 and Lua 5.2 3b6b046b2SBram Moolenaar" Maintainer: Marcus Aurelius Farias <masserahguard-lua 'at' yahoo com> 4d4755bb0SBram Moolenaar" First Author: Carlos Augusto Teixeira Mendes <cmendes 'at' inf puc-rio br> 5*9b451250SBram Moolenaar" Last Change: 2012 Aug 12 68424a624SBram Moolenaar" Options: lua_version = 4 or 5 7b6b046b2SBram Moolenaar" lua_subversion = 0 (4.0, 5.0) or 1 (5.1) or 2 (5.2) 8b6b046b2SBram Moolenaar" default 5.2 98424a624SBram Moolenaar 10071d4279SBram Moolenaar" For version 5.x: Clear all syntax items 11071d4279SBram Moolenaar" For version 6.x: Quit when a syntax file was already loaded 12071d4279SBram Moolenaarif version < 600 13071d4279SBram Moolenaar syntax clear 14071d4279SBram Moolenaarelseif exists("b:current_syntax") 15071d4279SBram Moolenaar finish 16071d4279SBram Moolenaarendif 17071d4279SBram Moolenaar 185dc6252dSBram Moolenaarlet s:cpo_save = &cpo 195dc6252dSBram Moolenaarset cpo&vim 205dc6252dSBram Moolenaar 21071d4279SBram Moolenaarif !exists("lua_version") 22b6b046b2SBram Moolenaar " Default is lua 5.2 23071d4279SBram Moolenaar let lua_version = 5 24b6b046b2SBram Moolenaar let lua_subversion = 2 258424a624SBram Moolenaarelseif !exists("lua_subversion") 268424a624SBram Moolenaar " lua_version exists, but lua_subversion doesn't. So, set it to 0 278424a624SBram Moolenaar let lua_subversion = 0 28071d4279SBram Moolenaarendif 29071d4279SBram Moolenaar 30071d4279SBram Moolenaarsyn case match 31071d4279SBram Moolenaar 328424a624SBram Moolenaar" syncing method 338424a624SBram Moolenaarsyn sync minlines=100 348424a624SBram Moolenaar 35071d4279SBram Moolenaar" Comments 36071d4279SBram Moolenaarsyn keyword luaTodo contained TODO FIXME XXX 379964e468SBram Moolenaarsyn match luaComment "--.*$" contains=luaTodo,@Spell 388424a624SBram Moolenaarif lua_version == 5 && lua_subversion == 0 399964e468SBram Moolenaar syn region luaComment matchgroup=luaComment start="--\[\[" end="\]\]" contains=luaTodo,luaInnerComment,@Spell 40071d4279SBram Moolenaar syn region luaInnerComment contained transparent start="\[\[" end="\]\]" 418424a624SBram Moolenaarelseif lua_version > 5 || (lua_version == 5 && lua_subversion >= 1) 42fc1421ebSBram Moolenaar " Comments in Lua 5.1: --[[ ... ]], [=[ ... ]=], [===[ ... ]===], etc. 439964e468SBram Moolenaar syn region luaComment matchgroup=luaComment start="--\[\z(=*\)\[" end="\]\z1\]" contains=luaTodo,@Spell 44071d4279SBram Moolenaarendif 458424a624SBram Moolenaar 46071d4279SBram Moolenaar" First line may start with #! 47071d4279SBram Moolenaarsyn match luaComment "\%^#!.*" 48071d4279SBram Moolenaar 49071d4279SBram Moolenaar" catch errors caused by wrong parenthesis and wrong curly brackets or 50071d4279SBram Moolenaar" keywords placed outside their respective blocks 51*9b451250SBram Moolenaarsyn region luaParen transparent start='(' end=')' contains=ALLBUT,luaParenError,luaTodo,luaSpecial,luaIfThen,luaElseifThen,luaElse,luaThenEnd,luaBlock,luaLoopBlock,luaIn,luaStatement 52*9b451250SBram Moolenaarsyn region luaTableBlock transparent matchgroup=luaTable start="{" end="}" contains=ALLBUT,luaBraceError,luaTodo,luaSpecial,luaIfThen,luaElseifThen,luaElse,luaThenEnd,luaBlock,luaLoopBlock,luaIn,luaStatement 53071d4279SBram Moolenaar 54b6b046b2SBram Moolenaarsyn match luaParenError ")" 55*9b451250SBram Moolenaarsyn match luaBraceError "}" 56d4755bb0SBram Moolenaarsyn match luaError "\<\%(end\|else\|elseif\|then\|until\|in\)\>" 57071d4279SBram Moolenaar 58*9b451250SBram Moolenaar" function ... end 59*9b451250SBram Moolenaarsyn region luaFunctionBlock transparent matchgroup=luaFunction start="\<function\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaElseifThen,luaElse,luaThenEnd,luaIn 60071d4279SBram Moolenaar 61071d4279SBram Moolenaar" if ... then 62*9b451250SBram Moolenaarsyn region luaIfThen transparent matchgroup=luaCond start="\<if\>" end="\<then\>"me=e-4 contains=ALLBUT,luaTodo,luaSpecial,luaElseifThen,luaElse,luaIn nextgroup=luaThenEnd skipwhite skipempty 63*9b451250SBram Moolenaar 64*9b451250SBram Moolenaar" then ... end 65*9b451250SBram Moolenaarsyn region luaThenEnd contained transparent matchgroup=luaCond start="\<then\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaThenEnd,luaIn 66*9b451250SBram Moolenaar 67*9b451250SBram Moolenaar" elseif ... then 68*9b451250SBram Moolenaarsyn region luaElseifThen contained transparent matchgroup=luaCond start="\<elseif\>" end="\<then\>" contains=ALLBUT,luaTodo,luaSpecial,luaElseifThen,luaElse,luaThenEnd,luaIn 69*9b451250SBram Moolenaar 70*9b451250SBram Moolenaar" else 71*9b451250SBram Moolenaarsyn keyword luaElse contained else 72071d4279SBram Moolenaar 73071d4279SBram Moolenaar" do ... end 74*9b451250SBram Moolenaarsyn region luaBlock transparent matchgroup=luaStatement start="\<do\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaElseifThen,luaElse,luaThenEnd,luaIn 75*9b451250SBram Moolenaar 76071d4279SBram Moolenaar" repeat ... until 77*9b451250SBram Moolenaarsyn region luaLoopBlock transparent matchgroup=luaRepeat start="\<repeat\>" end="\<until\>" contains=ALLBUT,luaTodo,luaSpecial,luaElseifThen,luaElse,luaThenEnd,luaIn 78071d4279SBram Moolenaar 79071d4279SBram Moolenaar" while ... do 80*9b451250SBram Moolenaarsyn region luaLoopBlock transparent matchgroup=luaRepeat start="\<while\>" end="\<do\>"me=e-2 contains=ALLBUT,luaTodo,luaSpecial,luaIfThen,luaElseifThen,luaElse,luaThenEnd,luaIn nextgroup=luaBlock skipwhite skipempty 81071d4279SBram Moolenaar 82071d4279SBram Moolenaar" for ... do and for ... in ... do 83*9b451250SBram Moolenaarsyn region luaLoopBlock transparent matchgroup=luaRepeat start="\<for\>" end="\<do\>"me=e-2 contains=ALLBUT,luaTodo,luaSpecial,luaIfThen,luaElseifThen,luaElse,luaThenEnd nextgroup=luaBlock skipwhite skipempty 84071d4279SBram Moolenaar 85*9b451250SBram Moolenaarsyn keyword luaIn contained in 86071d4279SBram Moolenaar 87071d4279SBram Moolenaar" other keywords 88071d4279SBram Moolenaarsyn keyword luaStatement return local break 89b6b046b2SBram Moolenaarif lua_version > 5 || (lua_version == 5 && lua_subversion >= 2) 90b6b046b2SBram Moolenaar syn keyword luaStatement goto 91b6b046b2SBram Moolenaar syn match luaLabel "::\I\i*::" 92b6b046b2SBram Moolenaarendif 93071d4279SBram Moolenaarsyn keyword luaOperator and or not 94071d4279SBram Moolenaarsyn keyword luaConstant nil 95071d4279SBram Moolenaarif lua_version > 4 96071d4279SBram Moolenaar syn keyword luaConstant true false 97071d4279SBram Moolenaarendif 98071d4279SBram Moolenaar 99071d4279SBram Moolenaar" Strings 100fc1421ebSBram Moolenaarif lua_version < 5 101b6b046b2SBram Moolenaar syn match luaSpecial contained "\\[\\abfnrtv\'\"]\|\\[[:digit:]]\{,3}" 102b6b046b2SBram Moolenaarelseif lua_version == 5 103b6b046b2SBram Moolenaar if lua_subversion == 0 104b6b046b2SBram Moolenaar syn match luaSpecial contained #\\[\\abfnrtv'"[\]]\|\\[[:digit:]]\{,3}# 1059964e468SBram Moolenaar syn region luaString2 matchgroup=luaString start=+\[\[+ end=+\]\]+ contains=luaString2,@Spell 106b6b046b2SBram Moolenaar else 107b6b046b2SBram Moolenaar if lua_subversion == 1 108b6b046b2SBram Moolenaar syn match luaSpecial contained #\\[\\abfnrtv'"]\|\\[[:digit:]]\{,3}# 109b6b046b2SBram Moolenaar else " Lua 5.2 110b6b046b2SBram Moolenaar syn match luaSpecial contained #\\[\\abfnrtvz'"]\|\\x[[:xdigit:]]\{2}\|\\[[:digit:]]\{,3}# 111b6b046b2SBram Moolenaar endif 1129964e468SBram Moolenaar syn region luaString2 matchgroup=luaString start="\[\z(=*\)\[" end="\]\z1\]" contains=@Spell 1138424a624SBram Moolenaar endif 114b6b046b2SBram Moolenaarendif 1159964e468SBram Moolenaarsyn region luaString start=+'+ end=+'+ skip=+\\\\\|\\'+ contains=luaSpecial,@Spell 1169964e468SBram Moolenaarsyn region luaString start=+"+ end=+"+ skip=+\\\\\|\\"+ contains=luaSpecial,@Spell 117071d4279SBram Moolenaar 118071d4279SBram Moolenaar" integer number 1199964e468SBram Moolenaarsyn match luaNumber "\<\d\+\>" 120071d4279SBram Moolenaar" floating point number, with dot, optional exponent 121b6b046b2SBram Moolenaarsyn match luaNumber "\<\d\+\.\d*\%([eE][-+]\=\d\+\)\=\>" 122071d4279SBram Moolenaar" floating point number, starting with a dot, optional exponent 123b6b046b2SBram Moolenaarsyn match luaNumber "\.\d\+\%([eE][-+]\=\d\+\)\=\>" 124071d4279SBram Moolenaar" floating point number, without dot, with exponent 125b6b046b2SBram Moolenaarsyn match luaNumber "\<\d\+[eE][-+]\=\d\+\>" 1269964e468SBram Moolenaar 1279964e468SBram Moolenaar" hex numbers 128b6b046b2SBram Moolenaarif lua_version >= 5 129b6b046b2SBram Moolenaar if lua_subversion == 1 130b6b046b2SBram Moolenaar syn match luaNumber "\<0[xX]\x\+\>" 131b6b046b2SBram Moolenaar elseif lua_subversion >= 2 132b6b046b2SBram Moolenaar syn match luaNumber "\<0[xX][[:xdigit:].]\+\%([pP][-+]\=\d\+\)\=\>" 133b6b046b2SBram Moolenaar endif 1349964e468SBram Moolenaarendif 135071d4279SBram Moolenaar 136fc1421ebSBram Moolenaarsyn keyword luaFunc assert collectgarbage dofile error next 137071d4279SBram Moolenaarsyn keyword luaFunc print rawget rawset tonumber tostring type _VERSION 138071d4279SBram Moolenaar 139071d4279SBram Moolenaarif lua_version == 4 140fc1421ebSBram Moolenaar syn keyword luaFunc _ALERT _ERRORMESSAGE gcinfo 141071d4279SBram Moolenaar syn keyword luaFunc call copytagmethods dostring 142071d4279SBram Moolenaar syn keyword luaFunc foreach foreachi getglobal getn 143071d4279SBram Moolenaar syn keyword luaFunc gettagmethod globals newtag 144071d4279SBram Moolenaar syn keyword luaFunc setglobal settag settagmethod sort 145071d4279SBram Moolenaar syn keyword luaFunc tag tinsert tremove 146071d4279SBram Moolenaar syn keyword luaFunc _INPUT _OUTPUT _STDIN _STDOUT _STDERR 147071d4279SBram Moolenaar syn keyword luaFunc openfile closefile flush seek 148071d4279SBram Moolenaar syn keyword luaFunc setlocale execute remove rename tmpname 149071d4279SBram Moolenaar syn keyword luaFunc getenv date clock exit 150071d4279SBram Moolenaar syn keyword luaFunc readfrom writeto appendto read write 151071d4279SBram Moolenaar syn keyword luaFunc PI abs sin cos tan asin 152071d4279SBram Moolenaar syn keyword luaFunc acos atan atan2 ceil floor 153071d4279SBram Moolenaar syn keyword luaFunc mod frexp ldexp sqrt min max log 154071d4279SBram Moolenaar syn keyword luaFunc log10 exp deg rad random 155071d4279SBram Moolenaar syn keyword luaFunc randomseed strlen strsub strlower strupper 156071d4279SBram Moolenaar syn keyword luaFunc strchar strrep ascii strbyte 157071d4279SBram Moolenaar syn keyword luaFunc format strfind gsub 158071d4279SBram Moolenaar syn keyword luaFunc getinfo getlocal setlocal setcallhook setlinehook 1598424a624SBram Moolenaarelseif lua_version == 5 160b6b046b2SBram Moolenaar syn keyword luaFunc getmetatable setmetatable 161b6b046b2SBram Moolenaar syn keyword luaFunc ipairs pairs 162b6b046b2SBram Moolenaar syn keyword luaFunc pcall xpcall 163b6b046b2SBram Moolenaar syn keyword luaFunc _G loadfile rawequal require 1648424a624SBram Moolenaar if lua_subversion == 0 165b6b046b2SBram Moolenaar syn keyword luaFunc getfenv setfenv 166b6b046b2SBram Moolenaar syn keyword luaFunc loadstring unpack 167fc1421ebSBram Moolenaar syn keyword luaFunc gcinfo loadlib LUA_PATH _LOADED _REQUIREDNAME 168b6b046b2SBram Moolenaar else 169b6b046b2SBram Moolenaar syn keyword luaFunc load select 170b6b046b2SBram Moolenaar syn match luaFunc /\<package\.cpath\>/ 171b6b046b2SBram Moolenaar syn match luaFunc /\<package\.loaded\>/ 172b6b046b2SBram Moolenaar syn match luaFunc /\<package\.loadlib\>/ 173b6b046b2SBram Moolenaar syn match luaFunc /\<package\.path\>/ 1748424a624SBram Moolenaar if lua_subversion == 1 175b6b046b2SBram Moolenaar syn keyword luaFunc getfenv setfenv 176b6b046b2SBram Moolenaar syn keyword luaFunc loadstring module unpack 177b6b046b2SBram Moolenaar syn match luaFunc /\<package\.loaders\>/ 178b6b046b2SBram Moolenaar syn match luaFunc /\<package\.preload\>/ 179b6b046b2SBram Moolenaar syn match luaFunc /\<package\.seeall\>/ 180b6b046b2SBram Moolenaar elseif lua_subversion == 2 181b6b046b2SBram Moolenaar syn keyword luaFunc _ENV rawlen 182b6b046b2SBram Moolenaar syn match luaFunc /\<package\.config\>/ 183b6b046b2SBram Moolenaar syn match luaFunc /\<package\.preload\>/ 184b6b046b2SBram Moolenaar syn match luaFunc /\<package\.searchers\>/ 185b6b046b2SBram Moolenaar syn match luaFunc /\<package\.searchpath\>/ 186b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.arshift\>/ 187b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.band\>/ 188b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.bnot\>/ 189b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.bor\>/ 190b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.btest\>/ 191b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.bxor\>/ 192b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.extract\>/ 193b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.lrotate\>/ 194b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.lshift\>/ 195b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.replace\>/ 196b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.rrotate\>/ 197b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.rshift\>/ 198b6b046b2SBram Moolenaar endif 199b6b046b2SBram Moolenaar syn match luaFunc /\<coroutine\.running\>/ 200b6b046b2SBram Moolenaar endif 201b6b046b2SBram Moolenaar syn match luaFunc /\<coroutine\.create\>/ 202b6b046b2SBram Moolenaar syn match luaFunc /\<coroutine\.resume\>/ 203b6b046b2SBram Moolenaar syn match luaFunc /\<coroutine\.status\>/ 204b6b046b2SBram Moolenaar syn match luaFunc /\<coroutine\.wrap\>/ 205b6b046b2SBram Moolenaar syn match luaFunc /\<coroutine\.yield\>/ 206b6b046b2SBram Moolenaar syn match luaFunc /\<string\.byte\>/ 207b6b046b2SBram Moolenaar syn match luaFunc /\<string\.char\>/ 208b6b046b2SBram Moolenaar syn match luaFunc /\<string\.dump\>/ 209b6b046b2SBram Moolenaar syn match luaFunc /\<string\.find\>/ 210b6b046b2SBram Moolenaar syn match luaFunc /\<string\.format\>/ 211b6b046b2SBram Moolenaar syn match luaFunc /\<string\.gsub\>/ 212b6b046b2SBram Moolenaar syn match luaFunc /\<string\.len\>/ 213b6b046b2SBram Moolenaar syn match luaFunc /\<string\.lower\>/ 214b6b046b2SBram Moolenaar syn match luaFunc /\<string\.rep\>/ 215b6b046b2SBram Moolenaar syn match luaFunc /\<string\.sub\>/ 216b6b046b2SBram Moolenaar syn match luaFunc /\<string\.upper\>/ 217b6b046b2SBram Moolenaar if lua_subversion == 0 218b6b046b2SBram Moolenaar syn match luaFunc /\<string\.gfind\>/ 219b6b046b2SBram Moolenaar else 220b6b046b2SBram Moolenaar syn match luaFunc /\<string\.gmatch\>/ 221b6b046b2SBram Moolenaar syn match luaFunc /\<string\.match\>/ 222b6b046b2SBram Moolenaar syn match luaFunc /\<string\.reverse\>/ 223b6b046b2SBram Moolenaar endif 224b6b046b2SBram Moolenaar if lua_subversion == 0 225b6b046b2SBram Moolenaar syn match luaFunc /\<table\.getn\>/ 226b6b046b2SBram Moolenaar syn match luaFunc /\<table\.setn\>/ 227b6b046b2SBram Moolenaar syn match luaFunc /\<table\.foreach\>/ 228b6b046b2SBram Moolenaar syn match luaFunc /\<table\.foreachi\>/ 229b6b046b2SBram Moolenaar elseif lua_subversion == 1 230b6b046b2SBram Moolenaar syn match luaFunc /\<table\.maxn\>/ 231b6b046b2SBram Moolenaar elseif lua_subversion == 2 232b6b046b2SBram Moolenaar syn match luaFunc /\<table\.pack\>/ 233b6b046b2SBram Moolenaar syn match luaFunc /\<table\.unpack\>/ 234b6b046b2SBram Moolenaar endif 235b6b046b2SBram Moolenaar syn match luaFunc /\<table\.concat\>/ 236b6b046b2SBram Moolenaar syn match luaFunc /\<table\.sort\>/ 237b6b046b2SBram Moolenaar syn match luaFunc /\<table\.insert\>/ 238b6b046b2SBram Moolenaar syn match luaFunc /\<table\.remove\>/ 239b6b046b2SBram Moolenaar syn match luaFunc /\<math\.abs\>/ 240b6b046b2SBram Moolenaar syn match luaFunc /\<math\.acos\>/ 241b6b046b2SBram Moolenaar syn match luaFunc /\<math\.asin\>/ 242b6b046b2SBram Moolenaar syn match luaFunc /\<math\.atan\>/ 243b6b046b2SBram Moolenaar syn match luaFunc /\<math\.atan2\>/ 244b6b046b2SBram Moolenaar syn match luaFunc /\<math\.ceil\>/ 245b6b046b2SBram Moolenaar syn match luaFunc /\<math\.sin\>/ 246b6b046b2SBram Moolenaar syn match luaFunc /\<math\.cos\>/ 247b6b046b2SBram Moolenaar syn match luaFunc /\<math\.tan\>/ 248b6b046b2SBram Moolenaar syn match luaFunc /\<math\.deg\>/ 249b6b046b2SBram Moolenaar syn match luaFunc /\<math\.exp\>/ 250b6b046b2SBram Moolenaar syn match luaFunc /\<math\.floor\>/ 251b6b046b2SBram Moolenaar syn match luaFunc /\<math\.log\>/ 252b6b046b2SBram Moolenaar syn match luaFunc /\<math\.max\>/ 253b6b046b2SBram Moolenaar syn match luaFunc /\<math\.min\>/ 254b6b046b2SBram Moolenaar if lua_subversion == 0 255b6b046b2SBram Moolenaar syn match luaFunc /\<math\.mod\>/ 256b6b046b2SBram Moolenaar syn match luaFunc /\<math\.log10\>/ 257b6b046b2SBram Moolenaar else 258b6b046b2SBram Moolenaar if lua_subversion == 1 259b6b046b2SBram Moolenaar syn match luaFunc /\<math\.log10\>/ 260b6b046b2SBram Moolenaar endif 261b6b046b2SBram Moolenaar syn match luaFunc /\<math\.huge\>/ 262b6b046b2SBram Moolenaar syn match luaFunc /\<math\.fmod\>/ 263b6b046b2SBram Moolenaar syn match luaFunc /\<math\.modf\>/ 264b6b046b2SBram Moolenaar syn match luaFunc /\<math\.cosh\>/ 265b6b046b2SBram Moolenaar syn match luaFunc /\<math\.sinh\>/ 266b6b046b2SBram Moolenaar syn match luaFunc /\<math\.tanh\>/ 267b6b046b2SBram Moolenaar endif 268b6b046b2SBram Moolenaar syn match luaFunc /\<math\.pow\>/ 269b6b046b2SBram Moolenaar syn match luaFunc /\<math\.rad\>/ 270b6b046b2SBram Moolenaar syn match luaFunc /\<math\.sqrt\>/ 271b6b046b2SBram Moolenaar syn match luaFunc /\<math\.frexp\>/ 272b6b046b2SBram Moolenaar syn match luaFunc /\<math\.ldexp\>/ 273b6b046b2SBram Moolenaar syn match luaFunc /\<math\.random\>/ 274b6b046b2SBram Moolenaar syn match luaFunc /\<math\.randomseed\>/ 275b6b046b2SBram Moolenaar syn match luaFunc /\<math\.pi\>/ 276b6b046b2SBram Moolenaar syn match luaFunc /\<io\.close\>/ 277b6b046b2SBram Moolenaar syn match luaFunc /\<io\.flush\>/ 278b6b046b2SBram Moolenaar syn match luaFunc /\<io\.input\>/ 279b6b046b2SBram Moolenaar syn match luaFunc /\<io\.lines\>/ 280b6b046b2SBram Moolenaar syn match luaFunc /\<io\.open\>/ 281b6b046b2SBram Moolenaar syn match luaFunc /\<io\.output\>/ 282b6b046b2SBram Moolenaar syn match luaFunc /\<io\.popen\>/ 283b6b046b2SBram Moolenaar syn match luaFunc /\<io\.read\>/ 284b6b046b2SBram Moolenaar syn match luaFunc /\<io\.stderr\>/ 285b6b046b2SBram Moolenaar syn match luaFunc /\<io\.stdin\>/ 286b6b046b2SBram Moolenaar syn match luaFunc /\<io\.stdout\>/ 287b6b046b2SBram Moolenaar syn match luaFunc /\<io\.tmpfile\>/ 288b6b046b2SBram Moolenaar syn match luaFunc /\<io\.type\>/ 289b6b046b2SBram Moolenaar syn match luaFunc /\<io\.write\>/ 290b6b046b2SBram Moolenaar syn match luaFunc /\<os\.clock\>/ 291b6b046b2SBram Moolenaar syn match luaFunc /\<os\.date\>/ 292b6b046b2SBram Moolenaar syn match luaFunc /\<os\.difftime\>/ 293b6b046b2SBram Moolenaar syn match luaFunc /\<os\.execute\>/ 294b6b046b2SBram Moolenaar syn match luaFunc /\<os\.exit\>/ 295b6b046b2SBram Moolenaar syn match luaFunc /\<os\.getenv\>/ 296b6b046b2SBram Moolenaar syn match luaFunc /\<os\.remove\>/ 297b6b046b2SBram Moolenaar syn match luaFunc /\<os\.rename\>/ 298b6b046b2SBram Moolenaar syn match luaFunc /\<os\.setlocale\>/ 299b6b046b2SBram Moolenaar syn match luaFunc /\<os\.time\>/ 300b6b046b2SBram Moolenaar syn match luaFunc /\<os\.tmpname\>/ 301b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.debug\>/ 302b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.gethook\>/ 303b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.getinfo\>/ 304b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.getlocal\>/ 305b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.getupvalue\>/ 306b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.setlocal\>/ 307b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.setupvalue\>/ 308b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.sethook\>/ 309b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.traceback\>/ 310b6b046b2SBram Moolenaar if lua_subversion == 1 311b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.getfenv\>/ 312b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.setfenv\>/ 313b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.getmetatable\>/ 314b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.setmetatable\>/ 315b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.getregistry\>/ 316b6b046b2SBram Moolenaar elseif lua_subversion == 2 317b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.getmetatable\>/ 318b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.setmetatable\>/ 319b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.getregistry\>/ 320b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.getuservalue\>/ 321b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.setuservalue\>/ 322b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.upvalueid\>/ 323b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.upvaluejoin\>/ 324071d4279SBram Moolenaar endif 3258424a624SBram Moolenaarendif 326071d4279SBram Moolenaar 327071d4279SBram Moolenaar" Define the default highlighting. 328071d4279SBram Moolenaar" For version 5.7 and earlier: only when not done already 329071d4279SBram Moolenaar" For version 5.8 and later: only when an item doesn't have highlighting yet 330071d4279SBram Moolenaarif version >= 508 || !exists("did_lua_syntax_inits") 331071d4279SBram Moolenaar if version < 508 332071d4279SBram Moolenaar let did_lua_syntax_inits = 1 333071d4279SBram Moolenaar command -nargs=+ HiLink hi link <args> 334071d4279SBram Moolenaar else 335071d4279SBram Moolenaar command -nargs=+ HiLink hi def link <args> 336071d4279SBram Moolenaar endif 337071d4279SBram Moolenaar 338071d4279SBram Moolenaar HiLink luaStatement Statement 339071d4279SBram Moolenaar HiLink luaRepeat Repeat 340b6b046b2SBram Moolenaar HiLink luaFor Repeat 341071d4279SBram Moolenaar HiLink luaString String 342071d4279SBram Moolenaar HiLink luaString2 String 343071d4279SBram Moolenaar HiLink luaNumber Number 344071d4279SBram Moolenaar HiLink luaOperator Operator 345*9b451250SBram Moolenaar HiLink luaIn Operator 346071d4279SBram Moolenaar HiLink luaConstant Constant 347071d4279SBram Moolenaar HiLink luaCond Conditional 348*9b451250SBram Moolenaar HiLink luaElse Conditional 349071d4279SBram Moolenaar HiLink luaFunction Function 350071d4279SBram Moolenaar HiLink luaComment Comment 351071d4279SBram Moolenaar HiLink luaTodo Todo 352071d4279SBram Moolenaar HiLink luaTable Structure 353071d4279SBram Moolenaar HiLink luaError Error 354b6b046b2SBram Moolenaar HiLink luaParenError Error 355*9b451250SBram Moolenaar HiLink luaBraceError Error 356071d4279SBram Moolenaar HiLink luaSpecial SpecialChar 357071d4279SBram Moolenaar HiLink luaFunc Identifier 358b6b046b2SBram Moolenaar HiLink luaLabel Label 359071d4279SBram Moolenaar 360071d4279SBram Moolenaar delcommand HiLink 361071d4279SBram Moolenaarendif 362071d4279SBram Moolenaar 363071d4279SBram Moolenaarlet b:current_syntax = "lua" 364071d4279SBram Moolenaar 3655dc6252dSBram Moolenaarlet &cpo = s:cpo_save 3665dc6252dSBram Moolenaarunlet s:cpo_save 367b6b046b2SBram Moolenaar" vim: et ts=8 sw=2 368