1
0
Fork 0
mirror of https://github.com/vim/vim synced 2025-03-22 17:55:10 +01:00
vim/runtime/syntax/javascript.vim

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

146 lines
6.3 KiB
VimL
Raw Permalink Normal View History

2004-06-13 20:20:40 +00:00
" Vim syntax file
" Language: JavaScript
" Maintainer: Claudio Fleiner <claudio@fleiner.com>
2005-11-23 21:25:05 +00:00
" Updaters: Scott Shattuck (ss) <ss@technicalpursuit.com>
2004-06-13 20:20:40 +00:00
" URL: http://www.fleiner.com/vim/syntax/javascript.vim
2005-11-23 21:25:05 +00:00
" 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
2022-06-09 20:45:54 +01:00
" Last Change: 2022 Jun 09
2013-06-12 21:29:15 +02:00
" 2013 Jun 12: adjusted javaScriptRegexpString (Kevin Locke)
2018-04-20 22:36:41 +02:00
" 2018 Apr 14: adjusted javaScriptRegexpString (LongJohnCoder)
" 2024 Aug 14: fix a few stylistic issues (#15480)
2004-06-13 20:20:40 +00:00
" tuning parameters:
" unlet javaScript_fold
if !exists("main_syntax")
" quit when a syntax file was already loaded
if exists("b:current_syntax")
2004-06-13 20:20:40 +00:00
finish
endif
let main_syntax = 'javascript'
2013-07-24 19:53:36 +02:00
elseif exists("b:current_syntax") && b:current_syntax == "javascript"
finish
2004-06-13 20:20:40 +00:00
endif
2012-10-05 22:26:30 +02:00
let s:cpo_save = &cpo
set cpo&vim
2004-06-13 20:20:40 +00:00
syn keyword javaScriptCommentTodo TODO FIXME XXX TBD contained
2007-05-05 17:54:07 +00:00
syn match javaScriptLineComment "\/\/.*" contains=@Spell,javaScriptCommentTodo
2004-06-13 20:20:40 +00:00
syn match javaScriptCommentSkip "^[ \t]*\*\($\|[ \t]\+\)"
2007-05-05 17:54:07 +00:00
syn region javaScriptComment start="/\*" end="\*/" contains=@Spell,javaScriptCommentTodo
2004-06-13 20:20:40 +00:00
syn match javaScriptSpecial "\\\d\d\d\|\\."
2010-05-14 23:24:24 +02:00
syn region javaScriptStringD start=+"+ skip=+\\\\\|\\"+ end=+"\|$+ contains=javaScriptSpecial,@htmlPreproc
syn region javaScriptStringS start=+'+ skip=+\\\\\|\\'+ end=+'\|$+ contains=javaScriptSpecial,@htmlPreproc
2018-07-29 15:07:52 +02:00
syn region javaScriptStringT start=+`+ skip=+\\\\\|\\`+ end=+`+ contains=javaScriptSpecial,javaScriptEmbed,@htmlPreproc
syn region javaScriptEmbed start=+${+ end=+}+ contains=@javaScriptEmbededExpr
2005-11-23 21:25:05 +00:00
2022-06-09 20:45:54 +01:00
" number handling by Christopher Leonard chris.j.leonard@gmx.com
2004-06-13 20:20:40 +00:00
syn match javaScriptSpecialCharacter "'\\.'"
2022-06-09 20:45:54 +01:00
syn match javaScriptNumber "\<0[bB][0-1]\+\(_[0-1]\+\)*\>"
syn match javaScriptNumber "\<0[oO][0-7]\+\(_[0-7]\+\)*\>"
syn match javaScriptNumber "\<0\([0-7]\+\(_[0-7]\+\)*\)\?\>"
syn match javaScriptNumber "\<0[xX][0-9a-fA-F]\+\(_[0-9a-fA-F]\+\)*\>"
syn match javaScriptNumber "\<\d\+\(_\d\+\)*[eE][+-]\?\d\+\>"
syn match javaScriptNumber "\<[1-9]\d*\(_\d\+\)*\(\.\(\d\+\(_\d\+\)*\([eE][+-]\?\d\+\)\?\)\?\)\?\>"
syn match javaScriptNumber "\<\(\d\+\(_\d\+\)*\)\?\.\d\+\(_\d\+\)*\([eE][+-]\?\d\+\)\?\>"
syn match javaScriptNumber "\<\d\+\(_\d\+\)*\.\(\d\+\(_\d\+\)*\([eE][+-]\?\d\+\)\?\)\?\>"
2018-07-29 15:07:52 +02:00
syn 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 oneline
2005-11-23 21:25:05 +00:00
syn keyword javaScriptConditional if else switch
syn keyword javaScriptRepeat while for do in of
2005-11-23 21:25:05 +00:00
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 await yield
2004-12-09 21:34:53 +00:00
syn keyword javaScriptBoolean true false
2005-11-23 21:25:05 +00:00
syn keyword javaScriptNull null undefined
syn keyword javaScriptIdentifier arguments this
2005-11-23 21:25:05 +00:00
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 from goto implements import int interface let long native package private protected public short super synchronized throws transient var volatile async
syn keyword javaScriptModifier static
2004-06-13 20:20:40 +00:00
2018-07-29 15:07:52 +02:00
syn cluster javaScriptEmbededExpr contains=javaScriptBoolean,javaScriptNull,javaScriptIdentifier,javaScriptStringD,javaScriptStringS,javaScriptStringT
2004-06-13 20:20:40 +00:00
if exists("javaScript_fold")
2010-05-14 23:24:24 +02:00
syn match javaScriptFunction "\<function\>"
2004-06-13 20:20:40 +00:00
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
2010-05-14 23:24:24 +02:00
syn keyword javaScriptFunction function
2005-11-23 21:25:05 +00:00
syn match javaScriptBraces "[{}\[\]]"
syn match javaScriptParens "[()]"
2004-06-13 20:20:40 +00:00
endif
if main_syntax == "javascript"
2020-05-26 21:20:45 +02:00
syn sync fromstart
syn sync maxlines=100
2004-06-13 20:20:40 +00:00
syn sync ccomment javaScriptComment
endif
" Define the default highlighting.
" Only when an item doesn't have highlighting yet
hi def link javaScriptComment Comment
hi def link javaScriptLineComment Comment
hi def link javaScriptCommentTodo Todo
hi def link javaScriptSpecial Special
hi def link javaScriptStringS String
hi def link javaScriptStringD String
2018-07-29 15:07:52 +02:00
hi def link javaScriptStringT String
hi def link javaScriptCharacter Character
hi def link javaScriptSpecialCharacter javaScriptSpecial
hi def link javaScriptNumber Number
hi def link javaScriptConditional Conditional
hi def link javaScriptRepeat Repeat
hi def link javaScriptBranch Conditional
hi def link javaScriptOperator Operator
hi def link javaScriptType Type
hi def link javaScriptStatement Statement
hi def link javaScriptFunction Keyword
hi def link javaScriptBraces Function
hi def link javaScriptError Error
hi def link javaScrParenError javaScriptError
hi def link javaScriptNull Keyword
hi def link javaScriptBoolean Boolean
hi def link javaScriptRegexpString String
hi def link javaScriptIdentifier Identifier
hi def link javaScriptLabel Label
hi def link javaScriptException Exception
hi def link javaScriptMessage Keyword
hi def link javaScriptGlobal Keyword
hi def link javaScriptMember Keyword
hi def link javaScriptDeprecated Exception
hi def link javaScriptReserved Keyword
hi def link javaScriptModifier StorageClass
hi def link javaScriptDebug Debug
hi def link javaScriptConstant Label
2018-07-29 15:07:52 +02:00
hi def link javaScriptEmbed Special
2004-06-13 20:20:40 +00:00
let b:current_syntax = "javascript"
if main_syntax == 'javascript'
unlet main_syntax
endif
2012-10-05 22:26:30 +02:00
let &cpo = s:cpo_save
unlet s:cpo_save
2004-06-13 20:20:40 +00:00
" vim: ts=8