1071d4279SBram Moolenaar" Vim syntax file 2*b6b046b2SBram Moolenaar" Language: Lua 4.0, Lua 5.0, Lua 5.1 and Lua 5.2 3*b6b046b2SBram 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*b6b046b2SBram Moolenaar" Last Change: 2011 Dec 20 68424a624SBram Moolenaar" Options: lua_version = 4 or 5 7*b6b046b2SBram Moolenaar" lua_subversion = 0 (4.0, 5.0) or 1 (5.1) or 2 (5.2) 8*b6b046b2SBram 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 18071d4279SBram Moolenaarif !exists("lua_version") 19*b6b046b2SBram Moolenaar " Default is lua 5.2 20071d4279SBram Moolenaar let lua_version = 5 21*b6b046b2SBram 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 48071d4279SBram Moolenaar 49*b6b046b2SBram Moolenaarsyn region luaParen transparent start='(' end=')' contains=TOP,luaParenError 50*b6b046b2SBram Moolenaarsyn match luaParenError ")" 51071d4279SBram Moolenaarsyn match luaError "}" 52d4755bb0SBram Moolenaarsyn match luaError "\<\%(end\|else\|elseif\|then\|until\|in\)\>" 53071d4279SBram Moolenaar 54071d4279SBram Moolenaar" Function declaration 55*b6b046b2SBram Moolenaarsyn region luaFunctionBlock transparent matchgroup=luaFunction start="\<function\>" end="\<end\>" contains=TOP 56071d4279SBram Moolenaar 57*b6b046b2SBram Moolenaar" else 58*b6b046b2SBram Moolenaarsyn keyword luaCondElse matchgroup=luaCond contained containedin=luaCondEnd else 59071d4279SBram Moolenaar 60071d4279SBram Moolenaar" then ... end 61*b6b046b2SBram Moolenaarsyn region luaCondEnd contained transparent matchgroup=luaCond start="\<then\>" end="\<end\>" contains=TOP 62071d4279SBram Moolenaar 63071d4279SBram Moolenaar" elseif ... then 64*b6b046b2SBram Moolenaarsyn region luaCondElseif contained containedin=luaCondEnd transparent matchgroup=luaCond start="\<elseif\>" end="\<then\>" contains=TOP 65071d4279SBram Moolenaar 66071d4279SBram Moolenaar" if ... then 67*b6b046b2SBram Moolenaarsyn region luaCondStart transparent matchgroup=luaCond start="\<if\>" end="\<then\>"me=e-4 contains=TOP nextgroup=luaCondEnd skipwhite skipempty 68071d4279SBram Moolenaar 69071d4279SBram Moolenaar" do ... end 70*b6b046b2SBram Moolenaarsyn region luaBlock transparent matchgroup=luaStatement start="\<do\>" end="\<end\>" contains=TOP 71071d4279SBram Moolenaar" repeat ... until 72*b6b046b2SBram Moolenaarsyn region luaRepeatBlock transparent matchgroup=luaRepeat start="\<repeat\>" end="\<until\>" contains=TOP 73071d4279SBram Moolenaar 74071d4279SBram Moolenaar" while ... do 75*b6b046b2SBram Moolenaarsyn region luaWhile transparent matchgroup=luaRepeat start="\<while\>" end="\<do\>"me=e-2 contains=TOP nextgroup=luaBlock skipwhite skipempty 76071d4279SBram Moolenaar 77071d4279SBram Moolenaar" for ... do and for ... in ... do 78*b6b046b2SBram Moolenaarsyn region luaFor transparent matchgroup=luaRepeat start="\<for\>" end="\<do\>"me=e-2 contains=TOP nextgroup=luaBlock skipwhite skipempty 79071d4279SBram Moolenaar 80*b6b046b2SBram Moolenaarsyn keyword luaFor contained containedin=luaFor in 81071d4279SBram Moolenaar 82071d4279SBram Moolenaar" other keywords 83071d4279SBram Moolenaarsyn keyword luaStatement return local break 84*b6b046b2SBram Moolenaarif lua_version > 5 || (lua_version == 5 && lua_subversion >= 2) 85*b6b046b2SBram Moolenaar syn keyword luaStatement goto 86*b6b046b2SBram Moolenaar syn match luaLabel "::\I\i*::" 87*b6b046b2SBram Moolenaarendif 88071d4279SBram Moolenaarsyn keyword luaOperator and or not 89071d4279SBram Moolenaarsyn keyword luaConstant nil 90071d4279SBram Moolenaarif lua_version > 4 91071d4279SBram Moolenaar syn keyword luaConstant true false 92071d4279SBram Moolenaarendif 93071d4279SBram Moolenaar 94071d4279SBram Moolenaar" Strings 95fc1421ebSBram Moolenaarif lua_version < 5 96*b6b046b2SBram Moolenaar syn match luaSpecial contained "\\[\\abfnrtv\'\"]\|\\[[:digit:]]\{,3}" 97*b6b046b2SBram Moolenaarelseif lua_version == 5 98*b6b046b2SBram Moolenaar if lua_subversion == 0 99*b6b046b2SBram Moolenaar syn match luaSpecial contained #\\[\\abfnrtv'"[\]]\|\\[[:digit:]]\{,3}# 1009964e468SBram Moolenaar syn region luaString2 matchgroup=luaString start=+\[\[+ end=+\]\]+ contains=luaString2,@Spell 101*b6b046b2SBram Moolenaar else 102*b6b046b2SBram Moolenaar if lua_subversion == 1 103*b6b046b2SBram Moolenaar syn match luaSpecial contained #\\[\\abfnrtv'"]\|\\[[:digit:]]\{,3}# 104*b6b046b2SBram Moolenaar else " Lua 5.2 105*b6b046b2SBram Moolenaar syn match luaSpecial contained #\\[\\abfnrtvz'"]\|\\x[[:xdigit:]]\{2}\|\\[[:digit:]]\{,3}# 106*b6b046b2SBram Moolenaar endif 1079964e468SBram Moolenaar syn region luaString2 matchgroup=luaString start="\[\z(=*\)\[" end="\]\z1\]" contains=@Spell 1088424a624SBram Moolenaar endif 109*b6b046b2SBram Moolenaarendif 1109964e468SBram Moolenaarsyn region luaString start=+'+ end=+'+ skip=+\\\\\|\\'+ contains=luaSpecial,@Spell 1119964e468SBram Moolenaarsyn region luaString start=+"+ end=+"+ skip=+\\\\\|\\"+ contains=luaSpecial,@Spell 112071d4279SBram Moolenaar 113071d4279SBram Moolenaar" integer number 1149964e468SBram Moolenaarsyn match luaNumber "\<\d\+\>" 115071d4279SBram Moolenaar" floating point number, with dot, optional exponent 116*b6b046b2SBram Moolenaarsyn match luaNumber "\<\d\+\.\d*\%([eE][-+]\=\d\+\)\=\>" 117071d4279SBram Moolenaar" floating point number, starting with a dot, optional exponent 118*b6b046b2SBram Moolenaarsyn match luaNumber "\.\d\+\%([eE][-+]\=\d\+\)\=\>" 119071d4279SBram Moolenaar" floating point number, without dot, with exponent 120*b6b046b2SBram Moolenaarsyn match luaNumber "\<\d\+[eE][-+]\=\d\+\>" 1219964e468SBram Moolenaar 1229964e468SBram Moolenaar" hex numbers 123*b6b046b2SBram Moolenaarif lua_version >= 5 124*b6b046b2SBram Moolenaar if lua_subversion == 1 125*b6b046b2SBram Moolenaar syn match luaNumber "\<0[xX]\x\+\>" 126*b6b046b2SBram Moolenaar elseif lua_subversion >= 2 127*b6b046b2SBram Moolenaar syn match luaNumber "\<0[xX][[:xdigit:].]\+\%([pP][-+]\=\d\+\)\=\>" 128*b6b046b2SBram Moolenaar endif 1299964e468SBram Moolenaarendif 130071d4279SBram Moolenaar 131071d4279SBram Moolenaar" tables 132*b6b046b2SBram Moolenaarsyn region luaTableBlock transparent matchgroup=luaTable start="{" end="}" contains=TOP,luaStatement 133071d4279SBram Moolenaar 134fc1421ebSBram Moolenaarsyn keyword luaFunc assert collectgarbage dofile error next 135071d4279SBram Moolenaarsyn keyword luaFunc print rawget rawset tonumber tostring type _VERSION 136071d4279SBram Moolenaar 137071d4279SBram Moolenaarif lua_version == 4 138fc1421ebSBram Moolenaar syn keyword luaFunc _ALERT _ERRORMESSAGE gcinfo 139071d4279SBram Moolenaar syn keyword luaFunc call copytagmethods dostring 140071d4279SBram Moolenaar syn keyword luaFunc foreach foreachi getglobal getn 141071d4279SBram Moolenaar syn keyword luaFunc gettagmethod globals newtag 142071d4279SBram Moolenaar syn keyword luaFunc setglobal settag settagmethod sort 143071d4279SBram Moolenaar syn keyword luaFunc tag tinsert tremove 144071d4279SBram Moolenaar syn keyword luaFunc _INPUT _OUTPUT _STDIN _STDOUT _STDERR 145071d4279SBram Moolenaar syn keyword luaFunc openfile closefile flush seek 146071d4279SBram Moolenaar syn keyword luaFunc setlocale execute remove rename tmpname 147071d4279SBram Moolenaar syn keyword luaFunc getenv date clock exit 148071d4279SBram Moolenaar syn keyword luaFunc readfrom writeto appendto read write 149071d4279SBram Moolenaar syn keyword luaFunc PI abs sin cos tan asin 150071d4279SBram Moolenaar syn keyword luaFunc acos atan atan2 ceil floor 151071d4279SBram Moolenaar syn keyword luaFunc mod frexp ldexp sqrt min max log 152071d4279SBram Moolenaar syn keyword luaFunc log10 exp deg rad random 153071d4279SBram Moolenaar syn keyword luaFunc randomseed strlen strsub strlower strupper 154071d4279SBram Moolenaar syn keyword luaFunc strchar strrep ascii strbyte 155071d4279SBram Moolenaar syn keyword luaFunc format strfind gsub 156071d4279SBram Moolenaar syn keyword luaFunc getinfo getlocal setlocal setcallhook setlinehook 1578424a624SBram Moolenaarelseif lua_version == 5 158*b6b046b2SBram Moolenaar syn keyword luaFunc getmetatable setmetatable 159*b6b046b2SBram Moolenaar syn keyword luaFunc ipairs pairs 160*b6b046b2SBram Moolenaar syn keyword luaFunc pcall xpcall 161*b6b046b2SBram Moolenaar syn keyword luaFunc _G loadfile rawequal require 1628424a624SBram Moolenaar if lua_subversion == 0 163*b6b046b2SBram Moolenaar syn keyword luaFunc getfenv setfenv 164*b6b046b2SBram Moolenaar syn keyword luaFunc loadstring unpack 165fc1421ebSBram Moolenaar syn keyword luaFunc gcinfo loadlib LUA_PATH _LOADED _REQUIREDNAME 166*b6b046b2SBram Moolenaar else 167*b6b046b2SBram Moolenaar syn keyword luaFunc load select 168*b6b046b2SBram Moolenaar syn match luaFunc /\<package\.cpath\>/ 169*b6b046b2SBram Moolenaar syn match luaFunc /\<package\.loaded\>/ 170*b6b046b2SBram Moolenaar syn match luaFunc /\<package\.loadlib\>/ 171*b6b046b2SBram Moolenaar syn match luaFunc /\<package\.path\>/ 1728424a624SBram Moolenaar if lua_subversion == 1 173*b6b046b2SBram Moolenaar syn keyword luaFunc getfenv setfenv 174*b6b046b2SBram Moolenaar syn keyword luaFunc loadstring module unpack 175*b6b046b2SBram Moolenaar syn match luaFunc /\<package\.loaders\>/ 176*b6b046b2SBram Moolenaar syn match luaFunc /\<package\.preload\>/ 177*b6b046b2SBram Moolenaar syn match luaFunc /\<package\.seeall\>/ 178*b6b046b2SBram Moolenaar elseif lua_subversion == 2 179*b6b046b2SBram Moolenaar syn keyword luaFunc _ENV rawlen 180*b6b046b2SBram Moolenaar syn match luaFunc /\<package\.config\>/ 181*b6b046b2SBram Moolenaar syn match luaFunc /\<package\.preload\>/ 182*b6b046b2SBram Moolenaar syn match luaFunc /\<package\.searchers\>/ 183*b6b046b2SBram Moolenaar syn match luaFunc /\<package\.searchpath\>/ 184*b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.arshift\>/ 185*b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.band\>/ 186*b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.bnot\>/ 187*b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.bor\>/ 188*b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.btest\>/ 189*b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.bxor\>/ 190*b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.extract\>/ 191*b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.lrotate\>/ 192*b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.lshift\>/ 193*b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.replace\>/ 194*b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.rrotate\>/ 195*b6b046b2SBram Moolenaar syn match luaFunc /\<bit32\.rshift\>/ 196*b6b046b2SBram Moolenaar endif 197*b6b046b2SBram Moolenaar syn match luaFunc /\<coroutine\.running\>/ 198*b6b046b2SBram Moolenaar endif 199*b6b046b2SBram Moolenaar syn match luaFunc /\<coroutine\.create\>/ 200*b6b046b2SBram Moolenaar syn match luaFunc /\<coroutine\.resume\>/ 201*b6b046b2SBram Moolenaar syn match luaFunc /\<coroutine\.status\>/ 202*b6b046b2SBram Moolenaar syn match luaFunc /\<coroutine\.wrap\>/ 203*b6b046b2SBram Moolenaar syn match luaFunc /\<coroutine\.yield\>/ 204*b6b046b2SBram Moolenaar syn match luaFunc /\<string\.byte\>/ 205*b6b046b2SBram Moolenaar syn match luaFunc /\<string\.char\>/ 206*b6b046b2SBram Moolenaar syn match luaFunc /\<string\.dump\>/ 207*b6b046b2SBram Moolenaar syn match luaFunc /\<string\.find\>/ 208*b6b046b2SBram Moolenaar syn match luaFunc /\<string\.format\>/ 209*b6b046b2SBram Moolenaar syn match luaFunc /\<string\.gsub\>/ 210*b6b046b2SBram Moolenaar syn match luaFunc /\<string\.len\>/ 211*b6b046b2SBram Moolenaar syn match luaFunc /\<string\.lower\>/ 212*b6b046b2SBram Moolenaar syn match luaFunc /\<string\.rep\>/ 213*b6b046b2SBram Moolenaar syn match luaFunc /\<string\.sub\>/ 214*b6b046b2SBram Moolenaar syn match luaFunc /\<string\.upper\>/ 215*b6b046b2SBram Moolenaar if lua_subversion == 0 216*b6b046b2SBram Moolenaar syn match luaFunc /\<string\.gfind\>/ 217*b6b046b2SBram Moolenaar else 218*b6b046b2SBram Moolenaar syn match luaFunc /\<string\.gmatch\>/ 219*b6b046b2SBram Moolenaar syn match luaFunc /\<string\.match\>/ 220*b6b046b2SBram Moolenaar syn match luaFunc /\<string\.reverse\>/ 221*b6b046b2SBram Moolenaar endif 222*b6b046b2SBram Moolenaar if lua_subversion == 0 223*b6b046b2SBram Moolenaar syn match luaFunc /\<table\.getn\>/ 224*b6b046b2SBram Moolenaar syn match luaFunc /\<table\.setn\>/ 225*b6b046b2SBram Moolenaar syn match luaFunc /\<table\.foreach\>/ 226*b6b046b2SBram Moolenaar syn match luaFunc /\<table\.foreachi\>/ 227*b6b046b2SBram Moolenaar elseif lua_subversion == 1 228*b6b046b2SBram Moolenaar syn match luaFunc /\<table\.maxn\>/ 229*b6b046b2SBram Moolenaar elseif lua_subversion == 2 230*b6b046b2SBram Moolenaar syn match luaFunc /\<table\.pack\>/ 231*b6b046b2SBram Moolenaar syn match luaFunc /\<table\.unpack\>/ 232*b6b046b2SBram Moolenaar endif 233*b6b046b2SBram Moolenaar syn match luaFunc /\<table\.concat\>/ 234*b6b046b2SBram Moolenaar syn match luaFunc /\<table\.sort\>/ 235*b6b046b2SBram Moolenaar syn match luaFunc /\<table\.insert\>/ 236*b6b046b2SBram Moolenaar syn match luaFunc /\<table\.remove\>/ 237*b6b046b2SBram Moolenaar syn match luaFunc /\<math\.abs\>/ 238*b6b046b2SBram Moolenaar syn match luaFunc /\<math\.acos\>/ 239*b6b046b2SBram Moolenaar syn match luaFunc /\<math\.asin\>/ 240*b6b046b2SBram Moolenaar syn match luaFunc /\<math\.atan\>/ 241*b6b046b2SBram Moolenaar syn match luaFunc /\<math\.atan2\>/ 242*b6b046b2SBram Moolenaar syn match luaFunc /\<math\.ceil\>/ 243*b6b046b2SBram Moolenaar syn match luaFunc /\<math\.sin\>/ 244*b6b046b2SBram Moolenaar syn match luaFunc /\<math\.cos\>/ 245*b6b046b2SBram Moolenaar syn match luaFunc /\<math\.tan\>/ 246*b6b046b2SBram Moolenaar syn match luaFunc /\<math\.deg\>/ 247*b6b046b2SBram Moolenaar syn match luaFunc /\<math\.exp\>/ 248*b6b046b2SBram Moolenaar syn match luaFunc /\<math\.floor\>/ 249*b6b046b2SBram Moolenaar syn match luaFunc /\<math\.log\>/ 250*b6b046b2SBram Moolenaar syn match luaFunc /\<math\.max\>/ 251*b6b046b2SBram Moolenaar syn match luaFunc /\<math\.min\>/ 252*b6b046b2SBram Moolenaar if lua_subversion == 0 253*b6b046b2SBram Moolenaar syn match luaFunc /\<math\.mod\>/ 254*b6b046b2SBram Moolenaar syn match luaFunc /\<math\.log10\>/ 255*b6b046b2SBram Moolenaar else 256*b6b046b2SBram Moolenaar if lua_subversion == 1 257*b6b046b2SBram Moolenaar syn match luaFunc /\<math\.log10\>/ 258*b6b046b2SBram Moolenaar endif 259*b6b046b2SBram Moolenaar syn match luaFunc /\<math\.huge\>/ 260*b6b046b2SBram Moolenaar syn match luaFunc /\<math\.fmod\>/ 261*b6b046b2SBram Moolenaar syn match luaFunc /\<math\.modf\>/ 262*b6b046b2SBram Moolenaar syn match luaFunc /\<math\.cosh\>/ 263*b6b046b2SBram Moolenaar syn match luaFunc /\<math\.sinh\>/ 264*b6b046b2SBram Moolenaar syn match luaFunc /\<math\.tanh\>/ 265*b6b046b2SBram Moolenaar endif 266*b6b046b2SBram Moolenaar syn match luaFunc /\<math\.pow\>/ 267*b6b046b2SBram Moolenaar syn match luaFunc /\<math\.rad\>/ 268*b6b046b2SBram Moolenaar syn match luaFunc /\<math\.sqrt\>/ 269*b6b046b2SBram Moolenaar syn match luaFunc /\<math\.frexp\>/ 270*b6b046b2SBram Moolenaar syn match luaFunc /\<math\.ldexp\>/ 271*b6b046b2SBram Moolenaar syn match luaFunc /\<math\.random\>/ 272*b6b046b2SBram Moolenaar syn match luaFunc /\<math\.randomseed\>/ 273*b6b046b2SBram Moolenaar syn match luaFunc /\<math\.pi\>/ 274*b6b046b2SBram Moolenaar syn match luaFunc /\<io\.close\>/ 275*b6b046b2SBram Moolenaar syn match luaFunc /\<io\.flush\>/ 276*b6b046b2SBram Moolenaar syn match luaFunc /\<io\.input\>/ 277*b6b046b2SBram Moolenaar syn match luaFunc /\<io\.lines\>/ 278*b6b046b2SBram Moolenaar syn match luaFunc /\<io\.open\>/ 279*b6b046b2SBram Moolenaar syn match luaFunc /\<io\.output\>/ 280*b6b046b2SBram Moolenaar syn match luaFunc /\<io\.popen\>/ 281*b6b046b2SBram Moolenaar syn match luaFunc /\<io\.read\>/ 282*b6b046b2SBram Moolenaar syn match luaFunc /\<io\.stderr\>/ 283*b6b046b2SBram Moolenaar syn match luaFunc /\<io\.stdin\>/ 284*b6b046b2SBram Moolenaar syn match luaFunc /\<io\.stdout\>/ 285*b6b046b2SBram Moolenaar syn match luaFunc /\<io\.tmpfile\>/ 286*b6b046b2SBram Moolenaar syn match luaFunc /\<io\.type\>/ 287*b6b046b2SBram Moolenaar syn match luaFunc /\<io\.write\>/ 288*b6b046b2SBram Moolenaar syn match luaFunc /\<os\.clock\>/ 289*b6b046b2SBram Moolenaar syn match luaFunc /\<os\.date\>/ 290*b6b046b2SBram Moolenaar syn match luaFunc /\<os\.difftime\>/ 291*b6b046b2SBram Moolenaar syn match luaFunc /\<os\.execute\>/ 292*b6b046b2SBram Moolenaar syn match luaFunc /\<os\.exit\>/ 293*b6b046b2SBram Moolenaar syn match luaFunc /\<os\.getenv\>/ 294*b6b046b2SBram Moolenaar syn match luaFunc /\<os\.remove\>/ 295*b6b046b2SBram Moolenaar syn match luaFunc /\<os\.rename\>/ 296*b6b046b2SBram Moolenaar syn match luaFunc /\<os\.setlocale\>/ 297*b6b046b2SBram Moolenaar syn match luaFunc /\<os\.time\>/ 298*b6b046b2SBram Moolenaar syn match luaFunc /\<os\.tmpname\>/ 299*b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.debug\>/ 300*b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.gethook\>/ 301*b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.getinfo\>/ 302*b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.getlocal\>/ 303*b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.getupvalue\>/ 304*b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.setlocal\>/ 305*b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.setupvalue\>/ 306*b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.sethook\>/ 307*b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.traceback\>/ 308*b6b046b2SBram Moolenaar if lua_subversion == 1 309*b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.getfenv\>/ 310*b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.setfenv\>/ 311*b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.getmetatable\>/ 312*b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.setmetatable\>/ 313*b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.getregistry\>/ 314*b6b046b2SBram Moolenaar elseif lua_subversion == 2 315*b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.getmetatable\>/ 316*b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.setmetatable\>/ 317*b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.getregistry\>/ 318*b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.getuservalue\>/ 319*b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.setuservalue\>/ 320*b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.upvalueid\>/ 321*b6b046b2SBram Moolenaar syn match luaFunc /\<debug\.upvaluejoin\>/ 322071d4279SBram Moolenaar endif 3238424a624SBram Moolenaarendif 324071d4279SBram Moolenaar 325071d4279SBram Moolenaar" Define the default highlighting. 326071d4279SBram Moolenaar" For version 5.7 and earlier: only when not done already 327071d4279SBram Moolenaar" For version 5.8 and later: only when an item doesn't have highlighting yet 328071d4279SBram Moolenaarif version >= 508 || !exists("did_lua_syntax_inits") 329071d4279SBram Moolenaar if version < 508 330071d4279SBram Moolenaar let did_lua_syntax_inits = 1 331071d4279SBram Moolenaar command -nargs=+ HiLink hi link <args> 332071d4279SBram Moolenaar else 333071d4279SBram Moolenaar command -nargs=+ HiLink hi def link <args> 334071d4279SBram Moolenaar endif 335071d4279SBram Moolenaar 336071d4279SBram Moolenaar HiLink luaStatement Statement 337071d4279SBram Moolenaar HiLink luaRepeat Repeat 338*b6b046b2SBram Moolenaar HiLink luaFor Repeat 339071d4279SBram Moolenaar HiLink luaString String 340071d4279SBram Moolenaar HiLink luaString2 String 341071d4279SBram Moolenaar HiLink luaNumber Number 342071d4279SBram Moolenaar HiLink luaOperator Operator 343071d4279SBram Moolenaar HiLink luaConstant Constant 344071d4279SBram Moolenaar HiLink luaCond Conditional 345*b6b046b2SBram Moolenaar HiLink luaCondElse Conditional 346071d4279SBram Moolenaar HiLink luaFunction Function 347071d4279SBram Moolenaar HiLink luaComment Comment 348071d4279SBram Moolenaar HiLink luaTodo Todo 349071d4279SBram Moolenaar HiLink luaTable Structure 350071d4279SBram Moolenaar HiLink luaError Error 351*b6b046b2SBram Moolenaar HiLink luaParenError Error 352071d4279SBram Moolenaar HiLink luaSpecial SpecialChar 353071d4279SBram Moolenaar HiLink luaFunc Identifier 354*b6b046b2SBram Moolenaar HiLink luaLabel Label 355071d4279SBram Moolenaar 356071d4279SBram Moolenaar delcommand HiLink 357071d4279SBram Moolenaarendif 358071d4279SBram Moolenaar 359071d4279SBram Moolenaarlet b:current_syntax = "lua" 360071d4279SBram Moolenaar 361*b6b046b2SBram Moolenaar" vim: et ts=8 sw=2 362