diff --git a/syntax/basic/identifiers.vim b/syntax/basic/identifiers.vim index f85b2d15..970c6be8 100644 --- a/syntax/basic/identifiers.vim +++ b/syntax/basic/identifiers.vim @@ -10,15 +10,17 @@ syntax cluster afterIdentifier contains= \ @typescriptSymbols, \ typescriptTypeArguments +syntax match typescriptFunctionCall /\K\k*\%(\s*(\)\@=/ + syntax match typescriptIdentifierName /\<\K\k*/ \ nextgroup=@afterIdentifier \ transparent - \ contains=@_semantic + \ contains=@_semantic,typescriptFunctionCall \ skipnl skipwhite syntax match typescriptProp contained /\K\k*!\?/ \ transparent - \ contains=@props + \ contains=@props,typescriptFunctionCall \ nextgroup=@afterIdentifier \ skipwhite skipempty diff --git a/syntax/basic/members.vim b/syntax/basic/members.vim index 46b8350b..f81bb18b 100644 --- a/syntax/basic/members.vim +++ b/syntax/basic/members.vim @@ -13,6 +13,10 @@ syntax match typescriptMember /#\?\K\k*/ \ nextgroup=@memberNextGroup \ contained skipwhite +syntax match typescriptFunctionMember /\K\k*\%(\s*(\)\@=/ + \ nextgroup=@memberNextGroup + \ contained skipwhite + syntax match typescriptMethodAccessor contained /\v(get|set)\s\K/me=e-1 \ nextgroup=@typescriptMembers @@ -28,7 +32,12 @@ syntax match typescriptMemberOptionality /?\|!/ contained \ nextgroup=typescriptTypeAnnotation,@typescriptCallSignature \ skipwhite skipempty -syntax cluster typescriptMembers contains=typescriptMember,typescriptStringMember,typescriptComputedMember +syntax cluster typescriptMembers contains= + \ typescriptMember, + \ typescriptStringMember, + \ typescriptComputedMember, + \ typescriptNewFunctionMember, + \ typescriptFunctionMember syntax keyword typescriptClassStatic static \ nextgroup=@typescriptMembers,typescriptAsyncFuncKeyword,typescriptReadonlyModifier @@ -45,6 +54,6 @@ syntax region typescriptStringMember contained syntax region typescriptComputedMember contained matchgroup=typescriptProperty \ start=/\[/rs=s+1 end=/]/ - \ contains=@typescriptValue,typescriptMember,typescriptMappedIn,typescriptCastKeyword + \ contains=@typescriptValue,typescriptMember,typescriptMappedIn,typescriptCastKeyword,typescriptNewFunctionMember,typescriptFunctionMember \ nextgroup=@memberNextGroup \ skipwhite skipempty diff --git a/syntax/common.vim b/syntax/common.vim index 62f7a374..2e06c1ca 100644 --- a/syntax/common.vim +++ b/syntax/common.vim @@ -51,6 +51,7 @@ runtime syntax/basic/decorator.vim if exists("did_typescript_hilink") HiLink typescriptReserved Error + HiLink typescriptFunctionCall Function HiLink typescriptEndColons Exception HiLink typescriptSymbols Normal HiLink typescriptBraces Function @@ -118,7 +119,8 @@ if exists("did_typescript_hilink") HiLink typescriptTry Special HiLink typescriptExceptions Special - HiLink typescriptMember Function + HiLink typescriptMember Function + HiLink typescriptFunctionMember Function HiLink typescriptMethodAccessor Operator HiLink typescriptAsyncFuncKeyword Keyword