| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " Vim syntax file | 
					
						
							|  |  |  | " Language:	JavaScript | 
					
						
							|  |  |  | " Maintainer:	Claudio Fleiner <claudio@fleiner.com> | 
					
						
							|  |  |  | " URL:		http://www.fleiner.com/vim/syntax/javascript.vim | 
					
						
							| 
									
										
										
										
											2004-12-09 21:34:53 +00:00
										 |  |  | " Last Change:	2004 Nov 20 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | " For version 5.x: Clear all syntax items | 
					
						
							|  |  |  | " For version 6.x: Quit when a syntax file was already loaded | 
					
						
							|  |  |  | " tuning parameters: | 
					
						
							|  |  |  | " unlet javaScript_fold | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if !exists("main_syntax") | 
					
						
							|  |  |  |   if version < 600 | 
					
						
							|  |  |  |     syntax clear | 
					
						
							|  |  |  |   elseif exists("b:current_syntax") | 
					
						
							|  |  |  |     finish | 
					
						
							|  |  |  |   endif | 
					
						
							|  |  |  |   let main_syntax = 'javascript' | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Drop fold if it set but vim doesn't support it. | 
					
						
							|  |  |  | if version < 600 && exists("javaScript_fold") | 
					
						
							|  |  |  |   unlet javaScript_fold | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn case ignore | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn keyword javaScriptCommentTodo      TODO FIXME XXX TBD contained | 
					
						
							|  |  |  | syn match   javaScriptLineComment      "\/\/.*$" contains=javaScriptCommentTodo | 
					
						
							|  |  |  | syn match   javaScriptCommentSkip      "^[ \t]*\*\($\|[ \t]\+\)" | 
					
						
							|  |  |  | syn region  javaScriptComment	       start="/\*"  end="\*/" contains=javaScriptCommentTodo | 
					
						
							|  |  |  | syn match   javaScriptSpecial	       "\\\d\d\d\|\\." | 
					
						
							|  |  |  | syn region  javaScriptStringD	       start=+"+  skip=+\\\\\|\\"+  end=+"+  contains=javaScriptSpecial,@htmlPreproc | 
					
						
							|  |  |  | syn region  javaScriptStringS	       start=+'+  skip=+\\\\\|\\'+  end=+'+  contains=javaScriptSpecial,@htmlPreproc | 
					
						
							|  |  |  | syn match   javaScriptSpecialCharacter "'\\.'" | 
					
						
							|  |  |  | syn match   javaScriptNumber	       "-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>" | 
					
						
							| 
									
										
										
										
											2004-12-09 21:34:53 +00:00
										 |  |  | syn region  javaScriptRegexpString     start=+/[^/*]+me=e-1 skip=+\\\\\|\\/+ end=+/[gi]\?\s*$+ end=+/[gi]\?\s*[;.,)]+me=e-1 contains=@htmlPreproc oneline | 
					
						
							|  |  |  | syn keyword javaScriptConditional	if else | 
					
						
							|  |  |  | syn keyword javaScriptRepeat		while for | 
					
						
							|  |  |  | syn keyword javaScriptBranch		break continue switch case default | 
					
						
							|  |  |  | syn keyword javaScriptOperator		new in | 
					
						
							|  |  |  | syn keyword javaScriptType		this var const | 
					
						
							|  |  |  | syn keyword javaScriptStatement		return with | 
					
						
							|  |  |  | syn keyword javaScriptBoolean		true false | 
					
						
							|  |  |  | syn keyword javaScriptNull		null | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | if exists("javaScript_fold") | 
					
						
							|  |  |  |     syn match	javaScriptFunction      "\<function\>" | 
					
						
							|  |  |  |     syn region	javaScriptFunctionFold	start="\<function\>.*[^};]$" end="^\z1}.*$" transparent fold keepend | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     syn sync match javaScriptSync	grouphere javaScriptFunctionFold "\<function\>" | 
					
						
							|  |  |  |     syn sync match javaScriptSync	grouphere NONE "^}" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     setlocal foldmethod=syntax | 
					
						
							|  |  |  |     setlocal foldtext=getline(v:foldstart) | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  |     syn keyword	javaScriptFunction      function | 
					
						
							|  |  |  |     syn match	javaScriptBraces	   "[{}]" | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn sync fromstart | 
					
						
							|  |  |  | syn sync maxlines=100 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " catch errors caused by wrong parenthesis | 
					
						
							| 
									
										
										
										
											2004-12-09 21:34:53 +00:00
										 |  |  | syn region  javaScriptParen       transparent start="(" end=")" contains=javaScriptParen,javaScriptComment,javaScriptSpecial,javaScriptStringD,javaScriptStringS,javaScriptSpecialCharacter,javaScriptNumber,javaScriptRegexpString,javaScriptBoolean,javaScriptBraces,javaScriptFunction,javaScriptFunctionFold,javaScriptConditional,javaScriptRepeat,javaScriptBranch,javaScriptOperator,javaScriptType,javaScriptStatement,javaScriptBoolean,javaScriptConstant | 
					
						
							|  |  |  |  syn region  javaScriptParen       transparent start="(" end=")" contains=javaScriptParen,javaScriptComment,javaScriptSpecial,javaScriptStringD,javaScriptStringS,javaScriptSpecialCharacter,javaScriptNumber,javaScriptRegexpString,javaScriptBoolean,javaScriptBraces | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | syn match   javaScrParenError  ")" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if main_syntax == "javascript" | 
					
						
							|  |  |  |   syn sync ccomment javaScriptComment | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Define the default highlighting. | 
					
						
							|  |  |  | " For version 5.7 and earlier: only when not done already | 
					
						
							|  |  |  | " For version 5.8 and later: only when an item doesn't have highlighting yet | 
					
						
							|  |  |  | if version >= 508 || !exists("did_javascript_syn_inits") | 
					
						
							|  |  |  |   if version < 508 | 
					
						
							|  |  |  |     let did_javascript_syn_inits = 1 | 
					
						
							|  |  |  |     command -nargs=+ HiLink hi link <args> | 
					
						
							|  |  |  |   else | 
					
						
							|  |  |  |     command -nargs=+ HiLink hi def link <args> | 
					
						
							|  |  |  |   endif | 
					
						
							| 
									
										
										
										
											2004-12-09 21:34:53 +00:00
										 |  |  |   HiLink javaScriptComment		Comment | 
					
						
							|  |  |  |   HiLink javaScriptLineComment		Comment | 
					
						
							|  |  |  |   HiLink javaScriptCommentTodo		Todo | 
					
						
							|  |  |  |   HiLink javaScriptSpecial		Special | 
					
						
							|  |  |  |   HiLink javaScriptStringS		String | 
					
						
							|  |  |  |   HiLink javaScriptStringD		String | 
					
						
							|  |  |  |   HiLink javaScriptCharacter		Character | 
					
						
							|  |  |  |   HiLink javaScriptSpecialCharacter	javaScriptSpecial | 
					
						
							|  |  |  |   HiLink javaScriptNumber		javaScriptValue | 
					
						
							|  |  |  |   HiLink javaScriptConditional		Conditional | 
					
						
							|  |  |  |   HiLink javaScriptRepeat		Repeat | 
					
						
							|  |  |  |   HiLink javaScriptBranch		Conditional | 
					
						
							|  |  |  |   HiLink javaScriptOperator		Operator | 
					
						
							|  |  |  |   HiLink javaScriptType			Type | 
					
						
							|  |  |  |   HiLink javaScriptStatement		Statement | 
					
						
							|  |  |  |   HiLink javaScriptFunction		Function | 
					
						
							|  |  |  |   HiLink javaScriptBraces		Function | 
					
						
							|  |  |  |   HiLink javaScriptError		Error | 
					
						
							|  |  |  |   HiLink javaScrParenError		javaScriptError | 
					
						
							|  |  |  |   HiLink javaScriptNull			Keyword | 
					
						
							|  |  |  |   HiLink javaScriptBoolean		Boolean | 
					
						
							|  |  |  |   HiLink javaScriptRegexpString		String | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  |   delcommand HiLink | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let b:current_syntax = "javascript" | 
					
						
							|  |  |  | if main_syntax == 'javascript' | 
					
						
							|  |  |  |   unlet main_syntax | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " vim: ts=8 |