1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
vim9script
# Vim syntax file.
# Language: Haredoc (Hare documentation format)
# Maintainer: Amelia Clarke <selene@perilune.dev>
# Last Change: 2026 Jan 24
# Upstream: https://git.sr.ht/~sircmpwn/hare.vim
if exists('b:current_syntax')
finish
endif
# Syntax {{{1
syn case match
syn iskeyword @,48-57,_
# Embedded code samples.
syn region haredocCode excludenl start='\v%(^\s*\t)@<=' end='$' contains=@NoSpell display
# References to other declarations and modules.
syn match haredocSpecial '\v\[\[\h\w*%(::\h\w*)*%(::)?]]' contains=@NoSpell display
# Miscellaneous.
syn keyword haredocTodo FIXME TODO XXX
# Default highlighting {{{1
hi def link haredocCode Comment
hi def link haredocSpecial Special
hi def link haredocTodo Todo
# Highlight incorrect whitespace by default.
syn match haredocSpaceError excludenl '\s\+$' containedin=ALL display
syn match haredocSpaceError '.\zs \+\ze\t' containedin=ALL display
if get(g:, 'hare_space_error', 1)
hi! def link haredocSpaceError Error
else
hi! def link haredocSpaceError NONE
endif
b:current_syntax = 'haredoc'
# vim: fdm=marker et sts=2 sw=2 ts=8 tw=80
|