updated for version 7.0023

This commit is contained in:
Bram Moolenaar
2004-12-19 22:46:22 +00:00
parent 46c9c73de8
commit 1cd871b534
76 changed files with 2397 additions and 1391 deletions

View File

@ -1,6 +1,6 @@
" Vim syntax support file
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2004 Oct 15
" Last Change: 2004 Dec 14
" (modified by David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>)
" (XHTML support by Panagiotis Issaris <takis@lumumba.luc.ac.be>)
@ -211,7 +211,11 @@ let s:old_magic = &magic
set magic
if exists("use_xhtml")
exe "normal! a<?xml version=\"1.0\"?>\n\e"
if s:html_encoding != ""
exe "normal! a<?xml version=\"1.0\" encoding=\"" . s:html_encoding . "\"?>\n\e"
else
exe "normal! a<?xml version=\"1.0\"?>\n\e"
endif
let s:tag_close = '/>'
else
let s:tag_close = '>'
@ -230,8 +234,8 @@ endif
" HTML header, with the title and generator ;-). Left free space for the CSS,
" to be filled at the end.
exe "normal! a<html>\n<head>\n<title>\e"
exe "normal! a" . expand("%:p:~") . "</title>\n\e"
exe "normal! a<html>\n\e"
exe "normal! a<head>\n<title>" . expand("%:p:~") . "</title>\n\e"
exe "normal! a<meta name=\"Generator\" content=\"Vim/" . v:version/100 . "." . v:version %100 . '"' . s:tag_close . "\n\e"
if s:html_encoding != ""
exe "normal! a<meta http-equiv=\"content-type\" content=\"text/html; charset=" . s:html_encoding . '"' . s:tag_close . "\n\e"
@ -477,11 +481,19 @@ while s:idlist != ""
endwhile
" Add hyperlinks
%s+\(http://\S\{-}\)\(\([.,;:}]\=\(\s\|$\)\)\|[\\"'<>]\|&gt;\|&lt;\|&quot;\)+<A HREF="\1">\1</A>\2+ge
%s+\(https\=://\S\{-}\)\(\([.,;:}]\=\(\s\|$\)\)\|[\\"'<>]\|&gt;\|&lt;\|&quot;\)+<a href="\1">\1</a>\2+ge
" The DTD
if exists("html_use_css")
exe "normal! gg0i<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n\e"
if exists("use_xhtml")
exe "normal! gg$a\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\e"
else
exe "normal! gg0i<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n\e"
endif
endif
if exists("use_xhtml")
exe "normal! gg/<html/e\na xmlns=\"http://www.w3.org/1999/xhtml\"\e"
endif
" Cleanup

View File

@ -2,7 +2,12 @@
" Language: Inno Setup File (iss file) and My InnoSetup extension
" Maintainer: Jason Mills (jmills@cs.mun.ca)
" Previous Maintainer: Dominique St<53>phan (dominique@mggen.com)
" Last Change: 2004 Jul 13
" Last Change: 2004 Dec 14
"
" Todo:
" - The paramter String: is matched as flag string (because of case ignore).
" - Pascal scripting syntax is not recognized.
" - Embedded double quotes confuse string matches. e.g. "asfd""asfa"
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@ -19,36 +24,37 @@ syn case ignore
syn region issPreProc start="^\s*#" end="$"
" Section
syn region issHeader start="\[" end="\]"
syn region issSection start="\[" end="\]"
" Label in the [Setup] Section
syn match issLabel "^[^=]\+="
syn match issDirective "^[^=]\+="
" URL
syn match issURL "http[s]\=:\/\/.*$"
syn match issURL "http[s]\=:\/\/.*$"
" syn match issName "[^: ]\+:"
syn match issName "Name:"
syn match issName "MinVersion:\|OnlyBelowVersion:\|Languages:"
syn match issName "Source:\|DestDir:\|DestName:\|CopyMode:"
syn match issName "Attribs:\|Permissions:\|FontInstall:\|Flags:"
syn match issName "FileName:\|Parameters:\|WorkingDir:\|HotKey:\|Comment:"
syn match issName "IconFilename:\|IconIndex:"
syn match issName "Section:\|Key:\|String:"
syn match issName "Root:\|SubKey:\|ValueType:\|ValueName:\|ValueData:"
syn match issName "RunOnceId:"
syn match issName "Type:"
syn match issName "Components:\|Description:\|GroupDescription:\|Types:\|ExtraDiskSpaceRequired:"
syn match issName "StatusMsg:\|RunOnceId:\|Tasks:"
syn match issName "MessagesFile:\|LicenseFile:\|InfoBeforeFile:\|InfoAfterFile:"
" Parameters used for any section.
" syn match issParam"[^: ]\+:"
syn match issParam "Name:"
syn match issParam "MinVersion:\|OnlyBelowVersion:\|Languages:"
syn match issParam "Source:\|DestDir:\|DestName:\|CopyMode:"
syn match issParam "Attribs:\|Permissions:\|FontInstall:\|Flags:"
syn match issParam "FileName:\|Parameters:\|WorkingDir:\|HotKey:\|Comment:"
syn match issParam "IconFilename:\|IconIndex:"
syn match issParam "Section:\|Key:\|String:"
syn match issParam "Root:\|SubKey:\|ValueType:\|ValueName:\|ValueData:"
syn match issParam "RunOnceId:"
syn match issParam "Type:\|Excludes:"
syn match issParam "Components:\|Description:\|GroupDescription:\|Types:\|ExtraDiskSpaceRequired:"
syn match issParam "StatusMsg:\|RunOnceId:\|Tasks:"
syn match issParam "MessagesFile:\|LicenseFile:\|InfoBeforeFile:\|InfoAfterFile:"
syn match issComment "^;.*$"
syn match issComment "^\s*;.*$"
" folder constant
syn match issFolder "{[^{]*}"
syn match issFolder "{[^{]*}"
" string
syn region issString start=+"+ end=+"+ contains=issFolder
syn region issString start=+"+ end=+"+ contains=issFolder
" [Dirs]
syn keyword issDirsFlags deleteafterinstall uninsalwaysuninstall uninsneveruninstall
@ -63,6 +69,8 @@ syn keyword issFilesFlags isreadme onlyifdestfileexists onlyifdoesntexist overwr
syn keyword issFilesFlags promptifolder recursesubdirs regserver regtypelib restartreplace
syn keyword issFilesFlags sharedfile skipifsourcedoesntexist sortfilesbyextension touch
syn keyword issFilesFlags uninsremovereadonly uninsrestartdelete uninsneveruninstall
syn keyword issFilesFlags replacesameversion nocompression noencryption noregerror
" [Icons]
syn keyword issIconsFlags closeonexit createonlyiffileexists dontcloseonexit
@ -108,30 +116,30 @@ if version >= 508 || !exists("did_iss_syntax_inits")
endif
" The default methods for highlighting. Can be overridden later
HiLink issHeader Special
HiLink issComment Comment
HiLink issLabel Type
HiLink issName Type
HiLink issFolder Special
HiLink issString String
HiLink issValue String
HiLink issURL Include
HiLink issPreProc PreProc
HiLink issSection Special
HiLink issComment Comment
HiLink issDirective Type
HiLink issParam Type
HiLink issFolder Special
HiLink issString String
HiLink issURL Include
HiLink issPreProc PreProc
HiLink issDirsFlags Keyword
HiLink issFilesCopyMode Keyword
HiLink issFilesAttribs Keyword
HiLink issFilesFlags Keyword
HiLink issIconsFlags Keyword
HiLink issINIFlags Keyword
HiLink issRegRootKey Keyword
HiLink issRegValueType Keyword
HiLink issRegFlags Keyword
HiLink issRunFlags Keyword
HiLink issTypesFlags Keyword
HiLink issComponentsFlags Keyword
HiLink issInstallDeleteType Keyword
HiLink issTasksFlags Keyword
HiLink issDirsFlags Keyword
HiLink issFilesCopyMode Keyword
HiLink issFilesAttribs Keyword
HiLink issFilesPermissions Keyword
HiLink issFilesFlags Keyword
HiLink issIconsFlags Keyword
HiLink issINIFlags Keyword
HiLink issRegRootKey Keyword
HiLink issRegValueType Keyword
HiLink issRegFlags Keyword
HiLink issRunFlags Keyword
HiLink issTypesFlags Keyword
HiLink issComponentsFlags Keyword
HiLink issInstallDeleteType Keyword
HiLink issTasksFlags Keyword
delcommand HiLink
endif

55
runtime/syntax/netrc.vim Normal file
View File

@ -0,0 +1,55 @@
" Vim syntax file
" Maintainer: Nikolai Weibull <source@pcppopper.org>
" URL: http://www.pcppopper.org/
" Latest Revision: 2004-12-16
" arch-tag: 4f6ecb37-d10c-4eca-add0-77991559414a
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
" Keywords
syn keyword netrcKeyword machine password nextgroup=netrcName skipwhite skipnl
syn keyword netrcKeyword login nextgroup=netrcName,netrcSpecial skipwhite skipnl
syn keyword netrcKeyword default
syn keyword netrcKeyword macdef nextgroup=netrcInit,netrcMacroName skipwhite skipnl
syn region netrcMacro contained start='.' end='^$'
" Names
syn match netrcName contained display '\S\+'
syn match netrcName contained display '"[^\\"]*\(\\.[^\\"]*\)*'
syn match netrcMacroName contained display '\S\+' nextgroup=netrcMacro skipwhite skipnl
syn match netrcMacroName contained display '"[^\\"]*\(\\.[^\\"]*\)*' nextgroup=netrcMacro skipwhite skipnl
" Special
syn keyword netrcSpecial contained anonymous
syn match netrcInit contained '\<init$' nextgroup=netrcMacro skipwhite skipnl
syn sync fromstart
" 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_netrc_syn_inits")
if version < 508
let did_netrc_syn_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
HiLink netrcKeyword Keyword
HiLink netrcMacro PreProc
HiLink netrcName String
HiLink netrcMacroName String
HiLink netrcSpecial Special
HiLink netrcInit Special
delcommand HiLink
endif
let b:current_syntax = "netrc"
" vim: set sts=2 sw=2:

290
runtime/syntax/sudoers.vim Normal file
View File

@ -0,0 +1,290 @@
" Vim syntax file
" Language: sudoers(5) configuration files.
" Maintainer: Nikolai Weibull <source@pcppopper.org>
" URL: http://www.pcppopper.org/
" Latest Revision: 2004-12-17
" arch-tag: 02fc3bc8-4308-466f-b83e-718a7487b198
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
" TODO: instead of 'skipnl', we would like to match a specific group that would
" match \\$ and then continue with the nextgroup, actually, the skipnl doesn't
" work...
" TODO: treat 'ALL' like a special (yay, a bundle of new rules!!!)
" User Specs
syn match sudoersUserSpec '^' nextgroup=@sudoersUserInSpec skipwhite
syn match sudoersSpecEquals contained '=' nextgroup=@sudoersCmndSpecList skipwhite
syn cluster sudoersCmndSpecList contains=sudoersUserRunasBegin,sudoersPASSWD,@sudoersCmndInSpec
" Todo
syn keyword sudoersTodo contained TODO FIXME XXX NOTE
" Comments
syn region sudoersComment matchgroup=sudoersComment start='#' end='$' contains=sudoersTodo
" Aliases
syn keyword sudoersAlias User_Alias Runas_Alias nextgroup=sudoersUserAlias skipwhite skipnl
syn keyword sudoersAlias Host_Alias nextgroup=sudoersHostAlias skipwhite skipnl
syn keyword sudoersAlias Cmnd_Alias nextgroup=sudoersCmndAlias skipwhite skipnl
" Names
syn match sudoersUserAlias contained '\<\u[A-Z0-9_]*\>' nextgroup=sudoersUserAliasEquals skipwhite skipnl
syn match sudoersUserNameInList contained '\<\l\+\>' nextgroup=@sudoersUserList skipwhite skipnl
syn match sudoersUIDInList contained '#\d\+\>' nextgroup=@sudoersUserList skipwhite skipnl
syn match sudoersGroupInList contained '%\l\+\>' nextgroup=@sudoersUserList skipwhite skipnl
syn match sudoersUserNetgroupInList contained '+\l\+\>' nextgroup=@sudoersUserList skipwhite skipnl
syn match sudoersUserAliasInList contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersUserList skipwhite skipnl
syn match sudoersUserName contained '\<\l\+\>' nextgroup=@sudoersParameter skipwhite skipnl
syn match sudoersUID contained '#\d\+\>' nextgroup=@sudoersParameter skipwhite skipnl
syn match sudoersGroup contained '%\l\+\>' nextgroup=@sudoersParameter skipwhite skipnl
syn match sudoersUserNetgroup contained '+\l\+\>' nextgroup=@sudoersParameter skipwhite skipnl
syn match sudoersUserAliasRef contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersParameter skipwhite skipnl
syn match sudoersUserNameInSpec contained '\<\l\+\>' nextgroup=@sudoersUserSpec skipwhite skipnl
syn match sudoersUIDInSpec contained '#\d\+\>' nextgroup=@sudoersUserSpec skipwhite skipnl
syn match sudoersGroupInSpec contained '%\l\+\>' nextgroup=@sudoersUserSpec skipwhite skipnl
syn match sudoersUserNetgroupInSpec contained '+\l\+\>' nextgroup=@sudoersUserSpec skipwhite skipnl
syn match sudoersUserAliasInSpec contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersUserSpec skipwhite skipnl
syn match sudoersUserNameInRunas contained '\<\l\+\>' nextgroup=@sudoersUserRunas skipwhite skipnl
syn match sudoersUIDInRunas contained '#\d\+\>' nextgroup=@sudoersUserRunas skipwhite skipnl
syn match sudoersGroupInRunas contained '%\l\+\>' nextgroup=@sudoersUserRunas skipwhite skipnl
syn match sudoersUserNetgroupInRunas contained '+\l\+\>' nextgroup=@sudoersUserRunas skipwhite skipnl
syn match sudoersUserAliasInRunas contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersUserRunas skipwhite skipnl
syn match sudoersHostAlias contained '\<\u[A-Z0-9_]*\>' nextgroup=sudoersHostAliasEquals skipwhite skipnl
syn match sudoersHostNameInList contained '\<\l\+\>' nextgroup=@sudoersHostList skipwhite skipnl
syn match sudoersIPAddrInList contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}' nextgroup=@sudoersHostList skipwhite skipnl
syn match sudoersNetworkInList contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}\%(/\%(\%(\d\{1,3}\.\)\{3}\d\{1,3}\|\d\+\)\)\=' nextgroup=@sudoersHostList skipwhite skipnl
syn match sudoersHostNetgroupInList contained '+\l\+\>' nextgroup=@sudoersHostList skipwhite skipnl
syn match sudoersHostAliasInList contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersHostList skipwhite skipnl
syn match sudoersHostName contained '\<\l\+\>' nextgroup=@sudoersParameter skipwhite skipnl
syn match sudoersIPAddr contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}' nextgroup=@sudoersParameter skipwhite skipnl
syn match sudoersNetwork contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}\%(/\%(\%(\d\{1,3}\.\)\{3}\d\{1,3}\|\d\+\)\)\=' nextgroup=@sudoersParameter skipwhite skipnl
syn match sudoersHostNetgroup contained '+\l\+\>' nextgroup=@sudoersParameter skipwhite skipnl
syn match sudoersHostAliasRef contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersParameter skipwhite skipnl
syn match sudoersHostNameInSpec contained '\<\l\+\>' nextgroup=@sudoersHostSpec skipwhite skipnl
syn match sudoersIPAddrInSpec contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}' nextgroup=@sudoersHostSpec skipwhite skipnl
syn match sudoersNetworkInSpec contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}\%(/\%(\%(\d\{1,3}\.\)\{3}\d\{1,3}\|\d\+\)\)\=' nextgroup=@sudoersHostSpec skipwhite skipnl
syn match sudoersHostNetgroupInSpec contained '+\l\+\>' nextgroup=@sudoersHostSpec skipwhite skipnl
syn match sudoersHostAliasInSpec contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersHostSpec skipwhite skipnl
syn match sudoersCmndAlias contained '\<\u[A-Z0-9_]*\>' nextgroup=sudoersCmndAliasEquals skipwhite skipnl
syn match sudoersCmndNameInList contained '[^[:space:],:=\\]\+\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=@sudoersCmndList,sudoersCommandEmpty,sudoersCommandArgs skipwhite
syn match sudoersCmndAliasInList contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersCmndList skipwhite skipnl
syn match sudoersCmndNameInSpec contained '[^[:space:],:=\\]\+\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=@sudoersCmndSpec,sudoersCommandEmptyInSpec,sudoersCommandArgsInSpec skipwhite
syn match sudoersCmndAliasInSpec contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersCmndSpec skipwhite skipnl
" Delimiters
syn match sudoersUserAliasEquals contained '=' nextgroup=@sudoersUserInList skipwhite skipnl
syn match sudoersUserListComma contained ',' nextgroup=@sudoersUserInList skipwhite skipnl
syn match sudoersUserListColon contained ':' nextgroup=sudoersUserAlias skipwhite skipnl
syn cluster sudoersUserList contains=sudoersUserListComma,sudoersUserListColon
syn match sudoersUserSpecComma contained ',' nextgroup=@sudoersUserInSpec skipwhite skipnl
syn cluster sudoersUserSpec contains=sudoersUserSpecComma,@sudoersHostInSpec
syn match sudoersUserRunasBegin contained '(' nextgroup=@sudoersUserInRunas skipwhite skipnl
syn match sudoersUserRunasComma contained ',' nextgroup=@sudoersUserInRunas skipwhite skipnl
syn match sudoersUserRunasEnd contained ')' nextgroup=sudoersPASSWD,@sudoersCmndInSpec skipwhite skipnl
syn cluster sudoersUserRunas contains=sudoersUserRunasComma,@sudoersUserInRunas,sudoersUserRunasEnd
syn match sudoersHostAliasEquals contained '=' nextgroup=@sudoersHostInList skipwhite skipnl
syn match sudoersHostListComma contained ',' nextgroup=@sudoersHostInList skipwhite skipnl
syn match sudoersHostListColon contained ':' nextgroup=sudoersHostAlias skipwhite skipnl
syn cluster sudoersHostList contains=sudoersHostListComma,sudoersHostListColon
syn match sudoersHostSpecComma contained ',' nextgroup=@sudoersHostInSpec skipwhite skipnl
syn cluster sudoersHostSpec contains=sudoersHostSpecComma,sudoersSpecEquals
syn match sudoersCmndAliasEquals contained '=' nextgroup=@sudoersCmndInList skipwhite skipnl
syn match sudoersCmndListComma contained ',' nextgroup=@sudoersCmndInList skipwhite skipnl
syn match sudoersCmndListColon contained ':' nextgroup=sudoersCmndAlias skipwhite skipnl
syn cluster sudoersCmndList contains=sudoersCmndListComma,sudoersCmndListColon
syn match sudoersCmndSpecComma contained ',' nextgroup=@sudoersCmndSpecList skipwhite skipnl
syn match sudoersCmndSpecColon contained ':' nextgroup=@sudoersUserInSpec skipwhite skipnl
syn cluster sudoersCmndSpec contains=sudoersCmndSpecComma,sudoersCmndSpecColon
" Lists
syn cluster sudoersUserInList contains=sudoersUserNegationInList,sudoersUserNameInList,sudoersUIDInList,sudoersGroupInList,sudoersUserNetgroupInList,sudoersUserAliasInList
syn cluster sudoersHostInList contains=sudoersHostNegationInList,sudoersHostNameInList,sudoersIPAddrInList,sudoersNetworkInList,sudoersHostNetgroupInList,sudoersHostAliasInList
syn cluster sudoersCmndInList contains=sudoersCmndNegationInList,sudoersCmndNameInList,sudoersCmndAliasInList
syn cluster sudoersUser contains=sudoersUserNegation,sudoersUserName,sudoersUID,sudoersGroup,sudoersUserNetgroup,sudoersUserAliasRef
syn cluster sudoersHost contains=sudoersHostNegation,sudoersHostName,sudoersIPAddr,sudoersNetwork,sudoersHostNetgroup,sudoersHostAliasRef
syn cluster sudoersUserInSpec contains=sudoersUserNegationInSpec,sudoersUserNameInSpec,sudoersUIDInSpec,sudoersGroupInSpec,sudoersUserNetgroupInSpec,sudoersUserAliasInSpec
syn cluster sudoersHostInSpec contains=sudoersHostNegationInSpec,sudoersHostNameInSpec,sudoersIPAddrInSpec,sudoersNetworkInSpec,sudoersHostNetgroupInSpec,sudoersHostAliasInSpec
syn cluster sudoersUserInRunas contains=sudoersUserNegationInRunas,sudoersUserNameInRunas,sudoersUIDInRunas,sudoersGroupInRunas,sudoersUserNetgroupInRunas,sudoersUserAliasInRunas
syn cluster sudoersCmndInSpec contains=sudoersCmndNegationInSpec,sudoersCmndNameInSpec,sudoersCmndAliasInSpec
" Operators
syn match sudoersUserNegationInList contained '!\+' nextgroup=@sudoersUserInList skipwhite skipnl
syn match sudoersHostNegationInList contained '!\+' nextgroup=@sudoersHostInList skipwhite skipnl
syn match sudoersCmndNegationInList contained '!\+' nextgroup=@sudoersCmndInList skipwhite skipnl
syn match sudoersUserNegation contained '!\+' nextgroup=@sudoersUser skipwhite skipnl
syn match sudoersHostNegation contained '!\+' nextgroup=@sudoersHost skipwhite skipnl
syn match sudoersUserNegationInSpec contained '!\+' nextgroup=@sudoersUserInSpec skipwhite skipnl
syn match sudoersHostNegationInSpec contained '!\+' nextgroup=@sudoersHostInSpec skipwhite skipnl
syn match sudoersUserNegationInRunas contained '!\+' nextgroup=@sudoersUserInRunas skipwhite skipnl
syn match sudoersCmndNegationInSpec contained '!\+' nextgroup=@sudoersCmndInSpec skipwhite skipnl
" Arguments
syn match sudoersCommandArgs contained '[^[:space:],:=\\]\+\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=sudoersCommandArgs,@sudoersCmndList skipwhite
syn match sudoersCommandEmpty contained '""' nextgroup=@sudoersCmndList skipwhite skipnl
syn match sudoersCommandArgsInSpec contained '[^[:space:],:=\\]\+\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=sudoersCommandArgsInSpec,@sudoersCmndSpec skipwhite
syn match sudoersCommandEmptyInSpec contained '""' nextgroup=@sudoersCmndSpec skipwhite skipnl
" Default Entries
syn keyword sudoersDefaultEntry Defaults nextgroup=sudoersDefaultTypeAt,sudoersDefaultTypeColon,sudoersDefaultTypeGreaterThan,@sudoersParameter skipwhite skipnl
syn match sudoersDefaultTypeAt contained '@' nextgroup=@sudoersHost skipwhite skipnl
syn match sudoersDefaultTypeColon contained ':' nextgroup=@sudoersUser skipwhite skipnl
syn match sudoersDefaultTypeGreaterThan contained '>' nextgroup=@sudoersUser skipwhite skipnl
" TODO: could also deal with special characters here
syn keyword sudoersBooleanParameter contained long_opt_prompt ignore_dot mail_always mail_badpass mail_no_user mail_no_perms tty_tickets lecture authenticate root_sudo log_host log_year shell_noargs set_home always_set_home path_info preserve_groups fqdn insults requiretty env_editor rootpw runaspw targetpw set_logname stay_setuid env_reset use_loginclass nextgroup=sudoersParameterListComma skipwhite skipnl
syn keyword sudoersIntegerParameter contained passwd_tries loglinelen timestamp_timeout passwd_timeout umask nextgroup=sudoersIntegerParameterEquals skipwhite skipnl
syn keyword sudoersStringParameter contained mailsub badpass_message timestampdir timestampowner passprompt runas_default syslog_goodpri syslog_badpri editor logfile syslog mailerpath mailerflags mailto exempt_group verifypw listpw nextgroup=sudoersStringParameterEquals skipwhite skipnl
syn keyword sudoersListParameter contained env_check env_delete env_keep nextgroup=sudoersListParameterEquals skipwhite skipnl
syn match sudoersParameterListComma contained ',' nextgroup=@sudoersParameter skipwhite skipnl
syn cluster sudoersParameter contains=sudoersBooleanParameter,sudoersIntegerParameterEquals,sudoersStringParameter,sudoersListParameter
syn match sudoersIntegerParameterEquals contained '[+-]\==' nextgroup=sudoersIntegerValue skipwhite skipnl
syn match sudoersStringParameterEquals contained '[+-]\==' nextgroup=sudoersStringValue skipwhite skipnl
syn match sudoersListParameterEquals contained '[+-]\==' nextgroup=sudoersListValue skipwhite skipnl
syn match sudoersIntegerValue contained '\d\+' nextgroup=sudoersParameterListComma skipwhite skipnl
syn match sudoersStringValue contained '[^[:space:],:=\\]*\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=sudoersParameterListComma skipwhite skipnl
syn region sudoersStringValue contained start=+"+ skip=+\\"+ end=+"+ nextgroup=sudoersParameterListComma skipwhite skipnl
syn match sudoersListValue contained '[^[:space:],:=\\]*\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=sudoersParameterListComma skipwhite skipnl
syn region sudoersListValue contained start=+"+ skip=+\\"+ end=+"+ nextgroup=sudoersParameterListComma skipwhite skipnl
" Special for specs
syn match sudoersPASSWD contained '\%(NO\)\=PASSWD:' nextgroup=@sudoersCmndInSpec skipwhite
" 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_sudoers_syn_inits")
if version < 508
let did_sudoers_syn_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
HiLink sudoersSpecEquals Operator
HiLink sudoersTodo Todo
HiLink sudoersComment Comment
HiLink sudoersAlias Keyword
HiLink sudoersUserAlias Identifier
HiLink sudoersUserNameInList String
HiLink sudoersUIDInList Number
HiLink sudoersGroupInList PreProc
HiLink sudoersUserNetgroupInList PreProc
HiLink sudoersUserAliasInList PreProc
HiLink sudoersUserName String
HiLink sudoersUID Number
HiLink sudoersGroup PreProc
HiLink sudoersUserNetgroup PreProc
HiLink sudoersUserAliasRef PreProc
HiLink sudoersUserNameInSpec String
HiLink sudoersUIDInSpec Number
HiLink sudoersGroupInSpec PreProc
HiLink sudoersUserNetgroupInSpec PreProc
HiLink sudoersUserAliasInSpec PreProc
HiLink sudoersUserNameInRunas String
HiLink sudoersUIDInRunas Number
HiLink sudoersGroupInRunas PreProc
HiLink sudoersUserNetgroupInRunas PreProc
HiLink sudoersUserAliasInRunas PreProc
HiLink sudoersHostAlias Identifier
HiLink sudoersHostNameInList String
HiLink sudoersIPAddrInList Number
HiLink sudoersNetworkInList Number
HiLink sudoersHostNetgroupInList PreProc
HiLink sudoersHostAliasInList PreProc
HiLink sudoersHostName String
HiLink sudoersIPAddr Number
HiLink sudoersNetwork Number
HiLink sudoersHostNetgroup PreProc
HiLink sudoersHostAliasRef PreProc
HiLink sudoersHostNameInSpec String
HiLink sudoersIPAddrInSpec Number
HiLink sudoersNetworkInSpec Number
HiLink sudoersHostNetgroupInSpec PreProc
HiLink sudoersHostAliasInSpec PreProc
HiLink sudoersCmndAlias Identifier
HiLink sudoersCmndNameInList String
HiLink sudoersCmndAliasInList PreProc
HiLink sudoersCmndNameInSpec String
HiLink sudoersCmndAliasInSpec PreProc
HiLink sudoersUserAliasEquals Operator
HiLink sudoersUserListComma Delimiter
HiLink sudoersUserListColon Delimiter
HiLink sudoersUserSpecComma Delimiter
HiLink sudoersUserRunasBegin Delimiter
HiLink sudoersUserRunasComma Delimiter
HiLink sudoersUserRunasEnd Delimiter
HiLink sudoersHostAliasEquals Operator
HiLink sudoersHostListComma Delimiter
HiLink sudoersHostListColon Delimiter
HiLink sudoersHostSpecComma Delimiter
HiLink sudoersCmndAliasEquals Operator
HiLink sudoersCmndListComma Delimiter
HiLink sudoersCmndListColon Delimiter
HiLink sudoersCmndSpecComma Delimiter
HiLink sudoersCmndSpecColon Delimiter
HiLink sudoersUserNegationInList Operator
HiLink sudoersHostNegationInList Operator
HiLink sudoersCmndNegationInList Operator
HiLink sudoersUserNegation Operator
HiLink sudoersHostNegation Operator
HiLink sudoersUserNegationInSpec Operator
HiLink sudoersHostNegationInSpec Operator
HiLink sudoersUserNegationInRunas Operator
HiLink sudoersCmndNegationInSpec Operator
HiLink sudoersCommandArgs String
HiLink sudoersCommandEmpty Special
HiLink sudoersDefaultEntry Keyword
HiLink sudoersDefaultTypeAt Special
HiLink sudoersDefaultTypeColon Special
HiLink sudoersDefaultTypeGreaterThan Special
HiLink sudoersBooleanParameter Identifier
HiLink sudoersIntegerParameter Identifier
HiLink sudoersStringParameter Identifier
HiLink sudoersListParameter Identifier
HiLink sudoersParameterListComma Delimiter
HiLink sudoersIntegerParameterEquals Operator
HiLink sudoersStringParameterEquals Operator
HiLink sudoersListParameterEquals Operator
HiLink sudoersIntegerValue Number
HiLink sudoersStringValue String
HiLink sudoersListValue String
HiLink sudoersPASSWD Special
delcommand HiLink
endif
let b:current_syntax = "sudoers"
" vim: set sts=2 sw=2: