codekingpro/portable-devtools
115k
1" Vim syntax file2" Language: JavaScript3" Maintainer: Claudio Fleiner <claudio@fleiner.com>4" Updaters: Scott Shattuck (ss) <ss@technicalpursuit.com>5" URL: http://www.fleiner.com/vim/syntax/javascript.vim6" Changes: (ss) added keywords, reserved words, and other identifiers7" (ss) repaired several quoting and grouping glitches8" (ss) fixed regex parsing issue with multiple qualifiers [gi]9" (ss) additional factoring of keywords, globals, and members10" Last Change: 2022 Jun 0911" 2013 Jun 12: adjusted javaScriptRegexpString (Kevin Locke)12" 2018 Apr 14: adjusted javaScriptRegexpString (LongJohnCoder)13" 2024 Aug 14: fix a few stylistic issues (#15480)14" 2025 Aug 07: as is a reserved keyword (#17912)15" 2025 Sep 24: using is a reserved keyword (Devin Weaver)16 17" tuning parameters:18" unlet javaScript_fold19 20if !exists("main_syntax")21 " quit when a syntax file was already loaded22 if exists("b:current_syntax")23 finish24 endif25 let main_syntax = 'javascript'26elseif exists("b:current_syntax") && b:current_syntax == "javascript"27 finish28endif29 30let s:cpo_save = &cpo31set cpo&vim32 33 34syn keyword javaScriptCommentTodo TODO FIXME XXX TBD contained35syn match javaScriptLineComment "\/\/.*" contains=@Spell,javaScriptCommentTodo36syn match javaScriptCommentSkip "^[ \t]*\*\($\|[ \t]\+\)"37syn region javaScriptComment start="/\*" end="\*/" contains=@Spell,javaScriptCommentTodo38syn match javaScriptSpecial "\\\d\d\d\|\\."39syn region javaScriptStringD start=+"+ skip=+\\\\\|\\"+ end=+"\|$+ contains=javaScriptSpecial,@htmlPreproc40syn region javaScriptStringS start=+'+ skip=+\\\\\|\\'+ end=+'\|$+ contains=javaScriptSpecial,@htmlPreproc41syn region javaScriptStringT start=+`+ skip=+\\\\\|\\`+ end=+`+ contains=javaScriptSpecial,javaScriptEmbed,@htmlPreproc42 43syn region javaScriptEmbed start=+${+ end=+}+ contains=@javaScriptEmbededExpr44 45" number handling by Christopher Leonard chris.j.leonard@gmx.com46syn match javaScriptSpecialCharacter "'\\.'"47syn match javaScriptNumber "\<0[bB][0-1]\+\(_[0-1]\+\)*\>"48syn match javaScriptNumber "\<0[oO][0-7]\+\(_[0-7]\+\)*\>"49syn match javaScriptNumber "\<0\([0-7]\+\(_[0-7]\+\)*\)\?\>"50syn match javaScriptNumber "\<0[xX][0-9a-fA-F]\+\(_[0-9a-fA-F]\+\)*\>"51syn match javaScriptNumber "\<\d\+\(_\d\+\)*[eE][+-]\?\d\+\>"52syn match javaScriptNumber "\<[1-9]\d*\(_\d\+\)*\(\.\(\d\+\(_\d\+\)*\([eE][+-]\?\d\+\)\?\)\?\)\?\>"53syn match javaScriptNumber "\<\(\d\+\(_\d\+\)*\)\?\.\d\+\(_\d\+\)*\([eE][+-]\?\d\+\)\?\>"54syn match javaScriptNumber "\<\d\+\(_\d\+\)*\.\(\d\+\(_\d\+\)*\([eE][+-]\?\d\+\)\?\)\?\>"55syn region javaScriptRegexpString start=+[,(=+]\s*/[^/*]+ms=e-1,me=e-1 skip=+\\\\\|\\/+ end=+/[gimuys]\{0,2\}\s*$+ end=+/[gimuys]\{0,2\}\s*[+;.,)\]}]+me=e-1 end=+/[gimuys]\{0,2\}\s\+\/+me=e-1 contains=@htmlPreproc,javaScriptComment oneline56 57syn keyword javaScriptConditional if else switch58syn keyword javaScriptRepeat while for do in of59syn keyword javaScriptBranch break continue60syn keyword javaScriptOperator new delete instanceof typeof61syn keyword javaScriptType Array Boolean Date Function Number Object String RegExp62syn keyword javaScriptStatement return with await yield63syn keyword javaScriptBoolean true false64syn keyword javaScriptNull null undefined65syn keyword javaScriptIdentifier arguments this66syn keyword javaScriptLabel case default67syn keyword javaScriptException try catch finally throw68syn keyword javaScriptMessage alert confirm prompt status69syn keyword javaScriptGlobal self window top parent70syn keyword javaScriptMember document event location71syn keyword javaScriptDeprecated escape unescape72syn keyword javaScriptReserved abstract as boolean byte char class const debugger double enum export extends final float from goto implements import int interface let long native package private protected public short super synchronized throws transient var volatile async using73syn keyword javaScriptModifier static74 75syn cluster javaScriptEmbededExpr contains=javaScriptBoolean,javaScriptNull,javaScriptIdentifier,javaScriptStringD,javaScriptStringS,javaScriptStringT76 77if exists("javaScript_fold")78 syn match javaScriptFunction "\<function\>"79 syn region javaScriptFunctionFold start="\<function\>.*[^};]$" end="^\z1}.*$" transparent fold keepend80 81 syn sync match javaScriptSync grouphere javaScriptFunctionFold "\<function\>"82 syn sync match javaScriptSync grouphere NONE "^}"83 84 setlocal foldmethod=syntax85 setlocal foldtext=getline(v:foldstart)86else87 syn keyword javaScriptFunction function88 syn match javaScriptBraces "[{}\[\]]"89 syn match javaScriptParens "[()]"90endif91 92if main_syntax == "javascript"93 syn sync fromstart94 syn sync maxlines=10095 96 syn sync ccomment javaScriptComment97endif98 99" Define the default highlighting.100" Only when an item doesn't have highlighting yet101hi def link javaScriptComment Comment102hi def link javaScriptLineComment Comment103hi def link javaScriptCommentTodo Todo104hi def link javaScriptSpecial Special105hi def link javaScriptStringS String106hi def link javaScriptStringD String107hi def link javaScriptStringT String108hi def link javaScriptCharacter Character109hi def link javaScriptSpecialCharacter javaScriptSpecial110hi def link javaScriptNumber Number111hi def link javaScriptConditional Conditional112hi def link javaScriptRepeat Repeat113hi def link javaScriptBranch Conditional114hi def link javaScriptOperator Operator115hi def link javaScriptType Type116hi def link javaScriptStatement Statement117hi def link javaScriptFunction Keyword118hi def link javaScriptBraces Function119hi def link javaScriptError Error120hi def link javaScrParenError javaScriptError121hi def link javaScriptNull Keyword122hi def link javaScriptBoolean Boolean123hi def link javaScriptRegexpString String124 125hi def link javaScriptIdentifier Identifier126hi def link javaScriptLabel Label127hi def link javaScriptException Exception128hi def link javaScriptMessage Keyword129hi def link javaScriptGlobal Keyword130hi def link javaScriptMember Keyword131hi def link javaScriptDeprecated Exception132hi def link javaScriptReserved Keyword133hi def link javaScriptModifier StorageClass134hi def link javaScriptDebug Debug135hi def link javaScriptConstant Label136hi def link javaScriptEmbed Special137 138 139 140let b:current_syntax = "javascript"141if main_syntax == 'javascript'142 unlet main_syntax143endif144let &cpo = s:cpo_save145unlet s:cpo_save146 147" vim: ts=8148 