forked from aniani/vim
		
	
		
			
				
	
	
		
			144 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			144 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Vim syntax file
 | |
| " Language:	JavaScript
 | |
| " Maintainer:	Claudio Fleiner <claudio@fleiner.com>
 | |
| " Updaters:	Scott Shattuck (ss) <ss@technicalpursuit.com>
 | |
| " URL:		http://www.fleiner.com/vim/syntax/javascript.vim
 | |
| " Changes:	(ss) added keywords, reserved words, and other identifiers
 | |
| "		(ss) repaired several quoting and grouping glitches
 | |
| "		(ss) fixed regex parsing issue with multiple qualifiers [gi]
 | |
| "		(ss) additional factoring of keywords, globals, and members
 | |
| " Last Change:	2012 Oct 05
 | |
| " 		2013 Jun 12: adjusted javaScriptRegexpString (Kevin Locke)
 | |
| 
 | |
| " 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'
 | |
| elseif exists("b:current_syntax") && b:current_syntax == "javascript"
 | |
|   finish
 | |
| endif
 | |
| 
 | |
| let s:cpo_save = &cpo
 | |
| set cpo&vim
 | |
| 
 | |
| " Drop fold if it set but vim doesn't support it.
 | |
| if version < 600 && exists("javaScript_fold")
 | |
|   unlet javaScript_fold
 | |
| endif
 | |
| 
 | |
| 
 | |
| syn keyword javaScriptCommentTodo      TODO FIXME XXX TBD contained
 | |
| syn match   javaScriptLineComment      "\/\/.*" contains=@Spell,javaScriptCommentTodo
 | |
| syn match   javaScriptCommentSkip      "^[ \t]*\*\($\|[ \t]\+\)"
 | |
| syn region  javaScriptComment	       start="/\*"  end="\*/" contains=@Spell,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]\+\>"
 | |
| syn region  javaScriptRegexpString     start=+/[^/*]+me=e-1 skip=+\\\\\|\\/+ end=+/[gim]\{0,2\}\s*$+ end=+/[gim]\{0,2\}\s*[;.,)\]}]+me=e-1 contains=@htmlPreproc oneline
 | |
| 
 | |
| syn keyword javaScriptConditional	if else switch
 | |
| syn keyword javaScriptRepeat		while for do in
 | |
| syn keyword javaScriptBranch		break continue
 | |
| syn keyword javaScriptOperator		new delete instanceof typeof
 | |
| syn keyword javaScriptType		Array Boolean Date Function Number Object String RegExp
 | |
| syn keyword javaScriptStatement		return with
 | |
| syn keyword javaScriptBoolean		true false
 | |
| syn keyword javaScriptNull		null undefined
 | |
| syn keyword javaScriptIdentifier	arguments this var let
 | |
| syn keyword javaScriptLabel		case default
 | |
| syn keyword javaScriptException		try catch finally throw
 | |
| syn keyword javaScriptMessage		alert confirm prompt status
 | |
| syn keyword javaScriptGlobal		self window top parent
 | |
| syn keyword javaScriptMember		document event location 
 | |
| syn keyword javaScriptDeprecated	escape unescape
 | |
| syn keyword javaScriptReserved		abstract boolean byte char class const debugger double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile 
 | |
| 
 | |
| 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	   "[{}\[\]]"
 | |
|     syn match	javaScriptParens	   "[()]"
 | |
| endif
 | |
| 
 | |
| syn sync fromstart
 | |
| syn sync maxlines=100
 | |
| 
 | |
| 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
 | |
|   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
 | |
| 
 | |
|   HiLink javaScriptIdentifier		Identifier
 | |
|   HiLink javaScriptLabel		Label
 | |
|   HiLink javaScriptException		Exception
 | |
|   HiLink javaScriptMessage		Keyword
 | |
|   HiLink javaScriptGlobal		Keyword
 | |
|   HiLink javaScriptMember		Keyword
 | |
|   HiLink javaScriptDeprecated		Exception 
 | |
|   HiLink javaScriptReserved		Keyword
 | |
|   HiLink javaScriptDebug		Debug
 | |
|   HiLink javaScriptConstant		Label
 | |
| 
 | |
|   delcommand HiLink
 | |
| endif
 | |
| 
 | |
| let b:current_syntax = "javascript"
 | |
| if main_syntax == 'javascript'
 | |
|   unlet main_syntax
 | |
| endif
 | |
| let &cpo = s:cpo_save
 | |
| unlet s:cpo_save
 | |
| 
 | |
| " vim: ts=8
 |