From ed677c34d55a0e025b7008f29419498a3989cde2 Mon Sep 17 00:00:00 2001 From: Adam Stankiewicz Date: Mon, 4 Mar 2019 09:15:44 +0100 Subject: Update --- syntax/crystal.vim | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) (limited to 'syntax/crystal.vim') diff --git a/syntax/crystal.vim b/syntax/crystal.vim index 637e207e..d972d3c3 100644 --- a/syntax/crystal.vim +++ b/syntax/crystal.vim @@ -83,6 +83,12 @@ syn match crystalFloat "\%(\%(\w\|[]})\"']\s*\)\@\|::\)\@=" contained +syn match crystalClassName "\%(\%([.@$]\@\|::\)\@=" contained +syn match crystalModuleName "\%(\%([.@$]\@\|::\)\@=" contained +syn match crystalStructName "\%(\%([.@$]\@\|::\)\@=" contained +syn match crystalLibName "\%(\%([.@$]\@\|::\)\@=" contained +syn match crystalEnumName "\%(\%([.@$]\@\|::\)\@=" contained syn match crystalConstant "\%(\%([.@$]\@\|::\)\@=" syn match crystalClassVariable "@@\%(\h\|%\|[^\x00-\x7F]\)\%(\w\|%\|[^\x00-\x7F]\)*" display syn match crystalInstanceVariable "@\%(\h\|%\|[^\x00-\x7F]\)\%(\w\|%\|[^\x00-\x7F]\)*" display @@ -176,15 +182,15 @@ end syn match crystalAliasDeclaration "[^[:space:];#.()]\+" contained contains=crystalSymbol,crystalGlobalVariable,crystalPredefinedVariable nextgroup=crystalAliasDeclaration2 skipwhite syn match crystalAliasDeclaration2 "[^[:space:];#.()]\+" contained contains=crystalSymbol,crystalGlobalVariable,crystalPredefinedVariable -syn match crystalMethodDeclaration "[^[:space:];#(]\+" contained contains=crystalConstant,crystalBoolean,crystalPseudoVariable,crystalInstanceVariable,crystalClassVariable,crystalGlobalVariable -syn match crystalFunctionDeclaration "[^[:space:];#(=]\+" contained contains=crystalConstant -syn match crystalTypeDeclaration "[^[:space:];#=]\+" contained contains=crystalConstant -syn match crystalClassDeclaration "[^[:space:];#<]\+" contained contains=crystalConstant,crystalOperator -syn match crystalModuleDeclaration "[^[:space:];#<]\+" contained contains=crystalConstant,crystalOperator -syn match crystalStructDeclaration "[^[:space:];#<]\+" contained contains=crystalConstant,crystalOperator -syn match crystalLibDeclaration "[^[:space:];#<]\+" contained contains=crystalConstant,crystalOperator -syn match crystalMacroDeclaration "[^[:space:];#<\"]\+" contained contains=crystalConstant,crystalOperator -syn match crystalEnumDeclaration "[^[:space:];#<\"]\+" contained contains=crystalConstant +syn match crystalMethodDeclaration "[^[:space:];#(]\+" contained contains=crystalConstant,crystalFunction,crystalBoolean,crystalPseudoVariable,crystalInstanceVariable,crystalClassVariable,crystalGlobalVariable +syn match crystalFunctionDeclaration "[^[:space:];#(=]\+" contained contains=crystalFunction +syn match crystalTypeDeclaration "[^[:space:];#=]\+" contained contains=crystalTypeName +syn match crystalClassDeclaration "[^[:space:];#<]\+" contained contains=crystalClassName,crystalOperator +syn match crystalModuleDeclaration "[^[:space:];#]\+" contained contains=crystalModuleName,crystalOperator +syn match crystalStructDeclaration "[^[:space:];#<]\+" contained contains=crystalStructName,crystalOperator +syn match crystalLibDeclaration "[^[:space:];#]\+" contained contains=crystalLibName,crystalOperator +syn match crystalMacroDeclaration "[^[:space:];#(]\+" contained contains=crystalFunction +syn match crystalEnumDeclaration "[^[:space:];#<\"]\+" contained contains=crystalEnumName syn match crystalFunction "\<[_[:alpha:]][_[:alnum:]]*[?!=]\=[[:alnum:]_.:?!=]\@!" contained containedin=crystalMethodDeclaration,crystalFunctionDeclaration syn match crystalFunction "\%(\s\|^\)\@<=[_[:alpha:]][_[:alnum:]]*[?!=]\=\%(\s\|$\)\@=" contained containedin=crystalAliasDeclaration,crystalAliasDeclaration2 syn match crystalFunction "\%([[:space:].]\|^\)\@<=\%(\[\][=?]\=\|\*\*\|[+-]@\=\|[*/%|&^~]\|<<\|>>\|[<>]=\=\|<=>\|===\|[=!]=\|[=!]\~\|!\|`\)\%([[:space:];#(]\|$\)\@=" contained containedin=crystalAliasDeclaration,crystalAliasDeclaration2,crystalMethodDeclaration,crystalFunctionDeclaration @@ -345,6 +351,12 @@ else endif hi def link crystalClassVariable crystalIdentifier hi def link crystalConstant Type +hi def link crystalTypeName crystalConstant +hi def link crystalClassName crystalConstant +hi def link crystalModuleName crystalConstant +hi def link crystalStructName crystalConstant +hi def link crystalLibName crystalConstant +hi def link crystalEnumName crystalConstant hi def link crystalGlobalVariable crystalIdentifier hi def link crystalBlockParameter crystalIdentifier hi def link crystalInstanceVariable crystalIdentifier -- cgit v1.2.3