5%nja
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
-;; Created: 24 Aug 2011
-;; Updated: 16 Mar 2015
-;; Version: 1.2
-;; Package-Version: 20200303.2118
-;; Package-Requires: ((gntp "0.1") (log4e "0.3.0") (cl-lib "0.5"))
-;; Keywords: notification emacs message
-;; X-URL: https://github.com/jwiegley/alert
-
-;; This program 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.
-
-;; This program 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 GNU 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:
-
-;; Alert is a Growl-workalike for Emacs which uses a common notification
-;; interface and multiple, selectable "styles", whose use is fully
-;; customizable by the user.
-;;
-;; * For module writers
-;;
-;; Just use `alert' instead of `message' as follows:
-;;
-;; (require 'alert)
-;;
-;; ;; This is the most basic form usage
-;; (alert "This is an alert")
-;;
-;; ;; You can adjust the severity for more important messages
-;; (alert "This is an alert" :severity 'high)
-;;
-;; ;; Or decrease it for purely informative ones
-;; (alert "This is an alert" :severity 'trivial)
-;;
-;; ;; Alerts can have optional titles. Otherwise, the title is the
-;; ;; buffer-name of the (current-buffer) where the alert originated.
-;; (alert "This is an alert" :title "My Alert")
-;;
-;; ;; Further, alerts can have categories. This allows users to
-;; ;; selectively filter on them.
-;; (alert "This is an alert" :title "My Alert" :category 'debug)
-;;
-;; * For users
-;;
-;; For the user, there are several variables to control when and how alerts
-;; are presented. By default, they appear in the minibuffer much the same
-;; as a normal Emacs message. But there are many more possibilities:
-;;
-;; `alert-fade-time'
-;; Normally alerts disappear after this many seconds, if the style
-;; supports it. The default is 5 seconds.
-;;
-;; `alert-default-style'
-;; Pick the style to use if no other config rule matches. The
-;; default is `message', but `growl' works well too.
-;;
-;; `alert-reveal-idle-time'
-;; If a config rule choose to match on `idle', this is how many
-;; seconds idle the user has to be. Defaults to 5 so that users
-;; don't miss any alerts, but 120 is also good.
-;;
-;; `alert-persist-idle-time'
-;; After this many idle seconds, alerts will become sticky, and not
-;; fade away more. The default is 15 minutes.
-;;
-;; `alert-log-messages'
-;; By default, all alerts are logged to *Alerts* (and to *Messages*,
-;; if the `message' style is being used). Set to nil to disable.
-;;
-;; `alert-hide-all-notifications'
-;; Want alerts off entirely? They still get logged, however, unless
-;; you've turned that off too.
-;;
-;; `alert-user-configuration'
-;; This variable lets you control exactly how and when a particular
-;; alert, a class of alerts, or all alerts, get reported -- or if at
-;; all. Use this to make some alerts use Growl, while others are
-;; completely silent.
-;;
-;; * Programmatically adding rules
-;;
-;; Users can also programmatically add configuration rules, in addition to
-;; customizing `alert-user-configuration'. Here is one that the author
-;; currently uses with ERC, so that the fringe gets colored whenever people
-;; chat on BitlBee:
-;;
-;; (alert-add-rule :status '(buried visible idle)
-;; :severity '(moderate high urgent)
-;; :mode 'erc-mode
-;; :predicate
-;; #'(lambda (info)
-;; (string-match (concat "\\`[^&].*@BitlBee\\'")
-;; (erc-format-target-and/or-network)))
-;; :persistent
-;; #'(lambda (info)
-;; ;; If the buffer is buried, or the user has been
-;; ;; idle for `alert-reveal-idle-time' seconds,
-;; ;; make this alert persistent. Normally, alerts
-;; ;; become persistent after
-;; ;; `alert-persist-idle-time' seconds.
-;; (memq (plist-get info :status) '(buried idle)))
-;; :style 'fringe
-;; :continue t)
-;;
-;; * Builtin alert styles
-;;
-;; There are several builtin styles, and it is trivial to create new ones.
-;; The builtins are:
-;;
-;; fringe - Changes the current frame's fringe background color
-;; mode-line - Changes the current frame's mode-line background color
-;; gntp - Uses gntp, it requires gntp.el (see https://github.com/tekai/gntp.el)
-;; growl - Uses Growl on OS X, if growlnotify is on the PATH
-;; ignore - Ignores the alert entirely
-;; libnotify - Uses libnotify if notify-send is on the PATH
-;; log - Logs the alert text to *Alerts*, with a timestamp
-;; message - Uses the Emacs `message' facility
-;; momentary - Uses the Emacs `momentary-string-display' facility
-;; notifications - Uses notifications library via D-Bus
-;; notifier - Uses terminal-notifier on OS X, if it is on the PATH
-;; osx-notifier - Native OSX notifier using AppleScript
-;; toaster - Use the toast notification system
-;; x11 - Changes the urgency property of the window in the X Window System
-;;
-;; * Defining new styles
-;;
-;; To create a new style, you need to at least write a "notifier", which is
-;; a function that receives the details of the alert. These details are
-;; given in a plist which uses various keyword to identify the parts of the
-;; alert. Here is a prototypical style definition:
-;;
-;; (alert-define-style 'style-name :title "My Style's title"
-;; :notifier
-;; (lambda (info)
-;; ;; The message text is :message
-;; (plist-get info :message)
-;; ;; The :title of the alert
-;; (plist-get info :title)
-;; ;; The :category of the alert
-;; (plist-get info :category)
-;; ;; The major-mode this alert relates to
-;; (plist-get info :mode)
-;; ;; The buffer the alert relates to
-;; (plist-get info :buffer)
-;; ;; Severity of the alert. It is one of:
-;; ;; `urgent'
-;; ;; `high'
-;; ;; `moderate'
-;; ;; `normal'
-;; ;; `low'
-;; ;; `trivial'
-;; (plist-get info :severity)
-;; ;; Whether this alert should persist, or fade away
-;; (plist-get info :persistent)
-;; ;; Data which was passed to `alert'. Can be
-;; ;; anything.
-;; (plist-get info :data))
-;;
-;; ;; Removers are optional. Their job is to remove
-;; ;; the visual or auditory effect of the alert.
-;; :remover
-;; (lambda (info)
-;; ;; It is the same property list that was passed to
-;; ;; the notifier function.
-;; ))
-;;
-;; You can test a specific style with something like this:
-;;
-;; (let ((alert-user-configuration '((((:severity high)) momentary nil))))
-;; (alert "Same buffer momentary alert" :title "My Alert" :severity 'high)
-;; (alert "This is a momentary alert in another visible buffer" :title "My Alert"
-;; :severity 'high :buffer (other-buffer (current-buffer) t)))
-
-;;; Code:
-
-(require 'cl-lib)
-(require 'gntp nil t)
-(eval-when-compile
- ;; if not available, silence the byte compiler
- (defvar gntp-server))
-(declare-function gntp-notify "gntp")
-(require 'notifications nil t)
-(require 'log4e nil t)
-
-;; shut up the byte compiler
-(declare-function alert-gntp-notify "alert")
-(declare-function alert-notifications-notify "alert")
-
-(defgroup alert nil
- "Notification system for Emacs similar to Growl"
- :group 'emacs)
-
-(defcustom alert-severity-faces
- '((urgent . alert-urgent-face)
- (high . alert-high-face)
- (moderate . alert-moderate-face)
- (normal . alert-normal-face)
- (low . alert-low-face)
- (trivial . alert-trivial-face))
- "Faces associated by default with alert severities."
- :type '(alist :key-type symbol :value-type color)
- :group 'alert)
-
-(defcustom alert-severity-colors
- '((urgent . "red")
- (high . "orange")
- (moderate . "yellow")
- (normal . "green")
- (low . "blue")
- (trivial . "purple"))
- "Colors associated by default with alert severities.
-This is used by styles external to Emacs that don't understand faces."
- :type '(alist :key-type symbol :value-type color)
- :group 'alert)
-
-(defcustom alert-log-severity-functions
- '((urgent . alert--log-fatal)
- (high . alert--log-error)
- (moderate . alert--log-warn)
- (normal . alert--log-info)
- (low . alert--log-debug)
- (trivial . alert--log-trace))
- "Log4e logging functions."
- :type '(alist :key-type symbol :value-type color)
- :group 'alert)
-
-(defcustom alert-log-level
- 'normal
- "Minimum level of messages to log."
- :type 'symbol
- :group 'alert)
-
-(defcustom alert-reveal-idle-time 15
- "If idle this many seconds, rules will match the `idle' property."
- :type 'integer
- :group 'alert)
-
-(defcustom alert-persist-idle-time 900
- "If idle this many seconds, all alerts become persistent.
-This can be overridden with the Never Persist option (:never-persist)."
- :type 'integer
- :group 'alert)
-
-(defcustom alert-fade-time 5
- "If not idle, alerts disappear after this many seconds.
-The amount of idle time is governed by `alert-persist-idle-time'."
- :type 'integer
- :group 'alert)
-
-(defcustom alert-hide-all-notifications nil
- "If non-nil, no alerts are ever shown to the user."
- :type 'boolean
- :group 'alert)
-
-(defcustom alert-log-messages t
- "If non-nil, all alerts are logged to the *Alerts* buffer."
- :type 'boolean
- :group 'alert)
-
-(defcustom alert-default-icon
- (concat data-directory
- "images/icons/hicolor/scalable/apps/emacs.svg")
- "Filename of default icon to show for libnotify-alerts."
- :type 'string
- :group 'alert)
-
-(defvar alert-styles nil)
-
-(defun alert-styles-radio-type (widget-name)
- (append
- (list widget-name :tag "Style")
- (mapcar #'(lambda (style)
- (list 'const
- :tag (or (plist-get (cdr style) :title)
- (symbol-name (car style)))
- (car style)))
- (setq alert-styles
- (sort alert-styles
- #'(lambda (l r)
- (string< (symbol-name (car l))
- (symbol-name (car r)))))))))
-
-(defcustom alert-default-style 'message
- "The style to use if no rules match in the current configuration.
-If a configured rule does match an alert, this style is not used;
-it is strictly a fallback."
- :type (alert-styles-radio-type 'radio)
- :group 'alert)
-
-(defun alert-configuration-type ()
- (list 'repeat
- (list
- 'list :tag "Select style if alert matches selector"
- '(repeat
- :tag "Selector"
- (choice
- (cons :tag "Severity"
- (const :format "" :severity)
- (set (const :tag "Urgent" urgent)
- (const :tag "High" high)
- (const :tag "Moderate" moderate)
- (const :tag "Normal" normal)
- (const :tag "Low" low)
- (const :tag "Trivial" trivial)))
- (cons :tag "User Status"
- (const :format "" :status)
- (set (const :tag "Buffer not visible" buried)
- (const :tag "Buffer visible" visible)
- (const :tag "Buffer selected" selected)
- (const :tag "Buffer selected, user idle" idle)))
- (cons :tag "Major Mode"
- (const :format "" :mode)
- regexp)
- (cons :tag "Category"
- (const :format "" :category)
- regexp)
- (cons :tag "Title"
- (const :format "" :title)
- regexp)
- (cons :tag "Message"
- (const :format "" :message)
- regexp)
- (cons :tag "Predicate"
- (const :format "" :predicate)
- function)
- (cons :tag "Icon"
- (const :format "" :icon)
- regexp)))
- (alert-styles-radio-type 'choice)
- '(set :tag "Options"
- (cons :tag "Make alert persistent"
- (const :format "" :persistent)
- (choice :value t (const :tag "Yes" t)
- (function :tag "Predicate")))
- (cons :tag "Never persist"
- (const :format "" :never-persist)
- (choice :value t (const :tag "Yes" t)
- (function :tag "Predicate")))
- (cons :tag "Continue to next rule"
- (const :format "" :continue)
- (choice :value t (const :tag "Yes" t)
- (function :tag "Predicate")))
- ;;(list :tag "Change Severity"
- ;; (radio :tag "From"
- ;; (const :tag "Urgent" urgent)
- ;; (const :tag "High" high)
- ;; (const :tag "Moderate" moderate)
- ;; (const :tag "Normal" normal)
- ;; (const :tag "Low" low)
- ;; (const :tag "Trivial" trivial))
- ;; (radio :tag "To"
- ;; (const :tag "Urgent" urgent)
- ;; (const :tag "High" high)
- ;; (const :tag "Moderate" moderate)
- ;; (const :tag "Normal" normal)
- ;; (const :tag "Low" low)
- ;; (const :tag "Trivial" trivial)))
- ))))
-
-(defcustom alert-user-configuration nil
- "Rules that determine how and when alerts get displayed."
- :type (alert-configuration-type)
- :group 'alert)
-
-(defvar alert-internal-configuration nil
- "Rules added by `alert-add-rule'.
-For user customization, see `alert-user-configuration'.")
-
-(defface alert-urgent-face
- '((t (:foreground "Red" :bold t)))
- "Urgent alert face."
- :group 'alert)
-
-(defface alert-high-face
- '((t (:foreground "Dark Orange" :bold t)))
- "High alert face."
- :group 'alert)
-
-(defface alert-moderate-face
- '((t (:foreground "Gold" :bold t)))
- "Moderate alert face."
- :group 'alert)
-
-(defface alert-normal-face
- '((t))
- "Normal alert face."
- :group 'alert)
-
-(defface alert-low-face
- '((t (:foreground "Dark Blue")))
- "Low alert face."
- :group 'alert)
-
-(defface alert-trivial-face
- '((t (:foreground "Dark Violet")))
- "Trivial alert face."
- :group 'alert)
-
-(defun alert-define-style (name &rest plist)
- "Define a new style for notifying the user of alert messages.
-To create a new style, you need to at least write a \"notifier\",
-which is a function that receives the details of the alert.
-These details are given in a plist which uses various keyword to
-identify the parts of the alert. Here is a prototypical style
-definition:
-
-\(alert-define-style 'style-name :title \"My Style's title\"
- :notifier
- (lambda (info)
- ;; The message text is :message
- (plist-get info :message)
- ;; The :title of the alert
- (plist-get info :title)
- ;; The :category of the alert
- (plist-get info :category)
- ;; The major-mode this alert relates to
- (plist-get info :mode)
- ;; The buffer the alert relates to
- (plist-get info :buffer)
- ;; Severity of the alert. It is one of:
- ;; `urgent'
- ;; `high'
- ;; `moderate'
- ;; `normal'
- ;; `low'
- ;; `trivial'
- (plist-get info :severity)
- ;; Whether this alert should persist, or fade away
- (plist-get info :persistent)
- ;; Data which was passed to `alert'. Can be
- ;; anything.
- (plist-get info :data))
-
- ;; Removers are optional. Their job is to remove
- ;; the visual or auditory effect of the alert.
- :remover
- (lambda (info)
- ;; It is the same property list that was passed to
- ;; the notifier function.
- ))"
- (add-to-list 'alert-styles (cons name plist))
- (put 'alert-user-configuration 'custom-type (alert-configuration-type))
- (put 'alert-define-style 'custom-type (alert-styles-radio-type 'radio)))
-
-(alert-define-style 'ignore :title "Ignore Alert"
- :notifier #'ignore
- :remover #'ignore)
-
-;;;###autoload
-(cl-defun alert-add-rule (&key severity status mode category title
- message predicate icon (style alert-default-style)
- persistent continue never-persist append)
- "Programmatically add an alert configuration rule.
-
-Normally, users should custoimze `alert-user-configuration'.
-This facility is for module writers and users that need to do
-things the Lisp way.
-
-Here is a rule the author currently uses with ERC, so that the
-fringe gets colored whenever people chat on BitlBee:
-
-\(alert-add-rule :status \\='(buried visible idle)
- :severity \\='(moderate high urgent)
- :mode \\='erc-mode
- :predicate
- #\\='(lambda (info)
- (string-match (concat \"\\\\`[^&].*@BitlBee\\\\\\='\")
- (erc-format-target-and/or-network)))
- :persistent
- #\\='(lambda (info)
- ;; If the buffer is buried, or the user has been
- ;; idle for `alert-reveal-idle-time' seconds,
- ;; make this alert persistent. Normally, alerts
- ;; become persistent after
- ;; `alert-persist-idle-time' seconds.
- (memq (plist-get info :status) \\='(buried idle)))
- :style \\='fringe
- :continue t)"
- (let ((rule (list (list t) style (list t))))
- (if severity
- (nconc (nth 0 rule)
- (list (cons :severity
- (if (listp severity)
- severity
- (list severity))))))
- (if status
- (nconc (nth 0 rule)
- (list (cons :status
- (if (listp status)
- status
- (list status))))))
- (if mode
- (nconc (nth 0 rule)
- (list (cons :mode
- (if (stringp mode)
- mode
- (concat "\\`" (symbol-name mode)
- "\\'"))))))
- (if category
- (nconc (nth 0 rule) (list (cons :category category))))
- (if title
- (nconc (nth 0 rule) (list (cons :title title))))
- (if message
- (nconc (nth 0 rule) (list (cons :message message))))
- (if predicate
- (nconc (nth 0 rule) (list (cons :predicate predicate))))
- (if icon
- (nconc (nth 0 rule) (list (cons :icon icon))))
- (setcar rule (cdr (nth 0 rule)))
-
- (if persistent
- (nconc (nth 2 rule) (list (cons :persistent persistent))))
- (if never-persist
- (nconc (nth 2 rule) (list (cons :never-persist never-persist))))
- (if continue
- (nconc (nth 2 rule) (list (cons :continue continue))))
- (setcdr (cdr rule) (list (cdr (nth 2 rule))))
-
- (if (null alert-internal-configuration)
- (setq alert-internal-configuration (list rule))
- (if append
- (nconc alert-internal-configuration (list rule))
- (setq alert-internal-configuration
- (cons rule alert-internal-configuration))))
-
- rule))
-
-(alert-define-style 'ignore :title "Don't display alerts")
-
-(defun alert-log-notify (info)
- (let* ((mes (plist-get info :message))
- (sev (plist-get info :severity))
- (len (length mes))
- (func (cdr (assoc sev alert-log-severity-functions))))
- (if (not (featurep 'log4e))
- (alert-legacy-log-notify mes sev len)
- ;; when we get here you better be using log4e or have your logging
- ;; functions defined
- (unless (fboundp func)
- (when (fboundp 'log4e:deflogger)
- (log4e:deflogger "alert" "%t [%l] %m" "%H:%M:%S")
- (when (functionp 'alert--log-set-level)
- (alert--log-set-level alert-log-level)))
- (alert--log-enable-logging))
- (when (fboundp func)
- (apply func (list mes))))))
-
-(defun alert-legacy-log-notify (mes sev len)
- (with-current-buffer
- (get-buffer-create "*Alerts*")
- (goto-char (point-max))
- (insert (format-time-string "%H:%M %p - "))
- (insert mes)
- (set-text-properties (- (point) len) (point)
- (list 'face (cdr (assq sev
- alert-severity-faces))))
- (insert ?\n)))
-
-(defun alert-log-clear (info)
- (if (functionp 'alert--log-clear-log)
- (alert--log-clear-log)
- (if (bufferp "*Alerts*")
- (with-current-buffer
- (get-buffer-create "*Alerts*")
- (goto-char (point-max))
- (insert (format-time-string "%H:%M %p - ")
- "Clear: " (plist-get info :message)
- ?\n)))))
-
-(alert-define-style 'log :title "Log to *Alerts* buffer"
- :notifier #'alert-log-notify
- ;;:remover #'alert-log-clear
- )
-
-(defun alert-message-notify (info)
- ;; the message text might contain `%' and we don't want them to be
- ;; interpreted as format specifiers:
- (message "%s" (plist-get info :message))
- ;;(if (memq (plist-get info :severity) '(high urgency))
- ;; (ding))
- )
-
-(defun alert-message-remove (_info)
- (message ""))
-
-(alert-define-style 'message :title "Display message in minibuffer"
- :notifier #'alert-message-notify
- :remover #'alert-message-remove)
-
-(defun alert-momentary-notify (info)
- (save-excursion
- (with-current-buffer (or (plist-get info :buffer) (current-buffer))
- (momentary-string-display
- (format "%s: %s (%s/%s/%s)"
- (or (plist-get info :title) "untitled")
- (or (plist-get info :message) "no message")
- (or (plist-get info :severity) "no priority")
- (or (plist-get info :category) "no category")
- (or (plist-get info :mode) "no mode"))
- (progn
- (beginning-of-line)
- (point))))))
-
-(alert-define-style 'momentary :title "Display message momentarily in buffer"
- :notifier #'alert-momentary-notify
- ;; explicitly, we don't need a remover
- :remover #'ignore)
-
-(copy-face 'fringe 'alert-saved-fringe-face)
-
-(defun alert-fringe-notify (info)
- (set-face-background 'fringe (cdr (assq (plist-get info :severity)
- alert-severity-colors))))
-
-(defun alert-fringe-restore (_info)
- (copy-face 'alert-saved-fringe-face 'fringe))
-
-(alert-define-style 'fringe :title "Change the fringe color"
- :notifier #'alert-fringe-notify
- :remover #'alert-fringe-restore)
-
-
-(defun alert-mode-line-notify (info)
- (copy-face 'mode-line 'alert-saved-mode-line-face)
- (set-face-background 'mode-line (cdr (assq (plist-get info :severity)
- alert-severity-colors)))
- (set-face-foreground 'mode-line "white"))
-
-(defun alert-mode-line-restore (_info)
- (copy-face 'alert-saved-mode-line-face 'mode-line))
-
-(alert-define-style 'mode-line :title "Change the mode-line color"
- :notifier #'alert-mode-line-notify
- :remover #'alert-mode-line-restore)
-
-
-
-(defcustom alert-growl-command (executable-find "growlnotify")
- "Path to the growlnotify command.
-This is found in the Growl Extras: http://growl.info/extras.php."
- :type 'file
- :group 'alert)
-
-(defcustom alert-growl-priorities
- '((urgent . 2)
- (high . 2)
- (moderate . 1)
- (normal . 0)
- (low . -1)
- (trivial . -2))
- "A mapping of alert severities onto Growl priority values."
- :type '(alist :key-type symbol :value-type integer)
- :group 'alert)
-
-(defsubst alert-encode-string (str)
- (encode-coding-string str (keyboard-coding-system)))
-
-(defun alert-growl-notify (info)
- (if alert-growl-command
- (let ((args
- (list "--appIcon" "Emacs"
- "--name" "Emacs"
- "--title" (alert-encode-string (plist-get info :title))
- "--message" (alert-encode-string (plist-get info :message))
- "--priority" (number-to-string
- (cdr (assq (plist-get info :severity)
- alert-growl-priorities))))))
- (if (and (plist-get info :persistent)
- (not (plist-get info :never-persist)))
- (nconc args (list "--sticky")))
- (apply #'call-process alert-growl-command nil nil nil args))
- (alert-message-notify info)))
-
-(alert-define-style 'growl :title "Notify using Growl"
- :notifier #'alert-growl-notify)
-
-
-(defcustom alert-libnotify-command (executable-find "notify-send")
- "Path to the notify-send command.
-This is found in the libnotify-bin package in Debian based
-systems."
- :type 'file
- :group 'alert)
-
-(defcustom alert-libnotify-additional-args
- nil
- "Additional args to pass to notify-send.
-Must be a list of strings."
- :type '(repeat string)
- :group 'alert)
-
-(defcustom alert-libnotify-priorities
- '((urgent . critical)
- (high . critical)
- (moderate . normal)
- (normal . normal)
- (low . low)
- (trivial . low))
- "A mapping of alert severities onto libnotify priority values."
- :type '(alist :key-type symbol :value-type symbol)
- :group 'alert)
-
-(defun alert-libnotify-notify (info)
- "Send INFO using notify-send.
-Handles :ICON, :CATEGORY, :SEVERITY, :PERSISTENT, :NEVER-PERSIST, :TITLE
-and :MESSAGE keywords from the INFO plist. :CATEGORY can be
-passed as a single symbol, a string or a list of symbols or
-strings."
- (if alert-libnotify-command
- (let* ((args
- (append
- (list "--icon" (or (plist-get info :icon)
- alert-default-icon)
- "--app-name" "Emacs"
- "--urgency" (let ((urgency (cdr (assq
- (plist-get info :severity)
- alert-libnotify-priorities))))
- (if urgency
- (symbol-name urgency)
- "normal")))
- (copy-tree alert-libnotify-additional-args)))
- (category (plist-get info :category)))
- (nconc args
- (list "--expire-time"
- (number-to-string
- (* 1000 ; notify-send takes msecs
- (if (and (plist-get info :persistent)
- (not (plist-get info :never-persist)))
- 0 ; 0 indicates persistence
- alert-fade-time)))))
- (when category
- (nconc args
- (list "--category"
- (cond ((symbolp category)
- (symbol-name category))
- ((stringp category) category)
- ((listp category)
- (mapconcat (if (symbolp (car category))
- #'symbol-name
- #'identity)
- category ","))))))
- (nconc args (list
- (alert-encode-string (plist-get info :title))
- (alert-encode-string (plist-get info :message))))
- (apply #'call-process alert-libnotify-command nil
- (list (get-buffer-create " *libnotify output*") t) nil args))
- (alert-message-notify info)))
-
-(alert-define-style 'libnotify :title "Notify using libnotify"
- :notifier #'alert-libnotify-notify)
-
-
-(defcustom alert-gntp-icon
- "http://cvs.savannah.gnu.org/viewvc/*checkout*/emacs/emacs/etc/images/icons/hicolor/48x48/apps/emacs.png"
- "Icon file using gntp."
- :type 'string
- :group 'alert)
-
-(when (featurep 'gntp)
- (defun alert-gntp-notify (info)
- (gntp-notify 'alert
- (alert-encode-string (plist-get info :title))
- (alert-encode-string (plist-get info :message))
- gntp-server nil
- (number-to-string
- (cdr (assq (plist-get info :severity)
- alert-growl-priorities)))
- (if (eq (plist-get info :icon) nil)
- alert-gntp-icon
- (plist-get info :icon)))
- (alert-message-notify info))
-
- (alert-define-style 'gntp :title "Notify using gntp"
- :notifier #'alert-gntp-notify))
-
-
-(defcustom alert-notifications-priorities
- '((urgent . critical)
- (high . critical)
- (moderate . normal)
- (normal . normal)
- (low . low)
- (trivial . low))
- "A mapping of alert severities onto Growl priority values."
- :type '(alist :key-type symbol :value-type symbol)
- :group 'alert)
-
-(defvar alert-notifications-ids (make-hash-table :test #'equal)
- "Internal store of notification ids returned by the `notifications' backend.
-Used for replacing notifications with the same id. The key is
-the value of the :id keyword to `alert'. An id is only stored
-here if there `alert' was called with an :id keyword and handled
-by the `notifications' style.")
-
-(when (featurep 'notifications)
- (defun alert-notifications-notify (info)
- "Show the alert defined by INFO with `notifications-notify'."
- (let ((id (notifications-notify :title (plist-get info :title)
- :body (plist-get info :message)
- :app-icon (plist-get info :icon)
- :timeout (if (plist-get info :persistent) 0 -1)
- :replaces-id (gethash (plist-get info :id) alert-notifications-ids)
- :urgency (cdr (assq (plist-get info :severity)
- alert-notifications-priorities))
- :actions '("default" "Open corresponding buffer")
- :on-action (lambda (id action)
- (when (string= action "default")
- (switch-to-buffer (plist-get info :buffer)))))))
- (when (plist-get info :id)
- (puthash (plist-get info :id) id alert-notifications-ids)))
- (alert-message-notify info))
-
- (defun alert-notifications-remove (info)
- "Remove the `notifications-notify' message based on INFO :id."
- (let ((id (and (plist-get info :id)
- (gethash (plist-get info :id) alert-notifications-ids))))
- (when id
- (notifications-close-notification id)
- (remhash (plist-get info :id) alert-notifications-ids))))
-
- (alert-define-style 'notifications :title "Notify using notifications"
- :notifier #'alert-notifications-notify))
-
-
-(defcustom alert-notifier-command (executable-find "terminal-notifier")
- "Path to the terminal-notifier command.
-From https://github.com/julienXX/terminal-notifier."
- :type 'file
- :group 'alert)
-
-(defcustom alert-notifier-default-icon
- (concat data-directory
- "images/icons/hicolor/128x128/apps/emacs.png")
- "Filename of default icon to show for terminal-notifier alerts."
- :type 'string
- :group 'alert)
-
-(defun alert-notifier-notify (info)
- (if alert-notifier-command
- (let ((args
- (list "-title" (alert-encode-string (plist-get info :title))
- "-appIcon" (or (plist-get info :icon) alert-notifier-default-icon)
- "-message" (alert-encode-string (plist-get info :message)))))
- (apply #'call-process alert-notifier-command nil nil nil args))
- (alert-message-notify info)))
-
-(alert-define-style 'notifier :title "Notify using terminal-notifier"
- :notifier #'alert-notifier-notify)
-
-(defun alert-osx-notifier-notify (info)
- (apply #'call-process "osascript" nil nil nil "-e"
- (list (format "display notification %S with title %S"
- (alert-encode-string (plist-get info :message))
- (alert-encode-string (plist-get info :title)))))
- (alert-message-notify info))
-
-(when (fboundp 'mac-do-applescript)
- ;; Use built-in AppleScript support when possible.
- (defun alert-osx-notifier-notify (info)
- (mac-do-applescript (format "display notification %S with title %S"
- (alert-encode-string (plist-get info :message))
- (alert-encode-string (plist-get info :title))))
- (alert-message-notify info)))
-
-(alert-define-style 'osx-notifier :title "Notify using native OSX notification" :notifier #'alert-osx-notifier-notify)
-
-(defun alert-frame-notify (info)
- (let ((buf (plist-get info :buffer)))
- (if (eq (alert-buffer-status buf) 'buried)
- (let ((current-frame (selected-frame)))
- (with-selected-frame
- (make-frame '((width . 80)
- (height . 20)
- (top . -1)
- (left . 0)
- (left-fringe . 0)
- (right-fringe . 0)
- (tool-bar-lines . nil)
- (menu-bar-lines . nil)
- (vertical-scroll-bars . nil)
- (unsplittable . t)
- (has-modeline-p . nil)
- (minibuffer . nil)))
- (switch-to-buffer buf)
- ;;(set (make-local-variable 'mode-line-format) nil)
- (nconc info (list :frame (selected-frame))))
- (select-frame current-frame)))))
-
-(defun alert-frame-remove (info)
- (unless (eq this-command 'handle-switch-frame)
- (delete-frame (plist-get info :frame) t)))
-
-;; This code was kindly borrowed from Arne Babenhauserheide:
-;; http://www.draketo.de/proj/babcore/#sec-3-14-2
-(defun x-urgency-hint (frame arg &optional source)
- "Set the x-urgency hint for FRAME to ARG.
-
-- If arg is nil, unset the urgency.
-- If arg is any other value, set the urgency.
-
-If you unset the urgency, you still have to visit the frame to make the urgency
-setting disappear (at least in KDE)."
- (let* ((wm-hints (append (x-window-property
- "WM_HINTS" frame "WM_HINTS"
- source nil t) nil))
- (flags (car wm-hints)))
- (setcar wm-hints
- (if arg
- (logior flags #x00000100)
- (logand flags #x1ffffeff)))
- (x-change-window-property "WM_HINTS" wm-hints frame "WM_HINTS" 32 t)))
-
-(defun x-urgent (&optional arg)
- "Mark the current Emacs frame as requiring urgent attention.
-
-With non-nil ARG, remove the urgency flag (which might or might
-not change display, depending on the window manager)."
- (interactive "P")
- (let ((frame (car (car (cdr (current-frame-configuration))))))
- (x-urgency-hint frame (not arg))))
-
-(defun alert-x11-notify (_info)
- "Call `x-urgent'."
- (x-urgent))
-
-(alert-define-style 'x11 :title "Set the X11 window property"
- :notifier #'alert-x11-notify)
-
-
-(defcustom alert-toaster-default-icon
- (let ((exec-bin (executable-find "emacs.exe")))
- (cond (exec-bin
- (concat (file-name-directory exec-bin) "../share/icons/hicolor/128x128/apps/emacs.png"))
- (t nil)))
- "Icon file using toaster."
- :type 'string
- :group 'alert
- )
-
-(defcustom alert-toaster-command (executable-find "toast")
- "Path to the toast command.
-This is found at https://github.com/nels-o/toaster."
- :type 'file
- :group 'alert
- )
-
-(defun alert-toaster-notify (info)
- (if alert-toaster-command
- (let ((args (list
- "-t" (alert-encode-string (plist-get info :title))
- "-m" (alert-encode-string (plist-get info :message))
- "-p" (expand-file-name (or (plist-get info :icon) alert-toaster-default-icon))
- )))
- (apply #'call-process alert-toaster-command nil nil nil args))
- (alert-message-notify info)))
-
-(alert-define-style 'toaster :title "Notify using Toaster"
- :notifier #'alert-toaster-notify)
-
-;; jww (2011-08-25): Not quite working yet
-;;(alert-define-style 'frame :title "Popup buffer in a frame"
-;; :notifier #'alert-frame-notify
-;; :remover #'alert-frame-remove)
-
-(defun alert-buffer-status (&optional buffer)
- (with-current-buffer (or buffer (current-buffer))
- (let ((wind (get-buffer-window)))
- (if wind
- (if (eq wind (selected-window))
- (if (and (current-idle-time)
- (> (float-time (current-idle-time))
- alert-reveal-idle-time))
- 'idle
- 'selected)
- 'visible)
- 'buried))))
-
-(defvar alert-active-alerts nil)
-
-(defun alert-remove-when-active (remover info)
- (let ((idle-time (and (current-idle-time)
- (float-time (current-idle-time)))))
- (cond
- ((and idle-time (> idle-time alert-persist-idle-time)))
- ((and idle-time (> idle-time alert-reveal-idle-time))
- (run-with-timer alert-fade-time nil
- #'alert-remove-when-active remover info))
- (t
- (funcall remover info)))))
-
-(defun alert-remove-on-command ()
- (let (to-delete)
- (dolist (alert alert-active-alerts)
- (when (eq (current-buffer) (nth 0 alert))
- (push alert to-delete)
- (if (nth 2 alert)
- (funcall (nth 2 alert) (nth 1 alert)))))
- (dolist (alert to-delete)
- (setq alert-active-alerts (delq alert alert-active-alerts)))))
-
-(defun alert-send-notification
- (alert-buffer info style-def &optional persist never-per)
- (let ((notifier (plist-get style-def :notifier)))
- (if notifier
- (funcall notifier info)))
- (let ((remover (plist-get style-def :remover)))
- (add-to-list 'alert-active-alerts (list alert-buffer info remover))
- (with-current-buffer alert-buffer
- (add-hook 'post-command-hook #'alert-remove-on-command nil t))
- (if (and remover (or (not persist) never-per))
- (run-with-timer alert-fade-time nil
- #'alert-remove-when-active
- remover info))))
-
-;;;###autoload
-(cl-defun alert (message &key (severity 'normal) title icon category
- buffer mode data style persistent never-persist
- id)
- "Alert the user that something has happened.
-MESSAGE is what the user will see. You may also use keyword
-arguments to specify additional details. Here is a full example:
-
-\(alert \"This is a message\"
- :severity \\='high ;; The default severity is `normal'
- :title \"Title\" ;; An optional title
- :category \\='example ;; A symbol to identify the message
- :mode \\='text-mode ;; Normally determined automatically
- :buffer (current-buffer) ;; This is the default
- :data nil ;; Unused by alert.el itself
- :persistent nil ;; Force the alert to be persistent;
- ;; it is best not to use this
- :never-persist nil ;; Force this alert to never persist
- :id \\='my-id) ;; Used to replace previous message of
- ;; the same id in styles that support it
- :style \\='fringe) ;; Force a given style to be used;
- ;; this is only for debugging!
-
-If no :title is given, the buffer-name of :buffer is used. If
-:buffer is nil, it is the current buffer at the point of call.
-
-:data is an opaque value which modules can pass through to their
-own styles if they wish.
-
-Here are some more typical examples of usage:
-
- ;; This is the most basic form usage
- (alert \"This is an alert\")
-
- ;; You can adjust the severity for more important messages
- (alert \"This is an alert\" :severity \\='high)
-
- ;; Or decrease it for purely informative ones
- (alert \"This is an alert\" :severity \\='trivial)
-
- ;; Alerts can have optional titles. Otherwise, the title is the
- ;; buffer-name of the (current-buffer) where the alert originated.
- (alert \"This is an alert\" :title \"My Alert\")
-
- ;; Further, alerts can have categories. This allows users to
- ;; selectively filter on them.
- (alert \"This is an alert\" :title \"My Alert\"
- :category \\='some-category-or-other)"
- (cl-destructuring-bind
- (alert-buffer current-major-mode current-buffer-status
- current-buffer-name)
- (with-current-buffer (or buffer (current-buffer))
- (list (current-buffer)
- (or mode major-mode)
- (alert-buffer-status)
- (buffer-name)))
-
- (let ((base-info (list :message message
- :title (or title current-buffer-name)
- :icon icon
- :severity severity
- :category category
- :buffer alert-buffer
- :mode current-major-mode
- :id id
- :data data))
- matched)
-
- (if alert-log-messages
- (alert-log-notify base-info))
-
- (unless alert-hide-all-notifications
- (catch 'finish
- (dolist (config (append alert-user-configuration
- alert-internal-configuration))
- (let* ((style-def (cdr (assq (or style (nth 1 config))
- alert-styles)))
- (options (nth 2 config))
- (persist-p (or persistent
- (cdr (assq :persistent options))))
- (persist (if (functionp persist-p)
- (funcall persist-p base-info)
- persist-p))
- (never-persist-p
- (or never-persist
- (cdr (assq :never-persist options))))
- (never-per (if (functionp never-persist-p)
- (funcall never-persist-p base-info)
- never-persist-p))
- (continue (cdr (assq :continue options)))
- info)
- (setq info (if (not (memq :persistent base-info))
- (append base-info (list :persistent persist))
- base-info)
- info (if (not (memq :never-persist info))
- (append info (list :never-persist never-per))
- info))
- (when
- (or style ; :style always "matches", for testing
- (not
- (memq
- nil
- (mapcar
- #'(lambda (condition)
- (cl-case (car condition)
- (:severity
- (memq severity (cdr condition)))
- (:status
- (memq current-buffer-status (cdr condition)))
- (:mode
- (string-match
- (cdr condition)
- (symbol-name current-major-mode)))
- (:category
- (and category (string-match
- (cdr condition)
- (if (stringp category)
- category
- (symbol-name category)))))
- (:title
- (and title
- (string-match (cdr condition) title)))
- (:message
- (string-match (cdr condition) message))
- (:predicate
- (funcall (cdr condition) info))
- (:icon
- (string-match (cdr condition) icon))))
- (nth 0 config)))))
-
- (alert-send-notification alert-buffer info style-def
- persist never-per)
- (setq matched t)
- (if (or style (not (if (functionp continue)
- (funcall continue info)
- continue)))
- (throw 'finish t)))))))
-
- (if (and (not matched) alert-default-style)
- (alert-send-notification alert-buffer base-info
- (cdr (assq alert-default-style
- alert-styles)))))))
-
-(provide 'alert)
-
-;;; alert.el ends here
diff --git a/elpa/alert-20200303.2118/alert.elc b/elpa/alert-20200303.2118/alert.elc
deleted file mode 100644
index 4dae11a9d8bb327e2b028980a87aa29801d0ef04..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 42573
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
-;; Homepage: http://github.com/rolandwalker/anaphora
-;; URL: http://raw.githubusercontent.com/rolandwalker/anaphora/master/anaphora.el
-;; Package-Version: 20180618.2200
-;; Version: 1.0.4
-;; Last-Updated: 18 Jun 2018
-;; EmacsWiki: Anaphora
-;; Keywords: extensions
-;;
-;;; Commentary:
-;;
-;; Quickstart
-;;
-;; (require 'anaphora)
-;;
-;; (awhen (big-long-calculation)
-;; (foo it) ; `it' is provided as
-;; (bar it)) ; a temporary variable
-;;
-;; ;; anonymous function to compute factorial using `self'
-;; (alambda (x) (if (= x 0) 1 (* x (self (1- x)))))
-;;
-;; ;; to fontify `it' and `self'
-;; (with-eval-after-load "lisp-mode"
-;; (anaphora-install-font-lock-keywords))
-;;
-;; Explanation
-;;
-;; Anaphoric expressions implicitly create one or more temporary
-;; variables which can be referred to during the expression. This
-;; technique can improve clarity in certain cases. It also enables
-;; recursion for anonymous functions.
-;;
-;; To use anaphora, place the anaphora.el library somewhere
-;; Emacs can find it, and add the following to your ~/.emacs file:
-;;
-;; (require 'anaphora)
-;;
-;; The following macros are made available
-;;
-;; `aand'
-;; `ablock'
-;; `acase'
-;; `acond'
-;; `aecase'
-;; `aetypecase'
-;; `aif'
-;; `alambda'
-;; `alet'
-;; `aprog1'
-;; `aprog2'
-;; `atypecase'
-;; `awhen'
-;; `awhile'
-;; `a+'
-;; `a-'
-;; `a*'
-;; `a/'
-;;
-;; See Also
-;;
-;; M-x customize-group RET anaphora RET
-;; http://en.wikipedia.org/wiki/On_Lisp
-;; http://en.wikipedia.org/wiki/Anaphoric_macro
-;;
-;; Notes
-;;
-;; Partially based on examples from the book "On Lisp", by Paul
-;; Graham.
-;;
-;; Compatibility and Requirements
-;;
-;; GNU Emacs version 26.1 : yes
-;; GNU Emacs version 25.x : yes
-;; GNU Emacs version 24.x : yes
-;; GNU Emacs version 23.x : yes
-;; GNU Emacs version 22.x : yes
-;; GNU Emacs version 21.x and lower : unknown
-;;
-;; Bugs
-;;
-;; TODO
-;;
-;; better face for it and self
-;;
-;;; License
-;;
-;; All code contributed by the author to this library is placed in the
-;; public domain. It is the author's belief that the portions adapted
-;; from examples in "On Lisp" are in the public domain.
-;;
-;; Regardless of the copyright status of individual functions, all
-;; code herein is free software, and is provided without any express
-;; or implied warranties.
-;;
-;;; Code:
-;;
-
-;;; requirements
-
-;; for declare, labels, do, block, case, ecase, typecase, etypecase
-(require 'cl-lib)
-
-;;; customizable variables
-
-;;;###autoload
-(defgroup anaphora nil
- "Anaphoric macros providing implicit temp variables"
- :version "1.0.4"
- :link '(emacs-commentary-link :tag "Commentary" "anaphora")
- :link '(url-link :tag "GitHub" "http://github.com/rolandwalker/anaphora")
- :link '(url-link :tag "EmacsWiki" "http://emacswiki.org/emacs/Anaphora")
- :prefix "anaphora-"
- :group 'extensions)
-
-;;;###autoload
-(defcustom anaphora-use-long-names-only nil
- "Use only long names such as `anaphoric-if' instead of traditional `aif'."
- :type 'boolean
- :group 'anaphora)
-
-;;; font-lock
-
-(defun anaphora-install-font-lock-keywords nil
- "Fontify keywords `it' and `self'."
- (font-lock-add-keywords 'emacs-lisp-mode `((,(concat "\\<" (regexp-opt '("it" "self") 'paren) "\\>")
- 1 font-lock-variable-name-face)) 'append))
-
-;;; aliases
-
-;;;###autoload
-(progn
- (defun anaphora--install-traditional-aliases (&optional arg)
- "Install traditional short aliases for anaphoric macros.
-
-With negative numeric ARG, remove traditional aliases."
- (let ((syms '(
- (if . t)
- (prog1 . t)
- (prog2 . t)
- (when . when)
- (while . t)
- (and . t)
- (cond . cond)
- (lambda . lambda)
- (block . block)
- (case . case)
- (ecase . ecase)
- (typecase . typecase)
- (etypecase . etypecase)
- (let . let)
- (+ . t)
- (- . t)
- (* . t)
- (/ . t)
- )))
- (cond
- ((and (numberp arg)
- (< arg 0))
- (dolist (cell syms)
- (when (ignore-errors
- (eq (symbol-function (intern-soft (format "a%s" (car cell))))
- (intern-soft (format "anaphoric-%s" (car cell)))))
- (fmakunbound (intern (format "a%s" (car cell)))))))
- (t
- (dolist (cell syms)
- (let* ((builtin (car cell))
- (traditional (intern (format "a%s" builtin)))
- (long (intern (format "anaphoric-%s" builtin))))
- (defalias traditional long)
- (put traditional 'lisp-indent-function
- (get builtin 'lisp-indent-function))
- (put traditional 'edebug-form-spec (cdr cell)))))))))
-
-;;;###autoload
-(unless anaphora-use-long-names-only
- (anaphora--install-traditional-aliases))
-
-;;; macros
-
-;;;###autoload
-(defmacro anaphoric-if (cond then &rest else)
- "Like `if', but the result of evaluating COND is bound to `it'.
-
-The variable `it' is available within THEN and ELSE.
-
-COND, THEN, and ELSE are otherwise as documented for `if'."
- (declare (debug t)
- (indent 2))
- `(let ((it ,cond))
- (if it ,then ,@else)))
-
-;;;###autoload
-(defmacro anaphoric-prog1 (first &rest body)
- "Like `prog1', but the result of evaluating FIRST is bound to `it'.
-
-The variable `it' is available within BODY.
-
-FIRST and BODY are otherwise as documented for `prog1'."
- (declare (debug t)
- (indent 1))
- `(let ((it ,first))
- (progn ,@body)
- it))
-
-;;;###autoload
-(defmacro anaphoric-prog2 (form1 form2 &rest body)
- "Like `prog2', but the result of evaluating FORM2 is bound to `it'.
-
-The variable `it' is available within BODY.
-
-FORM1, FORM2, and BODY are otherwise as documented for `prog2'."
- (declare (debug t)
- (indent 2))
- `(progn
- ,form1
- (let ((it ,form2))
- (progn ,@body)
- it)))
-
-;;;###autoload
-(defmacro anaphoric-when (cond &rest body)
- "Like `when', but the result of evaluating COND is bound to `it'.
-
-The variable `it' is available within BODY.
-
-COND and BODY are otherwise as documented for `when'."
- (declare (debug when)
- (indent 1))
- `(anaphoric-if ,cond
- (progn ,@body)))
-
-;;;###autoload
-(defmacro anaphoric-while (test &rest body)
- "Like `while', but the result of evaluating TEST is bound to `it'.
-
-The variable `it' is available within BODY.
-
-TEST and BODY are otherwise as documented for `while'."
- (declare (debug t)
- (indent 1))
- `(do ((it ,test ,test))
- ((not it))
- ,@body))
-
-;;;###autoload
-(defmacro anaphoric-and (&rest conditions)
- "Like `and', but the result of the previous condition is bound to `it'.
-
-The variable `it' is available within all CONDITIONS after the
-initial one.
-
-CONDITIONS are otherwise as documented for `and'.
-
-Note that some implementations of this macro bind only the first
-condition to `it', rather than each successive condition."
- (declare (debug t))
- (cond
- ((null conditions)
- t)
- ((null (cdr conditions))
- (car conditions))
- (t
- `(anaphoric-if ,(car conditions) (anaphoric-and ,@(cdr conditions))))))
-
-;;;###autoload
-(defmacro anaphoric-cond (&rest clauses)
- "Like `cond', but the result of each condition is bound to `it'.
-
-The variable `it' is available within the remainder of each of CLAUSES.
-
-CLAUSES are otherwise as documented for `cond'."
- (declare (debug cond))
- (if (null clauses)
- nil
- (let ((cl1 (car clauses))
- (sym (gensym)))
- `(let ((,sym ,(car cl1)))
- (if ,sym
- (if (null ',(cdr cl1))
- ,sym
- (let ((it ,sym)) ,@(cdr cl1)))
- (anaphoric-cond ,@(cdr clauses)))))))
-
-;;;###autoload
-(defmacro anaphoric-lambda (args &rest body)
- "Like `lambda', but the function may refer to itself as `self'.
-
-ARGS and BODY are otherwise as documented for `lambda'."
- (declare (debug lambda)
- (indent defun))
- `(cl-labels ((self ,args ,@body))
- #'self))
-
-;;;###autoload
-(defmacro anaphoric-block (name &rest body)
- "Like `block', but the result of the previous expression is bound to `it'.
-
-The variable `it' is available within all expressions of BODY
-except the initial one.
-
-NAME and BODY are otherwise as documented for `block'."
- (declare (debug block)
- (indent 1))
- `(cl-block ,name
- ,(funcall (anaphoric-lambda (body)
- (cl-case (length body)
- (0 nil)
- (1 (car body))
- (t `(let ((it ,(car body)))
- ,(self (cdr body))))))
- body)))
-
-;;;###autoload
-(defmacro anaphoric-case (expr &rest clauses)
- "Like `case', but the result of evaluating EXPR is bound to `it'.
-
-The variable `it' is available within CLAUSES.
-
-EXPR and CLAUSES are otherwise as documented for `case'."
- (declare (debug case)
- (indent 1))
- `(let ((it ,expr))
- (cl-case it ,@clauses)))
-
-;;;###autoload
-(defmacro anaphoric-ecase (expr &rest clauses)
- "Like `ecase', but the result of evaluating EXPR is bound to `it'.
-
-The variable `it' is available within CLAUSES.
-
-EXPR and CLAUSES are otherwise as documented for `ecase'."
- (declare (debug ecase)
- (indent 1))
- `(let ((it ,expr))
- (cl-ecase it ,@clauses)))
-
-;;;###autoload
-(defmacro anaphoric-typecase (expr &rest clauses)
- "Like `typecase', but the result of evaluating EXPR is bound to `it'.
-
-The variable `it' is available within CLAUSES.
-
-EXPR and CLAUSES are otherwise as documented for `typecase'."
- (declare (debug typecase)
- (indent 1))
- `(let ((it ,expr))
- (cl-typecase it ,@clauses)))
-
-;;;###autoload
-(defmacro anaphoric-etypecase (expr &rest clauses)
- "Like `etypecase', but result of evaluating EXPR is bound to `it'.
-
-The variable `it' is available within CLAUSES.
-
-EXPR and CLAUSES are otherwise as documented for `etypecase'."
- (declare (debug etypecase)
- (indent 1))
- `(let ((it ,expr))
- (cl-etypecase it ,@clauses)))
-
-;;;###autoload
-(defmacro anaphoric-let (form &rest body)
- "Like `let', but the result of evaluating FORM is bound to `it'.
-
-FORM and BODY are otherwise as documented for `let'."
- (declare (debug let)
- (indent 1))
- `(let ((it ,form))
- (progn ,@body)))
-
-;;;###autoload
-(defmacro anaphoric-+ (&rest numbers-or-markers)
- "Like `+', but the result of evaluating the previous expression is bound to `it'.
-
-The variable `it' is available within all expressions after the
-initial one.
-
-NUMBERS-OR-MARKERS are otherwise as documented for `+'."
- (declare (debug t))
- (cond
- ((null numbers-or-markers)
- 0)
- (t
- `(let ((it ,(car numbers-or-markers)))
- (+ it (anaphoric-+ ,@(cdr numbers-or-markers)))))))
-
-;;;###autoload
-(defmacro anaphoric-- (&optional number-or-marker &rest numbers-or-markers)
- "Like `-', but the result of evaluating the previous expression is bound to `it'.
-
-The variable `it' is available within all expressions after the
-initial one.
-
-NUMBER-OR-MARKER and NUMBERS-OR-MARKERS are otherwise as
-documented for `-'."
- (declare (debug t))
- (cond
- ((null number-or-marker)
- 0)
- ((null numbers-or-markers)
- `(- ,number-or-marker))
- (t
- `(let ((it ,(car numbers-or-markers)))
- (- ,number-or-marker (+ it (anaphoric-+ ,@(cdr numbers-or-markers))))))))
-
-;;;###autoload
-(defmacro anaphoric-* (&rest numbers-or-markers)
- "Like `*', but the result of evaluating the previous expression is bound to `it'.
-
-The variable `it' is available within all expressions after the
-initial one.
-
-NUMBERS-OR-MARKERS are otherwise as documented for `*'."
- (declare (debug t))
- (cond
- ((null numbers-or-markers)
- 1)
- (t
- `(let ((it ,(car numbers-or-markers)))
- (* it (anaphoric-* ,@(cdr numbers-or-markers)))))))
-
-;;;###autoload
-(defmacro anaphoric-/ (dividend divisor &rest divisors)
- "Like `/', but the result of evaluating the previous divisor is bound to `it'.
-
-The variable `it' is available within all expressions after the
-first divisor.
-
-DIVIDEND, DIVISOR, and DIVISORS are otherwise as documented for `/'."
- (declare (debug t))
- (cond
- ((null divisors)
- `(/ ,dividend ,divisor))
- (t
- `(let ((it ,divisor))
- (/ ,dividend (* it (anaphoric-* ,@divisors)))))))
-
-(provide 'anaphora)
-
-;;
-;; Emacs
-;;
-;; Local Variables:
-;; indent-tabs-mode: nil
-;; mangle-whitespace: t
-;; require-final-newline: t
-;; coding: utf-8
-;; byte-compile-warnings: (not cl-functions redefine)
-;; End:
-;;
-;; LocalWords: Anaphora EXPR awhen COND ARGS alambda ecase typecase
-;; LocalWords: etypecase aprog aand acond ablock acase aecase alet
-;; LocalWords: atypecase aetypecase
-;;
-
-;;; anaphora.el ends here
diff --git a/elpa/anaphora-20180618.2200/anaphora.elc b/elpa/anaphora-20180618.2200/anaphora.elc
deleted file mode 100644
index 52398f355f310d3690732be62fa2667f8e5bf07d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 10810
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
diff --git a/elpa/archives/gnu/archive-contents b/elpa/archives/gnu/archive-contents
deleted file mode 100644
index c7016138..00000000
--- a/elpa/archives/gnu/archive-contents
+++ /dev/null
@@ -1,2406 +0,0 @@
-(1
- (ace-window .
- [(0 9 0)
- ((avy
- (0 2 0)))
- "Quickly switch windows." single
- ((:keywords "window" "location")
- (:authors
- ("Oleh Krehel" . "ohwoeowho@gmail.com"))
- (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com")
- (:url . "https://github.com/abo-abo/ace-window"))])
- (ack .
- [(1 8)
- nil "interface to ack-like tools" tar
- ((:url . "https://github.com/leoliu/ack-el")
- (:maintainer "João Távora" . "joaotavora@gmail.com")
- (:authors
- ("Leo Liu" . "sdl.web@gmail.com"))
- (:keywords "tools" "processes" "convenience"))])
- (ada-mode .
- [(7 0 1)
- ((uniquify-files
- (1 0 1))
- (wisi
- (3 0 1))
- (emacs
- (25 0)))
- "major-mode for editing Ada sources" tar
- ((:url . "http://www.nongnu.org/ada-mode/")
- (:maintainer "Stephen Leake" . "stephen_leake@stephe-leake.org")
- (:authors
- ("Stephen Leake" . "stephen_leake@stephe-leake.org"))
- (:keywords "languages" "ada"))])
- (ada-ref-man .
- [(2012 5)
- nil "Ada Reference Manual 2012" tar
- ((:url . "http://stephe-leake.org/ada/arm.html")
- (:maintainer "Stephen Leake" . "stephen_leake@member.fsf.org")
- (:authors
- ("Stephen Leake" . "stephen_leake@member.fsf.org"))
- (:keywords "languages" "ada"))])
- (adaptive-wrap .
- [(0 7)
- nil "Smart line-wrapping with wrap-prefix" single
- ((:url . "http://elpa.gnu.org/packages/adaptive-wrap.html")
- (:authors
- ("Stephen Berman" . "stephen.berman@gmx.net")
- ("Stefan Monnier" . "monnier@iro.umontreal.ca"))
- (:maintainer "Stephen Berman" . "stephen.berman@gmx.net"))])
- (adjust-parens .
- [(3 1)
- nil "Indent and dedent Lisp code, automatically adjust close parens" tar
- ((:maintainer "Barry O'Reilly" . "gundaetiapo@gmail.com")
- (:authors
- ("Barry O'Reilly" . "gundaetiapo@gmail.com"))
- (:url . "http://elpa.gnu.org/packages/adjust-parens.html"))])
- (advice-patch .
- [(0 1)
- ((emacs
- (24 4)))
- "Use patches to advise the inside of functions" single
- ((:url . "http://elpa.gnu.org/packages/advice-patch.html")
- (:authors
- ("Stefan Monnier" . "monnier@iro.umontreal.ca"))
- (:maintainer "Stefan Monnier" . "monnier@iro.umontreal.ca"))])
- (aggressive-indent .
- [(1 8 3)
- ((emacs
- (24 1))
- (cl-lib
- (0 5)))
- "Minor mode to aggressively keep your code always indented" single
- ((:keywords "indent" "lisp" "maint" "tools")
- (:authors
- ("Artur Malabarba" . "emacs@endlessparentheses.com"))
- (:maintainer "Artur Malabarba" . "emacs@endlessparentheses.com")
- (:url . "https://github.com/Malabarba/aggressive-indent-mode"))])
- (ahungry-theme .
- [(1 10 0)
- ((emacs
- (24)))
- "Ahungry color theme for Emacs. Make sure to (load-theme 'ahungry)." tar
- ((:url . "https://github.com/ahungry/color-theme-ahungry")
- (:maintainer "Matthew Carter" . "m@ahungry.com")
- (:authors
- ("Matthew Carter" . "m@ahungry.com"))
- (:keywords "ahungry" "palette" "color" "theme" "emacs" "color-theme" "deftheme"))])
- (all .
- [(1 0)
- nil "Edit all lines matching a given regexp" single
- ((:url . "http://elpa.gnu.org/packages/all.html")
- (:keywords "matching")
- (:authors
- ("Per Abrahamsen" . "abraham@dina.kvl.dk"))
- (:maintainer "Per Abrahamsen" . "abraham@dina.kvl.dk"))])
- (ampc .
- [(0 2)
- nil "Asynchronous Music Player Controller" single
- ((:url . "http://elpa.gnu.org/packages/ampc.html")
- (:keywords "ampc" "mpc" "mpd")
- (:authors
- ("Christopher Schmidt" . "christopher@ch.ristopher.com"))
- (:maintainer nil . "emacs-devel@gnu.org"))])
- (arbitools .
- [(0 977)
- ((cl-lib
- (0 5)))
- "Package for chess tournaments administration" single
- ((:url . "http://elpa.gnu.org/packages/arbitools.html")
- (:authors
- ("David Gonzalez Gandara" . "dggandara@member.fsf.org"))
- (:maintainer "David Gonzalez Gandara" . "dggandara@member.fsf.org"))])
- (ascii-art-to-unicode .
- [(1 12)
- nil "a small artist adjunct" single
- ((:keywords "ascii" "unicode" "box-drawing")
- (:authors
- ("Thien-Thi Nguyen" . "ttn@gnu.org"))
- (:maintainer "Thien-Thi Nguyen" . "ttn@gnu.org")
- (:url . "http://www.gnuvola.org/software/aa2u/"))])
- (async .
- [(1 9 3)
- ((cl-lib
- (0 5))
- (nadvice
- (0 3)))
- "Asynchronous processing in Emacs" tar
- ((:url . "https://github.com/jwiegley/emacs-async")
- (:maintainer "John Wiegley" . "jwiegley@gmail.com")
- (:authors
- ("John Wiegley" . "jwiegley@gmail.com"))
- (:keywords "async"))])
- (auctex .
- [(12 2 0)
- ((emacs
- (24 1))
- (cl-lib
- (0 5)))
- "Integrated environment for *TeX*" tar
- ((:url . "http://www.gnu.org/software/auctex/")
- (:maintainer nil . "auctex-devel@gnu.org")
- (:keywords "tex" "latex" "texinfo" "context" "doctex" "preview-latex"))])
- (aumix-mode .
- [(7)
- nil "run the aumix program in a buffer" single
- ((:keywords "multimedia" "mixer" "aumix")
- (:authors
- ("Kevin Ryde" . "user42_kevin@yahoo.com.au"))
- (:maintainer "Kevin Ryde" . "user42_kevin@yahoo.com.au")
- (:url . "http://user42.tuxfamily.org/aumix-mode/index.html"))])
- (auto-correct .
- [(1 1 4)
- nil "Remembers and automatically fixes past corrections" single
- ((:url . "http://elpa.gnu.org/packages/auto-correct.html")
- (:keywords "editing")
- (:authors
- ("Ian Dunn" . "dunni@gnu.org"))
- (:maintainer "Ian Dunn" . "dunni@gnu.org"))])
- (auto-overlays .
- [(0 10 9)
- nil "Automatic regexp-delimited overlays" tar
- ((:url . "http://www.dr-qubit.org/emacs.php")
- (:maintainer "Toby Cubitt" . "toby-predictive@dr-qubit.org")
- (:authors
- ("Toby Cubitt" . "toby-predictive@dr-qubit.org"))
- (:keywords "extensions"))])
- (avy .
- [(0 5 0)
- ((emacs
- (24 1))
- (cl-lib
- (0 5)))
- "Jump to arbitrary positions in visible text and select text quickly." tar
- ((:url . "https://github.com/abo-abo/avy")
- (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com")
- (:authors
- ("Oleh Krehel" . "ohwoeowho@gmail.com"))
- (:keywords "point" "location"))])
- (bbdb .
- [(3 2)
- ((emacs
- (24)))
- "core of BBDB" tar
- ((:maintainer "Roland Winkler" . "winkler@gnu.org")
- (:url . "http://elpa.gnu.org/packages/bbdb.html"))])
- (beacon .
- [(1 3 3)
- ((seq
- (2 14)))
- "Highlight the cursor whenever the window scrolls" single
- ((:keywords "convenience")
- (:authors
- ("Artur Malabarba" . "emacs@endlessparentheses.com"))
- (:maintainer "Artur Malabarba" . "emacs@endlessparentheses.com")
- (:url . "https://github.com/Malabarba/beacon"))])
- (bluetooth .
- [(0 1 2)
- ((emacs
- (25 1))
- (dash
- (2 12 0)))
- "A Major mode for Bluetooth devices" single
- ((:keywords "hardware")
- (:authors
- ("Raffael Stocker" . "r.stocker@mnet-mail.de"))
- (:maintainer "Raffael Stocker" . "r.stocker@mnet-mail.de")
- (:url . "https://gitlab.com/rstocker/emacs-bluetooth"))])
- (bnf-mode .
- [(0 4 4)
- ((cl-lib
- (0 5))
- (emacs
- (24 3)))
- "Major mode for editing BNF grammars." tar
- ((:url . "https://github.com/sergeyklay/bnf-mode")
- (:maintainer "Serghei Iakovlev" . "egrep@protonmail.ch")
- (:authors
- ("Serghei Iakovlev" . "egrep@protonmail.ch"))
- (:keywords "languages"))])
- (brief .
- [(5 87)
- nil "Brief Editor Emulator (Brief Mode)" tar
- ((:maintainer "Luke Lee" . "luke.yx.lee@gmail.com")
- (:authors
- ("Luke Lee" . "luke.yx.lee@gmail.com"))
- (:keywords "brief" "emulations" "crisp")
- (:url . "http://elpa.gnu.org/packages/brief.html"))])
- (buffer-expose .
- [(0 4 3)
- ((emacs
- (25))
- (cl-lib
- (0 5)))
- "Visual buffer switching using a window grid" single
- ((:keywords "convenience")
- (:authors
- ("Clemens Radermacher" . "clemera@posteo.net"))
- (:maintainer "Clemens Radermacher" . "clemera@posteo.net")
- (:url . "https://github.com/clemera/buffer-expose"))])
- (bug-hunter .
- [(1 3 1)
- ((seq
- (1 3))
- (cl-lib
- (0 5)))
- "Hunt down errors by bisecting elisp files" single
- ((:keywords "lisp")
- (:authors
- ("Artur Malabarba" . "emacs@endlessparentheses.com"))
- (:maintainer "Artur Malabarba" . "emacs@endlessparentheses.com")
- (:url . "https://github.com/Malabarba/elisp-bug-hunter"))])
- (caps-lock .
- [(1 0)
- nil "Caps-lock as a minor mode" single
- ((:url . "http://elpa.gnu.org/packages/caps-lock.html")
- (:authors
- ("Stefan Monnier" . "monnier@iro.umontreal.ca"))
- (:maintainer "Stefan Monnier" . "monnier@iro.umontreal.ca"))])
- (captain .
- [(1 0 3)
- nil "CAPiTalization is Automatic IN emacs" single
- ((:url . "http://elpa.gnu.org/packages/captain.html")
- (:keywords "editing")
- (:authors
- ("Ian Dunn" . "dunni@gnu.org"))
- (:maintainer "Ian Dunn" . "dunni@gnu.org"))])
- (chess .
- [(2 0 4)
- ((cl-lib
- (0 5)))
- "Play chess in GNU Emacs" tar
- ((:maintainer "Mario Lang" . "mlang@delysid.org")
- (:authors
- ("John Wiegley" . "johnw@gnu.org"))
- (:keywords "games")
- (:url . "http://elpa.gnu.org/packages/chess.html"))])
- (cl-generic .
- [(0 3)
- nil "Forward cl-generic compatibility for Emacs<25" single
- ((:url . "http://elpa.gnu.org/packages/cl-generic.html")
- (:authors
- ("Stefan Monnier" . "monnier@iro.umontreal.ca"))
- (:maintainer "Stefan Monnier" . "monnier@iro.umontreal.ca"))])
- (cl-lib .
- [(0 6 1)
- nil "Forward cl-lib compatibility library for Emacs<24.3" single
- ((:url . "http://elpa.gnu.org/packages/cl-lib.html")
- (:authors
- ("Stefan Monnier" . "monnier@iro.umontreal.ca"))
- (:maintainer "Stefan Monnier" . "monnier@iro.umontreal.ca"))])
- (cl-print .
- [(1 0)
- ((emacs
- (25)))
- "CL-style generic printing" single
- ((:url . "http://elpa.gnu.org/packages/cl-print.html")
- (:authors
- ("Stefan Monnier" . "monnier@iro.umontreal.ca"))
- (:maintainer "Stefan Monnier" . "monnier@iro.umontreal.ca"))])
- (clipboard-collector .
- [(0 2)
- ((emacs
- (25)))
- "Collect clipboard entries according to regex rules" single
- ((:keywords "convenience")
- (:authors
- ("Clemens Radermacher" . "clemera@posteo.net"))
- (:maintainer "Clemens Radermacher" . "clemera@posteo.net")
- (:url . "https://github.com/clemera/clipboard-collector"))])
- (cobol-mode .
- [(1 0 0)
- ((cl-lib
- (0 5)))
- "Mode for editing COBOL code" single
- ((:url . "http://elpa.gnu.org/packages/cobol-mode.html")
- (:keywords "languages")
- (:authors
- ("Edward Hart" . "edward.dan.hart@gmail.com"))
- (:maintainer "Edward Hart" . "edward.dan.hart@gmail.com"))])
- (coffee-mode .
- [(0 4 1 1)
- nil "Major mode for CoffeeScript files" single
- ((:keywords "coffeescript" "major" "mode")
- (:authors
- ("Chris Wanstrath" . "chris@ozmm.org"))
- (:maintainer "Chris Wanstrath" . "chris@ozmm.org")
- (:url . "http://github.com/defunkt/coffee-mode"))])
- (compact-docstrings .
- [(0 1)
- nil "Shrink blank lines in docstrings and doc comments" single
- ((:keywords "convenience" "faces" "lisp" "maint" "c")
- (:authors
- ("Clément Pit-Claudel" . "clement.pitclaudel@live.com"))
- (:maintainer "Clément Pit-Claudel" . "clement.pitclaudel@live.com")
- (:url . "https://github.com/cpitclaudel/compact-docstrings"))])
- (company .
- [(0 9 12)
- ((emacs
- (24 3)))
- "Modular text completion framework" tar
- ((:url . "http://company-mode.github.io/")
- (:maintainer "Dmitry Gutov" . "dgutov@yandex.ru")
- (:authors
- ("Nikolaj Schumacher"))
- (:keywords "abbrev" "convenience" "matching"))])
- (company-ebdb .
- [(1 1)
- ((company
- (0 9 4))
- (ebdb
- (0 2)))
- "company-mode completion backend for EBDB in message-mode" single
- ((:url . "http://elpa.gnu.org/packages/company-ebdb.html")
- (:authors
- ("Jan Tatarik" . "jan.tatarik@gmail.com"))
- (:maintainer "Eric Abrahamsen" . "eric@ericabrahamsen.net"))])
- (company-math .
- [(1 3)
- ((company
- (0 8 0))
- (math-symbol-lists
- (1 2)))
- "Completion backends for unicode math symbols and latex tags" tar
- ((:url . "https://github.com/vspinu/company-math")
- (:maintainer "Vitalie Spinu" . "spinuvit@gmail.com")
- (:authors
- ("Vitalie Spinu" . "spinuvit@gmail.com"))
- (:keywords "unicode" "symbols" "completion"))])
- (company-statistics .
- [(0 2 3)
- ((emacs
- (24 3))
- (company
- (0 8 5)))
- "Sort candidates using completion history" tar
- ((:url . "https://github.com/company-mode/company-statistics")
- (:maintainer "Ingo Lohmar" . "i.lohmar@gmail.com")
- (:authors
- ("Ingo Lohmar" . "i.lohmar@gmail.com"))
- (:keywords "abbrev" "convenience" "matching"))])
- (context-coloring .
- [(8 1 0)
- ((emacs
- (24 3)))
- "Highlight by scope" tar
- ((:url . "https://github.com/jacksonrayhamilton/context-coloring")
- (:maintainer "Jackson Ray Hamilton" . "jackson@jacksonrayhamilton.com")
- (:authors
- ("Jackson Ray Hamilton" . "jackson@jacksonrayhamilton.com"))
- (:keywords "convenience" "faces" "tools"))])
- (crisp .
- [(1 3 6)
- nil "CRiSP/Brief Emacs emulator" single
- ((:url . "http://elpa.gnu.org/packages/crisp.html")
- (:keywords "emulations" "brief" "crisp")
- (:authors
- ("Gary D. Foster" . "Gary.Foster@Corp.Sun.COM"))
- (:maintainer "Luke Lee" . "luke.yx.lee@gmail.com"))])
- (csv-mode .
- [(1 12)
- ((emacs
- (24 1))
- (cl-lib
- (0 5)))
- "Major mode for editing comma/char separated values" tar
- ((:maintainer nil . "emacs-devel@gnu.org")
- (:authors
- ("\"Francis J. Wright\"" . "F.J.Wright@qmul.ac.uk"))
- (:keywords "convenience")
- (:url . "http://elpa.gnu.org/packages/csv-mode.html"))])
- (cycle-quotes .
- [(0 1)
- nil "Cycle between quote styles" tar
- ((:maintainer "Simen Heggestøyl" . "simenheg@gmail.com")
- (:authors
- ("Simen Heggestøyl" . "simenheg@gmail.com"))
- (:keywords "convenience")
- (:url . "http://elpa.gnu.org/packages/cycle-quotes.html"))])
- (darkroom .
- [(0 2)
- ((cl-lib
- (0 5)))
- "Remove visual distractions and focus on writing" single
- ((:url . "http://elpa.gnu.org/packages/darkroom.html")
- (:keywords "convenience" "emulations")
- (:authors
- ("João Távora" . "joaotavora@gmail.com"))
- (:maintainer "João Távora" . "joaotavora@gmail.com"))])
- (dash .
- [(2 12 0)
- nil "A modern list library for Emacs" tar
- ((:maintainer "Magnar Sveen" . "magnars@gmail.com")
- (:authors
- ("Magnar Sveen" . "magnars@gmail.com"))
- (:keywords "lists")
- (:url . "http://elpa.gnu.org/packages/dash.html"))])
- (dbus-codegen .
- [(0 1)
- ((cl-lib
- (0 5)))
- "Lisp code generation for D-Bus." single
- ((:url . "http://elpa.gnu.org/packages/dbus-codegen.html")
- (:keywords "comm" "dbus" "convenience")
- (:authors
- ("Daiki Ueno" . "ueno@gnu.org"))
- (:maintainer nil . "emacs-devel@gnu.org"))])
- (debbugs .
- [(0 22)
- ((emacs
- (25 1))
- (soap-client
- (3 1 5)))
- "SOAP library to access debbugs servers" tar
- ((:maintainer "Michael Albinus" . "michael.albinus@gmx.de")
- (:authors
- ("Michael Albinus" . "michael.albinus@gmx.de"))
- (:keywords "comm" "hypermedia")
- (:url . "http://elpa.gnu.org/packages/debbugs.html"))])
- (delight .
- [(1 5)
- ((cl-lib
- (0 5))
- (nadvice
- (0 3)))
- "A dimmer switch for your lighter text" single
- ((:keywords "convenience")
- (:authors
- ("Phil Sainty" . "psainty@orcon.net.nz"))
- (:maintainer "Phil Sainty" . "psainty@orcon.net.nz")
- (:url . "https://savannah.nongnu.org/projects/delight"))])
- (dict-tree .
- [(0 14)
- ((trie
- (0 3))
- (tNFA
- (0 1 1))
- (heap
- (0 3)))
- "Dictionary data structure" single
- ((:keywords "extensions" "matching" "data structures trie" "tree" "dictionary" "completion" "regexp")
- (:authors
- ("Toby Cubitt" . "toby-predictive@dr-qubit.org"))
- (:maintainer "Toby Cubitt" . "toby-predictive@dr-qubit.org")
- (:url . "http://www.dr-qubit.org/emacs.php"))])
- (diff-hl .
- [(1 8 7)
- ((cl-lib
- (0 2))
- (emacs
- (24 3)))
- "Highlight uncommitted changes using VC" tar
- ((:url . "https://github.com/dgutov/diff-hl")
- (:maintainer "Dmitry Gutov" . "dgutov@yandex.ru")
- (:authors
- ("Dmitry Gutov" . "dgutov@yandex.ru"))
- (:keywords "vc" "diff"))])
- (diffview .
- [(1 0)
- nil "View diffs in side-by-side format" single
- ((:keywords "convenience" "diff")
- (:authors
- ("Mitchel Humpherys" . "mitch.special@gmail.com"))
- (:maintainer "Mitchel Humpherys" . "mitch.special@gmail.com")
- (:url . "https://github.com/mgalgs/diffview-mode"))])
- (dired-du .
- [(0 5 2)
- ((emacs
- (24 4))
- (cl-lib
- (0 5)))
- "Dired with recursive directory sizes" tar
- ((:maintainer "Tino Calancha" . "tino.calancha@gmail.com")
- (:authors
- ("Tino Calancha" . "tino.calancha@gmail.com"))
- (:keywords "files" "unix" "convenience")
- (:url . "http://elpa.gnu.org/packages/dired-du.html"))])
- (dired-git-info .
- [(0 3 1)
- ((emacs
- (25)))
- "Show git info in dired" single
- ((:keywords "dired" "files")
- (:authors
- ("Clemens Radermacher" . "clemera@posteo.net"))
- (:maintainer "Clemens Radermacher" . "clemera@posteo.net")
- (:url . "https://github.com/clemera/dired-git-info"))])
- (disk-usage .
- [(1 3 3)
- ((emacs
- (26 1)))
- "Sort and browse disk usage listings" single
- ((:keywords "files" "convenience" "tools")
- (:authors
- ("Pierre Neidhardt" . "mail@ambrevar.xyz"))
- (:maintainer "Pierre Neidhardt" . "mail@ambrevar.xyz")
- (:url . "https://gitlab.com/Ambrevar/emacs-disk-usage"))])
- (dismal .
- [(1 5)
- ((cl-lib
- (0)))
- "Dis Mode Ain't Lotus: Spreadsheet program Emacs" tar
- ((:maintainer "UnMaintainer" . "emacs-devel@gnu.org")
- (:authors
- (nil . "David Fox, fox@cs.nyu.edu")
- (nil . "Frank E. Ritter, ritter@cs.cmu.edu"))
- (:url . "http://elpa.gnu.org/packages/dismal.html"))])
- (djvu .
- [(1 1)
- nil "Edit and view Djvu files via djvused" single
- ((:url . "http://elpa.gnu.org/packages/djvu.html")
- (:keywords "files" "wp")
- (:authors
- ("Roland Winkler" . "winkler@gnu.org"))
- (:maintainer "Roland Winkler" . "winkler@gnu.org"))])
- (docbook .
- [(0 1)
- nil "Info-like viewer for DocBook" single
- ((:url . "http://elpa.gnu.org/packages/docbook.html")
- (:keywords "docs" "help")
- (:authors
- ("Chong Yidong" . "cyd@gnu.org"))
- (:maintainer "Chong Yidong" . "cyd@gnu.org"))])
- (dts-mode .
- [(0 1 0)
- nil "Major mode for Device Tree source files" single
- ((:url . "http://elpa.gnu.org/packages/dts-mode.html")
- (:keywords "languages")
- (:authors
- ("Ben Gamari" . "ben@smart-cactus.org"))
- (:maintainer "Ben Gamari" . "ben@smart-cactus.org"))])
- (easy-kill .
- [(0 9 3)
- ((emacs
- (24))
- (cl-lib
- (0 5)))
- "kill & mark things easily" tar
- ((:url . "https://github.com/leoliu/easy-kill")
- (:maintainer "Leo Liu" . "sdl.web@gmail.com")
- (:authors
- ("Leo Liu" . "sdl.web@gmail.com"))
- (:keywords "killing" "convenience"))])
- (ebdb .
- [(0 6 16)
- ((emacs
- (25 1))
- (cl-lib
- (0 5))
- (seq
- (2 15)))
- "Contact management package" tar
- ((:url . "https://github.com/girzel/ebdb")
- (:maintainer "Eric Abrahamsen" . "eric@ericabrahamsen.net")
- (:authors
- ("Eric Abrahamsen" . "eric@ericabrahamsen.net"))
- (:keywords "convenience" "mail"))])
- (ebdb-gnorb .
- [(1 0 2)
- ((gnorb
- (1 1 0))
- (ebdb
- (0 2)))
- "Utilities for connecting EBDB to Gnorb" single
- ((:url . "http://elpa.gnu.org/packages/ebdb-gnorb.html")
- (:authors
- ("Eric Abrahamsen" . "eric@ericabrahamsen.net"))
- (:maintainer "Eric Abrahamsen" . "eric@ericabrahamsen.net"))])
- (ebdb-i18n-chn .
- [(1 3)
- ((pyim
- (1 6 0))
- (ebdb
- (0 6 17)))
- "China-specific internationalization support for EBDB" single
- ((:url . "http://elpa.gnu.org/packages/ebdb-i18n-chn.html")
- (:authors
- ("Eric Abrahamsen" . "eric@ericabrahamsen.net"))
- (:maintainer "Eric Abrahamsen" . "eric@ericabrahamsen.net"))])
- (ediprolog .
- [(1 2)
- nil "Emacs Does Interactive Prolog" single
- ((:keywords "languages" "processes")
- (:authors
- ("Markus Triska" . "triska@metalevel.at"))
- (:maintainer "Markus Triska" . "triska@metalevel.at")
- (:url . "https://www.metalevel.at/ediprolog/"))])
- (eev .
- [(20200224)
- ((emacs
- (24 1)))
- "Support for e-scripts (eepitch blocks, elisp hyperlinks, etc)" tar
- ((:url . "http://angg.twu.net/#eev")
- (:maintainer "Eduardo Ochs" . "eduardoochs@gmail.com")
- (:authors
- ("Eduardo Ochs" . "eduardoochs@gmail.com"))
- (:keywords "lisp" "e-scripts"))])
- (eglot .
- [(1 6)
- ((emacs
- (26 1))
- (jsonrpc
- (1 0 7))
- (flymake
- (1 0 5)))
- "Client for Language Server Protocol (LSP) servers" tar
- ((:url . "https://github.com/joaotavora/eglot")
- (:maintainer "João Távora" . "joaotavora@gmail.com")
- (:authors
- ("João Távora" . "joaotavora@gmail.com"))
- (:keywords "convenience" "languages"))])
- (el-search .
- [(1 12 6 1)
- ((emacs
- (25))
- (stream
- (2 2 4))
- (cl-print
- (1 0)))
- "Expression based interactive search for Emacs Lisp" tar
- ((:maintainer "Michael Heerdegen" . "michael_heerdegen@web.de")
- (:authors
- ("Michael Heerdegen" . "michael_heerdegen@web.de"))
- (:keywords "lisp")
- (:url . "http://elpa.gnu.org/packages/el-search.html"))])
- (eldoc-eval .
- [(0 1)
- nil "Enable eldoc support when minibuffer is in use." single
- ((:url . "http://elpa.gnu.org/packages/eldoc-eval.html")
- (:authors
- ("Thierry Volpiatto" . "thierry.volpiatto@gmail.com"))
- (:maintainer "Thierry Volpiatto" . "thierry.volpiatto@gmail.com"))])
- (electric-spacing .
- [(5 0)
- nil "Insert operators with surrounding spaces smartly" single
- ((:url . "http://elpa.gnu.org/packages/electric-spacing.html")
- (:authors
- ("William Xu" . "william.xwl@gmail.com"))
- (:maintainer "William Xu" . "william.xwl@gmail.com"))])
- (elisp-benchmarks .
- [(1 4)
- nil "elisp benchmarks collection" tar
- ((:maintainer "Andrea Corallo" . "akrl@sdf.org")
- (:authors
- ("Andrea Corallo" . "akrl@sdf.org"))
- (:keywords "languages" "lisp")
- (:url . "http://elpa.gnu.org/packages/elisp-benchmarks.html"))])
- (enwc .
- [(2 0)
- ((emacs
- (25 1)))
- "The Emacs Network Client" tar
- ((:url . "https://savannah.nongnu.org/p/enwc")
- (:maintainer "Ian Dunn" . "dunni@gnu.org")
- (:authors
- ("Ian Dunn" . "dunni@gnu.org"))
- (:keywords "external" "network" "wicd" "manager" "nm"))])
- (epoch-view .
- [(0 0 1)
- nil "Minor mode to visualize epoch timestamps" single
- ((:url . "http://elpa.gnu.org/packages/epoch-view.html")
- (:keywords "data" "timestamp" "epoch" "unix")
- (:authors
- ("Ted Zlatanov" . "tzz@lifelogs.com"))
- (:maintainer "Ted Zlatanov" . "tzz@lifelogs.com"))])
- (ergoemacs-mode .
- [(5 16 10 12)
- ((emacs
- (24 1))
- (undo-tree
- (0 6 5))
- (cl-lib
- (0 5)))
- "Emacs mode based on common modern interface and ergonomics." tar
- ((:url . "https://github.com/ergoemacs/ergoemacs-mode")
- (:maintainer "Matthew L. Fidler" . "matthew.fidler@gmail.com")
- (:authors
- ("Xah Lee" . "xah@xahlee.org")
- ("David Capello" . "davidcapello@gmail.com")
- ("Matthew L. Fidler" . "matthew.fidler@gmail.com"))
- (:keywords "convenience"))])
- (excorporate .
- [(0 8 3)
- ((emacs
- (24 1))
- (fsm
- (0 2 1))
- (soap-client
- (3 1 5))
- (url-http-ntlm
- (2 0 4))
- (nadvice
- (0 3)))
- "Exchange Web Services (EWS) integration" tar
- ((:url . "https://www.fitzsim.org/blog/")
- (:maintainer "Thomas Fitzsimmons" . "fitzsim@fitzsim.org")
- (:authors
- ("Thomas Fitzsimmons" . "fitzsim@fitzsim.org"))
- (:keywords "calendar"))])
- (expand-region .
- [(0 11 0)
- nil "Increase selected region by semantic units." tar
- ((:url . "https://github.com/magnars/expand-region.el")
- (:maintainer "Magnar Sveen" . "magnars@gmail.com")
- (:authors
- ("Magnar Sveen" . "magnars@gmail.com"))
- (:keywords "marking" "region"))])
- (exwm .
- [(0 23)
- ((xelb
- (0 18)))
- "Emacs X Window Manager" tar
- ((:url . "https://github.com/ch11ng/exwm")
- (:maintainer "Chris Feng" . "chris.w.feng@gmail.com")
- (:authors
- ("Chris Feng" . "chris.w.feng@gmail.com"))
- (:keywords "unix"))])
- (f90-interface-browser .
- [(1 1)
- nil "Parse and browse f90 interfaces" single
- ((:authors
- ("Lawrence Mitchell" . "wence@gmx.li"))
- (:maintainer "Lawrence Mitchell" . "wence@gmx.li")
- (:url . "http://github.com/wence-/f90-iface/"))])
- (filladapt .
- [(2 12 2)
- ((emacs
- (24 4)))
- "Adaptive fill" single
- ((:url . "http://elpa.gnu.org/packages/filladapt.html")
- (:authors
- ("Kyle E. Jones" . "kyle_jones@wonderworks.com"))
- (:maintainer nil . "emacs-devel@gnu.org"))])
- (flylisp .
- [(0 2)
- ((emacs
- (24 1))
- (cl-lib
- (0 4)))
- "Color unbalanced parentheses and parentheses inconsistent with indentation" single
- ((:url . "http://elpa.gnu.org/packages/flylisp.html")
- (:authors
- ("Barry O'Reilly" . "gundaetiapo@gmail.com"))
- (:maintainer "Barry O'Reilly" . "gundaetiapo@gmail.com"))])
- (flymake .
- [(1 0 8)
- ((emacs
- (26 1)))
- "A universal on-the-fly syntax checker" single
- ((:url . "http://elpa.gnu.org/packages/flymake.html")
- (:keywords "c" "languages" "tools")
- (:authors
- ("Pavel Kobyakov" . "pk_at_work@yahoo.com"))
- (:maintainer "João Távora" . "joaotavora@gmail.com"))])
- (fountain-mode .
- [(2 7 3)
- ((emacs
- (24 5)))
- "Major mode for screenwriting in Fountain markup" single
- ((:keywords "wp" "text")
- (:authors
- ("Paul W. Rankin" . "pwr@sdf.org"))
- (:maintainer "Paul W. Rankin" . "pwr@sdf.org")
- (:url . "https://fountain-mode.org"))])
- (frame-tabs .
- [(1 1)
- nil "show buffer tabs in side window" single
- ((:url . "http://elpa.gnu.org/packages/frame-tabs.html")
- (:keywords "frames" "tabs")
- (:authors
- ("Martin Rudalics" . "rudalics@gmx.at"))
- (:maintainer "Martin Rudalics" . "rudalics@gmx.at"))])
- (frog-menu .
- [(0 2 10)
- ((emacs
- (26))
- (avy
- (0 4))
- (posframe
- (0 4)))
- "Quickly pick items from ad hoc menus" single
- ((:keywords "convenience")
- (:authors
- ("Clemens Radermacher" . "clemera@posteo.net"))
- (:maintainer "Clemens Radermacher" . "clemera@posteo.net")
- (:url . "https://github.com/clemera/frog-menu"))])
- (fsm .
- [(0 2 1)
- ((emacs
- (24 1))
- (cl-lib
- (0 5)))
- "state machine library" single
- ((:url . "http://elpa.gnu.org/packages/fsm.html")
- (:keywords "extensions")
- (:authors
- ("Magnus Henoch" . "magnus.henoch@gmail.com"))
- (:maintainer "Thomas Fitzsimmons" . "fitzsim@fitzsim.org"))])
- (ggtags .
- [(0 8 13)
- ((emacs
- (24))
- (cl-lib
- (0 5)))
- "emacs frontend to GNU Global source code tagging system" single
- ((:keywords "tools" "convenience")
- (:authors
- ("Leo Liu" . "sdl.web@gmail.com"))
- (:maintainer "Leo Liu" . "sdl.web@gmail.com")
- (:url . "https://github.com/leoliu/ggtags"))])
- (gited .
- [(0 6 0)
- ((emacs
- (24 4))
- (cl-lib
- (0 5)))
- "Operate on Git branches like dired" tar
- ((:maintainer "Tino Calancha" . "tino.calancha@gmail.com")
- (:authors
- ("Tino Calancha" . "tino.calancha@gmail.com"))
- (:keywords "git" "vc" "convenience")
- (:url . "http://elpa.gnu.org/packages/gited.html"))])
- (gle-mode .
- [(1 1)
- ((cl-lib
- (0 5)))
- "Major mode to edit Graphics Layout Engine files" single
- ((:url . "http://elpa.gnu.org/packages/gle-mode.html")
- (:authors
- ("Stefan Monnier" . "monnier@iro.umontreal.ca"))
- (:maintainer "Stefan Monnier" . "monnier@iro.umontreal.ca"))])
- (gnome-c-style .
- [(0 1)
- nil "minor mode for editing GNOME-style C source code" tar
- ((:maintainer "Daiki Ueno" . "ueno@gnu.org")
- (:authors
- ("Daiki Ueno" . "ueno@gnu.org"))
- (:keywords "gnome" "c" "coding style")
- (:url . "http://elpa.gnu.org/packages/gnome-c-style.html"))])
- (gnorb .
- [(1 6 6)
- ((cl-lib
- (0 5)))
- "Glue code between Gnus, Org, and BBDB" tar
- ((:maintainer "Eric Abrahamsen" . "eric@ericabrahamsen.net")
- (:authors
- ("Eric Abrahamsen" . "eric@ericabrahamsen.net"))
- (:keywords "mail" "org" "gnus" "bbdb" "todo" "task")
- (:url . "http://elpa.gnu.org/packages/gnorb.html"))])
- (gnu-elpa-keyring-update .
- [(2019 3)
- nil "Update Emacs's GPG keyring for GNU ELPA" tar
- ((:maintainer "Stefan Monnier" . "monnier@iro.umontreal.ca")
- (:authors
- ("Stefan Monnier" . "monnier@iro.umontreal.ca"))
- (:keywords "maint" "tools")
- (:url . "http://elpa.gnu.org/packages/gnu-elpa-keyring-update.html"))])
- (gnugo .
- [(3 1 0)
- ((ascii-art-to-unicode
- (1 5))
- (xpm
- (1 0 1))
- (cl-lib
- (0 5)))
- "play GNU Go in a buffer" tar
- ((:url . "http://www.gnuvola.org/software/gnugo/")
- (:maintainer "Thien-Thi Nguyen" . "ttn@gnu.org")
- (:authors
- ("Thien-Thi Nguyen" . "ttn@gnu.org"))
- (:keywords "games" "processes"))])
- (gnus-mock .
- [(0 4 4)
- nil "Mock Gnus installation for testing" tar
- ((:maintainer "Eric Abrahamsen" . "eric@ericabrahamsen.net")
- (:authors
- ("Eric Abrahamsen" . "eric@ericabrahamsen.net"))
- (:url . "http://elpa.gnu.org/packages/gnus-mock.html"))])
- (gpastel .
- [(0 5 0)
- ((emacs
- (25 1)))
- "Integrates GPaste with the kill-ring" single
- ((:keywords "tools")
- (:authors
- ("Damien Cassou" . "damien@cassou.me"))
- (:maintainer "Damien Cassou" . "damien@cassou.me")
- (:url . "https://gitlab.petton.fr/DamienCassou/desktop-environment"))])
- (greader .
- [(0 1)
- ((emacs
- (25)))
- "gnamù reader, a reader with espeak tts" tar
- ((:maintainer "Michelangelo Rodriguez" . "michelangelo.rodriguez@gmail.com")
- (:authors
- ("Michelangelo Rodriguez" . "michelangelo.rodriguez@gmail.com"))
- (:keywords "tools" "accessibility")
- (:url . "http://elpa.gnu.org/packages/greader.html"))])
- (guess-language .
- [(0 0 1)
- ((cl-lib
- (0 5))
- (emacs
- (24))
- (nadvice
- (0 1)))
- "Robust automatic language detection" single
- ((:authors
- ("Titus von der Malsburg" . "malsburg@posteo.de"))
- (:maintainer "Titus von der Malsburg" . "malsburg@posteo.de")
- (:url . "https://github.com/tmalsburg/guess-language.el"))])
- (heap .
- [(0 5)
- nil "Heap (a.k.a. priority queue) data structure" single
- ((:keywords "extensions" "data structures" "heap" "priority queue")
- (:authors
- ("Toby Cubitt" . "toby-predictive@dr-qubit.org"))
- (:maintainer "Toby Cubitt" . "toby-predictive@dr-qubit.org")
- (:url . "http://www.dr-qubit.org/emacs.php"))])
- (highlight-escape-sequences .
- [(0 4)
- nil "Highlight escape sequences" single
- ((:keywords "convenience")
- (:authors
- ("Dmitry Gutov" . "dgutov@yandex.ru")
- ("Pavel Matcula" . "dev.plvlml@gmail.com"))
- (:maintainer "Dmitry Gutov" . "dgutov@yandex.ru")
- (:url . "https://github.com/dgutov/highlight-escape-sequences"))])
- (hook-helpers .
- [(1 1 1)
- ((emacs
- (25 1)))
- "Anonymous, modifiable hook functions" tar
- ((:url . "https://savannah.nongnu.org/projects/hook-helpers-el/")
- (:maintainer "Ian Dunn" . "dunni@gnu.org")
- (:authors
- ("Ian Dunn" . "dunni@gnu.org"))
- (:keywords "development" "hooks"))])
- (html5-schema .
- [(0 1)
- nil "Add HTML5 schemas for use by nXML" tar
- ((:url . "https://github.com/validator/validator")
- (:maintainer "Stefan Monnier" . "monnier@iro.umontreal.ca")
- (:authors
- ("Stefan Monnier" . "monnier@iro.umontreal.ca"))
- (:keywords "html" "xml"))])
- (hydra .
- [(0 14 0)
- ((cl-lib
- (0 5)))
- "Make bindings that stick around." tar
- ((:url . "https://github.com/abo-abo/hydra")
- (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com")
- (:authors
- ("Oleh Krehel" . "ohwoeowho@gmail.com"))
- (:keywords "bindings"))])
- (hyperbole .
- [(7 0 6)
- ((emacs
- (24 4)))
- "GNU Hyperbole: The Everyday Hypertextual Information Manager" tar
- ((:url . "http://www.gnu.org/software/hyperbole")
- (:maintainer "Bob Weiner , Mats Lidell" . "matsl@gnu.org")
- (:authors
- ("Bob Weiner"))
- (:keywords "comm" "convenience" "files" "frames" "hypermedia" "languages" "mail" "matching" "mouse" "multimedia" "outlines" "tools" "wp"))])
- (ioccur .
- [(2 4)
- ((emacs
- (24))
- (cl-lib
- (0 5)))
- "Incremental occur" single
- ((:authors
- ("Thierry Volpiatto" . "thierry.volpiatto@gmail.com"))
- (:maintainer "Thierry Volpiatto" . "thierry.volpiatto@gmail.com")
- (:url . "https://github.com/thierryvolpiatto/ioccur"))])
- (iterators .
- [(0 1 1)
- ((emacs
- (25)))
- "Functions for working with iterators" single
- ((:url . "http://elpa.gnu.org/packages/iterators.html")
- (:keywords "extensions" "elisp")
- (:authors
- ("Michael Heerdegen" . "michael_heerdegen@web.de"))
- (:maintainer "Michael Heerdegen" . "michael_heerdegen@web.de"))])
- (ivy .
- [(0 13 0)
- ((emacs
- (24 5)))
- "Incremental Vertical completYon" tar
- ((:url . "https://github.com/abo-abo/swiper")
- (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com")
- (:authors
- ("Oleh Krehel" . "ohwoeowho@gmail.com"))
- (:keywords "matching"))])
- (ivy-explorer .
- [(0 3 2)
- ((emacs
- (25))
- (ivy
- (0 10 0)))
- "Dynamic file browsing grid using ivy" single
- ((:keywords "convenience" "files" "matching")
- (:authors
- ("Clemens Radermacher" . "clemera@posteo.net"))
- (:maintainer "Clemens Radermacher" . "clemera@posteo.net")
- (:url . "https://github.com/clemera/ivy-explorer"))])
- (javaimp .
- [(0 7 1)
- nil "Add and reorder Java import statements in Maven/Gradle projects" tar
- ((:maintainer "Filipp Gunbin" . "fgunbin@fastmail.fm")
- (:authors
- ("Filipp Gunbin" . "fgunbin@fastmail.fm"))
- (:keywords "java" "maven" "gradle" "programming")
- (:url . "http://elpa.gnu.org/packages/javaimp.html"))])
- (jgraph-mode .
- [(1 1)
- ((cl-lib
- (0 5)))
- "Major mode for Jgraph files" single
- ((:url . "http://elpa.gnu.org/packages/jgraph-mode.html")
- (:keywords "tex" "wp")
- (:authors
- ("Stefan Monnier" . "monnier@iro.umontreal.ca"))
- (:maintainer "Stefan Monnier" . "monnier@iro.umontreal.ca"))])
- (js2-mode .
- [(20190219)
- ((emacs
- (24 1))
- (cl-lib
- (0 5)))
- "Improved JavaScript editing mode" tar
- ((:url . "https://github.com/mooz/js2-mode/")
- (:maintainer "Steve Yegge" . "steve.yegge@gmail.com")
- (:authors
- ("Steve Yegge" . "steve.yegge@gmail.com")
- ("mooz" . "stillpedant@gmail.com")
- ("Dmitry Gutov" . "dgutov@yandex.ru"))
- (:keywords "languages" "javascript"))])
- (json-mode .
- [(0 1)
- ((emacs
- (25 1)))
- "Major mode for editing JSON files" single
- ((:url . "http://elpa.gnu.org/packages/json-mode.html")
- (:keywords "data")
- (:authors
- ("Simen Heggestøyl" . "simenheg@gmail.com"))
- (:maintainer "Simen Heggestøyl" . "simenheg@gmail.com"))])
- (jsonrpc .
- [(1 0 9)
- ((emacs
- (25 2)))
- "JSON-RPC library" single
- ((:url . "http://elpa.gnu.org/packages/jsonrpc.html")
- (:keywords "processes" "languages" "extensions")
- (:authors
- ("João Távora" . "joaotavora@gmail.com"))
- (:maintainer "João Távora" . "joaotavora@gmail.com"))])
- (jumpc .
- [(3 0)
- nil "jump to previous insertion points" single
- ((:url . "http://elpa.gnu.org/packages/jumpc.html")
- (:authors
- ("Ivan Kanis" . "ivan@kanis.fr"))
- (:maintainer "Ivan Kanis" . "ivan@kanis.fr"))])
- (kmb .
- [(0 1)
- ((emacs
- (24 1)))
- "Kill buffers matching a regexp w/o confirmation" single
- ((:url . "http://elpa.gnu.org/packages/kmb.html")
- (:keywords "lisp" "convenience")
- (:authors
- ("Tino Calancha" . "tino.calancha@gmail.com"))
- (:maintainer "Tino Calancha"))])
- (landmark .
- [(1 0)
- nil "Neural-network robot that learns landmarks" single
- ((:url . "http://elpa.gnu.org/packages/landmark.html")
- (:keywords "games" "neural network" "adaptive search" "chemotaxis")
- (:authors
- ("Terrence Brannon" . "metaperl@gmail.com"))
- (:maintainer nil . "emacs-devel@gnu.org"))])
- (let-alist .
- [(1 0 6)
- ((emacs
- (24 1)))
- "Easily let-bind values of an assoc-list by their names" single
- ((:url . "http://elpa.gnu.org/packages/let-alist.html")
- (:keywords "extensions" "lisp")
- (:authors
- ("Artur Malabarba" . "emacs@endlessparentheses.com"))
- (:maintainer "Artur Malabarba" . "emacs@endlessparentheses.com"))])
- (lex .
- [(1 1)
- nil "Lexical analyser construction" tar
- ((:maintainer "Stefan Monnier" . "monnier@iro.umontreal.ca")
- (:authors
- ("Stefan Monnier" . "monnier@iro.umontreal.ca"))
- (:url . "http://elpa.gnu.org/packages/lex.html"))])
- (lmc .
- [(1 4)
- ((emacs
- (24))
- (cl-lib
- (0 5)))
- "Little Man Computer in Elisp" single
- ((:url . "http://elpa.gnu.org/packages/lmc.html")
- (:authors
- ("Stefan Monnier" . "monnier@iro.umontreal.ca"))
- (:maintainer "Stefan Monnier" . "monnier@iro.umontreal.ca"))])
- (load-dir .
- [(0 0 5)
- ((cl-lib
- (0 5)))
- "Load all Emacs Lisp files in a given directory" single
- ((:url . "http://elpa.gnu.org/packages/load-dir.html")
- (:keywords "lisp" "files" "convenience")
- (:maintainer "Teodor Zlatanov" . "tzz@lifelogs.com"))])
- (load-relative .
- [(1 3 1)
- nil "Relative file load (within a multi-file Emacs package)" single
- ((:keywords "internal")
- (:authors
- ("Rocky Bernstein" . "rocky@gnu.org"))
- (:maintainer "Rocky Bernstein" . "rocky@gnu.org")
- (:url . "http://github.com/rocky/emacs-load-relative"))])
- (loc-changes .
- [(1 2)
- nil "keep track of positions even after buffer changes" single
- ((:authors
- ("Rocky Bernstein" . "rocky@gnu.org"))
- (:maintainer "Rocky Bernstein" . "rocky@gnu.org")
- (:url . "http://github.com/rocky/emacs-loc-changes"))])
- (loccur .
- [(1 2 4)
- ((emacs
- (24 3)))
- "Perform an occur-like folding in current buffer" single
- ((:keywords "matching")
- (:authors
- ("Alexey Veretennikov" . "alexey.veretennikov@gmail.com"))
- (:maintainer "Alexey Veretennikov" . "alexey.veretennikov@gmail.com")
- (:url . "https://github.com/fourier/loccur"))])
- (map .
- [(2 1)
- ((emacs
- (25)))
- "Map manipulation functions" single
- ((:url . "http://elpa.gnu.org/packages/map.html")
- (:keywords "convenience" "map" "hash-table" "alist" "array")
- (:authors
- ("Nicolas Petton" . "nicolas@petton.fr"))
- (:maintainer nil . "emacs-devel@gnu.org"))])
- (markchars .
- [(0 2 1)
- nil "Mark chars fitting certain characteristics" single
- ((:url . "http://elpa.gnu.org/packages/markchars.html")
- (:authors
- ("Lennart Borgman" . "lennart.borgman@gmail.com"))
- (:maintainer "Lennart Borgman" . "lennart.borgman@gmail.com"))])
- (math-symbol-lists .
- [(1 2 1)
- nil "Lists of Unicode math symbols and latex commands" single
- ((:keywords "unicode" "symbols" "mathematics")
- (:authors
- ("Vitalie Spinu" . "spinuvit@gmail.com"))
- (:maintainer "Vitalie Spinu" . "spinuvit@gmail.com")
- (:url . "https://github.com/vspinu/math-symbol-lists"))])
- (memory-usage .
- [(0 2)
- nil "Analyze the memory usage of Emacs in various ways" single
- ((:url . "http://elpa.gnu.org/packages/memory-usage.html")
- (:keywords "maint")
- (:authors
- ("Stefan Monnier" . "monnier@cs.yale.edu"))
- (:maintainer "Stefan Monnier" . "monnier@cs.yale.edu"))])
- (metar .
- [(0 3)
- ((cl-lib
- (0 5)))
- "Retrieve and decode METAR weather information" single
- ((:url . "http://elpa.gnu.org/packages/metar.html")
- (:keywords "comm")
- (:authors
- ("Mario Lang" . "mlang@delysid.org"))
- (:maintainer "Mario Lang" . "mlang@delysid.org"))])
- (midi-kbd .
- [(0 2)
- ((emacs
- (25)))
- "Create keyboard events from Midi input" single
- ((:url . "http://elpa.gnu.org/packages/midi-kbd.html")
- (:keywords "convenience" "hardware" "multimedia")
- (:authors
- ("David Kastrup" . "dak@gnu.org"))
- (:maintainer "David Kastrup" . "dak@gnu.org"))])
- (mines .
- [(1 6)
- ((emacs
- (24 4))
- (cl-lib
- (0 5)))
- "Minesweeper game" tar
- ((:url . "https://github.com/calancha/Minesweeper")
- (:maintainer "Tino Calancha" . "tino.calancha@gmail.com")
- (:authors
- ("Tino Calancha" . "tino.calancha@gmail.com"))
- (:keywords "games"))])
- (minibuffer-line .
- [(0 1)
- nil "Display status info in the minibuffer window" single
- ((:url . "http://elpa.gnu.org/packages/minibuffer-line.html")
- (:authors
- ("Stefan Monnier" . "monnier@iro.umontreal.ca"))
- (:maintainer "Stefan Monnier" . "monnier@iro.umontreal.ca"))])
- (minimap .
- [(1 2)
- nil "Sidebar showing a \"mini-map\" of a buffer" single
- ((:url . "http://elpa.gnu.org/packages/minimap.html")
- (:authors
- ("David Engster" . "deng@randomsample.de"))
- (:maintainer "David Engster" . "deng@randomsample.de"))])
- (mmm-mode .
- [(0 5 7)
- ((cl-lib
- (0 2)))
- "Allow Multiple Major Modes in a buffer" tar
- ((:url . "https://github.com/purcell/mmm-mode")
- (:maintainer "Dmitry Gutov" . "dgutov@yandex.ru")
- (:authors
- ("Michael Abraham Shulman" . "viritrilbia@gmail.com"))
- (:keywords "convenience" "faces" "languages" "tools"))])
- (modus-operandi-theme .
- [(0 7 0)
- ((emacs
- (26 1)))
- "Accessible light theme (WCAG AAA)" single
- ((:keywords "faces" "theme" "accessibility")
- (:authors
- ("Protesilaos Stavrou" . "info@protesilaos.com"))
- (:maintainer "Protesilaos Stavrou" . "info@protesilaos.com")
- (:url . "https://gitlab.com/protesilaos/modus-themes"))])
- (modus-vivendi-theme .
- [(0 7 0)
- ((emacs
- (26 1)))
- "Accessible dark theme (WCAG AAA)" single
- ((:keywords "faces" "theme" "accessibility")
- (:authors
- ("Protesilaos Stavrou" . "info@protesilaos.com"))
- (:maintainer "Protesilaos Stavrou" . "info@protesilaos.com")
- (:url . "https://gitlab.com/protesilaos/modus-themes"))])
- (multishell .
- [(1 1 5)
- ((cl-lib
- (0 5)))
- "Easily use multiple shell buffers, local and remote" tar
- ((:url . "https://github.com/kenmanheimer/EmacsMultishell")
- (:maintainer "Ken Manheimer" . "ken.manheimer@gmail.com")
- (:authors
- ("Ken Manheimer" . "ken.manheimer@gmail.com"))
- (:keywords "processes"))])
- (muse .
- [(3 20 2)
- nil "Authoring and publishing tool for Emacs" tar
- ((:url . "http://mwolson.org/projects/EmacsMuse.html")
- (:maintainer "Michael Olson" . "mwolson@gnu.org")
- (:authors
- ("John Wiegley" . "johnw@gnu.org"))
- (:keywords "hypermedia"))])
- (myers .
- [(0 1)
- ((emacs
- (25)))
- "Random-access singly-linked lists" single
- ((:url . "http://elpa.gnu.org/packages/myers.html")
- (:keywords "list" "containers")
- (:authors
- ("Stefan Monnier" . "monnier@iro.umontreal.ca"))
- (:maintainer "Stefan Monnier" . "monnier@iro.umontreal.ca"))])
- (nadvice .
- [(0 3)
- nil "Forward compatibility for Emacs-24.4's nadvice" single
- ((:url . "http://elpa.gnu.org/packages/nadvice.html")
- (:authors
- ("Stefan Monnier" . "monnier@iro.umontreal.ca"))
- (:maintainer "Stefan Monnier" . "monnier@iro.umontreal.ca"))])
- (nameless .
- [(1 0 2)
- ((emacs
- (24 4)))
- "Hide package namespace in your emacs-lisp code" single
- ((:keywords "convenience" "lisp")
- (:authors
- ("Artur Malabarba" . "emacs@endlessparentheses.com"))
- (:maintainer "Artur Malabarba" . "emacs@endlessparentheses.com")
- (:url . "https://github.com/Malabarba/nameless"))])
- (names .
- [(20151201 0)
- ((emacs
- (24 1))
- (cl-lib
- (0 5))
- (nadvice
- (0 3)))
- "Namespaces for emacs-lisp. Avoid name clobbering without hiding symbols." tar
- ((:url . "https://github.com/Malabarba/names")
- (:maintainer "Artur Malabarba" . "emacs@endlessparentheses.com")
- (:authors
- ("Artur Malabarba" . "emacs@endlessparentheses.com"))
- (:keywords "extensions" "lisp"))])
- (nhexl-mode .
- [(1 5)
- ((emacs
- (24 4))
- (cl-lib
- (0 5)))
- "Minor mode to edit files via hex-dump format" single
- ((:url . "http://elpa.gnu.org/packages/nhexl-mode.html")
- (:keywords "data")
- (:authors
- ("Stefan Monnier" . "monnier@iro.umontreal.ca"))
- (:maintainer "Stefan Monnier" . "monnier@iro.umontreal.ca"))])
- (nlinum .
- [(1 9)
- nil "Show line numbers in the margin" single
- ((:url . "http://elpa.gnu.org/packages/nlinum.html")
- (:keywords "convenience")
- (:authors
- ("Stefan Monnier" . "monnier@iro.umontreal.ca"))
- (:maintainer "Stefan Monnier" . "monnier@iro.umontreal.ca"))])
- (notes-mode .
- [(1 30)
- nil "Indexing system for on-line note-taking" tar
- ((:maintainer nil . ".")
- (:authors
- (nil . "."))
- (:url . "http://elpa.gnu.org/packages/notes-mode.html"))])
- (ntlm .
- [(2 1 0)
- nil "NTLM (NT LanManager) authentication support" single
- ((:url . "http://elpa.gnu.org/packages/ntlm.html")
- (:keywords "ntlm" "sasl" "comm")
- (:authors
- ("Taro Kawagishi" . "tarok@transpulse.org"))
- (:maintainer "Thomas Fitzsimmons" . "fitzsim@fitzsim.org"))])
- (num3-mode .
- [(1 3)
- nil "highlight groups of digits in long numbers" single
- ((:url . "http://elpa.gnu.org/packages/num3-mode.html")
- (:keywords "faces" "minor-mode")
- (:authors
- ("Felix Lee , Michal Nazarewicz" . "mina86@mina86.com"))
- (:maintainer "Michal Nazarewicz" . "mina86@mina86.com"))])
- (oauth2 .
- [(0 13)
- nil "OAuth 2.0 Authorization Protocol" single
- ((:url . "http://elpa.gnu.org/packages/oauth2.html")
- (:keywords "comm")
- (:authors
- ("Julien Danjou" . "julien@danjou.info"))
- (:maintainer "Julien Danjou" . "julien@danjou.info"))])
- (objed .
- [(0 8 3)
- ((emacs
- (25))
- (cl-lib
- (0 5)))
- "Navigate and edit text objects." tar
- ((:url . "https://github.com/clemera/objed")
- (:maintainer "Clemens Radermacher" . "clemera@posteo.net")
- (:authors
- ("Clemens Radermacher" . "clemera@posteo.net"))
- (:keywords "convenience"))])
- (olivetti .
- [(1 7 1)
- ((emacs
- (24 5)))
- "Minor mode for a nice writing environment" single
- ((:url . "http://elpa.gnu.org/packages/olivetti.html")
- (:keywords "wp" "text")
- (:authors
- ("Paul W. Rankin" . "pwr@sdf.org"))
- (:maintainer "Paul W. Rankin" . "pwr@sdf.org"))])
- (omn-mode .
- [(1 2)
- nil "Support for OWL Manchester Notation" single
- ((:url . "http://elpa.gnu.org/packages/omn-mode.html")
- (:authors
- ("Phillip Lord" . "phillip.lord@newcastle.ac.uk"))
- (:maintainer "Phillip Lord" . "phillip.lord@newcastle.ac.uk"))])
- (on-screen .
- [(1 3 3)
- ((cl-lib
- (0)))
- "guide your eyes while scrolling" single
- ((:keywords "convenience")
- (:authors
- ("Michael Heerdegen" . "michael_heerdegen@web.de"))
- (:maintainer "Michael Heerdegen" . "michael_heerdegen@web.de")
- (:url . "https://github.com/michael-heerdegen/on-screen.el"))])
- (org .
- [(9 3 6)
- nil "Outline-based notes management and organizer" tar
- ((:url . "https://orgmode.org")
- (:maintainer "Bastien Guerry" . "bzg@gnu.org")
- (:authors
- ("Carsten Dominik "))
- (:keywords "outlines" "hypermedia" "calendar" "wp"))])
- (org-edna .
- [(1 1 1)
- ((emacs
- (25 1))
- (seq
- (2 19))
- (org
- (9 0 5)))
- "Extensible Dependencies 'N' Actions" tar
- ((:url . "https://savannah.nongnu.org/projects/org-edna-el/")
- (:maintainer "Ian Dunn" . "dunni@gnu.org")
- (:authors
- ("Ian Dunn" . "dunni@gnu.org"))
- (:keywords "convenience" "text" "org"))])
- (orgalist .
- [(1 12)
- ((emacs
- (24 4)))
- "Manage Org-like lists in non-Org buffers" single
- ((:url . "http://elpa.gnu.org/packages/orgalist.html")
- (:keywords "convenience")
- (:authors
- ("Nicolas Goaziou" . "mail@nicolasgoaziou.fr"))
- (:maintainer "Nicolas Goaziou" . "mail@nicolasgoaziou.fr"))])
- (osc .
- [(0 2)
- nil "Open Sound Control protocol library" single
- ((:url . "http://elpa.gnu.org/packages/osc.html")
- (:keywords "comm" "processes" "multimedia")
- (:authors
- ("Mario Lang" . "mlang@blind.guru"))
- (:maintainer "Mario Lang" . "mlang@blind.guru"))])
- (other-frame-window .
- [(1 0 6)
- ((emacs
- (24 4)))
- "Minor mode to enable global prefix keys for other frame/window buffer placement" single
- ((:url . "http://elpa.gnu.org/packages/other-frame-window.html")
- (:keywords "frame" "window")
- (:authors
- ("Stephen Leake" . "stephen_leake@member.fsf.org"))
- (:maintainer "Stephen Leake" . "stephen_leake@member.fsf.org"))])
- (pabbrev .
- [(4 2 1)
- nil "Predictive abbreviation expansion" single
- ((:url . "http://elpa.gnu.org/packages/pabbrev.html")
- (:authors
- ("Phillip Lord" . "phillip.lord@newcastle.ac.uk"))
- (:maintainer "Phillip Lord" . "phillip.lord@newcastle.ac.uk"))])
- (paced .
- [(1 1 3)
- ((emacs
- (25 1))
- (async
- (1 9 1)))
- "Predictive Abbreviation Completion and Expansion using Dictionaries" tar
- ((:url . "https://savannah.nongnu.org/projects/paced-el/")
- (:maintainer "Ian Dunn" . "dunni@gnu.org")
- (:authors
- ("Ian Dunn" . "dunni@gnu.org"))
- (:keywords "convenience" "completion"))])
- (parsec .
- [(0 1 3)
- ((emacs
- (24))
- (cl-lib
- (0 5)))
- "Parser combinator library" tar
- ((:url . "https://github.com/cute-jumper/parsec.el")
- (:maintainer "Junpeng Qiu" . "qjpchmail@gmail.com")
- (:authors
- ("Junpeng Qiu" . "qjpchmail@gmail.com"))
- (:keywords "extensions"))])
- (path-iterator .
- [(1 0)
- ((emacs
- (25 0)))
- "An iterator for traversing a directory path." tar
- ((:maintainer "Stephen Leake" . "stephen_leake@stephe-leake.org")
- (:authors
- ("Stephen Leake" . "stephen_leake@stephe-leake.org"))
- (:url . "http://elpa.gnu.org/packages/path-iterator.html"))])
- (peg .
- [(1 0)
- ((emacs
- (25)))
- "Parsing Expression Grammars in Emacs Lisp" tar
- ((:maintainer "Stefan Monnier" . "monnier@iro.umontreal.ca")
- (:authors
- ("Helmut Eller" . "eller.helmut@gmail.com"))
- (:url . "http://elpa.gnu.org/packages/peg.html"))])
- (persist .
- [(0 4)
- nil "Persist Variables between Emacs Sessions" tar
- ((:maintainer "Phillip Lord" . "phillip.lord@russet.org.uk")
- (:authors
- ("Phillip Lord" . "phillip.lord@russet.org.uk"))
- (:url . "http://elpa.gnu.org/packages/persist.html"))])
- (phps-mode .
- [(0 3 42)
- ((emacs
- (26)))
- "Major mode for PHP with Semantic integration" tar
- ((:url . "https://github.com/cjohansson/emacs-phps-mode")
- (:maintainer "Christian Johansson" . "christian@cvj.se")
- (:authors
- ("Christian Johansson" . "christian@cvj.se"))
- (:keywords "tools" "convenience"))])
- (pinentry .
- [(0 1)
- nil "GnuPG Pinentry server implementation" single
- ((:url . "http://elpa.gnu.org/packages/pinentry.html")
- (:keywords "gnupg")
- (:authors
- ("Daiki Ueno" . "ueno@gnu.org"))
- (:maintainer "Daiki Ueno" . "ueno@gnu.org"))])
- (poker .
- [(0 2)
- nil "Texas hold 'em poker" single
- ((:url . "http://elpa.gnu.org/packages/poker.html")
- (:keywords "games")
- (:authors
- ("Mario Lang" . "mlang@delysid.org"))
- (:maintainer "Mario Lang" . "mlang@delysid.org"))])
- (posframe .
- [(0 7 0)
- ((emacs
- (26)))
- "Pop a posframe (just a frame) at point" single
- ((:keywords "convenience" "tooltip")
- (:authors
- ("Feng Shu" . "tumashu@163.com"))
- (:maintainer "Feng Shu" . "tumashu@163.com")
- (:url . "https://github.com/tumashu/posframe"))])
- (psgml .
- [(1 3 4)
- nil "SGML-editing mode with parsing support" tar
- ((:maintainer "Lennart Staflin" . "lstaflin@gmail.com")
- (:authors
- ("Lennart Staflin" . "lenst@lysator.liu.se")
- ("James Clark" . "jjc@clark.com"))
- (:keywords "languages")
- (:url . "http://elpa.gnu.org/packages/psgml.html"))])
- (python .
- [(0 26 1)
- ((emacs
- (24 1))
- (cl-lib
- (1 0)))
- "Python's flying circus support for Emacs" single
- ((:keywords "languages")
- (:authors
- ("Fabián E. Gallina" . "fgallina@gnu.org"))
- (:maintainer nil . "emacs-devel@gnu.org")
- (:url . "https://github.com/fgallina/python.el"))])
- (quarter-plane .
- [(0 1)
- nil "Minor mode for quarter-plane style editing" single
- ((:url . "http://elpa.gnu.org/packages/quarter-plane.html")
- (:keywords "convenience" "wp")
- (:authors
- ("Peter J. Weisberg"))
- (:maintainer "Peter J. Weisberg"))])
- (queue .
- [(0 2)
- nil "Queue data structure" single
- ((:keywords "extensions" "data structures" "queue")
- (:authors
- ("Inge Wallin" . "inge@lysator.liu.se")
- ("Toby Cubitt" . "toby-predictive@dr-qubit.org"))
- (:maintainer "Toby Cubitt" . "toby-predictive@dr-qubit.org")
- (:url . "http://www.dr-qubit.org/emacs.php"))])
- (rainbow-mode .
- [(1 0 4)
- nil "Colorize color names in buffers" single
- ((:url . "http://elpa.gnu.org/packages/rainbow-mode.html")
- (:keywords "faces")
- (:authors
- ("Julien Danjou" . "julien@danjou.info"))
- (:maintainer "Julien Danjou" . "julien@danjou.info"))])
- (rbit .
- [(0 1)
- nil "Red-black persistent interval trees" single
- ((:url . "http://elpa.gnu.org/packages/rbit.html")
- (:keywords "data structures" "binary tree" "intervals")
- (:authors
- ("Stefan Monnier" . "monnier@iro.umontreal.ca"))
- (:maintainer "Stefan Monnier" . "monnier@iro.umontreal.ca"))])
- (rcirc-color .
- [(0 4 1)
- ((emacs
- (24 4)))
- "color nicks" single
- ((:url . "http://elpa.gnu.org/packages/rcirc-color.html")
- (:keywords "comm")
- (:authors
- ("Alex Schroeder" . "alex@gnu.org"))
- (:maintainer "Alex Schroeder" . "alex@gnu.org"))])
- (rcirc-menu .
- [(1 1)
- nil "A menu of all your rcirc connections" single
- ((:url . "http://elpa.gnu.org/packages/rcirc-menu.html")
- (:keywords "comm")
- (:authors
- ("Alex Schroeder" . "alex@gnu.org"))
- (:maintainer "Alex Schroeder" . "alex@gnu.org"))])
- (realgud .
- [(1 5 1)
- ((load-relative
- (1 3 1))
- (loc-changes
- (1 2))
- (test-simple
- (1 3 0))
- (emacs
- (25)))
- "A modular front-end for interacting with external debuggers" tar
- ((:url . "http://github.com/realgud/realgud/")
- (:maintainer "Rocky Bernstein" . "rocky@gnu.org")
- (:authors
- ("Rocky Bernstein" . "rocky@gnu.org"))
- (:keywords "debugger" "gdb" "python" "perl" "go" "bash" "zsh" "bashdb" "zshdb" "remake" "trepan" "perldb" "pdb"))])
- (realgud-ipdb .
- [(1 0 0)
- ((realgud
- (1 5 0))
- (load-relative
- (1 3 1))
- (emacs
- (25)))
- "Realgud front-end to ipdb" tar
- ((:url . "http://github.com/rocky/realgud-ipdb")
- (:maintainer "Rocky Bernstein" . "rocky@gnu.org")
- (:authors
- ("Rocky Bernstein" . "rocky@gnu.org")))])
- (realgud-jdb .
- [(1 0 0)
- ((realgud
- (1 4 5))
- (load-relative
- (1 2))
- (cl-lib
- (0 5))
- (emacs
- (25)))
- "Realgud front-end to Java's jdb debugger\"" tar
- ((:url . "http://github.com/realgud/realgud-jdb")
- (:maintainer "Rocky Bernstein" . "rocky@gnu.org")
- (:authors
- ("Rocky Bernstein" . "rocky@gnu.org")))])
- (realgud-lldb .
- [(1 0 2)
- ((load-relative
- (1 3 1))
- (realgud
- (1 5 0))
- (emacs
- (25)))
- "Realgud front-end to lldb" tar
- ((:url . "http://github.com/realgud/realgud-lldb")
- (:maintainer "Rocky Bernstein" . "rocky@gnu.org")
- (:authors
- ("Rocky Bernstein" . "rocky@gnu.org")))])
- (realgud-node-debug .
- [(1 0 0)
- ((realgud
- (1 4 5))
- (load-relative
- (1 2))
- (cl-lib
- (0 5))
- (emacs
- (25)))
- "Realgud front-end to older \"node debug\"" tar
- ((:url . "http://github.com/realgud/realgud-node-debug")
- (:maintainer "Rocky Bernstein" . "rocky@gnu.org")
- (:authors
- ("Rocky Bernstein" . "rocky@gnu.org")))])
- (realgud-node-inspect .
- [(1 0 0)
- ((realgud
- (1 4 5))
- (load-relative
- (1 2))
- (cl-lib
- (0 5))
- (emacs
- (24)))
- "Realgud front-end to newer \"node inspect\"" tar
- ((:url . "http://github.com/realgud/realgud-node-inspect")
- (:maintainer "Rocky Bernstein" . "rocky@gnu.org")
- (:authors
- ("Rocky Bernstein" . "rocky@gnu.org")))])
- (realgud-trepan-ni .
- [(1 0 1)
- ((load-relative
- (1 2))
- (realgud
- (1 5 0))
- (cl-lib
- (0 5))
- (emacs
- (25)))
- "Realgud front-end to trepan-ni" tar
- ((:url . "http://github.com/realgud/realgud-trepan-ni")
- (:maintainer "Rocky Bernstein" . "rocky@gnu.org")
- (:authors
- ("Rocky Bernstein" . "rocky@gnu.org")))])
- (register-list .
- [(0 1)
- nil "Interactively list/edit registers" single
- ((:url . "http://elpa.gnu.org/packages/register-list.html")
- (:keywords "register")
- (:authors
- ("Bastien Guerry" . "bzg@gnu.org"))
- (:maintainer "Bastien Guerry" . "bzg@gnu.org"))])
- (relint .
- [(1 15)
- ((xr
- (1 17))
- (emacs
- (26 1)))
- "Elisp regexp mistake finder" tar
- ((:url . "https://github.com/mattiase/relint")
- (:maintainer "Mattias Engdegård" . "mattiase@acm.org")
- (:authors
- ("Mattias Engdegård" . "mattiase@acm.org"))
- (:keywords "lisp" "regexps"))])
- (rich-minority .
- [(1 0 1)
- ((cl-lib
- (0 5)))
- "Clean-up and Beautify the list of minor-modes." single
- ((:keywords "mode-line" "faces")
- (:authors
- ("Artur Malabarba" . "emacs@endlessparentheses.com"))
- (:maintainer "Artur Malabarba" . "emacs@endlessparentheses.com")
- (:url . "https://github.com/Malabarba/rich-minority"))])
- (rnc-mode .
- [(0 2)
- nil "Emacs mode to edit Relax-NG Compact files" single
- ((:url . "http://elpa.gnu.org/packages/rnc-mode.html")
- (:keywords "xml" "relaxng")
- (:authors
- ("Stefan Monnier" . "monnier@iro.umontreal.ca"))
- (:maintainer "Stefan Monnier" . "monnier@iro.umontreal.ca"))])
- (rudel .
- [(0 3 1)
- ((emacs
- (24))
- (cl-lib
- (0 5))
- (cl-generic
- (0 3))
- (cl-print
- (1 0)))
- "A collaborative editing framework for Emacs" tar
- ((:url . "http://rudel.sourceforge.net/")
- (:maintainer "Jan Moringen" . "scymtym@users.sourceforge.net")
- (:authors
- ("Jan Moringen" . "scymtym@users.sourceforge.net"))
- (:keywords "rudel" "collaboration"))])
- (scanner .
- [(0 1)
- ((emacs
- (25 1))
- (dash
- (2 12 0)))
- "Scan documents and images" tar
- ((:url . "https://gitlab.com/rstocker/scanner.git")
- (:maintainer "Raffael Stocker" . "r.stocker@mnet-mail.de")
- (:authors
- ("Raffael Stocker" . "r.stocker@mnet-mail.de"))
- (:keywords "hardware" "multimedia"))])
- (scroll-restore .
- [(1 0)
- nil "restore original position after scrolling" single
- ((:url . "http://elpa.gnu.org/packages/scroll-restore.html")
- (:keywords "scrolling")
- (:authors
- ("Martin Rudalics" . "rudalics@gmx.at"))
- (:maintainer "Martin Rudalics" . "rudalics@gmx.at"))])
- (sed-mode .
- [(1 0)
- nil "Major mode to edit sed scripts" single
- ((:url . "http://elpa.gnu.org/packages/sed-mode.html")
- (:authors
- ("Stefan Monnier" . "monnier@iro.umontreal.ca"))
- (:maintainer "Stefan Monnier" . "monnier@iro.umontreal.ca"))])
- (seq .
- [(2 20)
- nil "Sequence manipulation functions" tar
- ((:maintainer nil . "emacs-devel@gnu.org")
- (:authors
- ("Nicolas Petton" . "nicolas@petton.fr"))
- (:keywords "sequences")
- (:url . "http://elpa.gnu.org/packages/seq.html"))])
- (shelisp .
- [(0 9 1)
- nil "execute elisp in shell" single
- ((:url . "http://elpa.gnu.org/packages/shelisp.html")
- (:keywords "terminals" "lisp" "processes")
- (:authors
- ("Michael R. Mauger" . "michael@mauger.com"))
- (:maintainer "Michael R. Mauger" . "michael@mauger.com"))])
- (shen-mode .
- [(0 1)
- nil "A major mode for editing shen source code" tar
- ((:maintainer "Eric Schulte" . "schulte.eric@gmail.com")
- (:authors
- ("Eric Schulte" . "schulte.eric@gmail.com"))
- (:keywords "languages" "shen")
- (:url . "http://elpa.gnu.org/packages/shen-mode.html"))])
- (sisu-mode .
- [(7 1 8)
- nil "Major mode for SiSU markup text" single
- ((:keywords "text" "syntax" "processes" "tools")
- (:authors
- ("Ralph Amissah & Ambrose Kofi Laing"))
- (:maintainer "Ralph Amissah" . "ralph.amissah@gmail.com")
- (:url . "http://www.sisudoc.org/"))])
- (sm-c-mode .
- [(1 0)
- nil "C major mode based on SMIE" single
- ((:url . "http://elpa.gnu.org/packages/sm-c-mode.html")
- (:authors
- ("Stefan Monnier" . "monnier@iro.umontreal.ca"))
- (:maintainer "Stefan Monnier" . "monnier@iro.umontreal.ca"))])
- (smalltalk-mode .
- [(3 2 92)
- nil "Major mode for the GNU Smalltalk programming language" tar
- ((:maintainer "Derek Zhou" . "derek@3qin.us")
- (:authors
- ("Steve Byrne"))
- (:url . "http://elpa.gnu.org/packages/smalltalk-mode.html"))])
- (smart-yank .
- [(0 1 1)
- ((emacs
- (24)))
- "A different approach of yank pointer handling" single
- ((:url . "http://elpa.gnu.org/packages/smart-yank.html")
- (:keywords "convenience")
- (:authors
- ("Michael Heerdegen" . "michael_heerdegen@web.de"))
- (:maintainer "Michael Heerdegen" . "michael_heerdegen@web.de"))])
- (sml-mode .
- [(6 10)
- ((emacs
- (24 3))
- (cl-lib
- (0 5)))
- "Major mode for editing (Standard) ML" single
- ((:url . "http://elpa.gnu.org/packages/sml-mode.html")
- (:keywords "sml")
- (:authors
- ("Lars Bo Nielsen")
- (" Olin Shivers")
- (" Fritz Knabe (?)")
- (" Steven Gilmore (?)")
- (" Matthew Morley" . "mjm@scs.leeds.ac.uk")
- (" Matthias Blume" . "blume@cs.princeton.edu")
- (" (Stefan Monnier)" . "monnier@iro.umontreal.ca"))
- (:maintainer "Stefan Monnier" . "monnier@iro.umontreal.ca"))])
- (soap-client .
- [(3 1 5)
- ((cl-lib
- (0 6 1)))
- "Access SOAP web services" tar
- ((:url . "https://github.com/alex-hhh/emacs-soap-client")
- (:maintainer "Alexandru Harsanyi" . "AlexHarsanyi@gmail.com")
- (:authors
- ("Alexandru Harsanyi" . "AlexHarsanyi@gmail.com"))
- (:keywords "soap" "web-services" "comm" "hypermedia"))])
- (sokoban .
- [(1 4 8)
- ((emacs
- (23 1))
- (cl-lib
- (0 5)))
- "Implementation of Sokoban for Emacs." tar
- ((:maintainer "Dieter Deyke" . "dieter.deyke@gmail.com")
- (:authors
- ("Glynn Clements" . "glynn.clements@xemacs.org"))
- (:keywords "games")
- (:url . "http://elpa.gnu.org/packages/sokoban.html"))])
- (sotlisp .
- [(1 6 2)
- ((emacs
- (24 1)))
- "Write lisp at the speed of thought." single
- ((:keywords "convenience" "lisp")
- (:authors
- ("Artur Malabarba" . "emacs@endlessparentheses.com"))
- (:maintainer "Artur Malabarba" . "emacs@endlessparentheses.com")
- (:url . "https://github.com/Malabarba/speed-of-thought-lisp"))])
- (spinner .
- [(1 7 3)
- nil "Add spinners and progress-bars to the mode-line for ongoing operations" single
- ((:keywords "processes" "mode-line")
- (:authors
- ("Artur Malabarba" . "emacs@endlessparentheses.com"))
- (:maintainer "Artur Malabarba" . "emacs@endlessparentheses.com")
- (:url . "https://github.com/Malabarba/spinner.el"))])
- (sql-indent .
- [(1 5)
- ((cl-lib
- (0 5)))
- "Support for indenting code in SQL files." tar
- ((:url . "https://github.com/alex-hhh/emacs-sql-indent")
- (:maintainer "Alex Harsanyi" . "AlexHarsanyi@gmail.com")
- (:authors
- ("Alex Harsanyi" . "AlexHarsanyi@gmail.com"))
- (:keywords "languages" "sql"))])
- (ssh-deploy .
- [(3 1 11)
- ((emacs
- (25)))
- "Deployment via Tramp, global or per directory." tar
- ((:url . "https://github.com/cjohansson/emacs-ssh-deploy")
- (:maintainer "Christian Johansson" . "christian@cvj.se")
- (:authors
- ("Christian Johansson" . "christian@cvj.se"))
- (:keywords "tools" "convenience"))])
- (stream .
- [(2 2 5)
- ((emacs
- (25)))
- "Implementation of streams" tar
- ((:maintainer nil . "nicolas@petton.fr")
- (:authors
- ("Nicolas Petton" . "nicolas@petton.fr"))
- (:keywords "stream" "laziness" "sequences")
- (:url . "http://elpa.gnu.org/packages/stream.html"))])
- (svg .
- [(1 0)
- ((emacs
- (25)))
- "SVG image creation functions" single
- ((:url . "http://elpa.gnu.org/packages/svg.html")
- (:keywords "image")
- (:authors
- ("Lars Magne Ingebrigtsen" . "larsi@gnus.org")
- ("Felix E. Klee" . "felix.klee@inka.de"))
- (:maintainer "Lars Magne Ingebrigtsen" . "larsi@gnus.org"))])
- (svg-clock .
- [(1 1)
- ((svg
- (1 0))
- (emacs
- (27 0)))
- "Analog clock using Scalable Vector Graphics" single
- ((:url . "http://elpa.gnu.org/packages/svg-clock.html")
- (:keywords "demo" "svg" "clock")
- (:authors
- ("Ulf Jasper" . "ulf.jasper@web.de"))
- (:maintainer "Ulf Jasper" . "ulf.jasper@web.de"))])
- (system-packages .
- [(1 0 11)
- ((emacs
- (24 3)))
- "functions to manage system packages" tar
- ((:url . "https://gitlab.com/jabranham/system-packages")
- (:maintainer "J. Alexander Branham" . "alex.branham@gmail.com")
- (:authors
- ("J. Alexander Branham" . "alex.branham@gmail.com")))])
- (tNFA .
- [(0 1 1)
- ((queue
- (0 1)))
- "Tagged non-deterministic finite-state automata" single
- ((:keywords "extensions" "matching" "data structures tnfa" "nfa" "dfa" "finite state automata" "automata" "regexp")
- (:authors
- ("Toby Cubitt" . "toby-predictive@dr-qubit.org"))
- (:maintainer "Toby Cubitt" . "toby-predictive@dr-qubit.org")
- (:url . "http://www.dr-qubit.org/emacs.php"))])
- (temp-buffer-browse .
- [(1 5)
- ((emacs
- (24)))
- "temp buffer browse mode" single
- ((:url . "http://elpa.gnu.org/packages/temp-buffer-browse.html")
- (:keywords "convenience")
- (:authors
- ("Leo Liu" . "sdl.web@gmail.com"))
- (:maintainer "Leo Liu" . "sdl.web@gmail.com"))])
- (test-simple .
- [(1 3 0)
- ((cl-lib
- (0)))
- "Simple Unit Test Framework for Emacs Lisp" single
- ((:keywords "unit-test")
- (:authors
- ("Rocky Bernstein" . "rocky@gnu.org"))
- (:maintainer "Rocky Bernstein" . "rocky@gnu.org")
- (:url . "http://github.com/rocky/emacs-test-simple"))])
- (timerfunctions .
- [(1 4 2)
- ((cl-lib
- (0 5))
- (emacs
- (24)))
- "Enhanced versions of some timer.el functions" single
- ((:url . "http://elpa.gnu.org/packages/timerfunctions.html")
- (:authors
- ("Dave Goel" . "deego3@gmail.com"))
- (:maintainer "Dave Goel" . "deego3@gmail.com"))])
- (tiny .
- [(0 2 1)
- nil "Quickly generate linear ranges in Emacs" tar
- ((:url . "https://github.com/abo-abo/tiny")
- (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com")
- (:authors
- ("Oleh Krehel" . "ohwoeowho@gmail.com"))
- (:keywords "convenience"))])
- (tramp .
- [(2 4 3 3)
- ((emacs
- (24 4)))
- "Transparent Remote Access, Multiple Protocol" tar
- ((:url . "https://savannah.gnu.org/projects/tramp")
- (:maintainer "Michael Albinus" . "michael.albinus@gmx.de")
- (:authors
- ("Kai Großjohann" . "kai.grossjohann@gmx.net")
- ("Michael Albinus" . "michael.albinus@gmx.de"))
- (:keywords "comm" "processes"))])
- (tramp-theme .
- [(0 2)
- ((emacs
- (24 1)))
- "Custom theme for remote buffers" single
- ((:url . "http://elpa.gnu.org/packages/tramp-theme.html")
- (:keywords "convenience" "faces")
- (:authors
- ("Michael Albinus" . "michael.albinus@gmx.de"))
- (:maintainer "Michael Albinus" . "michael.albinus@gmx.de"))])
- (transcribe .
- [(1 5 2)
- nil "Package for audio transcriptions" single
- ((:url . "http://elpa.gnu.org/packages/transcribe.html")
- (:authors
- ("David Gonzalez Gandara" . "dggandara@member.fsf.org"))
- (:maintainer "David Gonzalez Gandara" . "dggandara@member.fsf.org"))])
- (trie .
- [(0 4)
- ((tNFA
- (0 1 1))
- (heap
- (0 3)))
- "Trie data structure" single
- ((:keywords "extensions" "matching" "data structures trie" "ternary search tree" "tree" "completion" "regexp")
- (:authors
- ("Toby Cubitt" . "toby-predictive@dr-qubit.org"))
- (:maintainer "Toby Cubitt" . "toby-predictive@dr-qubit.org")
- (:url . "http://www.dr-qubit.org/emacs.php"))])
- (undo-tree .
- [(0 7 4)
- nil "Treat undo history as a tree" single
- ((:keywords "convenience" "files" "undo" "redo" "history" "tree")
- (:authors
- ("Toby Cubitt" . "toby-undo-tree@dr-qubit.org"))
- (:maintainer "Toby Cubitt" . "toby-undo-tree@dr-qubit.org")
- (:url . "http://www.dr-qubit.org/emacs.php"))])
- (uni-confusables .
- [(0 1)
- nil "Unicode confusables table" tar
- ((:maintainer "Teodor Zlatanov" . "tzz@lifelogs.com")
- (:url . "http://elpa.gnu.org/packages/uni-confusables.html"))])
- (uniquify-files .
- [(1 0 2)
- ((emacs
- (25 0)))
- "Completion style for files, minimizing directories" tar
- ((:maintainer "Stephen Leake" . "stephen_leake@stephe-leake.org")
- (:authors
- ("Stephen Leake" . "stephen_leake@stephe-leake.org"))
- (:keywords "completion" "table" "uniquify")
- (:url . "http://elpa.gnu.org/packages/uniquify-files.html"))])
- (url-http-ntlm .
- [(2 0 4)
- ((cl-lib
- (0 5))
- (ntlm
- (2 1 0)))
- "NTLM authentication for the url library" single
- ((:keywords "comm" "data" "processes" "hypermedia")
- (:authors
- ("Tom Schutzer-Weissmann" . "tom.weissmann@gmail.com"))
- (:maintainer "Thomas Fitzsimmons" . "fitzsim@fitzsim.org")
- (:url . "https://code.google.com/p/url-http-ntlm/"))])
- (validate .
- [(1 0 4)
- ((emacs
- (24 1))
- (cl-lib
- (0 5))
- (seq
- (2 16)))
- "Schema validation for Emacs-lisp" single
- ((:url . "http://elpa.gnu.org/packages/validate.html")
- (:keywords "lisp")
- (:authors
- ("Artur Malabarba" . "emacs@endlessparentheses.com"))
- (:maintainer "Artur Malabarba" . "emacs@endlessparentheses.com"))])
- (vcard .
- [(0 1)
- ((emacs
- (27 1)))
- "Package for handling vCard files" tar
- ((:maintainer "Eric Abrahamsen" . "eric@ericabrahamsen.net")
- (:authors
- ("Eric Abrahamsen" . "eric@ericabrahamsen.net"))
- (:url . "http://elpa.gnu.org/packages/vcard.html"))])
- (vcl-mode .
- [(1 1)
- nil "Major mode for Varnish Configuration Language" single
- ((:url . "http://elpa.gnu.org/packages/vcl-mode.html")
- (:keywords "varnish" "vcl")
- (:authors
- ("Sergey Poznyakoff" . "gray@gnu.org.ua"))
- (:maintainer "Sergey Poznyakoff" . "gray@gnu.org.ua"))])
- (vdiff .
- [(0 2 3)
- ((emacs
- (24 4))
- (hydra
- (0 13 0)))
- "A diff tool similar to vimdiff" single
- ((:keywords "diff")
- (:authors
- ("Justin Burkett" . "justin@burkett.cc"))
- (:maintainer "Justin Burkett" . "justin@burkett.cc")
- (:url . "https://github.com/justbur/emacs-vdiff"))])
- (verilog-mode .
- [(2020 2 23 232634261)
- nil "major mode for editing verilog source in Emacs" single
- ((:keywords "languages")
- (:authors
- ("Michael McNamara" . "mac@verilog.com")
- ("Wilson Snyder" . "wsnyder@wsnyder.org"))
- (:maintainer "Michael McNamara" . "mac@verilog.com")
- (:url . "https://www.veripool.org"))])
- (vigenere .
- [(1 0)
- ((emacs
- (25 1)))
- "Run a vigenere cipher on a block of text ;" single
- ((:keywords "data" "vigenere" "cipher")
- (:authors
- ("Ian Dunn" . "dunni@gnu.org"))
- (:maintainer "Ian Dunn" . "dunni@gnu.org")
- (:url . "https://elpa.gnu.org/packages/vigenere.html"))])
- (visual-filename-abbrev .
- [(1 0)
- ((emacs
- (26 1)))
- "Visually abbreviate filenames" single
- ((:url . "http://elpa.gnu.org/packages/visual-filename-abbrev.html")
- (:keywords "tools")
- (:authors
- ("Tassilo Horn" . "tsdh@gnu.org"))
- (:maintainer "Tassilo Horn" . "tsdh@gnu.org"))])
- (visual-fill .
- [(0 1)
- nil "Auto-refill paragraphs without modifying the buffer" single
- ((:url . "http://elpa.gnu.org/packages/visual-fill.html")
- (:authors
- ("Stefan Monnier" . "monnier@iro.umontreal.ca"))
- (:maintainer "Stefan Monnier" . "monnier@iro.umontreal.ca"))])
- (vlf .
- [(1 7 1)
- nil "View Large Files" tar
- ((:url . "https://github.com/m00natic/vlfi")
- (:maintainer "Andrey Kotlarski" . "m00naticus@gmail.com")
- (:keywords "large files" "utilities"))])
- (wcheck-mode .
- [(2019 6 17)
- nil "General interface for text checkers" single
- ((:keywords "text" "spell" "check" "languages" "ispell")
- (:authors
- ("Teemu Likonen" . "tlikonen@iki.fi"))
- (:maintainer "Teemu Likonen" . "tlikonen@iki.fi")
- (:url . "https://github.com/tlikonen/wcheck-mode"))])
- (wconf .
- [(0 2 1)
- ((emacs
- (24 4)))
- "Minimal window layout manager" single
- ((:keywords "windows" "frames" "layout")
- (:authors
- ("Ingo Lohmar" . "i.lohmar@gmail.com"))
- (:maintainer "Ingo Lohmar" . "i.lohmar@gmail.com")
- (:url . "https://github.com/ilohmar/wconf"))])
- (web-server .
- [(0 1 2)
- ((emacs
- (24 3)))
- "Emacs Web Server" tar
- ((:url . "https://github.com/eschulte/emacs-web-server")
- (:maintainer "Eric Schulte" . "schulte.eric@gmail.com")
- (:authors
- ("Eric Schulte" . "schulte.eric@gmail.com"))
- (:keywords "http" "server" "network"))])
- (webfeeder .
- [(1 0 0)
- ((emacs
- (25 1)))
- "Build RSS and Atom webfeeds from HTML files" tar
- ((:url . "https://gitlab.com/Ambrevar/emacs-webfeeder")
- (:maintainer "Pierre Neidhardt" . "mail@ambrevar.xyz")
- (:authors
- ("Pierre Neidhardt" . "mail@ambrevar.xyz"))
- (:keywords "news" "hypermedia" "blog" "feed" "rss" "atom"))])
- (websocket .
- [(1 12)
- ((cl-lib
- (0 5)))
- "Emacs WebSocket client and server" tar
- ((:maintainer "Andrew Hyatt" . "ahyatt@gmail.com")
- (:authors
- ("Andrew Hyatt" . "ahyatt@gmail.com"))
- (:keywords "communication" "websocket" "server")
- (:url . "http://elpa.gnu.org/packages/websocket.html"))])
- (which-key .
- [(3 3 0)
- ((emacs
- (24 4)))
- "Display available keybindings in popup" tar
- ((:url . "https://github.com/justbur/emacs-which-key")
- (:maintainer "Justin Burkett" . "justin@burkett.cc")
- (:authors
- ("Justin Burkett" . "justin@burkett.cc")))])
- (windower .
- [(0 0 1)
- ((emacs
- (25)))
- "Helper functions for window manipulation." single
- ((:keywords "convenience" "tools")
- (:authors
- ("Pierre Neidhardt" . "mail@ambrevar.xyz"))
- (:maintainer "Pierre Neidhardt" . "mail@ambrevar.xyz")
- (:url . "https://gitlab.com/ambrevar/windower"))])
- (windresize .
- [(0 1)
- nil "Resize windows interactively" single
- ((:url . "http://elpa.gnu.org/packages/windresize.html")
- (:keywords "window")
- (:authors
- ("Bastien" . "bzg@gnu.org"))
- (:maintainer "Bastien" . "bzg@gnu.org"))])
- (wisi .
- [(3 0 1)
- ((emacs
- (25 0))
- (seq
- (2 20)))
- "Utilities for implementing an indentation/navigation engine using a generalized LALR parser" tar
- ((:url . "http://stephe-leake.org/ada/wisitoken.html")
- (:maintainer "Stephen Leake" . "stephen_leake@stephe-leake.org")
- (:authors
- ("Stephen Leake" . "stephen_leake@stephe-leake.org"))
- (:keywords "parser" "indentation" "navigation"))])
- (wisitoken-grammar-mode .
- [(1 0 3)
- ((wisi
- (2 2 1))
- (emacs
- (25 0))
- (mmm-mode
- (0 5 7)))
- "Major mode for editing WisiToken grammar files" tar
- ((:maintainer "Stephen Leake" . "stephen_leake@stephe-leake.org")
- (:authors
- ("Stephen Leake" . "stephen_leake@stephe-leake.org"))
- (:keywords "languages")
- (:url . "http://elpa.gnu.org/packages/wisitoken-grammar-mode.html"))])
- (wpuzzle .
- [(1 1)
- nil "find as many word in a given time" single
- ((:url . "http://elpa.gnu.org/packages/wpuzzle.html")
- (:authors
- ("Ivan Kanis" . "ivan@kanis.fr"))
- (:maintainer "Ivan Kanis" . "ivan@kanis.fr"))])
- (xclip .
- [(1 10)
- nil "Copy&paste GUI clipboard from text terminal" single
- ((:url . "http://elpa.gnu.org/packages/xclip.html")
- (:keywords "convenience" "tools")
- (:authors
- ("Leo Liu" . "sdl.web@gmail.com"))
- (:maintainer "Leo Liu" . "sdl.web@gmail.com"))])
- (xelb .
- [(0 18)
- ((emacs
- (24 4))
- (cl-generic
- (0 2)))
- "X protocol Emacs Lisp Binding" tar
- ((:url . "https://github.com/ch11ng/xelb")
- (:maintainer "Chris Feng" . "chris.w.feng@gmail.com")
- (:authors
- ("Chris Feng" . "chris.w.feng@gmail.com"))
- (:keywords "unix"))])
- (xpm .
- [(1 0 4)
- nil "edit XPM images" tar
- ((:url . "http://www.gnuvola.org/software/xpm/")
- (:maintainer "Thien-Thi Nguyen" . "ttn@gnu.org")
- (:authors
- ("Thien-Thi Nguyen" . "ttn@gnu.org"))
- (:keywords "multimedia" "xpm"))])
- (xr .
- [(1 18)
- ((emacs
- (26 1)))
- "Convert string regexp to rx notation" tar
- ((:url . "https://github.com/mattiase/xr")
- (:maintainer "Mattias Engdegård" . "mattiase@acm.org")
- (:authors
- ("Mattias Engdegård" . "mattiase@acm.org"))
- (:keywords "lisp" "regexps"))])
- (yasnippet .
- [(0 14 0)
- ((cl-lib
- (0 5)))
- "Yet another snippet extension for Emacs" tar
- ((:url . "http://github.com/joaotavora/yasnippet")
- (:maintainer "Noam Postavsky" . "npostavs@gmail.com")
- (:keywords "convenience" "emulation"))])
- (yasnippet-classic-snippets .
- [(1 0 2)
- ((yasnippet
- (0 9 1)))
- "\"Classic\" yasnippet snippets" tar
- ((:maintainer "Noam Postavsky" . "npostavs@gmail.com")
- (:keywords "snippets")
- (:url . "http://elpa.gnu.org/packages/yasnippet-classic-snippets.html"))])
- (zones .
- [(2019 7 13)
- nil "Zones of text - like multiple regions" single
- ((:keywords "narrow" "restriction" "widen" "region" "zone")
- (:authors
- ("Drew Adams"))
- (:maintainer "Drew Adams" . "drew.adams@oracle.com")
- (:url . "https://elpa.gnu.org/packages/zones.html"))])
- (ztree .
- [(1 0 5)
- ((cl-lib
- (0)))
- "Text mode directory tree" tar
- ((:url . "https://github.com/fourier/ztree")
- (:maintainer "Alexey Veretennikov" . "alexey.veretennikov@gmail.com")
- (:authors
- ("Alexey Veretennikov" . "alexey.veretennikov@gmail.com"))
- (:keywords "files" "tools"))]))
diff --git a/elpa/archives/gnu/archive-contents.signed b/elpa/archives/gnu/archive-contents.signed
deleted file mode 100644
index 34e3f86b..00000000
--- a/elpa/archives/gnu/archive-contents.signed
+++ /dev/null
@@ -1 +0,0 @@
-Good signature from 066DAFCB81E42C40 GNU ELPA Signing Agent (2019) (trust undefined) created at 2020-04-13T11:05:02+0200 using RSA
\ No newline at end of file
diff --git a/elpa/async-20200113.1745/async-autoloads.el b/elpa/async-20200113.1745/async-autoloads.el
deleted file mode 100644
index de07d21f..00000000
--- a/elpa/async-20200113.1745/async-autoloads.el
+++ /dev/null
@@ -1,174 +0,0 @@
-;;; async-autoloads.el --- automatically extracted autoloads
-;;
-;;; Code:
-
-(add-to-list 'load-path (directory-file-name
- (or (file-name-directory #$) (car load-path))))
-
-
-;;;### (autoloads nil "async" "async.el" (0 0 0 0))
-;;; Generated autoloads from async.el
-
-(autoload 'async-start-process "async" "\
-Start the executable PROGRAM asynchronously named NAME. See `async-start'.
-PROGRAM is passed PROGRAM-ARGS, calling FINISH-FUNC with the
-process object when done. If FINISH-FUNC is nil, the future
-object will return the process object when the program is
-finished. Set DEFAULT-DIRECTORY to change PROGRAM's current
-working directory.
-
-\(fn NAME PROGRAM FINISH-FUNC &rest PROGRAM-ARGS)" nil nil)
-
-(autoload 'async-start "async" "\
-Execute START-FUNC (often a lambda) in a subordinate Emacs process.
-When done, the return value is passed to FINISH-FUNC. Example:
-
- (async-start
- ;; What to do in the child process
- (lambda ()
- (message \"This is a test\")
- (sleep-for 3)
- 222)
-
- ;; What to do when it finishes
- (lambda (result)
- (message \"Async process done, result should be 222: %s\"
- result)))
-
-If FINISH-FUNC is nil or missing, a future is returned that can
-be inspected using `async-get', blocking until the value is
-ready. Example:
-
- (let ((proc (async-start
- ;; What to do in the child process
- (lambda ()
- (message \"This is a test\")
- (sleep-for 3)
- 222))))
-
- (message \"I'm going to do some work here\") ;; ....
-
- (message \"Waiting on async process, result should be 222: %s\"
- (async-get proc)))
-
-If you don't want to use a callback, and you don't care about any
-return value from the child process, pass the `ignore' symbol as
-the second argument (if you don't, and never call `async-get', it
-will leave *emacs* process buffers hanging around):
-
- (async-start
- (lambda ()
- (delete-file \"a remote file on a slow link\" nil))
- 'ignore)
-
-Note: Even when FINISH-FUNC is present, a future is still
-returned except that it yields no value (since the value is
-passed to FINISH-FUNC). Call `async-get' on such a future always
-returns nil. It can still be useful, however, as an argument to
-`async-ready' or `async-wait'.
-
-\(fn START-FUNC &optional FINISH-FUNC)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "async" '("async-")))
-
-;;;***
-
-;;;### (autoloads nil "async-bytecomp" "async-bytecomp.el" (0 0 0
-;;;;;; 0))
-;;; Generated autoloads from async-bytecomp.el
-
-(autoload 'async-byte-recompile-directory "async-bytecomp" "\
-Compile all *.el files in DIRECTORY asynchronously.
-All *.elc files are systematically deleted before proceeding.
-
-\(fn DIRECTORY &optional QUIET)" nil nil)
-
-(defvar async-bytecomp-package-mode nil "\
-Non-nil if Async-Bytecomp-Package mode is enabled.
-See the `async-bytecomp-package-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `async-bytecomp-package-mode'.")
-
-(custom-autoload 'async-bytecomp-package-mode "async-bytecomp" nil)
-
-(autoload 'async-bytecomp-package-mode "async-bytecomp" "\
-Byte compile asynchronously packages installed with package.el.
-Async compilation of packages can be controlled by
-`async-bytecomp-allowed-packages'.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'async-byte-compile-file "async-bytecomp" "\
-Byte compile Lisp code FILE asynchronously.
-
-Same as `byte-compile-file' but asynchronous.
-
-\(fn FILE)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "async-bytecomp" '("async-byte")))
-
-;;;***
-
-;;;### (autoloads nil "dired-async" "dired-async.el" (0 0 0 0))
-;;; Generated autoloads from dired-async.el
-
-(defvar dired-async-mode nil "\
-Non-nil if Dired-Async mode is enabled.
-See the `dired-async-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `dired-async-mode'.")
-
-(custom-autoload 'dired-async-mode "dired-async" nil)
-
-(autoload 'dired-async-mode "dired-async" "\
-Do dired actions asynchronously.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'dired-async-do-copy "dired-async" "\
-Run ‘dired-do-copy’ asynchronously.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'dired-async-do-symlink "dired-async" "\
-Run ‘dired-do-symlink’ asynchronously.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'dired-async-do-hardlink "dired-async" "\
-Run ‘dired-do-hardlink’ asynchronously.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'dired-async-do-rename "dired-async" "\
-Run ‘dired-do-rename’ asynchronously.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "dired-async" '("dired-async-")))
-
-;;;***
-
-;;;### (autoloads nil "smtpmail-async" "smtpmail-async.el" (0 0 0
-;;;;;; 0))
-;;; Generated autoloads from smtpmail-async.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "smtpmail-async" '("async-smtpmail-")))
-
-;;;***
-
-;;;### (autoloads nil nil ("async-pkg.el") (0 0 0 0))
-
-;;;***
-
-;; Local Variables:
-;; version-control: never
-;; no-byte-compile: t
-;; no-update-autoloads: t
-;; coding: utf-8
-;; End:
-;;; async-autoloads.el ends here
diff --git a/elpa/async-20200113.1745/async-bytecomp.el b/elpa/async-20200113.1745/async-bytecomp.el
deleted file mode 100644
index 1198497f..00000000
--- a/elpa/async-20200113.1745/async-bytecomp.el
+++ /dev/null
@@ -1,210 +0,0 @@
-;;; async-bytecomp.el --- Compile elisp files asynchronously -*- lexical-binding: t -*-
-
-;; Copyright (C) 2014-2016 Free Software Foundation, Inc.
-
-;; Authors: John Wiegley
-;; Thierry Volpiatto
-
-;; Keywords: dired async byte-compile
-;; X-URL: https://github.com/jwiegley/dired-async
-
-;; This program 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.
-
-;; This program 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 GNU 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:
-;;
-;; This package provide the `async-byte-recompile-directory' function
-;; which allows, as the name says to recompile a directory outside of
-;; your running emacs.
-;; The benefit is your files will be compiled in a clean environment without
-;; the old *.el files loaded.
-;; Among other things, this fix a bug in package.el which recompile
-;; the new files in the current environment with the old files loaded, creating
-;; errors in most packages after upgrades.
-;;
-;; NB: This package is advicing the function `package--compile'.
-
-;;; Code:
-
-(require 'cl-lib)
-(require 'async)
-
-(defcustom async-bytecomp-allowed-packages
- ;; FIXME: Arguably the default should be `all', but currently
- ;; this minor mode is silently/forcefully enabled by Helm and Magit to ensure
- ;; they get compiled asynchronously, so this conservative default value is
- ;; here to make sure that the mode can be enabled without the user's
- ;; explicit consent.
- '(async forge helm helm-core helm-ls-git helm-ls-hg magit)
- "Packages in this list will be compiled asynchronously by `package--compile'.
-All the dependencies of these packages will be compiled async too,
-so no need to add dependencies to this list.
-The value of this variable can also be the symbol `all', in this case
-all packages are always compiled asynchronously."
- :group 'async
- :type '(choice
- (const :tag "All packages" all)
- (repeat symbol)))
-
-(defvar async-byte-compile-log-file
- (concat user-emacs-directory "async-bytecomp.log"))
-
-;;;###autoload
-(defun async-byte-recompile-directory (directory &optional quiet)
- "Compile all *.el files in DIRECTORY asynchronously.
-All *.elc files are systematically deleted before proceeding."
- (cl-loop with dir = (directory-files directory t "\\.elc\\'")
- unless dir return nil
- for f in dir
- when (file-exists-p f) do (delete-file f))
- ;; Ensure async is reloaded when async.elc is deleted.
- ;; This happen when recompiling its own directory.
- (load "async")
- (let ((call-back
- (lambda (&optional _ignore)
- (if (file-exists-p async-byte-compile-log-file)
- (let ((buf (get-buffer-create byte-compile-log-buffer))
- (n 0))
- (with-current-buffer buf
- (goto-char (point-max))
- (let ((inhibit-read-only t))
- (insert-file-contents async-byte-compile-log-file)
- (compilation-mode))
- (display-buffer buf)
- (delete-file async-byte-compile-log-file)
- (unless quiet
- (save-excursion
- (goto-char (point-min))
- (while (re-search-forward "^.*:Error:" nil t)
- (cl-incf n)))
- (if (> n 0)
- (message "Failed to compile %d files in directory `%s'" n directory)
- (message "Directory `%s' compiled asynchronously with warnings" directory)))))
- (unless quiet
- (message "Directory `%s' compiled asynchronously with success" directory))))))
- (async-start
- `(lambda ()
- (require 'bytecomp)
- ,(async-inject-variables "\\`\\(load-path\\)\\|byte\\'")
- (let ((default-directory (file-name-as-directory ,directory))
- error-data)
- (add-to-list 'load-path default-directory)
- (byte-recompile-directory ,directory 0 t)
- (when (get-buffer byte-compile-log-buffer)
- (setq error-data (with-current-buffer byte-compile-log-buffer
- (buffer-substring-no-properties (point-min) (point-max))))
- (unless (string= error-data "")
- (with-temp-file ,async-byte-compile-log-file
- (erase-buffer)
- (insert error-data))))))
- call-back)
- (unless quiet (message "Started compiling asynchronously directory %s" directory))))
-
-(defvar package-archive-contents)
-(defvar package-alist)
-(declare-function package-desc-reqs "package.el" (cl-x))
-
-(defun async-bytecomp--get-package-deps (pkgs)
- ;; Same as `package--get-deps' but parse instead `package-archive-contents'
- ;; because PKG is not already installed and not present in `package-alist'.
- ;; However fallback to `package-alist' in case PKG no more present
- ;; in `package-archive-contents' due to modification to `package-archives'.
- ;; See issue #58.
- (let ((seen '()))
- (while pkgs
- (let ((pkg (pop pkgs)))
- (unless (memq pkg seen)
- (let ((pkg-desc (cadr (or (assq pkg package-archive-contents)
- (assq pkg package-alist)))))
- (when pkg-desc
- (push pkg seen)
- (setq pkgs (append (mapcar #'car (package-desc-reqs pkg-desc))
- pkgs)))))))
- seen))
-
-(defadvice package--compile (around byte-compile-async)
- (let ((cur-package (package-desc-name pkg-desc))
- (pkg-dir (package-desc-dir pkg-desc)))
- (if (or (member async-bytecomp-allowed-packages '(t all (all)))
- (memq cur-package (async-bytecomp--get-package-deps
- async-bytecomp-allowed-packages)))
- (progn
- (when (eq cur-package 'async)
- (fmakunbound 'async-byte-recompile-directory))
- ;; Add to `load-path' the latest version of async and
- ;; reload it when reinstalling async.
- (when (string= cur-package "async")
- (cl-pushnew pkg-dir load-path)
- (load "async-bytecomp"))
- ;; `async-byte-recompile-directory' will add directory
- ;; as needed to `load-path'.
- (async-byte-recompile-directory (package-desc-dir pkg-desc) t))
- ad-do-it)))
-
-;;;###autoload
-(define-minor-mode async-bytecomp-package-mode
- "Byte compile asynchronously packages installed with package.el.
-Async compilation of packages can be controlled by
-`async-bytecomp-allowed-packages'."
- :group 'async
- :global t
- (if async-bytecomp-package-mode
- (ad-activate 'package--compile)
- (ad-deactivate 'package--compile)))
-
-;;;###autoload
-(defun async-byte-compile-file (file)
- "Byte compile Lisp code FILE asynchronously.
-
-Same as `byte-compile-file' but asynchronous."
- (interactive "fFile: ")
- (let ((call-back
- (lambda (&optional _ignore)
- (let ((bn (file-name-nondirectory file)))
- (if (file-exists-p async-byte-compile-log-file)
- (let ((buf (get-buffer-create byte-compile-log-buffer))
- start)
- (with-current-buffer buf
- (goto-char (setq start (point-max)))
- (let ((inhibit-read-only t))
- (insert-file-contents async-byte-compile-log-file)
- (compilation-mode))
- (display-buffer buf)
- (delete-file async-byte-compile-log-file)
- (save-excursion
- (goto-char start)
- (if (re-search-forward "^.*:Error:" nil t)
- (message "Failed to compile `%s'" bn)
- (message "`%s' compiled asynchronously with warnings" bn)))))
- (message "`%s' compiled asynchronously with success" bn))))))
- (async-start
- `(lambda ()
- (require 'bytecomp)
- ,(async-inject-variables "\\`load-path\\'")
- (let ((default-directory ,(file-name-directory file)))
- (add-to-list 'load-path default-directory)
- (byte-compile-file ,file)
- (when (get-buffer byte-compile-log-buffer)
- (setq error-data (with-current-buffer byte-compile-log-buffer
- (buffer-substring-no-properties (point-min) (point-max))))
- (unless (string= error-data "")
- (with-temp-file ,async-byte-compile-log-file
- (erase-buffer)
- (insert error-data))))))
- call-back)))
-
-(provide 'async-bytecomp)
-
-;;; async-bytecomp.el ends here
diff --git a/elpa/async-20200113.1745/async-bytecomp.elc b/elpa/async-20200113.1745/async-bytecomp.elc
deleted file mode 100644
index 1a350c76d405a49ab926c10d3efb061fbd3127f1..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 7322
zcmd^ETXWmS71qUeWBI8s$xPdsuIb1kJq8CClCq_ywIs`_T94z{YGzVH87+Y&i5gtc
z04SN6{`h|9EEXhnb3B?h%?a8St+7SmlBhw<-mD@5$)`~JvcfN(MaYp
zD#7Ao-d^fh6q$&m7JVhsOfGFw9i