summaryrefslogtreecommitdiff
path: root/runtime/syntax/crontab.vim
blob: 372478c1ed4bfb741354ba2747a5dbf5d380b36b (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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
" Vim syntax file
" Language:	crontab
" Maintainer:	John Hoelzel johnh51@users.sourceforge.net
" Maintainer:	David Necas (Yeti) <yeti@physics.muni.cz>
" Last Change:	2005-04-26
" Filenames:	/tmp/crontab.* used by "crontab -e"
" URL:		http://trific.ath.cx/Ftp/vim/syntax/crontab.vim
"
" crontab line format:
" Minutes   Hours   Days   Months   Days_of_Week   Commands # comments

" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
  syntax clear
elseif exists("b:current_syntax")
  finish
endif

syntax match  crontabMin     "^\s*[-0-9/,.*]\+"  nextgroup=crontabHr   skipwhite
syntax match  crontabHr       "\s[-0-9/,.*]\+"  nextgroup=crontabDay  skipwhite contained
syntax match  crontabDay      "\s[-0-9/,.*]\+"  nextgroup=crontabMnth skipwhite contained

syntax match  crontabMnth  "\s[-a-z0-9/,.*]\+"  nextgroup=crontabDow  skipwhite contained
syntax keyword crontabMnth12 contained   jan feb mar apr may jun jul aug sep oct nov dec

syntax match  crontabDow   "\s[-a-z0-9/,.*]\+"  nextgroup=crontabCmd  skipwhite contained
syntax keyword crontabDow7   contained    sun mon tue wed thu fri sat

"  syntax region crontabCmd  start="\<[a-z0-9\/\(]" end="$" nextgroup=crontabCmnt skipwhite contained contains=crontabCmnt keepend

syntax region crontabCmd  start="\S" end="$" nextgroup=crontabCmnt skipwhite contained keepend
syntax match  crontabCmnt "^\s*#.*"

syntax match  crontabNick  "^\s*@\(reboot\|yearly\|annually\|monthly\|weekly\|daily\|midnight\|hourly\)\>" nextgroup=crontabCmd skipwhite

syntax match  crontabVar  "^\s*\k\w*\s*="me=e-1

" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
" For version 5.8 and later: only when an item doesn't have highlighting yet
if version >= 508 || !exists("did_crontab_syn_inits")
  if version < 508
    let did_crontab_syn_inits = 1
    command -nargs=+ HiLink hi link <args>
  else
    command -nargs=+ HiLink hi def link <args>
  endif

  HiLink crontabMin		Number
  HiLink crontabHr		PreProc
  HiLink crontabDay		Type

  HiLink crontabMnth		Number
  HiLink crontabMnth12		Number
  HiLink crontabMnthS		Number
  HiLink crontabMnthN		Number

  HiLink crontabDow		PreProc
  HiLink crontabDow7		PreProc
  HiLink crontabDowS		PreProc
  HiLink crontabDowN		PreProc

  HiLink crontabNick		Special
  HiLink crontabVar		Identifier

" comment out next line for to suppress unix commands coloring.
  HiLink crontabCmd		Type

  HiLink crontabCmnt		Comment

  delcommand HiLink
endif

let b:current_syntax = "crontab"

" vim: ts=8