blob: 46cd3c3095390b01c1cbccb2f88c49b42fc7f629 [file] [log] [blame]
Bram Moolenaar42eeac32005-06-29 22:40:58 +00001" Vim syntax file
2" Language: pam(8) configuration file
Bram Moolenaar57657d82006-04-21 22:12:41 +00003" Maintainer: Nikolai Weibull <now@bitwi.se>
4" Latest Revision: 2006-04-19
Bram Moolenaar42eeac32005-06-29 22:40:58 +00005
6
7if exists("b:current_syntax")
8 finish
9endif
10
11let s:cpo_save = &cpo
12set cpo&vim
13
14syn match pamconfService '^[[:graph:]]\+'
15 \ nextgroup=pamconfType,
16 \ pamconfServiceLineCont skipwhite
17
18syn keyword pamconfTodo contained TODO FIXME XXX NOTE
19
20syn region pamconfComment display oneline start='#' end='$'
21 \ contains=pamconfTodo,@Spell
22
23syn match pamconfServiceLineCont contained '\\$'
24 \ nextgroup=pamconfType,
25 \ pamconfServiceLineCont skipwhite skipnl
26
27syn keyword pamconfType account auth password session
28 \ nextgroup=pamconfControl,
29 \ pamconfTypeLineCont skipwhite
30
31syn match pamconfTypeLineCont contained '\\$'
32 \ nextgroup=pamconfControl,
33 \ pamconfTypeLineCont skipwhite skipnl
34
35syn keyword pamconfControl contained requisite required sufficient
36 \ optional
37 \ nextgroup=pamconfMPath,
38 \ pamconfControlLineContH skipwhite
39
40syn match pamconfControlBegin '\[' nextgroup=pamconfControlValues,
41 \ pamconfControlLineCont skipwhite
42
43syn match pamconfControlLineCont contained '\\$'
44 \ nextgroup=pamconfControlValues,
45 \ pamconfControlLineCont skipwhite skipnl
46
47syn keyword pamconfControlValues contained success open_err symbol_err
48 \ service_err system_err buf_err
49 \ perm_denied auth_err cred_insufficient
50 \ authinfo_unavail user_unknown maxtries
51 \ new_authtok_reqd acct_expired session_err
52 \ cred_unavail cred_expired cred_err
53 \ no_module_data conv_err authtok_err
54 \ authtok_recover_err authtok_lock_busy
55 \ authtok_disable_aging try_again ignore
56 \ abort authtok_expired module_unknown
57 \ bad_item and default
58 \ nextgroup=pamconfControlValueEq
59
60syn match pamconfControlValueEq contained '=' nextgroup=pamconfControlAction
61
62syn match pamconfControlActionN contained '\d\+\>'
63 \ nextgroup=pamconfControlValues,
64 \ pamconfControlLineCont,pamconfControlEnd
65 \ skipwhite
66syn keyword pamconfControlAction contained ignore bad die ok done reset
67 \ nextgroup=pamconfControlValues,
68 \ pamconfControlLineCont,pamconfControlEnd
69 \ skipwhite
70
71syn match pamconfControlEnd contained '\]'
72 \ nextgroup=pamconfMPath,
73 \ pamconfControlLineContH skipwhite
74
75syn match pamconfControlLineContH contained '\\$'
76 \ nextgroup=pamconfMPath,
77 \ pamconfControlLineContH skipwhite skipnl
78
79syn match pamconfMPath contained '\S\+'
80 \ nextgroup=pamconfMPathLineCont,
81 \ pamconfArgs skipwhite
82
83syn match pamconfArgs contained '\S\+'
84 \ nextgroup=pamconfArgsLineCont,
85 \ pamconfArgs skipwhite
86
87syn match pamconfMPathLineCont contained '\\$'
88 \ nextgroup=pamconfMPathLineCont,
89 \ pamconfArgs skipwhite skipnl
90
91syn match pamconfArgsLineCont contained '\\$'
92 \ nextgroup=pamconfArgsLineCont,
93 \ pamconfArgs skipwhite skipnl
94
95hi def link pamconfTodo Todo
96hi def link pamconfComment Comment
97hi def link pamconfService Statement
98hi def link pamconfServiceLineCont Special
99hi def link pamconfType Type
100hi def link pamconfTypeLineCont pamconfServiceLineCont
101hi def link pamconfControl Macro
102hi def link pamconfControlBegin Delimiter
103hi def link pamconfControlLineContH pamconfServiceLineCont
104hi def link pamconfControlLineCont pamconfServiceLineCont
105hi def link pamconfControlValues Identifier
106hi def link pamconfControlValueEq Operator
107hi def link pamconfControlActionN Number
108hi def link pamconfControlAction Identifier
109hi def link pamconfControlEnd Delimiter
110hi def link pamconfMPath String
111hi def link pamconfMPathLineCont pamconfServiceLineCont
112hi def link pamconfArgs Normal
113hi def link pamconfArgsLineCont pamconfServiceLineCont
114
115let b:current_syntax = "pamconf"
116
117let &cpo = s:cpo_save
118unlet s:cpo_save