aboutsummaryrefslogtreecommitdiffstats
path: root/syntax/every.vim
blob: 0f7b2384e9cd0a8c62dab6f70632babab255caa9 (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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
" Vim syntax file
" Language:   every
" Maintainer: katherine <ageha@airen-no-jikken.icu>
" URL:        https://git.airen-no-jikken.icu/ageha/every.vim

if exists("b:current_syntax")
  finish
endif

syn iskeyword a-z,.

let b:current_syntax = "every"

syn region everyCommentLine start="#" end="$"

syn match everyInterval '\%([1-9]\d*[ymdHMS]\s*\)\{1,6}' contained

syn match everyDate '\%([1-9]\d*\|_\)\%(-\%([1-9]\d\|\d\=[1-9]\|_\)\%(-\%([1-9]\d\|\d\=[1-9]\|_\)\%(\s\+\%(\d\=\d\|_\)\%(:\%(\d\=\d\|_\)\%(:\%(\d\=\d\|_\)\)\=\)\=\)\=\)\=\)\=' contained

syn match everyBool "[tT][rR][uU][eE]\|[fF][aA][lL][sS][eE]\|[yY][eE][sS]\|[nN][oO]\|[oO][nN]\|[oO][fF][fF]" contained

syn keyword everyCommand .urgent .local nextgroup=everyBool skipwhite
syn keyword everyCommand .stay .warn nextgroup=everyInterval skipwhite

syn region everyMessage start=","ms=s+1 end="$" contained

syn keyword everyEveryKeys from to nextgroup=everyDate skipwhite contained
syn keyword everyEveryKeys every nextgroup=everyInterval skipwhite contained
syn region everyEveryLine start="every" end="$" contains=everyEveryKeys,everyMessage

syn keyword everyOnKeys on nextgroup=everyDate skipwhite contained
syn region everyOnLine start="on" end="$" contains=everyOnKeys,everyMessage


hi def link everyCommentLine Comment

hi def link everyInterval Number
hi def link everyDate Number
hi def link everyBool Boolean

hi def link everyCommand Define

hi def link everyMessage Normal

hi def link everyEveryKeys Statement
hi def link everyOnKeys Statement