Bracket,Parens,other symbols are highlighted, added more keywords

This commit is contained in:
Jose Elera Campana
2012-02-07 22:14:47 -06:00
parent 8b21c72b3b
commit 67ec264743

View File

@@ -1,20 +1,13 @@
" Vim syntax file " Vim syntax file
" Language: JavaScript " Language: JavaScript
" Maintainer: Yi Zhao (ZHAOYI) <zzlinux AT hotmail DOT com> " Maintainer: Jose Elera Campana <https://github.com/jelera>
" Last Change: June 4, 2009 " Last Change: February 6, 2012
" Version: 0.7.7 " Version: 0.7.9
" Changes: Add "undefined" as a type keyword " Changes: Go to https://github.com/jelera/vim-javascript-syntax for
" " recent changes.
" TODO: " Credits: Zhao Yi, Claudio Fleiner, Scott Shattuck (This file is based
" - Add the HTML syntax inside the JSDoc " on their hard work), gumnos (From the #vim IRC Channel in
" " Freenode)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
" Modified Javascript Syntax file
" By: Jose Elera Campana
" Last Change: 01/17/12 15:26:51
" Changes:
" - Added support for Browser, DOM and Ajax Objects, Ajax methods and properties,
if !exists("main_syntax") if !exists("main_syntax")
if version < 600 if version < 600
@@ -25,10 +18,9 @@ if !exists("main_syntax")
let main_syntax = 'javascript' let main_syntax = 'javascript'
endif endif
"" Drop fold if it set but VIM doesn't support it. " Drop fold if it set but vim doesn't support it.
let b:javascript_fold='true' if version < 600 && exists("javaScript_fold")
if version < 600 " Don't support the old version unlet javaScript_fold
unlet! b:javascript_fold
endif endif
"" dollar sigh is permittd anywhere in an identifier "" dollar sigh is permittd anywhere in an identifier
@@ -37,11 +29,10 @@ setlocal iskeyword+=$
syntax sync fromstart syntax sync fromstart
"" JavaScript comments "" JavaScript comments
syntax keyword javaScriptCommentTodo TODO FIXME XXX TBD contained syn keyword javaScriptCommentTodo TODO FIXME XXX TBD contained
syntax region javaScriptLineComment start=+\/\/+ end=+$+ keepend contains=javaScriptCommentTodo,@Spell syn match javaScriptLineComment "\/\/.*" contains=@Spell,javaScriptCommentTodo
syntax region javaScriptLineComment start=+^\s*\/\/+ skip=+\n\s*\/\/+ end=+$+ keepend contains=javaScriptCommentTodo,@Spell fold syn match javaScriptCommentSkip "^[ \t]*\*\($\|[ \t]\+\)"
syntax region javaScriptCvsTag start="\$\cid:" end="\$" oneline contained syn region javaScriptComment start="/\*" end="\*/" contains=@Spell,javaScriptCommentTodo
syntax region javaScriptComment start="/\*" end="\*/" contains=javaScriptCommentTodo,javaScriptCvsTag,@Spell fold
"" JSDoc support start "" JSDoc support start
if !exists("javascript_ignore_javaScriptdoc") if !exists("javascript_ignore_javaScriptdoc")
@@ -63,27 +54,34 @@ endif "" JSDoc end
syntax case match syntax case match
"" Syntax in the JavaScript code "" Syntax in the JavaScript code
syntax match javaScriptSpecial "\\\d\d\d\|\\x\x\{2\}\|\\u\x\{4\}\|\\." syn match javaScriptSpecial "\\\d\d\d\|\\."
syntax region javaScriptStringD start=+"+ skip=+\\\\\|\\$"+ end=+"+ contains=javaScriptSpecial,@htmlPreproc syn region javaScriptStringD start=+"+ skip=+\\\\\|\\"+ end=+"\|$+ contains=javaScriptSpecial,@htmlPreproc
syntax region javaScriptStringS start=+'+ skip=+\\\\\|\\$'+ end=+'+ contains=javaScriptSpecial,@htmlPreproc syn region javaScriptStringS start=+'+ skip=+\\\\\|\\'+ end=+'\|$+ contains=javaScriptSpecial,@htmlPreproc
syntax region javaScriptRegexpString start=+/\(\*\|/\)\@!+ skip=+\\\\\|\\/+ end=+/[gim]\{,3}+ contains=javaScriptSpecial,@htmlPreproc oneline
syntax match javaScriptNumber /\<-\=\d\+L\=\>\|\<0[xX]\x\+\>/ syn match javaScriptSpecialCharacter "'\\.'"
syn match javaScriptNumber "-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>"
syn region javaScriptRegexpString start=+/[^/*]+me=e-1 skip=+\\\\\|\\/+ end=+/[gi]\{0,2\}\s*$+ end=+/[gi]\{0,2\}\s*[;.,)\]}]+me=e-1 contains=@htmlPreproc oneline
" syntax match javaScriptSpecial "\\\d\d\d\|\\x\x\{2\}\|\\u\x\{4\}\|\\."
" syntax region javaScriptStringD start=+"+ skip=+\\\\\|\\$"+ end=+"+ contains=javaScriptSpecial,@htmlPreproc
" syntax region javaScriptStringS start=+'+ skip=+\\\\\|\\$'+ end=+'+ contains=javaScriptSpecial,@htmlPreproc
" syntax region javaScriptRegexpString start=+/\(\*\|/\)\@!+ skip=+\\\\\|\\/+ end=+/[gim]\{,3}+ contains=javaScriptSpecial,@htmlPreproc oneline
" syntax match javaScriptNumber /\<-\=\d\+L\=\>\|\<0[xX]\x\+\>/
syntax match javaScriptFloat /\<-\=\%(\d\+\.\d\+\|\d\+\.\|\.\d\+\)\%([eE][+-]\=\d\+\)\=\>/ syntax match javaScriptFloat /\<-\=\%(\d\+\.\d\+\|\d\+\.\|\.\d\+\)\%([eE][+-]\=\d\+\)\=\>/
syntax match javaScriptLabel /\(?\s*\)\@<!\<\w\+\(\s*:\)\@=/ " syntax match javaScriptLabel /\(?\s*\)\@<!\<\w\+\(\s*:\)\@=/
"" JavaScript Prototype "" JavaScript Prototype
syntax keyword javaScriptPrototype prototype syntax keyword javaScriptPrototype prototype
" Ajax Support {{{ " DOM, Browser and Ajax Support {{{
"""""""""""""""""""""""" """"""""""""""""""""""""
syntax keyword javaScriptBrowserObjects window navigator screen history location syntax keyword javaScriptBrowserObjects window navigator screen history location
syntax keyword javaScriptDOMObjects document event HTMLElement Anchor Area Base Body Button Form Frame Frameset Image Link Meta Option Select Style Table TableCell TableRow Textarea syntax keyword javaScriptDOMObjects document event HTMLElement Anchor Area Base Body Button Form Frame Frameset Image Link Meta Option Select Style Table TableCell TableRow Textarea
syntax keyword javaScriptDOMMethods createTextNode createElement insertBefore replaceChild removeChild appendChild hasChildNodes cloneNode normalize isSupported hasAttributes getAttribute setAttribute removeAttribute getAttributeNode setAttributeNode removeAttributeNode getElementsByTagName hasAttribute getElementById syntax keyword javaScriptDOMMethods createTextNode createElement insertBefore replaceChild removeChild appendChild hasChildNodes cloneNode normalize isSupported hasAttributes getAttribute setAttribute removeAttribute getAttributeNode setAttributeNode removeAttributeNode getElementsByTagName hasAttribute getElementById adoptNode close compareDocumentPosition createAttribute createCDATASection createComment createDocumentFragment createElementNS createEvent createExpression createNSResolver createProcessingInstruction createRange createTreeWalker elementFromPoint evaluate getBoxObjectFor getElementsByClassName getSelection getUserData hasFocus importNode
syntax keyword javaScriptDOMProperties nodeName nodeValue nodeType parentNode childNodes firstChild lastChild previousSibling nextSibling attributes ownerDocument namespaceURI prefix localName tagName syntax keyword javaScriptDOMProperties nodeName nodeValue nodeType parentNode childNodes firstChild lastChild previousSibling nextSibling attributes ownerDocument namespaceURI prefix localName tagName
syntax keyword javaScriptAjaxObjects XMLHttpRequest syntax keyword javaScriptAjaxObjects XMLHttpRequest
syntax keyword javaScriptAjaxProperties readyState responseText responseXML status statusText syntax keyword javaScriptAjaxProperties readyState responseText responseXML statusText
syntax keyword javaScriptAjaxMethods onreadystatechange abort getAllResponseHeaders getResponseHeader open send setRequestHeader syntax keyword javaScriptAjaxMethods onreadystatechange abort getAllResponseHeaders getResponseHeader open send setRequestHeader
syntax keyword javaScriptPropietaryObjects ActiveXObject syntax keyword javaScriptPropietaryObjects ActiveXObject
@@ -98,27 +96,31 @@ syntax keyword javaScriptEventListenerMethods scrollIntoView addEventListen
"" Programm Keywords "" Programm Keywords
syntax keyword javaScriptSource import export syntax keyword javaScriptSource import export
syntax keyword javaScriptType const this undefined var void yield syntax keyword javaScriptIdentifier arguments this let var void yield
syntax keyword javaScriptOperator delete new in instanceof let typeof syntax keyword javaScriptOperator delete new instanceof typeof
syntax keyword javaScriptBoolean true false syntax keyword javaScriptBoolean true false
syntax keyword javaScriptNull null syntax keyword javaScriptNull null undefined
syntax keyword javaScriptMessage alert confirm prompt status
syntax keyword javaScriptGlobal self top parent
syntax keyword javaScriptDeprecated escape unescape all applets alinkColor bgColor fgColor linkColor vlinkColor xmlEncoding
"" Statement Keywords "" Statement Keywords
syntax keyword javaScriptConditional if else syntax keyword javaScriptConditional if else switch
syntax keyword javaScriptRepeat do while for syntax keyword javaScriptRepeat do while for in
syntax keyword javaScriptBranch break continue switch case default return syntax keyword javaScriptBranch break continue
syntax keyword javaScriptStatement try catch throw with finally syntax keyword javaScriptLabel case default
syntax keyword javaScriptStatement return with
syntax keyword javaScriptGlobalObjects Array Boolean Date Function Infinity JavaArray JavaClass JavaObject JavaPackage Math Number NaN Object Packages RegExp String Undefined java netscape sun syntax keyword javaScriptGlobalObjects Array Boolean Date Function Infinity Math Number NaN Object Packages RegExp String netscape
syntax keyword javaScriptExceptions Error EvalError RangeError ReferenceError SyntaxError TypeError URIError syntax keyword javaScriptExceptions try catch throw finally Error EvalError RangeError ReferenceError SyntaxError TypeError URIError
syntax keyword javaScriptFutureKeys abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public syntax keyword javaScriptReserved abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public
"" DOM/HTML/CSS specified things "" DOM/HTML/CSS specified things
" DOM2 Objects " DOM2 Objects
syntax keyword javaScriptGlobalObjects DOMImplementation DocumentFragment Node NodeList NamedNodeMap CharacterData Attr Element Text Comment CDATASection DocumentType Notation Entity EntityReference ProcessingInstruction syntax keyword javaScriptType DOMImplementation DocumentFragment Node NodeList NamedNodeMap CharacterData Attr Element Text Comment CDATASection DocumentType Notation Entity EntityReference ProcessingInstruction
syntax keyword javaScriptExceptions DOMException syntax keyword javaScriptExceptions DOMException
" DOM2 CONSTANT " DOM2 CONSTANT
@@ -165,43 +167,23 @@ endif "DOM/HTML/CSS
"" Code blocks "" Code blocks
syntax cluster javaScriptAll contains=javaScriptComment,javaScriptLineComment,javaScriptDocComment,javaScriptStringD,javaScriptStringS,javaScriptRegexpString,javaScriptNumber,javaScriptFloat,javaScriptLabel,javaScriptSource,javaScriptType,javaScriptOperator,javaScriptBoolean,javaScriptNull,javaScriptFunction,javaScriptConditional,javaScriptRepeat,javaScriptBranch,javaScriptStatement,javaScriptGlobalObjects,javaScriptExceptions,javaScriptFutureKeys,javaScriptDomErrNo,javaScriptDomNodeConsts,javaScriptHtmlEvents,javaScriptDotNotation,javaScriptBrowserObjects,javaScriptDOMObjects,javaScriptAjaxObjects,javaScriptPropietaryObjects,javaScriptDOMMethods,javaScriptHtmlElemProperties,javaScriptDOMProperties,javaScriptEventListenerKeywords,javaScriptEventListenerMethods,javaScriptAjaxProperties,javaScriptAjaxMethods syntax cluster javaScriptAll contains=javaScriptComment,javaScriptLineComment,javaScriptDocComment,javaScriptStringD,javaScriptStringS,javaScriptRegexpString,javaScriptNumber,javaScriptFloat,javaScriptLabel,javaScriptSource,javaScriptType,javaScriptOperator,javaScriptBoolean,javaScriptNull,javaScriptFunction,javaScriptConditional,javaScriptGlobal,javaScriptRepeat,javaScriptBranch,javaScriptStatement,javaScriptGlobalObjects,javaScriptMessage,javaScriptIdentifier,javaScriptExceptions,javaScriptReserved,javaScriptDeprecated,javaScriptDomErrNo,javaScriptDomNodeConsts,javaScriptHtmlEvents,javaScriptDotNotation,javaScriptBrowserObjects,javaScriptDOMObjects,javaScriptAjaxObjects,javaScriptPropietaryObjects,javaScriptDOMMethods,javaScriptHtmlElemProperties,javaScriptDOMProperties,javaScriptEventListenerKeywords,javaScriptEventListenerMethods,javaScriptAjaxProperties,javaScriptAjaxMethods
syntax region javaScriptBracket matchgroup=javaScriptBracket transparent start="\[" end="\]" contains=@javaScriptAll,javaScriptParensErrB,javaScriptParensErrC,javaScriptBracket,javaScriptParen,javaScriptBlock,@htmlPreproc
syntax region javaScriptParen matchgroup=javaScriptParen transparent start="(" end=")" contains=@javaScriptAll,javaScriptParensErrA,javaScriptParensErrC,javaScriptParen,javaScriptBracket,javaScriptBlock,@htmlPreproc
syntax region javaScriptBlock matchgroup=javaScriptBlock transparent start="{" end="}" contains=@javaScriptAll,javaScriptParensErrA,javaScriptParensErrB,javaScriptParen,javaScriptBracket,javaScriptBlock,@htmlPreproc
"" catch errors caused by wrong parenthesis
syntax match javaScriptParensError ")\|}\|\]"
syntax match javaScriptParensErrA contained "\]"
syntax match javaScriptParensErrB contained ")"
syntax match javaScriptParensErrC contained "}"
if main_syntax == "javascript" if main_syntax == "javascript"
syntax sync clear syntax sync clear
syntax sync ccomment javaScriptComment minlines=200 syntax sync ccomment javaScriptComment minlines=200
syntax sync match javaScriptHighlight grouphere javaScriptBlock /{/ " syntax sync match javaScriptHighlight grouphere javaScriptBlock /{/
endif endif
"" Fold control syntax match javaScriptFunction /\<function\>/ nextgroup=javaScriptFuncName skipwhite
if exists("b:javascript_fold") syntax region javaScriptFuncName contained matchgroup=javaScriptFuncName start=/\%(\$\|\w\)*\s*(/ end=/)/ contains=javaScriptLineComment,javaScriptComment nextgroup=javaScriptFuncBlock skipwhite skipempty
syntax match javaScriptFunction /\<function\>/ nextgroup=javaScriptFuncName skipwhite " syntax region javaScriptFuncBlock contained matchgroup=javaScriptFuncBlock start="{" end="}" contains=@javaScriptAll,javaScriptParensErrA,javaScriptParensErrB,javaScriptParen,javaScriptBracket,javaScriptBlock fold
syntax match javaScriptOpAssign /=\@<!=/ nextgroup=javaScriptFuncBlock skipwhite skipempty
syntax region javaScriptFuncName contained matchgroup=javaScriptFuncName start=/\%(\$\|\w\)*\s*(/ end=/)/ contains=javaScriptLineComment,javaScriptComment nextgroup=javaScriptFuncBlock skipwhite skipempty
syntax region javaScriptFuncBlock contained matchgroup=javaScriptFuncBlock start="{" end="}" contains=@javaScriptAll,javaScriptParensErrA,javaScriptParensErrB,javaScriptParen,javaScriptBracket,javaScriptBlock fold
if &l:filetype=='javascript' && !&diff syn match javaScriptBraces "[{}\[\]]"
" Fold setting syn match javaScriptParens "[()]"
" Redefine the foldtext (to show a JS function outline) and foldlevel syn match javaScriptOpSymbols "=\{1,3}\|!==\|!=\|<\|>\|>=\|<=\|++\|+=\|--\|-="
" only if the entire buffer is JavaScript, but not if JavaScript syntax syn match javaScriptEndColons "[;,]$"
" is embedded in another syntax (e.g. HTML). syn match javaScriptLogicSymbols "\(&&\)\|\(||\)"
setlocal foldmethod=syntax
setlocal foldlevel=4
endif
else
syntax keyword javaScriptFunction function
setlocal foldmethod<
setlocal foldlevel<
endif
" Define the default highlighting. " Define the default highlighting.
" For version 5.7 and earlier: only when not done already " For version 5.7 and earlier: only when not done already
@@ -213,6 +195,12 @@ if version >= 508 || !exists("did_javascript_syn_inits")
else else
command -nargs=+ HiLink hi def link <args> command -nargs=+ HiLink hi def link <args>
endif endif
HiLink javaScriptEndColons Exception
HiLink javaScriptOpSymbols Operator
HiLink javaScriptLogicSymbols Boolean
HiLink javaScriptBraces Function
HiLink javaScriptParens Operator
HiLink javaScriptComment Comment HiLink javaScriptComment Comment
HiLink javaScriptLineComment Comment HiLink javaScriptLineComment Comment
HiLink javaScriptDocComment Comment HiLink javaScriptDocComment Comment
@@ -224,18 +212,23 @@ if version >= 508 || !exists("did_javascript_syn_inits")
HiLink javaScriptStringS String HiLink javaScriptStringS String
HiLink javaScriptStringD String HiLink javaScriptStringD String
HiLink javaScriptRegexpString String HiLink javaScriptRegexpString String
HiLink javaScriptGlobal Constant
HiLink javaScriptCharacter Character HiLink javaScriptCharacter Character
HiLink javaScriptPrototype Type HiLink javaScriptPrototype Type
HiLink javaScriptConditional Conditional HiLink javaScriptConditional Conditional
HiLink javaScriptBranch Conditional HiLink javaScriptBranch Conditional
HiLink javaScriptIdentifier Identifier
HiLink javaScriptRepeat Repeat HiLink javaScriptRepeat Repeat
HiLink javaScriptStatement Statement HiLink javaScriptStatement Statement
HiLink javaScriptFunction Function HiLink javaScriptFunction Function
HiLink javaScriptMessage Keyword
HiLink javaScriptDeprecated Exception
HiLink javaScriptError Error HiLink javaScriptError Error
HiLink javaScriptParensError Error HiLink javaScriptParensError Error
HiLink javaScriptParensErrA Error HiLink javaScriptParensErrA Error
HiLink javaScriptParensErrB Error HiLink javaScriptParensErrB Error
HiLink javaScriptParensErrC Error HiLink javaScriptParensErrC Error
HiLink javaScriptReserved Keyword
HiLink javaScriptOperator Operator HiLink javaScriptOperator Operator
HiLink javaScriptType Type HiLink javaScriptType Type
HiLink javaScriptNull Type HiLink javaScriptNull Type
@@ -271,8 +264,10 @@ if version >= 508 || !exists("did_javascript_syn_inits")
HiLink javaScriptFuncName Title HiLink javaScriptFuncName Title
HiLink javaScriptHtmlEvents Special
HiLink javaScriptHtmlElemProperties Boolean HiLink javaScriptHtmlElemProperties Boolean
HiLink javaScriptEventListenerKeyword Keyword
HiLink javaScriptEventListenerKeywords Keyword
HiLink javaScriptNumber Number HiLink javaScriptNumber Number
HiLink javaScriptPropietaryObjects Constant HiLink javaScriptPropietaryObjects Constant