diff options
| author | Adam Stankiewicz <sheerun@sher.pl> | 2016-07-30 13:18:40 +0200 | 
|---|---|---|
| committer | Adam Stankiewicz <sheerun@sher.pl> | 2016-07-30 13:19:35 +0200 | 
| commit | ab61d2ac8eafc9c10097577736602da48ec568ca (patch) | |
| tree | c33fcffa647794194376beb91ee35d8d3f8fcc4e /syntax | |
| parent | f42e1f477ccc8ba4ef756b6d7d16a26686b4b75f (diff) | |
| download | vim-polyglot-ab61d2ac8eafc9c10097577736602da48ec568ca.tar.gz vim-polyglot-ab61d2ac8eafc9c10097577736602da48ec568ca.zip | |
Update
Diffstat (limited to 'syntax')
| -rw-r--r-- | syntax/javascript.vim | 67 | 
1 files changed, 44 insertions, 23 deletions
| diff --git a/syntax/javascript.vim b/syntax/javascript.vim index 6bbeab93..20c5b1e6 100644 --- a/syntax/javascript.vim +++ b/syntax/javascript.vim @@ -14,13 +14,13 @@ if !exists("main_syntax")    let main_syntax = 'javascript'  endif -if !exists('g:javascript_conceal') -  let g:javascript_conceal = 0 +" Dollar sign is permitted anywhere in an identifier +if v:version > 704 || v:version == 704 && has('patch1142') +  syntax iskeyword @,48-57,_,192-255,$ +else +  setlocal iskeyword+=$  endif -" Dollar sign is permittd anywhere in an identifier -setlocal iskeyword+=$ -  syntax sync fromstart  " TODO: Figure out what type of casing I need  " syntax case ignore @@ -31,7 +31,8 @@ syntax match   jsFuncCall       /\k\+\%(\s*(\)\@=/  syntax match   jsParensError    /[)}\]]/  " Program Keywords -syntax keyword jsStorageClass   const var let skipwhite skipempty nextgroup=jsDestructuringBlock,jsDestructuringArray +syntax keyword jsStorageClass   const var let skipwhite skipempty nextgroup=jsDestructuringBlock,jsDestructuringArray,jsVariableDef +syntax match   jsVariableDef    contained /\k\+/ nextgroup=jsFlowDefinition  syntax keyword jsOperator       delete instanceof typeof void new in of  syntax match   jsOperator       /[\!\|\&\+\-\<\>\=\%\/\*\~\^]\{1}/  syntax keyword jsBooleanTrue    true @@ -44,7 +45,7 @@ syntax keyword jsModuleOperators contained from  syntax keyword jsModuleOperators contained as  syntax region  jsModuleGroup     contained matchgroup=jsBraces start=/{/ end=/}/ contains=jsModuleOperators,jsNoise,jsComment  syntax match   jsModuleAsterisk  contained /*/ -syntax keyword jsModuleDefault   contained default skipwhite kipempty nextgroup=@jsExpression +syntax keyword jsModuleDefault   contained default skipwhite skipempty nextgroup=@jsExpression  syntax region  jsImportContainer start=/\<import\> / end="\%(;\|$\)" contains=jsModuleKeywords,jsModuleOperators,jsComment,jsString,jsTemplateString,jsNoise,jsModuleGroup,jsModuleAsterisk  syntax region  jsExportContainer start=/\<export\> / end="\%(;\|$\)" contains=jsModuleKeywords,jsModuleOperators,jsStorageClass,jsModuleDefault,@jsExpression  syntax region  jsExportBlock     contained matchgroup=jsBraces start=/{/ end=/}/ contains=jsModuleOperators,jsNoise,jsComment @@ -54,9 +55,9 @@ syntax region  jsString           start=+"+  skip=+\\\("\|$\)+  end=+"\|$+  cont  syntax region  jsString           start=+'+  skip=+\\\('\|$\)+  end=+'\|$+  contains=jsSpecial,@Spell extend  syntax region  jsTemplateString   start=+`+  skip=+\\\(`\|$\)+  end=+`+     contains=jsTemplateVar,jsSpecial extend  syntax match   jsTaggedTemplate   /\k\+\%(`\)\@=/ nextgroup=jsTemplateString -syntax match   jsNumber           /\<-\=\d\+\(L\|[eE][+-]\=\d\+\)\=\>\|\<0[xX]\x\+\>/ +syntax match   jsNumber           /\<\d\+\%([eE][+-]\=\d\+\)\=\>\|\<0[bB][01]\+\>\|\<0[oO]\o\+\>\|\<0[xX]\x\+\>/  syntax keyword jsNumber           Infinity -syntax match   jsFloat            /\<-\=\%(\d\+\.\d\+\|\d\+\.\|\.\d\+\)\%([eE][+-]\=\d\+\)\=\>/ +syntax match   jsFloat            /\<\%(\d\+\.\d\+\|\d\+\.\|\.\d\+\)\%([eE][+-]\=\d\+\)\=\>/  " Regular Expressions  syntax match   jsSpecial          contained "\v\\%(0|\\x\x\{2\}\|\\u\x\{4\}\|\c[A-Z]|.)" @@ -75,7 +76,7 @@ else  endif  syntax cluster jsRegexpSpecial    contains=jsSpecial,jsRegexpBoundary,jsRegexpBackRef,jsRegexpQuantifier,jsRegexpOr,jsRegexpMod -syntax match   jsObjectKey         contained /\<[0-9a-zA-Z_$]*\>\(\s*:\)\@=/ contains=jsFunctionKey skipwhite skipempty nextgroup=jsObjectValue,jsFlowParenRegion +syntax match   jsObjectKey         contained /\<[0-9a-zA-Z_$]*\>\(\s*:\)\@=/ contains=jsFunctionKey skipwhite skipempty nextgroup=jsObjectValue  syntax region  jsObjectKeyString   contained start=+"+  skip=+\\\("\|$\)+  end=+"\|$+  contains=jsSpecial,@Spell skipwhite skipempty nextgroup=jsObjectValue  syntax region  jsObjectKeyString   contained start=+'+  skip=+\\\('\|$\)+  end=+'\|$+  contains=jsSpecial,@Spell skipwhite skipempty nextgroup=jsObjectValue  syntax region  jsObjectKeyComputed contained matchgroup=jsBrackets start=/\[/ end=/]/ contains=@jsExpression skipwhite skipempty nextgroup=jsObjectValue,jsFuncArgs extend @@ -97,10 +98,11 @@ exe 'syntax keyword jsSuper     super  contained '.(exists('g:javascript_conceal  " Statement Keywords  syntax keyword jsStatement    contained break continue with yield debugger -syntax keyword jsConditional            if else      skipwhite skipempty nextgroup=jsParenIfElse,jsBlock +syntax keyword jsConditional            if           skipwhite skipempty nextgroup=jsParenIfElse +syntax keyword jsConditional            else         skipwhite skipempty nextgroup=jsCommentMisc,jsBlock  syntax keyword jsConditional            switch       skipwhite skipempty nextgroup=jsParenSwitch  syntax keyword jsRepeat                 while for    skipwhite skipempty nextgroup=jsParenRepeat -syntax keyword jsRepeat                 do           skipwhite skipempty nextgroup=jsBlock +syntax keyword jsDo                     do           skipwhite skipempty nextgroup=jsBlock  syntax keyword jsLabel        contained case default  syntax keyword jsTry                    try          skipwhite skipempty nextgroup=jsTryCatchBlock  syntax keyword jsFinally      contained finally      skipwhite skipempty nextgroup=jsBlock @@ -111,6 +113,8 @@ syntax match   jsSwitchColon  contained /:/          skipwhite skipempty nextgro  " Keywords  syntax keyword jsGlobalObjects  Array Boolean Date Function Iterator Number Object Symbol Map WeakMap Set RegExp String Proxy Promise Buffer ParallelArray ArrayBuffer DataView Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray JSON Math console document window Intl Collator DateTimeFormat NumberFormat +syntax keyword jsGlobalNodeObjects module exports global process +syntax match   jsGlobalNodeObjects /require/ contains=jsFuncCall  syntax keyword jsExceptions     Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError  syntax keyword jsBuiltins       decodeURI decodeURIComponent encodeURI encodeURIComponent eval isFinite isNaN parseFloat parseInt uneval  " DISCUSS: How imporant is this, really? Perhaps it should be linked to an error because I assume the keywords are reserved? @@ -133,12 +137,12 @@ syntax keyword jsHtmlEvents     onblur onclick oncontextmenu ondblclick onfocus  "" Code blocks  syntax region  jsBracket                      matchgroup=jsBrackets            start=/\[/ end=/\]/ contains=@jsExpression extend fold  syntax region  jsParen                        matchgroup=jsParens              start=/(/  end=/)/  contains=@jsAll extend fold -syntax region  jsParenIfElse        contained matchgroup=jsParens              start=/(/  end=/)/  contains=@jsAll skipwhite skipempty nextgroup=jsBlock extend fold -syntax region  jsParenRepeat        contained matchgroup=jsParens              start=/(/  end=/)/  contains=@jsAll skipwhite skipempty nextgroup=jsBlock extend fold +syntax region  jsParenIfElse        contained matchgroup=jsParens              start=/(/  end=/)/  contains=@jsAll skipwhite skipempty nextgroup=jsCommentMisc,jsBlock extend fold +syntax region  jsParenRepeat        contained matchgroup=jsParens              start=/(/  end=/)/  contains=@jsAll skipwhite skipempty nextgroup=jsCommentMisc,jsBlock extend fold  syntax region  jsParenSwitch        contained matchgroup=jsParens              start=/(/  end=/)/  contains=@jsAll skipwhite skipempty nextgroup=jsSwitchBlock extend fold  syntax region  jsParenCatch         contained matchgroup=jsParens              start=/(/  end=/)/  skipwhite skipempty nextgroup=jsTryCatchBlock extend fold -syntax region  jsFuncArgs           contained matchgroup=jsFuncParens          start=/(/  end=/)/  contains=jsFuncArgCommas,jsComment,jsFuncArgExpression,jsDestructuringBlock,jsRestExpression,jsFlow skipwhite skipempty nextgroup=jsFuncBlock,jsFlowReturn extend fold -syntax region  jsClassBlock         contained matchgroup=jsClassBraces         start=/{/  end=/}/  contains=jsClassFuncName,jsClassMethodType,jsOperator,jsArrowFunction,jsArrowFuncArgs,jsComment,jsGenerator,jsDecorator,jsClassProperty,jsClassPropertyComputed,jsClassStringKey,jsNoise,jsFlowClassProperty extend fold +syntax region  jsFuncArgs           contained matchgroup=jsFuncParens          start=/(/  end=/)/  contains=jsFuncArgCommas,jsComment,jsFuncArgExpression,jsDestructuringBlock,jsRestExpression,jsFlowArgumentDef skipwhite skipempty nextgroup=jsCommentFunction,jsFuncBlock,jsFlowReturn extend fold +syntax region  jsClassBlock         contained matchgroup=jsClassBraces         start=/{/  end=/}/  contains=jsClassFuncName,jsClassMethodType,jsArrowFunction,jsArrowFuncArgs,jsComment,jsGenerator,jsDecorator,jsClassProperty,jsClassPropertyComputed,jsClassStringKey,jsNoise extend fold  syntax region  jsFuncBlock          contained matchgroup=jsFuncBraces          start=/{/  end=/}/  contains=@jsAll extend fold  syntax region  jsBlock              contained matchgroup=jsBraces              start=/{/  end=/}/  contains=@jsAll extend fold  syntax region  jsTryCatchBlock      contained matchgroup=jsBraces              start=/{/  end=/}/  contains=@jsAll skipwhite skipempty nextgroup=jsCatch,jsFinally extend fold @@ -152,7 +156,7 @@ syntax region  jsRestExpression     contained matchgroup=jsRestOperator        s  syntax region  jsTernaryIf                    matchgroup=jsTernaryIfOperator   start=/?/  end=/\%(:\|[\}]\@=\)/  contains=@jsExpression  syntax match   jsGenerator            contained /\*/ skipwhite skipempty nextgroup=jsFuncName,jsFuncArgs -syntax match   jsFuncName             contained /\<[a-zA-Z_$][0-9a-zA-Z_$]*\>/ skipwhite skipempty nextgroup=jsFuncArgs +syntax match   jsFuncName             contained /\<[a-zA-Z_$][0-9a-zA-Z_$]*\>/ skipwhite skipempty nextgroup=jsFuncArgs,jsFlowFunctionGroup  syntax region  jsFuncArgExpression    contained matchgroup=jsFuncArgOperator start=/=/ end=/[,)]\@=/ contains=@jsExpression extend  syntax match   jsFuncArgCommas        contained ','  syntax keyword jsArguments            contained arguments @@ -168,7 +172,7 @@ exe 'syntax match jsArrowFunction /=>/      skipwhite skipempty nextgroup=jsFunc  syntax keyword jsClassKeywords          contained extends class  syntax match   jsClassNoise             contained /\./  syntax match   jsClassMethodType        contained /\%(get\|set\|static\|async\)\%( \k\+\)\@=/ skipwhite skipempty nextgroup=jsFuncName,jsClassProperty -syntax match   jsClassDefinition        /\<class\>\%( [a-zA-Z_$][0-9a-zA-Z_$ \n.]*\)*/ contains=jsClassKeywords,jsClassNoise skipwhite skipempty nextgroup=jsClassBlock,jsFlowClass +syntax match   jsClassDefinition        /\<class\>\%( [a-zA-Z_$][0-9a-zA-Z_$ \n.]*\)*/ contains=jsClassKeywords,jsClassNoise skipwhite skipempty nextgroup=jsCommentClass,jsClassBlock,jsFlowClassGroup  syntax match   jsDecorator              contained "@" nextgroup=jsDecoratorFunction  syntax match   jsDecoratorFunction      contained "[a-zA-Z_][a-zA-Z0-9_.]*"  syntax match   jsClassProperty          contained /\<[0-9a-zA-Z_$]*\>\(\s*=\)\@=/ skipwhite skipempty nextgroup=jsClassValue @@ -193,6 +197,16 @@ syntax region  jsComment        start=/\/\// end=/$/ contains=jsCommentTodo,@Spe  syntax region  jsComment        start=/\/\*/  end=/\*\// contains=jsCommentTodo,@Spell fold extend keepend  syntax region  jsEnvComment     start=/\%^#!/ end=/$/ display +" Specialized Comments - These are special comment regexes that are used in +" odd places that maintain the proper nextgroup functionality. It sucks we +" can't make jsComment a skippable type of group for nextgroup +syntax region  jsCommentFunction    contained start=/\/\// end=/$/    contains=jsCommentTodo,@Spell skipwhite skipempty nextgroup=jsFuncBlock,jsFlowReturn extend keepend +syntax region  jsCommentFunction    contained start=/\/\*/ end=/\*\// contains=jsCommentTodo,@Spell skipwhite skipempty nextgroup=jsFuncBlock,jsFlowReturn fold extend keepend +syntax region  jsCommentClass       contained start=/\/\// end=/$/    contains=jsCommentTodo,@Spell skipwhite skipempty nextgroup=jsClassBlock,jsFlowClassGroup extend keepend +syntax region  jsCommentClass       contained start=/\/\*/ end=/\*\// contains=jsCommentTodo,@Spell skipwhite skipempty nextgroup=jsClassBlock,jsFlowClassGroup fold extend keepend +syntax region  jsCommentMisc        contained start=/\/\// end=/$/    contains=jsCommentTodo,@Spell skipwhite skipempty nextgroup=jsBlock extend keepend +syntax region  jsCommentMisc        contained start=/\/\*/ end=/\*\// contains=jsCommentTodo,@Spell skipwhite skipempty nextgroup=jsBlock fold extend keepend +  if exists("javascript_plugin_jsdoc")    runtime extras/jsdoc.vim    " NGDoc requires JSDoc @@ -205,7 +219,7 @@ if exists("javascript_plugin_flow")    runtime extras/flow.vim  endif -syntax cluster jsExpression  contains=jsBracket,jsParen,jsObject,jsBlock,jsTernaryIf,jsTaggedTemplate,jsTemplateString,jsString,jsRegexpString,jsNumber,jsFloat,jsOperator,jsBooleanTrue,jsBooleanFalse,jsNull,jsFunction,jsArrowFunction,jsGlobalObjects,jsExceptions,jsFutureKeys,jsDomErrNo,jsDomNodeConsts,jsHtmlEvents,jsFuncCall,jsUndefined,jsNan,jsPrototype,jsBuiltins,jsNoise,jsClassDefinition,jsArrowFunction,jsArrowFuncArgs,jsParensError,jsComment,jsArguments,jsThis,jsSuper +syntax cluster jsExpression  contains=jsBracket,jsParen,jsObject,jsBlock,jsTernaryIf,jsTaggedTemplate,jsTemplateString,jsString,jsRegexpString,jsNumber,jsFloat,jsOperator,jsBooleanTrue,jsBooleanFalse,jsNull,jsFunction,jsArrowFunction,jsGlobalObjects,jsExceptions,jsFutureKeys,jsDomErrNo,jsDomNodeConsts,jsHtmlEvents,jsFuncCall,jsUndefined,jsNan,jsPrototype,jsBuiltins,jsNoise,jsClassDefinition,jsArrowFunction,jsArrowFuncArgs,jsParensError,jsComment,jsArguments,jsThis,jsSuper,jsDo  syntax cluster jsAll         contains=@jsExpression,jsExportContainer,jsImportContainer,jsStorageClass,jsConditional,jsRepeat,jsReturn,jsStatement,jsException,jsTry,jsAsyncKeyword  " Define the default highlighting. @@ -243,6 +257,7 @@ if version >= 508 || !exists("did_javascript_syn_inits")    HiLink jsLabel                Label    HiLink jsReturn               Statement    HiLink jsRepeat               Repeat +  HiLink jsDo                   Repeat    HiLink jsStatement            Statement    HiLink jsException            Exception    HiLink jsTry                  Exception @@ -264,7 +279,7 @@ if version >= 508 || !exists("did_javascript_syn_inits")    HiLink jsStorageClass         StorageClass    HiLink jsClassKeywords        Structure    HiLink jsThis                 Special -  HiLink jsSuper                Special +  HiLink jsSuper                Constant    HiLink jsNan                  Number    HiLink jsNull                 Type    HiLink jsUndefined            Type @@ -285,9 +300,10 @@ if version >= 508 || !exists("did_javascript_syn_inits")    HiLink jsSpecial              Special    HiLink jsTemplateVar          Special    HiLink jsTemplateBraces       jsBraces -  HiLink jsGlobalObjects        Special -  HiLink jsExceptions           Special -  HiLink jsBuiltins             Special +  HiLink jsGlobalObjects        Constant +  HiLink jsGlobalNodeObjects    Constant +  HiLink jsExceptions           Constant +  HiLink jsBuiltins             Constant    HiLink jsModuleKeywords       Include    HiLink jsModuleOperators      Include    HiLink jsModuleDefault        Include @@ -302,12 +318,17 @@ if version >= 508 || !exists("did_javascript_syn_inits")    HiLink jsSwitchColon          Noise    HiLink jsClassMethodType      Type    HiLink jsObjectMethodType     Type +  HiLink jsClassDefinition      jsFuncName    HiLink jsDestructuringBraces     Noise    HiLink jsDestructuringProperty   jsFuncArgs    HiLink jsDestructuringAssignment jsObjectKey    HiLink jsDestructuringNoise      Noise +  HiLink jsCommentFunction      jsComment +  HiLink jsCommentClass         jsComment +  HiLink jsCommentMisc          jsComment +    HiLink jsDomErrNo             Constant    HiLink jsDomNodeConsts        Constant    HiLink jsDomElemAttrs         Label | 
