xref: /vim-8.2.3635/runtime/syntax/lua.vim (revision 5dc6252d)
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*5dc6252dSBram Moolenaar" Last Change:	2012 Feb 07
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
18*5dc6252dSBram Moolenaarlet s:cpo_save = &cpo
19*5dc6252dSBram Moolenaarset cpo&vim
20*5dc6252dSBram 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
51071d4279SBram Moolenaar
52b6b046b2SBram Moolenaarsyn region luaParen transparent start='(' end=')' contains=TOP,luaParenError
53b6b046b2SBram Moolenaarsyn match  luaParenError ")"
54071d4279SBram Moolenaarsyn match  luaError "}"
55d4755bb0SBram Moolenaarsyn match  luaError "\<\%(end\|else\|elseif\|then\|until\|in\)\>"
56071d4279SBram Moolenaar
57071d4279SBram Moolenaar" Function declaration
58b6b046b2SBram Moolenaarsyn region luaFunctionBlock transparent matchgroup=luaFunction start="\<function\>" end="\<end\>" contains=TOP
59071d4279SBram Moolenaar
60b6b046b2SBram Moolenaar" else
61b6b046b2SBram Moolenaarsyn keyword luaCondElse matchgroup=luaCond contained containedin=luaCondEnd else
62071d4279SBram Moolenaar
63071d4279SBram Moolenaar" then ... end
64b6b046b2SBram Moolenaarsyn region luaCondEnd contained transparent matchgroup=luaCond start="\<then\>" end="\<end\>" contains=TOP
65071d4279SBram Moolenaar
66071d4279SBram Moolenaar" elseif ... then
67b6b046b2SBram Moolenaarsyn region luaCondElseif contained containedin=luaCondEnd transparent matchgroup=luaCond start="\<elseif\>" end="\<then\>" contains=TOP
68071d4279SBram Moolenaar
69071d4279SBram Moolenaar" if ... then
70b6b046b2SBram Moolenaarsyn region luaCondStart transparent matchgroup=luaCond start="\<if\>" end="\<then\>"me=e-4 contains=TOP nextgroup=luaCondEnd skipwhite skipempty
71071d4279SBram Moolenaar
72071d4279SBram Moolenaar" do ... end
73b6b046b2SBram Moolenaarsyn region luaBlock transparent matchgroup=luaStatement start="\<do\>" end="\<end\>" contains=TOP
74071d4279SBram Moolenaar" repeat ... until
75b6b046b2SBram Moolenaarsyn region luaRepeatBlock transparent matchgroup=luaRepeat start="\<repeat\>" end="\<until\>" contains=TOP
76071d4279SBram Moolenaar
77071d4279SBram Moolenaar" while ... do
78b6b046b2SBram Moolenaarsyn region luaWhile transparent matchgroup=luaRepeat start="\<while\>" end="\<do\>"me=e-2 contains=TOP nextgroup=luaBlock skipwhite skipempty
79071d4279SBram Moolenaar
80071d4279SBram Moolenaar" for ... do and for ... in ... do
81b6b046b2SBram Moolenaarsyn region luaFor transparent matchgroup=luaRepeat start="\<for\>" end="\<do\>"me=e-2 contains=TOP nextgroup=luaBlock skipwhite skipempty
82071d4279SBram Moolenaar
83b6b046b2SBram Moolenaarsyn keyword luaFor contained containedin=luaFor in
84071d4279SBram Moolenaar
85071d4279SBram Moolenaar" other keywords
86071d4279SBram Moolenaarsyn keyword luaStatement return local break
87b6b046b2SBram Moolenaarif lua_version > 5 || (lua_version == 5 && lua_subversion >= 2)
88b6b046b2SBram Moolenaar  syn keyword luaStatement goto
89b6b046b2SBram Moolenaar  syn match luaLabel "::\I\i*::"
90b6b046b2SBram Moolenaarendif
91071d4279SBram Moolenaarsyn keyword luaOperator and or not
92071d4279SBram Moolenaarsyn keyword luaConstant nil
93071d4279SBram Moolenaarif lua_version > 4
94071d4279SBram Moolenaar  syn keyword luaConstant true false
95071d4279SBram Moolenaarendif
96071d4279SBram Moolenaar
97071d4279SBram Moolenaar" Strings
98fc1421ebSBram Moolenaarif lua_version < 5
99b6b046b2SBram Moolenaar  syn match  luaSpecial contained "\\[\\abfnrtv\'\"]\|\\[[:digit:]]\{,3}"
100b6b046b2SBram Moolenaarelseif lua_version == 5
101b6b046b2SBram Moolenaar  if lua_subversion == 0
102b6b046b2SBram Moolenaar    syn match  luaSpecial contained #\\[\\abfnrtv'"[\]]\|\\[[:digit:]]\{,3}#
1039964e468SBram Moolenaar    syn region luaString2 matchgroup=luaString start=+\[\[+ end=+\]\]+ contains=luaString2,@Spell
104b6b046b2SBram Moolenaar  else
105b6b046b2SBram Moolenaar    if lua_subversion == 1
106b6b046b2SBram Moolenaar      syn match  luaSpecial contained #\\[\\abfnrtv'"]\|\\[[:digit:]]\{,3}#
107b6b046b2SBram Moolenaar    else " Lua 5.2
108b6b046b2SBram Moolenaar      syn match  luaSpecial contained #\\[\\abfnrtvz'"]\|\\x[[:xdigit:]]\{2}\|\\[[:digit:]]\{,3}#
109b6b046b2SBram Moolenaar    endif
1109964e468SBram Moolenaar    syn region luaString2 matchgroup=luaString start="\[\z(=*\)\[" end="\]\z1\]" contains=@Spell
1118424a624SBram Moolenaar  endif
112b6b046b2SBram Moolenaarendif
1139964e468SBram Moolenaarsyn region luaString  start=+'+ end=+'+ skip=+\\\\\|\\'+ contains=luaSpecial,@Spell
1149964e468SBram Moolenaarsyn region luaString  start=+"+ end=+"+ skip=+\\\\\|\\"+ contains=luaSpecial,@Spell
115071d4279SBram Moolenaar
116071d4279SBram Moolenaar" integer number
1179964e468SBram Moolenaarsyn match luaNumber "\<\d\+\>"
118071d4279SBram Moolenaar" floating point number, with dot, optional exponent
119b6b046b2SBram Moolenaarsyn match luaNumber  "\<\d\+\.\d*\%([eE][-+]\=\d\+\)\=\>"
120071d4279SBram Moolenaar" floating point number, starting with a dot, optional exponent
121b6b046b2SBram Moolenaarsyn match luaNumber  "\.\d\+\%([eE][-+]\=\d\+\)\=\>"
122071d4279SBram Moolenaar" floating point number, without dot, with exponent
123b6b046b2SBram Moolenaarsyn match luaNumber  "\<\d\+[eE][-+]\=\d\+\>"
1249964e468SBram Moolenaar
1259964e468SBram Moolenaar" hex numbers
126b6b046b2SBram Moolenaarif lua_version >= 5
127b6b046b2SBram Moolenaar  if lua_subversion == 1
128b6b046b2SBram Moolenaar    syn match luaNumber "\<0[xX]\x\+\>"
129b6b046b2SBram Moolenaar  elseif lua_subversion >= 2
130b6b046b2SBram Moolenaar    syn match luaNumber "\<0[xX][[:xdigit:].]\+\%([pP][-+]\=\d\+\)\=\>"
131b6b046b2SBram Moolenaar  endif
1329964e468SBram Moolenaarendif
133071d4279SBram Moolenaar
134071d4279SBram Moolenaar" tables
135b6b046b2SBram Moolenaarsyn region luaTableBlock transparent matchgroup=luaTable start="{" end="}" contains=TOP,luaStatement
136071d4279SBram Moolenaar
137fc1421ebSBram Moolenaarsyn keyword luaFunc assert collectgarbage dofile error next
138071d4279SBram Moolenaarsyn keyword luaFunc print rawget rawset tonumber tostring type _VERSION
139071d4279SBram Moolenaar
140071d4279SBram Moolenaarif lua_version == 4
141fc1421ebSBram Moolenaar  syn keyword luaFunc _ALERT _ERRORMESSAGE gcinfo
142071d4279SBram Moolenaar  syn keyword luaFunc call copytagmethods dostring
143071d4279SBram Moolenaar  syn keyword luaFunc foreach foreachi getglobal getn
144071d4279SBram Moolenaar  syn keyword luaFunc gettagmethod globals newtag
145071d4279SBram Moolenaar  syn keyword luaFunc setglobal settag settagmethod sort
146071d4279SBram Moolenaar  syn keyword luaFunc tag tinsert tremove
147071d4279SBram Moolenaar  syn keyword luaFunc _INPUT _OUTPUT _STDIN _STDOUT _STDERR
148071d4279SBram Moolenaar  syn keyword luaFunc openfile closefile flush seek
149071d4279SBram Moolenaar  syn keyword luaFunc setlocale execute remove rename tmpname
150071d4279SBram Moolenaar  syn keyword luaFunc getenv date clock exit
151071d4279SBram Moolenaar  syn keyword luaFunc readfrom writeto appendto read write
152071d4279SBram Moolenaar  syn keyword luaFunc PI abs sin cos tan asin
153071d4279SBram Moolenaar  syn keyword luaFunc acos atan atan2 ceil floor
154071d4279SBram Moolenaar  syn keyword luaFunc mod frexp ldexp sqrt min max log
155071d4279SBram Moolenaar  syn keyword luaFunc log10 exp deg rad random
156071d4279SBram Moolenaar  syn keyword luaFunc randomseed strlen strsub strlower strupper
157071d4279SBram Moolenaar  syn keyword luaFunc strchar strrep ascii strbyte
158071d4279SBram Moolenaar  syn keyword luaFunc format strfind gsub
159071d4279SBram Moolenaar  syn keyword luaFunc getinfo getlocal setlocal setcallhook setlinehook
1608424a624SBram Moolenaarelseif lua_version == 5
161b6b046b2SBram Moolenaar  syn keyword luaFunc getmetatable setmetatable
162b6b046b2SBram Moolenaar  syn keyword luaFunc ipairs pairs
163b6b046b2SBram Moolenaar  syn keyword luaFunc pcall xpcall
164b6b046b2SBram Moolenaar  syn keyword luaFunc _G loadfile rawequal require
1658424a624SBram Moolenaar  if lua_subversion == 0
166b6b046b2SBram Moolenaar    syn keyword luaFunc getfenv setfenv
167b6b046b2SBram Moolenaar    syn keyword luaFunc loadstring unpack
168fc1421ebSBram Moolenaar    syn keyword luaFunc gcinfo loadlib LUA_PATH _LOADED _REQUIREDNAME
169b6b046b2SBram Moolenaar  else
170b6b046b2SBram Moolenaar    syn keyword luaFunc load select
171b6b046b2SBram Moolenaar    syn match   luaFunc /\<package\.cpath\>/
172b6b046b2SBram Moolenaar    syn match   luaFunc /\<package\.loaded\>/
173b6b046b2SBram Moolenaar    syn match   luaFunc /\<package\.loadlib\>/
174b6b046b2SBram Moolenaar    syn match   luaFunc /\<package\.path\>/
1758424a624SBram Moolenaar    if lua_subversion == 1
176b6b046b2SBram Moolenaar      syn keyword luaFunc getfenv setfenv
177b6b046b2SBram Moolenaar      syn keyword luaFunc loadstring module unpack
178b6b046b2SBram Moolenaar      syn match   luaFunc /\<package\.loaders\>/
179b6b046b2SBram Moolenaar      syn match   luaFunc /\<package\.preload\>/
180b6b046b2SBram Moolenaar      syn match   luaFunc /\<package\.seeall\>/
181b6b046b2SBram Moolenaar    elseif lua_subversion == 2
182b6b046b2SBram Moolenaar      syn keyword luaFunc _ENV rawlen
183b6b046b2SBram Moolenaar      syn match   luaFunc /\<package\.config\>/
184b6b046b2SBram Moolenaar      syn match   luaFunc /\<package\.preload\>/
185b6b046b2SBram Moolenaar      syn match   luaFunc /\<package\.searchers\>/
186b6b046b2SBram Moolenaar      syn match   luaFunc /\<package\.searchpath\>/
187b6b046b2SBram Moolenaar      syn match   luaFunc /\<bit32\.arshift\>/
188b6b046b2SBram Moolenaar      syn match   luaFunc /\<bit32\.band\>/
189b6b046b2SBram Moolenaar      syn match   luaFunc /\<bit32\.bnot\>/
190b6b046b2SBram Moolenaar      syn match   luaFunc /\<bit32\.bor\>/
191b6b046b2SBram Moolenaar      syn match   luaFunc /\<bit32\.btest\>/
192b6b046b2SBram Moolenaar      syn match   luaFunc /\<bit32\.bxor\>/
193b6b046b2SBram Moolenaar      syn match   luaFunc /\<bit32\.extract\>/
194b6b046b2SBram Moolenaar      syn match   luaFunc /\<bit32\.lrotate\>/
195b6b046b2SBram Moolenaar      syn match   luaFunc /\<bit32\.lshift\>/
196b6b046b2SBram Moolenaar      syn match   luaFunc /\<bit32\.replace\>/
197b6b046b2SBram Moolenaar      syn match   luaFunc /\<bit32\.rrotate\>/
198b6b046b2SBram Moolenaar      syn match   luaFunc /\<bit32\.rshift\>/
199b6b046b2SBram Moolenaar    endif
200b6b046b2SBram Moolenaar    syn match luaFunc /\<coroutine\.running\>/
201b6b046b2SBram Moolenaar  endif
202b6b046b2SBram Moolenaar  syn match   luaFunc /\<coroutine\.create\>/
203b6b046b2SBram Moolenaar  syn match   luaFunc /\<coroutine\.resume\>/
204b6b046b2SBram Moolenaar  syn match   luaFunc /\<coroutine\.status\>/
205b6b046b2SBram Moolenaar  syn match   luaFunc /\<coroutine\.wrap\>/
206b6b046b2SBram Moolenaar  syn match   luaFunc /\<coroutine\.yield\>/
207b6b046b2SBram Moolenaar  syn match   luaFunc /\<string\.byte\>/
208b6b046b2SBram Moolenaar  syn match   luaFunc /\<string\.char\>/
209b6b046b2SBram Moolenaar  syn match   luaFunc /\<string\.dump\>/
210b6b046b2SBram Moolenaar  syn match   luaFunc /\<string\.find\>/
211b6b046b2SBram Moolenaar  syn match   luaFunc /\<string\.format\>/
212b6b046b2SBram Moolenaar  syn match   luaFunc /\<string\.gsub\>/
213b6b046b2SBram Moolenaar  syn match   luaFunc /\<string\.len\>/
214b6b046b2SBram Moolenaar  syn match   luaFunc /\<string\.lower\>/
215b6b046b2SBram Moolenaar  syn match   luaFunc /\<string\.rep\>/
216b6b046b2SBram Moolenaar  syn match   luaFunc /\<string\.sub\>/
217b6b046b2SBram Moolenaar  syn match   luaFunc /\<string\.upper\>/
218b6b046b2SBram Moolenaar  if lua_subversion == 0
219b6b046b2SBram Moolenaar    syn match luaFunc /\<string\.gfind\>/
220b6b046b2SBram Moolenaar  else
221b6b046b2SBram Moolenaar    syn match luaFunc /\<string\.gmatch\>/
222b6b046b2SBram Moolenaar    syn match luaFunc /\<string\.match\>/
223b6b046b2SBram Moolenaar    syn match luaFunc /\<string\.reverse\>/
224b6b046b2SBram Moolenaar  endif
225b6b046b2SBram Moolenaar  if lua_subversion == 0
226b6b046b2SBram Moolenaar    syn match luaFunc /\<table\.getn\>/
227b6b046b2SBram Moolenaar    syn match luaFunc /\<table\.setn\>/
228b6b046b2SBram Moolenaar    syn match luaFunc /\<table\.foreach\>/
229b6b046b2SBram Moolenaar    syn match luaFunc /\<table\.foreachi\>/
230b6b046b2SBram Moolenaar  elseif lua_subversion == 1
231b6b046b2SBram Moolenaar    syn match luaFunc /\<table\.maxn\>/
232b6b046b2SBram Moolenaar  elseif lua_subversion == 2
233b6b046b2SBram Moolenaar    syn match luaFunc /\<table\.pack\>/
234b6b046b2SBram Moolenaar    syn match luaFunc /\<table\.unpack\>/
235b6b046b2SBram Moolenaar  endif
236b6b046b2SBram Moolenaar  syn match   luaFunc /\<table\.concat\>/
237b6b046b2SBram Moolenaar  syn match   luaFunc /\<table\.sort\>/
238b6b046b2SBram Moolenaar  syn match   luaFunc /\<table\.insert\>/
239b6b046b2SBram Moolenaar  syn match   luaFunc /\<table\.remove\>/
240b6b046b2SBram Moolenaar  syn match   luaFunc /\<math\.abs\>/
241b6b046b2SBram Moolenaar  syn match   luaFunc /\<math\.acos\>/
242b6b046b2SBram Moolenaar  syn match   luaFunc /\<math\.asin\>/
243b6b046b2SBram Moolenaar  syn match   luaFunc /\<math\.atan\>/
244b6b046b2SBram Moolenaar  syn match   luaFunc /\<math\.atan2\>/
245b6b046b2SBram Moolenaar  syn match   luaFunc /\<math\.ceil\>/
246b6b046b2SBram Moolenaar  syn match   luaFunc /\<math\.sin\>/
247b6b046b2SBram Moolenaar  syn match   luaFunc /\<math\.cos\>/
248b6b046b2SBram Moolenaar  syn match   luaFunc /\<math\.tan\>/
249b6b046b2SBram Moolenaar  syn match   luaFunc /\<math\.deg\>/
250b6b046b2SBram Moolenaar  syn match   luaFunc /\<math\.exp\>/
251b6b046b2SBram Moolenaar  syn match   luaFunc /\<math\.floor\>/
252b6b046b2SBram Moolenaar  syn match   luaFunc /\<math\.log\>/
253b6b046b2SBram Moolenaar  syn match   luaFunc /\<math\.max\>/
254b6b046b2SBram Moolenaar  syn match   luaFunc /\<math\.min\>/
255b6b046b2SBram Moolenaar  if lua_subversion == 0
256b6b046b2SBram Moolenaar    syn match luaFunc /\<math\.mod\>/
257b6b046b2SBram Moolenaar    syn match luaFunc /\<math\.log10\>/
258b6b046b2SBram Moolenaar  else
259b6b046b2SBram Moolenaar    if lua_subversion == 1
260b6b046b2SBram Moolenaar      syn match luaFunc /\<math\.log10\>/
261b6b046b2SBram Moolenaar    endif
262b6b046b2SBram Moolenaar    syn match luaFunc /\<math\.huge\>/
263b6b046b2SBram Moolenaar    syn match luaFunc /\<math\.fmod\>/
264b6b046b2SBram Moolenaar    syn match luaFunc /\<math\.modf\>/
265b6b046b2SBram Moolenaar    syn match luaFunc /\<math\.cosh\>/
266b6b046b2SBram Moolenaar    syn match luaFunc /\<math\.sinh\>/
267b6b046b2SBram Moolenaar    syn match luaFunc /\<math\.tanh\>/
268b6b046b2SBram Moolenaar  endif
269b6b046b2SBram Moolenaar  syn match   luaFunc /\<math\.pow\>/
270b6b046b2SBram Moolenaar  syn match   luaFunc /\<math\.rad\>/
271b6b046b2SBram Moolenaar  syn match   luaFunc /\<math\.sqrt\>/
272b6b046b2SBram Moolenaar  syn match   luaFunc /\<math\.frexp\>/
273b6b046b2SBram Moolenaar  syn match   luaFunc /\<math\.ldexp\>/
274b6b046b2SBram Moolenaar  syn match   luaFunc /\<math\.random\>/
275b6b046b2SBram Moolenaar  syn match   luaFunc /\<math\.randomseed\>/
276b6b046b2SBram Moolenaar  syn match   luaFunc /\<math\.pi\>/
277b6b046b2SBram Moolenaar  syn match   luaFunc /\<io\.close\>/
278b6b046b2SBram Moolenaar  syn match   luaFunc /\<io\.flush\>/
279b6b046b2SBram Moolenaar  syn match   luaFunc /\<io\.input\>/
280b6b046b2SBram Moolenaar  syn match   luaFunc /\<io\.lines\>/
281b6b046b2SBram Moolenaar  syn match   luaFunc /\<io\.open\>/
282b6b046b2SBram Moolenaar  syn match   luaFunc /\<io\.output\>/
283b6b046b2SBram Moolenaar  syn match   luaFunc /\<io\.popen\>/
284b6b046b2SBram Moolenaar  syn match   luaFunc /\<io\.read\>/
285b6b046b2SBram Moolenaar  syn match   luaFunc /\<io\.stderr\>/
286b6b046b2SBram Moolenaar  syn match   luaFunc /\<io\.stdin\>/
287b6b046b2SBram Moolenaar  syn match   luaFunc /\<io\.stdout\>/
288b6b046b2SBram Moolenaar  syn match   luaFunc /\<io\.tmpfile\>/
289b6b046b2SBram Moolenaar  syn match   luaFunc /\<io\.type\>/
290b6b046b2SBram Moolenaar  syn match   luaFunc /\<io\.write\>/
291b6b046b2SBram Moolenaar  syn match   luaFunc /\<os\.clock\>/
292b6b046b2SBram Moolenaar  syn match   luaFunc /\<os\.date\>/
293b6b046b2SBram Moolenaar  syn match   luaFunc /\<os\.difftime\>/
294b6b046b2SBram Moolenaar  syn match   luaFunc /\<os\.execute\>/
295b6b046b2SBram Moolenaar  syn match   luaFunc /\<os\.exit\>/
296b6b046b2SBram Moolenaar  syn match   luaFunc /\<os\.getenv\>/
297b6b046b2SBram Moolenaar  syn match   luaFunc /\<os\.remove\>/
298b6b046b2SBram Moolenaar  syn match   luaFunc /\<os\.rename\>/
299b6b046b2SBram Moolenaar  syn match   luaFunc /\<os\.setlocale\>/
300b6b046b2SBram Moolenaar  syn match   luaFunc /\<os\.time\>/
301b6b046b2SBram Moolenaar  syn match   luaFunc /\<os\.tmpname\>/
302b6b046b2SBram Moolenaar  syn match   luaFunc /\<debug\.debug\>/
303b6b046b2SBram Moolenaar  syn match   luaFunc /\<debug\.gethook\>/
304b6b046b2SBram Moolenaar  syn match   luaFunc /\<debug\.getinfo\>/
305b6b046b2SBram Moolenaar  syn match   luaFunc /\<debug\.getlocal\>/
306b6b046b2SBram Moolenaar  syn match   luaFunc /\<debug\.getupvalue\>/
307b6b046b2SBram Moolenaar  syn match   luaFunc /\<debug\.setlocal\>/
308b6b046b2SBram Moolenaar  syn match   luaFunc /\<debug\.setupvalue\>/
309b6b046b2SBram Moolenaar  syn match   luaFunc /\<debug\.sethook\>/
310b6b046b2SBram Moolenaar  syn match   luaFunc /\<debug\.traceback\>/
311b6b046b2SBram Moolenaar  if lua_subversion == 1
312b6b046b2SBram Moolenaar    syn match luaFunc /\<debug\.getfenv\>/
313b6b046b2SBram Moolenaar    syn match luaFunc /\<debug\.setfenv\>/
314b6b046b2SBram Moolenaar    syn match luaFunc /\<debug\.getmetatable\>/
315b6b046b2SBram Moolenaar    syn match luaFunc /\<debug\.setmetatable\>/
316b6b046b2SBram Moolenaar    syn match luaFunc /\<debug\.getregistry\>/
317b6b046b2SBram Moolenaar  elseif lua_subversion == 2
318b6b046b2SBram Moolenaar    syn match luaFunc /\<debug\.getmetatable\>/
319b6b046b2SBram Moolenaar    syn match luaFunc /\<debug\.setmetatable\>/
320b6b046b2SBram Moolenaar    syn match luaFunc /\<debug\.getregistry\>/
321b6b046b2SBram Moolenaar    syn match luaFunc /\<debug\.getuservalue\>/
322b6b046b2SBram Moolenaar    syn match luaFunc /\<debug\.setuservalue\>/
323b6b046b2SBram Moolenaar    syn match luaFunc /\<debug\.upvalueid\>/
324b6b046b2SBram Moolenaar    syn match luaFunc /\<debug\.upvaluejoin\>/
325071d4279SBram Moolenaar  endif
3268424a624SBram Moolenaarendif
327071d4279SBram Moolenaar
328071d4279SBram Moolenaar" Define the default highlighting.
329071d4279SBram Moolenaar" For version 5.7 and earlier: only when not done already
330071d4279SBram Moolenaar" For version 5.8 and later: only when an item doesn't have highlighting yet
331071d4279SBram Moolenaarif version >= 508 || !exists("did_lua_syntax_inits")
332071d4279SBram Moolenaar  if version < 508
333071d4279SBram Moolenaar    let did_lua_syntax_inits = 1
334071d4279SBram Moolenaar    command -nargs=+ HiLink hi link <args>
335071d4279SBram Moolenaar  else
336071d4279SBram Moolenaar    command -nargs=+ HiLink hi def link <args>
337071d4279SBram Moolenaar  endif
338071d4279SBram Moolenaar
339071d4279SBram Moolenaar  HiLink luaStatement		Statement
340071d4279SBram Moolenaar  HiLink luaRepeat		Repeat
341b6b046b2SBram Moolenaar  HiLink luaFor			Repeat
342071d4279SBram Moolenaar  HiLink luaString		String
343071d4279SBram Moolenaar  HiLink luaString2		String
344071d4279SBram Moolenaar  HiLink luaNumber		Number
345071d4279SBram Moolenaar  HiLink luaOperator		Operator
346071d4279SBram Moolenaar  HiLink luaConstant		Constant
347071d4279SBram Moolenaar  HiLink luaCond		Conditional
348b6b046b2SBram Moolenaar  HiLink luaCondElse		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
355071d4279SBram Moolenaar  HiLink luaSpecial		SpecialChar
356071d4279SBram Moolenaar  HiLink luaFunc		Identifier
357b6b046b2SBram Moolenaar  HiLink luaLabel		Label
358071d4279SBram Moolenaar
359071d4279SBram Moolenaar  delcommand HiLink
360071d4279SBram Moolenaarendif
361071d4279SBram Moolenaar
362071d4279SBram Moolenaarlet b:current_syntax = "lua"
363071d4279SBram Moolenaar
364*5dc6252dSBram Moolenaarlet &cpo = s:cpo_save
365*5dc6252dSBram Moolenaarunlet s:cpo_save
366b6b046b2SBram Moolenaar" vim: et ts=8 sw=2
367