diff runtime/syntax/java.vim @ 7:3fc0f57ecb91 v7.0001

updated for version 7.0001
author vimboss
date Sun, 13 Jun 2004 20:20:40 +0000
parents
children 125e80798a85
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/java.vim
@@ -0,0 +1,334 @@
+" Vim syntax file
+" Language:     Java
+" Maintainer:   Claudio Fleiner <claudio@fleiner.com>
+" URL:		http://www.fleiner.com/vim/syntax/java.vim
+" Last Change:  2004 Apr 23
+
+" Please check :help java.vim for comments on some of the options available.
+
+" Quit when a syntax file was already loaded
+if !exists("main_syntax")
+  if version < 600
+    syntax clear
+  elseif exists("b:current_syntax")
+    finish
+  endif
+  " we define it here so that included files can test for it
+  let main_syntax='java'
+endif
+
+" don't use standard HiLink, it will not work with included syntax files
+if version < 508
+  command! -nargs=+ JavaHiLink hi link <args>
+else
+  command! -nargs=+ JavaHiLink hi def link <args>
+endif
+
+" some characters that cannot be in a java program (outside a string)
+syn match javaError "[\\@`]"
+syn match javaError "<<<\|\.\.\|=>\|<>\|||=\|&&=\|[^-]->\|\*\/"
+syn match javaOK "\.\.\."
+
+" use separate name so that it can be deleted in javacc.vim
+syn match   javaError2 "#\|=<"
+JavaHiLink javaError2 javaError
+
+
+
+" keyword definitions
+syn keyword javaExternal	native package
+syn match javaExternal		"\<import\(\s\+static\>\)\?"
+syn keyword javaError		goto const
+syn keyword javaConditional	if else switch
+syn keyword javaRepeat		while for do
+syn keyword javaBoolean		true false
+syn keyword javaConstant	null
+syn keyword javaTypedef		this super
+syn keyword javaOperator	new instanceof
+syn keyword javaType		boolean char byte short int long float double
+syn keyword javaType		void
+syn keyword javaStatement	return
+syn keyword javaStorageClass	static synchronized transient volatile final strictfp serializable
+syn keyword javaExceptions	throw try catch finally
+syn keyword javaAssert		assert
+syn keyword javaMethodDecl	synchronized throws
+syn keyword javaClassDecl	extends implements interface
+" to differentiate the keyword class from MyClass.class we use a match here
+syn match   javaTypedef		"\.\s*\<class\>"ms=s+1
+syn keyword javaClassDecl	enum
+syn match   javaClassDecl	"^class\>"
+syn match   javaClassDecl	"[^.]\s*\<class\>"ms=s+1
+syn keyword javaBranch		break continue nextgroup=javaUserLabelRef skipwhite
+syn match   javaUserLabelRef	"\k\+" contained
+syn keyword javaScopeDecl	public protected private abstract
+
+if exists("java_highlight_java_lang_ids") || exists("java_highlight_java_lang") || exists("java_highlight_all")
+  " java.lang.*
+  syn match javaLangClass "\<System\>"
+  syn keyword javaLangClass  Cloneable Comparable Runnable Boolean Byte Class
+  syn keyword javaLangClass  Character CharSequence ClassLoader Compiler Double Float
+  syn keyword javaLangClass  Integer InheritableThreadLocal Long Math Number Object Package Process
+  syn keyword javaLangClass  Runtime RuntimePermission InheritableThreadLocal
+  syn keyword javaLangClass  SecurityManager Short String StrictMath StackTraceElement
+  syn keyword javaLangClass  StringBuffer Thread ThreadGroup
+  syn keyword javaLangClass  ThreadLocal Throwable Void ArithmeticException
+  syn keyword javaLangClass  ArrayIndexOutOfBoundsException AssertionError
+  syn keyword javaLangClass  ArrayStoreException ClassCastException
+  syn keyword javaLangClass  ClassNotFoundException
+  syn keyword javaLangClass  CloneNotSupportedException Exception
+  syn keyword javaLangClass  IllegalAccessException
+  syn keyword javaLangClass  IllegalArgumentException
+  syn keyword javaLangClass  IllegalMonitorStateException
+  syn keyword javaLangClass  IllegalStateException
+  syn keyword javaLangClass  IllegalThreadStateException
+  syn keyword javaLangClass  IndexOutOfBoundsException
+  syn keyword javaLangClass  InstantiationException InterruptedException
+  syn keyword javaLangClass  NegativeArraySizeException NoSuchFieldException
+  syn keyword javaLangClass  NoSuchMethodException NullPointerException
+  syn keyword javaLangClass  NumberFormatException RuntimeException
+  syn keyword javaLangClass  SecurityException StringIndexOutOfBoundsException
+  syn keyword javaLangClass  UnsupportedOperationException
+  syn keyword javaLangClass  AbstractMethodError ClassCircularityError
+  syn keyword javaLangClass  ClassFormatError Error ExceptionInInitializerError
+  syn keyword javaLangClass  IllegalAccessError InstantiationError
+  syn keyword javaLangClass  IncompatibleClassChangeError InternalError
+  syn keyword javaLangClass  LinkageError NoClassDefFoundError
+  syn keyword javaLangClass  NoSuchFieldError NoSuchMethodError
+  syn keyword javaLangClass  OutOfMemoryError StackOverflowError
+  syn keyword javaLangClass  ThreadDeath UnknownError UnsatisfiedLinkError
+  syn keyword javaLangClass  UnsupportedClassVersionError VerifyError
+  syn keyword javaLangClass  VirtualMachineError
+  syn keyword javaLangObject clone equals finalize getClass hashCode
+  syn keyword javaLangObject notify notifyAll toString wait
+  JavaHiLink javaLangClass		     javaConstant
+  JavaHiLink javaLangObject		     javaConstant
+  syn cluster javaTop add=javaLangObject,javaLangClass
+  syn cluster javaClasses add=javaLangClass
+endif
+
+if filereadable(expand("<sfile>:p:h")."/javaid.vim")
+  source <sfile>:p:h/javaid.vim
+endif
+
+if exists("java_space_errors")
+  if !exists("java_no_trail_space_error")
+    syn match   javaSpaceError  "\s\+$"
+  endif
+  if !exists("java_no_tab_space_error")
+    syn match   javaSpaceError  " \+\t"me=e-1
+  endif
+endif
+
+syn region  javaLabelRegion     transparent matchgroup=javaLabel start="\<case\>" matchgroup=NONE end=":" contains=javaNumber,javaCharacter
+syn match   javaUserLabel       "^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=javaLabel
+syn keyword javaLabel		default
+
+if !exists("java_allow_cpp_keywords")
+  syn keyword javaError auto delete extern friend inline redeclared
+  syn keyword javaError register signed sizeof struct template typedef union
+  syn keyword javaError unsigned operator
+endif
+
+" The following cluster contains all java groups except the contained ones
+syn cluster javaTop add=javaExternal,javaError,javaError,javaBranch,javaLabelRegion,javaLabel,javaConditional,javaRepeat,javaBoolean,javaConstant,javaTypedef,javaOperator,javaType,javaType,javaStatement,javaStorageClass,javaAssert,javaExceptions,javaMethodDecl,javaClassDecl,javaClassDecl,javaClassDecl,javaScopeDecl,javaError,javaError2,javaUserLabel,javaLangObject
+
+
+" Comments
+syn keyword javaTodo		 contained TODO FIXME XXX
+if exists("java_comment_strings")
+  syn region  javaCommentString    contained start=+"+ end=+"+ end=+$+ end=+\*/+me=s-1,he=s-1 contains=javaSpecial,javaCommentStar,javaSpecialChar,@Spell
+  syn region  javaComment2String   contained start=+"+  end=+$\|"+  contains=javaSpecial,javaSpecialChar,@Spell
+  syn match   javaCommentCharacter contained "'\\[^']\{1,6\}'" contains=javaSpecialChar
+  syn match   javaCommentCharacter contained "'\\''" contains=javaSpecialChar
+  syn match   javaCommentCharacter contained "'[^\\]'"
+  syn cluster javaCommentSpecial add=javaCommentString,javaCommentCharacter,javaNumber
+  syn cluster javaCommentSpecial2 add=javaComment2String,javaCommentCharacter,javaNumber
+endif
+syn region  javaComment		 start="/\*"  end="\*/" contains=@javaCommentSpecial,javaTodo,@Spell
+syn match   javaCommentStar      contained "^\s*\*[^/]"me=e-1
+syn match   javaCommentStar      contained "^\s*\*$"
+syn match   javaLineComment      "//.*" contains=@javaCommentSpecial2,javaTodo,@Spell
+JavaHiLink javaCommentString javaString
+JavaHiLink javaComment2String javaString
+JavaHiLink javaCommentCharacter javaCharacter
+
+syn cluster javaTop add=javaComment,javaLineComment
+
+if !exists("java_ignore_javadoc") && main_syntax != 'jsp'
+  syntax case ignore
+  " syntax coloring for javadoc comments (HTML)
+  syntax include @javaHtml <sfile>:p:h/html.vim
+  unlet b:current_syntax
+  syn region  javaDocComment    start="/\*\*"  end="\*/" keepend contains=javaCommentTitle,@javaHtml,javaDocTags,javaTodo,@Spell
+  syn region  javaCommentTitle  contained matchgroup=javaDocComment start="/\*\*"   matchgroup=javaCommentTitle keepend end="\.$" end="\.[ \t\r<&]"me=e-1 end="[^{]@"me=s-2,he=s-1 end="\*/"me=s-1,he=s-1 contains=@javaHtml,javaCommentStar,javaTodo,@Spell,javaDocTags
+
+  syn region javaDocTags  contained start="{@\(link\|linkplain\|inherit[Dd]oc\|doc[rR]oot\|value\)" end="}"
+  syn match  javaDocTags  contained "@\(see\|param\|exception\|throws\|since\)\s\+\S\+" contains=javaDocParam
+  syn match  javaDocParam contained "\s\S\+"
+  syn match  javaDocTags  contained "@\(version\|author\|return\|deprecated\|serial\|serialField\|serialData\)\>"
+  syntax case match
+endif
+
+" match the special comment /**/
+syn match   javaComment		 "/\*\*/"
+
+" Strings and constants
+syn match   javaSpecialError     contained "\\."
+syn match   javaSpecialCharError contained "[^']"
+syn match   javaSpecialChar      contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\)"
+syn region  javaString		start=+"+ end=+"+ end=+$+ contains=javaSpecialChar,javaSpecialError,@Spell
+" next line disabled, it can cause a crash for a long line
+"syn match   javaStringError	  +"\([^"\\]\|\\.\)*$+
+syn match   javaCharacter	 "'[^']*'" contains=javaSpecialChar,javaSpecialCharError
+syn match   javaCharacter	 "'\\''" contains=javaSpecialChar
+syn match   javaCharacter	 "'[^\\]'"
+syn match   javaNumber		 "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
+syn match   javaNumber		 "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
+syn match   javaNumber		 "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
+syn match   javaNumber		 "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
+
+" unicode characters
+syn match   javaSpecial "\\u\d\{4\}"
+
+syn cluster javaTop add=javaString,javaCharacter,javaNumber,javaSpecial,javaStringError
+
+if exists("java_highlight_functions")
+  if java_highlight_functions == "indent"
+    syn match  javaFuncDef "^\(\t\| \{8\}\)[_$a-zA-Z][_$a-zA-Z0-9_. \[\]]*([^-+*/()]*)" contains=javaScopeDecl,javaType,javaStorageClass,@javaClasses
+    syn region javaFuncDef start=+^\(\t\| \{8\}\)[$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+ end=+)+ contains=javaScopeDecl,javaType,javaStorageClass,@javaClasses
+    syn match  javaFuncDef "^  [$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*)" contains=javaScopeDecl,javaType,javaStorageClass,@javaClasses
+    syn region javaFuncDef start=+^  [$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+ end=+)+ contains=javaScopeDecl,javaType,javaStorageClass,@javaClasses
+  else
+    " This line catches method declarations at any indentation>0, but it assumes
+    " two things:
+    "   1. class names are always capitalized (ie: Button)
+    "   2. method names are never capitalized (except constructors, of course)
+    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*([^0-9]+ end=+)+ contains=javaScopeDecl,javaType,javaStorageClass,javaComment,javaLineComment,@javaClasses
+  endif
+  syn match  javaBraces  "[{}]"
+  syn cluster javaTop add=javaFuncDef,javaBraces
+endif
+
+if exists("java_highlight_debug")
+
+  " Strings and constants
+  syn match   javaDebugSpecial		contained "\\\d\d\d\|\\."
+  syn region  javaDebugString		contained start=+"+  end=+"+  contains=javaDebugSpecial
+  syn match   javaDebugStringError      +"\([^"\\]\|\\.\)*$+
+  syn match   javaDebugCharacter	contained "'[^\\]'"
+  syn match   javaDebugSpecialCharacter contained "'\\.'"
+  syn match   javaDebugSpecialCharacter contained "'\\''"
+  syn match   javaDebugNumber		contained "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
+  syn match   javaDebugNumber		contained "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
+  syn match   javaDebugNumber		contained "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
+  syn match   javaDebugNumber		contained "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
+  syn keyword javaDebugBoolean		contained true false
+  syn keyword javaDebugType		contained null this super
+  syn region javaDebugParen  start=+(+ end=+)+ contained contains=javaDebug.*,javaDebugParen
+
+  " to make this work you must define the highlighting for these groups
+  syn match javaDebug "\<System\.\(out\|err\)\.print\(ln\)*\s*("me=e-1 contains=javaDebug.* nextgroup=javaDebugParen
+  syn match javaDebug "[A-Za-z][a-zA-Z0-9_]*\.printStackTrace\s*("me=e-1 contains=javaDebug.* nextgroup=javaDebugParen
+  syn match javaDebug "\<trace[SL]\=\s*("me=e-1 contains=javaDebug.* nextgroup=javaDebugParen
+
+  syn cluster javaTop add=javaDebug
+
+  if version >= 508 || !exists("did_c_syn_inits")
+    JavaHiLink javaDebug		 Debug
+    JavaHiLink javaDebugString		 DebugString
+    JavaHiLink javaDebugStringError	 javaError
+    JavaHiLink javaDebugType		 DebugType
+    JavaHiLink javaDebugBoolean		 DebugBoolean
+    JavaHiLink javaDebugNumber		 Debug
+    JavaHiLink javaDebugSpecial		 DebugSpecial
+    JavaHiLink javaDebugSpecialCharacter DebugSpecial
+    JavaHiLink javaDebugCharacter	 DebugString
+    JavaHiLink javaDebugParen		 Debug
+
+    JavaHiLink DebugString		 String
+    JavaHiLink DebugSpecial		 Special
+    JavaHiLink DebugBoolean		 Boolean
+    JavaHiLink DebugType		 Type
+  endif
+endif
+
+if exists("java_mark_braces_in_parens_as_errors")
+  syn match javaInParen		 contained "[{}]"
+  JavaHiLink javaInParen	javaError
+  syn cluster javaTop add=javaInParen
+endif
+
+" catch errors caused by wrong parenthesis
+syn region  javaParenT  transparent matchgroup=javaParen  start="("  end=")" contains=@javaTop,javaParenT1
+syn region  javaParenT1 transparent matchgroup=javaParen1 start="(" end=")" contains=@javaTop,javaParenT2 contained
+syn region  javaParenT2 transparent matchgroup=javaParen2 start="(" end=")" contains=@javaTop,javaParenT  contained
+syn match   javaParenError       ")"
+JavaHiLink javaParenError       javaError
+
+if !exists("java_minlines")
+  let java_minlines = 10
+endif
+exec "syn sync ccomment javaComment minlines=" . java_minlines
+
+" The default highlighting.
+if version >= 508 || !exists("did_java_syn_inits")
+  if version < 508
+    let did_java_syn_inits = 1
+  endif
+  JavaHiLink javaFuncDef		Function
+  JavaHiLink javaBraces			Function
+  JavaHiLink javaBranch			Conditional
+  JavaHiLink javaUserLabelRef		javaUserLabel
+  JavaHiLink javaLabel			Label
+  JavaHiLink javaUserLabel		Label
+  JavaHiLink javaConditional		Conditional
+  JavaHiLink javaRepeat			Repeat
+  JavaHiLink javaExceptions		Exception
+  JavaHiLink javaAssert			Statement
+  JavaHiLink javaStorageClass		StorageClass
+  JavaHiLink javaMethodDecl		javaStorageClass
+  JavaHiLink javaClassDecl		javaStorageClass
+  JavaHiLink javaScopeDecl		javaStorageClass
+  JavaHiLink javaBoolean		Boolean
+  JavaHiLink javaSpecial		Special
+  JavaHiLink javaSpecialError		Error
+  JavaHiLink javaSpecialCharError	Error
+  JavaHiLink javaString			String
+  JavaHiLink javaCharacter		Character
+  JavaHiLink javaSpecialChar		SpecialChar
+  JavaHiLink javaNumber			Number
+  JavaHiLink javaError			Error
+  JavaHiLink javaStringError		Error
+  JavaHiLink javaStatement		Statement
+  JavaHiLink javaOperator		Operator
+  JavaHiLink javaComment		Comment
+  JavaHiLink javaDocComment		Comment
+  JavaHiLink javaLineComment		Comment
+  JavaHiLink javaConstant		Constant
+  JavaHiLink javaTypedef		Typedef
+  JavaHiLink javaTodo			Todo
+
+  JavaHiLink javaCommentTitle		SpecialComment
+  JavaHiLink javaDocTags		Special
+  JavaHiLink javaDocParam		Function
+  JavaHiLink javaCommentStar		javaComment
+
+  JavaHiLink javaType			Type
+  JavaHiLink javaExternal		Include
+
+  JavaHiLink htmlComment		Special
+  JavaHiLink htmlCommentPart		Special
+  JavaHiLink javaSpaceError		Error
+endif
+
+delcommand JavaHiLink
+
+let b:current_syntax = "java"
+
+if main_syntax == 'java'
+  unlet main_syntax
+endif
+
+let b:spell_options="contained"
+
+" vim: ts=8