summaryrefslogtreecommitdiffstats
path: root/runtime/syntax
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2011-12-30 13:11:27 +0100
committerBram Moolenaar <Bram@vim.org>2011-12-30 13:11:27 +0100
commitb6b046b281fac168a78b3eafdea9274bef06882f (patch)
tree8d50c58421278f30521e290a8cf18c6085b78168 /runtime/syntax
parentdeaf7b739791095e2c98a7087dfe9b3c8dfd56f2 (diff)
Updated runtime files.
Diffstat (limited to 'runtime/syntax')
-rw-r--r--runtime/syntax/abel.vim11
-rw-r--r--runtime/syntax/art.vim8
-rw-r--r--runtime/syntax/ayacc.vim7
-rw-r--r--runtime/syntax/basic.vim7
-rw-r--r--runtime/syntax/bib.vim8
-rw-r--r--runtime/syntax/blank.vim8
-rw-r--r--runtime/syntax/c.vim7
-rw-r--r--runtime/syntax/clean.vim7
-rw-r--r--runtime/syntax/clipper.vim9
-rw-r--r--runtime/syntax/csc.vim7
-rw-r--r--runtime/syntax/cupl.vim11
-rw-r--r--runtime/syntax/cweb.vim7
-rw-r--r--runtime/syntax/fortran.vim15
-rw-r--r--runtime/syntax/gitolite.vim8
-rw-r--r--runtime/syntax/java.vim9
-rw-r--r--runtime/syntax/kwt.vim2
-rw-r--r--runtime/syntax/lua.vim371
-rw-r--r--runtime/syntax/sdl.vim2
18 files changed, 319 insertions, 185 deletions
diff --git a/runtime/syntax/abel.vim b/runtime/syntax/abel.vim
index fde9be3dda..05e8dac913 100644
--- a/runtime/syntax/abel.vim
+++ b/runtime/syntax/abel.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: ABEL
-" Maintainer: John Cook <john.cook@kla-tencor.com>
-" Last Change: 2001 Sep 2
+" Maintainer: John Cook <johncook3@gmail.com>
+" Last Change: 2011 Dec 27
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@@ -11,6 +11,9 @@ elseif exists("b:current_syntax")
finish
endif
+let s:cpo_save = &cpo
+set cpo&vim
+
" this language is oblivious to case
syn case ignore
@@ -164,4 +167,8 @@ if version >= 508 || !exists("did_abel_syn_inits")
endif
let b:current_syntax = "abel"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
" vim:ts=8
diff --git a/runtime/syntax/art.vim b/runtime/syntax/art.vim
index c1faddb1ef..855119810b 100644
--- a/runtime/syntax/art.vim
+++ b/runtime/syntax/art.vim
@@ -2,12 +2,15 @@
" Language: ART-IM and ART*Enterprise
" Maintainer: Dorai Sitaram <ds26@gte.com>
" URL: http://www.ccs.neu.edu/~dorai/vimplugins/vimplugins.html
-" Last Change: Nov 6, 2002
+" Last Change: 2011 Dec 28 by Thilo Six
if exists("b:current_syntax")
finish
endif
+let s:cpo_save = &cpo
+set cpo&vim
+
syn case ignore
syn keyword artspform => and assert bind
@@ -42,3 +45,6 @@ hi def link artspform statement
hi def link artvariable function
let b:current_syntax = "art"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/ayacc.vim b/runtime/syntax/ayacc.vim
index be91e2f7ef..fedd0e80a0 100644
--- a/runtime/syntax/ayacc.vim
+++ b/runtime/syntax/ayacc.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: AYacc
" Maintainer: Mathieu Clabaut <mathieu.clabaut@free.fr>
-" LastChange: 02 May 2001
+" LastChange: 2011 Dec 25
" Original: Yacc, maintained by Dr. Charles E. Campbell, Jr.
" Comment: Replaced sourcing c.vim file by ada.vim and rename yacc*
" in ayacc*
@@ -22,6 +22,9 @@ else
unlet b:current_syntax
endif
+let s:cpo_save = &cpo
+set cpo&vim
+
" Clusters
syn cluster ayaccActionGroup contains=ayaccDelim,cInParen,cTodo,cIncluded,ayaccDelim,ayaccCurlyError,ayaccUnionCurly,ayaccUnion,cUserLabel,cOctalZero,cCppOut2,cCppSkip,cErrInBracket,cErrInParen,cOctalError
syn cluster ayaccUnionGroup contains=ayaccKey,cComment,ayaccCurly,cType,cStructure,cStorageClass,ayaccUnionCurly
@@ -83,4 +86,6 @@ endif
let b:current_syntax = "ayacc"
+let &cpo = s:cpo_save
+unlet s:cpo_save
" vim: ts=15
diff --git a/runtime/syntax/basic.vim b/runtime/syntax/basic.vim
index ee500178c9..c72032da27 100644
--- a/runtime/syntax/basic.vim
+++ b/runtime/syntax/basic.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: BASIC
" Maintainer: Allan Kelly <allan@fruitloaf.co.uk>
-" Last Change: Tue Sep 14 14:24:23 BST 1999
+" Last Change: 2011 Dec 25 by Thilo Six
" First version based on Micro$soft QBASIC circa 1989, as documented in
" 'Learn BASIC Now' by Halvorson&Rygmyr. Microsoft Press 1989.
@@ -16,6 +16,9 @@ elseif exists("b:current_syntax")
finish
endif
+let s:cpo_save = &cpo
+set cpo&vim
+
" A bunch of useful BASIC keywords
syn keyword basicStatement BEEP beep Beep BLOAD bload Bload BSAVE bsave Bsave
syn keyword basicStatement CALL call Call ABSOLUTE absolute Absolute
@@ -171,4 +174,6 @@ endif
let b:current_syntax = "basic"
+let &cpo = s:cpo_save
+unlet s:cpo_save
" vim: ts=8
diff --git a/runtime/syntax/bib.vim b/runtime/syntax/bib.vim
index cf4bba84f6..3743fb0dc6 100644
--- a/runtime/syntax/bib.vim
+++ b/runtime/syntax/bib.vim
@@ -2,7 +2,7 @@
" Language: BibTeX (bibliographic database format for (La)TeX)
" Maintainer: Bernd Feige <Bernd.Feige@gmx.net>
" Filenames: *.bib
-" Last Change: Mar 23, 2011
+" Last Change: 2011 Dec 25
" Thanks to those who pointed out problems with this file or supplied fixes!
@@ -16,6 +16,9 @@ elseif exists("b:current_syntax")
finish
endif
+let s:cpo_save = &cpo
+set cpo&vim
+
" Ignore case
syn case ignore
@@ -93,3 +96,6 @@ if version >= 508 || !exists("did_bib_syn_inits")
endif
let b:current_syntax = "bib"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/blank.vim b/runtime/syntax/blank.vim
index 855433995e..60251c966c 100644
--- a/runtime/syntax/blank.vim
+++ b/runtime/syntax/blank.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: Blank 1.4.1
" Maintainer: Rafal M. Sulejman <unefunge@friko2.onet.pl>
-" Last change: 21 Jul 2000
+" Last change: 2011 Dec 28 by Thilo Six
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@@ -11,6 +11,9 @@ elseif exists("b:current_syntax")
finish
endif
+let s:cpo_save = &cpo
+set cpo&vim
+
syn case ignore
" Blank instructions
@@ -43,4 +46,7 @@ if version >= 508 || !exists("did_blank_syntax_inits")
endif
let b:current_syntax = "blank"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
" vim: ts=8
diff --git a/runtime/syntax/c.vim b/runtime/syntax/c.vim
index 8ce0ff115f..aef59a607f 100644
--- a/runtime/syntax/c.vim
+++ b/runtime/syntax/c.vim
@@ -1,13 +1,16 @@
" Vim syntax file
" Language: C
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2011 Sep 07
+" Last Change: 2011 Dec 30
" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
finish
endif
+let s:cpo_save = &cpo
+set cpo&vim
+
" A bunch of useful C keywords
syn keyword cStatement goto break return continue asm
syn keyword cLabel case default
@@ -390,4 +393,6 @@ hi def link cCppOut Comment
let b:current_syntax = "c"
+let &cpo = s:cpo_save
+unlet s:cpo_save
" vim: ts=8
diff --git a/runtime/syntax/clean.vim b/runtime/syntax/clean.vim
index 233ecbda10..10dc9cab39 100644
--- a/runtime/syntax/clean.vim
+++ b/runtime/syntax/clean.vim
@@ -2,7 +2,7 @@
" Language: Clean
" Author: Pieter van Engelen <pietere@sci.kun.nl>
" Co-Author: Arthur van Leeuwen <arthurvl@sci.kun.nl>
-" Last Change: Fri Sep 29 11:35:34 CEST 2000
+" Last Change: 2011 Dec 25 by Thilo Six
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@@ -12,6 +12,9 @@ elseif exists("b:current_syntax")
finish
endif
+let s:cpo_save = &cpo
+set cpo&vim
+
" Some Clean-keywords
syn keyword cleanConditional if case
syn keyword cleanLabel let! with where in of
@@ -91,4 +94,6 @@ endif
let b:current_syntax = "clean"
+let &cpo = s:cpo_save
+unlet s:cpo_save
" vim: ts=4
diff --git a/runtime/syntax/clipper.vim b/runtime/syntax/clipper.vim
index 989b257f7d..1a10a2dca2 100644
--- a/runtime/syntax/clipper.vim
+++ b/runtime/syntax/clipper.vim
@@ -2,7 +2,7 @@
" Language: Clipper 5.2 & FlagShip
" Maintainer: C R Zamana <zamana@zip.net>
" Some things based on c.vim by Bram Moolenaar and pascal.vim by Mario Eusebio
-" Last Change: Sat Sep 09 2000
+" Last Change: 2011 Dec 29 by Thilo Six
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@@ -12,6 +12,9 @@ elseif exists("b:current_syntax")
finish
endif
+let s:cpo_save = &cpo
+set cpo&vim
+
" Exceptions for my "Very Own" (TM) user variables naming style.
" If you don't like this, comment it
syn match clipperUserVariable "\<[a,b,c,d,l,n,o,u,x][A-Z][A-Za-z0-9_]*\>"
@@ -140,4 +143,6 @@ endif
let b:current_syntax = "clipper"
-" vim: ts=4
+let &cpo = s:cpo_save
+unlet s:cpo_save
+" vim: ts=8
diff --git a/runtime/syntax/csc.vim b/runtime/syntax/csc.vim
index 8d67334aae..5493b17f5f 100644
--- a/runtime/syntax/csc.vim
+++ b/runtime/syntax/csc.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: Essbase script
" Maintainer: Raul Segura Acevedo <raulseguraaceved@netscape.net>
-" Last change: 2001 Sep 25
+" Last change: 2011 Dec 25 by Thilo Six
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@@ -11,6 +11,9 @@ elseif exists("b:current_syntax")
finish
endif
+let s:cpo_save = &cpo
+set cpo&vim
+
" folds: fix/endfix and comments
sy region EssFold start="\<Fix" end="EndFix" transparent fold
@@ -196,4 +199,6 @@ endif
let b:current_syntax = "csc"
+let &cpo = s:cpo_save
+unlet s:cpo_save
" vim: ts=8
diff --git a/runtime/syntax/cupl.vim b/runtime/syntax/cupl.vim
index 9f804c76c4..545d873af2 100644
--- a/runtime/syntax/cupl.vim
+++ b/runtime/syntax/cupl.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: CUPL
-" Maintainer: John Cook <john.cook@kla-tencor.com>
-" Last Change: 2001 Apr 25
+" Maintainer: John Cook <johncook3@gmail.com>
+" Last Change: 2011 Dec 27
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@@ -11,6 +11,9 @@ elseif exists("b:current_syntax")
finish
endif
+let s:cpo_save = &cpo
+set cpo&vim
+
" this language is oblivious to case.
syn case ignore
@@ -127,4 +130,8 @@ if version >= 508 || !exists("did_cupl_syn_inits")
endif
let b:current_syntax = "cupl"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
" vim:ts=8
diff --git a/runtime/syntax/cweb.vim b/runtime/syntax/cweb.vim
index 4062b0a4ec..39b593d2be 100644
--- a/runtime/syntax/cweb.vim
+++ b/runtime/syntax/cweb.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: CWEB
" Maintainer: Andreas Scherer <andreas.scherer@pobox.com>
-" Last Change: April 30, 2001
+" Last Change: 2011 Dec 25 by Thilo Six
" Details of the CWEB language can be found in the article by Donald E. Knuth
" and Silvio Levy, "The CWEB System of Structured Documentation", included as
@@ -36,6 +36,9 @@ endif
" C/C++ section of a CWEB chunk or in inner C/C++ context in "|...|" groups.
syntax include @webIncludedC <sfile>:p:h/cpp.vim
+let s:cpo_save = &cpo
+set cpo&vim
+
" Inner C/C++ context (ICC) should be quite simple as it's comprised of
" material in "|...|"; however the naive definition for this region would
" hickup at the innocious "\|" TeX macro. Note: For the time being we expect
@@ -77,4 +80,6 @@ endif
let b:current_syntax = "cweb"
+let &cpo = s:cpo_save
+unlet s:cpo_save
" vim: ts=8
diff --git a/runtime/syntax/fortran.vim b/runtime/syntax/fortran.vim
index 1c43a3ae28..e1d82ac0aa 100644
--- a/runtime/syntax/fortran.vim
+++ b/runtime/syntax/fortran.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: Fortran95 (and Fortran90, Fortran77, F and elf90)
-" Version: 0.89
-" Last Change: 2010 July 21
+" Version: 0.90
+" Last Change: 2011 Dec. 28
" Maintainer: Ajit J. Thakkar (ajit AT unb.ca); <http://www.unb.ca/chem/ajit/>
" Usage: For instructions, do :help fortran-syntax from Vim
" Credits:
@@ -19,6 +19,9 @@ elseif exists("b:current_syntax")
finish
endif
+let s:cpo_save = &cpo
+set cpo&vim
+
" let b:fortran_dialect = fortran_dialect if set correctly by user
if exists("fortran_dialect")
if fortran_dialect =~ '\<\(f\(9[05]\|77\)\|elf\|F\)\>'
@@ -257,7 +260,7 @@ if b:fortran_dialect != "f77"
syn match fortranType "\<end\s*type"
syn match fortranType "\<in\s*out"
- syn keyword fortranUnitHeaderEx procedure
+ syn keyword fortranType procedure
syn keyword fortranIOEx namelist
syn keyword fortranConditionalEx while
syn keyword fortran90IntrinsicEx achar iachar transfer
@@ -306,13 +309,15 @@ if b:fortran_dialect == "f95"
syn keyword fortran03ReadWrite flush wait
syn keyword fortran03IO decimal round iomsg
syn keyword fortran03Type asynchronous nopass non_overridable pass protected volatile abstract extends import
- syn keyword fortran03Type non_intrinsic value bind deferred generic final enumerator class
+ syn keyword fortran03Type non_intrinsic value bind deferred generic final enumerator
+ syn match fortran03Type "\<class\>"
syn match fortran03Type "\<associate\>"
syn match fortran03Type "\<end\s*associate"
syn match fortran03Type "\<enum\s*,\s*bind\s*(\s*c\s*)"
syn match fortran03Type "\<end\s*enum"
syn match fortran03Conditional "\<select\s*type"
syn match fortran03Conditional "\<type\s*is\>"
+ syn match fortran03Conditional "\<class\s*is\>"
syn match fortran03UnitHeader "\<abstract\s*interface\>"
syn match fortran03Operator "\([\|]\)"
@@ -537,4 +542,6 @@ endif
let b:current_syntax = "fortran"
+let &cpo = s:cpo_save
+unlet s:cpo_save
" vim: ts=8 tw=132
diff --git a/runtime/syntax/gitolite.vim b/runtime/syntax/gitolite.vim
index 6963ac7959..718aad0de9 100644
--- a/runtime/syntax/gitolite.vim
+++ b/runtime/syntax/gitolite.vim
@@ -2,12 +2,15 @@
" Language: gitolite configuration
" URL: https://github.com/tmatilai/gitolite.vim
" Maintainer: Teemu Matilainen <teemu.matilainen@iki.fi>
-" Last Change: 2011-10-18
+" Last Change: 2011-12-25
if exists("b:current_syntax")
finish
endif
+let s:cpo_save = &cpo
+set cpo&vim
+
" Comment
syn match gitoliteComment "\(^\|\s\)#.*" contains=gitoliteTodo
syn keyword gitoliteTodo TODO FIXME XXX NOT contained
@@ -78,3 +81,6 @@ hi def link gitoliteInclude Include
hi def link gitoliteString String
let b:current_syntax = "gitolite"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/java.vim b/runtime/syntax/java.vim
index d11afa8b6e..13ca62ca45 100644
--- a/runtime/syntax/java.vim
+++ b/runtime/syntax/java.vim
@@ -1,7 +1,7 @@
" Vim syntax file " Language: Java
" Maintainer: Claudio Fleiner <claudio@fleiner.com>
" URL: http://www.fleiner.com/vim/syntax/java.vim
-" Last Change: 2010 March 23
+" Last Change: 2011 Dec 30
" Please check :help java.vim for comments on some of the options available.
@@ -120,11 +120,8 @@ syn region javaLabelRegion transparent matchgroup=javaLabel start="\<case\>" ma
syn match javaUserLabel "^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=javaLabel
syn keyword javaLabel default
-if !exists("java_allow_cpp_keywords")
- syn keyword javaError auto delete extern friend inline redeclared
- syn keyword javaError register signed sizeof struct template typedef union
- syn keyword javaError unsigned operator
-endif
+" highlighting C++ keywords as errors removed, too many people find it
+" annoying. Was: if !exists("java_allow_cpp_keywords")
" The following cluster contains all java groups except the contained ones
syn cluster javaTop add=javaExternal,javaError,javaError,javaBranch,javaLabelRegion,javaLabel,javaConditional,javaRepeat,javaBoolean,javaConstant,javaTypedef,javaOperator,javaType,javaType,javaStatement,javaStorageClass,javaAssert,javaExceptions,javaMethodDecl,javaClassDecl,javaClassDecl,javaClassDecl,javaScopeDecl,javaError,javaError2,javaUserLabel,javaLangObject,javaAnnotation,javaVarArg
diff --git a/runtime/syntax/kwt.vim b/runtime/syntax/kwt.vim
index 47be7a804e..4c2c9d9dc0 100644
--- a/runtime/syntax/kwt.vim
+++ b/runtime/syntax/kwt.vim
@@ -1,6 +1,6 @@
" Vim syntax file
" Language: kimwitu++
-" Maintainer: Michael Piefel <piefel@informatik.hu-berlin.de>
+" Maintainer: Michael Piefel <entwurf@piefel.de>
" Last Change: 2 May 2001
" For version 5.x: Clear all syntax items
diff --git a/runtime/syntax/lua.vim b/runtime/syntax/lua.vim
index c40c6285c2..18e97ff534 100644
--- a/runtime/syntax/lua.vim
+++ b/runtime/syntax/lua.vim
@@ -1,11 +1,11 @@
" Vim syntax file
-" Language: Lua 4.0, Lua 5.0 and Lua 5.1
-" Maintainer: Marcus Aurelius Farias <marcus.cf 'at' bol com br>
+" Language: Lua 4.0, Lua 5.0, Lua 5.1 and Lua 5.2
+" Maintainer: Marcus Aurelius Farias <masserahguard-lua 'at' yahoo com>
" First Author: Carlos Augusto Teixeira Mendes <cmendes 'at' inf puc-rio br>
-" Last Change: 2006 Aug 10
+" Last Change: 2011 Dec 20
" Options: lua_version = 4 or 5
-" lua_subversion = 0 (4.0, 5.0) or 1 (5.1)
-" default 5.1
+" lua_subversion = 0 (4.0, 5.0) or 1 (5.1) or 2 (5.2)
+" default 5.2
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@@ -16,9 +16,9 @@ elseif exists("b:current_syntax")
endif
if !exists("lua_version")
- " Default is lua 5.1
+ " Default is lua 5.2
let lua_version = 5
- let lua_subversion = 1
+ let lua_subversion = 2
elseif !exists("lua_subversion")
" lua_version exists, but lua_subversion doesn't. So, set it to 0
let lua_subversion = 0
@@ -30,14 +30,14 @@ syn case match
syn sync minlines=100
" Comments
-syn keyword luaTodo contained TODO FIXME XXX
-syn match luaComment "--.*$" contains=luaTodo,@Spell
+syn keyword luaTodo contained TODO FIXME XXX
+syn match luaComment "--.*$" contains=luaTodo,@Spell
if lua_version == 5 && lua_subversion == 0
- syn region luaComment matchgroup=luaComment start="--\[\[" end="\]\]" contains=luaTodo,luaInnerComment,@Spell
- syn region luaInnerComment contained transparent start="\[\[" end="\]\]"
+ syn region luaComment matchgroup=luaComment start="--\[\[" end="\]\]" contains=luaTodo,luaInnerComment,@Spell
+ syn region luaInnerComment contained transparent start="\[\[" end="\]\]"
elseif lua_version > 5 || (lua_version == 5 && lua_subversion >= 1)
" Comments in Lua 5.1: --[[ ... ]], [=[ ... ]=], [===[ ... ]===], etc.
- syn region luaComment matchgroup=luaComment start="--\[\z(=*\)\[" end="\]\z1\]" contains=luaTodo,@Spell
+ syn region luaComment matchgroup=luaComment start="--\[\z(=*\)\[" end="\]\z1\]" contains=luaTodo,@Spell
endif
" First line may start with #!
@@ -46,59 +46,66 @@ syn match luaComment "\%^#!.*"
" catch errors caused by wrong parenthesis and wrong curly brackets or
" keywords placed outside their respective blocks
-syn region luaParen transparent start='(' end=')' contains=ALLBUT,luaError,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaCondStart,luaBlock,luaRepeatBlock,luaRepeat,luaStatement
-syn match luaError ")"
+syn region luaParen transparent start='(' end=')' contains=TOP,luaParenError
+syn match luaParenError ")"
syn match luaError "}"
syn match luaError "\<\%(end\|else\|elseif\|then\|until\|in\)\>"
" Function declaration
-syn region luaFunctionBlock transparent matchgroup=luaFunction start="\<function\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat
+syn region luaFunctionBlock transparent matchgroup=luaFunction start="\<function\>" end="\<end\>" contains=TOP
-" if then else elseif end
-syn keyword luaCond contained else
+" else
+syn keyword luaCondElse matchgroup=luaCond contained containedin=luaCondEnd else
" then ... end
-syn region luaCondEnd contained transparent matchgroup=luaCond start="\<then\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaRepeat
+syn region luaCondEnd contained transparent matchgroup=luaCond start="\<then\>" end="\<end\>" contains=TOP
" elseif ... then
-syn region luaCondElseif contained transparent matchgroup=luaCond start="\<elseif\>" end="\<then\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat
+syn region luaCondElseif contained containedin=luaCondEnd transparent matchgroup=luaCond start="\<elseif\>" end="\<then\>" contains=TOP
" if ... then
-syn region luaCondStart transparent matchgroup=luaCond start="\<if\>" end="\<then\>"me=e-4 contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat nextgroup=luaCondEnd skipwhite skipempty
+syn region luaCondStart transparent matchgroup=luaCond start="\<if\>" end="\<then\>"me=e-4 contains=TOP nextgroup=luaCondEnd skipwhite skipempty
" do ... end
-syn region luaBlock transparent matchgroup=luaStatement start="\<do\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat
-
+syn region luaBlock transparent matchgroup=luaStatement start="\<do\>" end="\<end\>" contains=TOP
" repeat ... until
-syn region luaRepeatBlock transparent matchgroup=luaRepeat start="\<repeat\>" end="\<until\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat
+syn region luaRepeatBlock transparent matchgroup=luaRepeat start="\<repeat\>" end="\<until\>" contains=TOP
" while ... do
-syn region luaRepeatBlock transparent matchgroup=luaRepeat start="\<while\>" end="\<do\>"me=e-2 contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat nextgroup=luaBlock skipwhite skipempty
+syn region luaWhile transparent matchgroup=luaRepeat start="\<while\>" end="\<do\>"me=e-2 contains=TOP nextgroup=luaBlock skipwhite skipempty
" for ... do and for ... in ... do
-syn region luaRepeatBlock transparent matchgroup=luaRepeat start="\<for\>" end="\<do\>"me=e-2 contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd nextgroup=luaBlock skipwhite skipempty
+syn region luaFor transparent matchgroup=luaRepeat start="\<for\>" end="\<do\>"me=e-2 contains=TOP nextgroup=luaBlock skipwhite skipempty
-" Following 'else' example. This is another item to those
-" contains=ALLBUT,... because only the 'for' luaRepeatBlock contains it.
-syn keyword luaRepeat contained in
+syn keyword luaFor contained containedin=luaFor in
" other keywords
syn keyword luaStatement return local break
-syn keyword luaOperator and or not
-syn keyword luaConstant nil
+if lua_version > 5 || (lua_version == 5 && lua_subversion >= 2)
+ syn keyword luaStatement goto
+ syn match luaLabel "::\I\i*::"
+endif
+syn keyword luaOperator and or not
+syn keyword luaConstant nil
if lua_version > 4
syn keyword luaConstant true false
endif
" Strings
if lua_version < 5
- syn match luaSpecial contained "\\[\\abfnrtv\'\"]\|\\\d\{,3}"
-elseif lua_version == 5 && lua_subversion == 0
- syn match luaSpecial contained "\\[\\abfnrtv\'\"[\]]\|\\\d\{,3}"
- syn region luaString2 matchgroup=luaString start=+\[\[+ end=+\]\]+ contains=luaString2,@Spell
-elseif lua_version > 5 || (lua_version == 5 && lua_subversion >= 1)
- syn match luaSpecial contained "\\[\\abfnrtv\'\"]\|\\\d\{,3}"
- syn region luaString2 matchgroup=luaString start="\[\z(=*\)\[" end="\]\z1\]" contains=@Spell
+ syn match luaSpecial contained "\\[\\abfnrtv\'\"]\|\\[[:digit:]]\{,3}"
+elseif lua_version == 5
+ if lua_subversion == 0
+ syn match luaSpecial contained #\\[\\abfnrtv'"[\]]\|\\[[:digit:]]\{,3}#
+ syn region luaString2 matchgroup=luaString start=+\[\[+ end=+\]\]+ contains=luaString2,@Spell
+ else
+ if lua_subversion == 1
+ syn match luaSpecial contained #\\[\\abfnrtv'"]\|\\[[:digit:]]\{,3}#
+ else " Lua 5.2
+ syn match luaSpecial contained #\\[\\abfnrtvz'"]\|\\x[[:xdigit:]]\{2}\|\\[[:digit:]]\{,3}#
+ endif
+ syn region luaString2 matchgroup=luaString start="\[\z(=*\)\[" end="\]\z1\]" contains=@Spell
+ endif
endif
syn region luaString start=+'+ end=+'+ skip=+\\\\\|\\'+ contains=luaSpecial,@Spell
syn region luaString start=+"+ end=+"+ skip=+\\\\\|\\"+ contains=luaSpecial,@Spell
@@ -106,19 +113,23 @@ syn region luaString start=+"+ end=+"+ skip=+\\\\\|\\"+ contains=luaSpecial,@Sp
" integer number
syn match luaNumber "\<\d\+\>"
" floating point number, with dot, optional exponent
-syn match luaFloat "\<\d\+\.\d*\%(e[-+]\=\d\+\)\=\>"
+syn match luaNumber "\<\d\+\.\d*\%([eE][-+]\=\d\+\)\=\>"
" floating point number, starting with a dot, optional exponent
-syn match luaFloat "\.\d\+\%(e[-+]\=\d\+\)\=\>"
+syn match luaNumber "\.\d\+\%([eE][-+]\=\d\+\)\=\>"
" floating point number, without dot, with exponent
-syn match luaFloat "\<\d\+e[-+]\=\d\+\>"
+syn match luaNumber "\<\d\+[eE][-+]\=\d\+\>"
" hex numbers
-if lua_version > 5 || (lua_version == 5 && lua_subversion >= 1)
- syn match luaNumber "\<0x\x\+\>"
+if lua_version >= 5
+ if lua_subversion == 1
+ syn match luaNumber "\<0[xX]\x\+\>"
+ elseif lua_subversion >= 2
+ syn match luaNumber "\<0[xX][[:xdigit:].]\+\%([pP][-+]\=\d\+\)\=\>"
+ endif
endif
" tables
-syn region luaTableBlock transparent matchgroup=luaTable start="{" end="}" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaCondStart,luaBlock,luaRepeatBlock,luaRepeat,luaStatement
+syn region luaTableBlock transparent matchgroup=luaTable start="{" end="}" contains=TOP,luaStatement
syn keyword luaFunc assert collectgarbage dofile error next
syn keyword luaFunc print rawget rawset tonumber tostring type _VERSION
@@ -144,127 +155,170 @@ if lua_version == 4
syn keyword luaFunc format strfind gsub
syn keyword luaFunc getinfo getlocal setlocal setcallhook setlinehook
elseif lua_version == 5
- " Not sure if all these functions need to be highlighted...
- syn keyword luaFunc _G getfenv getmetatable ipairs loadfile
- syn keyword luaFunc loadstring pairs pcall rawequal
- syn keyword luaFunc require setfenv setmetatable unpack xpcall
+ syn keyword luaFunc getmetatable setmetatable
+ syn keyword luaFunc ipairs pairs
+ syn keyword luaFunc pcall xpcall
+ syn keyword luaFunc _G loadfile rawequal require
if lua_subversion == 0
+ syn keyword luaFunc getfenv setfenv
+ syn keyword luaFunc loadstring unpack
syn keyword luaFunc gcinfo loadlib LUA_PATH _LOADED _REQUIREDNAME
- elseif lua_subversion == 1
- syn keyword luaFunc load module select
- syn match luaFunc /package\.cpath/
- syn match luaFunc /package\.loaded/
- syn match luaFunc /package\.loadlib/
- syn match luaFunc /package\.path/
- syn match luaFunc /package\.preload/
- syn match luaFunc /package\.seeall/
- syn match luaFunc /coroutine\.running/
+ else
+ syn keyword luaFunc load select
+ syn match luaFunc /\<package\.cpath\>/
+ syn match luaFunc /\<package\.loaded\>/
+ syn match luaFunc /\<package\.loadlib\>/
+ syn match luaFunc /\<package\.path\>/
+ if lua_subversion == 1
+ syn keyword luaFunc getfenv setfenv
+ syn keyword luaFunc loadstring module unpack
+ syn match luaFunc /\<package\.loaders\>/
+ syn match luaFunc /\<package\.preload\>/
+ syn match luaFunc /\<package\.seeall\>/
+ elseif lua_subversion == 2
+ syn keyword luaFunc _ENV rawlen
+ syn match luaFunc /\<package\.config\>/
+ syn match luaFunc /\<package\.preload\>/
+ syn match luaFunc /\<package\.searchers\>/
+ syn match luaFunc /\<package\.searchpath\>/
+ syn match luaFunc /\<bit32\.arshift\>/
+ syn match luaFunc /\<bit32\.band\>/
+ syn match luaFunc /\<bit32\.bnot\>/
+ syn match luaFunc /\<bit32\.bor\>/
+ syn match luaFunc /\<bit32\.btest\>/
+ syn match luaFunc /\<bit32\.bxor\>/
+ syn match luaFunc /\<bit32\.extract\>/
+ syn match luaFunc /\<bit32\.lrotate\>/
+ syn match luaFunc /\<bit32\.lshift\>/
+ syn match luaFunc /\<bit32\.replace\>/
+ syn match luaFunc /\<bit32\.rrotate\>/
+ syn match luaFunc /\<bit32\.rshift\>/
+ endif
+ syn match luaFunc /\<coroutine\.running\>/
endif
- syn match luaFunc /coroutine\.create/
- syn match luaFunc /coroutine\.resume/
- syn match luaFunc /coroutine\.status/
- syn match luaFunc /coroutine\.wrap/
- syn match luaFunc /coroutine\.yield/
- syn match luaFunc /string\.byte/
- syn match luaFunc /string\.char/
- syn match luaFunc /string\.dump/
- syn match luaFunc /string\.find/
- syn match luaFunc /string\.len/
- syn match luaFunc /string\.lower/
- syn match luaFunc /string\.rep/
- syn match luaFunc /string\.sub/
- syn match luaFunc /string\.upper/
- syn match luaFunc /string\.format/
- syn match luaFunc /string\.gsub/
+ syn match luaFunc /\<coroutine\.create\>/
+ syn match luaFunc /\<coroutine\.resume\>/
+ syn match luaFunc /\<coroutine\.status\>/
+ syn match luaFunc /\<coroutine\.wrap\>/
+ syn match luaFunc /\<coroutine\.yield\>/
+ syn match luaFunc /\<string\.byte\>/
+ syn match luaFunc /\<string\.char\>/
+ syn match luaFunc /\<string\.dump\>/
+ syn match luaFunc /\<string\.find\>/
+ syn match luaFunc /\<string\.format\>/
+ syn match luaFunc /\<string\.gsub\>/
+ syn match luaFunc /\<string\.len\>/
+ syn match luaFunc /\<string\.lower\>/
+ syn match luaFunc /\<string\.rep\>/
+ syn match luaFunc /\<string\.sub\>/
+ syn match luaFunc /\<string\.upper\>/
if lua_subversion == 0
- syn match luaFunc /string\.gfind/
- syn match luaFunc /table\.getn/
- syn match luaFunc /table\.setn/
- syn match luaFunc /table\.foreach/
- syn match luaFunc /table\.foreachi/
- elseif lua_subversion == 1
- syn match luaFunc /string\.gmatch/
- syn match luaFunc /string\.match/
- syn match luaFunc /string\.reverse/
- syn match luaFunc /table\.maxn/
+ syn match luaFunc /\<string\.gfind\>/
+ else
+ syn match luaFunc /\<string\.gmatch\>/
+ syn match luaFunc /\<string\.match\>/
+ syn match luaFunc /\<string\.reverse\>/
endif
- syn match luaFunc /table\.concat/
- syn match luaFunc /table\.sort/
- syn match luaFunc /table\.insert/
- syn match luaFunc /table\.remove/
- syn match luaFunc /math\.abs/
- syn match luaFunc /math\.acos/
- syn match luaFunc /math\.asin/
- syn match luaFunc /math\.atan/
- syn match luaFunc /math\.atan2/
- syn match luaFunc /math\.ceil/
- syn match luaFunc /math\.sin/
- syn match luaFunc /math\.cos/
- syn match luaFunc /math\.tan/
- syn match luaFunc /math\.deg/
- syn match luaFunc /math\.exp/
- syn match luaFunc /math\.floor/
- syn match luaFunc /math\.log/
- syn match luaFunc /math\.log10/
- syn match luaFunc /math\.max/
- syn match luaFunc /math\.min/
if lua_subversion == 0
- syn match luaFunc /math\.mod/
+ syn match luaFunc /\<table\.getn\>/
+ syn match luaFunc /\<table\.setn\>/
+ syn match luaFunc /\<table\.foreach\>/
+ syn match luaFunc /\<table\.foreachi\>/
elseif lua_subversion == 1
- syn match luaFunc /math\.fmod/
- syn match luaFunc /math\.modf/
- syn match luaFunc /math\.cosh/
- syn match luaFunc /math\.sinh/
- syn match luaFunc /math\.tanh/
+ syn match luaFunc /\<table\.maxn\>/
+ elseif lua_subversion == 2
+ syn match luaFunc /\<table\.pack\>/
+ syn match luaFunc /\<table\.unpack\>/
+ endif
+ syn match luaFunc /\<table\.concat\>/
+ syn match luaFunc /\<table\.sort\>/
+ syn match luaFunc /\<table\.insert\>/
+ syn match