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 / vim55rt.sit / runtime / syntax / java.vim < prev    next >
Encoding:
Text File  |  1999-09-25  |  14.2 KB  |  294 lines  |  [TEXT/VIM!]

  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 Sept 7
  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 separate 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 const
  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 strictfp
  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. if exists("java_highlight_java_lang_ids")
  50.   syn match javaLangClass "System"
  51.   syn keyword javaLangClass  Cloneable Comparable Runnable Boolean Byte Class
  52.   syn keyword javaLangClass  Character ClassLoader Compiler Double Float
  53.   syn keyword javaLangClass  Integer Long Math Number Object Package Process
  54.   syn keyword javaLangClass  Runtime RuntimePermission InheritableThreadLocal
  55.   syn keyword javaLangClass  SecurityManager Short String
  56.   syn keyword javaLangClass  StringBuffer Thread ThreadGroup
  57.   syn keyword javaLangClass  ThreadLocal Throwable Void ArithmeticException
  58.   syn keyword javaLangClass  ArrayIndexOutOfBoundsException
  59.   syn keyword javaLangClass  ArrayStoreException ClassCastException
  60.   syn keyword javaLangClass  ClassNotFoundException
  61.   syn keyword javaLangClass  CloneNotSupportedException Exception
  62.   syn keyword javaLangClass  IllegalAccessException
  63.   syn keyword javaLangClass  IllegalArgumentException
  64.   syn keyword javaLangClass  IllegalMonitorStateException
  65.   syn keyword javaLangClass  IllegalStateException
  66.   syn keyword javaLangClass  IllegalThreadStateException
  67.   syn keyword javaLangClass  IndexOutOfBoundsException
  68.   syn keyword javaLangClass  InstantiationException InterruptedException
  69.   syn keyword javaLangClass  NegativeArraySizeException NoSuchFieldException
  70.   syn keyword javaLangClass  NoSuchMethodException NullPointerException
  71.   syn keyword javaLangClass  NumberFormatException RuntimeException
  72.   syn keyword javaLangClass  SecurityException StringIndexOutOfBoundsException
  73.   syn keyword javaLangClass  UnsupportedOperationException
  74.   syn keyword javaLangClass  AbstractMethodError ClassCircularityError
  75.   syn keyword javaLangClass  ClassFormatError Error ExceptionInInitializerError
  76.   syn keyword javaLangClass  IllegalAccessError InstantiationError
  77.   syn keyword javaLangClass  IncompatibleClassChangeError InternalError
  78.   syn keyword javaLangClass  LinkageError NoClassDefFoundError
  79.   syn keyword javaLangClass  NoSuchFieldError NoSuchMethodError
  80.   syn keyword javaLangClass  OutOfMemoryError StackOverflowError
  81.   syn keyword javaLangClass  ThreadDeath UnknownError UnsatisfiedLinkError
  82.   syn keyword javaLangClass  UnsupportedClassVersionError VerifyError
  83.   syn keyword javaLangClass  VirtualMachineError
  84.   syn keyword javaLangObject clone equals finalize getClass hashCode
  85.   syn keyword javaLangObject notify notifyAll toString wait
  86.   hi link javaLangClass                   javaConstant
  87.   hi link javaLangObject                  javaConstant
  88. endif
  89.  
  90. if exists("java_space_errors")
  91.   if !exists("java_no_trail_space_error")
  92.     syn match    javaSpaceError    "\s\+$"
  93.   endif
  94.   if !exists("java_no_tab_space_error")
  95.     syn match    javaSpaceError    " \+\t"me=e-1
  96.   endif
  97. endif
  98.  
  99. syn region  javaLabelRegion     transparent matchgroup=javaLabel start="\<case\>" matchgroup=NONE end=":" contains=javaNumber
  100. syn match   javaUserLabel       "^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=javaLabel
  101. syn keyword javaLabel           default
  102.  
  103. if !exists("java_allow_cpp_keywords")
  104.   syn keyword javaError auto delete enum extern friend inline redeclared
  105.   syn keyword javaError register signed sizeof struct template typedef union
  106.   syn keyword javaError unsigned operator
  107. endif
  108.  
  109. " The following cluster contains all java groups except the contained ones
  110. 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,javaLangClass,javaLangObject
  111.  
  112.  
  113. " Comments
  114. syn keyword javaTodo             contained TODO FIXME XXX
  115. syn region  javaCommentString    contained start=+"+ end=+"+ end=+\*/+me=s-1,he=s-1 contains=javaSpecial,javaCommentStar,javaSpecialChar,@Spell
  116. syn region  javaComment2String   contained start=+"+  end=+$\|"+  contains=javaSpecial,javaSpecialChar,@Spell
  117. syn match   javaCommentCharacter contained "'\\[^']\{1,6\}'" contains=javaSpecialChar
  118. syn match   javaCommentCharacter contained "'\\''" contains=javaSpecialChar
  119. syn match   javaCommentCharacter contained "'[^\\]'"
  120. syn region  javaComment          start="/\*"  end="\*/" contains=javaCommentString,javaCommentCharacter,javaNumber,javaTodo,@Spell
  121. syn match   javaCommentStar      contained "^\s*\*[^/]"me=e-1
  122. syn match   javaCommentStar      contained "^\s*\*$"
  123. syn match   javaLineComment      "//.*" contains=javaComment2String,javaCommentCharacter,javaNumber,javaTodo,@Spell
  124. hi link javaCommentString javaString
  125. hi link javaComment2String javaString
  126. hi link javaCommentCharacter javaCharacter
  127.  
  128. syn cluster javaTop add=javaComment,javaLineComment
  129.  
  130. if !exists("java_ignore_javadoc")
  131.   syntax case ignore
  132.   " syntax coloring for javadoc comments (HTML)
  133.   syntax include @javaHtml <sfile>:p:h/html.vim
  134.   syn region  javaDocComment    start="/\*\*"  end="\*/" keepend contains=javaCommentTitle,@javaHtml,javaDocTags,javaTodo,@Spell
  135.   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,@Spell
  136.  
  137.   syn region javaDocTags contained start="{@link" end="}"
  138.   syn match javaDocTags contained "@\(see\|param\|exception\|throws\)\s\+\S\+" contains=javaDocParam
  139.   syn match javaDocParam contained "\s\S\+"
  140.   syn match javaDocTags contained "@\(version\|author\|return\|deprecated\|since\)\>"
  141.   syntax case match
  142. endif
  143.  
  144. " match the special comment /**/
  145. syn match   javaComment          "/\*\*/"
  146.  
  147. " Strings and constants
  148. syn match   javaSpecialError     contained "\\."
  149. syn match   javaSpecialCharError contained "[^']"
  150. syn match   javaSpecialChar      contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\)"
  151. syn region  javaString           start=+"+ end=+"+  contains=javaSpecialChar,javaSpecialError,@Spell
  152. syn match   javaStringError      +"\([^"\\]\|\\.\)*$+
  153. syn match   javaCharacter        "'[^']*'" contains=javaSpecialChar,javaSpecialCharError
  154. syn match   javaCharacter        "'\\''" contains=javaSpecialChar
  155. syn match   javaCharacter        "'[^\\]'"
  156. syn match   javaNumber           "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
  157. syn match   javaNumber           "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
  158. syn match   javaNumber           "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
  159. syn match   javaNumber           "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
  160.  
  161. " unicode characters
  162. syn match   javaSpecial "\\u\d\{4\}"
  163.  
  164. syn cluster javaTop add=javaString,javaCharacter,javaNumber,javaSpecial,javaStringError
  165.  
  166. if exists("java_highlight_functions")
  167.   if java_highlight_functions == "indent"
  168.     syn match  javaFuncDef "^\(\t\| \{8\}\)[_$a-zA-Z][_$a-zA-Z0-9_. \[\]]*([^-+*/()]*)" contains=javaScopeDecl,javaType,javaStorageClass
  169.     syn region javaFuncDef start=+^\(\t\| \{8\}\)[$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+ end=+)+ contains=javaScopeDecl,javaType,javaStorageClass
  170.     syn match  javaFuncDef "^  [$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*)" contains=javaScopeDecl,javaType,javaStorageClass
  171.     syn region javaFuncDef start=+^  [$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+ end=+)+ contains=javaScopeDecl,javaType,javaStorageClass
  172.   else
  173.     " This line catches method declarations at any indentation>0, but it assumes
  174.     " two things:
  175.     "   1. class names are always capitalized (ie: Button)
  176.     "   2. method names are never capitalized (except constructors, of course)
  177.     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
  178.   endif
  179.   syn match  javaBraces  "[{}]"
  180.   syn cluster javaTop add=javaFuncDef,javaBraces
  181. endif
  182.  
  183. if exists("java_highlight_debug")
  184.  
  185.   " Strings and constants
  186.   syn match   javaDebugSpecial          contained "\\\d\d\d\|\\."
  187.   syn region  javaDebugString           contained start=+"+  end=+"+  contains=javaDebugSpecial
  188.   syn match   javaDebugStringError      +"\([^"\\]\|\\.\)*$+
  189.   syn match   javaDebugCharacter        contained "'[^\\]'"
  190.   syn match   javaDebugSpecialCharacter contained "'\\.'"
  191.   syn match   javaDebugSpecialCharacter contained "'\\''"
  192.   syn match   javaDebugNumber           contained "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
  193.   syn match   javaDebugNumber           contained "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
  194.   syn match   javaDebugNumber           contained "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
  195.   syn match   javaDebugNumber           contained "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
  196.   syn keyword javaDebugBoolean          contained true false
  197.   syn keyword javaDebugType             contained null this super
  198.  
  199.   " to make this work you must define the highlighting for these groups
  200.   syn region javaDebug start="System\.\(out\|err\)\.print\(ln\)*\s*" end=";" contains=javaDebug.*
  201.   syn region javaDebug  start="trace[SL]\=[ \t]*(" end=";" contains=javaDebug.*
  202.  
  203.   syn cluster javaTop add=javaDebug
  204.  
  205.   hi link javaDebug                 Debug
  206.   hi link javaDebugString           DebugString
  207.   hi link javaDebugStringError      javaError
  208.   hi link javaDebugType             DebugType
  209.   hi link javaDebugBoolean          DebugBoolean
  210.   hi link javaDebugNumber           Debug
  211.   hi link javaDebugSpecial          DebugSpecial
  212.   hi link javaDebugSpecialCharacter DebugSpecial
  213.   hi link javaDebugCharacter        DebugString
  214.  
  215.   hi link DebugString               String
  216.   hi link DebugSpecial              Special
  217.   hi link DebugBoolean              Boolean
  218.   hi link DebugType                 Type
  219. endif
  220.  
  221. if exists("java_mark_braces_in_parens_as_errors")
  222.   syn match javaInParen          contained "[{}]"
  223.   hi link   javaInParen          javaError
  224.   syn cluster javaTop add=javaInParen
  225. endif
  226.  
  227. " catch errors caused by wrong parenthesis
  228. syn region  javaParen            transparent start="(" end=")" contains=@javaTop,javaParen
  229. syn match   javaParenError       ")"
  230. hi link     javaParenError       javaError
  231.  
  232. if !exists("java_minlines")
  233.   let java_minlines = 10
  234. endif
  235. exec "syn sync ccomment javaComment minlines=" . java_minlines
  236.  
  237. if !exists("did_java_syntax_inits")
  238.   let did_java_syntax_inits = 1
  239.   " The default methods for highlighting.  Can be overridden later
  240.   hi link javaFuncDef                       Function
  241.   hi link javaBraces                        Function
  242.   hi link javaBranch                        Conditional
  243.   hi link javaLabel                         Label
  244.   hi link javaUserLabel                     Label
  245.   hi link javaConditional                   Conditional
  246.   hi link javaRepeat                        Repeat
  247.   hi link javaExceptions                    Exception
  248.   hi link javaStorageClass                  StorageClass
  249.   hi link javaMethodDecl                    javaStorageClass
  250.   hi link javaClassDecl                     javaStorageClass
  251.   hi link javaScopeDecl                     javaStorageClass
  252.   hi link javaBoolean                       Boolean
  253.   hi link javaSpecial                       Special
  254.   hi link javaSpecialError                  Error
  255.   hi link javaSpecialCharError              Error
  256.   hi link javaString                        String
  257.   hi link javaCharacter                     Character
  258.   hi link javaSpecialChar            SpecialChar
  259.   hi link javaNumber                        Number
  260.   hi link javaError                         Error
  261.   hi link javaStringError                   Error
  262.   hi link javaStatement                     Statement
  263.   hi link javaOperator                      Operator
  264.   hi link javaComment                       Comment
  265.   hi link javaDocComment                    Comment
  266.   hi link javaLineComment                   Comment
  267.   hi link javaConstant                javaBoolean
  268.   hi link javaTypedef                Typedef
  269.   hi link javaTodo                          Todo
  270.  
  271.   hi link javaCommentTitle                  SpecialComment
  272.   hi link javaDocTags                Special
  273.   hi link javaDocParam                Function
  274.   hi link javaCommentStar                   javaComment
  275.  
  276.   hi link javaType                          Type
  277.   hi link javaExternal                      Include
  278.  
  279.   hi link htmlComment                       Special
  280.   hi link htmlCommentPart                   Special
  281.   hi link javaSpaceError                    Error
  282.  
  283. endif
  284.  
  285. let b:current_syntax = "java"
  286.  
  287. if main_syntax == 'java'
  288.   unlet main_syntax
  289. endif
  290.  
  291. let b:spell_options="contained"
  292.  
  293. " vim: ts=8
  294.