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> 59b451250SBram 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 1089bcfda6SBram Moolenaar" quit when a syntax file was already loaded 1189bcfda6SBram Moolenaarif exists("b:current_syntax") 12071d4279SBram Moolenaar finish 13071d4279SBram Moolenaarendif 14071d4279SBram Moolenaar 155dc6252dSBram Moolenaarlet s:cpo_save = &cpo 165dc6252dSBram Moolenaarset cpo&vim 175dc6252dSBram Moolenaar 18071d4279SBram Moolenaarif !exists("lua_version") 19b6b046b2SBram Moolenaar " Default is lua 5.2 20071d4279SBram Moolenaar let lua_version = 5 21b6b046b2SBram Moolenaar let lua_subversion = 2 228424a624SBram Moolenaarelseif !exists("lua_subversion") 238424a624SBram Moolenaar " lua_version exists, but lua_subversion doesn't. So, set it to 0 248424a624SBram Moolenaar let lua_subversion = 0 25071d4279SBram Moolenaarendif 26071d4279SBram Moolenaar 27071d4279SBram Moolenaarsyn case match 28071d4279SBram Moolenaar 298424a624SBram Moolenaar" syncing method 308424a624SBram Moolenaarsyn sync minlines=100 318424a624SBram Moolenaar 32071d4279SBram Moolenaar" Comments 33071d4279SBram Moolenaarsyn keyword luaTodo contained TODO FIXME XXX 349964e468SBram Moolenaarsyn match luaComment "--.*$" contains=luaTodo,@Spell 358424a624SBram Moolenaarif lua_version == 5 && lua_subversion == 0 369964e468SBram Moolenaar syn region luaComment matchgroup=luaComment start="--\[\[" end="\]\]" contains=luaTodo,luaInnerComment,@Spell 37071d4279SBram Moolenaar syn region luaInnerComment contained transparent start="\[\[" end="\]\]" 388424a624SBram Moolenaarelseif lua_version > 5 || (lua_version == 5 && lua_subversion >= 1) 39fc1421ebSBram Moolenaar " Comments in Lua 5.1: --[[ ... ]], [=[ ... ]=], [===[ ... ]===], etc. 409964e468SBram Moolenaar syn region luaComment matchgroup=luaComment start="--\[\z(=*\)\[" end="\]\z1\]" contains=luaTodo,@Spell 41071d4279SBram Moolenaarendif 428424a624SBram Moolenaar 43071d4279SBram Moolenaar" First line may start with #! 44071d4279SBram Moolenaarsyn match luaComment "\%^#!.*" 45071d4279SBram Moolenaar 46071d4279SBram Moolenaar" catch errors caused by wrong parenthesis and wrong curly brackets or 47071d4279SBram Moolenaar" keywords placed outside their respective blocks 489b451250SBram Moolenaarsyn region luaParen transparent start='(' end=')' contains=ALLBUT,luaParenError,luaTodo,luaSpecial,luaIfThen,luaElseifThen,luaElse,luaThenEnd,luaBlock,luaLoopBlock,luaIn,luaStatement 499b451250SBram Moolenaarsyn region luaTableBlock transparent matchgroup=luaTable start="{" end="}" contains=ALLBUT,luaBraceError,luaTodo,luaSpecial,luaIfThen,luaElseifThen,luaElse,luaThenEnd,luaBlock,luaLoopBlock,luaIn,luaStatement 50071d4279SBram Moolenaar 51b6b046b2SBram Moolenaarsyn match luaParenError ")" 529b451250SBram Moolenaarsyn match luaBraceError "}" 53d4755bb0SBram Moolenaarsyn match luaError "\<\%(end\|else\|elseif\|then\|until\|in\)\>" 54071d4279SBram Moolenaar 559b451250SBram Moolenaar" function ... end 569b451250SBram Moolenaarsyn region luaFunctionBlock transparent matchgroup=luaFunction start="\<function\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaElseifThen,luaElse,luaThenEnd,luaIn 57071d4279SBram Moolenaar 58071d4279SBram Moolenaar" if ... then 599b451250SBram Moolenaarsyn region luaIfThen transparent matchgroup=luaCond start="\<if\>" end="\<then\>"me=e-4 contains=ALLBUT,luaTodo,luaSpecial,luaElseifThen,luaElse,luaIn nextgroup=luaThenEnd skipwhite skipempty 609b451250SBram Moolenaar 619b451250SBram Moolenaar" then ... end 629b451250SBram Moolenaarsyn region luaThenEnd contained transparent matchgroup=luaCond start="\<then\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaThenEnd,luaIn 639b451250SBram Moolenaar 649b451250SBram Moolenaar" elseif ... then 659b451250SBram Moolenaarsyn region luaElseifThen contained transparent matchgroup=luaCond start="\<elseif\>" end="\<then\>" contains=ALLBUT,luaTodo,luaSpecial,luaElseifThen,luaElse,luaThenEnd,luaIn 669b451250SBram Moolenaar 679b451250SBram Moolenaar" else 689b451250SBram Moolenaarsyn keyword luaElse contained else 69071d4279SBram Moolenaar 70071d4279SBram Moolenaar" do ... end 719b451250SBram Moolenaarsyn region luaBlock transparent matchgroup=luaStatement start="\<do\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaElseifThen,luaElse,luaThenEnd,luaIn 729b451250SBram Moolenaar 73071d4279SBram Moolenaar" repeat ... until 749b451250SBram Moolenaarsyn region luaLoopBlock transparent matchgroup=luaRepeat start="\<repeat\>" end="\<until\>" contains=ALLBUT,luaTodo,luaSpecial,luaElseifThen,luaElse,luaThenEnd,luaIn 75071d4279SBram Moolenaar 76071d4279SBram Moolenaar" while ... do 779b451250SBram 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 78071d4279SBram Moolenaar 79071d4279SBram Moolenaar" for ... do and for ... in ... do 809b451250SBram 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 81071d4279SBram Moolenaar 829b451250SBram Moolenaarsyn keyword luaIn contained in 83071d4279SBram Moolenaar 84071d4279SBram Moolenaar" other keywords 85071d4279SBram Moolenaarsyn keyword luaStatement return local break 86b6b046b2SBram Moolenaarif lua_version > 5 || (lua_version == 5 && lua_subversion >= 2) 87b6b046b2SBram Moolenaar syn keyword luaStatement goto 88b6b046b2SBram Moolenaar syn match luaLabel "::\I\i*::" 89b6b046b2SBram Moolenaarendif 90071d4279SBram Moolenaarsyn keyword luaOperator and or not 91071d4279SBram Moolenaarsyn keyword luaConstant nil 92071d4279SBram Moolenaarif lua_version > 4 93071d4279SBram Moolenaar syn keyword luaConstant true false 94071d4279SBram Moolenaarendif 95071d4279SBram Moolenaar 96071d4279SBram Moolenaar" Strings 97fc1421ebSBram Moolenaarif lua_version < 5 98b6b046b2SBram Moolenaar syn match luaSpecial contained "\\[\\abfnrtv\'\"]\|\\[[:digit:]]\{,3}" 99b6b046b2SBram Moolenaarelseif lua_version == 5 100b6b046b2SBram Moolenaar if lua_subversion == 0 101b6b046b2SBram Moolenaar syn match luaSpecial contained #\\[\\abfnrtv'"[\]]\|\\[[:digit:]]\{,3}# 1029964e468SBram Moolenaar syn region luaString2 matchgroup=luaString start=+\[\[+ end=+\]\]+ contains=luaString2,@Spell 103b6b046b2SBram Moolenaar else 104b6b046b2SBram Moolenaar if lua_subversion == 1 105b6b046b2SBram Moolenaar syn match luaSpecial contained #\\[\\abfnrtv'"]\|\\[[:digit:]]\{,3}# 106b6b046b2SBram Moolenaar else " Lua 5.2 107b6b046b2SBram Moolenaar syn match luaSpecial contained #\\[\\abfnrtvz'"]\|\\x[[:xdigit:]]\{2}\|\\[[:digit:]]\{,3}# 108b6b046b2SBram Moolenaar endif 1099964e468SBram Moolenaar syn region luaString2 matchgroup=luaString start="\[\z(=*\)\[" end="\]\z1\]" contains=@Spell 1108424a624SBram Moolenaar endif 111b6b046b2SBram Moolenaarendif 1129964e468SBram Moolenaarsyn region luaString start=+'+ end=+'+ skip=+\\\\\|\\'+ contains=luaSpecial,@Spell 1139964e468SBram Moolenaarsyn region luaString start=+"+ end=+"+ skip=+\\\\\|\\"+ contains=luaSpecial,@Spell 114071d4279SBram Moolenaar 115071d4279SBram Moolenaar" integer number 1169964e468SBram Moolenaarsyn match luaNumber "\<\d\+\>" 117071d4279SBram Moolenaar" floating point number, with dot, optional exponent 118b6b046b2SBram Moolenaarsyn match luaNumber "\<\d\+\.\d*\%([eE][-+]\=\d\+\)\=\>" 119071d4279SBram Moolenaar" floating point number, starting with a dot, optional exponent 120b6b046b2SBram Moolenaarsyn match luaNumber "\.\d\+\%([eE][-+]\=\d\+\)\=\>" 121071d4279SBram Moolenaar" floating point number, without dot, with exponent 122b6b046b2SBram Moolenaarsyn match luaNumber "\<\d\+[eE][-+]\=\d\+\>" 1239964e468SBram Moolenaar 1249964e468SBram Moolenaar" hex numbers 125b6b046b2SBram Moolenaarif lua_version >= 5 126b6b046b2SBram Moolenaar if lua_subversion == 1 127b6b046b2SBram Moolenaar syn match luaNumber "\<0[xX]\x\+\>" 128b6b046b2SBram Moolenaar elseif lua_subversion >= 2 129b6b046b2SBram Moolenaar syn match luaNumber "\<0[xX][[:xdigit:].]\+\%([pP][-+]\=\d\+\)\=\>" 130b6b046b2SBram Moolenaar endif 1319964e468SBram Moolenaarendif 132071d4279SBram Moolenaar 133fc1421ebSBram Moolenaarsyn keyword luaFunc assert collectgarbage dofile error next 134071d4279SBram Moolenaarsyn keyword luaFunc print rawget rawset tonumber tostring type _VERSION 135071d4279SBram Moolenaar 136071d4279SBram Moolenaarif lua_version == 4 137fc1421ebSBram Moolenaar syn keyword luaFunc _ALERT _ERRORMESSAGE gcinfo 138071d4279SBram Moolenaar syn keyword luaFunc call copytagmethods dostring 139071d4279SBram Moolenaar syn keyword luaFunc foreach foreachi getglobal getn 140071d4279SBram Moolenaar syn keyword luaFunc gettagmethod globals newtag 141071d4279SBram Moolenaar syn keyword luaFunc setglobal settag settagmethod sort 142071d4279SBram Moolenaar syn keyword luaFunc tag tinsert tremove 143071d4279SBram Moolenaar syn keyword luaFunc _INPUT _OUTPUT _STDIN _STDOUT _STDERR 144071d4279SBram Moolenaar syn keyword luaFunc openfile closefile flush seek 145071d4279SBram Moolenaar syn keyword luaFunc setlocale execute remove rename tmpname 146071d4279SBram Moolenaar syn keyword luaFunc getenv date clock exit 147071d4279SBram Moolenaar syn keyword luaFunc readfrom writeto appendto read write 148071d4279SBram Moolenaar syn keyword luaFunc PI abs sin cos tan asin 149071d4279SBram Moolenaar syn keyword luaFunc acos atan atan2 ceil floor 150071d4279SBram Moolenaar syn keyword luaFunc mod frexp ldexp sqrt min max log 151071d4279SBram Moolenaar syn keyword luaFunc log10 exp deg rad random 152071d4279SBram Moolenaar syn keyword luaFunc randomseed strlen strsub strlower strupper 153071d4279SBram Moolenaar syn keyword luaFunc strchar strrep ascii strbyte 154071d4279SBram Moolenaar syn keyword luaFunc format strfind gsub 155071d4279SBram Moolenaar syn keyword luaFunc getinfo getlocal setlocal setcallhook setlinehook 1568424a624SBram Moolenaarelseif lua_version == 5 157b6b046b2SBram Moolenaar syn keyword luaFunc getmetatable setmetatable 158b6b046b2SBram Moolenaar syn keyword luaFunc ipairs pairs 159b6b046b2SBram Moolenaar syn keyword luaFunc pcall xpcall 160b6b046b2SBram Moolenaar syn keyword luaFunc _G loadfile rawequal require 1618424a624SBram Moolenaar if lua_subversion == 0 162b6b046b2SBram Moolenaar syn keyword luaFunc getfenv setfenv 163b6b046b2SBram Moolenaar syn keyword luaFunc loadstring unpack 164fc1421ebSBram Moolenaar syn keyword luaFunc gcinfo loadlib LUA_PATH _LOADED _REQUIREDNAME 165b6b046b2SBram Moolenaar else 166b6b046b2SBram Moolenaar syn keyword luaFunc load select 167b6b046b2SBram Moolenaar syn match luaFunc /\<package\.cpath\>/ 168b6b046b2SBram Moolenaar syn match luaFunc /\<package\.loaded\>/ 169b6b046b2SBram Moolenaar syn match luaFunc /\<package\.loadlib\>/ 170b6b046b2SBram Moolenaar syn match luaFunc /\<package\.path\>/ 1718424a624SBram Moolenaar if lua_subversion == 1 172b6b046b2SBram Moolenaar syn keyword luaFunc getfenv setfenv 173b6b046b2SBram Moolenaar syn keyword luaFunc loadstring module unpack 174b6b046b2SBram Moolenaar syn match luaFunc /\<package\.loaders\>/ 175b6b046b2SBram Moolenaar syn match luaFunc /\<package\.preload\>/ 176b6b046b2SBram Moolenaar syn match luaFunc /\<package\.seeall\>/ 177b6b046b2SBram Moolenaar elseif lua_subversion == 2 178b6b046b2SBram Moolenaar syn keyword luaFunc _ENV rawlen 179b6b046b2SBram Moolenaar syn match luaFunc /\<package\.config\>/ 180b6b046b2SBram Moolenaar syn match luaFunc /\<package\.preload\>/ 181b6b046b2SBram Moolenaar syn match luaFunc /\<package\.searchers\>/ 182b6b046b2SBram Moolenaar syn match luaFunc /\<package\.searchpath\>/ 183b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.arshift\>/ 184b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.band\>/ 185b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.bnot\>/ 186b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.bor\>/ 187b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.btest\>/ 188b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.bxor\>/ 189b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.extract\>/ 190b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.lrotate\>/ 191b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.lshift\>/ 192b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.replace\>/ 193b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.rrotate\>/ 194b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.rshift\>/ 195b6b046b2SBram Moolenaar endif 196b6b046b2SBram Moolenaar syn match luaFunc /\<coroutine\.running\>/ 197b6b046b2SBram Moolenaar endif 198b6b046b2SBram Moolenaar syn match luaFunc /\<coroutine\.create\>/ 199b6b046b2SBram Moolenaar syn match luaFunc /\<coroutine\.resume\>/ 200b6b046b2SBram Moolenaar syn match luaFunc /\<coroutine\.status\>/ 201b6b046b2SBram Moolenaar syn match luaFunc /\<coroutine\.wrap\>/ 202b6b046b2SBram Moolenaar syn match luaFunc /\<coroutine\.yield\>/ 203b6b046b2SBram Moolenaar syn match luaFunc /\<string\.byte\>/ 204b6b046b2SBram Moolenaar syn match luaFunc /\<string\.char\>/ 205b6b046b2SBram Moolenaar syn match luaFunc /\<string\.dump\>/ 206b6b046b2SBram Moolenaar syn match luaFunc /\<string\.find\>/ 207b6b046b2SBram Moolenaar syn match luaFunc /\<string\.format\>/ 208b6b046b2SBram Moolenaar syn match luaFunc /\<string\.gsub\>/ 209b6b046b2SBram Moolenaar syn match luaFunc /\<string\.len\>/ 210b6b046b2SBram Moolenaar syn match luaFunc /\<string\.lower\>/ 211b6b046b2SBram Moolenaar syn match luaFunc /\<string\.rep\>/ 212b6b046b2SBram Moolenaar syn match luaFunc /\<string\.sub\>/ 213b6b046b2SBram Moolenaar syn match luaFunc /\<string\.upper\>/ 214b6b046b2SBram Moolenaar if lua_subversion == 0 215b6b046b2SBram Moolenaar syn match luaFunc /\<string\.gfind\>/ 216b6b046b2SBram Moolenaar else 217b6b046b2SBram Moolenaar syn match luaFunc /\<string\.gmatch\>/ 218b6b046b2SBram Moolenaar syn match luaFunc /\<string\.match\>/ 219b6b046b2SBram Moolenaar syn match luaFunc /\<string\.reverse\>/ 220b6b046b2SBram Moolenaar endif 221b6b046b2SBram Moolenaar if lua_subversion == 0 222b6b046b2SBram Moolenaar syn match luaFunc /\<table\.getn\>/ 223b6b046b2SBram Moolenaar syn match luaFunc /\<table\.setn\>/ 224b6b046b2SBram Moolenaar syn match luaFunc /\<table\.foreach\>/ 225b6b046b2SBram Moolenaar syn match luaFunc /\<table\.foreachi\>/ 226b6b046b2SBram Moolenaar elseif lua_subversion == 1 227b6b046b2SBram Moolenaar syn match luaFunc /\<table\.maxn\>/ 228b6b046b2SBram Moolenaar elseif lua_subversion == 2 229b6b046b2SBram Moolenaar syn match luaFunc /\<table\.pack\>/ 230b6b046b2SBram Moolenaar syn match luaFunc /\<table\.unpack\>/ 231b6b046b2SBram Moolenaar endif 232b6b046b2SBram Moolenaar syn match luaFunc /\<table\.concat\>/ 233b6b046b2SBram Moolenaar syn match luaFunc /\<table\.sort\>/ 234b6b046b2SBram Moolenaar syn match luaFunc /\<table\.insert\>/ 235b6b046b2SBram Moolenaar syn match luaFunc /\<table\.remove\>/ 236b6b046b2SBram Moolenaar syn match luaFunc /\<math\.abs\>/ 237b6b046b2SBram Moolenaar syn match luaFunc /\<math\.acos\>/ 238b6b046b2SBram Moolenaar syn match luaFunc /\<math\.asin\>/ 239b6b046b2SBram Moolenaar syn match luaFunc /\<math\.atan\>/ 240b6b046b2SBram Moolenaar syn match luaFunc /\<math\.atan2\>/ 241b6b046b2SBram Moolenaar syn match luaFunc /\<math\.ceil\>/ 242b6b046b2SBram Moolenaar syn match luaFunc /\<math\.sin\>/ 243b6b046b2SBram Moolenaar syn match luaFunc /\<math\.cos\>/ 244b6b046b2SBram Moolenaar syn match luaFunc /\<math\.tan\>/ 245b6b046b2SBram Moolenaar syn match luaFunc /\<math\.deg\>/ 246b6b046b2SBram Moolenaar syn match luaFunc /\<math\.exp\>/ 247b6b046b2SBram Moolenaar syn match luaFunc /\<math\.floor\>/ 248b6b046b2SBram Moolenaar syn match luaFunc /\<math\.log\>/ 249b6b046b2SBram Moolenaar syn match luaFunc /\<math\.max\>/ 250b6b046b2SBram Moolenaar syn match luaFunc /\<math\.min\>/ 251b6b046b2SBram Moolenaar if lua_subversion == 0 252b6b046b2SBram Moolenaar syn match luaFunc /\<math\.mod\>/ 253b6b046b2SBram Moolenaar syn match luaFunc /\<math\.log10\>/ 254b6b046b2SBram Moolenaar else 255b6b046b2SBram Moolenaar if lua_subversion == 1 256b6b046b2SBram Moolenaar syn match luaFunc /\<math\.log10\>/ 257b6b046b2SBram Moolenaar endif 258b6b046b2SBram Moolenaar syn match luaFunc /\<math\.huge\>/ 259b6b046b2SBram Moolenaar syn match luaFunc /\<math\.fmod\>/ 260b6b046b2SBram Moolenaar syn match luaFunc /\<math\.modf\>/ 261b6b046b2SBram Moolenaar syn match luaFunc /\<math\.cosh\>/ 262b6b046b2SBram Moolenaar syn match luaFunc /\<math\.sinh\>/ 263b6b046b2SBram Moolenaar syn match luaFunc /\<math\.tanh\>/ 264b6b046b2SBram Moolenaar endif 265b6b046b2SBram Moolenaar syn match luaFunc /\<math\.pow\>/ 266b6b046b2SBram Moolenaar syn match luaFunc /\<math\.rad\>/ 267b6b046b2SBram Moolenaar syn match luaFunc /\<math\.sqrt\>/ 268b6b046b2SBram Moolenaar syn match luaFunc /\<math\.frexp\>/ 269b6b046b2SBram Moolenaar syn match luaFunc /\<math\.ldexp\>/ 270b6b046b2SBram Moolenaar syn match luaFunc /\<math\.random\>/ 271b6b046b2SBram Moolenaar syn match luaFunc /\<math\.randomseed\>/ 272b6b046b2SBram Moolenaar syn match luaFunc /\<math\.pi\>/ 273b6b046b2SBram Moolenaar syn match luaFunc /\<io\.close\>/ 274b6b046b2SBram Moolenaar syn match luaFunc /\<io\.flush\>/ 275b6b046b2SBram Moolenaar syn match luaFunc /\<io\.input\>/ 276b6b046b2SBram Moolenaar syn match luaFunc /\<io\.lines\>/ 277b6b046b2SBram Moolenaar syn match luaFunc /\<io\.open\>/ 278b6b046b2SBram Moolenaar syn match luaFunc /\<io\.output\>/ 279b6b046b2SBram Moolenaar syn match luaFunc /\<io\.popen\>/ 280b6b046b2SBram Moolenaar syn match luaFunc /\<io\.read\>/ 281b6b046b2SBram Moolenaar syn match luaFunc /\<io\.stderr\>/ 282b6b046b2SBram Moolenaar syn match luaFunc /\<io\.stdin\>/ 283b6b046b2SBram Moolenaar syn match luaFunc /\<io\.stdout\>/ 284b6b046b2SBram Moolenaar syn match luaFunc /\<io\.tmpfile\>/ 285b6b046b2SBram Moolenaar syn match luaFunc /\<io\.type\>/ 286b6b046b2SBram Moolenaar syn match luaFunc /\<io\.write\>/ 287b6b046b2SBram Moolenaar syn match luaFunc /\<os\.clock\>/ 288b6b046b2SBram Moolenaar syn match luaFunc /\<os\.date\>/ 289b6b046b2SBram Moolenaar syn match luaFunc /\<os\.difftime\>/ 290b6b046b2SBram Moolenaar syn match luaFunc /\<os\.execute\>/ 291b6b046b2SBram Moolenaar syn match luaFunc /\<os\.exit\>/ 292b6b046b2SBram Moolenaar syn match luaFunc /\<os\.getenv\>/ 293b6b046b2SBram Moolenaar syn match luaFunc /\<os\.remove\>/ 294b6b046b2SBram Moolenaar syn match luaFunc /\<os\.rename\>/ 295b6b046b2SBram Moolenaar syn match luaFunc /\<os\.setlocale\>/ 296b6b046b2SBram Moolenaar syn match luaFunc /\<os\.time\>/ 297b6b046b2SBram Moolenaar syn match luaFunc /\<os\.tmpname\>/ 298b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.debug\>/ 299b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.gethook\>/ 300b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.getinfo\>/ 301b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.getlocal\>/ 302b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.getupvalue\>/ 303b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.setlocal\>/ 304b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.setupvalue\>/ 305b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.sethook\>/ 306b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.traceback\>/ 307b6b046b2SBram Moolenaar if lua_subversion == 1 308b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.getfenv\>/ 309b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.setfenv\>/ 310b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.getmetatable\>/ 311b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.setmetatable\>/ 312b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.getregistry\>/ 313b6b046b2SBram Moolenaar elseif lua_subversion == 2 314b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.getmetatable\>/ 315b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.setmetatable\>/ 316b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.getregistry\>/ 317b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.getuservalue\>/ 318b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.setuservalue\>/ 319b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.upvalueid\>/ 320b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.upvaluejoin\>/ 321071d4279SBram Moolenaar endif 3228424a624SBram Moolenaarendif 323071d4279SBram Moolenaar 324071d4279SBram Moolenaar" Define the default highlighting. 32589bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet 326071d4279SBram Moolenaar 327*f37506f6SBram Moolenaarhi def link luaStatement Statement 328*f37506f6SBram Moolenaarhi def link luaRepeat Repeat 329*f37506f6SBram Moolenaarhi def link luaFor Repeat 330*f37506f6SBram Moolenaarhi def link luaString String 331*f37506f6SBram Moolenaarhi def link luaString2 String 332*f37506f6SBram Moolenaarhi def link luaNumber Number 333*f37506f6SBram Moolenaarhi def link luaOperator Operator 334*f37506f6SBram Moolenaarhi def link luaIn Operator 335*f37506f6SBram Moolenaarhi def link luaConstant Constant 336*f37506f6SBram Moolenaarhi def link luaCond Conditional 337*f37506f6SBram Moolenaarhi def link luaElse Conditional 338*f37506f6SBram Moolenaarhi def link luaFunction Function 339*f37506f6SBram Moolenaarhi def link luaComment Comment 340*f37506f6SBram Moolenaarhi def link luaTodo Todo 341*f37506f6SBram Moolenaarhi def link luaTable Structure 342*f37506f6SBram Moolenaarhi def link luaError Error 343*f37506f6SBram Moolenaarhi def link luaParenError Error 344*f37506f6SBram Moolenaarhi def link luaBraceError Error 345*f37506f6SBram Moolenaarhi def link luaSpecial SpecialChar 346*f37506f6SBram Moolenaarhi def link luaFunc Identifier 347*f37506f6SBram Moolenaarhi def link luaLabel Label 348071d4279SBram Moolenaar 349071d4279SBram Moolenaar 350071d4279SBram Moolenaarlet b:current_syntax = "lua" 351071d4279SBram Moolenaar 3525dc6252dSBram Moolenaarlet &cpo = s:cpo_save 3535dc6252dSBram Moolenaarunlet s:cpo_save 354b6b046b2SBram Moolenaar" vim: et ts=8 sw=2 355