summaryrefslogtreecommitdiffstats
path: root/runtime/syntax/haredoc.vim
blob: 09c99c1d56428a4c07948bd397df075eca667800 (plain)
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
" Vim syntax file.
" Language:    Haredoc (Hare documentation format)
" Maintainer:  Amelia Clarke <selene@perilune.dev>
" Last Change: 2024-05-10
" Upstream:    https://git.sr.ht/~selene/hare.vim

if exists('b:current_syntax')
  finish
endif
let b:current_syntax = 'haredoc'

" Syntax {{{1
syn case match
syn iskeyword @,48-57,_

" Code samples.
syn region haredocCodeSample excludenl start='\t\zs' end='$' contains=@NoSpell display

" References to other declarations and modules.
syn region haredocRef start='\[\[' end=']]' contains=haredocRefValid,@NoSpell display keepend oneline
syn match haredocRefValid '\v\[\[\h\w*%(::\h\w*)*%(::)?]]' contained contains=@NoSpell display

" Miscellaneous.
syn keyword haredocTodo FIXME TODO XXX

" Default highlighting {{{1
hi def link haredocCodeSample Comment
hi def link haredocRef Error
hi def link haredocRefValid Special
hi def link haredocTodo Todo

" vim: et sts=2 sw=2 ts=8