diff --git a/ivy.vim/syntax/ivy.vim b/ivy.vim/syntax/ivy.vim index 7d3e437..66be448 100755 --- a/ivy.vim/syntax/ivy.vim +++ b/ivy.vim/syntax/ivy.vim @@ -4,6 +4,7 @@ endif let s:save_cpo = &cpoptions set cpoptions&vim +setlocal iskeyword+=: syn keyword ivyType Object Int Enum Bool Iterator Lambda Selector Package String Exception Tuple syn match ivyType /\<[A-Z]\{1,2\}\([a-z0-9]\+[A-Z]\{0,2\}\)*\>/ @@ -14,11 +15,12 @@ syn keyword ivyConditional if elif else unless match syn match ivySelectorLabel /\<[a-z]\([A-Za-z0-9_]\+\)\:/ syn match ivyUnnamedVariable /\<_\>/ -syn match ivyAtomName /#[a-z][a-z0-9_:]*\>/ +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 ivyPropertyName /\($\s*\)\@<=[a-z][A-Za-z0-9_]*/ syn match ivyLineContinuation /\\\n/ @@ -30,6 +32,9 @@ syn keyword ivyBuiltinVar self error cout cin cerr syn keyword ivyUnspecifiedStatement end package use as then do get set +syn match ivyPackageStmtIdentifier /\(package \)\@<=\([A-Za-z_][A-Za-z0-9_]*\)\(.\([A-Za-z_][A-Za-z0-9_]*\)\)*\(\n\)\@=\>/ +syn match ivyUseStmtIdentifier /\(use \)\@<=\([A-Za-z_][A-Za-z0-9_]*\)\(.\([A-Za-z_][A-Za-z0-9_]*\)\)*\(\n\)\@=\>/ + " Operators/Punctuation syn match ivyBraces "[{}]" display syn match ivyBrackets "[[\]]" display @@ -45,6 +50,9 @@ syn match ivyLambdaSymbols "|" display syn match ivyLogicSymbols "&&" display syn match ivyLogicSymbols "||" display syn match ivyPropertySymbol "\$" display +syn match ivyStatementSeparator "\.\s*" display +syn match ivyMessageTerminator "\!\s*" display +syn keyword ivyWordOperator is not understands and or " PROVIDES: @ivyCommentHook syn keyword ivyTodo contained TODO FIXME XXX NOTE HACK TBD @@ -162,6 +170,7 @@ hi def link ivyTypeOfError Error hi def link ivyOpSymbols Operator hi def link ivyOtherSymbols Structure hi def link ivyLogicSymbols Operator +hi def link ivyWordOperator Operator hi def link ivySpecialError Error hi def link ivySpecialCharError Error @@ -195,6 +204,13 @@ hi def link ivyUnaryMessageName Function hi def link ivyPropertyName @property hi def link ivyPropertySymbol Statement +hi def link ivyStatementSeparator Comment +hi def link ivyMessageTerminator @punctuation.special + +hi def link ivyPackageStmtIdentifier @string.special.url +hi def link ivyUseStmtIdentifier @module + + let b:current_syntax = 'ivy' let &cpoptions = s:save_cpo