[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/apache-mode 7e79a66 01/23: initial import
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/apache-mode 7e79a66 01/23: initial import |
Date: |
Sun, 29 Aug 2021 10:57:33 -0400 (EDT) |
branch: elpa/apache-mode
commit 7e79a6602da77b5c3a11dab93d46fef26abc860d
Author: anybody <anybody@emacswiki.org>
Commit: Jonas Bernoulli <jonas@bernoul.li>
initial import
---
apache-mode.el | 615 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 615 insertions(+)
diff --git a/apache-mode.el b/apache-mode.el
new file mode 100644
index 0000000..9b94992
--- /dev/null
+++ b/apache-mode.el
@@ -0,0 +1,615 @@
+;;; apache-mode.el --- major mode for editing Apache configuration files
+
+;; Copyright (c) 2004, 2005 Karl Chen <quarl@nospam.quarl.org>
+;; Copyright (c) 1999 Jonathan Marten <jonathan.marten@uk.sun.com>
+
+;; Author: Karl Chen <quarl@nospam.quarl.org>
+
+;; Keywords: languages, faces
+;; Last edit: 2005-01-06
+;; Version: 2.0 $Id: apache-mode.el 8264 2005-06-29 23:34:41Z quarl $
+
+;; apache-mode.el is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by the Free
+;; Software Foundation; either version 2, or (at your option) any later
+;; version.
+;;
+;; It is distributed in the hope that it will be useful, but WITHOUT ANY
+;; WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+;; FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+;; details.
+;;
+;; You should have received a copy of the GNU General Public License along
+;; with your copy of Emacs; see the file COPYING. If not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; Commentary:
+;;
+;; (autoload 'apache-mode "apache-mode" nil t)
+;; (add-to-list 'auto-mode-alist '("\\.htaccess\\'" . apache-mode))
+;; (add-to-list 'auto-mode-alist '("httpd\\.conf\\'" . apache-mode))
+;; (add-to-list 'auto-mode-alist '("srm\\.conf\\'" . apache-mode))
+;; (add-to-list 'auto-mode-alist '("access\\.conf\\'" . apache-mode))
+;; (add-to-list 'auto-mode-alist '("sites-\\(available\\|enabled\\)/" .
apache-mode))
+;;
+
+;;; History:
+
+;; 1999-10 Jonathan Marten <jonathan.marten@uk.sun.com>
+;; initial version
+
+;; 2004-09-12 Karl Chen <quarl@nospam.quarl.org>
+;; rewrote pretty much everything using define-derived-mode; added support
+;; for Apache 2.x; fixed highlighting in GNU Emacs; created indentation
+;; function
+;;
+;; 2005-06-29 Kumar Appaiah <akumar_NOSPAM@ee.iitm.ac.in>
+;; use syntax table instead of font-lock-keywords to highlight comments.
+
+;;; Code:
+
+;; Requires
+(require 'regexp-opt)
+
+(defvar apache-indent-level 4
+ "*Number of spaces to indent per level")
+
+(defvar apache-mode-syntax-table
+ (let ((table (make-syntax-table)))
+ (modify-syntax-entry ?_ "_" table)
+ (modify-syntax-entry ?- "_" table)
+ (modify-syntax-entry ?( "()" table)
+ (modify-syntax-entry ?) ")(" table)
+ (modify-syntax-entry ?< "(>" table)
+ (modify-syntax-entry ?> ")<" table)
+ (modify-syntax-entry ?\" "\"" table)
+ (modify-syntax-entry ?, "." table)
+ (modify-syntax-entry ?# "<" table)
+ (modify-syntax-entry ?\n ">#" table)
+ table))
+
+;;;###autoload
+(define-derived-mode apache-mode fundamental-mode "Apache"
+ "Major mode for editing Apache configuration files."
+
+ (set (make-local-variable 'comment-start) "# ")
+ (set (make-local-variable 'comment-start-skip) "#\\W*")
+ (set (make-local-variable 'comment-column) 48)
+
+ (set (make-local-variable 'indent-line-function) 'apache-indent-line)
+
+ (set (make-local-variable 'font-lock-defaults)
+ '(apache-font-lock-keywords nil t
+ ((?_ . "w")
+ (?- . "w"))
+ beginning-of-line)))
+
+;; Font lock
+(defconst apache-font-lock-keywords
+ (purecopy
+ (list
+
+ ;; see syntax table for comment highlighting
+
+ ;; (list "^[ \t]*#.*" 0 'font-lock-comment-face t)
+
+ (list (concat ; sections
+ "^[ \t]*</?"
+ (regexp-opt '(
+
+ "Directory"
+ "DirectoryMatch"
+ "Files"
+ "FilesMatch"
+ "IfDefine"
+ "IfModule"
+ "Limit"
+ "LimitExcept"
+ "Location"
+ "LocationMatch"
+ "Proxy"
+ "ProxyMatch"
+ "VirtualHost"
+
+ ) 'words)
+ ".*?>")
+ 1 'font-lock-function-name-face)
+
+ (list (concat ; directives
+ "^[ \t]*"
+ (regexp-opt '
+ (
+
+ "AcceptMutex"
+ "AcceptPathInfo"
+ "AccessConfig"
+ "AccessFileName"
+ "Action"
+ "AddAlt"
+ "AddAltByEncoding"
+ "AddAltByType"
+ "AddCharset"
+ "AddDefaultCharset"
+ "AddDescription"
+ "AddEncoding"
+ "AddHandler"
+ "AddIcon"
+ "AddIconByEncoding"
+ "AddIconByType"
+ "AddInputFilter"
+ "AddLanguage"
+ "AddModule"
+ "AddModuleInfo"
+ "AddOutputFilter"
+ "AddOutputFilterByType"
+ "AddType"
+ "AgentLog"
+ "Alias"
+ "AliasMatch"
+ "Allow from"
+ "Allow"
+ "AllowCONNECT"
+ "AllowEncodedSlashes"
+ "AllowOverride"
+ "Anonymous"
+ "Anonymous_Authoritative"
+ "Anonymous_LogEmail"
+ "Anonymous_MustGiveEmail"
+ "Anonymous_NoUserID"
+ "Anonymous_VerifyEmail"
+ "AssignUserID"
+ "AuthAuthoritative"
+ "AuthDBAuthoritative"
+ "AuthDBGroupFile"
+ "AuthDBMAuthoritative"
+ "AuthDBMGroupFile"
+ "AuthDBMType"
+ "AuthDBMUserFile"
+ "AuthDBUserFile"
+ "AuthDigestAlgorithm"
+ "AuthDigestDomain"
+ "AuthDigestFile"
+ "AuthDigestGroupFile"
+ "AuthDigestNcCheck"
+ "AuthDigestNonceFormat"
+ "AuthDigestNonceLifetime"
+ "AuthDigestQop"
+ "AuthDigestShmemSize"
+ "AuthGroupFile"
+ "AuthLDAPAuthoritative"
+ "AuthLDAPBindDN"
+ "AuthLDAPBindPassword"
+ "AuthLDAPCharsetConfig"
+ "AuthLDAPCompareDNOnServer"
+ "AuthLDAPDereferenceAliases"
+ "AuthLDAPEnabled"
+ "AuthLDAPFrontPageHack"
+ "AuthLDAPGroupAttribute"
+ "AuthLDAPGroupAttributeIsDN"
+ "AuthLDAPRemoteUserIsDN"
+ "AuthLDAPUrl"
+ "AuthName"
+ "AuthType"
+ "AuthUserFile"
+ "BS2000Account"
+ "BindAddress"
+ "BrowserMatch"
+ "BrowserMatchNoCase"
+ "CGIMapExtension"
+ "CacheDefaultExpire"
+ "CacheDirLength"
+ "CacheDirLevels"
+ "CacheDisable"
+ "CacheEnable"
+ "CacheExpiryCheck"
+ "CacheFile"
+ "CacheForceCompletion"
+ "CacheGcClean"
+ "CacheGcDaily"
+ "CacheGcInterval"
+ "CacheGcMemUsage"
+ "CacheGcUnused"
+ "CacheIgnoreCacheControl"
+ "CacheIgnoreNoLastMod"
+ "CacheLastModifiedFactor"
+ "CacheMaxExpire"
+ "CacheMaxFileSize"
+ "CacheMinFileSize"
+ "CacheNegotiatedDocs"
+ "CacheRoot"
+ "CacheSize"
+ "CacheTimeMargin"
+ "CharsetDefault"
+ "CharsetOptions"
+ "CharsetSourceEnc"
+ "CheckSpelling"
+ "ChildPerUserID"
+ "ClearModuleList"
+ "ContentDigest"
+ "CookieDomain"
+ "CookieExpires"
+ "CookieLog"
+ "CookieName"
+ "CookieStyle"
+ "CookieTracking"
+ "CoreDumpDirectory"
+ "CustomLog"
+ "Dav"
+ "DavDepthInfinity"
+ "DavLockDB"
+ "DavMinTimeout"
+ "DefaultIcon"
+ "DefaultLanguage"
+ "DefaultMode"
+ "DefaultType"
+ "DeflateBufferSize"
+ "DeflateCompressionLevel"
+ "DeflateFilterNote"
+ "DeflateMemLevel"
+ "DeflateWindowSize"
+ "Deny"
+ "DirectoryIndex"
+ "DirectorySlash"
+ "DocTitle"
+ "DocTrailer"
+ "DocumentRoot"
+ "EnableExceptionHook"
+ "EnableMMAP"
+ "EnableSendfile"
+ "ErrorDocument"
+ "ErrorLog"
+ "Example"
+ "ExpiresActive"
+ "ExpiresByType"
+ "ExpiresDefault"
+ "ExtFilterDefine"
+ "ExtFilterOptions"
+ "ExtendedStatus"
+ "FancyIndexing"
+ "FileETag"
+ "ForceLanguagePriority"
+ "ForceType"
+ "ForensicLog"
+ "Group"
+ "HTMLDir"
+ "HTTPLogFile"
+ "HeadPrefix"
+ "HeadSuffix"
+ "Header"
+ "HeaderName"
+ "HideSys"
+ "HideURL"
+ "HostNameLookups"
+ "HostnameLookups"
+ "ISAPIAppendLogToErrors"
+ "ISAPIAppendLogToQuery"
+ "ISAPICacheFile"
+ "ISAPIFakeAsync"
+ "ISAPILogNotSupported"
+ "ISAPIReadAheadBuffer"
+ "IdentityCheck"
+ "ImapBase"
+ "ImapDefault"
+ "ImapMenu"
+ "Include"
+ "IndexIgnore"
+ "IndexOptions"
+ "IndexOrderDefault"
+ "KeepAlive"
+ "KeepAliveTimeout"
+ "LDAPCacheEntries"
+ "LDAPCacheTTL"
+ "LDAPOpCacheEntries"
+ "LDAPOpCacheTTL"
+ "LDAPSharedCacheFile"
+ "LDAPSharedCacheSize"
+ "LDAPTrustedCA"
+ "LDAPTrustedCAType"
+ "LanguagePriority"
+ "LastURLs"
+ "LimitInternalRecursion"
+ "LimitRequestBody"
+ "LimitRequestFields"
+ "LimitRequestFieldsize"
+ "LimitRequestLine"
+ "LimitXMLRequestBody"
+ "Listen"
+ "ListenBacklog"
+ "LoadFile"
+ "LoadModule"
+ "LockFile"
+ "LogFormat"
+ "LogLevel"
+ "MCacheMaxObjectCount"
+ "MCacheMaxObjectSize"
+ "MCacheMaxStreamingBuffer"
+ "MCacheMinObjectSize"
+ "MCacheRemovalAlgorithm"
+ "MCacheSize"
+ "MMapFile"
+ "MaxClients"
+ "MaxKeepAliveRequests"
+ "MaxMemFree"
+ "MaxRequestsPerChild"
+ "MaxRequestsPerThread"
+ "MaxSpareServers"
+ "MaxSpareThreads"
+ "MaxThreads"
+ "MaxThreadsPerChild"
+ "MetaDir"
+ "MetaFiles"
+ "MetaSuffix"
+ "MimeMagicFile"
+ "MinSpareServers"
+ "MinSpareThreads"
+ "ModMimeUsePathInfo"
+ "MultiviewsMatch"
+ "NWSSLTrustedCerts"
+ "NWSSLUpgradeable"
+ "NameVirtualHost"
+ "NoCache"
+ "NoProxy"
+ "NumServers"
+ "Options"
+ "Order"
+ "PassEnv"
+ "PidFile"
+ "Port"
+ "PrivateDir"
+ "ProtocolEcho"
+ "ProxyBadHeader"
+ "ProxyBlock"
+ "ProxyDomain"
+ "ProxyErrorOverride"
+ "ProxyIOBufferSize"
+ "ProxyMaxForwards"
+ "ProxyPass"
+ "ProxyPassReverse"
+ "ProxyPreserveHost"
+ "ProxyReceiveBufferSize"
+ "ProxyRemote"
+ "ProxyRemoteMatch"
+ "ProxyRequests"
+ "ProxyTimeout"
+ "ProxyVia"
+ "RLimitCPU"
+ "RLimitMEM"
+ "RLimitNPROC"
+ "ReadmeName"
+ "Redirect"
+ "RedirectMatch"
+ "RedirectPermanent"
+ "RedirectTemp"
+ "RefererIgnore"
+ "RefererLog"
+ "RemoveCharset"
+ "RemoveEncoding"
+ "RemoveHandler"
+ "RemoveInputFilter"
+ "RemoveLanguage"
+ "RemoveOutputFilter"
+ "RemoveType"
+ "RequestHeader"
+ "Require"
+ "ResourceConfig"
+ "RewriteBase"
+ "RewriteCond"
+ "RewriteEngine"
+ "RewriteLock"
+ "RewriteLog"
+ "RewriteLogLevel"
+ "RewriteMap"
+ "RewriteOptions"
+ "RewriteRule"
+ "SSIEndTag"
+ "SSIErrorMsg"
+ "SSIStartTag"
+ "SSITimeFormat"
+ "SSIUndefinedEcho"
+ "SSLCACertificateFile"
+ "SSLCACertificatePath"
+ "SSLCARevocationFile"
+ "SSLCARevocationPath"
+ "SSLCertificateChainFile"
+ "SSLCertificateFile"
+ "SSLCertificateKeyFile"
+ "SSLCipherSuite"
+ "SSLEngine"
+ "SSLMutex"
+ "SSLOptions"
+ "SSLPassPhraseDialog"
+ "SSLProtocol"
+ "SSLProxyCACertificateFile"
+ "SSLProxyCACertificatePath"
+ "SSLProxyCARevocationFile"
+ "SSLProxyCARevocationPath"
+ "SSLProxyCipherSuite"
+ "SSLProxyEngine"
+ "SSLProxyMachineCertificateFile"
+ "SSLProxyMachineCertificatePath"
+ "SSLProxyProtocol"
+ "SSLProxyVerify"
+ "SSLProxyVerifyDepth"
+ "SSLRandomSeed"
+ "SSLRequire"
+ "SSLRequireSSL"
+ "SSLSessionCache"
+ "SSLSessionCacheTimeout"
+ "SSLVerifyClient"
+ "SSLVerifyDepth"
+ "Satisfy"
+ "ScoreBoardFile"
+ "Script"
+ "ScriptAlias"
+ "ScriptAliasMatch"
+ "ScriptInterpreterSource"
+ "ScriptLog"
+ "ScriptLogBuffer"
+ "ScriptLogLength"
+ "ScriptSock"
+ "SecureListen"
+ "SendBufferSize"
+ "ServerAdmin"
+ "ServerAlias"
+ "ServerLimit"
+ "ServerName"
+ "ServerPath"
+ "ServerRoot"
+ "ServerSignature"
+ "ServerTokens"
+ "ServerType"
+ "SetEnv"
+ "SetEnvIf"
+ "SetEnvIfNoCase"
+ "SetHandler"
+ "SetInputFilter"
+ "SetOutputFilter"
+ "StartServers"
+ "StartThreads"
+ "SuexecUserGroup"
+ "ThreadLimit"
+ "ThreadStackSize"
+ "ThreadsPerChild"
+ "TimeOut"
+ "TopSites"
+ "TopURLs"
+ "TransferLog"
+ "TypesConfig"
+ "UnsetEnv"
+ "UseCanonicalName"
+ "User"
+ "UserDir"
+ "VirtualDocumentRoot"
+ "VirtualDocumentRootIP"
+ "VirtualScriptAlias"
+ "VirtualScriptAliasIP"
+ "Win32DisableAcceptEx"
+ "XBitHack"
+ "deny"
+ "order"
+ "require"
+
+ )
+ 'words))
+ 1 'font-lock-keyword-face)
+
+ (list ; values
+ (regexp-opt '
+ (
+ "All"
+ "AuthConfig"
+ "Basic"
+ "CONNECT"
+ "DELETE"
+ "Digest"
+ "ExecCGI"
+ "FancyIndexing"
+ "FileInfo"
+ "FollowSymLinks"
+ "Full"
+ "GET"
+ "IconsAreLinks"
+ "Includes"
+ "IncludesNOEXEC"
+ "Indexes"
+ "Limit"
+ "Minimal"
+ "MultiViews"
+ "None"
+ "OPTIONS"
+ "OS"
+ "Options"
+ "Options"
+ "POST"
+ "PUT"
+ "ScanHTMLTitles"
+ "SuppressDescription"
+ "SuppressLastModified"
+ "SuppressSize"
+ "SymLinksIfOwnerMatch"
+ "URL"
+ "add"
+ "allow"
+ "any"
+ "append"
+ "deny"
+ "double"
+ "downgrade-1.0"
+ "email"
+ "env"
+ "error"
+ "force-response-1.0"
+ "formatted"
+ "from"
+ "full"
+ "gone"
+ "group"
+ "inetd"
+ "inherit"
+ "map"
+ "mutual-failure"
+ "nocontent"
+ "nokeepalive"
+ "none"
+ "off"
+ "on"
+ "permanent"
+ "referer"
+ "seeother"
+ "semi-formatted"
+ "set"
+ "standalone"
+ "temporary"
+ "unformatted"
+ "unset"
+ "user"
+ "valid-user"
+ ) 'words)
+ 1 'font-lock-type-face)))
+ "Expressions to highlight in Apache config buffers.")
+
+(defun apache-indent-line ()
+ "Indent current line of Apache code."
+ (interactive)
+ (let ((savep (> (current-column) (current-indentation)))
+ (indent (max (apache-calculate-indentation) 0)))
+ (if savep
+ (save-excursion (indent-line-to indent))
+ (indent-line-to indent))))
+
+
+(defun apache-previous-indentation ()
+ ;; Return the previous (non-empty/comment) indentation. Doesn't save
+ ;; position.
+ (let (indent)
+ (while (and (null indent)
+ (zerop (forward-line -1)))
+ (unless (looking-at "[ \t]*\\(#\\|$\\)")
+ (setq indent (current-indentation))))
+ (or indent 0)))
+
+(defun apache-calculate-indentation ()
+ ;; Return the amount the current line should be indented.
+ (save-excursion
+ (forward-line 0)
+ (if (bobp)
+ 0
+ (let ((ends-section-p (looking-at "[ \t]*</"))
+ (indent (apache-previous-indentation)) ; moves point!
+ (previous-starts-section-p (looking-at "[ \t]*<[^/]")))
+ (if ends-section-p
+ (setq indent (- indent apache-indent-level)))
+ (if previous-starts-section-p
+ (setq indent (+ indent apache-indent-level)))
+ indent))))
+
+;;;###autoload(add-to-list 'auto-mode-alist '("\\.htaccess\\'" .
apache-mode))
+;;;###autoload(add-to-list 'auto-mode-alist '("httpd\\.conf\\'" .
apache-mode))
+;;;###autoload(add-to-list 'auto-mode-alist '("srm\\.conf\\'" .
apache-mode))
+;;;###autoload(add-to-list 'auto-mode-alist '("access\\.conf\\'" .
apache-mode))
+;;;###autoload(add-to-list 'auto-mode-alist
'("sites-\\(available\\|enabled\\)/" . apache-mode))
+
+(provide 'apache-mode)
+
+;;; apache-mode.el ends here
- [nongnu] branch elpa/apache-mode created (now f2c11aa), ELPA Syncer, 2021/08/29
- [nongnu] elpa/apache-mode c9c47fe 08/23: Add README.org, ELPA Syncer, 2021/08/29
- [nongnu] elpa/apache-mode 0906559 10/23: Bump version 2.1, ELPA Syncer, 2021/08/29
- [nongnu] elpa/apache-mode 3d13919 02/23: Add ProxyPassMatch keyword, ELPA Syncer, 2021/08/29
- [nongnu] elpa/apache-mode 8fd0d4d 05/23: Modify auto-mode-alist, ELPA Syncer, 2021/08/29
- [nongnu] elpa/apache-mode 7e79a66 01/23: initial import,
ELPA Syncer <=
- [nongnu] elpa/apache-mode e7019b1 12/23: Add Homepage and License header, ELPA Syncer, 2021/08/29
- [nongnu] elpa/apache-mode 0e366be 09/23: Reindent lines, ELPA Syncer, 2021/08/29
- [nongnu] elpa/apache-mode bc2c18b 07/23: Comment out auto-mode-alist lines, ELPA Syncer, 2021/08/29
- [nongnu] elpa/apache-mode 357f812 16/23: Fix unescaped parens in syntax table, ELPA Syncer, 2021/08/29
- [nongnu] elpa/apache-mode db5ed28 04/23: Fix doc comments by checkdoc, ELPA Syncer, 2021/08/29
- [nongnu] elpa/apache-mode 00d48c2 06/23: Change maintainer to me, ELPA Syncer, 2021/08/29
- [nongnu] elpa/apache-mode 7e246f1 18/23: Modify summary and commentary, ELPA Syncer, 2021/08/29
- [nongnu] elpa/apache-mode f2c11aa 23/23: Merge pull request #4 from emacs-php/eval-regexp-opt-in-compile-time, ELPA Syncer, 2021/08/29
- [nongnu] elpa/apache-mode 44afef0 20/23: Change "temporary" keyword to "temp", ELPA Syncer, 2021/08/29
- [nongnu] elpa/apache-mode 51db0a0 03/23: Update list of directives for apache 2.4, ELPA Syncer, 2021/08/29