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