xref: /vim-8.2.3635/runtime/syntax/lua.vim (revision b6b046b2)
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