blob: fd1c30023f71ed658244ccee8a029d6b41bea868 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
Bram Moolenaarfc1421e2006-04-20 22:17:20 +00002" Language: crontab
3" Maintainer: David Necas (Yeti) <yeti@physics.muni.cz>
4" Original Maintainer: John Hoelzel johnh51@users.sourceforge.net
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"
Bram Moolenaar8a94d872015-01-25 13:02:57 +01008" Last Change: 2015-01-20
Bram Moolenaar071d4272004-06-13 20:20:40 +00009"
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
Bram Moolenaar8a94d872015-01-25 13:02:57 +010016 syntax clear
Bram Moolenaar071d4272004-06-13 20:20:40 +000017elseif exists("b:current_syntax")
Bram Moolenaar8a94d872015-01-25 13:02:57 +010018 finish
Bram Moolenaar071d4272004-06-13 20:20:40 +000019endif
20
Bram Moolenaar8a94d872015-01-25 13:02:57 +010021syntax match crontabNick "^\s*@\(reboot\|yearly\|annually\|monthly\|weekly\|daily\|midnight\|hourly\)\>" nextgroup=crontabCmd skipwhite
22
23syntax match crontabVar "^\s*\k\w*\s*="me=e-1
24
25syntax case ignore
26
Bram Moolenaarfc1421e2006-04-20 22:17:20 +000027syntax match crontabMin "^\s*[-0-9/,.*]\+" nextgroup=crontabHr skipwhite
28syntax match crontabHr "\s[-0-9/,.*]\+" nextgroup=crontabDay skipwhite contained
29syntax match crontabDay "\s[-0-9/,.*]\+" nextgroup=crontabMnth skipwhite contained
Bram Moolenaar071d4272004-06-13 20:20:40 +000030
Bram Moolenaarfc1421e2006-04-20 22:17:20 +000031syntax match crontabMnth "\s[-a-z0-9/,.*]\+" nextgroup=crontabDow skipwhite contained
32syntax keyword crontabMnth12 contained jan feb mar apr may jun jul aug sep oct nov dec
Bram Moolenaar071d4272004-06-13 20:20:40 +000033
Bram Moolenaarfc1421e2006-04-20 22:17:20 +000034syntax match crontabDow "\s[-a-z0-9/,.*]\+" nextgroup=crontabCmd skipwhite contained
35syntax keyword crontabDow7 contained sun mon tue wed thu fri sat
Bram Moolenaar071d4272004-06-13 20:20:40 +000036
Bram Moolenaarfc1421e2006-04-20 22:17:20 +000037syntax region crontabCmd start="\S" end="$" skipwhite contained keepend contains=crontabPercent
Bram Moolenaar1aeaf8c2012-05-18 13:46:39 +020038syntax match crontabCmnt "^\s*#.*" contains=@Spell
Bram Moolenaarfc1421e2006-04-20 22:17:20 +000039syntax match crontabPercent "[^\\]%.*"lc=1 contained
Bram Moolenaar071d4272004-06-13 20:20:40 +000040
Bram Moolenaar071d4272004-06-13 20:20:40 +000041" Define the default highlighting.
42" For version 5.7 and earlier: only when not done already
43" For version 5.8 and later: only when an item doesn't have highlighting yet
44if version >= 508 || !exists("did_crontab_syn_inits")
Bram Moolenaar8a94d872015-01-25 13:02:57 +010045 if version < 508
46 let did_crontab_syn_inits = 1
47 command -nargs=+ HiLink hi link <args>
48 else
49 command -nargs=+ HiLink hi def link <args>
50 endif
Bram Moolenaar071d4272004-06-13 20:20:40 +000051
Bram Moolenaar8a94d872015-01-25 13:02:57 +010052 HiLink crontabMin Number
53 HiLink crontabHr PreProc
54 HiLink crontabDay Type
Bram Moolenaar071d4272004-06-13 20:20:40 +000055
Bram Moolenaar8a94d872015-01-25 13:02:57 +010056 HiLink crontabMnth Number
57 HiLink crontabMnth12 Number
58 HiLink crontabMnthS Number
59 HiLink crontabMnthN Number
Bram Moolenaar071d4272004-06-13 20:20:40 +000060
Bram Moolenaar8a94d872015-01-25 13:02:57 +010061 HiLink crontabDow PreProc
62 HiLink crontabDow7 PreProc
63 HiLink crontabDowS PreProc
64 HiLink crontabDowN PreProc
Bram Moolenaar071d4272004-06-13 20:20:40 +000065
Bram Moolenaar8a94d872015-01-25 13:02:57 +010066 HiLink crontabNick Special
67 HiLink crontabVar Identifier
68 HiLink crontabPercent Special
Bram Moolenaard9d30582005-05-18 22:10:28 +000069
Bram Moolenaar071d4272004-06-13 20:20:40 +000070" comment out next line for to suppress unix commands coloring.
Bram Moolenaar8a94d872015-01-25 13:02:57 +010071 HiLink crontabCmd Statement
Bram Moolenaar071d4272004-06-13 20:20:40 +000072
Bram Moolenaar8a94d872015-01-25 13:02:57 +010073 HiLink crontabCmnt Comment
Bram Moolenaar071d4272004-06-13 20:20:40 +000074
Bram Moolenaar8a94d872015-01-25 13:02:57 +010075 delcommand HiLink
Bram Moolenaar071d4272004-06-13 20:20:40 +000076endif
77
78let b:current_syntax = "crontab"
79
80" vim: ts=8