blob: e73045e4c82190fb9e3373b38c4e6c767eef0abe [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
Bram Moolenaar071d4272004-06-13 20:20:40 +00002" Language: Apache configuration (httpd.conf, srm.conf, access.conf, .htaccess)
Bram Moolenaarbaca7f72013-09-22 14:42:24 +02003" Maintainer: David Necas (Yeti) <yeti@physics.muni.cz>
Bram Moolenaar7fc904b2006-04-13 20:37:35 +00004" License: This file can be redistribued and/or modified under the same terms
5" as Vim itself.
Bram Moolenaarce001a32022-04-27 15:25:03 +01006" Last Change: 2022 Apr 25
Bram Moolenaar756ec0f2007-05-05 17:59:48 +00007" Notes: Last synced with apache-2.2.3, version 1.x is no longer supported
Bram Moolenaar7fc904b2006-04-13 20:37:35 +00008" TODO: see particular FIXME's scattered through the file
9" make it really linewise?
10" + add `display' where appropriate
Bram Moolenaar071d4272004-06-13 20:20:40 +000011
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020012" quit when a syntax file was already loaded
13if exists("b:current_syntax")
14 finish
Bram Moolenaar071d4272004-06-13 20:20:40 +000015endif
16
Bram Moolenaar071d4272004-06-13 20:20:40 +000017syn case ignore
18
19" Base constructs
20syn match apacheComment "^\s*#.*$" contains=apacheFixme
Bram Moolenaar7fc904b2006-04-13 20:37:35 +000021syn match apacheUserID "#-\?\d\+\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +000022syn case match
23syn keyword apacheFixme FIXME TODO XXX NOT
24syn case ignore
25syn match apacheAnything "\s[^>]*" contained
26syn match apacheError "\w\+" contained
Bram Moolenaarbaca7f72013-09-22 14:42:24 +020027syn region apacheString start=+"+ end=+"+ skip=+\\\\\|\\\"+ oneline
28
29" Following is to prevent escaped quotes from being parsed as strings.
30syn match apacheSkipQuote +\\"+
Bram Moolenaar071d4272004-06-13 20:20:40 +000031
32" Core and mpm
33syn keyword apacheDeclaration AccessFileName AddDefaultCharset AllowOverride AuthName AuthType ContentDigest DefaultType DocumentRoot ErrorDocument ErrorLog HostNameLookups IdentityCheck Include KeepAlive KeepAliveTimeout LimitRequestBody LimitRequestFields LimitRequestFieldsize LimitRequestLine LogLevel MaxKeepAliveRequests NameVirtualHost Options Require RLimitCPU RLimitMEM RLimitNPROC Satisfy ScriptInterpreterSource ServerAdmin ServerAlias ServerName ServerPath ServerRoot ServerSignature ServerTokens TimeOut UseCanonicalName
Bram Moolenaar7fc904b2006-04-13 20:37:35 +000034syn keyword apacheDeclaration AcceptPathInfo CGIMapExtension EnableMMAP FileETag ForceType LimitXMLRequestBody SetHandler SetInputFilter SetOutputFilter
35syn keyword apacheDeclaration AcceptFilter AllowEncodedSlashes EnableSendfile LimitInternalRecursion TraceEnable
36syn keyword apacheOption INode MTime Size
Bram Moolenaar071d4272004-06-13 20:20:40 +000037syn keyword apacheOption Any All On Off Double EMail DNS Min Minimal OS Prod ProductOnly Full
38syn keyword apacheOption emerg alert crit error warn notice info debug
39syn keyword apacheOption registry script inetd standalone
40syn match apacheOptionOption "[+-]\?\<\(ExecCGI\|FollowSymLinks\|Includes\|IncludesNoExec\|Indexes\|MultiViews\|SymLinksIfOwnerMatch\)\>"
Bram Moolenaar7fc904b2006-04-13 20:37:35 +000041syn keyword apacheOption user group
42syn match apacheOption "\<valid-user\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +000043syn case match
44syn keyword apacheMethodOption GET POST PUT DELETE CONNECT OPTIONS TRACE PATCH PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK contained
Bram Moolenaar4f4d51a2020-10-11 13:57:40 +020045" Added as suggested by Mikko Koivunalho
46syn keyword apacheMethodOption BASELINE-CONTROL CHECKIN CHECKOUT LABEL MERGE MKACTIVITY MKWORKSPACE REPORT UNCHECKOUT UPDATE VERSION-CONTROL contained
Bram Moolenaar071d4272004-06-13 20:20:40 +000047syn case ignore
Bram Moolenaar7fc904b2006-04-13 20:37:35 +000048syn match apacheSection "<\/\=\(Directory\|DirectoryMatch\|Files\|FilesMatch\|IfModule\|IfDefine\|Location\|LocationMatch\|VirtualHost\)[^>]*>" contains=apacheAnything
Bram Moolenaarce001a32022-04-27 15:25:03 +010049syn match apacheSection "<\/\=\(RequireAll\|RequireAny\|RequireNone\)>" contains=apacheAnything
Bram Moolenaar7fc904b2006-04-13 20:37:35 +000050syn match apacheLimitSection "<\/\=\(Limit\|LimitExcept\)[^>]*>" contains=apacheLimitSectionKeyword,apacheMethodOption,apacheError
Bram Moolenaar071d4272004-06-13 20:20:40 +000051syn keyword apacheLimitSectionKeyword Limit LimitExcept contained
52syn match apacheAuthType "AuthType\s.*$" contains=apacheAuthTypeValue
53syn keyword apacheAuthTypeValue Basic Digest
54syn match apacheAllowOverride "AllowOverride\s.*$" contains=apacheAllowOverrideValue,apacheComment
55syn keyword apacheAllowOverrideValue AuthConfig FileInfo Indexes Limit Options contained
Bram Moolenaar7fc904b2006-04-13 20:37:35 +000056syn keyword apacheDeclaration CoreDumpDirectory EnableExceptionHook GracefulShutdownTimeout Group Listen ListenBacklog LockFile MaxClients MaxMemFree MaxRequestsPerChild MaxSpareThreads MaxSpareThreadsPerChild MinSpareThreads NumServers PidFile ScoreBoardFile SendBufferSize ServerLimit StartServers StartThreads ThreadLimit ThreadsPerChild User
57syn keyword apacheDeclaration MaxThreads ThreadStackSize
58syn keyword apacheDeclaration Win32DisableAcceptEx
59syn keyword apacheDeclaration AssignUserId ChildPerUserId
60syn keyword apacheDeclaration AcceptMutex MaxSpareServers MinSpareServers
61syn keyword apacheOption flock fcntl sysvsem pthread
Bram Moolenaar071d4272004-06-13 20:20:40 +000062
63" Modules
Bram Moolenaar7fc904b2006-04-13 20:37:35 +000064syn keyword apacheDeclaration Action Script
65syn keyword apacheDeclaration Alias AliasMatch Redirect RedirectMatch RedirectTemp RedirectPermanent ScriptAlias ScriptAliasMatch
66syn keyword apacheOption permanent temp seeother gone
67syn keyword apacheDeclaration AuthAuthoritative AuthGroupFile AuthUserFile
68syn keyword apacheDeclaration AuthBasicAuthoritative AuthBasicProvider
69syn keyword apacheDeclaration AuthDigestAlgorithm AuthDigestDomain AuthDigestNcCheck AuthDigestNonceFormat AuthDigestNonceLifetime AuthDigestProvider AuthDigestQop AuthDigestShmemSize
70syn keyword apacheOption none auth auth-int MD5 MD5-sess
71syn match apacheSection "<\/\=\(<AuthnProviderAlias\)[^>]*>" contains=apacheAnything
72syn keyword apacheDeclaration Anonymous Anonymous_Authoritative Anonymous_LogEmail Anonymous_MustGiveEmail Anonymous_NoUserID Anonymous_VerifyEmail
73syn keyword apacheDeclaration AuthDBDUserPWQuery AuthDBDUserRealmQuery
74syn keyword apacheDeclaration AuthDBMGroupFile AuthDBMAuthoritative
75syn keyword apacheDeclaration AuthDBM TypeAuthDBMUserFile
76syn keyword apacheOption default SDBM GDBM NDBM DB
77syn keyword apacheDeclaration AuthDefaultAuthoritative
78syn keyword apacheDeclaration AuthUserFile
79syn keyword apacheDeclaration AuthLDAPBindON AuthLDAPEnabled AuthLDAPFrontPageHack AuthLDAPStartTLS
80syn keyword apacheDeclaration AuthLDAPBindDN AuthLDAPBindPassword AuthLDAPCharsetConfig AuthLDAPCompareDNOnServer AuthLDAPDereferenceAliases AuthLDAPGroupAttribute AuthLDAPGroupAttributeIsDN AuthLDAPRemoteUserIsDN AuthLDAPUrl AuthzLDAPAuthoritative
81syn keyword apacheOption always never searching finding
82syn keyword apacheOption ldap-user ldap-group ldap-dn ldap-attribute ldap-filter
83syn keyword apacheDeclaration AuthDBMGroupFile AuthzDBMAuthoritative AuthzDBMType
84syn keyword apacheDeclaration AuthzDefaultAuthoritative
85syn keyword apacheDeclaration AuthGroupFile AuthzGroupFileAuthoritative
Bram Moolenaar071d4272004-06-13 20:20:40 +000086syn match apacheAllowDeny "Allow\s\+from.*$" contains=apacheAllowDenyValue,apacheComment
87syn match apacheAllowDeny "Deny\s\+from.*$" contains=apacheAllowDenyValue,apacheComment
88syn keyword apacheAllowDenyValue All None contained
89syn match apacheOrder "^\s*Order\s.*$" contains=apacheOrderValue,apacheComment
90syn keyword apacheOrderValue Deny Allow contained
Bram Moolenaar7fc904b2006-04-13 20:37:35 +000091syn keyword apacheDeclaration AuthzOwnerAuthoritative
92syn keyword apacheDeclaration AuthzUserAuthoritative
Bram Moolenaar071d4272004-06-13 20:20:40 +000093syn keyword apacheDeclaration AddAlt AddAltByEncoding AddAltByType AddDescription AddIcon AddIconByEncoding AddIconByType DefaultIcon HeaderName IndexIgnore IndexOptions IndexOrderDefault ReadmeName
Bram Moolenaar7fc904b2006-04-13 20:37:35 +000094syn keyword apacheDeclaration IndexStyleSheet
Bram Moolenaar071d4272004-06-13 20:20:40 +000095syn keyword apacheOption DescriptionWidth FancyIndexing FoldersFirst IconHeight IconsAreLinks IconWidth NameWidth ScanHTMLTitles SuppressColumnSorting SuppressDescription SuppressHTMLPreamble SuppressLastModified SuppressSize TrackModified
96syn keyword apacheOption Ascending Descending Name Date Size Description
Bram Moolenaar756ec0f2007-05-05 17:59:48 +000097syn keyword apacheOption HTMLTable SuppressIcon SuppressRules VersionSort XHTML
Bram Moolenaar7fc904b2006-04-13 20:37:35 +000098syn keyword apacheOption IgnoreClient IgnoreCase ShowForbidden SuppresRules
99syn keyword apacheDeclaration CacheForceCompletion CacheMaxStreamingBuffer
100syn keyword apacheDeclaration CacheDefaultExpire CacheDisable CacheEnable CacheIgnoreCacheControl CacheIgnoreHeaders CacheIgnoreNoLastMod CacheLastModifiedFactor CacheMaxExpire CacheStoreNoStore CacheStorePrivate
Bram Moolenaar071d4272004-06-13 20:20:40 +0000101syn keyword apacheDeclaration MetaFiles MetaDir MetaSuffix
102syn keyword apacheDeclaration ScriptLog ScriptLogLength ScriptLogBuffer
Bram Moolenaar7fc904b2006-04-13 20:37:35 +0000103syn keyword apacheDeclaration ScriptStock
104syn keyword apacheDeclaration CharsetDefault CharsetOptions CharsetSourceEnc
105syn keyword apacheOption DebugLevel ImplicitAdd NoImplicitAdd
106syn keyword apacheDeclaration Dav DavDepthInfinity DavMinTimeout
107syn keyword apacheDeclaration DavLockDB
108syn keyword apacheDeclaration DavGenericLockDB
109syn keyword apacheDeclaration DBDExptime DBDKeep DBDMax DBDMin DBDParams DBDPersist DBDPrepareSQL DBDriver
110syn keyword apacheDeclaration DeflateCompressionLevel DeflateBufferSize DeflateFilterNote DeflateMemLevel DeflateWindowSize
111syn keyword apacheDeclaration DirectoryIndex DirectorySlash
112syn keyword apacheDeclaration CacheExpiryCheck CacheGcClean CacheGcDaily CacheGcInterval CacheGcMemUsage CacheGcUnused CacheSize CacheTimeMargin
113syn keyword apacheDeclaration CacheDirLength CacheDirLevels CacheMaxFileSize CacheMinFileSize CacheRoot
114syn keyword apacheDeclaration DumpIOInput DumpIOOutput
115syn keyword apacheDeclaration ProtocolEcho
Bram Moolenaar071d4272004-06-13 20:20:40 +0000116syn keyword apacheDeclaration PassEnv SetEnv UnsetEnv
117syn keyword apacheDeclaration Example
118syn keyword apacheDeclaration ExpiresActive ExpiresByType ExpiresDefault
Bram Moolenaar7fc904b2006-04-13 20:37:35 +0000119syn keyword apacheDeclaration ExtFilterDefine ExtFilterOptions
120syn keyword apacheOption PreservesContentLength DebugLevel LogStderr NoLogStderr
121syn match apacheOption "\<\(cmd\|mode\|intype\|outtype\|ftype\|disableenv\|enableenv\)\ze="
122syn keyword apacheDeclaration CacheFile MMapFile
123syn keyword apacheDeclaration FilterChain FilterDeclare FilterProtocol FilterProvider FilterTrace
Bram Moolenaar071d4272004-06-13 20:20:40 +0000124syn keyword apacheDeclaration Header
Bram Moolenaar7fc904b2006-04-13 20:37:35 +0000125syn keyword apacheDeclaration RequestHeader
Bram Moolenaar071d4272004-06-13 20:20:40 +0000126syn keyword apacheOption set unset append add
Bram Moolenaar7fc904b2006-04-13 20:37:35 +0000127syn keyword apacheDeclaration IdentityCheck IdentityCheckTimeout
Bram Moolenaar071d4272004-06-13 20:20:40 +0000128syn keyword apacheDeclaration ImapMenu ImapDefault ImapBase
129syn keyword apacheOption none formatted semiformatted unformatted
130syn keyword apacheOption nocontent referer error map
Bram Moolenaar7fc904b2006-04-13 20:37:35 +0000131syn keyword apacheDeclaration SSIEndTag SSIErrorMsg SSIStartTag SSITimeFormat SSIUndefinedEcho XBitHack
Bram Moolenaar071d4272004-06-13 20:20:40 +0000132syn keyword apacheOption on off full
133syn keyword apacheDeclaration AddModuleInfo
134syn keyword apacheDeclaration ISAPIReadAheadBuffer ISAPILogNotSupported ISAPIAppendLogToErrors ISAPIAppendLogToQuery
Bram Moolenaar7fc904b2006-04-13 20:37:35 +0000135syn keyword apacheDeclaration ISAPICacheFile ISAIPFakeAsync
136syn keyword apacheDeclaration LDAPCertDBPath
137syn keyword apacheDeclaration LDAPCacheEntries LDAPCacheTTL LDAPConnectionTimeout LDAPOpCacheEntries LDAPOpCacheTTL LDAPSharedCacheFile LDAPSharedCacheSize LDAPTrustedClientCert LDAPTrustedGlobalCert LDAPTrustedMode LDAPVerifyServerCert
138syn keyword apacheOption CA_DER CA_BASE64 CA_CERT7_DB CA_SECMOD CERT_DER CERT_BASE64 CERT_KEY3_DB CERT_NICKNAME CERT_PFX KEY_DER KEY_BASE64 KEY_PFX
139syn keyword apacheDeclaration BufferedLogs CookieLog CustomLog LogFormat TransferLog
140syn keyword apacheDeclaration ForensicLog
141syn keyword apacheDeclaration MCacheMaxObjectCount MCacheMaxObjectSize MCacheMaxStreamingBuffer MCacheMinObjectSize MCacheRemovalAlgorithm MCacheSize
Bram Moolenaar071d4272004-06-13 20:20:40 +0000142syn keyword apacheDeclaration AddCharset AddEncoding AddHandler AddLanguage AddType DefaultLanguage RemoveEncoding RemoveHandler RemoveType TypesConfig
Bram Moolenaar7fc904b2006-04-13 20:37:35 +0000143syn keyword apacheDeclaration AddInputFilter AddOutputFilter ModMimeUsePathInfo MultiviewsMatch RemoveInputFilter RemoveOutputFilter RemoveCharset
144syn keyword apacheOption NegotiatedOnly Filters Handlers
Bram Moolenaar071d4272004-06-13 20:20:40 +0000145syn keyword apacheDeclaration MimeMagicFile
146syn keyword apacheDeclaration MMapFile
Bram Moolenaar7fc904b2006-04-13 20:37:35 +0000147syn keyword apacheDeclaration CacheNegotiatedDocs LanguagePriority ForceLanguagePriority
148syn keyword apacheDeclaration NWSSLTrustedCerts NWSSLUpgradeable SecureListen
Bram Moolenaar071d4272004-06-13 20:20:40 +0000149syn keyword apacheDeclaration PerlModule PerlRequire PerlTaintCheck PerlWarn
150syn keyword apacheDeclaration PerlSetVar PerlSetEnv PerlPassEnv PerlSetupEnv
151syn keyword apacheDeclaration PerlInitHandler PerlPostReadRequestHandler PerlHeaderParserHandler
152syn keyword apacheDeclaration PerlTransHandler PerlAccessHandler PerlAuthenHandler PerlAuthzHandler
153syn keyword apacheDeclaration PerlTypeHandler PerlFixupHandler PerlHandler PerlLogHandler
154syn keyword apacheDeclaration PerlCleanupHandler PerlChildInitHandler PerlChildExitHandler
155syn keyword apacheDeclaration PerlRestartHandler PerlDispatchHandler
156syn keyword apacheDeclaration PerlFreshRestart PerlSendHeader
157syn keyword apacheDeclaration php_value php_flag php_admin_value php_admin_flag
Bram Moolenaar7fc904b2006-04-13 20:37:35 +0000158syn match apacheSection "<\/\=\(Proxy\|ProxyMatch\)[^>]*>" contains=apacheAnything
Bram Moolenaar08589172014-03-08 18:38:28 +0100159syn keyword apacheDeclaration AllowCONNECT NoProxy ProxyBadHeader ProxyBlock ProxyDomain ProxyErrorOverride ProxyIOBufferSize ProxyMaxForwards ProxyPass ProxyPassMatch ProxyPassReverse ProxyPassReverseCookieDomain ProxyPassReverseCookiePath ProxyPreserveHost ProxyReceiveBufferSize ProxyRemote ProxyRemoteMatch ProxyRequests ProxyTimeout ProxyVia
Bram Moolenaar7fc904b2006-04-13 20:37:35 +0000160syn keyword apacheDeclaration RewriteBase RewriteCond RewriteEngine RewriteLock RewriteLog RewriteLogLevel RewriteMap RewriteOptions RewriteRule
Bram Moolenaar071d4272004-06-13 20:20:40 +0000161syn keyword apacheOption inherit
Bram Moolenaar071d4272004-06-13 20:20:40 +0000162syn keyword apacheDeclaration BrowserMatch BrowserMatchNoCase SetEnvIf SetEnvIfNoCase
163syn keyword apacheDeclaration LoadFile LoadModule
Bram Moolenaar756ec0f2007-05-05 17:59:48 +0000164syn keyword apacheDeclaration CheckSpelling CheckCaseOnly
Bram Moolenaard47d5222018-12-09 20:43:55 +0100165syn keyword apacheDeclaration SSLCACertificateFile SSLCACertificatePath SSLCADNRequestFile SSLCADNRequestPath SSLCARevocationFile SSLCARevocationPath SSLCertificateChainFile SSLCertificateFile SSLCertificateKeyFile SSLCipherSuite SSLCompression SSLCryptoDevice SSLEngine SSLFIPS SSLHonorCipherOrder SSLInsecureRenegotiation SSLMutex SSLOptions SSLPassPhraseDialog SSLProtocol SSLProxyCACertificateFile SSLProxyCACertificatePath SSLProxyCARevocationFile SSLProxyCARevocationPath SSLProxyCheckPeerCN SSLProxyCheckPeerExpire SSLProxyCipherSuite SSLProxyEngine SSLProxyMachineCertificateChainFile SSLProxyMachineCertificateFile SSLProxyMachineCertificatePath SSLProxyProtocol SSLProxyVerify SSLProxyVerifyDepth SSLRandomSeed SSLRenegBufferSize SSLRequire SSLRequireSSL SSLSessionCache SSLSessionCacheTimeout SSLSessionTicketKeyFile SSLSessionTickets SSLStrictSNIVHostCheck SSLUserName SSLVerifyClient SSLVerifyDepth
Bram Moolenaar071d4272004-06-13 20:20:40 +0000166syn match apacheOption "[+-]\?\<\(StdEnvVars\|CompatEnvVars\|ExportCertData\|FakeBasicAuth\|StrictRequire\|OptRenegotiate\)\>"
167syn keyword apacheOption builtin sem
168syn match apacheOption "\(file\|exec\|egd\|dbm\|shm\):"
Bram Moolenaar7fc904b2006-04-13 20:37:35 +0000169syn match apacheOption "[+-]\?\<\(SSLv2\|SSLv3\|TLSv1\|kRSA\|kHDr\|kDHd\|kEDH\|aNULL\|aRSA\|aDSS\|aRH\|eNULL\|DES\|3DES\|RC2\|RC4\|IDEA\|MD5\|SHA1\|SHA\|EXP\|EXPORT40\|EXPORT56\|LOW\|MEDIUM\|HIGH\|RSA\|DH\|EDH\|ADH\|DSS\|NULL\)\>"
170syn keyword apacheOption optional optional_no_ca
Bram Moolenaar071d4272004-06-13 20:20:40 +0000171syn keyword apacheDeclaration ExtendedStatus
Bram Moolenaar7fc904b2006-04-13 20:37:35 +0000172syn keyword apacheDeclaration SuexecUserGroup
Bram Moolenaar071d4272004-06-13 20:20:40 +0000173syn keyword apacheDeclaration UserDir
Bram Moolenaar7fc904b2006-04-13 20:37:35 +0000174syn keyword apacheDeclaration CookieDomain CookieExpires CookieName CookieStyle CookieTracking
175syn keyword apacheOption Netscape Cookie Cookie2 RFC2109 RFC2965
176syn match apacheSection "<\/\=\(<IfVersion\)[^>]*>" contains=apacheAnything
Bram Moolenaar071d4272004-06-13 20:20:40 +0000177syn keyword apacheDeclaration VirtualDocumentRoot VirtualDocumentRootIP VirtualScriptAlias VirtualScriptAliasIP
178
179" Define the default highlighting
Bram Moolenaar071d4272004-06-13 20:20:40 +0000180
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200181hi def link apacheAllowOverride apacheDeclaration
182hi def link apacheAllowOverrideValue apacheOption
183hi def link apacheAuthType apacheDeclaration
184hi def link apacheAuthTypeValue apacheOption
185hi def link apacheOptionOption apacheOption
186hi def link apacheDeclaration Function
187hi def link apacheAnything apacheOption
188hi def link apacheOption Number
189hi def link apacheComment Comment
190hi def link apacheFixme Todo
191hi def link apacheLimitSectionKeyword apacheLimitSection
192hi def link apacheLimitSection apacheSection
193hi def link apacheSection Label
194hi def link apacheMethodOption Type
195hi def link apacheAllowDeny Include
196hi def link apacheAllowDenyValue Identifier
197hi def link apacheOrder Special
198hi def link apacheOrderValue String
199hi def link apacheString String
200hi def link apacheError Error
201hi def link apacheUserID Number
Bram Moolenaar071d4272004-06-13 20:20:40 +0000202
Bram Moolenaar071d4272004-06-13 20:20:40 +0000203
204let b:current_syntax = "apache"