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 / mac / vim54rt.sit / runtime / syntax / java.vim < prev    next >
Encoding:
Text File  |  1999-08-14  |  11.4 KB  |  239 lines  |  [TEXT/ALFA]

  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:    1999 June 24
  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         "\.\s*\<class\>"ms=s+1
  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 keyword javaTodo             contained TODO FIXME XXX
  64. syn region  javaCommentString    contained start=+"+ end=+"+ end=+\*/+me=s-1,he=s-1 contains=javaSpecial,javaCommentStar,javaSpecialChar
  65. syn region  javaComment2String   contained start=+"+  end=+$\|"+  contains=javaSpecial,javaSpecialChar
  66. syn match   javaCommentCharacter contained "'\\[^']\{1,6\}'" contains=javaSpecialChar
  67. syn match   javaCommentCharacter contained "'\\''" contains=javaSpecialChar
  68. syn match   javaCommentCharacter contained "'[^\\]'"
  69. syn region  javaComment          start="/\*"  end="\*/" contains=javaCommentString,javaCommentCharacter,javaNumber,javaTodo
  70. syn match   javaCommentStar      contained "^\s*\*[^/]"me=e-1
  71. syn match   javaCommentStar      contained "^\s*\*$"
  72. syn match   javaLineComment      "//.*" contains=javaComment2String,javaCommentCharacter,javaNumber,javaTodo
  73. hi link javaCommentString javaString
  74. hi link javaComment2String javaString
  75. hi link javaCommentCharacter javaCharacter
  76.  
  77. syn cluster javaTop add=javaComment,javaLineComment
  78.  
  79. if !exists("java_ignore_javadoc")
  80.   syntax case ignore
  81.   " syntax coloring for javadoc comments (HTML)
  82.   syntax include @javaHtml <sfile>:p:h/html.vim
  83.   syn region  javaDocComment    start="/\*\*"  end="\*/" keepend contains=javaCommentTitle,@javaHtml,javaDocTags,javaTodo
  84.   syn region  javaCommentTitle  contained matchgroup=javaDocComment 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,javaTodo
  85.  
  86.   syn region javaDocTags contained start="{@link" end="}"
  87.   syn match javaDocTags contained "@\(see\|param\|exception\|throws\)\s\+\S\+" contains=javaDocParam
  88.   syn match javaDocParam contained "\s\S\+"
  89.   syn match javaDocTags contained "@\(version\|author\|return\|deprecated\|since\)\>"
  90.   syntax case match
  91. endif
  92.  
  93. " match the special comment /**/
  94. syn match   javaComment          "/\*\*/"
  95.  
  96. " Strings and constants
  97. syn match   javaSpecialError     contained "\\."
  98. syn match   javaSpecialCharError contained "[^']"
  99. syn match   javaSpecialChar      contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\)"
  100. syn region  javaString           start=+"+ end=+"+  contains=javaSpecialChar,javaSpecialError
  101. syn match   javaStringError      +"\([^"\\]\|\\.\)*$+
  102. syn match   javaCharacter        "'[^']*'" contains=javaSpecialChar,javaSpecialCharError
  103. syn match   javaCharacter        "'\\''" contains=javaSpecialChar
  104. syn match   javaCharacter        "'[^\\]'"
  105. syn match   javaNumber           "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
  106. syn match   javaNumber           "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
  107. syn match   javaNumber           "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
  108. syn match   javaNumber           "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
  109.  
  110. " unicode characters
  111. syn match   javaSpecial "\\u\d\{4\}"
  112.  
  113. syn cluster javaTop add=javaString,javaCharacter,javaNumber,javaSpecial,javaStringError
  114.  
  115. if exists("java_highlight_functions")
  116.   if java_highlight_functions == "indent"
  117.     syn match  javaFuncDef "^\(\t\| \{8\}\)[_$a-zA-Z][_$a-zA-Z0-9_. \[\]]*([^-+*/()]*)" contains=javaScopeDecl,javaType,javaStorageClass
  118.     syn region javaFuncDef start=+^\(\t\| \{8\}\)[$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+ end=+)+ contains=javaScopeDecl,javaType,javaStorageClass
  119.     syn match  javaFuncDef "^  [$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*)" contains=javaScopeDecl,javaType,javaStorageClass
  120.     syn region javaFuncDef start=+^  [$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+ end=+)+ contains=javaScopeDecl,javaType,javaStorageClass
  121.   else
  122.     " This line catches method declarations at any indentation>0, but it assumes
  123.     " two things:
  124.     "   1. class names are always capitalized (ie: Button)
  125.     "   2. method names are never capitalized (except constructors, of course)
  126.     syn region javaFuncDef start=+^\s\+\(\(public\|protected\|private\|static\|abstract\|final\|native\|synchronized\)\s\+\)*\(\(void\|boolean\|char\|byte\|short\|int\|long\|float\|double\|\([A-Za-z_][A-Za-z0-9_$]*\.\)*[A-Z][A-Za-z0-9_$]*\)\(\[\]\)*\s\+[a-z][A-Za-z0-9_$]*\|[A-Z][A-Za-z0-9_$]*\)\s*(+ end=+)+ contains=javaScopeDecl,javaType,javaStorageClass,javaComment,javaLineComment
  127.   endif
  128.   syn match  javaBraces  "[{}]"
  129.   syn cluster javaTop add=javaFuncDef,javaBraces
  130. endif
  131.  
  132. if exists("java_highlight_debug")
  133.  
  134.   " Strings and constants
  135.   syn match   javaDebugSpecial          contained "\\\d\d\d\|\\."
  136.   syn region  javaDebugString           contained start=+"+  end=+"+  contains=javaDebugSpecial
  137.   syn match   javaDebugStringError      +"\([^"\\]\|\\.\)*$+
  138.   syn match   javaDebugCharacter        contained "'[^\\]'"
  139.   syn match   javaDebugSpecialCharacter contained "'\\.'"
  140.   syn match   javaDebugSpecialCharacter contained "'\\''"
  141.   syn match   javaDebugNumber           contained "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
  142.   syn match   javaDebugNumber           contained "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
  143.   syn match   javaDebugNumber           contained "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
  144.   syn match   javaDebugNumber           contained "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
  145.   syn keyword javaDebugBoolean          contained true false
  146.   syn keyword javaDebugType             contained null this super
  147.  
  148.   " to make this work you must define the highlighting for these groups
  149.   syn region javaDebug start="System\.\(out\|err\)\.print\(ln\)*\s*" end=";" contains=javaDebug.*
  150.   syn region javaDebug  start="trace[SL]\=[ \t]*(" end=";" contains=javaDebug.*
  151.  
  152.   syn cluster javaTop add=javaDebug
  153.  
  154.   hi link javaDebug                 Debug
  155.   hi link javaDebugString           DebugString
  156.   hi link javaDebugStringError      javaError
  157.   hi link javaDebugType             DebugType
  158.   hi link javaDebugBoolean          DebugBoolean
  159.   hi link javaDebugNumber           Debug
  160.   hi link javaDebugSpecial          DebugSpecial
  161.   hi link javaDebugSpecialCharacter DebugSpecial
  162.   hi link javaDebugCharacter        DebugString
  163.  
  164.   hi link DebugString               String
  165.   hi link DebugSpecial              Special
  166.   hi link DebugBoolean              Boolean
  167.   hi link DebugType                 Type
  168. endif
  169.  
  170. if exists("java_mark_braces_in_parens_as_errors")
  171.   syn match javaInParen          contained "[{}]"
  172.   hi link   javaInParen          javaError
  173.   syn cluster javaTop add=javaInParen
  174. endif
  175.  
  176. " catch errors caused by wrong parenthesis
  177. syn region  javaParen            transparent start="(" end=")" contains=@javaTop,javaParen
  178. syn match   javaParenError       ")"
  179. hi link     javaParenError       javaError
  180.  
  181. if !exists("java_minlines")
  182.   let java_minlines = 10
  183. endif
  184. exec "syn sync ccomment javaComment minlines=" . java_minlines
  185.  
  186. if !exists("did_java_syntax_inits")
  187.   let did_java_syntax_inits = 1
  188.   " The default methods for highlighting.  Can be overridden later
  189.   hi link javaFuncDef                       Function
  190.   hi link javaBraces                        Function
  191.   hi link javaBranch                        Conditional
  192.   hi link javaLabel                         Label
  193.   hi link javaUserLabel                     Label
  194.   hi link javaConditional                   Conditional
  195.   hi link javaRepeat                        Repeat
  196.   hi link javaExceptions                    Exception
  197.   hi link javaStorageClass                  StorageClass
  198.   hi link javaMethodDecl                    javaStorageClass
  199.   hi link javaClassDecl                     javaStorageClass
  200.   hi link javaScopeDecl                     javaStorageClass
  201.   hi link javaBoolean                       Boolean
  202.   hi link javaSpecial                       Special
  203.   hi link javaSpecialError                  Error
  204.   hi link javaSpecialCharError              Error
  205.   hi link javaString                        String
  206.   hi link javaCharacter                     Character
  207.   hi link javaSpecialChar            SpecialChar
  208.   hi link javaNumber                        Number
  209.   hi link javaError                         Error
  210.   hi link javaStringError                   Error
  211.   hi link javaStatement                     Statement
  212.   hi link javaOperator                      Operator
  213.   hi link javaComment                       Comment
  214.   hi link javaDocComment                    Comment
  215.   hi link javaLineComment                   Comment
  216.   hi link javaConstant                javaBoolean
  217.   hi link javaTypedef                Typedef
  218.   hi link javaTodo                          Todo
  219.  
  220.   hi link javaCommentTitle                  SpecialComment
  221.   hi link javaDocTags                Special
  222.   hi link javaDocParam                Function
  223.   hi link javaCommentStar                   javaComment
  224.  
  225.   hi link javaType                          Type
  226.   hi link javaExternal                      Include
  227.  
  228.   hi link htmlComment                       Special
  229.   hi link htmlCommentPart                   Special
  230. endif
  231.  
  232. let b:current_syntax = "java"
  233.  
  234. if main_syntax == 'java'
  235.   unlet main_syntax
  236. endif
  237.  
  238. " vim: ts=8
  239.