home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_vim.idb / usr / freeware / share / vim / syntax / java.vim.z / java.vim
Encoding:
Text File  |  1998-10-28  |  12.8 KB  |  257 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 Feb 6
  6.  
  7. " Note: In Java 1.0.2 it was never possible to have braces inside parens,
  8. " so this was flagged as an error. Now this is possible (with anonymous
  9. " classes), and therefore is no longer marked as an error. If you prefer
  10. " the old way, put the following line into your vim startup file:
  11. "     let java_mark_braces_in_parens_as_errors=1
  12.  
  13. " Functions are no longer highlighted, as the way to find functions depends
  14. " on how you write java code. To enable it again put the following line
  15. " in your startup file:
  16. "     let java_highlight_functions=1
  17. " This will only work if you either use two spaces for indentation or tabs.
  18.  
  19. " Remove any old syntax stuff hanging around
  20. syn clear
  21.  
  22. " some characters that cannot be in a java program (outside a string)
  23. syn match javaError "[\\@$`]"
  24. syn match javaError "<<<\|\.\.\|=>\|<>\|||=\|&&=\|->"
  25.  
  26. " use separte name so that it can be deleted in javacc.vim
  27. syn match javaError2 "#\|=<"
  28. hi link javaError2 javaError
  29.  
  30. " keyword definitions
  31. syn keyword javaExternal        import native package
  32. syn keyword javaError           cast const future generic goto inner outer rest
  33. syn keyword javaError           var byvalue operator
  34. syn keyword javaBranch          break continue
  35. syn keyword javaLabel           case default
  36. syn keyword javaConditional     if else switch
  37. syn keyword javaRepeat          while for do
  38. syn keyword javaBoolean         true false
  39. syn keyword javaConstant        null
  40. syn keyword javaTypedef         this super
  41. syn keyword javaOperator        new instanceof
  42. syn keyword javaType            boolean char byte short int long float double
  43. syn keyword javaType            void
  44. syn keyword javaStatement       return
  45. syn keyword javaStorageClass    static synchronized transient volatile final
  46. syn keyword javaExceptions      throw try catch finally
  47. syn keyword javaMethodDecl      synchronized throws
  48. syn keyword javaClassDecl       abstract extends implements interface
  49. " to differentiate the keyword class from MyClass.class we use a match here
  50. syn match   javaClassDecl       "^class\>"
  51. syn match   javaClassDecl       "[^.]\<class\>"ms=s+1
  52. syn keyword javaScopeDecl       public protected private
  53.  
  54. " Comments
  55. syn region  javaCommentString    contained start=+"+  skip=+\\\\\|\\"+  end=+"+ end=+\*/+me=s-1,he=s-1 contains=javaSpecial,javaCommentStar
  56. syn region  javaComment2String   contained start=+"+  skip=+\\\\\|\\"+  end=+$\|"+  contains=javaSpecial
  57. syn region  javaComment          start="/\*"  end="\*/" contains=javaCommentString,javaCharacter,javaNumber
  58. syn match   javaCommentStar contained "^\s*\*[^/]"me=e-1
  59. syn match   javaCommentStar contained "^\s*\*$"
  60. hi link javaCommentString javaString
  61. hi link javaComment2String javaString
  62. syn match   javaLineComment      "//.*" contains=javaComment2String,javaCharacter,javaNumber
  63.  
  64. if !exists("java_ignore_javadoc")
  65.   syn region  javaComment       start="/\*\*"  end="\*/" contains=javaCommentTitle,javaHtmlError,javaHtmlTag,javaHtmlEndTag,javaHtmlSpecialChar,javaHtmlComment,javaDocTags
  66.   syn region  javaCommentTitle  contained matchgroup=javaComment start="/\*\*"   matchgroup=javaCommentTitle end="\.$" end="\.[ \t\r<&]"me=e-1 end="@"me=s-1,he=s-1 end="\*/"me=s-1,he=s-1 contains=javaHtmlError,javaHtmlTag,javaHtmlEndTag,javaHtmlSpecialChar,javaHtmlComment,javaCommentStar
  67.  
  68.   " syntax coloring for javadoc comments (HTML)
  69.   syntax case ignore
  70.  
  71.   syn match javaDocTags contained "@\(see\|version\|author\|param\|return\|exception\|deprecated\)"
  72.  
  73.   syn match javaHtmlError contained "[<>&]"
  74.  
  75.   " tags
  76.   syn match   javaHtmlSpecial  contained "\\[0-9][0-9][0-9]\|\\."
  77.   syn region  javaHtmlString   contained start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=javaHtmlSpecial,javaScriptExpression
  78.   syn region  javaHtmlString   contained start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=javaHtmlSpecial,javaScriptExpression
  79.   syn match   javaHtmlValue    contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1   contains=javaScriptExpression
  80.   syn region  javaHtmlEndTag   contained start=+</+    end=+>+              contains=javaHtmlTagName,javaHtmlTagError
  81.   syn region  javaHtmlTag      contained start=+<[a-zA-Z]+ end=+>+ end=+\*/+me=s-1,he=s-1 contains=javaHtmlString,javaHtmlTagName,javaHtmlArg,javaHtmlValue,javaHtmlTagError,javaHtmlEvent
  82.   syn match   javaHtmlTagError contained "[^>]<"ms=s+1
  83.  
  84.   " tag names
  85.   syn keyword javaHtmlTagName contained address applet area a base basefont
  86.   syn keyword javaHtmlTagName contained big blockquote body br b caption center
  87.   syn keyword javaHtmlTagName contained cite code dd dfn dir div dl dt em font
  88.   syn keyword javaHtmlTagName contained form h1 h2 h3 h4 h5 h6 head hr html img
  89.   syn keyword javaHtmlTagName contained input isindex i kbd link li link map menu
  90.   syn keyword javaHtmlTagName contained meta ol option param pre p samp
  91.   syn keyword javaHtmlTagName contained select small strike strong style sub sup
  92.   syn keyword javaHtmlTagName contained table td textarea th title tr tt ul u var
  93.  
  94.   " legal arg names
  95.   syn keyword javaHtmlArg contained action
  96.   syn keyword javaHtmlArg contained align alink alt archive background bgcolor
  97.   syn keyword javaHtmlArg contained border bordercolor cellpadding
  98.   syn keyword javaHtmlArg contained cellspacing checked clear code codebase color
  99.   syn keyword javaHtmlArg contained cols colspan content coords enctype face
  100.   syn keyword javaHtmlArg contained gutter height href hspace
  101.   syn keyword javaHtmlArg contained link lowsrc marginheight
  102.   syn keyword javaHtmlArg contained marginwidth maxlength method name prompt
  103.   syn keyword javaHtmlArg contained rel rev rows rowspan scrolling selected shape
  104.   syn keyword javaHtmlArg contained size src start target text type url
  105.   syn keyword javaHtmlArg contained usemap ismap valign value vlink vspace width wrap
  106.   syn match javaHtmlArg contained "http-equiv"
  107.   " Netscape extensions
  108.   syn keyword javaHtmlTagName contained frame frameset nobr span
  109.   syn keyword javaHtmlTagName contained layer ilayer nolayer spacer
  110.   syn keyword javaHtmlArg     contained frameborder noresize pagex pagey above below
  111.   syn keyword javaHtmlArg     contained left top visibility clip id noshade
  112.   syn match   javaHtmlArg     contained "z-index"
  113.  
  114.   " special characters
  115.   syn match javaHtmlSpecialChar contained "&[^;]*;"
  116.  
  117.   " The real html comments (this implements the comments as defined by html,
  118.   " but not all html pages actually conform to it. Errors are flagged.
  119.   syn region javaHtmlComment      contained          start=+<!+        end=+>+ contains=javaHtmlCommentPart,javaHtmlCommentError
  120.   syn region javaHtmlComment      contained          start=+<!DOCTYPE+ end=+>+
  121.   syn match  javaHtmlCommentError contained "[^><!]"
  122.   syn region javaHtmlCommentPart  contained start=+--+        end=+--+
  123.  
  124.   syntax case match
  125. endif
  126.  
  127. " match the special comment /**/
  128. syn match   javaComment          "/\*\*/"
  129.  
  130. " Strings and constants
  131. syn match   javaSpecialError     contained "\\."
  132. syn match   javaSpecialCharError contained "[^']"
  133. syn match   javaSpecialChar      contained "\\\([0-9]\{1,2\}\|[0-3][0-9][0-9]\|[\"\\'ntbrf]\|u[0-9a-fA-F]\{4\}\)"
  134. syn region  javaString           start=+"+  skip=+\\\\\|\\"+  end=+"+  contains=javaSpecialChar,javaSpecialError
  135. syn match   javaCharacter        "'[^']*'" contains=javaSpecialChar,javaSpecialCharError
  136. syn match   javaCharacter        "'\\''" contains=javaSpecialChar
  137. syn match   javaCharacter        "'[^\\]'"
  138. syn match   javaNumber           "-\=\<[0-9]\+L\=\>\|0[xX][0-9a-fA-F]\+\>"
  139.  
  140. " unicode characters
  141. syn match   javaSpecial "\\u[0-9]\{4\}"
  142.  
  143. " catch errors caused by wrong parenthesis
  144. syn region  javaParen            transparent start="(" end=")" contains=ALLBUT,javaCommentStar,javaSpecial,javaParenError,javaDebugString,javaDebugNumber,javaDebugType,javaDebug,javaDebugBoolean,javaDebugSpecial,javaDebugSpecialCharacter,javaDebugCharacter,javaSpecialError,javaSpecialCharError,javaHtml.*
  145. syn match   javaParenError       ")"
  146. hi link     javaParenError       javaError
  147.  
  148. if exists("java_highlight_functions")
  149.   " WARNING: the following definitions work only if you use one tab or two spaces
  150.   " to indent function. If you use something different, change the leading
  151.   " white space in all definitions.
  152.   syn match  javaFuncDef "^\t[a-zA-Z][a-zA-Z0-9_. \[\]]*([^-+*/()]*)" contains=javaScopeDecl,javaType,javaStorageClass
  153.   syn region javaFuncDef start=+^\t[a-zA-Z][a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+ end=+)+ contains=javaScopeDecl,javaType,javaStorageClass
  154.   syn match  javaFuncDef "^  [a-zA-Z][a-zA-Z0-9_. \[\]]*([^-+*/()]*)" contains=javaScopeDecl,javaType,javaStorageClass
  155.   syn region javaFuncDef start=+^  [a-zA-Z][a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+ end=+)+ contains=javaScopeDecl,javaType,javaStorageClass
  156.   syn match  javaBraces  "[{}]"
  157. endif
  158.  
  159. if exists("java_mark_braces_in_parens_as_errors")
  160.   syn match javaInParen          contained "[{}]"
  161.   hi link   javaInParen          javaError
  162. endif
  163.  
  164. if exists("java_highlight_debug")
  165.   " to make this work you must define the highlighting for these groups
  166.   syn region javaDebug start="System\.\(out\|err\)\.print\(ln\)*\s*" end=";" contains=javaDebug.*
  167.   syn region javaDebug  start="trace[ \t]*(" end=";" contains=javaDebug.*
  168.  
  169.   " Strings and constants
  170.   syn match   javaDebugSpecial          contained "\\[0-9][0-9][0-9]\|\\."
  171.   syn region  javaDebugString           contained start=+"+  skip=+\\\\\|\\"+  end=+"+  contains=javaDebugSpecial
  172.   syn match   javaDebugCharacter        contained "'[^\\]'"
  173.   syn match   javaDebugSpecialCharacter contained "'\\.'"
  174.   syn match   javaDebugSpecialCharacter contained "'\\''"
  175.   syn match   javaDebugNumber           contained "-\=\<[0-9]\+L\=\>\|0[xX][0-9a-fA-F]\+\>"
  176.   syn keyword javaDebugBoolean          contained true false
  177.   syn keyword javaDebugType             contained null this super
  178.  
  179.   hi link javaDebug    Debug
  180.   hi link javaDebugString DebugString
  181.   hi link javaDebugType DebugType
  182.   hi link javaDebugBoolean DebugBoolean
  183.   hi link javaDebugNumber Debug
  184.   hi link javaDebugSpecial DebugSpecial
  185.   hi link javaDebugSpecialCharacter DebugSpecial
  186.   hi link javaDebugCharacter DebugString
  187.  
  188.   " the following lines should actually be in syntax.vim
  189.   hi link DebugString String
  190.   hi link DebugSpecial Special
  191.   hi link DebugBoolean Boolean
  192.   hi link DebugType Type
  193. endif
  194.  
  195. syn sync ccomment javaComment
  196.  
  197.  
  198. if !exists("did_java_syntax_inits")
  199.   let did_java_syntax_inits = 1
  200.   " The default methods for highlighting.  Can be overridden later
  201.   hi link javaFuncDef                       Function
  202.   hi link javaBraces                        Function
  203.   hi link javaBranch                        Conditional
  204.   hi link javaLabel                         Label
  205.   hi link javaConditional                   Conditional
  206.   hi link javaRepeat                        Repeat
  207.   hi link javaExceptions                    Exception
  208.   hi link javaStorageClass                  StorageClass
  209.   hi link javaMethodDecl                    javaStorageClass
  210.   hi link javaClassDecl                     javaStorageClass
  211.   hi link javaScopeDecl                     javaStorageClass
  212.   hi link javaBoolean                       Boolean
  213.   hi link javaSpecial                       Special
  214.   hi link javaSpecialError                  Error
  215.   hi link javaSpecialCharError              Error
  216.   hi link javaString                        String
  217.   hi link javaCharacter                     Character
  218.   hi link javaSpecialChar            SpecialChar
  219.   hi link javaNumber                        javaValue
  220.   hi link javaError                         Error
  221.   hi link javaStatement                     Statement
  222.   hi link javaOperator                      Operator
  223.   hi link javaComment                       Comment
  224.   hi link javaLineComment                   Comment
  225.   hi link javaConstant                Constant
  226.   hi link javaTypedef                Typedef
  227.  
  228.   hi link javaCommentTitle                  SpecialComment
  229.   hi link javaDocTags                Special
  230.   hi link javaCommentStar                   javaComment
  231.  
  232.   hi link javaType                          Type
  233.   hi link javaValue                         Number
  234.   hi link javaExternal                      Include
  235.  
  236.   hi link javaHtmlTag                       Function
  237.   hi link javaHtmlEndTag                    Identifier
  238.   hi link javaHtmlArg                       Type
  239.   hi link javaHtmlTagName                   javaHtmlStatement
  240.   hi link javaHtmlSpecialChar               SpecialChar
  241.   hi link javaHtmlSpecial                   Special
  242.   hi link javaHtmlString                    String
  243.   hi link javaHtmlStatement                 Statement
  244.   hi link javaHtmlComment                   Special
  245.   hi link javaHtmlCommentPart               Special
  246.   hi link javaHtmlPreProc                   PreProc
  247.   hi link javaHtmlValue                     String
  248.   hi link javaHtmlCommentError              javaHtmlError
  249.   hi link javaHtmlTagError                  javaHtmlError
  250.   hi link javaHtmlEvent                     javaScript
  251.   hi link javaHtmlError                Error
  252. endif
  253.  
  254. let b:current_syntax = "java"
  255.  
  256. " vim: ts=8
  257.