summaryrefslogtreecommitdiff
path: root/runtime/syntax
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-11-05 20:41:49 +0100
committerBram Moolenaar <Bram@vim.org>2020-11-05 20:41:49 +0100
commit3132cddd209ee510bde48b6520290cb26c8f604a (patch)
treebc010e66539817a382c76bc11cfb513605dcf033 /runtime/syntax
parent00806bceb6dc9c8dcd308e5f7e50f720f7dc71b0 (diff)
downloadvim-git-3132cddd209ee510bde48b6520290cb26c8f604a.tar.gz
Update runtime files
Diffstat (limited to 'runtime/syntax')
-rw-r--r--runtime/syntax/asm.vim100
-rw-r--r--runtime/syntax/asmh8300.vim48
-rw-r--r--runtime/syntax/awk.vim7
-rw-r--r--runtime/syntax/debchangelog.vim10
-rw-r--r--runtime/syntax/debcontrol.vim16
-rw-r--r--runtime/syntax/debsources.vim10
-rw-r--r--runtime/syntax/proto.vim60
-rw-r--r--runtime/syntax/typescriptcommon.vim225
8 files changed, 272 insertions, 204 deletions
diff --git a/runtime/syntax/asm.vim b/runtime/syntax/asm.vim
index 492e3e8e9..73f283a4a 100644
--- a/runtime/syntax/asm.vim
+++ b/runtime/syntax/asm.vim
@@ -1,11 +1,10 @@
" Vim syntax file
-" Language: GNU Assembler
-" Maintainer: Erik Wognsen <erik.wognsen@gmail.com>
-" Previous maintainer:
-" Kevin Dahlhausen <kdahlhaus@yahoo.com>
-" Last Change: 2014 Feb 04
-
-" Thanks to Ori Avtalion for feedback on the comment markers!
+" Language: GNU Assembler
+" Maintainer: Doug Kearns dougkearns@gmail.com
+" Previous Maintainers: Erik Wognsen <erik.wognsen@gmail.com>
+" Kevin Dahlhausen <kdahlhaus@yahoo.com>
+" Contributors: Ori Avtalion, Lakshay Garg
+" Last Change: 2020 Oct 31
" quit when a syntax file was already loaded
if exists("b:current_syntax")
@@ -34,29 +33,49 @@ syn match asmType "\.space"
syn match asmType "\.string"
syn match asmType "\.word"
-syn match asmLabel "[a-z_][a-z0-9_]*:"he=e-1
syn match asmIdentifier "[a-z_][a-z0-9_]*"
+syn match asmLabel "[a-z_][a-z0-9_]*:"he=e-1
" Various #'s as defined by GAS ref manual sec 3.6.2.1
-" Technically, the first decNumber def is actually octal,
+" Technically, the first asmDecimal def is actually octal,
" since the value of 0-7 octal is the same as 0-7 decimal,
" I (Kevin) prefer to map it as decimal:
-syn match decNumber "0\+[1-7]\=[\t\n$,; ]"
-syn match decNumber "[1-9]\d*"
-syn match octNumber "0[0-7][0-7]\+"
-syn match hexNumber "0[xX][0-9a-fA-F]\+"
-syn match binNumber "0[bB][0-1]*"
+syn match asmDecimal "\<0\+[1-7]\=\>" display
+syn match asmDecimal "\<[1-9]\d*\>" display
+syn match asmOctal "\<0[0-7][0-7]\+\>" display
+syn match asmHexadecimal "\<0[xX][0-9a-fA-F]\+\>" display
+syn match asmBinary "\<0[bB][0-1]\+\>" display
+
+syn match asmFloat "\<\d\+\.\d*\%(e[+-]\=\d\+\)\=\>" display
+syn match asmFloat "\.\d\+\%(e[+-]\=\d\+\)\=\>" display
+syn match asmFloat "\<\d\%(e[+-]\=\d\+\)\>" display
+syn match asmFloat "[+-]\=Inf\>\|\<NaN\>" display
+
+syn match asmFloat "\%(0[edfghprs]\)[+-]\=\d*\%(\.\d\+\)\%(e[+-]\=\d\+\)\=" display
+syn match asmFloat "\%(0[edfghprs]\)[+-]\=\d\+\%(\.\d\+\)\=\%(e[+-]\=\d\+\)\=" display
+" Avoid fighting the hexadecimal match for unicorn-like '0x' prefixed floats
+syn match asmFloat "\%(0x\)[+-]\=\d*\%(\.\d\+\)\%(e[+-]\=\d\+\)\=" display
-syn keyword asmTodo contained TODO
+" Allow all characters to be escaped (and in strings) as these vary across
+" architectures [See sec 3.6.1.1 Strings]
+syn match asmCharacterEscape "\\." contained
+syn match asmCharacter "'\\\=." contains=asmCharacterEscape
+syn match asmStringEscape "\\\_." contained
+syn match asmStringEscape "\\\%(\o\{3}\|00[89]\)" contained display
+syn match asmStringEscape "\\x\x\+" contained display
+
+syn region asmString start="\"" end="\"" skip="\\\\\|\\\"" contains=asmStringEscape
+
+syn keyword asmTodo contained TODO FIXME XXX NOTE
" GAS supports one type of multi line comments:
-syn region asmComment start="/\*" end="\*/" contains=asmTodo
+syn region asmComment start="/\*" end="\*/" contains=asmTodo,@Spell
" GAS (undocumentedly?) supports C++ style comments. Unlike in C/C++ however,
" a backslash ending a C++ style comment does not extend the comment to the
" next line (hence the syntax region does not define 'skip="\\$"')
-syn region asmComment start="//" end="$" keepend contains=asmTodo
+syn region asmComment start="//" end="$" keepend contains=asmTodo,@Spell
" Line comment characters depend on the target architecture and command line
" options and some comments may double as logical line number directives or
@@ -69,7 +88,7 @@ syn region asmComment start="//" end="$" keepend contains=asmTodo
" frequently used features of the most popular architectures (and also the
" non-GNU assembly languages that use this syntax file because their asm files
" are also named *.asm), the following are used as line comment characters:
-syn match asmComment "[#;!|].*" contains=asmTodo
+syn match asmComment "[#;!|].*" contains=asmTodo,@Spell
" Side effects of this include:
" - When `;' is used to separate statements on the same line (many targets
@@ -96,35 +115,50 @@ syn match asmMacro "\.endm"
" with '.', including the GCC auto-generated '.L' labels.
syn match asmDirective "\.[A-Za-z][0-9A-Za-z-_]*"
-
syn case match
" Define the default highlighting.
" Only when an item doesn't have highlighting yet
" The default methods for highlighting. Can be overridden later
-hi def link asmSection Special
-hi def link asmLabel Label
-hi def link asmComment Comment
-hi def link asmTodo Todo
+hi def link asmSection Special
+hi def link asmLabel Label
+hi def link asmComment Comment
+hi def link asmTodo Todo
hi def link asmDirective Statement
-hi def link asmInclude Include
-hi def link asmCond PreCondit
-hi def link asmMacro Macro
+hi def link asmInclude Include
+hi def link asmCond PreCondit
+hi def link asmMacro Macro
+
+if exists('g:asm_legacy_syntax_groups')
+ hi def link hexNumber Number
+ hi def link decNumber Number
+ hi def link octNumber Number
+ hi def link binNumber Number
+ hi def link asmHexadecimal hexNumber
+ hi def link asmDecimal decNumber
+ hi def link asmOctal octNumber
+ hi def link asmBinary binNumber
+else
+ hi def link asmHexadecimal Number
+ hi def link asmDecimal Number
+ hi def link asmOctal Number
+ hi def link asmBinary Number
+endif
+hi def link asmFloat Float
-hi def link hexNumber Number
-hi def link decNumber Number
-hi def link octNumber Number
-hi def link binNumber Number
+hi def link asmString String
+hi def link asmStringEscape Special
+hi def link asmCharacter Character
+hi def link asmCharacterEscape Special
hi def link asmIdentifier Identifier
-hi def link asmType Type
-
+hi def link asmType Type
let b:current_syntax = "asm"
let &cpo = s:cpo_save
unlet s:cpo_save
-" vim: ts=8
+" vim: nowrap sw=2 sts=2 ts=8 noet
diff --git a/runtime/syntax/asmh8300.vim b/runtime/syntax/asmh8300.vim
index 8560fb7ae..2eabb7e4e 100644
--- a/runtime/syntax/asmh8300.vim
+++ b/runtime/syntax/asmh8300.vim
@@ -1,19 +1,21 @@
" Vim syntax file
-" Language: Hitachi H-8300h specific syntax for GNU Assembler
-" Maintainer: Kevin Dahlhausen <kdahlhaus@yahoo.com>
-" Last Change: 2002 Sep 19
+" Language: Hitachi H-8300h specific syntax for GNU Assembler
+" Maintainer: Doug Kearns <dougkearns@gmail.com>
+" Previous Maintainer: Kevin Dahlhausen <kdahlhaus@yahoo.com>
+" Last Change: 2020 Oct 31
-" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
+runtime! syntax/asm.vim
+
syn case ignore
-syn match asmDirective "\.h8300[h]*"
+syn match asmDirective "\.h8300[hs]n\="
"h8300[h] registers
-syn match asmReg "e\=r[0-7][lh]\="
+syn match asmRegister "e\=r\o[lh]\="
"h8300[h] opcodes - order is important!
syn match asmOpcode "add\.[lbw]"
@@ -37,32 +39,20 @@ syn match asmOpcode "sha[lr]\.[lbw]"
syn match asmOpcode "shl[lr]\.[lbw]"
syn match asmOpcode "sub\.[lbw]"
syn match asmOpcode "xor\.[lbw]"
-syn keyword asmOpcode "andc" "band" "bcc" "bclr" "bcs" "beq" "bf" "bge" "bgt"
-syn keyword asmOpcode "bhi" "bhs" "biand" "bild" "bior" "bist" "bixor" "bmi"
-syn keyword asmOpcode "bne" "bnot" "bnp" "bor" "bpl" "bpt" "bra" "brn" "bset"
-syn keyword asmOpcode "bsr" "btst" "bst" "bt" "bvc" "bvs" "bxor" "cmp" "daa"
-syn keyword asmOpcode "das" "eepmov" "eepmovw" "inc" "jmp" "jsr" "ldc" "movfpe"
-syn keyword asmOpcode "movtpe" "mov" "nop" "orc" "rte" "rts" "sleep" "stc"
-syn keyword asmOpcode "sub" "trapa" "xorc"
-
-syn case match
-
-" Read the general asm syntax
-runtime! syntax/asm.vim
-
-
-" Define the default highlighting.
-" Only when an item doesn't have highlighting yet
+syn keyword asmOpcode andc band bcc bclr bcs beq bf bge bgt
+syn keyword asmOpcode bhi bhs biand bild bior bist bixor bmi
+syn keyword asmOpcode bne bnot bnp bor bpl bpt bra brn bset
+syn keyword asmOpcode bsr btst bst bt bvc bvs bxor cmp daa
+syn keyword asmOpcode das eepmov eepmovw inc jmp jsr ldc movfpe
+syn keyword asmOpcode movtpe mov nop orc rte rts sleep stc
+syn keyword asmOpcode sub trapa xorc
-hi def link asmOpcode Statement
-hi def link asmRegister Identifier
-
-" My default-color overrides:
-"hi asmOpcode ctermfg=yellow
-"hi asmReg ctermfg=lightmagenta
+syn case match
+hi def link asmOpcode Statement
+hi def link asmRegister Identifier
let b:current_syntax = "asmh8300"
-" vim: ts=8
+" vim: nowrap sw=2 sts=2 ts=8 noet
diff --git a/runtime/syntax/awk.vim b/runtime/syntax/awk.vim
index 43455b864..3082c1cb5 100644
--- a/runtime/syntax/awk.vim
+++ b/runtime/syntax/awk.vim
@@ -1,7 +1,8 @@
" Vim syntax file
-" Language: awk, nawk, gawk, mawk
-" Maintainer: Antonio Colombo <azc100@gmail.com>
-" Last Change: 2020 Aug 18
+" Language: awk, nawk, gawk, mawk
+" Maintainer: Doug Kearns <dougkearns@gmail.com>
+" Previous Maintainer: Antonio Colombo <azc100@gmail.com>
+" Last Change: 2020 Aug 18
" AWK ref. is: Alfred V. Aho, Brian W. Kernighan, Peter J. Weinberger
" The AWK Programming Language, Addison-Wesley, 1988
diff --git a/runtime/syntax/debchangelog.vim b/runtime/syntax/debchangelog.vim
index 7321e90b3..33594f38d 100644
--- a/runtime/syntax/debchangelog.vim
+++ b/runtime/syntax/debchangelog.vim
@@ -3,7 +3,7 @@
" Maintainer: Debian Vim Maintainers
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
" Wichert Akkerman <wakkerma@debian.org>
-" Last Change: 2020 Apr 27
+" Last Change: 2020 Oct 28
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debchangelog.vim
" Standard syntax initialization
@@ -21,20 +21,20 @@ let s:cpo = &cpo
set cpo-=C
let s:supported = [
\ 'oldstable', 'stable', 'testing', 'unstable', 'experimental',
- \ 'wheezy', 'jessie', 'stretch', 'buster', 'bullseye', 'bookworm',
+ \ 'jessie', 'stretch', 'buster', 'bullseye', 'bookworm',
\ 'sid', 'rc-buggy',
\
- \ 'trusty', 'xenial', 'bionic', 'eoan', 'focal', 'groovy', 'devel'
+ \ 'trusty', 'xenial', 'bionic', 'focal', 'groovy', 'hippo', 'devel'
\ ]
let s:unsupported = [
\ 'frozen', 'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato',
- \ 'woody', 'sarge', 'etch', 'lenny', 'squeeze',
+ \ 'woody', 'sarge', 'etch', 'lenny', 'squeeze', 'wheezy',
\
\ 'warty', 'hoary', 'breezy', 'dapper', 'edgy', 'feisty',
\ 'gutsy', 'hardy', 'intrepid', 'jaunty', 'karmic', 'lucid',
\ 'maverick', 'natty', 'oneiric', 'precise', 'quantal', 'raring', 'saucy',
\ 'utopic', 'vivid', 'wily', 'yakkety', 'zesty', 'artful', 'cosmic',
- \ 'disco'
+ \ 'disco', 'eoan'
\ ]
let &cpo=s:cpo
diff --git a/runtime/syntax/debcontrol.vim b/runtime/syntax/debcontrol.vim
index 9085cd01d..25fc252de 100644
--- a/runtime/syntax/debcontrol.vim
+++ b/runtime/syntax/debcontrol.vim
@@ -3,7 +3,7 @@
" Maintainer: Debian Vim Maintainers
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
" Wichert Akkerman <wakkerma@debian.org>
-" Last Change: 2018 Aug 11
+" Last Change: 2020 Oct 26
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debcontrol.vim
" Standard syntax initialization
@@ -47,22 +47,24 @@ exe 'syn keyword debcontrolArchitecture contained '. join(s:pairs)
unlet s:kernels s:archs s:pairs
+" Keep in sync with https://metadata.ftp-master.org/sections.822
+" curl -q https://metadata.ftp-master.debian.org/sections.822 2>/dev/null| grep-dctrl -n --not -FSection -sSection / -
let s:sections = [
\ 'admin', 'cli-mono', 'comm', 'database', 'debian-installer', 'debug'
\, 'devel', 'doc', 'editors', 'education', 'electronics', 'embedded'
- \, 'fonts', 'games', 'gnome', 'gnustep', 'gnu-r', 'golang', 'graphics'
+ \, 'fonts', 'games', 'gnome', 'gnu-r', 'gnustep', 'golang', 'graphics'
\, 'hamradio', 'haskell', 'httpd', 'interpreters', 'introspection'
- \, 'java\%(script\)\=', 'kde', 'kernel', 'libs', 'libdevel', 'lisp'
- \, 'localization', 'mail', 'math', 'metapackages', 'misc', 'net'
- \, 'news', 'ocaml', 'oldlibs', 'otherosfs', 'perl', 'php', 'python'
- \, 'ruby', 'rust', 'science', 'shells', 'sound', 'text', 'tex'
+ \, 'java', 'javascript', 'kde', 'kernel', 'libdevel', 'libs', 'lisp'
+ \, 'localization', 'mail', 'math', 'metapackages', 'misc', 'net', 'news'
+ \, 'ocaml', 'oldlibs', 'otherosfs', 'perl', 'php', 'python', 'raku'
+ \, 'ruby', 'rust', 'science', 'shells', 'sound', 'tasks', 'tex', 'text'
\, 'utils', 'vcs', 'video', 'web', 'x11', 'xfce', 'zope'
\ ]
syn keyword debcontrolMultiArch contained no foreign allowed same
syn match debcontrolName contained "[a-z0-9][a-z0-9+.-]\+"
syn keyword debcontrolPriority contained extra important optional required standard
-exe 'syn match debcontrolSection contained "\%(\%(contrib\|non-free\|non-US/main\|non-US/contrib\|non-US/non-free\|restricted\|universe\|multiverse\)/\)\=\%('.join(s:sections, '\|').'\)"'
+exe 'syn match debcontrolSection contained "\%(\%(contrib\|non-free\|non-US/main\|non-US/contrib\|non-US/non-free\|restricted\|universe\|multiverse\)/\)\=\<\%('.join(s:sections, '\|').'\)\>"'
syn keyword debcontrolPackageType contained udeb deb
syn match debcontrolVariable contained "\${.\{-}}"
syn keyword debcontrolDmUpload contained yes
diff --git a/runtime/syntax/debsources.vim b/runtime/syntax/debsources.vim
index b59444311..0b9282eeb 100644
--- a/runtime/syntax/debsources.vim
+++ b/runtime/syntax/debsources.vim
@@ -2,7 +2,7 @@
" Language: Debian sources.list
" Maintainer: Debian Vim Maintainers
" Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl>
-" Last Change: 2020 Apr 27
+" Last Change: 2020 Oct 26
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debsources.vim
" Standard syntax initialization
@@ -23,20 +23,20 @@ let s:cpo = &cpo
set cpo-=C
let s:supported = [
\ 'oldstable', 'stable', 'testing', 'unstable', 'experimental',
- \ 'wheezy', 'jessie', 'stretch', 'buster', 'bullseye', 'bookworm',
+ \ 'jessie', 'stretch', 'buster', 'bullseye', 'bookworm',
\ 'sid', 'rc-buggy',
\
- \ 'trusty', 'xenial', 'bionic', 'eoan', 'focal', 'groovy', 'devel'
+ \ 'trusty', 'xenial', 'bionic', 'focal', 'groovy', 'hippo', 'devel'
\ ]
let s:unsupported = [
\ 'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato',
- \ 'woody', 'sarge', 'etch', 'lenny', 'squeeze',
+ \ 'woody', 'sarge', 'etch', 'lenny', 'squeeze', 'wheezy',
\
\ 'warty', 'hoary', 'breezy', 'dapper', 'edgy', 'feisty',
\ 'gutsy', 'hardy', 'intrepid', 'jaunty', 'karmic', 'lucid',
\ 'maverick', 'natty', 'oneiric', 'precise', 'quantal', 'raring', 'saucy',
\ 'utopic', 'vivid', 'wily', 'yakkety', 'zesty', 'artful', 'cosmic',
- \ 'disco'
+ \ 'disco', 'eoan'
\ ]
let &cpo=s:cpo
diff --git a/runtime/syntax/proto.vim b/runtime/syntax/proto.vim
index 4615e0ca0..0d2d2f259 100644
--- a/runtime/syntax/proto.vim
+++ b/runtime/syntax/proto.vim
@@ -1,26 +1,36 @@
-" syntax file for Protocol Buffers - Google's data interchange format
-"
+" Protocol Buffers - Google's data interchange format
" Copyright 2008 Google Inc. All rights reserved.
+" https://developers.google.com/protocol-buffers/
"
-" Permission is hereby granted, free of charge, to any person obtaining a copy
-" of this software and associated documentation files (the "Software"), to deal
-" in the Software without restriction, including without limitation the rights
-" to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-" copies of the Software, and to permit persons to whom the Software is
-" furnished to do so, subject to the following conditions:
-"
-" The above copyright notice and this permission notice shall be included in
-" all copies or substantial portions of the Software.
+" Redistribution and use in source and binary forms, with or without
+" modification, are permitted provided that the following conditions are
+" met:
"
-" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-" OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-" THE SOFTWARE.
+" * Redistributions of source code must retain the above copyright
+" notice, this list of conditions and the following disclaimer.
+" * Redistributions in binary form must reproduce the above
+" copyright notice, this list of conditions and the following disclaimer
+" in the documentation and/or other materials provided with the
+" distribution.
+" * Neither the name of Google Inc. nor the names of its
+" contributors may be used to endorse or promote products derived from
+" this software without specific prior written permission.
"
-" http://code.google.com/p/protobuf/
+" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+" A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+" OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+" OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+" This is the Vim syntax file for Google Protocol Buffers as found at
+" https://github.com/protocolbuffers/protobuf
+" Last update: 2020 Oct 29
" quit when a syntax file was already loaded
if exists("b:current_syntax")
@@ -33,10 +43,10 @@ syn keyword protoTodo contained TODO FIXME XXX
syn cluster protoCommentGrp contains=protoTodo
syn keyword protoSyntax syntax import option
-syn keyword protoStructure package message group
+syn keyword protoStructure package message group oneof
syn keyword protoRepeat optional required repeated
syn keyword protoDefault default
-syn keyword protoExtend extend extensions to max
+syn keyword protoExtend extend extensions to max reserved
syn keyword protoRPC service rpc returns
syn keyword protoType int32 int64 uint32 uint64 sint32 sint64
@@ -48,10 +58,10 @@ syn keyword protoBool true false
syn match protoInt /-\?\<\d\+\>/
syn match protoInt /\<0[xX]\x+\>/
syn match protoFloat /\<-\?\d*\(\.\d*\)\?/
-syn region protoComment start="\/\*" end="\*\/" contains=@protoCommentGrp
-syn region protoComment start="//" skip="\\$" end="$" keepend contains=@protoCommentGrp
-syn region protoString start=/"/ skip=/\\./ end=/"/
-syn region protoString start=/'/ skip=/\\./ end=/'/
+syn region protoComment start="\/\*" end="\*\/" contains=@pbCommentGrp,@Spell
+syn region protoComment start="//" skip="\\$" end="$" keepend contains=@pbCommentGrp,@Spell
+syn region protoString start=/"/ skip=/\\./ end=/"/ contains=@Spell
+syn region protoString start=/'/ skip=/\\./ end=/'/ contains=@Spell
hi def link protoTodo Todo
diff --git a/runtime/syntax/typescriptcommon.vim b/runtime/syntax/typescriptcommon.vim
index ff5316832..4074f04a3 100644
--- a/runtime/syntax/typescriptcommon.vim
+++ b/runtime/syntax/typescriptcommon.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: TypeScript and TypeScriptReact
" Maintainer: Bram Moolenaar, Herrington Darkholme
-" Last Change: 2019 Nov 30
+" Last Change: 2020 Oct 27
" Based On: Herrington Darkholme's yats.vim
" Changes: See https:github.com/HerringtonDarkholme/yats.vim
" Credits: See yats.vim on github
@@ -21,15 +21,14 @@ if main_syntax == 'typescript' || main_syntax == 'typescriptreact'
setlocal iskeyword+=$
" syntax cluster htmlJavaScript contains=TOP
endif
+" For private field added from TypeScript 3.8
+setlocal iskeyword+=#
" lowest priority on least used feature
syntax match typescriptLabel /[a-zA-Z_$]\k*:/he=e-1 contains=typescriptReserved nextgroup=@typescriptStatement skipwhite skipempty
" other keywords like return,case,yield uses containedin
syntax region typescriptBlock matchgroup=typescriptBraces start=/{/ end=/}/ contains=@typescriptStatement,@typescriptComments fold
-
-
-"runtime syntax/basic/identifiers.vim
syntax cluster afterIdentifier contains=
\ typescriptDotNotation,
\ typescriptFuncCallArg,
@@ -60,7 +59,56 @@ syntax region typescriptFuncCallArg contained matchgroup=typescriptPa
syntax region typescriptEventFuncCallArg contained matchgroup=typescriptParens start=/(/ end=/)/ contains=@typescriptEventExpression
syntax region typescriptEventString contained start=/\z(["']\)/ skip=/\\\\\|\\\z1\|\\\n/ end=/\z1\|$/ contains=typescriptASCII,@events
-"runtime syntax/basic/literal.vim
+syntax region typescriptDestructureString
+ \ start=/\z(["']\)/ skip=/\\\\\|\\\z1\|\\\n/ end=/\z1\|$/
+ \ contains=typescriptASCII
+ \ nextgroup=typescriptDestructureAs
+ \ contained skipwhite skipempty
+
+syntax cluster typescriptVariableDeclarations
+ \ contains=typescriptVariableDeclaration,@typescriptDestructures
+
+syntax match typescriptVariableDeclaration /[A-Za-z_$]\k*/
+ \ nextgroup=typescriptTypeAnnotation,typescriptAssign
+ \ contained skipwhite skipempty
+
+syntax cluster typescriptDestructureVariables contains=
+ \ typescriptRestOrSpread,
+ \ typescriptDestructureComma,
+ \ typescriptDestructureLabel,
+ \ typescriptDestructureVariable,
+ \ @typescriptDestructures
+
+syntax match typescriptDestructureVariable /[A-Za-z_$]\k*/ contained
+ \ nextgroup=typescriptDefaultParam
+ \ contained skipwhite skipempty
+
+syntax match typescriptDestructureLabel /[A-Za-z_$]\k*\ze\_s*:/
+ \ nextgroup=typescriptDestructureAs
+ \ contained skipwhite skipempty
+
+syntax match typescriptDestructureAs /:/
+ \ nextgroup=typescriptDestructureVariable,@typescriptDestructures
+ \ contained skipwhite skipempty
+
+syntax match typescriptDestructureComma /,/ contained
+
+syntax cluster typescriptDestructures contains=
+ \ typescriptArrayDestructure,
+ \ typescriptObjectDestructure
+
+syntax region typescriptArrayDestructure matchgroup=typescriptBraces
+ \ start=/\[/ end=/]/
+ \ contains=@typescriptDestructureVariables,@typescriptComments
+ \ nextgroup=typescriptTypeAnnotation,typescriptAssign
+ \ transparent contained skipwhite skipempty fold
+
+syntax region typescriptObjectDestructure matchgroup=typescriptBraces
+ \ start=/{/ end=/}/
+ \ contains=typescriptDestructureString,@typescriptDestructureVariables,@typescriptComments
+ \ nextgroup=typescriptTypeAnnotation,typescriptAssign
+ \ transparent contained skipwhite skipempty fold
+
"Syntax in the JavaScript code
" String
@@ -77,15 +125,15 @@ syntax region typescriptString
\ contains=typescriptSpecial,@Spell
\ extend
-syntax match typescriptSpecial contained "\v\\%(x\x\x|u%(\x{4}|\{\x{4,5}})|c\u|.)"
+syntax match typescriptSpecial contained "\v\\%(x\x\x|u%(\x{4}|\{\x{1,6}})|c\u|.)"
" From vim runtime
" <https://github.com/vim/vim/blob/master/runtime/syntax/javascript.vim#L48>
-syntax region typescriptRegexpString start=+/[^/*]+me=e-1 skip=+\\\\\|\\/+ end=+/[gimuy]\{0,5\}\s*$+ end=+/[gimuy]\{0,5\}\s*[;.,)\]}]+me=e-1 nextgroup=typescriptDotNotation oneline
+syntax region typescriptRegexpString start=+/[^/*]+me=e-1 skip=+\\\\\|\\/+ end=+/[gimuy]\{0,5\}\s*$+ end=+/[gimuy]\{0,5\}\s*[;.,)\]}:]+me=e-1 nextgroup=typescriptDotNotation oneline
syntax region typescriptTemplate
\ start=/`/ skip=/\\\\\|\\`\|\n/ end=/`\|$/
- \ contains=typescriptTemplateSubstitution
+ \ contains=typescriptTemplateSubstitution,typescriptSpecial,@Spell
\ nextgroup=@typescriptSymbols
\ skipwhite skipempty
@@ -100,18 +148,16 @@ syntax region typescriptArray matchgroup=typescriptBraces
syntax match typescriptNumber /\<0[bB][01][01_]*\>/ nextgroup=@typescriptSymbols skipwhite skipempty
syntax match typescriptNumber /\<0[oO][0-7][0-7_]*\>/ nextgroup=@typescriptSymbols skipwhite skipempty
syntax match typescriptNumber /\<0[xX][0-9a-fA-F][0-9a-fA-F_]*\>/ nextgroup=@typescriptSymbols skipwhite skipempty
-syntax match typescriptNumber /\d[0-9_]*\.\d[0-9_]*\|\d[0-9_]*\|\.\d[0-9]*/
- \ nextgroup=typescriptExponent,@typescriptSymbols skipwhite skipempty
-syntax match typescriptExponent /[eE][+-]\=\d[0-9]*\>/
- \ nextgroup=@typescriptSymbols skipwhite skipempty contained
+syntax match typescriptNumber /\<\%(\d[0-9_]*\%(\.\d[0-9_]*\)\=\|\.\d[0-9_]*\)\%([eE][+-]\=\d[0-9_]*\)\=\>/
+ \ nextgroup=typescriptSymbols skipwhite skipempty
-
-" runtime syntax/basic/object.vim
syntax region typescriptObjectLiteral matchgroup=typescriptBraces
\ start=/{/ end=/}/
- \ contains=@typescriptComments,typescriptObjectLabel,typescriptStringProperty,typescriptComputedPropertyName
+ \ contains=@typescriptComments,typescriptObjectLabel,typescriptStringProperty,typescriptComputedPropertyName,typescriptObjectAsyncKeyword
\ fold contained
+syntax keyword typescriptObjectAsyncKeyword async contained
+
syntax match typescriptObjectLabel contained /\k\+\_s*/
\ nextgroup=typescriptObjectColon,@typescriptCallImpl
\ skipwhite skipempty
@@ -136,7 +182,6 @@ syntax match typescriptObjectSpread /\.\.\./ contained containedin=typescriptObj
syntax match typescriptObjectColon contained /:/ nextgroup=@typescriptValue skipwhite skipempty
-"runtime syntax/basic/symbols.vim
" + - ^ ~
syntax match typescriptUnaryOp /[+\-~!]/
\ nextgroup=@typescriptValue
@@ -153,10 +198,12 @@ syntax match typescriptBinaryOp contained /===\?/ nextgroup=@typescriptValue s
syntax match typescriptBinaryOp contained />\(>>=\|>>\|>=\|>\|=\)\?/ nextgroup=@typescriptValue skipwhite skipempty
" 4: <<=, <<, <=, <
syntax match typescriptBinaryOp contained /<\(<=\|<\|=\)\?/ nextgroup=@typescriptValue skipwhite skipempty
-" 3: ||, |=, |
-syntax match typescriptBinaryOp contained /|\(|\|=\)\?/ nextgroup=@typescriptValue skipwhite skipempty
-" 3: &&, &=, &
-syntax match typescriptBinaryOp contained /&\(&\|=\)\?/ nextgroup=@typescriptValue skipwhite skipempty
+" 3: ||, |=, |, ||=
+syntax match typescriptBinaryOp contained /||\?=\?/ nextgroup=@typescriptValue skipwhite skipempty
+" 4: &&, &=, &, &&=
+syntax match typescriptBinaryOp contained /&&\?=\?/ nextgroup=@typescriptValue skipwhite skipempty
+" 2: ??, ??=
+syntax match typescriptBinaryOp contained /??=\?/ nextgroup=@typescriptValue skipwhite skipempty
" 2: *=, *
syntax match typescriptBinaryOp contained /\*=\?/ nextgroup=@typescriptValue skipwhite skipempty
" 2: %=, %
@@ -177,11 +224,18 @@ syntax match typescriptBinaryOp contained /\*\*=\?/ nextgroup=@typescriptValue
syntax cluster typescriptSymbols contains=typescriptBinaryOp,typescriptKeywordOp,typescriptTernary,typescriptAssign,typescriptCastKeyword
" runtime syntax/basic/reserved.vim
-
-"runtime syntax/basic/keyword.vim
"Import
-syntax keyword typescriptImport from as import
+syntax keyword typescriptImport from as
+syntax keyword typescriptImport import
+ \ nextgroup=typescriptImportType
+ \ skipwhite
+syntax keyword typescriptImportType type
+ \ contained
syntax keyword typescriptExport export
+ \ nextgroup=typescriptExportType
+ \ skipwhite
+syntax match typescriptExportType /\<type\s*{\@=/
+ \ contained skipwhite skipempty skipnl
syntax keyword typescriptModule namespace module
"this
@@ -199,16 +253,12 @@ syntax keyword typescriptIdentifier arguments this super
\ nextgroup=@afterIdentifier
syntax keyword typescriptVariable let var
- \ nextgroup=typescriptVariableDeclaration
- \ skipwhite skipempty skipnl
+ \ nextgroup=@typescriptVariableDeclarations
+ \ skipwhite skipempty
syntax keyword typescriptVariable const
- \ nextgroup=typescriptEnum,typescriptVariableDeclaration
- \ skipwhite
-
-syntax match typescriptVariableDeclaration /[A-Za-z_$]\k*/
- \ nextgroup=typescriptTypeAnnotation,typescriptAssign
- \ contained skipwhite skipempty skipnl
+ \ nextgroup=typescriptEnum,@typescriptVariableDeclarations
+ \ skipwhite skipempty
syntax region typescriptEnum matchgroup=typescriptEnumKeyword start=/enum / end=/\ze{/
\ nextgroup=typescriptBlock
@@ -271,7 +321,6 @@ syntax cluster typescriptAmbients contains=
\ typescriptEnumKeyword,typescriptEnum,
\ typescriptModule
-"runtime syntax/basic/doc.vim
"Syntax coloring for Node.js shebang line
syntax match shellbang "^#!.*node\>"
syntax match shellbang "^#!.*iojs\>"
@@ -279,8 +328,9 @@ syntax match shellbang "^#!.*iojs\>"
"JavaScript comments
syntax keyword typescriptCommentTodo TODO FIXME XXX TBD
+syntax match typescriptMagicComment "@ts-\%(ignore\|expect-error\)\>"
syntax match typescriptLineComment "//.*"
- \ contains=@Spell,typescriptCommentTodo,typescriptRef
+ \ contains=@Spell,typescriptCommentTodo,typescriptRef,typescriptMagicComment
syntax region typescriptComment
\ start="/\*" end="\*/"
\ contains=@Spell,typescriptCommentTodo extend
@@ -349,24 +399,27 @@ syntax region typescriptDocLinkTag contained matchgroup=typescriptDo
syntax cluster typescriptDocs contains=typescriptDocParamType,typescriptDocNamedParamType,typescriptDocParam
-if main_syntax == "typescript"
+if exists("main_syntax") && main_syntax == "typescript"
syntax sync clear
syntax sync ccomment typescriptComment minlines=200
endif
syntax case match
-"runtime syntax/basic/type.vim
" Types
syntax match typescriptOptionalMark /?/ contained
+syntax cluster typescriptTypeParameterCluster contains=
+ \ typescriptTypeParameter,
+ \ typescriptGenericDefault
+
syntax region typescriptTypeParameters matchgroup=typescriptTypeBrackets
\ start=/</ end=/>/
- \ contains=typescriptTypeParameter
+ \ contains=@typescriptTypeParameterCluster
\ contained
syntax match typescriptTypeParameter /\K\k*/
- \ nextgroup=typescriptConstraint,typescriptGenericDefault
+ \ nextgroup=typescriptConstraint
\ contained skipwhite skipnl
syntax keyword typescriptConstraint extends
@@ -409,6 +462,7 @@ syntax cluster typescriptPrimaryType contains=
\ typescriptTupleType,
\ typescriptTypeQuery,
\ typescriptStringLiteralType,
+ \ typescriptTemplateLiteralType,
\ typescriptReadonlyArrayKeyword,
\ typescriptAssertType
@@ -417,6 +471,17 @@ syntax region typescriptStringLiteralType contained
\ nextgroup=typescriptUnion
\ skipwhite skipempty
+syntax region typescriptTemplateLiteralType contained
+ \ start=/`/ skip=/\\\\\|\\`\|\n/ end=/`\|$/
+ \ contains=typescriptTemplateSubstitutionType
+ \ nextgroup=typescriptTypeOperator
+ \ skipwhite skipempty
+
+syntax region typescriptTemplateSubstitutionType matchgroup=typescriptTemplateSB
+ \ start=/\${/ end=/}/
+ \ contains=@typescriptType
+ \ contained
+
syntax region typescriptParenthesizedType matchgroup=typescriptParens
\ start=/(/ end=/)/
\ contains=@typescriptType
@@ -439,7 +504,7 @@ syntax region typescriptObjectType matchgroup=typescriptBraces
\ start=/{/ end=/}/
\ contains=@typescriptTypeMember,typescriptEndColons,@typescriptComments,typescriptAccessibilityModifier,typescriptReadonlyModifier
\ nextgroup=@typescriptTypeOperator
- \ contained skipwhite fold
+ \ contained skipwhite skipnl fold
syntax cluster typescriptTypeMember contains=
\ @typescriptCallSignature,
@@ -447,16 +512,21 @@ syntax cluster typescriptTypeMember contains=
\ typescriptIndexSignature,
\ @typescriptMembers
+syntax match typescriptTupleLable /\K\k*?\?:/
+ \ contained
+
syntax region typescriptTupleType matchgroup=typescriptBraces
\ start=/\[/ end=/\]/
- \ contains=@typescriptType,@typescriptComments
+ \ contains=@typescriptType,@typescriptComments,typescriptRestOrSpread,typescriptTupleLable
\ contained skipwhite
syntax cluster typescriptTypeOperator
- \ contains=typescriptUnion,typescriptTypeBracket
+ \ contains=typescriptUnion,typescriptTypeBracket,typescriptConstraint,typescriptConditionalType
syntax match typescriptUnion /|\|&/ contained nextgroup=@typescriptPrimaryType skipwhite skipempty
+syntax match typescriptConditionalType /?\|:/ contained nextgroup=@typescriptPrimaryType skipwhite skipempty
+
syntax cluster typescriptFunctionType contains=typescriptGenericFunc,typescriptFuncType
syntax region typescriptGenericFunc matchgroup=typescriptTypeBrackets
\ start=/</ end=/>/
@@ -511,6 +581,7 @@ syntax match typescriptTypeAnnotation /:/
syntax cluster typescriptParameterList contains=
\ typescriptTypeAnnotation,
\ typescriptAccessibilityModifier,
+ \ typescriptReadonlyModifier,
\ typescriptOptionalMark,
\ typescriptRestOrSpread,
\ typescriptFuncComma,
@@ -550,10 +621,9 @@ syntax keyword typescriptReadonlyArrayKeyword readonly
\ nextgroup=@typescriptPrimaryType
\ skipwhite
+
" extension
if get(g:, 'yats_host_keyword', 1)
- "runtime syntax/yats.vim
- "runtime syntax/yats/typescript.vim
syntax keyword typescriptGlobal containedin=typescriptIdentifierName Function Boolean
syntax keyword typescriptGlobal containedin=typescriptIdentifierName Error EvalError
syntax keyword typescriptGlobal containedin=typescriptIdentifierName InternalError
@@ -584,7 +654,6 @@ if get(g:, 'yats_host_keyword', 1)
syntax cluster props add=typescriptGlobalMethod
hi def link typescriptGlobalMethod Structure
- "runtime syntax/yats/es6-number.vim
syntax keyword typescriptGlobal containedin=typescriptIdentifierName Number nextgroup=typescriptGlobalNumberDot,typescriptFuncCallArg
syntax match typescriptGlobalNumberDot /\./ contained nextgroup=typescriptNumberStaticProp,typescriptNumberStaticMethod,typescriptProp
syntax keyword typescriptNumberStaticProp contained EPSILON MAX_SAFE_INTEGER MAX_VALUE
@@ -599,7 +668,6 @@ if get(g:, 'yats_host_keyword', 1)
syntax cluster props add=typescriptNumberMethod
hi def link typescriptNumberMethod Keyword
- "runtime syntax/yats/es6-string.vim
syntax keyword typescriptGlobal containedin=typescriptIdentifierName String nextgroup=typescriptGlobalStringDot,typescriptFuncCallArg
syntax match typescriptGlobalStringDot /\./ contained nextgroup=typescriptStringStaticMethod,typescriptProp
syntax keyword typescriptStringStaticMethod contained fromCharCode fromCodePoint raw nextgroup=typescriptFuncCallArg
@@ -615,7 +683,6 @@ if get(g:, 'yats_host_keyword', 1)
syntax cluster props add=typescriptStringMethod
hi def link typescriptStringMethod Keyword
- "runtime syntax/yats/es6-array.vim
syntax keyword typescriptGlobal containedin=typescriptIdentifierName Array nextgroup=typescriptGlobalArrayDot,typescriptFuncCallArg
syntax match typescriptGlobalArrayDot /\./ contained nextgroup=typescriptArrayStaticMethod,typescriptProp
syntax keyword typescriptArrayStaticMethod contained from isArray of nextgroup=typescriptFuncCallArg
@@ -629,7 +696,6 @@ if get(g:, 'yats_host_keyword', 1)
syntax cluster props add=typescriptArrayMethod
hi def link typescriptArrayMethod Keyword
- "runtime syntax/yats/es6-object.vim
syntax keyword typescriptGlobal containedin=typescriptIdentifierName Object nextgroup=typescriptGlobalObjectDot,typescriptFuncCallArg
syntax match typescriptGlobalObjectDot /\./ contained nextgroup=typescriptObjectStaticMethod,typescriptProp
syntax keyword typescriptObjectStaticMethod contained create defineProperties defineProperty nextgroup=typescriptFuncCallArg
@@ -646,7 +712,6 @@ if get(g:, 'yats_host_keyword', 1)
syntax cluster props add=typescriptObjectMethod
hi def link typescriptObjectMethod Keyword
- "runtime syntax/yats/es6-symbol.vim
syntax keyword typescriptGlobal containedin=typescriptIdentifierName Symbol nextgroup=typescriptGlobalSymbolDot,typescriptFuncCallArg
syntax match typescriptGlobalSymbolDot /\./ contained nextgroup=typescriptSymbolStaticProp,typescriptSymbolStaticMethod,typescriptProp
syntax keyword typescriptSymbolStaticProp contained length iterator match replace
@@ -657,13 +722,11 @@ if get(g:, 'yats_host_keyword', 1)
syntax keyword typescriptSymbolStaticMethod contained for keyFor nextgroup=typescriptFuncCallArg
hi def link typescriptSymbolStaticMethod Keyword
- "runtime syntax/yats/es6-function.vim
syntax keyword typescriptGlobal containedin=typescriptIdentifierName Function
syntax keyword typescriptFunctionMethod contained apply bind call nextgroup=typescriptFuncCallArg
syntax cluster props add=typescriptFunctionMethod
hi def link typescriptFunctionMethod Keyword
- "runtime syntax/yats/es6-math.vim
syntax keyword typescriptGlobal containedin=typescriptIdentifierName Math nextgroup=typescriptGlobalMathDot,typescriptFuncCallArg
syntax match typescriptGlobalMathDot /\./ contained nextgroup=typescriptMathStaticProp,typescriptMathStaticMethod,typescriptProp
syntax keyword typescriptMathStaticProp contained E LN10 LN2 LOG10E LOG2E PI SQRT1_2
@@ -677,7 +740,6 @@ if get(g:, 'yats_host_keyword', 1)
syntax keyword typescriptMathStaticMethod contained sinh sqrt tan tanh trunc nextgroup=typescriptFuncCallArg
hi def link typescriptMathStaticMethod Keyword
- "runtime syntax/yats/es6-date.vim
syntax keyword typescriptGlobal containedin=typescriptIdentifierName Date nextgroup=typescriptGlobalDateDot,typescriptFuncCallArg
syntax match typescriptGlobalDateDot /\./ contained nextgroup=typescriptDateStaticMethod,typescriptProp
syntax keyword typescriptDateStaticMethod contained UTC now parse nextgroup=typescriptFuncCallArg
@@ -699,13 +761,11 @@ if get(g:, 'yats_host_keyword', 1)
syntax cluster props add=typescriptDateMethod
hi def link typescriptDateMethod Keyword
- "runtime syntax/yats/es6-json.vim
syntax keyword typescriptGlobal containedin=typescriptIdentifierName JSON nextgroup=typescriptGlobalJSONDot,typescriptFuncCallArg
syntax match typescriptGlobalJSONDot /\./ contained nextgroup=typescriptJSONStaticMethod,typescriptProp
syntax keyword typescriptJSONStaticMethod contained parse stringify nextgroup=typescriptFuncCallArg
hi def link typescriptJSONStaticMethod Keyword
- "runtime syntax/yats/es6-regexp.vim
syntax keyword typescriptGlobal containedin=typescriptIdentifierName RegExp nextgroup=typescriptGlobalRegExpDot,typescriptFuncCallArg
syntax match typescriptGlobalRegExpDot /\./ contained nextgroup=typescriptRegExpStaticProp,typescriptProp
syntax keyword typescriptRegExpStaticProp contained lastIndex
@@ -717,7 +777,6 @@ if get(g:, 'yats_host_keyword', 1)
syntax cluster props add=typescriptRegExpMethod
hi def link typescriptRegExpMethod Keyword
- "runtime syntax/yats/es6-map.vim
syntax keyword typescriptGlobal containedin=typescriptIdentifierName Map WeakMap
syntax keyword typescriptES6MapProp contained size
syntax cluster props add=typescriptES6MapProp
@@ -727,7 +786,6 @@ if get(g:, 'yats_host_keyword', 1)
syntax cluster props add=typescriptES6MapMethod
hi def link typescriptES6MapMethod Keyword
- "runtime syntax/yats/es6-set.vim
syntax keyword typescriptGlobal containedin=typescriptIdentifierName Set WeakSet
syntax keyword typescriptES6SetProp contained size
syntax cluster props add=typescriptES6SetProp
@@ -737,7 +795,6 @@ if get(g:, 'yats_host_keyword', 1)
syntax cluster props add=typescriptES6SetMethod
hi def link typescriptES6SetMethod Keyword
- "runtime syntax/yats/es6-proxy.vim
syntax keyword typescriptGlobal containedin=typescriptIdentifierName Proxy
syntax keyword typescriptProxyAPI contained getOwnPropertyDescriptor getOwnPropertyNames
syntax keyword typescriptProxyAPI contained defineProperty deleteProperty freeze seal
@@ -745,7 +802,6 @@ if get(g:, 'yats_host_keyword', 1)
syntax keyword typescriptProxyAPI contained iterate ownKeys apply construct
hi def link typescriptProxyAPI Keyword
- "runtime syntax/yats/es6-promise.vim
syntax keyword typescriptGlobal containedin=typescriptIdentifierName Promise nextgroup=typescriptGlobalPromiseDot,typescriptFuncCallArg
syntax match typescriptGlobalPromiseDot /\./ contained nextgroup=typescriptPromiseStaticMethod,typescriptProp
syntax keyword typescriptPromiseStaticMethod contained resolve reject all race nextgroup=typescriptFuncCallArg
@@ -754,7 +810,6 @@ if get(g:, 'yats_host_keyword', 1)
syntax cluster props add=typescriptPromiseMethod
hi def link typescriptPromiseMethod Keyword
- "runtime syntax/yats/es6-reflect.vim
syntax keyword typescriptGlobal containedin=typescriptIdentifierName Reflect
syntax keyword typescriptReflectMethod contained apply construct defineProperty deleteProperty nextgroup=typescriptFuncCallArg
syntax keyword typescriptReflectMethod contained enumerate get getOwnPropertyDescriptor nextgroup=typescriptFuncCallArg
@@ -763,14 +818,12 @@ if get(g:, 'yats_host_keyword', 1)
syntax cluster props add=typescriptReflectMethod
hi def link typescriptReflectMethod Keyword
- "runtime syntax/yats/ecma-402.vim
syntax keyword typescriptGlobal containedin=typescriptIdentifierName Intl
syntax keyword typescriptIntlMethod contained Collator DateTimeFormat NumberFormat nextgroup=typescriptFuncCallArg
syntax keyword typescriptIntlMethod contained PluralRules nextgroup=typescriptFuncCallArg
syntax cluster props add=typescriptIntlMethod
hi def link typescriptIntlMethod Keyword
- "runtime syntax/yats/node.vim
syntax keyword typescriptNodeGlobal containedin=typescriptIdentifierName global process
syntax keyword typescriptNodeGlobal containedin=typescriptIdentifierName console Buffer
syntax keyword typescriptNodeGlobal containedin=typescriptIdentifierName module exports
@@ -788,7 +841,6 @@ if get(g:, 'yats_host_keyword', 1)
syntax keyword typescriptTestGlobal containedin=typescriptIdentifierName afterAll
syntax keyword typescriptTestGlobal containedin=typescriptIdentifierName expect assert
- "runtime syntax/yats/web.vim
syntax keyword typescriptBOM containedin=typescriptIdentifierName AbortController
syntax keyword typescriptBOM containedin=typescriptIdentifierName AbstractWorker AnalyserNode
syntax keyword typescriptBOM containedin=typescriptIdentifierName App Apps ArrayBuffer
@@ -1038,7 +1090,6 @@ if get(g:, 'yats_host_keyword', 1)
syntax keyword typescriptBOM containedin=typescriptIdentifierName XMLHttpRequestEventTarget
hi def link typescriptBOM Structure
- "runtime syntax/yats/web-window.vim
syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName applicationCache
syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName closed
syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName Components
@@ -1145,7 +1196,6 @@ if get(g:, 'yats_host_keyword', 1)
syntax keyword typescriptBOMWindowCons containedin=typescriptIdentifierName XMLSerializer
hi def link typescriptBOMWindowCons Structure
- "runtime syntax/yats/web-navigator.vim
syntax keyword typescriptBOMNavigatorProp contained battery buildID connection cookieEnabled
syntax keyword typescriptBOMNavigatorProp contained doNotTrack maxTouchPoints oscpu
syntax keyword typescriptBOMNavigatorProp contained productSub push serviceWorker
@@ -1164,7 +1214,6 @@ if get(g:, 'yats_host_keyword', 1)
syntax cluster props add=typescriptServiceWorkerMethod
hi def link typescriptServiceWorkerMethod Keyword
- "runtime syntax/yats/web-location.vim
syntax keyword typescriptBOMLocationProp contained href protocol host hostname port
syntax keyword typescriptBOMLocationProp contained pathname search hash username password
syntax keyword typescriptBOMLocationProp contained origin
@@ -1174,7 +1223,6 @@ if get(g:, 'yats_host_keyword', 1)
syntax cluster props add=typescriptBOMLocationMethod
hi def link typescriptBOMLocationMethod Keyword
- "runtime syntax/yats/web-history.vim
syntax keyword typescriptBOMHistoryProp contained length current next previous state
syntax keyword typescriptBOMHistoryProp contained scrollRestoration
syntax cluster props add=typescriptBOMHistoryProp
@@ -1183,7 +1231,6 @@ if get(g:, 'yats_host_keyword', 1)
syntax cluster props add=typescriptBOMHistoryMethod
hi def link typescriptBOMHistoryMethod Keyword
- "runtime syntax/yats/web-console.vim
syntax keyword typescriptGlobal containedin=typescriptIdentifierName console
syntax keyword typescriptConsoleMethod contained count dir error group groupCollapsed nextgroup=typescriptFuncCallArg
syntax keyword typescriptConsoleMethod contained groupEnd info log time timeEnd trace nextgroup=typescriptFuncCallArg
@@ -1191,7 +1238,6 @@ if get(g:, 'yats_host_keyword', 1)
syntax cluster props add=typescriptConsoleMethod
hi def link typescriptConsoleMethod Keyword
- "runtime syntax/yats/web-xhr.vim
syntax keyword typescriptXHRGlobal containedin=typescriptIdentifierName XMLHttpRequest
hi def link typescriptXHRGlobal Structure
syntax keyword typescriptXHRProp contained onreadystatechange readyState response
@@ -1204,7 +1250,6 @@ if get(g:, 'yats_host_keyword', 1)
syntax cluster props add=typescriptXHRMethod
hi def link typescriptXHRMethod Keyword
- "runtime syntax/yats/web-blob.vim
syntax keyword typescriptGlobal containedin=typescriptIdentifierName Blob BlobBuilder
syntax keyword typescriptGlobal containedin=typescriptIdentifierName File FileReader
syntax keyword typescriptGlobal containedin=typescriptIdentifierName FileReaderSync
@@ -1236,7 +1281,6 @@ if get(g:, 'yats_host_keyword', 1)
syntax keyword typescriptURLStaticMethod contained createObjectURL revokeObjectURL nextgroup=typescriptFuncCallArg
hi def link typescriptURLStaticMethod Keyword
- "runtime syntax/yats/web-crypto.vim
syntax keyword typescriptCryptoGlobal containedin=typescriptIdentifierName crypto
hi def link typescriptCryptoGlobal Structure
syntax keyword typescriptSubtleCryptoMethod contained encrypt decrypt sign verify nextgroup=typescriptFuncCallArg
@@ -1250,7 +1294,6 @@ if get(g:, 'yats_host_keyword', 1)
syntax cluster props add=typescriptCryptoMethod
hi def link typescriptCryptoMethod Keyword
- "runtime syntax/yats/web-fetch.vim
syntax keyword typescriptGlobal containedin=typescriptIdentifierName Headers Request
syntax keyword typescriptGlobal containedin=typescriptIdentifierName Response
syntax keyword typescriptGlobalMethod containedin=typescriptIdentifierName fetch nextgroup=typescriptFuncCallArg
@@ -1274,7 +1317,6 @@ if get(g:, 'yats_host_keyword', 1)
syntax cluster props add=typescriptResponseMethod
hi def link typescriptResponseMethod Keyword
- "runtime syntax/yats/web-service-worker.vim
syntax keyword typescriptServiceWorkerProp contained controller ready
syntax cluster props add=typescriptServiceWorkerProp
hi def link typescriptServiceWorkerProp Keyword
@@ -1287,7 +1329,6 @@ if get(g:, 'yats_host_keyword', 1)
syntax cluster props add=typescriptCacheMethod
hi def link typescriptCacheMethod Keyword
- "runtime syntax/yats/web-encoding.vim
syntax keyword typescriptEncodingGlobal containedin=typescriptIdentifierName TextEncoder
syntax keyword typescriptEncodingGlobal containedin=typescriptIdentifierName TextDecoder
hi def link typescriptEncodingGlobal Structure
@@ -1298,21 +1339,18 @@ if get(g:, 'yats_host_keyword', 1)
syntax cluster props add=typescriptEncodingMethod
hi def link typescriptEncodingMethod Keyword
- "runtime syntax/yats/web-geo.vim
syntax keyword typescriptGlobal containedin=typescriptIdentifierName Geolocation
syntax keyword typescriptGeolocationMethod contained getCurrentPosition watchPosition nextgroup=typescriptFuncCallArg
syntax keyword typescriptGeolocationMethod contained clearWatch nextgroup=typescriptFuncCallArg
syntax cluster props add=typescriptGeolocationMethod
hi def link typescriptGeolocationMethod Keyword
- "runtime syntax/yats/web-network.vim
syntax keyword typescriptGlobal containedin=typescriptIdentifierName NetworkInformation
syntax keyword typescriptBOMNetworkProp contained downlink downlinkMax effectiveType
syntax keyword typescriptBOMNetworkProp contained rtt type
syntax cluster props add=typescriptBOMNetworkProp
hi def link typescriptBOMNetworkProp Keyword
- "runtime syntax/yats/web-payment.vim
syntax keyword typescriptGlobal containedin=typescriptIdentifierName PaymentRequest
syntax keyword typescriptPaymentMethod contained show abort canMakePayment nextgroup=typescriptFuncCallArg
syntax cluster props add=typescriptPaymentMethod
@@ -1340,7 +1378,6 @@ if get(g:, 'yats_host_keyword', 1)
syntax cluster props add=typescriptPaymentShippingOptionProp
hi def link typescriptPaymentShippingOptionProp Keyword
- "runtime syntax/yats/dom-node.vim
syntax keyword typescriptDOMNodeProp contained attributes baseURI baseURIObject childNodes
syntax keyword typescriptDOMNodeProp contained firstChild lastChild localName namespaceURI
syntax keyword typescriptDOMNodeProp contained nextSibling nodeName nodePrincipal
@@ -1364,7 +1401,6 @@ if get(g:, 'yats_host_keyword', 1)
syntax keyword typescriptDOMNodeType contained DOCUMENT_FRAGMENT_NODE NOTATION_NODE
hi def link typescriptDOMNodeType Keyword
- "runtime syntax/yats/dom-elem.vim
syntax keyword typescriptDOMElemAttrs contained accessKey clientHeight clientLeft
syntax keyword typescriptDOMElemAttrs contained clientTop clientWidth id innerHTML
syntax keyword typescriptDOMElemAttrs contained length onafterscriptexecute onbeforescriptexecute
@@ -1387,7 +1423,6 @@ if get(g:, 'yats_host_keyword', 1)
syntax keyword typescriptDOMElemFuncs contained getAttribute
hi def link typescriptDOMElemFuncs Keyword
- "runtime syntax/yats/dom-document.vim
syntax keyword typescriptDOMDocProp contained activeElement body cookie defaultView
syntax keyword typescriptDOMDocProp contained designMode dir domain embeds forms head
syntax keyword typescriptDOMDocProp contained images lastModified links location plugins
@@ -1419,7 +1454,6 @@ if get(g:, 'yats_host_keyword', 1)
syntax cluster props add=typescriptDOMDocMethod
hi def link typescriptDOMDocMethod Keyword
- "runtime syntax/yats/dom-event.vim
syntax keyword typescriptDOMEventTargetMethod contained addEventListener removeEventListener nextgroup=typescriptEventFuncCallArg
syntax keyword typescriptDOMEventTargetMethod contained dispatchEvent waitUntil nextgroup=typescriptEventFuncCallArg
syntax cluster props add=typescriptDOMEventTargetMethod
@@ -1480,7 +1514,6 @@ if get(g:, 'yats_host_keyword', 1)
syntax cluster props add=typescriptDOMEventMethod
hi def link typescriptDOMEventMethod Keyword
- "runtime syntax/yats/dom-storage.vim
syntax keyword typescriptDOMStorage contained sessionStorage localStorage
hi def link typescriptDOMStorage Keyword
syntax keyword typescriptDOMStorageProp contained length
@@ -1491,7 +1524,6 @@ if get(g:, 'yats_host_keyword', 1)
syntax cluster props add=typescriptDOMStorageMethod
hi def link typescriptDOMStorageMethod Keyword
- "runtime syntax/yats/dom-form.vim
syntax keyword typescriptDOMFormProp contained acceptCharset action elements encoding
syntax keyword typescriptDOMFormProp contained enctype length method name target
syntax cluster props add=typescriptDOMFormProp
@@ -1500,7 +1532,6 @@ if get(g:, 'yats_host_keyword', 1)
syntax cluster props add=typescriptDOMFormMethod
hi def link typescriptDOMFormMethod Keyword
- "runtime syntax/yats/css.vim
syntax keyword typescriptDOMStyle contained alignContent alignItems alignSelf animation
syntax keyword typescriptDOMStyle contained animationDelay animationDirection animationDuration
syntax keyword typescriptDOMStyle contained animationFillMode animationIterationCount
@@ -1575,8 +1606,6 @@ if get(g:, 'yats_host_keyword', 1)
let typescript_props = 1
-
- "runtime syntax/yats/event.vim
syntax keyword typescriptAnimationEvent contained animationend animationiteration
syntax keyword typescriptAnimationEvent contained animationstart beginEvent endEvent
syntax keyword typescriptAnimationEvent contained repeatEvent
@@ -1710,14 +1739,12 @@ if get(g:, 'yats_host_keyword', 1)
endif
" patch
-"runtime syntax/basic/patch.vim
" patch for generated code
syntax keyword typescriptGlobal Promise
\ nextgroup=typescriptGlobalPromiseDot,typescriptFuncCallArg,typescriptTypeArguments oneline
syntax keyword typescriptGlobal Map WeakMap
\ nextgroup=typescriptGlobalPromiseDot,typescriptFuncCallArg,typescriptTypeArguments oneline
-"runtime syntax/basic/members.vim
syntax keyword typescriptConstructor contained constructor
\ nextgroup=@typescriptCallSignature
\ skipwhite skipempty
@@ -1725,7 +1752,7 @@ syntax keyword typescriptConstructor contained constructor
syntax cluster memberNextGroup contains=typescriptMemberOptionality,typescriptTypeAnnotation,@typescriptCallSignature
-syntax match typescriptMember /\K\k*/
+syntax match typescriptMember /#\?\K\k*/
\ nextgroup=@memberNextGroup
\ contained skipwhite
@@ -1765,7 +1792,6 @@ syntax region typescriptComputedMember contained matchgroup=typescriptPropert
\ nextgroup=@memberNextGroup
\ skipwhite skipempty
-"runtime syntax/basic/class.vim
"don't add typescriptMembers to nextgroup, let outer scope match it
" so we won't match abstract method outside abstract class
syntax keyword typescriptAbstract abstract
@@ -1781,7 +1807,7 @@ syntax match typescriptClassName contained /\K\k*/
syntax region typescriptClassTypeParameter
\ start=/</ end=/>/
- \ contains=typescriptTypeParameter
+ \ contains=@typescriptTypeParameterCluster
\ nextgroup=typescriptClassBlock,typescriptClassExtends
\ contained skipwhite skipnl
@@ -1813,7 +1839,7 @@ syntax match typescriptInterfaceName contained /\k\+/
\ skipwhite skipnl
syntax region typescriptInterfaceTypeParameter
\ start=/</ end=/>/
- \ contains=typescriptTypeParameter
+ \ contains=@typescriptTypeParameterCluster
\ nextgroup=typescriptObjectType,typescriptInterfaceExtends
\ contained
\ skipwhite skipnl
@@ -1832,7 +1858,6 @@ syntax region typescriptInterfaceTypeArguments matchgroup=typescriptTypeBrackets
syntax match typescriptInterfaceComma /,/ contained nextgroup=typescriptInterfaceHeritage skipwhite skipnl
-"runtime syntax/basic/cluster.vim
"Block VariableStatement EmptyStatement ExpressionStatement IfStatement IterationStatement ContinueStatement BreakStatement ReturnStatement WithStatement LabelledStatement SwitchStatement ThrowStatement TryStatement DebuggerStatement
syntax cluster typescriptStatement
\ contains=typescriptBlock,typescriptVariable,
@@ -1872,7 +1897,6 @@ syntax cluster typescriptValue
syntax cluster typescriptEventExpression contains=typescriptArrowFuncDef,typescriptParenExp,@typescriptValue,typescriptRegexpString,@typescriptEventTypes,typescriptOperator,typescriptGlobal,jsxRegion
-"runtime syntax/basic/function.vim
syntax keyword typescriptAsyncFuncKeyword async
\ nextgroup=typescriptFuncKeyword,typescriptArrowFuncDef
\ skipwhite
@@ -1894,7 +1918,7 @@ syntax match typescriptFuncName contained /\K\k*/
\ skipwhite
" destructuring ({ a: ee }) =>
-syntax match typescriptArrowFuncDef contained /({\_[^}]*}\(:\_[^)]\)\?)\s*=>/
+syntax match typescriptArrowFuncDef contained /(\(\s*\({\_[^}]*}\|\k\+\)\(:\_[^)]\)\?,\?\)\+)\s*=>/
\ contains=typescriptArrowFuncArg,typescriptArrowFunc
\ nextgroup=@typescriptExpression,typescriptBlock
\ skipwhite skipempty
@@ -1913,7 +1937,7 @@ syntax match typescriptArrowFuncDef contained /\K\k*\s*=>/
\ skipwhite skipempty
" TODO: optimize this pattern
-syntax region typescriptArrowFuncDef contained start=/(\_[^)]*):/ end=/=>/
+syntax region typescriptArrowFuncDef contained start=/(\_[^(^)]*):/ end=/=>/
\ contains=typescriptArrowFuncArg,typescriptArrowFunc,typescriptTypeAnnotation
\ nextgroup=@typescriptExpression,typescriptBlock
\ skipwhite skipempty keepend
@@ -1925,7 +1949,7 @@ syntax region typescriptArrowFuncArg contained start=/<\|(/ end=/\ze=>
syntax region typescriptReturnAnnotation contained start=/:/ end=/{/me=e-1 contains=@typescriptType nextgroup=typescriptBlock
-syntax region typescriptFuncImpl contained start=/function/ end=/{/me=e-1
+syntax region typescriptFuncImpl contained start=/function\>/ end=/{/me=e-1
\ contains=typescriptFuncKeyword
\ nextgroup=typescriptBlock
@@ -1941,9 +1965,8 @@ syntax region typescriptParamImpl matchgroup=typescriptParens
\ nextgroup=typescriptReturnAnnotation,typescriptBlock
\ contained skipwhite skipnl
-"runtime syntax/basic/decorator.vim
syntax match typescriptDecorator /@\([_$a-zA-Z][_$a-zA-Z0-9]*\.\)*[_$a-zA-Z][_$a-zA-Z0-9]*\>/
- \ nextgroup=typescriptArgumentList,typescriptTypeArguments
+ \ nextgroup=typescriptFuncCallArg,typescriptTypeArguments
\ contains=@_semantic,typescriptDotNotation
" Define the default highlighting.
@@ -1957,6 +1980,7 @@ hi def link typescriptComment Comment
hi def link typescriptLineComment Comment
hi def link typescriptDocComment Comment
hi def link typescriptCommentTodo Todo
+hi def link typescriptMagicComment SpecialComment
hi def link typescriptRef Include
hi def link typescriptDocNotation SpecialComment
hi def link typescriptDocTags SpecialComment
@@ -1970,9 +1994,11 @@ hi def link typescriptDocParamType Type
hi def link typescriptString String
hi def link typescriptSpecial Special
hi def link typescriptStringLiteralType String
+hi def link typescriptTemplateLiteralType String
hi def link typescriptStringMember String
hi def link typescriptTemplate String
hi def link typescriptEventString String
+hi def link typescriptDestructureString String
hi def link typescriptASCII Special
hi def link typescriptTemplateSB Label
hi def link typescriptRegexpString String
@@ -1986,6 +2012,7 @@ hi def link typescriptDefault typescriptCase
hi def link typescriptBranch Conditional
hi def link typescriptIdentifier Structure
hi def link typescriptVariable Identifier
+hi def link typescriptDestructureVariable PreProc
hi def link typescriptEnumKeyword Identifier
hi def link typescriptRepeat Repeat
hi def link typescriptForOperator Repeat
@@ -1997,14 +2024,17 @@ hi def link typescriptCastKeyword Special
hi def link typescriptType Type
hi def link typescriptNull Boolean
hi def link typescriptNumber Number
-hi def link typescriptExponent Number
hi def link typescriptBoolean Boolean
hi def link typescriptObjectLabel typescriptLabel
+hi def link typescriptDestructureLabel Function
hi def link typescriptLabel Label
+hi def link typescriptTupleLable Label
hi def link typescriptStringProperty String
hi def link typescriptImport Special
+hi def link typescriptImportType Special
hi def link typescriptAmbientDeclaration Special
hi def link typescriptExport Special
+hi def link typescriptExportType Special
hi def link typescriptModule Special
hi def link typescriptTry Special
hi def link typescriptExceptions Special
@@ -2013,6 +2043,7 @@ hi def link typescriptMember Function
hi def link typescriptMethodAccessor Operator
hi def link typescriptAsyncFuncKeyword Keyword
+hi def link typescriptObjectAsyncKeyword Keyword
hi def link typescriptAsyncFor Keyword
hi def link typescriptFuncKeyword Keyword
hi def link typescriptAsyncFunc Keyword