" Vim syntax file " Language: Refal " Maintainer: Andrey Slepuhin " Last Change: $Date$ by Anton Orlov " For version 5.x: Clear all syntax items " For version 6.x: Quit when a syntax file was already loaded if version < 600 syntax clear elseif exists("b:current_syntax") finish endif if version >= 600 setlocal iskeyword=a-z,A-Z,48-57,-,_,.,?,! else set iskeyword=a-z,A-Z,48-57,-,_,.,?,! endif syn match Directive "\$\(module\|use\|import\|t\=func?\=\|const\)" syn match Directive "\$\(box\|table\|vector\|string\|channel\)" syn match Directive "\$\(traceall\|trace\|extern\|public\|native\)" syn match Operator "\$\(r\|l\|iter\)" syn match Operator "\$\(fail\|error\|trap\|with\)" syn match String "[A-Z?!_][A-Za-z0-9_\-?!.]*" syn region String start="\"" end="\"" skip="\\." syn region String start="\'" end="\'" skip="\\." syn match Variable "[estv]\.\=[A-Za-z0-9_\-?!]*" contains=VarType syn match VarType "[estv]" contained nextgroup=VarName syn match VarName "[A-Za-z0-9_\-?]*" contained syn match VarName "\.[A-Za-z0-9_\-?]*"hs=s+1 contained syn match ParenError ")" syn match FunError ">" syn match BlockError "}" syn match CommentError "*/" if exists("refal_space_errors") syn match SpaceError "\s*$" endif syn match Comment "//.*" contains=SpaceError syn match Comment "\*.*" contains=SpaceError syn region Comment start="/\*" end="\*/" syn region ObjExpression start="(" end=")" contains=@ObjExpression2 syn region FunExpression matchgroup=Funcall start="<[A-Z?!][A-Za-z0-9_\-?!.]*"hs=s+1 matchgroup=FunExpression end=">" contains=@FunExpression2 syn region FunExpression matchgroup=Funcall start="<\"[A-Za-z0-9_\-?\+\*\/\\\ \.\,\:\!<>=]*\""hs=s+1 matchgroup=FunExpression end=">" contains=@FunExpression2 syn region Block start="{" end="}" contains=@Block2 syn cluster ObjExpression2 contains=String,Variable,ObjExpression,FunExpression,FunError,SpaceError,Operator,Comment syn cluster FunExpression2 contains=String,Variable,ObjExpression,FunExpression,ParenError,SpaceError,Operator,Comment syn cluster Block2 contains=String,Variable,ObjExpression,FunExpression,Block,ParenError,FunError,SpaceError,Operator,Comment syntax sync ccomment syntax sync lines=200 " Define the default highlighting. " For version 5.7 and earlier: only when not done already " For version 5.8 and later: only when an item doesn't have highlighting yet if version >= 508 || !exists("did_refal_syntax_inits") if version < 508 let did_refal_syntax_inits = 1 command -nargs=+ HiLink hi link else command -nargs=+ HiLink hi def link endif HiLink Directive Include hi link String Identifier " HiLink Variable Type " HiLink VarType Type HiLink VarType Operator HiLink VarName Type HiLink ParenError Error HiLink FunError Error HiLink BlockError Error HiLink SpaceError Error HiLink FunCall Statement " HiLink ObjExpression Error delcommand HiLink endif let b:current_syntax = "refal"