home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 February / OpenLinux 2.3 CD.iso / live / usr / share / vim / syntax / java.vim < prev    next >
Encoding:
Text File  |  1999-08-10  |  10.3 KB  |  224 lines

  1. " Vim syntax file
  2. " Language:    Java
  3. " Maintainer:    Claudio Fleiner <claudio@fleiner.com>
  4. " URL:        http://www.fleiner.com/vim/syntax/java.vim
  5. " Last change:    1998 Jul 22
  6.  
  7. " Please check :help java.vim for comments on some of the options available.
  8.  
  9. " Remove any old syntax stuff hanging around
  10. syn clear
  11.  
  12. " some characters that cannot be in a java program (outside a string)
  13. syn match javaError "[\\@`]"
  14. syn match javaError "<<<\|\.\.\|=>\|<>\|||=\|&&=\|[^-]->\|\*\/"
  15.  
  16. " use separte name so that it can be deleted in javacc.vim
  17. syn match javaError2 "#\|=<"
  18. hi link javaError2 javaError
  19.  
  20. " we define it here so that included files can test for it
  21. if !exists("main_syntax")
  22.   let main_syntax='java'
  23. endif
  24.  
  25.  
  26. " keyword definitions
  27. syn keyword javaExternal        import native package
  28. syn keyword javaBranch          break continue
  29. syn keyword javaError           goto 
  30. syn keyword javaConditional     if else switch
  31. syn keyword javaRepeat          while for do 
  32. syn keyword javaBoolean         true false
  33. syn keyword javaConstant        null
  34. syn keyword javaTypedef         this super
  35. syn keyword javaOperator        new instanceof
  36. syn keyword javaType            boolean char byte short int long float double
  37. syn keyword javaType            void
  38. syn keyword javaStatement       return
  39. syn keyword javaStorageClass    static synchronized transient volatile final
  40. syn keyword javaExceptions      throw try catch finally
  41. syn keyword javaMethodDecl      synchronized throws
  42. syn keyword javaClassDecl       extends implements interface
  43. " to differentiate the keyword class from MyClass.class we use a match here
  44. syn match   javaTypedef         "class"
  45. syn match   javaClassDecl       "^class\>"
  46. syn match   javaClassDecl       "[^.]\s*\<class\>"ms=s+1
  47. syn keyword javaScopeDecl       public protected private abstract
  48.  
  49. syn region  javaLabelRegion     transparent matchgroup=javaLabel start="case" matchgroup=NONE end=":" contains=javaNumber
  50. syn match   javaUserLabel       "^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=javaLabel
  51. syn keyword javaLabel           default
  52.  
  53. if !exists("java_allow_cpp_keywords")
  54.   syn keyword javaError auto const delete enum extern friend inline redeclared
  55.   syn keyword javaError register signed sizeof struct template typedef union
  56.   syn keyword javaError unsigned operator
  57. endif
  58.  
  59. " The following cluster contains all java groups except the contained ones
  60. syn cluster javaTop contains=javaExternal,javaError,javaError,javaBranch,javaLabelRegion,javaLabel,javaConditional,javaRepeat,javaBoolean,javaConstant,javaTypedef,javaOperator,javaType,javaType,javaStatement,javaStorageClass,javaExceptions,javaMethodDecl,javaClassDecl,javaClassDecl,javaClassDecl,javaScopeDecl,javaError,javaError2,javaUserLabel
  61.  
  62. " Comments
  63. syn region  javaCommentString    contained start=+"+  skip=+\\\\\|\\"+  end=+"+ end=+\*/+me=s-1,he=s-1 contains=javaSpecial,javaCommentStar
  64. syn region  javaComment2String   contained start=+"+  skip=+\\\\\|\\"+  end=+$\|"+  contains=javaSpecial
  65. syn match   javaCommentCharacter contained "'\\[^']\{1,6\}'" contains=javaSpecialChar
  66. syn match   javaCommentCharacter contained "'\\''" contains=javaSpecialChar
  67. syn match   javaCommentCharacter contained "'[^\\]'"
  68. syn region  javaComment          start="/\*"  end="\*/" contains=javaCommentString,javaCommentCharacter,javaNumber
  69. syn match   javaCommentStar contained "^\s*\*[^/]"me=e-1
  70. syn match   javaCommentStar contained "^\s*\*$"
  71. syn match   javaLineComment      "//.*" contains=javaComment2String,javaCommentCharacter,javaNumber
  72. hi link javaCommentString javaString
  73. hi link javaComment2String javaString
  74. hi link javaCommentCharacter javaCharacter
  75.  
  76. syn cluster javaTop add=javaComment,javaLineComment
  77.  
  78. if !exists("java_ignore_javadoc") 
  79.   syntax case ignore
  80.   " syntax coloring for javadoc comments (HTML)
  81.   syntax include @javaHtml <sfile>:p:h/html.vim
  82.   syn region  javaComment       start="/\*\*"  end="\*/" keepend contains=javaCommentTitle,@javaHtml,javaDocTags
  83.   syn region  javaCommentTitle  contained matchgroup=javaComment start="/\*\*"   matchgroup=javaCommentTitle keepend end="\.$" end="\.[ \t\r<&]"me=e-1 end="@"me=s-1,he=s-1 end="\*/"me=s-1,he=s-1 contains=@javaHtml,javaCommentStar
  84.   
  85.   syn region javaDocTags contained start="{@link" end="}"
  86.   syn match javaDocTags contained "@\(see\|param\|exception\)\s\+\S\+" contains=javaDocParam
  87.   syn match javaDocParam contained "\s\S\+"
  88.   syn match javaDocTags contained "@\(version\|author\|return\|deprecated\|since\)\>"
  89.   syntax case match
  90. endif
  91.  
  92. " match the special comment /**/
  93. syn match   javaComment          "/\*\*/"
  94.  
  95. " Strings and constants
  96. syn match   javaSpecialError     contained "\\."
  97. syn match   javaSpecialCharError contained "[^']"
  98. syn match   javaSpecialChar      contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\)"
  99. syn region  javaString           start=+"+  skip=+\\\\\|\\"+  end=+"+  contains=javaSpecialChar,javaSpecialError
  100. syn match   javaCharacter        "'[^']*'" contains=javaSpecialChar,javaSpecialCharError
  101. syn match   javaCharacter        "'\\''" contains=javaSpecialChar
  102. syn match   javaCharacter        "'[^\\]'"
  103. syn match   javaNumber           "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
  104. syn match   javaNumber           "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
  105. syn match   javaNumber           "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
  106. syn match   javaNumber           "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
  107.  
  108. " unicode characters
  109. syn match   javaSpecial "\\u\d\{4\}"
  110.  
  111. syn cluster javaTop add=javaString,javaCharacter,javaNumber,javaSpecial
  112.  
  113. if exists("java_highlight_functions")
  114.   syn match  javaFuncDef "^\(\t\| \{8\}\)[_$a-zA-Z][_$a-zA-Z0-9_. \[\]]*([^-+*/()]*)" contains=javaScopeDecl,javaType,javaStorageClass
  115.   syn region javaFuncDef start=+^\(\t\| \{8\}\)[$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+ end=+)+ contains=javaScopeDecl,javaType,javaStorageClass
  116.   syn match  javaFuncDef "^  [$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*)" contains=javaScopeDecl,javaType,javaStorageClass
  117.   syn region javaFuncDef start=+^  [$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+ end=+)+ contains=javaScopeDecl,javaType,javaStorageClass
  118.   syn match  javaBraces  "[{}]"
  119.   syn cluster javaTop add=javaFuncDef,javaBraces
  120. endif
  121.  
  122. if exists("java_highlight_debug")
  123.  
  124.   " Strings and constants
  125.   syn match   javaDebugSpecial          contained "\\\d\d\d\|\\."
  126.   syn region  javaDebugString           contained start=+"+  skip=+\\\\\|\\"+  end=+"+  contains=javaDebugSpecial
  127.   syn match   javaDebugCharacter        contained "'[^\\]'"
  128.   syn match   javaDebugSpecialCharacter contained "'\\.'"
  129.   syn match   javaDebugSpecialCharacter contained "'\\''"
  130.   syn match   javaDebugNumber           contained "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
  131.   syn match   javaDebugNumber           contained "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
  132.   syn match   javaDebugNumber           contained "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
  133.   syn match   javaDebugNumber           contained "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
  134.   syn keyword javaDebugBoolean          contained true false
  135.   syn keyword javaDebugType             contained null this super
  136.  
  137.   " to make this work you must define the highlighting for these groups
  138.   syn region javaDebug start="System\.\(out\|err\)\.print\(ln\)*\s*" end=";" contains=javaDebug.*
  139.   syn region javaDebug  start="trace[SL]\=[ \t]*(" end=";" contains=javaDebug.*
  140.  
  141.   syn cluster javaTop add=javaDebug
  142.  
  143.   hi link javaDebug                 Debug
  144.   hi link javaDebugString           DebugString
  145.   hi link javaDebugType             DebugType
  146.   hi link javaDebugBoolean          DebugBoolean
  147.   hi link javaDebugNumber           Debug
  148.   hi link javaDebugSpecial          DebugSpecial
  149.   hi link javaDebugSpecialCharacter DebugSpecial
  150.   hi link javaDebugCharacter        DebugString
  151.  
  152.   hi link DebugString               String
  153.   hi link DebugSpecial              Special
  154.   hi link DebugBoolean              Boolean
  155.   hi link DebugType                 Type
  156. endif
  157.  
  158. if exists("java_mark_braces_in_parens_as_errors")
  159.   syn match javaInParen          contained "[{}]"
  160.   hi link   javaInParen          javaError
  161.   syn cluster javaTop add=javaInParen
  162. endif
  163.  
  164. " catch errors caused by wrong parenthesis
  165. syn region  javaParen            transparent start="(" end=")" contains=@javaTop,javaParen
  166. syn match   javaParenError       ")"
  167. hi link     javaParenError       javaError
  168.  
  169. if !exists("java_minlines")
  170.   let java_minlines = 10
  171. endif
  172. exec "syn sync ccomment javaComment minlines=" . java_minlines
  173.  
  174. if !exists("did_java_syntax_inits")
  175.   let did_java_syntax_inits = 1
  176.   " The default methods for highlighting.  Can be overridden later
  177.   hi link javaFuncDef                       Function
  178.   hi link javaBraces                        Function
  179.   hi link javaBranch                        Conditional
  180.   hi link javaLabel                         Label
  181.   hi link javaUserLabel                     Label
  182.   hi link javaConditional                   Conditional
  183.   hi link javaRepeat                        Repeat
  184.   hi link javaExceptions                    Exception
  185.   hi link javaStorageClass                  StorageClass
  186.   hi link javaMethodDecl                    javaStorageClass
  187.   hi link javaClassDecl                     javaStorageClass
  188.   hi link javaScopeDecl                     javaStorageClass
  189.   hi link javaBoolean                       Boolean
  190.   hi link javaSpecial                       Special
  191.   hi link javaSpecialError                  Error
  192.   hi link javaSpecialCharError              Error
  193.   hi link javaString                        String
  194.   hi link javaCharacter                     Character
  195.   hi link javaSpecialChar            SpecialChar
  196.   hi link javaNumber                        Number
  197.   hi link javaError                         Error
  198.   hi link javaStatement                     Statement
  199.   hi link javaOperator                      Operator
  200.   hi link javaComment                       Comment
  201.   hi link javaLineComment                   Comment
  202.   hi link javaConstant                javaBoolean
  203.   hi link javaTypedef                Typedef
  204.  
  205.   hi link javaCommentTitle                  SpecialComment
  206.   hi link javaDocTags                Special
  207.   hi link javaDocParam                Function
  208.   hi link javaCommentStar                   javaComment
  209.  
  210.   hi link javaType                          Type
  211.   hi link javaExternal                      Include
  212.  
  213.   hi link htmlComment                       Special
  214.   hi link htmlCommentPart                   Special
  215. endif
  216.  
  217. let b:current_syntax = "java"
  218.  
  219. if main_syntax == 'java'
  220.   unlet main_syntax
  221. endif
  222.  
  223. " vim: ts=8
  224.