Skip to content

Commit cbd6573

Browse files
committed
Merge pull request #2764 from compnerd/vim-syntax-improvements
Vim syntax improvements
2 parents a2c0448 + 314699e commit cbd6573

File tree

1 file changed

+36
-13
lines changed

1 file changed

+36
-13
lines changed

utils/vim/syntax/swift.vim

Lines changed: 36 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -42,36 +42,56 @@ syn keyword swiftKeyword
4242
\ return
4343
\ static
4444
\ switch
45+
\ throw
4546
\ try
4647
\ typealias
4748
\ var
4849
\ where
4950
\ while
5051

52+
syn keyword swiftDefinitionModifier
53+
\ dynamic
54+
\ internal
55+
\ private
56+
\ public
57+
\ static
58+
\ throws
59+
60+
syn keyword swiftIdentifierKeyword
61+
\ Self
62+
\ dynamicType
63+
\ metatype
64+
\ self
65+
\ super
66+
67+
syn keyword swiftFuncKeyword nextgroup=swiftTypeParameters
68+
\ deinit
69+
\ init
70+
\ subscript
71+
72+
syn keyword swiftScope
73+
\ autoreleasepool
74+
5175
syn keyword swiftTypeDefinition class extension protocol struct typealias enum skipwhite nextgroup=swiftTypeName
52-
syn region swiftTypeAttributes start="\[" end="\]" contained skipwhite nextgroup=swiftTypeName
53-
syn match swiftTypeName /\<[A-Za-z_][A-Za-z_0-9\.]*\>/ contained nextgroup=swiftTypeParameters
76+
77+
syn match swiftTypeName /\<[A-Za-z_][A-Za-z_0-9\.]*\>[!?]\?/ contained nextgroup=swiftTypeParameters
78+
syn region swiftArrayType start=/\[/ end=/\]/ contained skipwhite nextgroup=swiftTypeName
5479

5580
syn region swiftTypeParameters start="<" end=">" contained
5681

5782
syn keyword swiftMutating mutating skipwhite nextgroup=swiftFuncDefinition
58-
syn keyword swiftFuncDefinition func skipwhite nextgroup=swiftFuncAttributes,swiftFuncName,swiftOperator
59-
syn region swiftFuncAttributes start="\[" end="\]" contained skipwhite nextgroup=swiftFuncName,swiftOperator
83+
syn keyword swiftFuncDefinition func skipwhite nextgroup=swiftFuncName,swiftOperator
6084
syn match swiftFuncName /\<[A-Za-z_][A-Za-z_0-9]*\>/ contained skipwhite nextgroup=swiftTypeParameters
61-
syn keyword swiftFuncKeyword subscript init destructor nextgroup=swiftTypeParameters
6285

6386
syn keyword swiftVarDefinition var skipwhite nextgroup=swiftVarName
6487
syn keyword swiftVarDefinition let skipwhite nextgroup=swiftVarName
6588
syn match swiftVarName /\<[A-Za-z_][A-Za-z_0-9]*\>/ contained
6689

67-
syn keyword swiftDefinitionModifier static public internal private
68-
6990
syn match swiftImplicitVarName /\$\<[A-Za-z_0-9]\+\>/
7091

71-
syn match swiftTypeDeclaration /:/ skipwhite nextgroup=swiftTypeAttributes,swiftTypeName
72-
syn match swiftTypeDeclaration /->/ skipwhite nextgroup=swiftTypeAttributes,swiftTypeName
92+
syn match swiftTypeDeclaration /:/ skipwhite nextgroup=swiftTypeName
93+
syn match swiftTypeDeclaration /->/ skipwhite nextgroup=swiftTypeName
7394

74-
syn keyword swiftIdentifierKeyword metatype super self Self
7595

7696
syn keyword swiftNew new skipwhite nextgroup=swiftTypeName
7797

@@ -101,7 +121,9 @@ syn match swiftAttribute /@\<\w\+\>/
101121

102122
syn keyword swiftTodo TODO FIXME contained
103123
syn keyword swiftNil nil
104-
syn match swiftNilOps "\<as?\?\>"
124+
125+
syn match swiftCastOp "\<as\>[!?]\?" skipwhite nextgroup=swiftTypeName,swiftArrayType
126+
105127
syn match swiftNilOps "??"
106128

107129
hi def link swiftImport Include
@@ -110,12 +132,11 @@ hi def link swiftImportComponent Identifier
110132
hi def link swiftKeyword Statement
111133
hi def link swiftTypeDefinition Define
112134
hi def link swiftTypeName Type
135+
hi def link swiftArrayType Type
113136
hi def link swiftTypeParameters Special
114-
hi def link swiftTypeAttributes PreProc
115137
hi def link swiftFuncDefinition Define
116138
hi def link swiftDefinitionModifier Define
117139
hi def link swiftFuncName Function
118-
hi def link swiftFuncAttributes PreProc
119140
hi def link swiftFuncKeyword Function
120141
hi def link swiftVarDefinition Define
121142
hi def link swiftVarName Identifier
@@ -141,6 +162,8 @@ hi def link swiftPreprocFalse Comment
141162
hi def link swiftAttribute Type
142163
hi def link swiftTodo Todo
143164
hi def link swiftNil Constant
165+
hi def link swiftCastOp Operator
144166
hi def link swiftNilOps Operator
167+
hi def link swiftScope PreProc
145168

146169
let b:current_syntax = "swift"

0 commit comments

Comments
 (0)