diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-11-05 20:41:49 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-11-05 20:41:49 +0100 |
commit | 3132cddd209ee510bde48b6520290cb26c8f604a (patch) | |
tree | bc010e66539817a382c76bc11cfb513605dcf033 /runtime/syntax | |
parent | 00806bceb6dc9c8dcd308e5f7e50f720f7dc71b0 (diff) | |
download | vim-git-3132cddd209ee510bde48b6520290cb26c8f604a.tar.gz |
Update runtime files
Diffstat (limited to 'runtime/syntax')
-rw-r--r-- | runtime/syntax/asm.vim | 100 | ||||
-rw-r--r-- | runtime/syntax/asmh8300.vim | 48 | ||||
-rw-r--r-- | runtime/syntax/awk.vim | 7 | ||||
-rw-r--r-- | runtime/syntax/debchangelog.vim | 10 | ||||
-rw-r--r-- | runtime/syntax/debcontrol.vim | 16 | ||||
-rw-r--r-- | runtime/syntax/debsources.vim | 10 | ||||
-rw-r--r-- | runtime/syntax/proto.vim | 60 | ||||
-rw-r--r-- | runtime/syntax/typescriptcommon.vim | 225 |
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 |