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 / runtime / dos / syntax / fan.vim < prev    next >
Encoding:
Text File  |  2010-08-15  |  5.4 KB  |  133 lines

  1. " Vim syntax file
  2. " Language:     Fantom
  3. " Maintainer:   Kamil Toman <kamil.toman@gmail.com>
  4. " Last Change:  2010 May 27
  5. " Based on Java syntax file by Claudio Fleiner <claudio@fleiner.com>
  6.  
  7. " Quit when a syntax file was already loaded
  8. if exists("b:current_syntax")
  9.   finish
  10. endif
  11.  
  12. " keyword definitions
  13. syn keyword fanExternal            using native
  14. syn keyword fanError        goto void serializable volatile
  15. syn keyword fanConditional    if else switch
  16. syn keyword fanRepeat        do while for foreach each
  17. syn keyword fanBoolean        true false
  18. syn keyword fanConstant     null
  19. syn keyword fanTypedef        this super
  20. syn keyword fanOperator            new is isnot as
  21. syn keyword fanLongOperator     plus minus mult div mod get set slice lshift rshift and or xor inverse negate increment decrement equals compare
  22. syn keyword fanType        Void Bool Int Float Decimal Str Duration Uri Type Range List Map Obj
  23. syn keyword fanStatement    return
  24. syn keyword fanStorageClass    static const final
  25. syn keyword fanSlot          virtual override once
  26. syn keyword fanField          readonly
  27. syn keyword fanExceptions    throw try catch finally
  28. syn keyword fanAssert        assert
  29. syn keyword fanTypedef        class enum mixin
  30. syn match   fanFacet            "@[_a-zA-Z][_a-zA-Z0-9_]*\>"
  31. syn keyword fanBranch        break continue
  32. syn keyword fanScopeDecl    public internal protected private abstract
  33.  
  34. if exists("fan_space_errors")
  35.   if !exists("fan_no_trail_space_error")
  36.     syn match   fanSpaceError  "\s\+$"
  37.   endif
  38.   if !exists("fan_no_tab_space_error")
  39.     syn match   fanSpaceError  " \+\t"me=e-1
  40.   endif
  41. endif
  42.  
  43. syn region  fanLabelRegion     transparent matchgroup=fanLabel start="\<case\>" matchgroup=NONE end=":" contains=fanNumber,fanCharacter
  44. syn keyword fanLabel        default
  45. syn keyword fanLabel        case
  46.  
  47. " The following cluster contains all fan groups except the contained ones
  48. syn cluster fanTop add=fanExternal,fanError,fanConditional,fanRepeat,fanBoolean,fanConstant,fanTypedef,fanOperator,fanLongOperator,fanType,fanType,fanStatement,fanStorageClass,fanSlot,fanField,fanExceptions,fanAssert,fanClassDecl,fanTypedef,fanFacet,fanBranch,fanScopeDecl,fanLabelRegion,fanLabel
  49.  
  50. " Comments
  51. syn keyword fanTodo         contained TODO FIXME XXX
  52. syn region  fanComment         start="/\*"  end="\*/" contains=@fanCommentSpecial,fanTodo,fanComment,@Spell
  53. syn match   fanCommentStar      contained "^\s*\*[^/]"me=e-1
  54. syn match   fanCommentStar      contained "^\s*\*$"
  55. syn match   fanLineComment      "//.*" contains=@fanCommentSpecial2,fanTodo,@Spell
  56. syn match   fanDocComment       "\*\*.*" contains=@fanCommentSpecial2,fanTodo,@Spell
  57. hi def link fanCommentString fanString
  58. hi def link fanComment2String fanString
  59. hi def link fanCommentCharacter fanCharacter
  60.  
  61. syn cluster fanTop add=fanComment,fanLineComment,fanDocComment
  62.  
  63. " match the special comment /**/
  64. syn match   fanComment         "/\*\*/"
  65.  
  66. " Strings and constants
  67. syn match   fanSpecialError             contained "\\."
  68. syn match   fanSpecialCharError     contained "[^']"
  69. syn match   fanSpecialChar          contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\|\$\)"
  70. syn match   fanStringSubst          contained "\$[A-Za-z][A-Za-z_.]*"
  71. syn match   fanStringSubst          contained "\${[^}]*}"
  72. syn region  fanString        start=+"+ end=+"+ contains=fanSpecialChar,fanSpecialError,fanStringSubst,@Spell
  73. syn region  fanTripleString    start=+"""+ end=+"""+ contains=fanSpecialChar,fanSpecialError,fanStringSubst,@Spell
  74. syn region  fanDSL        start=+<|+ end=+|>+ 
  75. syn match   fanUri         "`[^`]*`"
  76. syn match   fanCharacter     "'[^']*'" contains=fanSpecialChar,fanSpecialCharError
  77. syn match   fanCharacter     "'\\''" contains=fanSpecialChar
  78. syn match   fanCharacter     "'[^\\]'"
  79. syn match   fanNumber         "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
  80. syn match   fanNumber         "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
  81. syn match   fanNumber         "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
  82. syn match   fanNumber         "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
  83.  
  84. syn cluster fanTop add=fanString,fanCharacter,fanNumber,fanSpecial,fanStringError
  85.  
  86. " The default highlighting.
  87. hi def link fanBranch            Conditional
  88. hi def link fanLabel            Label
  89. hi def link fanUserLabel        Label
  90. hi def link fanConditional        Conditional
  91. hi def link fanRepeat            Repeat
  92. hi def link fanExceptions        Exception
  93. hi def link fanAssert            Statement
  94. hi def link fanStorageClass        StorageClass
  95. hi def link fanSlot                StorageClass
  96. hi def link fanField                StorageClass
  97. hi def link fanScopeDecl        StorageClass
  98. hi def link fanBoolean        Boolean
  99. hi def link fanSpecial        Special
  100. hi def link fanSpecialError        Error
  101. hi def link fanSpecialCharError    Error
  102. hi def link fanTripleString        String
  103. hi def link fanString            String
  104. hi def link fanDSL            String
  105. hi def link fanCharacter        String
  106. hi def link fanStringSubst        Identifier
  107. hi def link fanUri            SpecialChar
  108. hi def link fanSpecialChar        SpecialChar
  109. hi def link fanNumber            Number
  110. hi def link fanError            Error
  111. hi def link fanStringError        Error
  112. hi def link fanStatement        Statement
  113. hi def link fanOperator        Operator
  114. hi def link fanLongOperator        Operator
  115. hi def link fanComment        Comment
  116. hi def link fanDocComment        Comment
  117. hi def link fanLineComment        Comment
  118. hi def link fanConstant        Constant
  119. hi def link fanTypedef        Typedef
  120. hi def link fanTodo            Todo
  121. hi def link fanFacet                  PreProc
  122.  
  123. hi def link fanCommentTitle        SpecialComment
  124. hi def link fanCommentStar        SpecialComment
  125. hi def link fanType            Identifier
  126. hi def link fanExternal        Include
  127.  
  128. hi def link fanSpaceError        Error
  129.  
  130. let b:current_syntax = "fan"
  131.  
  132. " vim: ts=8
  133.