updated for version 7.0023
This commit is contained in:
@ -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\|$\)\)\|[\\"'<>]\|>\|<\|"\)+<A HREF="\1">\1</A>\2+ge
|
||||
%s+\(https\=://\S\{-}\)\(\([.,;:}]\=\(\s\|$\)\)\|[\\"'<>]\|>\|<\|"\)+<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
|
||||
|
||||
@ -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
55
runtime/syntax/netrc.vim
Normal 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
290
runtime/syntax/sudoers.vim
Normal 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:
|
||||
Reference in New Issue
Block a user