home *** CD-ROM | disk | FTP | other *** search
/ vim.ftp.fu-berlin.de / 2015-02-03.vim.ftp.fu-berlin.de.tar / vim.ftp.fu-berlin.de / unix / vim-6.2.tar.bz2 / vim-6.2.tar / vim62 / runtime / syntax / lua.vim < prev    next >
Encoding:
Text File  |  2003-05-04  |  9.8 KB  |  257 lines

  1. " Vim syntax file
  2. " Language:    Lua 4.0 and Lua 5.0
  3. " Maintainer:    Marcus Aurelius Farias <marcuscf@vant.com.br>
  4. " First Author:    Carlos Augusto Teixeira Mendes <cmendes@inf.puc-rio.br>
  5. " Last Change:    2003 May 04
  6. " Options:    lua_version = 4 or 5 [default]
  7. "
  8. " Still has some syncing problems (long [[strings]])...
  9.  
  10. " For version 5.x: Clear all syntax items
  11. " For version 6.x: Quit when a syntax file was already loaded
  12. if version < 600
  13.   syntax clear
  14. elseif exists("b:current_syntax")
  15.   finish
  16. endif
  17.  
  18. if !exists("lua_version")
  19.   let lua_version = 5
  20. endif
  21.  
  22. syn case match
  23.  
  24. " Comments
  25. syn keyword luaTodo        contained TODO FIXME XXX
  26. syn match   luaComment        "--.*$" contains=luaTodo
  27. if lua_version > 4
  28.   syn region  luaComment    matchgroup=luaComment start="--\[\[" end="\]\]" contains=luaTodo,luaInnerComment
  29.   syn region  luaInnerComment    contained transparent start="\[\[" end="\]\]"
  30. endif
  31. " First line may start with #!
  32. syn match   luaComment        "\%^#!.*"
  33.  
  34. " catch errors caused by wrong parenthesis and wrong curly brackets or
  35. " keywords placed outside their respective blocks
  36.  
  37. syn region  luaParen        transparent start='(' end=')' contains=ALLBUT,luaError,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaCondStart,luaBlock,luaRepeatBlock,luaRepeat,luaStatement
  38. syn match   luaError        ")"
  39. syn match   luaError        "}"
  40. syn match   luaError        "\<\(end\|else\|elseif\|then\|until\|in\)\>"
  41.  
  42.  
  43. " Function declaration
  44. syn region  luaFunctionBlock    transparent matchgroup=luaFunction start="\<function\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat
  45.  
  46. " if then else elseif end
  47. syn keyword luaCond        contained else
  48.  
  49. " then ... end
  50. syn region  luaCondEnd        contained transparent matchgroup=luaCond start="\<then\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaRepeat
  51.  
  52. " elseif ... then
  53. syn region  luaCondElseif    contained transparent matchgroup=luaCond start="\<elseif\>" end="\<then\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat
  54.  
  55. " if ... then
  56. 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
  57.  
  58. " do ... end
  59. syn region  luaBlock        transparent matchgroup=luaStatement start="\<do\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat
  60.  
  61. " repeat ... until
  62. syn region  luaRepeatBlock    transparent matchgroup=luaRepeat start="\<repeat\>" end="\<until\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat
  63.  
  64. " while ... do
  65. 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
  66.  
  67. " for ... do and for ... in ... do
  68. syn region luaRepeatBlock    transparent matchgroup=luaRepeat start="\<for\>" end="\<do\>"me=e-2 contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd nextgroup=luaBlock skipwhite skipempty
  69.  
  70. " Following 'else' example. This is another item to those
  71. " contains=ALLBUT,... because only the 'for' luaRepeatBlock contains it.
  72. syn keyword luaRepeat        contained in
  73.  
  74. " other keywords
  75. syn keyword luaStatement    return local break
  76. syn keyword luaOperator        and or not
  77. syn keyword luaConstant        nil
  78. if lua_version > 4
  79.   syn keyword luaConstant    true false
  80. endif
  81.  
  82. " Pre processor doesn't exist since Lua 4.0
  83. " syn match   luaPreProc      "^\s*$\(debug\|nodebug\|if\|ifnot\|end\|else\|endinput\)\>"
  84.  
  85. " Strings
  86. syn match   luaSpecial        contained "\\[\\abfnrtv\'\"[\]]\|\\\d\{,3}"
  87. syn region  luaString        start=+'+  end=+'+ skip=+\\\\\|\\'+ contains=luaSpecial
  88. syn region  luaString        start=+"+  end=+"+ skip=+\\\\\|\\"+ contains=luaSpecial
  89. " Nested strings
  90. syn region  luaString2        matchgroup=luaString start=+\[\[+ end=+\]\]+ contains=luaString2
  91.  
  92. " integer number
  93. syn match luaNumber        "\<[0-9]\+\>"
  94. " floating point number, with dot, optional exponent
  95. syn match luaFloat        "\<[0-9]\+\.[0-9]*\(e[-+]\=[0-9]\+\)\=\>"
  96. " floating point number, starting with a dot, optional exponent
  97. syn match luaFloat        "\.[0-9]\+\(e[-+]\=[0-9]\+\)\=\>"
  98. " floating point number, without dot, with exponent
  99. syn match luaFloat        "\<[0-9]\+e[-+]\=[0-9]\+\>"
  100.  
  101. " tables
  102. syn region  luaTableBlock       transparent matchgroup=luaTable start="{" end="}" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaCondStart,luaBlock,luaRepeatBlock,luaRepeat,luaStatement
  103.  
  104. syn keyword luaFunc    assert collectgarbage dofile error gcinfo next
  105. syn keyword luaFunc    print rawget rawset tonumber tostring type _VERSION
  106.  
  107. if lua_version == 4
  108.   syn keyword luaFunc    _ALERT _ERRORMESSAGE
  109.   syn keyword luaFunc    call copytagmethods dostring
  110.   syn keyword luaFunc    foreach foreachi getglobal getn
  111.   syn keyword luaFunc    gettagmethod globals newtag
  112.   syn keyword luaFunc    setglobal settag settagmethod sort
  113.   syn keyword luaFunc    tag tinsert tremove
  114.   syn keyword luaFunc    _INPUT _OUTPUT _STDIN _STDOUT _STDERR
  115.   syn keyword luaFunc    openfile closefile flush seek
  116.   syn keyword luaFunc    setlocale execute remove rename tmpname
  117.   syn keyword luaFunc    getenv date clock exit
  118.   syn keyword luaFunc    readfrom writeto appendto read write
  119.   syn keyword luaFunc    PI abs sin cos tan asin
  120.   syn keyword luaFunc    acos atan atan2 ceil floor
  121.   syn keyword luaFunc    mod frexp ldexp sqrt min max log
  122.   syn keyword luaFunc    log10 exp deg rad random
  123.   syn keyword luaFunc    randomseed strlen strsub strlower strupper
  124.   syn keyword luaFunc    strchar strrep ascii strbyte
  125.   syn keyword luaFunc    format strfind gsub
  126.   syn keyword luaFunc    getinfo getlocal setlocal setcallhook setlinehook
  127. else
  128.   syn keyword luaFunc    _G getfenv getmetatable ipairs loadfile
  129.   syn keyword luaFunc    loadlib loadstring pairs pcall rawequal
  130.   syn keyword luaFunc    require setfenv setmetatable unpack xpcall
  131.   syn keyword luaFunc    LUA_PATH _LOADED _REQUIREDNAME
  132. " Not sure if all these functions need to be highlighted...
  133.   syn match   luaFunc    /coroutine\.create/
  134.   syn match   luaFunc    /coroutine\.resume/
  135.   syn match   luaFunc    /coroutine\.status/
  136.   syn match   luaFunc    /coroutine\.wrap/
  137.   syn match   luaFunc    /coroutine\.yield/
  138.   syn match   luaFunc    /string\.byte/
  139.   syn match   luaFunc    /string\.char/
  140.   syn match   luaFunc    /string\.dump/
  141.   syn match   luaFunc    /string\.find/
  142.   syn match   luaFunc    /string\.len/
  143.   syn match   luaFunc    /string\.lower/
  144.   syn match   luaFunc    /string\.rep/
  145.   syn match   luaFunc    /string\.sub/
  146.   syn match   luaFunc    /string\.upper/
  147.   syn match   luaFunc    /string\.format/
  148.   syn match   luaFunc    /string\.gfind/
  149.   syn match   luaFunc    /string\.gsub/
  150.   syn match   luaFunc    /table\.concat/
  151.   syn match   luaFunc    /table\.foreach/
  152.   syn match   luaFunc    /table\.foreachi/
  153.   syn match   luaFunc    /table\.getn/
  154.   syn match   luaFunc    /table\.sort/
  155.   syn match   luaFunc    /table\.insert/
  156.   syn match   luaFunc    /table\.remove/
  157.   syn match   luaFunc    /table\.setn/
  158.   syn match   luaFunc    /math\.abs/
  159.   syn match   luaFunc    /math\.acos/
  160.   syn match   luaFunc    /math\.asin/
  161.   syn match   luaFunc    /math\.atan/
  162.   syn match   luaFunc    /math\.atan2/
  163.   syn match   luaFunc    /math\.ceil/
  164.   syn match   luaFunc    /math\.cos/
  165.   syn match   luaFunc    /math\.deg/
  166.   syn match   luaFunc    /math\.exp/
  167.   syn match   luaFunc    /math\.floor/
  168.   syn match   luaFunc    /math\.log/
  169.   syn match   luaFunc    /math\.log10/
  170.   syn match   luaFunc    /math\.max/
  171.   syn match   luaFunc    /math\.min/
  172.   syn match   luaFunc    /math\.mod/
  173.   syn match   luaFunc    /math\.pow/
  174.   syn match   luaFunc    /math\.rad/
  175.   syn match   luaFunc    /math\.sin/
  176.   syn match   luaFunc    /math\.sqrt/
  177.   syn match   luaFunc    /math\.tan/
  178.   syn match   luaFunc    /math\.frexp/
  179.   syn match   luaFunc    /math\.ldexp/
  180.   syn match   luaFunc    /math\.random/
  181.   syn match   luaFunc    /math\.randomseed/
  182.   syn match   luaFunc    /math\.pi/
  183.   syn match   luaFunc    /io\.stdin/
  184.   syn match   luaFunc    /io\.stdout/
  185.   syn match   luaFunc    /io\.stderr/
  186.   syn match   luaFunc    /io\.close/
  187.   syn match   luaFunc    /io\.flush/
  188.   syn match   luaFunc    /io\.input/
  189.   syn match   luaFunc    /io\.lines/
  190.   syn match   luaFunc    /io\.open/
  191.   syn match   luaFunc    /io\.output/
  192.   syn match   luaFunc    /io\.popen/
  193.   syn match   luaFunc    /io\.read/
  194.   syn match   luaFunc    /io\.tmpfile/
  195.   syn match   luaFunc    /io\.type/
  196.   syn match   luaFunc    /io\.write/
  197.   syn match   luaFunc    /os\.clock/
  198.   syn match   luaFunc    /os\.date/
  199.   syn match   luaFunc    /os\.difftime/
  200.   syn match   luaFunc    /os\.execute/
  201.   syn match   luaFunc    /os\.exit/
  202.   syn match   luaFunc    /os\.getenv/
  203.   syn match   luaFunc    /os\.remove/
  204.   syn match   luaFunc    /os\.rename/
  205.   syn match   luaFunc    /os\.setlocale/
  206.   syn match   luaFunc    /os\.time/
  207.   syn match   luaFunc    /os\.tmpname/
  208.   syn match   luaFunc    /debug\.debug/
  209.   syn match   luaFunc    /debug\.gethook/
  210.   syn match   luaFunc    /debug\.getinfo/
  211.   syn match   luaFunc    /debug\.getlocal/
  212.   syn match   luaFunc    /debug\.getupvalue/
  213.   syn match   luaFunc    /debug\.setlocal/
  214.   syn match   luaFunc    /debug\.setupvalue/
  215.   syn match   luaFunc    /debug\.sethook/
  216.   syn match   luaFunc    /debug\.traceback/
  217. endif
  218.  
  219. "syncing method
  220. syn sync minlines=100
  221.  
  222. " Define the default highlighting.
  223. " For version 5.7 and earlier: only when not done already
  224. " For version 5.8 and later: only when an item doesn't have highlighting yet
  225. if version >= 508 || !exists("did_lua_syntax_inits")
  226.   if version < 508
  227.     let did_lua_syntax_inits = 1
  228.     command -nargs=+ HiLink hi link <args>
  229.   else
  230.     command -nargs=+ HiLink hi def link <args>
  231.   endif
  232.  
  233.   HiLink luaStatement        Statement
  234.   HiLink luaRepeat        Repeat
  235.   HiLink luaString        String
  236.   HiLink luaString2        String
  237.   HiLink luaNumber        Number
  238.   HiLink luaFloat        Float
  239.   HiLink luaOperator        Operator
  240.   HiLink luaConstant        Constant
  241.   HiLink luaCond        Conditional
  242.   HiLink luaFunction        Function
  243.   HiLink luaComment        Comment
  244.   HiLink luaTodo        Todo
  245.   HiLink luaTable        Structure
  246.   HiLink luaError        Error
  247.   HiLink luaSpecial        SpecialChar
  248.   " HiLink luaPreProc        PreProc
  249.   HiLink luaFunc        Identifier
  250.  
  251.   delcommand HiLink
  252. endif
  253.  
  254. let b:current_syntax = "lua"
  255.  
  256. " vim: noet ts=8
  257.