" Maude syntax file. if exists('b:current_syntax') finish endif let b:current_syntax = 'maude' " also most other things... setlocal iskeyword+=- setlocal commentstring=***%s comments=b:***,b:--- syn keyword maudeModule mod endm fmod endfm th endth fth endfth is hi def link maudeModule Structure syn keyword maudeView view from to endv hi def link maudeView maudeModule syn keyword maudeImport protecting pr including inc extending ex hi def link maudeImport Include syn keyword maudeSort sort sorts subsort subsorts hi def link maudeSort StorageClass syn keyword maudeOp op ops hi def link maudeOp Constant syn keyword maudeVar var vars hi def link maudeVar Identifier syn keyword maudeEq eq ceq hi def link maudeEq Function syn keyword maudeRl rl crl hi def link maudeRl maudeEq syn keyword maudeMb mb cmb hi def link maudeMb maudeEq syn keyword maudeIf if syn match maudeIf '/\\' hi def link maudeIf Conditional syn match maudeUnderscore '_' hi def link maudeUnderscore Special syn match maudePunc '\%(^\|\s\)\zs\%(::\?\|->\|=>\|=\%(=\|/=\)\?\)\ze\%(\s\|$\)' hi def link maudePunc Operator syn match maudeDelim '[{}\[\](),]\|\%(^\|\s\)\zs\.\ze\%(\s\|$\)' hi def link maudeDelim Delimiter syn keyword maudeCommand reduce red rewrite rew load set quit hi def link maudeCommand Special syn region maudeComment start='\%(^\|\s\)\zs\%(\*\*\*\|---\)' end='$' \ contains=maudeCommentP,maudeTodo hi def link maudeComment Comment syn region maudeCommentP contained start='(' end=')' \ contains=maudeCommentP,maudeTodo hi def link maudeCommentP maudeComment syn keyword maudeTodo contained TODO FIXME XXX hi def link maudeTodo Todo