X-Git-Url: http://git.iain.cx/?a=blobdiff_plain;f=.vim%2Fsyntax%2Fcfengine.vim;fp=.vim%2Fsyntax%2Fcfengine.vim;h=e039f1879dac0713cf89feb63d3d8e024ec55bd1;hb=12b7f6881bc31f052be84945ea77200c49044fde;hp=0000000000000000000000000000000000000000;hpb=7a7de95e164f94ef3a9ab1c9adce88c5c6b8dd8f;p=profile.git diff --git a/.vim/syntax/cfengine.vim b/.vim/syntax/cfengine.vim new file mode 100644 index 0000000..e039f18 --- /dev/null +++ b/.vim/syntax/cfengine.vim @@ -0,0 +1,163 @@ +" cfengine syntax file +" Filename: cfengine.vim +" Language: cfengine configuration file +" Maintainer: Lance Albertson +" Orginal Author: Marcus Spading +" URL: http://dev.gentoo.org/~ramereth/vim/syntax/cfengine.vim +" * The original url appears to be dead +" Last Change: 2005 Jan 4 +" Version: 0.1 +" * Previous author's last version was 0.2 +" +" cfengine action +" action-type: +" compound-class:: +" declaration + +" 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 + +syn case ignore + +syn match cfengineCompoundClass "^\s*.*::\s*$" +"syn match cfengineAssignmentOperator "=" +syn match cfengineLinkOperator "[-+]>[!]\{0,1}" +syn match cfengineVariable "$(.\{-})" +syn match cfengineVariable "${.\{-}}" +syn region cfengineVariableDef matchgroup=cfengineVariable start="(\s*" end="\s*)" contains=cfengineKeyword,cfengineHelpers,cfengineActions,cfengineIPAddress,cfengineVariable +syn match cfengineNumber "\<\d\+\|inf\>" +syn match cfengineIPAddress "\<\d\{1,3}.\d\{1,3}.\d\{1,3}.\d\{1,3}\>" +syn region cfengineBlock start="{" end="}" contains=cfengineBlock,cfengineEditAction,cfengineString,cfengineVariable +syn region cfengineString start=+"+ skip=+\\\\\|\\"+ end=+"+ oneline contains=cfengineVariable containedin=cfengineBlock +syn region cfengineString start=+'+ skip=+\\\\\|\\'+ end=+'+ oneline contains=cfengineVariable containedin=cfengineBlock + +syn keyword cfengineBoolean on off true false + +syn keyword cfengineKeyword access actionsequence addclasses addinstallable binarypaddingchar +syn keyword cfengineKeyword checksumdatabase checksumupdates childlibpath copylinks defaultcopytype +syn keyword cfengineKeyword deletenonuserfiles deletenonownerfiles deletenonusermail deletenonownermail +syn keyword cfengineKeyword domain dryrun editbinaryfilesize editfilesize emptyresolvconf exclamation +syn keyword cfengineKeyword excludecopy excludelinks expireafter homepattern ifelapsed inform interfacename +syn keyword cfengineKeyword fileextensions linkcopies logdirectory logtidyhomefiles moduledirectory +syn keyword cfengineKeyword mountpattern netmask nonalphanumfiles nfstype repchar repository schedule +syn keyword cfengineKeyword secureinputs sensiblecount sensiblesize showactions site faculty splaytime split +syn keyword cfengineKeyword smtpserver spooldirectories suspiciousnames sysadm syslog timezone timeout +syn keyword cfengineKeyword verbose warnings warnnonuserfiles warnnonownerfiles warnnonusermail warnnonownermail +" cfservd keywords +syn case match +syn keyword cfengineKeyword AllowConnectionsFrom AllowMultipleConnectionsFrom AllowUsers AutoExecCommand +syn keyword cfengineKeyword AutoExecInterval cfrunCommand DenyBadClocks DenyConnectionsFrom IfElapsed +syn keyword cfengineKeyword LogAllConnections MaxConnections TrustKeysFrom DynamicAddresses +syn case ignore + +syn keyword cfengineActions addmounts checktimezone control copy directories disable editfiles groups files links mailcheck module import admit +syn keyword cfengineActions mountall mountinfo netconfig required resolve shellcommands tidy unmount processes + +syn region cfengineHelpers matchgroup=cfengineKeyword start="FileExists(" end=")" contained oneline +syn region cfengineHelpers matchgroup=cfengineKeyword start="IsDir(" end=")" contained oneline +syn region cfengineHelpers matchgroup=cfengineKeyword start="IsNewerThan(" end=")" contained oneline +syn region cfengineHelpers matchgroup=cfengineKeyword start="AccessedBefore(" end=")" contained oneline +syn region cfengineHelpers matchgroup=cfengineKeyword start="ChangedBefore(" end=")" contained oneline +syn region cfengineHelpers matchgroup=cfengineKeyword start="IPRange(" end=")" contained oneline +syn region cfengineHelpers matchgroup=cfengineKeyword start="IsLink(" end=")" contained oneline +syn region cfengineHelpers matchgroup=cfengineKeyword start="IsPlain(" end=")" contained oneline +syn region cfengineHelpers matchgroup=cfengineKeyword start="ReturnsZero(" end=")" contained oneline + +syn keyword cfengineOption age acl dest m[ode] o[wner] g[roup] act[ion] silent fix preserve keep backup repository stealth timestamps +syn keyword cfengineOption chroot chdir symlink incl[ude] excl[ude] ignore filter r[ecurse] type linktype typecheck define elsedefine +syn keyword cfengineOption force forcedirs forceipv4 size server trustkey encrypt verify oldserver purge syslog inform +syn keyword cfengineOption pat[tern] rotate flags links stop traverse tidy checksum matches dirlinks rmdirs deletedir deletefstab + +syn keyword cfengineOptionVal warnall warndirs warnplain +syn keyword cfengineOptionVal fixall fixdirs fixplain +syn keyword cfengineOptionVal touch linkchildren create compress alert +syn keyword cfengineOptionVal stop traverse tidy md5 sha inf +syn keyword cfengineOptionVal hard relative absolute checksum ctime kill force +syn keyword cfengineOptionVal true false dump signal do warn bymatch +syn keyword cfengineOptionVal empty truncate all sub +syn keyword cfengineOptionVal ctime mtime atime + +syn keyword cfengineSigVal hup int quit ill trap iot emt fpe kill bus segv sys pipe alrm term urg stop +syn keyword cfengineSigVal tstp cont chld gttin gttou io xcpu xfsz vtalrm prof winch lost usr1 usr2 + +syn keyword cfengineEditAction AbortAtLineMatching Append contained +syn keyword cfengineEditAction AppendIfNoSuchLine AppendIfNoLineMatching AppendToLineIfNotContains contained +syn keyword cfengineEditAction AutoCreate AutomountDirectResources Backup contained +syn keyword cfengineEditAction BeginGroupIfDefined BeginGroupIfNotDefined contained +syn keyword cfengineEditAction BeginGroupIfFileExists BeginGroupIfFileIsNewer contained +syn keyword cfengineEditAction BeginGroupIfNoLineContaining BeginGroupIfNoLineMatching BeginGroupIfNoMatch BeginGroupIfNoSuchLine contained +syn keyword cfengineEditAction BreakIfLineMatches CatchAbort contained +syn keyword cfengineEditAction CommentLinesMatching CommentLinesStarting CommentNLines CommentToLineMatching contained +syn keyword cfengineEditAction DefineClasses DeleteLinesAfterThisMatching DeleteLinesContaining DeleteLinesMatching contained +syn keyword cfengineEditAction DeleteLinesStarting DeleteNLines DeleteToLineMatching contained +syn keyword cfengineEditAction EditMode EmptyEntireFilePlease ElseDefineClasses EndGroup EndLoop contained +syn keyword cfengineEditAction Filter FixEndOfLines ForEachLineIn GotoLastLine contained +syn keyword cfengineEditAction HashCommentLinesContaining HashCommentLinesMatching HashCommentLinesStarting contained +syn keyword cfengineEditAction IncrementPointer Inform InsertFile InsertLine LocateLineMatching contained +syn keyword cfengineEditAction PercentCommentLinesContaining PercentCommentLinesMatching PercentCommentLinesStarting contained +syn keyword cfengineEditAction Prepend PrependIfNoLineMatching PrependifNoSuchLine contained +syn keyword cfengineEditAction Recurse ReplaceLineWith ReplaceAll ReplaceLinesMatchingField Repository contained +syn keyword cfengineEditAction ResetSearch RunScript RunScriptIfLineMatching RunScriptIfNoLineMatching contained +syn keyword cfengineEditAction SetCommentStart SetCommentEnd SetLine SetScript contained +syn keyword cfengineEditAction SlashCommentLinesContaining SlashCommentLinesMatching SlashCommentLinesStarting contained +syn keyword cfengineEditAction SplitOn Syslog Umask UnCommentLinesContaining UnCommentLinesMatching UnCommentNLines contained +syn keyword cfengineEditAction UnsetAbort UseShell WarnIfLineContaining WarnIfLineMatching WarnIfLineStarting contained +syn keyword cfengineEditAction WarnIfLineNoLineContaining WarnIfNoLineMatching WarnIfNoLineStarting WarnIfNoSuchLine contained +syn keyword cfengineEditAction ReplaceAll WarnIfContainsString WarnIfContainsFile contained + +syn keyword cfengineFilter Owner Atime Ctime Mtime FromAtime FromCtime FromMtime ToAtime ToCtime ToMtime contained +syn keyword cfengineFilter Type reg link dir socket fifo door char block contained +syn keyword cfengineFilter ExecRegex NameRegex IsSymLinkTo ExecProgram Result contained +syn keyword cfengineFilter PID PPID PGID RSize VSize Status Command FromTTime ToTTime FromSTime ToSTime TTY contained +syn keyword cfengineFilter Priority Threads contained + +syn keyword cfengineActionType control: files: acl: binservers: broadcast: control: copy: defaultroute: +syn keyword cfengineActionType disks: directories: disable: editfiles: files: filters: groups: classes: +syn keyword cfengineActionType homeservers: ignore: import: interfaces: links: mailserver: miscmounts: +syn keyword cfengineActionType mountables: processes: required: resolve: shellcommands: tidy: unmount: + +" comments last overriding everything else +syn match cfengineComment "\s*#.*$" contains=cfengineTodo +syn keyword cfengineTodo TODO NOTE FIXME XXX contained + +" 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_cfengine_syn_inits") + if version < 508 + let did_cfengine_syn_inits = 1 + command -nargs=+ HiLink hi link + else + command -nargs=+ HiLink hi def link + endif + + "HiLink cfengineAssignmentOperator String + HiLink cfengineLinkOperator String + HiLink cfengineVariable Special + HiLink cfengineVariableDef NONE + HiLink cfengineBoolean Boolean + HiLink cfengineEditAction Identifier + HiLink cfengineFilter Identifier + HiLink cfengineKeyword Statement + HiLink cfengineOption Statement + HiLink cfengineCompoundClass Type + HiLink cfengineActionType PreProc + HiLink cfengineActions PreProc + HiLink cfengineComment Comment + HiLink cfengineNumber Number + HiLink cfengineIPAddress Number + HiLink cfengineQuota Number + HiLink cfengineString String + HiLink cfengineTodo Todo + HiLink cfengineOptionVal Constant + HiLink cfengineSigVal Constant + + delcommand HiLink +endif + +let b:current_syntax = "cfengine"