fix and improvements
This commit is contained in:
+30
-24
@@ -36,7 +36,7 @@ syn keyword tslException except raise try finally exceptobject
|
||||
syn keyword tslBoolean false true
|
||||
syn keyword tslNil nil
|
||||
|
||||
syn keyword tslType string integer boolean int64 real
|
||||
syn keyword tslType string integer boolean int64 real array
|
||||
syn keyword tslBuiltins echo mtic mtoc this
|
||||
syn keyword tslBuiltins inf nan
|
||||
syn keyword tslBuiltins external const out var
|
||||
@@ -54,33 +54,36 @@ syn keyword tslAccess public protected private published
|
||||
syn keyword tslTodo FIXME NOTE NOTES TODO XXX contained
|
||||
|
||||
# Function definitions
|
||||
syn match tslFuncName '\%(\h\w*\.\)\?\h\w*' contained nextgroup=tslFuncParams skipwhite contains=tslTypeNameInFunc,tslDotInFunc,tslFuncNamePart
|
||||
syn match tslFuncName '\%(\h\w*\.\)\?\h\w*' contained nextgroup=tslFuncParams skipwhite contains=tslTypeNameInFunc,tslDotInFunc,tslFuncNamePart
|
||||
syn match tslTypeNameInFunc '\h\w*\ze\.\h\w*' contained
|
||||
syn match tslDotInFunc '\.' contained
|
||||
syn match tslFuncName '\.\@<=\h\w*' contained
|
||||
syn match tslDotInFunc '\.' contained
|
||||
syn match tslFuncName '\.\@<=\h\w*' contained
|
||||
|
||||
syn region tslFuncParams
|
||||
\ start='('
|
||||
\ end=')'
|
||||
\ contained
|
||||
\ contains=tslParam,tslParamType,tslParamSep
|
||||
\ contains=tslParam,tslParamType,tslParamSep,tslNumber,tslString,tslPropertyChain
|
||||
\ nextgroup=tslReturnType skipwhite
|
||||
|
||||
syn match tslParam '\h\w*' contained nextgroup=tslParamType skipnl skipwhite
|
||||
syn match tslParamType ':\s*\h\w*' contained contains=tslColon,tslTypeName
|
||||
syn match tslReturnType ':\s*\h\w*' contained contains=tslColon,tslTypeName
|
||||
syn match tslTypeName '\h\w*' contained
|
||||
syn match tslParamSep '[;,]' contained
|
||||
syn match tslColon ':' contained
|
||||
syn match tslParam '\h\w*' contained nextgroup=tslParamType skipnl skipwhite
|
||||
syn match tslParamType ':\s*[^;,)=]*' contained contains=tslColon
|
||||
syn match tslReturnType ':\s*[^;]*' contained contains=tslColon
|
||||
syn match tslParamSep '[;,]' contained
|
||||
syn match tslColon ':' contained
|
||||
|
||||
syn match tslVarDecl '^\s*\h\w*\s*:=\@!\s*[^;?]*;' contains=tslVarName,tslVarType
|
||||
syn match tslVarName '^\s*\h\w*\ze\s*:=\@!' contained
|
||||
syn match tslVarType ':=\@!\s*[^;?]*' contained contains=tslColon
|
||||
|
||||
# 匹配完整的属性链
|
||||
syn match tslPropertyChain '\h\w*\%(\.\h\w*\)\+' contains=tslObjectName,tslPropertyDot,tslPropertyName
|
||||
syn match tslObjectName '\h\w*\ze\.\h\w*' contained
|
||||
syn match tslPropertyDot '\.' contained
|
||||
syn match tslPropertyName '\.\@<=\h\w*\%(\ze\.\|\ze\s*[^(]\|\ze\s*$\)' contained
|
||||
syn match tslPropertyChain '\h\w*\%(\.\h\w*\)\+' contains=tslObjectName,tslPropertyDot,tslPropertyName
|
||||
syn match tslObjectName '\h\w*\ze\.\h\w*' contained
|
||||
syn match tslPropertyDot '\.' contained
|
||||
syn match tslPropertyName '\.\@<=\h\w*\%(\ze\.\|\ze\s*[^(]\|\ze\s*$\)' contained
|
||||
|
||||
# Function calls
|
||||
syn match tslFuncCallName '\%(\<\%(function\|procedure\)\s\+\%(\h\w*\.\)\?\)\@<!\h\w*\ze\s*('
|
||||
syn match tslFuncCallName '\%(\<\%(function\|procedure\)\s\+\%(\h\w*\.\)\?\)\@<!\h\w*\ze\s*('
|
||||
\ containedin=ALLBUT,tslFuncParams,tslPropertyChain,tslFunction,tslFuncName,tslFuncNamePart
|
||||
|
||||
syn region tslFuncCall
|
||||
@@ -95,21 +98,21 @@ syn region tslCallParams
|
||||
\ contained
|
||||
\ contains=tslCallParam,tslCallValue,tslCallSep,tslString,tslNumber,tslIdentifier,tslOperator,tslFuncCall
|
||||
|
||||
syn match tslCallParam '\h\w*\ze\s*:' contained
|
||||
syn match tslCallValue ':\s*\zs[^;)]*' contained
|
||||
syn match tslCallParam '\h\w*\ze\s*:' contained
|
||||
syn match tslCallValue ':\s*\zs[^;)]*' contained
|
||||
syn match tslCallValue
|
||||
\ ':\s*\zs\\%([^;,)]\+\|.\{-}\%([;,)]\|$\))'
|
||||
\ contained
|
||||
\ contains=tslString,tslNumber,tslIdentifier,tslOperator,tslFunctionCall
|
||||
syn match tslCallSep '[;,]' contained
|
||||
syn match tslCallSep '[;,]' contained
|
||||
|
||||
# Operators and delimiters
|
||||
syn match tslOperator '[+\-*/<>=!&|^~%]'
|
||||
syn match tslOperator ':='
|
||||
syn match tslDelimiter '[()[\]{},;:.@?]'
|
||||
syn match tslOperator '[+\-*/<>=!&|^~%]'
|
||||
syn match tslOperator ':='
|
||||
syn match tslDelimiter '[()[\]{},;:.@?]'
|
||||
|
||||
# Comments
|
||||
syn match tslComment '//.*$' contains=tslTodo,@Spell
|
||||
syn match tslComment '//.*$' contains=tslTodo,@Spell
|
||||
syn region tslComment start='(\*' end='\*)' contains=tslTodo,@Spell keepend
|
||||
syn region tslComment start='{' end='}' contains=tslTodo,@Spell keepend
|
||||
|
||||
@@ -138,10 +141,12 @@ hi def link tslTypeNameInFunc Type
|
||||
hi def link tslParam Identifier
|
||||
hi def link tslParamType Type
|
||||
hi def link tslReturnType Type
|
||||
hi def link tslTypeName Type
|
||||
hi def link tslParamSep Delimiter
|
||||
hi def link tslColon Delimiter
|
||||
|
||||
hi def link tslVarName Identifier
|
||||
hi def link tslVarType Type
|
||||
|
||||
hi def link tslFuncCallName Function
|
||||
hi def link tslCallParam Identifier
|
||||
hi def link tslCallValue Type
|
||||
@@ -178,6 +183,7 @@ hi def link tslString String
|
||||
hi def link tslRawString String
|
||||
hi def link tslQuotes String
|
||||
hi def link tslNumber Number
|
||||
hi def link tslType Type
|
||||
|
||||
b:current_syntax = "tsl"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user