Adding upstream version 2:9.1.1230.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
This commit is contained in:
parent
95f88d82e6
commit
0985b09abd
6270 changed files with 2000183 additions and 0 deletions
286
runtime/syntax/swift.vim
Normal file
286
runtime/syntax/swift.vim
Normal file
|
@ -0,0 +1,286 @@
|
|||
" 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
|
||||
\ break
|
||||
\ case
|
||||
\ catch
|
||||
\ continue
|
||||
\ default
|
||||
\ defer
|
||||
\ do
|
||||
\ else
|
||||
\ fallthrough
|
||||
\ for
|
||||
\ guard
|
||||
\ if
|
||||
\ in
|
||||
\ repeat
|
||||
\ return
|
||||
\ switch
|
||||
\ throw
|
||||
\ try
|
||||
\ where
|
||||
\ while
|
||||
syn match swiftMultiwordKeyword
|
||||
\ "indirect case"
|
||||
|
||||
syn keyword swiftCoreTypes
|
||||
\ Any
|
||||
\ AnyObject
|
||||
|
||||
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
|
||||
\ operator
|
||||
\ precedencegroup
|
||||
\ protocol
|
||||
\ struct
|
||||
|
||||
syn keyword swiftTypeAliasDefinition skipwhite skipempty nextgroup=swiftTypeAliasName
|
||||
\ associatedtype
|
||||
\ 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
|
||||
\ /#\(\<column\>\|\<dsohandle\>\|\<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,swiftCoreTypes
|
||||
\ "\<is\>"
|
||||
syn match swiftCastOp skipwhite skipempty nextgroup=swiftType,swiftCoreTypes
|
||||
\ "\<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 swiftCoreTypes Type
|
||||
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
|
Loading…
Add table
Add a link
Reference in a new issue