maude-vim/syntax/maude.vim

69 lines
1.6 KiB
VimL

" 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