diff --git a/ivy.vim/syntax/ivy.vim b/ivy.vim/syntax/ivy.vim index 2a7a9c6..36419ea 100755 --- a/ivy.vim/syntax/ivy.vim +++ b/ivy.vim/syntax/ivy.vim @@ -4,9 +4,30 @@ endif let s:save_cpo = &cpoptions set cpoptions&vim -"setlocal iskeyword+=: +setlocal iskeyword+=- -syn match ivyType /\<[A-Z]\{1,2\}\([a-z0-9]\+[A-Z]\{0,2\}\)*\>/ +syn match ivyType /\<[A-Z]\{1,2}[a-z0-9]\+\(-\?[A-Z]\{1,2}[a-z0-9]\+\)*\>/ + +syn match ivySelectorLabel /\<[a-z][A-Za-z0-9-_]*\:/ +"syn match ivySelectorLabel /\<\([a-z]\([A-Za-z0-9_]\+\)\:\(\:\)\@!\)\+/ +syn match ivyUnnamedVariable /\<_\>/ + +syn match ivyAtomName /\$[a-z][a-z0-9_:/-]*\>/ +syn match ivyWord /\<[a-z_][a-zA-Z0-9_]*\(-\?[a-zA-Z][a-zA-Z0-9_]*\)*\>\(\:\)\@!/ + +syn match ivyComplexMessageName /\<\zs[A-Za-z][A-Za-z0-9-_]\+\ze(/ +"syn match ivyUnaryMessageName /-\s*[a-zA-z][a-zA-Z0-9_]\+\s*\n/ +syn match ivyUnaryMessageName /\(-\s*\)\@<=[a-z][A-Za-z0-9-_]*\(\s*\n\)\@=/ +syn match ivyUnaryMessageName /\(-\s*\)\@<=[a-z][A-Za-z0-9-_]*\(\s*|\)\@=/ +syn match ivyUnaryMessageName /\(+\s*\)\@<=[a-z][A-Za-z0-9-_]*\(\s*\n\)\@=/ +syn match ivyUnaryMessageName /\(+\s*\)\@<=[a-z][A-Za-z0-9-_]*\(\s*|\)\@=/ +syn match ivyPropertyName /\(->\s*\)\@<=[a-z][A-Za-z0-9-_]*/ + +syn match ivyLineContinuation /\\\n/ + +" Modifiers + +syn match ivySelfVar /\\(\:\)\@!/ syn match ivyBuiltinVar /\(error\|cout\|cin\|cerr\)\>\(\:\)\@!/ syn match ivyUnspecifiedStatement /\(var\|end\|package\|use\|as\|then\|in\|do\|get\|set\)\>\(\:\)\@!/ -syn match ivySelectorLabel /\<[a-z][A-Za-z0-9_]*\:/ -"syn match ivySelectorLabel /\<\([a-z]\([A-Za-z0-9_]\+\)\:\(\:\)\@!\)\+/ -syn match ivyUnnamedVariable /\<_\>/ - -syn match ivyAtomName /\$[a-z][a-z0-9_:/]*\>/ - -syn match ivyComplexMessageName /\<\zs[A-Za-z][A-Za-z0-9]\+\ze(/ -"syn match ivyUnaryMessageName /-\s*[a-zA-z][a-zA-Z0-9_]\+\s*\n/ -syn match ivyUnaryMessageName /\(-\s*\)\@<=[a-z][A-Za-z0-9_]*\(\s*\n\)\@=/ -syn match ivyUnaryMessageName /\(-\s*\)\@<=[a-z][A-Za-z0-9_]*\(\s*|\)\@=/ -syn match ivyUnaryMessageName /\(+\s*\)\@<=[a-z][A-Za-z0-9_]*\(\s*\n\)\@=/ -syn match ivyUnaryMessageName /\(+\s*\)\@<=[a-z][A-Za-z0-9_]*\(\s*|\)\@=/ -syn match ivyPropertyName /\(->\s*\)\@<=[a-z][A-Za-z0-9_]*/ - -syn match ivyLineContinuation /\\\n/ - -" Modifiers - -syn match ivySelfVar /\/ syn match ivyUseStmtIdentifier /\(use \)\@<=\([A-Za-z_][A-Za-z0-9_]*\)\(.\([A-Za-z_][A-Za-z0-9_]*\)\)*\(\n\)\@=\>/ @@ -94,6 +94,7 @@ syn match ivyCharacter "'[^\\]'" display syn case ignore syn match ivyInteger "\<0b[01_]*[01]\%([lu]\|lu\|ul\)\=\>" display syn match ivyInteger "\<\d\+\%(_\+\d\+\)*\%([lu]\|lu\|ul\)\=\>" display +syn match ivyInteger "\<-\d\+\%(_\+\d\+\)*\%([lu]\|lu\|ul\)\=\>" display syn match ivyInteger "\<0x[[:xdigit:]_]*\x\%([lu]\|lu\|ul\)\=\>" display syn match ivyReal "\<\d\+\%(_\+\d\+\)*\.\d\+\%(_\+\d\+\)*\%\(e[-+]\=\d\+\%(_\+\d\+\)*\)\=[fdm]\=" display syn match ivyReal "\.\d\+\%(_\+\d\+\)*\%(e[-+]\=\d\+\%(_\+\d\+\)*\)\=[fdm]\=\>" display @@ -197,6 +198,7 @@ hi def link ivyCharacter Character hi def link ivySpecialChar SpecialChar hi def link ivyInteger Number hi def link ivyReal Float +hi def link ivyWord Identifier hi def link ivyUnicodeNumber SpecialChar hi def link ivyUnicodeSpecifier SpecialChar hi def link ivyInterpolationDelimiter Delimiter