summaryrefslogtreecommitdiffstats
path: root/runtime/syntax
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-01-25 13:27:42 +0100
committerBram Moolenaar <Bram@vim.org>2020-01-25 13:27:42 +0100
commit1d9215b9aaa120b9d78fee49488556f73007ce78 (patch)
treee22bd6772e3424e2c4934ce3f28e0f2f8e2fb90e /runtime/syntax
parent7f51bbe0d19f1f0cb0321326f45a17b4f5155f89 (diff)
Update runtime files.
Diffstat (limited to 'runtime/syntax')
-rw-r--r--runtime/syntax/amiga.vim4
-rw-r--r--runtime/syntax/csh.vim4
-rw-r--r--runtime/syntax/dcl.vim4
-rw-r--r--runtime/syntax/elmfilt.vim4
-rw-r--r--runtime/syntax/exports.vim4
-rw-r--r--runtime/syntax/lex.vim4
-rw-r--r--runtime/syntax/lisp.vim4
-rw-r--r--runtime/syntax/maple.vim4
-rw-r--r--runtime/syntax/rpcgen.vim4
-rw-r--r--runtime/syntax/sh.vim26
-rwxr-xr-xruntime/syntax/sil.vim178
-rw-r--r--runtime/syntax/sm.vim4
-rwxr-xr-xruntime/syntax/swift.vim277
-rwxr-xr-xruntime/syntax/swiftgyb.vim24
-rw-r--r--runtime/syntax/tags.vim4
-rw-r--r--runtime/syntax/tex.vim32
-rw-r--r--runtime/syntax/vim.vim4
-rw-r--r--runtime/syntax/xmath.vim4
-rw-r--r--runtime/syntax/xxd.vim4
-rw-r--r--runtime/syntax/yacc.vim4
20 files changed, 546 insertions, 51 deletions
diff --git a/runtime/syntax/amiga.vim b/runtime/syntax/amiga.vim
index eab9f66169..5a664c4f60 100644
--- a/runtime/syntax/amiga.vim
+++ b/runtime/syntax/amiga.vim
@@ -1,8 +1,8 @@
" Vim syntax file
" Language: AmigaDos
-" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
+" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
" Last Change: Aug 31, 2016
-" Version: 9
+" Version: 10
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_AMIGA
" quit when a syntax file was already loaded
diff --git a/runtime/syntax/csh.vim b/runtime/syntax/csh.vim
index c134aa7ef3..6a056c7004 100644
--- a/runtime/syntax/csh.vim
+++ b/runtime/syntax/csh.vim
@@ -1,8 +1,8 @@
" Vim syntax file
" Language: C-shell (csh)
-" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
+" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
" Last Change: Aug 31, 2016
-" Version: 13
+" Version: 14
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_CSH
" quit when a syntax file was already loaded
diff --git a/runtime/syntax/dcl.vim b/runtime/syntax/dcl.vim
index 73df8e1bac..530fbdb599 100644
--- a/runtime/syntax/dcl.vim
+++ b/runtime/syntax/dcl.vim
@@ -1,8 +1,8 @@
" Vim syntax file
" Language: DCL (Digital Command Language - vms)
-" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
+" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
" Last Change: Mar 26, 2019
-" Version: 12
+" Version: 13
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_DCL
" quit when a syntax file was already loaded
diff --git a/runtime/syntax/elmfilt.vim b/runtime/syntax/elmfilt.vim
index ec97af038d..d995853e8e 100644
--- a/runtime/syntax/elmfilt.vim
+++ b/runtime/syntax/elmfilt.vim
@@ -1,8 +1,8 @@
" Vim syntax file
" Language: Elm Filter rules
-" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
+" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
" Last Change: Aug 31, 2016
-" Version: 8
+" Version: 9
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_ELMFILT
" quit when a syntax file was already loaded
diff --git a/runtime/syntax/exports.vim b/runtime/syntax/exports.vim
index 55efbb1e50..05a3f1acfe 100644
--- a/runtime/syntax/exports.vim
+++ b/runtime/syntax/exports.vim
@@ -1,8 +1,8 @@
" Vim syntax file
" Language: exports
-" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
+" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
" Last Change: Aug 31, 2016
-" Version: 7
+" Version: 8
" Notes: This file includes both SysV and BSD 'isms
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_EXPORTS
diff --git a/runtime/syntax/lex.vim b/runtime/syntax/lex.vim
index 560aa44be3..9e0b307d68 100644
--- a/runtime/syntax/lex.vim
+++ b/runtime/syntax/lex.vim
@@ -1,8 +1,8 @@
" Vim syntax file
" Language: Lex
-" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
+" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
" Last Change: Aug 31, 2016
-" Version: 16
+" Version: 17
" URL: http://mysite.verizon.net/astronaut/vim/index.html#SYNTAX_LEX
"
" Option:
diff --git a/runtime/syntax/lisp.vim b/runtime/syntax/lisp.vim
index 17c54d1a4f..434150ab26 100644
--- a/runtime/syntax/lisp.vim
+++ b/runtime/syntax/lisp.vim
@@ -1,8 +1,8 @@
" Vim syntax file
" Language: Lisp
-" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
+" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
" Last Change: Jul 11, 2019
-" Version: 29
+" Version: 30
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_LISP
"
" Thanks to F Xavier Noria for a list of 978 Common Lisp symbols taken from HyperSpec
diff --git a/runtime/syntax/maple.vim b/runtime/syntax/maple.vim
index f14cf79cf4..78f2b4e09e 100644
--- a/runtime/syntax/maple.vim
+++ b/runtime/syntax/maple.vim
@@ -1,8 +1,8 @@
" Vim syntax file
" Language: Maple V (based on release 4)
-" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
+" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
" Last Change: Mar 26, 2019
-" Version: 16
+" Version: 17
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_MAPLE
"
" Package Function Selection: {{{1
diff --git a/runtime/syntax/rpcgen.vim b/runtime/syntax/rpcgen.vim
index 08183d43a4..60c9b8cdda 100644
--- a/runtime/syntax/rpcgen.vim
+++ b/runtime/syntax/rpcgen.vim
@@ -1,8 +1,8 @@
" Vim syntax file
" Language: rpcgen
-" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
+" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
" Last Change: Aug 31, 2016
-" Version: 12
+" Version: 13
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_RPCGEN
if exists("b:current_syntax")
diff --git a/runtime/syntax/sh.vim b/runtime/syntax/sh.vim
index ae62e195a4..0f4406d3e1 100644
--- a/runtime/syntax/sh.vim
+++ b/runtime/syntax/sh.vim
@@ -1,9 +1,9 @@
" Vim syntax file
" Language: shell (sh) Korn shell (ksh) bash (sh)
-" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
+" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
" Previous Maintainer: Lennart Schultz <Lennart.Schultz@ecmwf.int>
-" Last Change: Jun 16, 2019
-" Version: 188
+" Last Change: Oct 16, 2019
+" Version: 189
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH
" For options and settings, please use: :help ft-sh-syntax
" This file includes many ideas from Eric Brunet (eric.brunet@ens.fr)
@@ -124,13 +124,14 @@ syn cluster shErrorList contains=shDoError,shIfError,shInError,shCaseError,shEsa
if exists("b:is_kornshell") || exists("b:is_bash")
syn cluster ErrorList add=shDTestError
endif
-syn cluster shArithParenList contains=shArithmetic,shCaseEsac,shComment,shDeref,shDo,shDerefSimple,shEcho,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shExDoubleQuote,shHereString,shRedir,shSingleQuote,shDoubleQuote,shStatement,shVariable,shAlias,shTest,shCtrlSeq,shSpecial,shParen,bashSpecialVariables,bashStatement,shIf,shFor
+syn cluster shArithParenList contains=shArithmetic,shCaseEsac,shComment,shDeref,shDo,shDerefSimple,shEcho,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shExDoubleQuote,shHereString,shRedir,shSingleQuote,shDoubleQuote,shStatement,shVariable,shAlias,shTest,shCtrlSeq,shSpecial,shParen,bashSpecialVariables,bashStatement,shIf,shFor,shFunctionKey,shFunctionOne,shFunctionTwo
syn cluster shArithList contains=@shArithParenList,shParenError
syn cluster shCaseEsacList contains=shCaseStart,shCaseLabel,shCase,shCaseBar,shCaseIn,shComment,shDeref,shDerefSimple,shCaseCommandSub,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote,shCtrlSeq,@shErrorList,shStringSpecial,shCaseRange
syn cluster shCaseList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shCommandSubBQ,shComment,shDo,shEcho,shExpr,shFor,shForPP,shHereDoc,shIf,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq
syn cluster shCommandSubList contains=shAlias,shArithmetic,shCmdParenRegion,shCommandSub,shComment,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shEcho,shEscape,shExDoubleQuote,shExpr,shExSingleQuote,shHereDoc,shNumber,shOperator,shOption,shPosnParm,shHereString,shRedir,shSingleQuote,shSpecial,shStatement,shSubSh,shTest,shVariable
syn cluster shCurlyList contains=shNumber,shComma,shDeref,shDerefSimple,shDerefSpecial
-syn cluster shDblQuoteList contains=shArithmetic,shCommandSub,shCommandSubBQ,shDeref,shDerefSimple,shEscape,shPosnParm,shCtrlSeq,shSpecial,shSpecialDQ
+" COMBAK: removing shEscape fromshDblQuoteList fails ksh04:43
+syn cluster shDblQuoteList contains=shArithmetic,shCommandSub,shCommandSubBQ,shDeref,shDerefSimple,shPosnParm,shCtrlSeq,shSpecial,shSpecialDQ
syn cluster shDerefList contains=shDeref,shDerefSimple,shDerefVar,shDerefSpecial,shDerefWordError,shDerefPSR,shDerefPPS
syn cluster shDerefVarList contains=shDerefOff,shDerefOp,shDerefVarArray,shDerefOpError
syn cluster shEchoList contains=shArithmetic,shCommandSub,shCommandSubBQ,shDeref,shDerefSimple,shEscape,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shCtrlSeq,shEchoQuote
@@ -147,6 +148,7 @@ syn cluster shHereListDQ contains=shBeginHere,@shDblQuoteList,shHerePayload
syn cluster shIdList contains=shCommandSub,shCommandSubBQ,shWrapLineOperator,shSetOption,shComment,shDeref,shDerefSimple,shHereString,shNumber,shOperator,shRedir,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shCtrlSeq,shStringSpecial,shAtExpr
syn cluster shIfList contains=@shLoopList,shDblBrace,shDblParen,shFunctionKey,shFunctionOne,shFunctionTwo
syn cluster shLoopList contains=@shCaseList,@shErrorList,shCaseEsac,shConditional,shDblBrace,shExpr,shFor,shForPP,shIf,shOption,shSet,shTest,shTestOpr,shTouch
+syn cluster shPPSLeftList contains=shAlias,shArithmetic,shCmdParenRegion,shCommandSub,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shEcho,shEscape,shExDoubleQuote,shExpr,shExSingleQuote,shHereDoc,shNumber,shOperator,shOption,shPosnParm,shHereString,shRedir,shSingleQuote,shSpecial,shStatement,shSubSh,shTest,shVariable
syn cluster shPPSRightList contains=shComment,shDeref,shDerefSimple,shEscape,shPosnParm
syn cluster shSubShList contains=@shCommandSubList,shCommandSubBQ,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shIf,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq,shOperator
syn cluster shTestList contains=shArithmetic,shCharClass,shCommandSub,shCommandSubBQ,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shSpecialDQ,shExDoubleQuote,shExpr,shExSingleQuote,shNumber,shOperator,shSingleQuote,shTest,shTestOpr
@@ -156,8 +158,8 @@ syn cluster shForList contains=shTestOpr,shNumber,shDerefSimple,shDeref,shComman
" Echo: {{{1
" ====
" This one is needed INSIDE a CommandSub, so that `echo bla` be correct
-syn region shEcho matchgroup=shStatement start="\<echo\>" skip="\\$" matchgroup=shEchoDelim end="$" matchgroup=NONE end="[<>;&|()`]"me=e-1 end="\d[<>]"me=e-2 end="\s#"me=e-2 contains=@shEchoList skipwhite nextgroup=shQuickComment
-syn region shEcho matchgroup=shStatement start="\<print\>" skip="\\$" matchgroup=shEchoDelim end="$" matchgroup=NONE end="[<>;&|()`]"me=e-1 end="\d[<>]"me=e-2 end="\s#"me=e-2 contains=@shEchoList skipwhite nextgroup=shQuickComment
+syn region shEcho matchgroup=shStatement start="\<echo\>" skip="\\$" matchgroup=shEchoDelim end="$" matchgroup=NONE end="[<>;&|()`]"me=e-1 end="\d[<>]"me=e-2 end="#"me=e-1 contains=@shEchoList skipwhite nextgroup=shQuickComment
+syn region shEcho matchgroup=shStatement start="\<print\>" skip="\\$" matchgroup=shEchoDelim end="$" matchgroup=NONE end="[<>;&|()`]"me=e-1 end="\d[<>]"me=e-2 end="#"me=e-1 contains=@shEchoList skipwhite nextgroup=shQuickComment
syn match shEchoQuote contained '\%(\\\\\)*\\["`'()]'
" This must be after the strings, so that ... \" will be correct
@@ -196,7 +198,7 @@ endif
" Options: {{{1
" ====================
syn match shOption "\s\zs[-+][-_a-zA-Z#@]\+"
-syn match shOption "\s\zs--[^ \t$`'"|);]\+"
+syn match shOption "\s\zs--[^ \t$=`'"|);]\+"
" File Redirection Highlighted As Operators: {{{1
"===========================================
@@ -292,9 +294,12 @@ endif
"======
syn match shWrapLineOperator "\\$"
syn region shCommandSubBQ start="`" skip="\\\\\|\\." end="`" contains=shBQComment,@shCommandSubList
-"see ksh13
+"COMBAK: see ksh13:50
"syn match shEscape contained '\%(^\)\@!\%(\\\\\)*\\.' nextgroup=shSingleQuote,shDoubleQuote,shComment
+"COMBAK: see sh11:27
syn match shEscape contained '\%(^\)\@!\%(\\\\\)*\\.' nextgroup=shComment
+"COMBAK: see ksh13:53
+"syn match shEscape contained '\%(^\)\@!\%(\\\\\)*\\.'
" $() and $(()): {{{1
" $(..) is not supported by sh (Bourne shell). However, apparently
@@ -356,6 +361,7 @@ syn region shDoubleQuote matchgroup=shQuote start=+\%(\%(\\\\\)*\\\)\@<!"+ skip
syn region shDoubleQuote matchgroup=shQuote start=+"+ skip=+\\"+ end=+"+ contained contains=@shDblQuoteList,shStringSpecial,@Spell nextgroup=shSpecialStart
syn match shStringSpecial "[^[:print:] \t]" contained
syn match shStringSpecial "[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]" nextgroup=shComment
+syn match shStringSpecial "[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]"
syn match shSpecialSQ "[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]" contained nextgroup=shBkslshSnglQuote,@shNoZSList
syn match shSpecialDQ "[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]" contained nextgroup=shBkslshDblQuote,@shNoZSList
syn match shSpecialStart "\%(\\\\\)*\\[\\"'`$()#]" contained nextgroup=shBkslshSnglQuote,shBkslshDblQuote,@shNoZSList
@@ -527,7 +533,7 @@ if exists("b:is_bash")
" bash : ${parameter//pattern/string}
" bash : ${parameter//pattern}
syn match shDerefPPS contained '/\{1,2}' nextgroup=shDerefPPSleft
- syn region shDerefPPSleft contained start='.' skip=@\%(\\\\\)*\\/@ matchgroup=shDerefOp end='/' end='\ze}' nextgroup=shDerefPPSright contains=@shCommandSubList
+ syn region shDerefPPSleft contained start='.' skip=@\%(\\\\\)*\\/@ matchgroup=shDerefOp end='/' end='\ze}' nextgroup=shDerefPPSright contains=@shPPSLeftList
syn region shDerefPPSright contained start='.' skip=@\%(\\\\\)\+@ end='\ze}' contains=@shPPSRightList
" bash : ${parameter/#substring/replacement}
diff --git a/runtime/syntax/sil.vim b/runtime/syntax/sil.vim
new file mode 100755
index 0000000000..5583497f1e
--- /dev/null
+++ b/runtime/syntax/sil.vim
@@ -0,0 +1,178 @@
+" This source file is part of the Swift.org open source project
+"
+" Copyright (c) 2014 - 2020 Apple Inc. and the Swift project authors
+" Licensed under Apache License v2.0 with Runtime Library Exception
+"
+" See https://swift.org/LICENSE.txt for license information
+" See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
+"
+" Vim syntax file
+" Language: sil
+"
+" Vim maintainer: Emir SARI <bitigchi@me.com>
+
+if exists("b:current_syntax")
+ finish
+endif
+
+let s:keepcpo = &cpo
+set cpo&vim
+
+syn keyword silStage skipwhite nextgroup=silStages
+ \ sil_stage
+syn keyword silStages
+ \ canonical
+ \ raw
+
+syn match silIdentifier skipwhite
+ \ /@\<[A-Za-z_0-9]\+\>/
+
+syn match silConvention skipwhite
+ \ /$\?@convention/
+syn region silConvention contained contains=silConventions
+ \ start="@convention(" end=")"
+syn keyword silConventions
+ \ block
+ \ c
+ \ method
+ \ objc_method
+ \ thick
+ \ thin
+ \ witness_method
+
+syn match silFunctionType skipwhite
+ \ /@\(\<autoreleased\>\|\<callee_guaranteed\>\|\<callee_owned\>\|\<error\>\|\<guaranteed\>\|\<in\>\|\<in_constant\>\|\<in_guaranteed\>\|\<inout\>\|\<inout_aliasable\>\|\<noescape\>\|\<out\>\|\<owned\>\)/
+syn match silMetatypeType skipwhite
+ \ /@\(\<thick\>\|\<thin\>\|\<objc\>\)/
+
+" TODO: handle [tail_elems sil-type * sil-operand]
+syn region silAttribute contains=silAttributes
+ \ start="\[" end="\]"
+syn keyword silAttributes contained containedin=silAttribute
+ \ abort
+ \ deinit
+ \ delegatingself
+ \ derivedself
+ \ derivedselfonly
+ \ dynamic
+ \ exact
+ \ init
+ \ modify
+ \ mutating
+ \ objc
+ \ open
+ \ read
+ \ rootself
+ \ stack
+ \ static
+ \ strict
+ \ unknown
+ \ unsafe
+ \ var
+
+syn keyword swiftImport import skipwhite nextgroup=swiftImportModule
+syn match swiftImportModule /\<[A-Za-z_][A-Za-z_0-9]*\>/ contained nextgroup=swiftImportComponent
+syn match swiftImportComponent /\.\<[A-Za-z_][A-Za-z_0-9]*\>/ contained nextgroup=swiftImportComponent
+
+syn region swiftComment start="/\*" end="\*/" contains=swiftComment,swiftTodo
+syn region swiftLineComment start="//" end="$" contains=swiftTodo
+
+syn match swiftLineComment /^#!.*/
+syn match swiftTypeName /\<[A-Z][a-zA-Z_0-9]*\>/
+syn match swiftDecimal /\<[-]\?[0-9]\+\>/
+syn match swiftDecimal /\<[-+]\?[0-9]\+\>/
+
+syn match swiftTypeName /\$\*\<\?[A-Z][a-zA-Z0-9_]*\>/
+syn match swiftVarName /%\<[A-z[a-z_0-9]\+\(#[0-9]\+\)\?\>/
+
+syn keyword swiftKeyword break case continue default do else for if in static switch repeat return where while skipwhite
+
+syn keyword swiftKeyword sil internal thunk skipwhite
+syn keyword swiftKeyword public hidden private shared public_external hidden_external skipwhite
+syn keyword swiftKeyword getter setter allocator initializer enumelt destroyer globalaccessor objc skipwhite
+syn keyword swiftKeyword alloc_global alloc_stack alloc_ref alloc_ref_dynamic alloc_box alloc_existential_box alloc_value_buffer dealloc_stack dealloc_box dealloc_existential_box dealloc_ref dealloc_partial_ref dealloc_value_buffer skipwhite
+syn keyword swiftKeyword debug_value debug_value_addr skipwhite
+syn keyword swiftKeyword load load_unowned store assign mark_uninitialized mark_function_escape copy_addr destroy_addr index_addr index_raw_pointer bind_memory to skipwhite
+syn keyword swiftKeyword strong_retain strong_release strong_retain_unowned ref_to_unowned unowned_to_ref unowned_retain unowned_release load_weak store_unowned store_weak fix_lifetime autorelease_value set_deallocating is_unique is_escaping_closure skipwhite
+syn keyword swiftKeyword function_ref integer_literal float_literal string_literal global_addr skipwhite
+syn keyword swiftKeyword class_method super_method witness_method objc_method objc_super_method skipwhite
+syn keyword swiftKeyword partial_apply builtin skipwhite
+syn keyword swiftApplyKeyword apply try_apply skipwhite
+syn keyword swiftKeyword metatype value_metatype existential_metatype skipwhite
+syn keyword swiftKeyword retain_value release_value retain_value_addr release_value_addr tuple tuple_extract tuple_element_addr struct struct_extract struct_element_addr ref_element_addr skipwhite
+syn keyword swiftKeyword init_enum_data_addr unchecked_enum_data unchecked_take_enum_data_addr inject_enum_addr skipwhite
+syn keyword swiftKeyword init_existential_addr init_existential_value init_existential_metatype deinit_existential_addr deinit_existential_value open_existential_addr open_existential_box open_existential_box_value open_existential_metatype init_existential_ref open_existential_ref open_existential_value skipwhite
+syn keyword swiftKeyword upcast address_to_pointer pointer_to_address pointer_to_thin_function unchecked_addr_cast unchecked_ref_cast unchecked_ref_cast_addr ref_to_raw_pointer ref_to_bridge_object ref_to_unmanaged unmanaged_to_ref raw_pointer_to_ref skipwhite
+syn keyword swiftKeyword convert_function thick_to_objc_metatype thin_function_to_pointer objc_to_thick_metatype thin_to_thick_function unchecked_ref_bit_cast unchecked_trivial_bit_cast bridge_object_to_ref bridge_object_to_word unchecked_bitwise_cast skipwhite
+syn keyword swiftKeyword objc_existential_metatype_to_object objc_metatype_to_object objc_protocol skipwhite
+syn keyword swiftKeyword unconditional_checked_cast unconditional_checked_cast_addr unconditional_checked_cast_value skipwhite
+syn keyword swiftKeyword cond_fail skipwhite
+syn keyword swiftKeyword unreachable return throw br cond_br switch_value select_enum select_enum_addr select_value switch_enum switch_enum_addr dynamic_method_br checked_cast_br checked_cast_value_br checked_cast_addr_br skipwhite
+syn keyword swiftKeyword project_box project_existential_box project_value_buffer project_block_storage init_block_storage_header copy_block mark_dependence skipwhite
+
+syn keyword swiftTypeDefinition class extension protocol struct typealias enum skipwhite nextgroup=swiftTypeName
+syn region swiftTypeAttributes start="\[" end="\]" skipwhite contained nextgroup=swiftTypeName
+syn match swiftTypeName /\<[A-Za-z_][A-Za-z_0-9\.]*\>/ contained nextgroup=swiftTypeParameters
+
+syn region swiftTypeParameters start="<" end=">" skipwhite contained
+
+syn keyword swiftFuncDefinition func skipwhite nextgroup=swiftFuncAttributes,swiftFuncName,swiftOperator
+syn region swiftFuncAttributes start="\[" end="\]" skipwhite contained nextgroup=swiftFuncName,swiftOperator
+syn match swiftFuncName /\<[A-Za-z_][A-Za-z_0-9]*\>/ skipwhite contained nextgroup=swiftTypeParameters
+syn keyword swiftFuncKeyword subscript init destructor nextgroup=swiftTypeParameters
+
+syn keyword swiftVarDefinition var skipwhite nextgroup=swiftVarName
+syn keyword swiftVarDefinition let skipwhite nextgroup=swiftVarName
+syn match swiftVarName /\<[A-Za-z_][A-Za-z_0-9]*\>/ skipwhite contained
+
+syn keyword swiftDefinitionModifier static
+
+syn match swiftImplicitVarName /\$\<[A-Za-z_0-9]\+\>/
+
+hi def link swiftImport Include
+hi def link swiftImportModule Title
+hi def link swiftImportComponent Identifier
+hi def link swiftApplyKeyword Statement
+hi def link swiftKeyword Statement
+hi def link swiftTypeDefinition Define
+hi def link swiftTypeName Type
+hi def link swiftTypeParameters Special
+hi def link swiftTypeAttributes PreProc
+hi def link swiftFuncDefinition Define
+hi def link swiftDefinitionModifier Define
+hi def link swiftFuncName Function
+hi def link swiftFuncAttributes PreProc
+hi def link swiftFuncKeyword Function
+hi def link swiftVarDefinition Define
+hi def link swiftVarName Identifier
+hi def link swiftImplicitVarName Identifier
+hi def link swiftIdentifierKeyword Identifier
+hi def link swiftTypeDeclaration Delimiter
+hi def link swiftBoolean Boolean
+hi def link swiftString String
+hi def link swiftInterpolation Special
+hi def link swiftComment Comment
+hi def link swiftLineComment Comment
+hi def link swiftDecimal Number
+hi def link swiftHex Number
+hi def link swiftOct Number
+hi def link swiftBin Number
+hi def link swiftOperator Function
+hi def link swiftChar Character
+hi def link swiftLabel Label
+hi def link swiftNew Operator
+
+hi def link silStage Special
+hi def link silStages Type
+hi def link silConvention Special
+hi def link silConventionParameter Special
+hi def link silConventions Type
+hi def link silIdentifier Identifier
+hi def link silFunctionType Special
+hi def link silMetatypeType Special
+hi def link silAttribute PreProc
+
+let b:current_syntax = "sil"
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/syntax/sm.vim b/runtime/syntax/sm.vim
index 0ecc96875f..a16575c519 100644
--- a/runtime/syntax/sm.vim
+++ b/runtime/syntax/sm.vim
@@ -1,8 +1,8 @@
" Vim syntax file
" Language: sendmail
-" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
+" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
" Last Change: Oct 25, 2016
-" Version: 8
+" Version: 9
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SM
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/swift.vim b/runtime/syntax/swift.vim
new file mode 100755
index 0000000000..533d3fb7ac
--- /dev/null
+++ b/runtime/syntax/swift.vim
@@ -0,0 +1,277 @@
+" This source file is part of the Swift.org open source project
+"
+" Copyright (c) 2014 - 2020 Apple Inc. and the Swift project authors
+" Licensed under Apache License v2.0 with Runtime Library Exception
+"
+" See https://swift.org/LICENSE.txt for license information
+" See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
+"
+" Vim syntax file
+" Language: swift
+" Maintainer: Joe Groff <jgroff@apple.com>
+" Last Change: 2018 Jan 21
+"
+" Vim maintainer: Emir SARI <bitigchi@me.com>
+
+if exists("b:current_syntax")
+ finish
+endif
+
+let s:keepcpo = &cpo
+set cpo&vim
+
+syn keyword swiftKeyword
+ \ associatedtype
+ \ break
+ \ catch
+ \ continue
+ \ defer
+ \ do
+ \ else
+ \ fallthrough
+ \ for
+ \ guard
+ \ if
+ \ in
+ \ repeat
+ \ return
+ \ switch
+ \ throw
+ \ try
+ \ where
+ \ while
+syn match swiftMultiwordKeyword
+ \ "indirect case"
+
+syn keyword swiftImport skipwhite skipempty nextgroup=swiftImportModule
+ \ import
+
+syn keyword swiftDefinitionModifier
+ \ convenience
+ \ dynamic
+ \ fileprivate
+ \ final
+ \ internal
+ \ lazy
+ \ nonmutating
+ \ open
+ \ override
+ \ prefix
+ \ private
+ \ public
+ \ required
+ \ rethrows
+ \ static
+ \ throws
+ \ weak
+
+syn keyword swiftInOutKeyword skipwhite skipempty nextgroup=swiftTypeName
+ \ inout
+
+syn keyword swiftIdentifierKeyword
+ \ Self
+ \ metatype
+ \ self
+ \ super
+
+syn keyword swiftFuncKeywordGeneral skipwhite skipempty nextgroup=swiftTypeParameters
+ \ init
+
+syn keyword swiftFuncKeyword
+ \ deinit
+ \ subscript
+
+syn keyword swiftScope
+ \ autoreleasepool
+
+syn keyword swiftMutating skipwhite skipempty nextgroup=swiftFuncDefinition
+ \ mutating
+syn keyword swiftFuncDefinition skipwhite skipempty nextgroup=swiftTypeName,swiftOperator
+ \ func
+
+syn keyword swiftTypeDefinition skipwhite skipempty nextgroup=swiftTypeName
+ \ class
+ \ enum
+ \ extension
+ \ protocol
+ \ struct
+
+syn keyword swiftTypeAliasDefinition skipwhite skipempty nextgroup=swiftTypeAliasName
+ \ typealias
+
+syn match swiftMultiwordTypeDefinition skipwhite skipempty nextgroup=swiftTypeName
+ \ "indirect enum"
+
+syn keyword swiftVarDefinition skipwhite skipempty nextgroup=swiftVarName
+ \ let
+ \ var
+
+syn keyword swiftLabel
+ \ get
+ \ set
+ \ didSet
+ \ willSet
+
+syn keyword swiftBoolean
+ \ false
+ \ true
+
+syn keyword swiftNil
+ \ nil
+
+syn match swiftImportModule contained nextgroup=swiftImportComponent
+ \ /\<[A-Za-z_][A-Za-z_0-9]*\>/
+syn match swiftImportComponent contained nextgroup=swiftImportComponent
+ \ /\.\<[A-Za-z_][A-Za-z_0-9]*\>/
+
+syn match swiftTypeAliasName contained skipwhite skipempty nextgroup=swiftTypeAliasValue
+ \ /\<[A-Za-z_][A-Za-z_0-9]*\>/
+syn match swiftTypeName contained skipwhite skipempty nextgroup=swiftTypeParameters
+ \ /\<[A-Za-z_][A-Za-z_0-9\.]*\>/
+syn match swiftVarName contained skipwhite skipempty nextgroup=swiftTypeDeclaration
+ \ /\<[A-Za-z_][A-Za-z_0-9]*\>/
+syn match swiftImplicitVarName
+ \ /\$\<[A-Za-z_0-9]\+\>/
+
+" TypeName[Optionality]?
+syn match swiftType contained skipwhite skipempty nextgroup=swiftTypeParameters
+ \ /\<[A-Za-z_][A-Za-z_0-9\.]*\>[!?]\?/
+" [Type:Type] (dictionary) or [Type] (array)
+syn region swiftType contained contains=swiftTypePair,swiftType
+ \ matchgroup=Delimiter start=/\[/ end=/\]/
+syn match swiftTypePair contained skipwhite skipempty nextgroup=swiftTypeParameters,swiftTypeDeclaration
+ \ /\<[A-Za-z_][A-Za-z_0-9\.]*\>[!?]\?/
+" (Type[, Type]) (tuple)
+" FIXME: we should be able to use skip="," and drop swiftParamDelim
+syn region swiftType contained contains=swiftType,swiftParamDelim
+ \ matchgroup=Delimiter start="[^@]\?(" end=")" matchgroup=NONE skip=","
+syn match swiftParamDelim contained
+ \ /,/
+" <Generic Clause> (generics)
+syn region swiftTypeParameters contained contains=swiftVarName,swiftConstraint
+ \ matchgroup=Delimiter start="<" end=">" matchgroup=NONE skip=","
+syn keyword swiftConstraint contained
+ \ where
+
+syn match swiftTypeAliasValue skipwhite skipempty nextgroup=swiftType
+ \ /=/
+syn match swiftTypeDeclaration skipwhite skipempty nextgroup=swiftType,swiftInOutKeyword
+ \ /:/
+syn match swiftTypeDeclaration skipwhite skipempty nextgroup=swiftType
+ \ /->/
+
+syn match swiftKeyword
+ \ /\<case\>/
+syn region swiftCaseLabelRegion
+ \ matchgroup=swiftKeyword start=/\<case\>/ matchgroup=Delimiter end=/:/ oneline contains=TOP
+syn region swiftDefaultLabelRegion
+ \ matchgroup=swiftKeyword start=/\<default\>/ matchgroup=Delimiter end=/:/ oneline
+
+syn region swiftParenthesisRegion contains=TOP
+ \ matchgroup=NONE start=/(/ end=/)/
+
+syn region swiftString contains=swiftInterpolationRegion
+ \ start=/"/ skip=/\\\\\|\\"/ end=/"/
+syn region swiftInterpolationRegion contained contains=TOP
+ \ matchgroup=swiftInterpolation start=/\\(/ end=/)/
+syn region swiftComment contains=swiftComment,swiftLineComment,swiftTodo
+ \ start="/\*" end="\*/"
+syn region swiftLineComment contains=swiftComment,swiftTodo
+ \ start="//" end="$"
+
+syn match swiftDecimal
+ \ /[+\-]\?\<\([0-9][0-9_]*\)\([.][0-9_]*\)\?\([eE][+\-]\?[0-9][0-9_]*\)\?\>/
+syn match swiftHex
+ \ /[+\-]\?\<0x[0-9A-Fa-f][0-9A-Fa-f_]*\(\([.][0-9A-Fa-f_]*\)\?[pP][+\-]\?[0-9][0-9_]*\)\?\>/
+syn match swiftOct
+ \ /[+\-]\?\<0o[0-7][0-7_]*\>/
+syn match swiftBin
+ \ /[+\-]\?\<0b[01][01_]*\>/
+
+syn match swiftOperator skipwhite skipempty nextgroup=swiftTypeParameters
+ \ "\.\@<!\.\.\.\@!\|[/=\-+*%<>!&|^~]\@<!\(/[/*]\@![/=\-+*%<>!&|^~]*\|*/\@![/=\-+*%<>!&|^~]*\|->\@![/=\-+*%<>!&|^~]*\|[=+%<>!&|^~][/=\-+*%<>!&|^~]*\)"
+syn match swiftOperator skipwhite skipempty nextgroup=swiftTypeParameters
+ \ "\.\.[<.]"
+
+syn match swiftChar
+ \ /'\([^'\\]\|\\\(["'tnr0\\]\|x[0-9a-fA-F]\{2}\|u[0-9a-fA-F]\{4}\|U[0-9a-fA-F]\{8}\)\)'/
+
+syn match swiftTupleIndexNumber contains=swiftDecimal
+ \ /\.[0-9]\+/
+syn match swiftDecimal contained
+ \ /[0-9]\+/
+
+syn match swiftPreproc
+ \ /#\(\<file\>\|\<line\>\|\<function\>\)/
+syn match swiftPreproc
+ \ /^\s*#\(\<if\>\|\<else\>\|\<elseif\>\|\<endif\>\|\<error\>\|\<warning\>\)/
+syn region swiftPreprocFalse
+ \ start="^\s*#\<if\>\s\+\<false\>" end="^\s*#\(\<else\>\|\<elseif\>\|\<endif\>\)"
+
+syn match swiftAttribute
+ \ /@\<\w\+\>/ skipwhite skipempty nextgroup=swiftType,swiftTypeDefinition
+
+syn keyword swiftTodo MARK TODO FIXME contained
+
+syn match swiftCastOp skipwhite skipempty nextgroup=swiftType
+ \ "\<is\>"
+syn match swiftCastOp skipwhite skipempty nextgroup=swiftType
+ \ "\<as\>[!?]\?"
+
+syn match swiftNilOps
+ \ "??"
+
+syn region swiftReservedIdentifier oneline
+ \ start=/`/ end=/`/
+
+hi def link swiftImport Include
+hi def link swiftImportModule Title
+hi def link swiftImportComponent Identifier
+hi def link swiftKeyword Statement
+hi def link swiftMultiwordKeyword Statement
+hi def link swiftTypeDefinition Define
+hi def link swiftMultiwordTypeDefinition Define
+hi def link swiftType Type
+hi def link swiftTypePair Type
+hi def link swiftTypeAliasName Identifier
+hi def link swiftTypeName Function
+hi def link swiftConstraint Special
+hi def link swiftFuncDefinition Define
+hi def link swiftDefinitionModifier Operator
+hi def link swiftInOutKeyword Define
+hi def link swiftFuncKeyword Function
+hi def link swiftFuncKeywordGeneral Function
+hi def link swiftTypeAliasDefinition Define
+hi def link swiftVarDefinition Define
+hi def link swiftVarName Identifier
+hi def link swiftImplicitVarName Identifier
+hi def link swiftIdentifierKeyword Identifier
+hi def link swiftTypeAliasValue Delimiter
+hi def link swiftTypeDeclaration Delimiter
+hi def link swiftTypeParameters Delimiter
+hi def link swiftBoolean Boolean
+hi def link swiftString String
+hi def link swiftInterpolation Special
+hi def link swiftComment Comment
+hi def link swiftLineComment Comment
+hi def link swiftDecimal Number
+hi def link swiftHex Number
+hi def link swiftOct Number
+hi def link swiftBin Number
+hi def link swiftOperator Function
+hi def link swiftChar Character
+hi def link swiftLabel Operator
+hi def link swiftMutating Statement
+hi def link swiftPreproc PreCondit
+hi def link swiftPreprocFalse Comment
+hi def link swiftAttribute Type
+hi def link swiftTodo Todo
+hi def link swiftNil Constant
+hi def link swiftCastOp Operator
+hi def link swiftNilOps Operator
+hi def link swiftScope PreProc
+
+let b:current_syntax = "swift"
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/syntax/swiftgyb.vim b/runtime/syntax/swiftgyb.vim
new file mode 100755
index 0000000000..566b75b2ed
--- /dev/null
+++ b/runtime/syntax/swiftgyb.vim
@@ -0,0 +1,24 @@
+" This source file is part of the Swift.org open source project
+"
+" Copyright (c) 2014 - 2020 Apple Inc. and the Swift project authors
+" Licensed under Apache License v2.0 with Runtime Library Exception
+"
+" See https://swift.org/LICENSE.txt for license information
+" See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
+"
+" Vim syntax file
+" Language: gyb on swift
+"
+" Vim maintainer: Emir SARI <bitigchi@me.com>
+
+runtime! syntax/swift.vim
+unlet b:current_syntax
+
+syn include @Python syntax/python.vim
+syn region pythonCode matchgroup=gybPythonCode start=+^ *%+ end=+$+ contains=@Python keepend
+syn region pythonCode matchgroup=gybPythonCode start=+%{+ end=+}%+ contains=@Python keepend
+syn match gybPythonCode /\${[^}]*}/
+hi def link gybPythonCode CursorLineNr
+
+let b:current_syntax = "swiftgyb"
+
diff --git a/runtime/syntax/tags.vim b/runtime/syntax/tags.vim
index f34696d4b0..4c06dc1df8 100644
--- a/runtime/syntax/tags.vim
+++ b/