xref: /vim-8.2.3635/runtime/syntax/crontab.vim (revision dee2e315)
1" Vim syntax file
2" Language: crontab
3" Maintainer: David Necas (Yeti) <[email protected]>
4" Original Maintainer: John Hoelzel [email protected]
5" License: This file can be redistribued and/or modified under the same terms
6"   as Vim itself.
7" Filenames: /tmp/crontab.* used by "crontab -e"
8" Last Change: 2012-05-16
9"
10" crontab line format:
11" Minutes   Hours   Days   Months   Days_of_Week   Commands # comments
12
13" For version 5.x: Clear all syntax items
14" For version 6.x: Quit when a syntax file was already loaded
15if version < 600
16  syntax clear
17elseif exists("b:current_syntax")
18  finish
19endif
20
21syntax match crontabMin "^\s*[-0-9/,.*]\+" nextgroup=crontabHr skipwhite
22syntax match crontabHr "\s[-0-9/,.*]\+" nextgroup=crontabDay skipwhite contained
23syntax match crontabDay "\s[-0-9/,.*]\+" nextgroup=crontabMnth skipwhite contained
24
25syntax match crontabMnth "\s[-a-z0-9/,.*]\+" nextgroup=crontabDow skipwhite contained
26syntax keyword crontabMnth12 contained jan feb mar apr may jun jul aug sep oct nov dec
27
28syntax match crontabDow "\s[-a-z0-9/,.*]\+" nextgroup=crontabCmd skipwhite contained
29syntax keyword crontabDow7 contained sun mon tue wed thu fri sat
30
31syntax region crontabCmd start="\S" end="$" skipwhite contained keepend contains=crontabPercent
32syntax match crontabCmnt "^\s*#.*" contains=@Spell
33syntax match crontabPercent "[^\\]%.*"lc=1 contained
34
35syntax match crontabNick "^\s*@\(reboot\|yearly\|annually\|monthly\|weekly\|daily\|midnight\|hourly\)\>" nextgroup=crontabCmd skipwhite
36
37syntax match crontabVar "^\s*\k\w*\s*="me=e-1
38
39" Define the default highlighting.
40" For version 5.7 and earlier: only when not done already
41" For version 5.8 and later: only when an item doesn't have highlighting yet
42if version >= 508 || !exists("did_crontab_syn_inits")
43  if version < 508
44    let did_crontab_syn_inits = 1
45    command -nargs=+ HiLink hi link <args>
46  else
47    command -nargs=+ HiLink hi def link <args>
48  endif
49
50  HiLink crontabMin		Number
51  HiLink crontabHr		PreProc
52  HiLink crontabDay		Type
53
54  HiLink crontabMnth		Number
55  HiLink crontabMnth12		Number
56  HiLink crontabMnthS		Number
57  HiLink crontabMnthN		Number
58
59  HiLink crontabDow		PreProc
60  HiLink crontabDow7		PreProc
61  HiLink crontabDowS		PreProc
62  HiLink crontabDowN		PreProc
63
64  HiLink crontabNick		Special
65  HiLink crontabVar		Identifier
66  HiLink crontabPercent		Special
67
68" comment out next line for to suppress unix commands coloring.
69  HiLink crontabCmd		Statement
70
71  HiLink crontabCmnt		Comment
72
73  delcommand HiLink
74endif
75
76let b:current_syntax = "crontab"
77
78" vim: ts=8
79