xref: /vim-8.2.3635/runtime/syntax/pamconf.vim (revision e7b1ea02)
142eeac35SBram Moolenaar" Vim syntax file
242eeac35SBram Moolenaar" Language:             pam(8) configuration file
3214641f7SBram Moolenaar" Previous Maintainer:  Nikolai Weibull <[email protected]>
4*e7b1ea02SBram Moolenaar" Latest Revision:      2020/08/04
5*e7b1ea02SBram Moolenaar" Changes By:		Haochen Tong
642eeac35SBram Moolenaar
742eeac35SBram Moolenaar
842eeac35SBram Moolenaarif exists("b:current_syntax")
942eeac35SBram Moolenaar  finish
1042eeac35SBram Moolenaarendif
1142eeac35SBram Moolenaar
1242eeac35SBram Moolenaarlet s:cpo_save = &cpo
1342eeac35SBram Moolenaarset cpo&vim
1442eeac35SBram Moolenaar
15*e7b1ea02SBram Moolenaarlet s:has_service_field = exists("b:pamconf_has_service_field")
16*e7b1ea02SBram Moolenaar      \ ? b:pamconf_has_service_field
17*e7b1ea02SBram Moolenaar      \ : expand('%:t') == 'pam.conf' ? 1 : 0
18*e7b1ea02SBram Moolenaar
19*e7b1ea02SBram Moolenaarsyn match   pamconfType             '-\?[[:alpha:]]\+'
20*e7b1ea02SBram Moolenaar                                    \ contains=pamconfTypeKeyword
21*e7b1ea02SBram Moolenaar                                    \ nextgroup=pamconfControl,
22*e7b1ea02SBram Moolenaar                                    \ pamconfTypeLineCont skipwhite
23*e7b1ea02SBram Moolenaar
24*e7b1ea02SBram Moolenaarsyn keyword pamconfTypeKeyword      contained account auth password session
25*e7b1ea02SBram Moolenaar
26*e7b1ea02SBram Moolenaarif s:has_service_field
2742eeac35SBram Moolenaar    syn match   pamconfService          '^[[:graph:]]\+'
2842eeac35SBram Moolenaar                                        \ nextgroup=pamconfType,
2942eeac35SBram Moolenaar                                        \ pamconfServiceLineCont skipwhite
3042eeac35SBram Moolenaar
31*e7b1ea02SBram Moolenaar    syn match   pamconfServiceLineCont  contained '\\$'
32*e7b1ea02SBram Moolenaar                                        \ nextgroup=pamconfType,
33*e7b1ea02SBram Moolenaar                                        \ pamconfServiceLineCont skipwhite skipnl
34*e7b1ea02SBram Moolenaarendif
35*e7b1ea02SBram Moolenaar
3642eeac35SBram Moolenaarsyn keyword pamconfTodo             contained TODO FIXME XXX NOTE
3742eeac35SBram Moolenaar
3842eeac35SBram Moolenaarsyn region  pamconfComment          display oneline start='#' end='$'
3942eeac35SBram Moolenaar                                    \ contains=pamconfTodo,@Spell
4042eeac35SBram Moolenaar
4142eeac35SBram Moolenaarsyn match   pamconfTypeLineCont     contained '\\$'
4242eeac35SBram Moolenaar                                    \ nextgroup=pamconfControl,
4342eeac35SBram Moolenaar                                    \ pamconfTypeLineCont skipwhite skipnl
4442eeac35SBram Moolenaar
4542eeac35SBram Moolenaarsyn keyword pamconfControl          contained requisite required sufficient
465302d9ebSBram Moolenaar                                    \ optional include substack
4742eeac35SBram Moolenaar                                    \ nextgroup=pamconfMPath,
4842eeac35SBram Moolenaar                                    \ pamconfControlLineContH skipwhite
4942eeac35SBram Moolenaar
5042eeac35SBram Moolenaarsyn match   pamconfControlBegin     '\[' nextgroup=pamconfControlValues,
5142eeac35SBram Moolenaar                                    \ pamconfControlLineCont skipwhite
5242eeac35SBram Moolenaar
5342eeac35SBram Moolenaarsyn match   pamconfControlLineCont  contained '\\$'
5442eeac35SBram Moolenaar                                    \ nextgroup=pamconfControlValues,
5542eeac35SBram Moolenaar                                    \ pamconfControlLineCont skipwhite skipnl
5642eeac35SBram Moolenaar
5742eeac35SBram Moolenaarsyn keyword pamconfControlValues    contained success open_err symbol_err
5842eeac35SBram Moolenaar                                    \ service_err system_err buf_err
5942eeac35SBram Moolenaar                                    \ perm_denied auth_err cred_insufficient
6042eeac35SBram Moolenaar                                    \ authinfo_unavail user_unknown maxtries
6142eeac35SBram Moolenaar                                    \ new_authtok_reqd acct_expired session_err
6242eeac35SBram Moolenaar                                    \ cred_unavail cred_expired cred_err
6342eeac35SBram Moolenaar                                    \ no_module_data conv_err authtok_err
6442eeac35SBram Moolenaar                                    \ authtok_recover_err authtok_lock_busy
6542eeac35SBram Moolenaar                                    \ authtok_disable_aging try_again ignore
6642eeac35SBram Moolenaar                                    \ abort authtok_expired module_unknown
6742eeac35SBram Moolenaar                                    \ bad_item and default
6842eeac35SBram Moolenaar                                    \ nextgroup=pamconfControlValueEq
6942eeac35SBram Moolenaar
705302d9ebSBram Moolenaarsyn match   pamconfControlValueEq   contained '='
715302d9ebSBram Moolenaar                                    \ nextgroup=pamconfControlActionN,
725302d9ebSBram Moolenaar                                    \           pamconfControlAction
7342eeac35SBram Moolenaar
7442eeac35SBram Moolenaarsyn match   pamconfControlActionN   contained '\d\+\>'
7542eeac35SBram Moolenaar                                    \ nextgroup=pamconfControlValues,
7642eeac35SBram Moolenaar                                    \ pamconfControlLineCont,pamconfControlEnd
7742eeac35SBram Moolenaar                                    \ skipwhite
7842eeac35SBram Moolenaarsyn keyword pamconfControlAction    contained ignore bad die ok done reset
7942eeac35SBram Moolenaar                                    \ nextgroup=pamconfControlValues,
8042eeac35SBram Moolenaar                                    \ pamconfControlLineCont,pamconfControlEnd
8142eeac35SBram Moolenaar                                    \ skipwhite
8242eeac35SBram Moolenaar
8342eeac35SBram Moolenaarsyn match   pamconfControlEnd       contained '\]'
8442eeac35SBram Moolenaar                                    \ nextgroup=pamconfMPath,
8542eeac35SBram Moolenaar                                    \ pamconfControlLineContH skipwhite
8642eeac35SBram Moolenaar
8742eeac35SBram Moolenaarsyn match   pamconfControlLineContH contained '\\$'
8842eeac35SBram Moolenaar                                    \ nextgroup=pamconfMPath,
8942eeac35SBram Moolenaar                                    \ pamconfControlLineContH skipwhite skipnl
9042eeac35SBram Moolenaar
9142eeac35SBram Moolenaarsyn match   pamconfMPath            contained '\S\+'
9242eeac35SBram Moolenaar                                    \ nextgroup=pamconfMPathLineCont,
9342eeac35SBram Moolenaar                                    \ pamconfArgs skipwhite
9442eeac35SBram Moolenaar
9542eeac35SBram Moolenaarsyn match   pamconfArgs             contained '\S\+'
9642eeac35SBram Moolenaar                                    \ nextgroup=pamconfArgsLineCont,
9742eeac35SBram Moolenaar                                    \ pamconfArgs skipwhite
9842eeac35SBram Moolenaar
9942eeac35SBram Moolenaarsyn match   pamconfMPathLineCont    contained '\\$'
10042eeac35SBram Moolenaar                                    \ nextgroup=pamconfMPathLineCont,
10142eeac35SBram Moolenaar                                    \ pamconfArgs skipwhite skipnl
10242eeac35SBram Moolenaar
10342eeac35SBram Moolenaarsyn match   pamconfArgsLineCont     contained '\\$'
10442eeac35SBram Moolenaar                                    \ nextgroup=pamconfArgsLineCont,
10542eeac35SBram Moolenaar                                    \ pamconfArgs skipwhite skipnl
10642eeac35SBram Moolenaar
10742eeac35SBram Moolenaarhi def link pamconfTodo             Todo
10842eeac35SBram Moolenaarhi def link pamconfComment          Comment
10942eeac35SBram Moolenaarhi def link pamconfService          Statement
11042eeac35SBram Moolenaarhi def link pamconfServiceLineCont  Special
111*e7b1ea02SBram Moolenaarhi def link pamconfType             Special
112*e7b1ea02SBram Moolenaarhi def link pamconfTypeKeyword      Type
11342eeac35SBram Moolenaarhi def link pamconfTypeLineCont     pamconfServiceLineCont
11442eeac35SBram Moolenaarhi def link pamconfControl          Macro
11542eeac35SBram Moolenaarhi def link pamconfControlBegin     Delimiter
11642eeac35SBram Moolenaarhi def link pamconfControlLineContH pamconfServiceLineCont
11742eeac35SBram Moolenaarhi def link pamconfControlLineCont  pamconfServiceLineCont
11842eeac35SBram Moolenaarhi def link pamconfControlValues    Identifier
11942eeac35SBram Moolenaarhi def link pamconfControlValueEq   Operator
12042eeac35SBram Moolenaarhi def link pamconfControlActionN   Number
12142eeac35SBram Moolenaarhi def link pamconfControlAction    Identifier
12242eeac35SBram Moolenaarhi def link pamconfControlEnd       Delimiter
12342eeac35SBram Moolenaarhi def link pamconfMPath            String
12442eeac35SBram Moolenaarhi def link pamconfMPathLineCont    pamconfServiceLineCont
12542eeac35SBram Moolenaarhi def link pamconfArgs             Normal
12642eeac35SBram Moolenaarhi def link pamconfArgsLineCont     pamconfServiceLineCont
12742eeac35SBram Moolenaar
12842eeac35SBram Moolenaarlet b:current_syntax = "pamconf"
12942eeac35SBram Moolenaar
13042eeac35SBram Moolenaarlet &cpo = s:cpo_save
13142eeac35SBram Moolenaarunlet s:cpo_save
132