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