install devdocs-browser and devdocs.el
This commit is contained in:
parent
a3269771aa
commit
bd050dc205
File diff suppressed because it is too large
Load diff
59
code/elpa/devdocs-20220811.703/devdocs-autoloads.el
Normal file
59
code/elpa/devdocs-20220811.703/devdocs-autoloads.el
Normal file
|
@ -0,0 +1,59 @@
|
|||
;;; devdocs-autoloads.el --- automatically extracted autoloads -*- lexical-binding: t -*-
|
||||
;;
|
||||
;;; Code:
|
||||
|
||||
(add-to-list 'load-path (directory-file-name
|
||||
(or (file-name-directory #$) (car load-path))))
|
||||
|
||||
|
||||
;;;### (autoloads nil "devdocs" "devdocs.el" (0 0 0 0))
|
||||
;;; Generated autoloads from devdocs.el
|
||||
|
||||
(autoload 'devdocs-delete "devdocs" "\
|
||||
Delete DevDocs documentation.
|
||||
DOC is a document metadata alist.
|
||||
|
||||
\(fn DOC)" t nil)
|
||||
|
||||
(autoload 'devdocs-install "devdocs" "\
|
||||
Download and install DevDocs documentation.
|
||||
DOC is a document metadata alist.
|
||||
|
||||
\(fn DOC)" t nil)
|
||||
|
||||
(autoload 'devdocs-update-all "devdocs" "\
|
||||
Reinstall all documents with a new version available." t nil)
|
||||
|
||||
(autoload 'devdocs-lookup "devdocs" "\
|
||||
Look up a DevDocs documentation entry.
|
||||
|
||||
Display entries in the documents `devdocs-current-docs' for
|
||||
selection. With a prefix argument (or, from Lisp, if ASK-DOCS is
|
||||
non-nil), first read the name of one or more installed documents
|
||||
and set `devdocs-current-docs' for this buffer.
|
||||
|
||||
If INITIAL-INPUT is not nil, insert it into the minibuffer.
|
||||
|
||||
\(fn &optional ASK-DOCS INITIAL-INPUT)" t nil)
|
||||
|
||||
(autoload 'devdocs-peruse "devdocs" "\
|
||||
Read a document from the first page.
|
||||
|
||||
\(fn DOC)" t nil)
|
||||
|
||||
(autoload 'devdocs-search "devdocs" "\
|
||||
Search for QUERY in the DevDocs website.
|
||||
|
||||
\(fn QUERY)" t nil)
|
||||
|
||||
(register-definition-prefixes "devdocs" '("devdocs-"))
|
||||
|
||||
;;;***
|
||||
|
||||
;; Local Variables:
|
||||
;; version-control: never
|
||||
;; no-byte-compile: t
|
||||
;; no-update-autoloads: t
|
||||
;; coding: utf-8
|
||||
;; End:
|
||||
;;; devdocs-autoloads.el ends here
|
2
code/elpa/devdocs-20220811.703/devdocs-pkg.el
Normal file
2
code/elpa/devdocs-20220811.703/devdocs-pkg.el
Normal file
|
@ -0,0 +1,2 @@
|
|||
;;; Generated package description from devdocs.el -*- no-byte-compile: t -*-
|
||||
(define-package "devdocs" "20220811.703" "Emacs viewer for DevDocs" '((emacs "27.1")) :commit "61ce83b79dc64e2f99d7f016a09b97e14b331459" :authors '(("Augusto Stoffel" . "arstoffel@gmail.com")) :maintainer '("Augusto Stoffel" . "arstoffel@gmail.com") :keywords '("help") :url "https://github.com/astoff/devdocs.el")
|
619
code/elpa/devdocs-20220811.703/devdocs.el
Normal file
619
code/elpa/devdocs-20220811.703/devdocs.el
Normal file
|
@ -0,0 +1,619 @@
|
|||
;;; devdocs.el --- Emacs viewer for DevDocs -*- lexical-binding: t -*-
|
||||
|
||||
;; Copyright (C) 2021 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Augusto Stoffel <arstoffel@gmail.com>
|
||||
;; Keywords: help
|
||||
;; Package-Version: 20220811.703
|
||||
;; Package-Commit: 61ce83b79dc64e2f99d7f016a09b97e14b331459
|
||||
;; URL: https://github.com/astoff/devdocs.el
|
||||
;; Package-Requires: ((emacs "27.1"))
|
||||
;; Version: 0.5
|
||||
|
||||
;; 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 3 of the License, 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; devdocs.el is a documentation viewer similar to the built-in Info
|
||||
;; browser, but geared towards documentation obtained from
|
||||
;; https://devdocs.io.
|
||||
|
||||
;; To get started, download some documentation with `devdocs-install`.
|
||||
;; This will show the available documents and save the selected one to
|
||||
;; disk. Once you have the desired documents at hand, use
|
||||
;; `devdocs-lookup` to search for entries.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'seq)
|
||||
(require 'shr)
|
||||
(require 'url-expand)
|
||||
(eval-when-compile
|
||||
(require 'let-alist))
|
||||
|
||||
(unless (libxml-available-p)
|
||||
(display-warning 'devdocs "This package requires Emacs to be compiled with libxml2"))
|
||||
|
||||
(defgroup devdocs nil
|
||||
"Emacs viewer for DevDocs."
|
||||
:group 'help
|
||||
:prefix "devdocs-")
|
||||
|
||||
(defcustom devdocs-current-docs nil
|
||||
"A list of documents relevant to the current buffer.
|
||||
This variable is normally set by the `devdocs-lookup' command,
|
||||
but you may also wish to set it via a hook or as file or
|
||||
directory-local variable."
|
||||
:local t
|
||||
:type '(list string))
|
||||
|
||||
(defcustom devdocs-data-dir (expand-file-name "devdocs" user-emacs-directory)
|
||||
"Directory to save documentation files."
|
||||
:type 'directory)
|
||||
|
||||
(defvar devdocs-site-url "https://devdocs.io"
|
||||
"Location of the DevDocs website.")
|
||||
|
||||
(defvar devdocs-cdn-url "https://documents.devdocs.io"
|
||||
"Location of the DevDocs CDN.")
|
||||
|
||||
(defcustom devdocs-cache-timeout 900
|
||||
"Number of seconds to keep cached information such as document indexes."
|
||||
:type 'number)
|
||||
|
||||
(defcustom devdocs-separator " » "
|
||||
"String used to format a documentation location, e.g. in header line."
|
||||
:type 'string)
|
||||
|
||||
(defcustom devdocs-disambiguated-entry-format #("%s (%s)" 3 7 (face italic))
|
||||
"How to disambiguate entries with identical names in `devdocs-lookup'.
|
||||
This string is passed to `format' with two arguments, the entry
|
||||
name and a count."
|
||||
:type '(choice (const :tag "Count in parentheses, italicized"
|
||||
#("%s (%s)" 3 7 (face italic)))
|
||||
(const :tag "Invisible cookie"
|
||||
#("%s (%s)" 2 7 (invisible t)))
|
||||
string))
|
||||
|
||||
(defcustom devdocs-fontify-code-blocks t
|
||||
"Whether to fontify code snippets inside pre tags.
|
||||
Fontification is done using the `org-src' library, which see."
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom devdocs-window-select nil
|
||||
"Whether to select the DevDocs window for viewing."
|
||||
:type 'boolean)
|
||||
|
||||
(defface devdocs-code-block '((t nil))
|
||||
"Additional face to apply to code blocks in DevDocs buffers.")
|
||||
|
||||
(defvar devdocs-history nil
|
||||
"History of documentation entries.")
|
||||
|
||||
(defconst devdocs--data-format-version 1
|
||||
"Version number of the saved documentation data format.")
|
||||
|
||||
;;; Memoization
|
||||
|
||||
(defvar devdocs--cache (make-hash-table :test 'equal)
|
||||
"Hash table used by `devdocs--with-cache'.")
|
||||
|
||||
(defmacro devdocs--with-cache (&rest body)
|
||||
"Evaluate BODY with memoization.
|
||||
The return value is stored and reused if needed again within the
|
||||
time span specified by `devdocs-cache-timeout'.
|
||||
|
||||
Note that the lexical environment is used to associate BODY to
|
||||
its return value; take the necessary precautions."
|
||||
`(if-let ((fun (lambda () ,@body))
|
||||
(funrep ,(if (< emacs-major-version 28) ;; Cf. bug#32503
|
||||
'(prin1-to-string fun)
|
||||
'fun))
|
||||
(data (gethash funrep devdocs--cache)))
|
||||
(prog1 (cdr data)
|
||||
(timer-set-time (car data) (time-add nil devdocs-cache-timeout)))
|
||||
(let ((val (funcall fun))
|
||||
(timer (run-at-time devdocs-cache-timeout nil
|
||||
#'remhash funrep devdocs--cache)))
|
||||
(prog1 val
|
||||
(puthash funrep (cons timer val) devdocs--cache)))))
|
||||
|
||||
;;; Documentation management
|
||||
|
||||
(defun devdocs--doc-metadata (slug)
|
||||
"Return the metadata of an installed document named SLUG."
|
||||
(let ((file (expand-file-name (concat slug "/metadata") devdocs-data-dir)))
|
||||
(unless (file-exists-p file)
|
||||
(user-error "Document `%s' is not installed" slug))
|
||||
(with-temp-buffer
|
||||
(insert-file-contents file)
|
||||
(let ((metadata (read (current-buffer))))
|
||||
(unless (eq (car metadata) devdocs--data-format-version)
|
||||
(user-error "Please run `devdocs-update-all'"))
|
||||
(cdr metadata)))))
|
||||
|
||||
(defun devdocs--installed-docs ()
|
||||
"Return a list of installed documents."
|
||||
(mapcar #'devdocs--doc-metadata
|
||||
(let ((default-directory devdocs-data-dir))
|
||||
(seq-filter #'file-directory-p
|
||||
(when (file-directory-p devdocs-data-dir)
|
||||
(directory-files "." nil "^[^.]"))))))
|
||||
|
||||
(defun devdocs--available-docs ()
|
||||
"Return a list of available documents.
|
||||
If necessary, download data from `devdocs-site-url'."
|
||||
(devdocs--with-cache
|
||||
(with-temp-buffer
|
||||
(url-insert-file-contents
|
||||
(format "%s/docs.json" devdocs-site-url))
|
||||
(json-read))))
|
||||
|
||||
(defun devdocs--doc-title (doc)
|
||||
"Title of document DOC.
|
||||
DOC is either a metadata alist, or the slug of an installed
|
||||
document."
|
||||
(let-alist (if (stringp doc) (devdocs--doc-metadata doc) doc)
|
||||
(if (seq-empty-p .version) .name (concat .name " " .version))))
|
||||
|
||||
(defun devdocs--read-document (prompt &optional multiple available)
|
||||
"Query interactively for a DevDocs document.
|
||||
|
||||
PROMPT is passed to `completing-read'.
|
||||
Non-nil MULTIPLE allows selecting multiple documents.
|
||||
Non-nil AVAILABLE means to offer a list of all available documents;
|
||||
otherwise, offer only installed documents.
|
||||
|
||||
Return a document metadata alist if MULTIPLE is nil; otherwise, a
|
||||
list of metadata alists."
|
||||
(let ((cands (mapcar (lambda (it) (cons (alist-get 'slug it) it))
|
||||
(if available
|
||||
(devdocs--available-docs)
|
||||
(or (devdocs--installed-docs)
|
||||
(user-error "No documents in `%s'" devdocs-data-dir))))))
|
||||
(if multiple
|
||||
(delq nil (mapcar (lambda (s) (cdr (assoc s cands)))
|
||||
(completing-read-multiple prompt cands)))
|
||||
(cdr (assoc (completing-read prompt cands nil t) cands)))))
|
||||
|
||||
;;;###autoload
|
||||
(defun devdocs-delete (doc)
|
||||
"Delete DevDocs documentation.
|
||||
DOC is a document metadata alist."
|
||||
(interactive (list (devdocs--read-document "Delete documentation: ")))
|
||||
(let ((dest (expand-file-name (alist-get 'slug doc) devdocs-data-dir)))
|
||||
(if (and (file-directory-p dest)
|
||||
(file-in-directory-p dest devdocs-data-dir))
|
||||
(delete-directory dest t)
|
||||
(user-error "Document `%s' is not installed" (alist-get 'slug doc)))))
|
||||
|
||||
;;;###autoload
|
||||
(defun devdocs-install (doc)
|
||||
"Download and install DevDocs documentation.
|
||||
DOC is a document metadata alist."
|
||||
(interactive (list (devdocs--read-document "Install documentation: " nil t)))
|
||||
(make-directory devdocs-data-dir t)
|
||||
(let* ((slug (alist-get 'slug doc))
|
||||
(mtime (alist-get 'mtime doc))
|
||||
(temp (make-temp-file "devdocs-" t))
|
||||
pages)
|
||||
(with-temp-buffer
|
||||
(url-insert-file-contents (format "%s/%s/db.json?%s" devdocs-cdn-url slug mtime))
|
||||
(dolist-with-progress-reporter
|
||||
(entry (let ((json-key-type 'string))
|
||||
(json-read)))
|
||||
"Installing documentation..."
|
||||
(with-temp-file (expand-file-name
|
||||
(url-hexify-string (format "%s.html" (car entry))) temp)
|
||||
(push (car entry) pages)
|
||||
(insert (cdr entry)))))
|
||||
(with-temp-buffer
|
||||
(url-insert-file-contents (format "%s/%s/index.json?%s" devdocs-cdn-url slug mtime))
|
||||
(let ((index (json-read)))
|
||||
(push `(pages . ,(vconcat (nreverse pages))) index)
|
||||
(with-temp-file (expand-file-name "index" temp)
|
||||
(prin1 index (current-buffer)))))
|
||||
(with-temp-file (expand-file-name "metadata" temp)
|
||||
(prin1 (cons devdocs--data-format-version doc) (current-buffer)))
|
||||
(let ((dest (expand-file-name slug devdocs-data-dir)))
|
||||
(when (and (file-directory-p dest)
|
||||
(file-in-directory-p dest devdocs-data-dir))
|
||||
(delete-directory dest t))
|
||||
(rename-file (file-name-as-directory temp) dest))
|
||||
(message "Document `%s' installed" slug)))
|
||||
|
||||
;;;###autoload
|
||||
(defun devdocs-update-all ()
|
||||
"Reinstall all documents with a new version available."
|
||||
(interactive)
|
||||
(when-let ((installed (when (file-directory-p devdocs-data-dir)
|
||||
(directory-files devdocs-data-dir nil "^[^.]")))
|
||||
(newer (seq-filter
|
||||
(lambda (doc)
|
||||
(let-alist doc
|
||||
(and (member .slug installed)
|
||||
(< (alist-get 'mtime
|
||||
(ignore-errors (devdocs--doc-metadata .slug))
|
||||
0) ;; Update docs with an old data format too
|
||||
.mtime))))
|
||||
(devdocs--available-docs)))
|
||||
((y-or-n-p (format "Update %s documents %s?"
|
||||
(length newer)
|
||||
(mapcar (lambda (d) (alist-get 'slug d)) newer)))))
|
||||
(dolist (doc newer)
|
||||
(devdocs-install doc))))
|
||||
|
||||
;;; Document indexes
|
||||
|
||||
(defun devdocs--index (doc kind)
|
||||
"Return an index of document DOC, where KIND is `entries', `pages' or `types'."
|
||||
(if kind
|
||||
(alist-get kind (devdocs--with-cache (devdocs--index doc nil)))
|
||||
(let* ((docmeta (cons 'doc doc))
|
||||
(indexes (with-temp-buffer
|
||||
(insert-file-contents (expand-file-name
|
||||
(concat (alist-get 'slug doc) "/index")
|
||||
devdocs-data-dir))
|
||||
(read (current-buffer))))
|
||||
(entries (alist-get 'entries indexes)))
|
||||
(prog1 indexes
|
||||
(seq-do-indexed (lambda (entry i) (aset entries i (cons docmeta entry)))
|
||||
entries)))))
|
||||
|
||||
;;; Documentation viewer
|
||||
|
||||
(defvar-local devdocs--stack nil
|
||||
"List of viewed entries, set buffer-locally when in `devdocs-mode'.")
|
||||
|
||||
(defvar-local devdocs--forward-stack nil
|
||||
"List of viewed entries for `devdocs-go-forward'.")
|
||||
|
||||
(defvar devdocs-header-line
|
||||
'(:eval (let-alist (car devdocs--stack)
|
||||
(concat (devdocs--doc-title .doc)
|
||||
(and .type devdocs-separator) .type
|
||||
devdocs-separator (or .name .path)))))
|
||||
|
||||
(define-derived-mode devdocs-mode special-mode "DevDocs"
|
||||
"Major mode for viewing DevDocs documents."
|
||||
:interactive nil
|
||||
(setq-local
|
||||
browse-url-browser-function 'devdocs--browse-url
|
||||
buffer-undo-list t
|
||||
header-line-format devdocs-header-line
|
||||
revert-buffer-function 'devdocs--revert-buffer
|
||||
truncate-lines t))
|
||||
|
||||
(defun devdocs-goto-target ()
|
||||
"Go to the original position in a DevDocs buffer."
|
||||
(interactive)
|
||||
(goto-char (point-min))
|
||||
(when-let ((pred (if (fboundp 'shr--set-target-ids) #'member t)) ;; shr change in Emacs 29
|
||||
(match (text-property-search-forward 'shr-target-id shr-target-id pred)))
|
||||
(goto-char (prop-match-beginning match))))
|
||||
|
||||
(defun devdocs-go-back ()
|
||||
"Go to the previously displayed entry in this DevDocs buffer."
|
||||
(interactive)
|
||||
(unless (cadr devdocs--stack)
|
||||
(user-error "No previous entry"))
|
||||
(push (pop devdocs--stack) devdocs--forward-stack)
|
||||
(devdocs--render (pop devdocs--stack)))
|
||||
|
||||
(defun devdocs-go-forward ()
|
||||
"Go to the next entry in this DevDocs buffer."
|
||||
(interactive)
|
||||
(unless (car devdocs--forward-stack)
|
||||
(user-error "No next entry"))
|
||||
(devdocs--render (pop devdocs--forward-stack)))
|
||||
|
||||
(defun devdocs-next-entry (count)
|
||||
"Go forward COUNT entries in this document.
|
||||
|
||||
Note that this refers to the index order, which may not coincide
|
||||
with the order of appearance in the text."
|
||||
(interactive "p")
|
||||
(let-alist (car devdocs--stack)
|
||||
(let* ((entries (devdocs--index .doc 'entries))
|
||||
(pred (lambda (entry _) (string= (alist-get 'path entry) .path)))
|
||||
(current (seq-position entries nil pred)))
|
||||
(unless current (user-error "No current entry"))
|
||||
(devdocs--render
|
||||
(or (ignore-error 'args-out-of-range (elt entries (+ count current)))
|
||||
(user-error "No %s entry" (if (< count 0) "previous" "next")))))))
|
||||
|
||||
(defun devdocs-previous-entry (count)
|
||||
"Go backward COUNT entries in this document."
|
||||
(interactive "p")
|
||||
(devdocs-next-entry (- count)))
|
||||
|
||||
(defun devdocs-goto-page (doc page)
|
||||
"Go to a given PAGE (a number or path) of DOC.
|
||||
Interactively, read a page name with completion."
|
||||
(interactive (let-alist (car devdocs--stack)
|
||||
(list .doc (completing-read "Go to page: "
|
||||
(append (devdocs--index .doc 'pages) nil)
|
||||
nil t nil 'devdocs-history))))
|
||||
(let* ((path (cond ((stringp page) page)
|
||||
((numberp page) (elt (devdocs--index doc 'pages) page))))
|
||||
(entry (or (seq-find (lambda (entry) (string= (alist-get 'path entry) path))
|
||||
(devdocs--index doc 'entries))
|
||||
`((doc . ,doc) (path . ,path)))))
|
||||
(devdocs--render entry)))
|
||||
|
||||
(defun devdocs-first-page (doc)
|
||||
"Go to first page of DOC."
|
||||
(interactive (list (alist-get 'doc (car devdocs--stack))))
|
||||
(devdocs-goto-page doc 0))
|
||||
|
||||
(defun devdocs-last-page (doc)
|
||||
"Go to last page of DOC."
|
||||
(interactive (list (alist-get 'doc (car devdocs--stack))))
|
||||
(devdocs-goto-page doc (1- (length (devdocs--index doc 'pages)))))
|
||||
|
||||
(defun devdocs-next-page (count)
|
||||
"Go forward COUNT pages in this document."
|
||||
(interactive "p")
|
||||
(let-alist (car devdocs--stack)
|
||||
(let* ((pages (devdocs--index .doc 'pages))
|
||||
(dest (+ count (seq-position pages (devdocs--path-file .path)))))
|
||||
(cond ((< dest 0) (user-error "No previous page"))
|
||||
((<= (length pages) dest) (user-error "No next page")))
|
||||
(devdocs-goto-page .doc dest))))
|
||||
|
||||
(defun devdocs-previous-page (count)
|
||||
"Go backward COUNT entries in this document."
|
||||
(interactive "p")
|
||||
(devdocs-next-page (- count)))
|
||||
|
||||
(defun devdocs-copy-url ()
|
||||
"Copy the URL of the current DevDocs page to the kill ring."
|
||||
(interactive)
|
||||
(let-alist (or (car devdocs--stack)
|
||||
(user-error "Not in a DevDocs buffer"))
|
||||
(let ((url (url-encode-url
|
||||
(format "%s/%s/%s"
|
||||
devdocs-site-url
|
||||
.doc.slug
|
||||
(if .fragment
|
||||
(concat (devdocs--path-file .path) "#" .fragment)
|
||||
.path)))))
|
||||
(kill-new url)
|
||||
(message "Copied %s" url))))
|
||||
|
||||
(let ((map devdocs-mode-map))
|
||||
(define-key map [tab] #'forward-button)
|
||||
(define-key map [backtab] #'backward-button)
|
||||
(define-key map "d" #'devdocs-peruse)
|
||||
(define-key map "i" #'devdocs-lookup)
|
||||
(define-key map "p" #'devdocs-previous-entry)
|
||||
(define-key map "n" #'devdocs-next-entry)
|
||||
(define-key map "g" #'devdocs-goto-page)
|
||||
(define-key map "[" #'devdocs-previous-page)
|
||||
(define-key map "]" #'devdocs-next-page)
|
||||
(define-key map "<" #'devdocs-first-page)
|
||||
(define-key map ">" #'devdocs-last-page)
|
||||
(define-key map "l" #'devdocs-go-back)
|
||||
(define-key map "r" #'devdocs-go-forward)
|
||||
(define-key map "w" #'devdocs-copy-url)
|
||||
(define-key map "." #'devdocs-goto-target))
|
||||
|
||||
;;; Rendering
|
||||
|
||||
(defun devdocs--path-file (path)
|
||||
"Return the non-fragment part of PATH."
|
||||
(substring path 0 (string-match "#" path)))
|
||||
|
||||
(defun devdocs--path-fragment (path)
|
||||
"Return the fragment part of PATH, or nil if absent."
|
||||
(when-let ((i (string-match "#" path)))
|
||||
(substring path (1+ i))))
|
||||
|
||||
(defun devdocs--path-expand (path base)
|
||||
"Expand PATH relative to a BASE path."
|
||||
(pcase (string-to-char path)
|
||||
('?/ path)
|
||||
('?# (concat (devdocs--path-file base) path))
|
||||
(_ (seq-rest ;; drop leading slash
|
||||
(url-expander-remove-relative-links ;; undocumented function!
|
||||
(concat (file-name-directory base) path))))))
|
||||
|
||||
(defun devdocs--shr-tag-pre (dom)
|
||||
"Insert and fontify pre-tag represented by DOM."
|
||||
(let ((start (point)))
|
||||
(if-let ((lang (and devdocs-fontify-code-blocks
|
||||
(dom-attr dom 'data-language)))
|
||||
(mode (or (cdr (assoc lang '(("cpp" . c++-mode)
|
||||
("shell" . sh-mode))))
|
||||
(intern (concat lang "-mode"))))
|
||||
(buffer (and (fboundp mode) (current-buffer))))
|
||||
(insert
|
||||
(with-temp-buffer
|
||||
(shr-tag-pre dom)
|
||||
(let ((inhibit-message t)
|
||||
(message-log-max nil))
|
||||
(ignore-errors (delay-mode-hooks (funcall mode)))
|
||||
(font-lock-ensure))
|
||||
(buffer-string)))
|
||||
(shr-tag-pre dom))
|
||||
(add-face-text-property start (point) 'devdocs-code-block t)))
|
||||
|
||||
(defun devdocs--render (entry)
|
||||
"Render a DevDocs documentation entry, returning a buffer.
|
||||
|
||||
ENTRY is an alist like those in the entry index of the document,
|
||||
possibly with an additional ENTRY.fragment which overrides the
|
||||
fragment part of ENTRY.path."
|
||||
(with-current-buffer (get-buffer-create "*devdocs*")
|
||||
(unless (eq major-mode 'devdocs-mode)
|
||||
(devdocs-mode))
|
||||
(let-alist entry
|
||||
(let ((inhibit-read-only t)
|
||||
(shr-external-rendering-functions `((pre . devdocs--shr-tag-pre)
|
||||
,@shr-external-rendering-functions))
|
||||
(file (expand-file-name (format "%s/%s.html"
|
||||
.doc.slug
|
||||
(url-hexify-string (devdocs--path-file .path)))
|
||||
devdocs-data-dir)))
|
||||
(erase-buffer)
|
||||
(setq-local shr-target-id (or .fragment (devdocs--path-fragment .path)))
|
||||
;; TODO: cl-progv here for shr settings?
|
||||
(shr-insert-document
|
||||
(with-temp-buffer
|
||||
(insert-file-contents file)
|
||||
(libxml-parse-html-region (point-min) (point-max)))))
|
||||
(set-buffer-modified-p nil)
|
||||
(setq-local devdocs-current-docs (list .doc.slug))
|
||||
(push entry devdocs--stack)
|
||||
(setq-local list-buffers-directory (format-mode-line devdocs-header-line nil nil (current-buffer)))
|
||||
(devdocs-goto-target)
|
||||
(current-buffer))))
|
||||
|
||||
(defun devdocs--revert-buffer (&rest _args)
|
||||
"Refresh DevDocs buffer."
|
||||
(devdocs--render (pop devdocs--stack)))
|
||||
|
||||
(defun devdocs--browse-url (url &rest args)
|
||||
"A suitable `browse-url-browser-function' for `devdocs-mode'.
|
||||
URL can be an internal link in a DevDocs document.
|
||||
ARGS is passed as is to `browse-url'."
|
||||
(if (string-match-p ":" url)
|
||||
(let ((browse-url-browser-function (default-value 'browse-url-browser-function)))
|
||||
(apply #'browse-url url args))
|
||||
(let-alist (car devdocs--stack)
|
||||
(let* ((dest (devdocs--path-expand url .path))
|
||||
(file (devdocs--path-file dest))
|
||||
(frag (devdocs--path-fragment dest))
|
||||
(entry (seq-find (lambda (it)
|
||||
(let-alist it
|
||||
(or (string= .path dest)
|
||||
(string= .path file))))
|
||||
(devdocs--index .doc 'entries))))
|
||||
(unless entry (error "Can't find `%s'" dest))
|
||||
(when frag (push `(fragment . ,frag) entry))
|
||||
(devdocs--render entry)))))
|
||||
|
||||
;;; Lookup commands
|
||||
|
||||
(defun devdocs--entries (documents)
|
||||
"A list of entries in DOCUMENTS, as propertized strings."
|
||||
(let* ((counts (make-hash-table :test 'equal))
|
||||
(mkentry (lambda (it)
|
||||
(let* ((name (alist-get 'name it))
|
||||
(count (1+ (gethash name counts 0))))
|
||||
(puthash name count counts)
|
||||
`(,name ,count . ,it))))
|
||||
(entries (mapcan (lambda (doc)
|
||||
(mapcar mkentry
|
||||
(devdocs--index doc 'entries)))
|
||||
documents)))
|
||||
(mapcar (pcase-lambda (`(,name ,count . ,it))
|
||||
(propertize (if (= 1 (gethash name counts))
|
||||
name
|
||||
(format devdocs-disambiguated-entry-format name count))
|
||||
'devdocs--data it))
|
||||
entries)))
|
||||
|
||||
(defun devdocs--get-data (str)
|
||||
"Get data stored as a string property in STR."
|
||||
(get-text-property 0 'devdocs--data str))
|
||||
|
||||
(defun devdocs--annotate (cand)
|
||||
"Return an annotation for `devdocs--read-entry' candidate CAND."
|
||||
(let-alist (devdocs--get-data cand)
|
||||
(concat " " (propertize " " 'display '(space :align-to 40))
|
||||
(devdocs--doc-title .doc) devdocs-separator .type)))
|
||||
|
||||
(defun devdocs--relevant-docs (ask)
|
||||
"Return a list of relevant documents for the current buffer.
|
||||
May ask interactively for the desired documents, remembering the
|
||||
choice for this buffer. If ASK is non-nil, ask unconditionally."
|
||||
(if ask
|
||||
(let ((docs (devdocs--read-document "Documents for this buffer: " t)))
|
||||
(prog1 docs
|
||||
(setq-local devdocs-current-docs
|
||||
(mapcar (lambda (d) (alist-get 'slug d)) docs))))
|
||||
(or (mapcar #'devdocs--doc-metadata devdocs-current-docs)
|
||||
(devdocs--relevant-docs t)
|
||||
(user-error "No documents"))))
|
||||
|
||||
(defun devdocs--read-entry (prompt documents initial-input)
|
||||
"Read the name of an entry in one of the DOCUMENTS, using PROMPT.
|
||||
|
||||
INITIAL-INPUT is passed to `completing-read'"
|
||||
(let* ((cands (devdocs--with-cache
|
||||
(devdocs--entries documents)))
|
||||
(metadata '(metadata
|
||||
(category . devdocs)
|
||||
(annotation-function . devdocs--annotate)))
|
||||
(coll (lambda (string predicate action)
|
||||
(if (eq action 'metadata)
|
||||
metadata
|
||||
(complete-with-action action cands string predicate))))
|
||||
(cand (completing-read prompt coll nil t initial-input
|
||||
'devdocs-history
|
||||
(thing-at-point 'symbol))))
|
||||
(devdocs--get-data (car (member cand cands)))))
|
||||
|
||||
;;;###autoload
|
||||
(defun devdocs-lookup (&optional ask-docs initial-input)
|
||||
"Look up a DevDocs documentation entry.
|
||||
|
||||
Display entries in the documents `devdocs-current-docs' for
|
||||
selection. With a prefix argument (or, from Lisp, if ASK-DOCS is
|
||||
non-nil), first read the name of one or more installed documents
|
||||
and set `devdocs-current-docs' for this buffer.
|
||||
|
||||
If INITIAL-INPUT is not nil, insert it into the minibuffer."
|
||||
(interactive "P")
|
||||
(let* ((entry (devdocs--read-entry "Go to documentation: "
|
||||
(devdocs--relevant-docs ask-docs)
|
||||
initial-input))
|
||||
(buffer (devdocs--render entry))
|
||||
(window (display-buffer buffer)))
|
||||
(when window
|
||||
(with-selected-window window
|
||||
(devdocs-goto-target)
|
||||
(recenter 0))
|
||||
(when devdocs-window-select
|
||||
(select-window window)))))
|
||||
|
||||
;;;###autoload
|
||||
(defun devdocs-peruse (doc)
|
||||
"Read a document from the first page."
|
||||
(interactive (list (devdocs--read-document "Peruse documentation: ")))
|
||||
(pop-to-buffer (devdocs-goto-page doc 0)))
|
||||
|
||||
;; Don't show devdocs-mode specific commands in M-x
|
||||
(dolist (sym '(devdocs-goto-target devdocs-go-back devdocs-go-forward
|
||||
devdocs-next-entry devdocs-previous-entry devdocs-goto-page
|
||||
devdocs-first-page devdocs-last-page devdocs-next-page
|
||||
devdocs-previous-page devdocs-copy-url))
|
||||
(put sym 'completion-predicate (lambda (_ buffer)
|
||||
(provided-mode-derived-p
|
||||
(buffer-local-value 'major-mode buffer)
|
||||
'devdocs-mode))))
|
||||
|
||||
;;; Compatibility with the old devdocs package
|
||||
|
||||
;;;###autoload
|
||||
(defun devdocs-search (query)
|
||||
"Search for QUERY in the DevDocs website."
|
||||
(interactive (list (read-from-minibuffer
|
||||
(format "Search %s: " devdocs-site-url)
|
||||
nil nil nil nil (thing-at-point 'symbol))))
|
||||
(browse-url (format "%s/#q=%s" devdocs-site-url (url-hexify-string query))))
|
||||
|
||||
(provide 'devdocs)
|
||||
;;; devdocs.el ends here
|
|
@ -0,0 +1,70 @@
|
|||
;;; devdocs-browser-autoloads.el --- automatically extracted autoloads -*- lexical-binding: t -*-
|
||||
;;
|
||||
;;; Code:
|
||||
|
||||
(add-to-list 'load-path (directory-file-name
|
||||
(or (file-name-directory #$) (car load-path))))
|
||||
|
||||
|
||||
;;;### (autoloads nil "devdocs-browser" "devdocs-browser.el" (0 0
|
||||
;;;;;; 0 0))
|
||||
;;; Generated autoloads from devdocs-browser.el
|
||||
|
||||
(autoload 'devdocs-browser-list-docs "devdocs-browser" "\
|
||||
Get doc metadata lists, reload cache if REFRESH-CACHE.
|
||||
|
||||
\(fn &optional REFRESH-CACHE)" nil nil)
|
||||
|
||||
(autoload 'devdocs-browser-update-docs "devdocs-browser" "\
|
||||
Update doc metadata list.
|
||||
To upgrade docs content, see `devdocs-browser-upgrade-doc'." t nil)
|
||||
|
||||
(autoload 'devdocs-browser-install-doc "devdocs-browser" "\
|
||||
Install doc by SLUG-OR-NAME.
|
||||
When called interactively, user can choose from the list.
|
||||
When called interactively with prefix, or FORCE is t, reinstall existing doc.
|
||||
|
||||
\(fn SLUG-OR-NAME &optional FORCE)" t nil)
|
||||
|
||||
(autoload 'devdocs-browser-uninstall-doc "devdocs-browser" "\
|
||||
Uninstall doc by SLUG.
|
||||
When called interactively, user can choose from the list.
|
||||
|
||||
\(fn SLUG)" t nil)
|
||||
|
||||
(autoload 'devdocs-browser-upgrade-doc "devdocs-browser" "\
|
||||
Upgrade doc by SLUG, return t if upgrade success.
|
||||
Also download new version of offline data if
|
||||
there's offline data for current version.
|
||||
When called interactively, user can choose from list.
|
||||
You may need to call `devdocs-browser-update-docs' first.
|
||||
|
||||
\(fn SLUG)" t nil)
|
||||
|
||||
(autoload 'devdocs-browser-upgrade-all-docs "devdocs-browser" "\
|
||||
Upgrade all docs." t nil)
|
||||
|
||||
(autoload 'devdocs-browser-open-in "devdocs-browser" "\
|
||||
Open entry in specified docs SLUG-OR-NAME-LIST.
|
||||
When called interactively, user can choose from the list.
|
||||
|
||||
\(fn SLUG-OR-NAME-LIST)" t nil)
|
||||
|
||||
(autoload 'devdocs-browser-open "devdocs-browser" "\
|
||||
Open entry in active docs.
|
||||
Active docs are specified by `devdocs-browser-active-docs',
|
||||
or `devdocs-browser-major-mode-docs-alist',
|
||||
or the current doc type if called in a devdocs eww buffer.
|
||||
When all of them are nil, all installed docs are used." t nil)
|
||||
|
||||
(register-definition-prefixes "devdocs-browser" '("devdocs-browser-"))
|
||||
|
||||
;;;***
|
||||
|
||||
;; Local Variables:
|
||||
;; version-control: never
|
||||
;; no-byte-compile: t
|
||||
;; no-update-autoloads: t
|
||||
;; coding: utf-8
|
||||
;; End:
|
||||
;;; devdocs-browser-autoloads.el ends here
|
|
@ -0,0 +1,2 @@
|
|||
;;; Generated package description from devdocs-browser.el -*- no-byte-compile: t -*-
|
||||
(define-package "devdocs-browser" "20220917.1403" "Browse devdocs.io documents using EWW" '((emacs "27.1")) :commit "badbb9cb57522cc0e002a32fe385f7ad1e929665" :authors '(("blahgeek" . "i@blahgeek.com")) :maintainer '("blahgeek" . "i@blahgeek.com") :keywords '("docs" "help" "tools") :url "https://github.com/blahgeek/emacs-devdocs-browser")
|
806
code/elpa/devdocs-browser-20220917.1403/devdocs-browser.el
Normal file
806
code/elpa/devdocs-browser-20220917.1403/devdocs-browser.el
Normal file
|
@ -0,0 +1,806 @@
|
|||
;;; devdocs-browser.el --- Browse devdocs.io documents using EWW -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 2021
|
||||
|
||||
;; Author: blahgeek <i@blahgeek.com>
|
||||
;; URL: https://github.com/blahgeek/emacs-devdocs-browser
|
||||
;; Package-Version: 20220917.1403
|
||||
;; Package-Commit: badbb9cb57522cc0e002a32fe385f7ad1e929665
|
||||
;; Version: 20210525
|
||||
;; Keywords: docs, help, tools
|
||||
;; Package-Requires: ((emacs "27.1"))
|
||||
|
||||
;; 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 3 of the License, 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; Browse devdocs.io documents inside Emacs using EWW.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'files)
|
||||
(require 'shr)
|
||||
(require 'eww)
|
||||
(require 'eldoc)
|
||||
(require 'imenu)
|
||||
|
||||
|
||||
(defgroup devdocs-browser nil
|
||||
"Browse devdocs.io."
|
||||
:group 'tools
|
||||
:group 'web)
|
||||
|
||||
(defcustom devdocs-browser-cache-directory
|
||||
(expand-file-name "devdocs-browser" user-emacs-directory)
|
||||
"Directory to store devdocs cache files."
|
||||
:type 'directory
|
||||
:group 'devdocs-browser)
|
||||
|
||||
(defcustom devdocs-browser-base-url "https://devdocs.io/"
|
||||
"Base URL to fetch json metadata files."
|
||||
:type 'string)
|
||||
|
||||
(defcustom devdocs-browser-doc-base-url "https://documents.devdocs.io/"
|
||||
"Base URL for doc contents."
|
||||
:type 'string)
|
||||
|
||||
(defcustom devdocs-browser-major-mode-docs-alist
|
||||
'((c++-mode . ("cpp"))
|
||||
(c-mode . ("c"))
|
||||
(go-mode . ("go"))
|
||||
(python-mode . ("Python"))
|
||||
(emacs-lisp-mode . ("elisp"))
|
||||
(cmake-mode . ("CMake")))
|
||||
"Alist of MAJOR-MODE and list of docset names.
|
||||
When calling `devdocs-browser-open', this variable will be used
|
||||
to pick a list of docsets based on the current MAJOR-MODE.
|
||||
Docset name may be SLUG (e.g. 'python~3.8') or NAME (e.g. 'Python'),
|
||||
if it's a NAME and multiple choices are possible,
|
||||
one of the installed docs with the NAME will be used.
|
||||
Also see `devdocs-browser-active-docs'."
|
||||
:type '(alist :key-type function
|
||||
:value-type (list string)))
|
||||
|
||||
(defvar-local devdocs-browser-active-docs
|
||||
nil
|
||||
"List of docset names used by `devdocs-browser-open' to pick docsets.
|
||||
If this var is set to non-nil,
|
||||
it have higher priority than `devdocs-browser-major-mode-docs-alist'.
|
||||
See `devdocs-browser-major-mode-docs-alist' for the meaning of NAME.")
|
||||
|
||||
(defcustom devdocs-browser-highlight-lang-mode-alist '()
|
||||
"Alist of language name and MAJOR-MODE, to highlight HTML pre blocks.
|
||||
If language is not found in this alist,
|
||||
`devdocs-browser-highlight-lang-mode-alist-default' will be used.
|
||||
See https://prismjs.com/ for list of language names."
|
||||
:type '(alist :key-type string
|
||||
:value-type function))
|
||||
|
||||
(defvar devdocs-browser-highlight-lang-mode-alist-default
|
||||
'(("html" . html-mode)
|
||||
("xml" . xml-mode)
|
||||
("css" . css-mode)
|
||||
("clike" . c-mode)
|
||||
("javascript" . js-mode)
|
||||
("js" . js-mode)
|
||||
("jsx" . js-mode)
|
||||
("bash" . sh-mode)
|
||||
("shell" . sh-mode)
|
||||
("c" . c-mode)
|
||||
("cpp" . c++-mode)
|
||||
("cmake" . cmake-mode)
|
||||
("go" . go-mode)
|
||||
("haskell" . haskell-mode)
|
||||
("hs" . haskell-mode)
|
||||
("java" . java-mode)
|
||||
("json" . js-mode)
|
||||
("elisp" . elisp-mode)
|
||||
("emacs" . elisp-mode)
|
||||
("lua" . lua-mode)
|
||||
("makefile" . makefile-mode)
|
||||
("markdown" . markdown-mode)
|
||||
("md" . markdown-mode)
|
||||
("nginx" . conf-mode)
|
||||
("objectivec" . objc-mode)
|
||||
("objc" . objc-mode)
|
||||
("perl" . perl-mode)
|
||||
("protobuf" . protobuf-mode)
|
||||
("python" . python-mode)
|
||||
("py" . python-mode)
|
||||
("ruby" . ruby-mode)
|
||||
("rb" . ruby-mode)
|
||||
("sql" . sql-mode)
|
||||
("typescript" . typescript-mode))
|
||||
"Default value for `devdocs-browser-highlight-lang-mode-alist'.")
|
||||
|
||||
|
||||
(defun devdocs-browser--eww-fontify-pre (dom)
|
||||
"Return fontified string for pre DOM."
|
||||
(with-temp-buffer
|
||||
(shr-generic dom)
|
||||
(when (> shr-indentation 0)
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(while (not (eobp))
|
||||
(shr-indent)
|
||||
(forward-line 1))))
|
||||
(let* ((language (dom-attr dom 'data-language))
|
||||
(mode (cdr (or (assoc language devdocs-browser-highlight-lang-mode-alist)
|
||||
(assoc language devdocs-browser-highlight-lang-mode-alist-default)))))
|
||||
(when (fboundp mode)
|
||||
(delay-mode-hooks (funcall mode))
|
||||
(font-lock-default-function mode)
|
||||
(font-lock-default-fontify-region (point-min) (point-max) nil)))
|
||||
(buffer-string)))
|
||||
|
||||
(defun devdocs-browser--eww-tag-pre (dom)
|
||||
"Rendering function for pre DOM."
|
||||
(let ((shr-folding-mode 'none)
|
||||
(shr-current-font 'default))
|
||||
(shr-ensure-newline)
|
||||
(insert (devdocs-browser--eww-fontify-pre dom))
|
||||
(shr-ensure-newline)))
|
||||
|
||||
(defun devdocs-browser--eww-tag-maybe-set-title (dom)
|
||||
"Maybe set DOM as title if it's not set yet."
|
||||
(when (zerop (length (plist-get eww-data :title)))
|
||||
(eww-tag-title dom)))
|
||||
|
||||
(defun devdocs-browser--eww-tag-h1 (dom)
|
||||
"Rendering function for h1 DOM. Maybe use it as title."
|
||||
(devdocs-browser--eww-tag-maybe-set-title dom)
|
||||
(shr-tag-h1 dom))
|
||||
|
||||
(defun devdocs-browser--eww-tag-h2 (dom)
|
||||
"Rendering function for h2 DOM. Maybe use it as title."
|
||||
(devdocs-browser--eww-tag-maybe-set-title dom)
|
||||
(shr-heading dom (if shr-use-fonts
|
||||
'(variable-pitch (:height 1.2 :weight bold))
|
||||
'bold)))
|
||||
|
||||
(defun devdocs-browser--eww-tag-h3 (dom)
|
||||
"Rendering function for h2 DOM. Maybe use it as title."
|
||||
(devdocs-browser--eww-tag-maybe-set-title dom)
|
||||
(shr-heading dom (if shr-use-fonts
|
||||
'(variable-pitch (:height 1.1 :weight bold))
|
||||
'bold)))
|
||||
|
||||
(defun devdocs-browser--eww-tag-h4 (dom)
|
||||
"Rendering function for h4 DOM."
|
||||
(shr-heading dom 'bold))
|
||||
|
||||
(defun devdocs-browser--eww-tag-h5 (dom)
|
||||
"Rendering function for h5 DOM."
|
||||
(shr-heading dom 'italic))
|
||||
|
||||
(defvar-local devdocs-browser--eww-data '()
|
||||
"Plist data for current eww page, contain :doc and :path.")
|
||||
|
||||
(defun devdocs-browser--eww-fix-url (url)
|
||||
"Fix links' URL in docs by appending suffix and mtime."
|
||||
;; shr-expand-url may be call in a temp buffer
|
||||
;; we need to temporary bind this buffer to access the buffer-local variable.
|
||||
(with-current-buffer (window-buffer)
|
||||
(let ((url-parsed (url-generic-parse-url url))
|
||||
(root-url-parsed (url-generic-parse-url (plist-get eww-data :url)))
|
||||
(mtime (plist-get (plist-get devdocs-browser--eww-data :doc) :mtime)))
|
||||
(when (and mtime
|
||||
(equal (url-type url-parsed) (url-type root-url-parsed))
|
||||
(equal (url-host url-parsed) (url-host root-url-parsed))
|
||||
(not (string-match-p "\\.html" url)))
|
||||
(setf (url-filename url-parsed)
|
||||
(if (equal (url-type url-parsed) "file")
|
||||
(concat (url-filename url-parsed) ".html")
|
||||
(format "%s.html?%s" (url-filename url-parsed) mtime)))
|
||||
(setq url (url-recreate-url url-parsed)))))
|
||||
url)
|
||||
|
||||
(defun devdocs-browser--eww-parse-url-path (url)
|
||||
"Return URL's doc :path ('hello/world#target')."
|
||||
;; see devdocs-browser--eww-open for url pattern
|
||||
(when-let* ((url-parsed (url-generic-parse-url url))
|
||||
(doc (plist-get devdocs-browser--eww-data :doc))
|
||||
(slug (plist-get doc :slug))
|
||||
(filename-suffix (if (equal (url-type url-parsed) "file")
|
||||
".html"
|
||||
(format ".html?%s" (plist-get doc :mtime))))
|
||||
(filename-prefix (if (equal (url-type url-parsed) "file")
|
||||
(devdocs-browser-offline-data-dir slug)
|
||||
(concat "/" slug "/")))
|
||||
(path (url-filename url-parsed)))
|
||||
(when (and (string-prefix-p filename-prefix path)
|
||||
(string-suffix-p filename-suffix path))
|
||||
(setq path (string-remove-prefix filename-prefix path))
|
||||
(setq path (string-remove-suffix filename-suffix path))
|
||||
(when (url-target url-parsed)
|
||||
(setq path (concat path "#" (url-target url-parsed))))
|
||||
path)))
|
||||
|
||||
(defun devdocs-browser--eww-page-path ()
|
||||
"Return current page's :path ('hello/world#target')."
|
||||
(devdocs-browser--eww-parse-url-path (plist-get eww-data :url)))
|
||||
|
||||
(defun devdocs-browser--eww-link-eldoc (&optional _)
|
||||
"Show URL link or description at current point."
|
||||
(when-let ((url (get-text-property (point) 'shr-url)))
|
||||
(if-let ((path (devdocs-browser--eww-parse-url-path url)))
|
||||
(let* ((doc (plist-get devdocs-browser--eww-data :doc))
|
||||
(index (plist-get doc :index))
|
||||
(entries (plist-get index :entries))
|
||||
(entry (seq-find
|
||||
(lambda (x) (equal (plist-get x :path) path))
|
||||
entries)))
|
||||
(concat
|
||||
(when entry
|
||||
(propertize (plist-get entry :name) 'face 'font-lock-keyword-face))
|
||||
(when entry
|
||||
(format " (%s): " (plist-get entry :type)))
|
||||
(propertize path 'face 'italic)))
|
||||
(format "External link: %s" (propertize url 'face 'italic)))))
|
||||
|
||||
(defun devdocs-browser--position-by-target (target)
|
||||
"Find buffer position for TARGET (url hash)."
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(when-let ((match (text-property-search-forward 'shr-target-id target #'member)))
|
||||
(prop-match-beginning match))))
|
||||
|
||||
(defun devdocs-browser--imenu-create-index ()
|
||||
"Create index alist for current buffer for imenu.
|
||||
Can be used as `imenu-create-index-function'."
|
||||
(when-let* ((doc (plist-get devdocs-browser--eww-data :doc))
|
||||
(entries (plist-get (plist-get doc :index) :entries))
|
||||
(page-path (devdocs-browser--eww-page-path))
|
||||
(page-url (url-generic-parse-url page-path)))
|
||||
(seq-filter
|
||||
#'identity
|
||||
(mapcar
|
||||
(lambda (entry)
|
||||
(when-let* ((name (plist-get entry :name))
|
||||
(path (plist-get entry :path))
|
||||
(url (url-generic-parse-url path))
|
||||
(target (url-target url))
|
||||
(_ (equal (url-filename url) (url-filename page-url))))
|
||||
(cons name (devdocs-browser--position-by-target target))))
|
||||
entries))))
|
||||
|
||||
(define-obsolete-function-alias 'devdocs-browser-eww-goto-target 'imenu "20220917")
|
||||
|
||||
(defun devdocs-browser-eww-open-in-default-browser ()
|
||||
"Open current page in devdocs.io in browser."
|
||||
(interactive)
|
||||
(when-let* ((doc (plist-get devdocs-browser--eww-data :doc))
|
||||
(slug (plist-get doc :slug))
|
||||
(path (devdocs-browser--eww-page-path))
|
||||
(url (concat devdocs-browser-base-url slug "/" path)))
|
||||
(browse-url-default-browser url)))
|
||||
|
||||
(defun devdocs-browser--eww-recenter-advice (res)
|
||||
"Recenter current cursor for devdocs buffer, used for advice :filter-return (return `RES')."
|
||||
(when devdocs-browser--eww-data
|
||||
(recenter))
|
||||
res)
|
||||
|
||||
(defun devdocs-browser--eww-browse-url-new-window-advice (args)
|
||||
"Advice around `eww-browse-url' with ARGS, set NEW-WINDOW if URL is external."
|
||||
(let ((url (car args))
|
||||
(new-window (cadr args)))
|
||||
(when (and devdocs-browser--eww-data
|
||||
(not (devdocs-browser--eww-parse-url-path url)))
|
||||
(setq new-window t))
|
||||
(list url new-window)))
|
||||
|
||||
(define-minor-mode devdocs-browser-eww-mode
|
||||
"Minor mode for browsing devdocs pages with eww."
|
||||
:lighter " Devdocs"
|
||||
:interactive nil
|
||||
:group 'devdocs-browser
|
||||
:keymap (let ((map (make-sparse-keymap)))
|
||||
(define-key map (kbd "C-c C-o") #'devdocs-browser-eww-open-in-default-browser)
|
||||
map)
|
||||
(setq-local shr-external-rendering-functions
|
||||
(append shr-external-rendering-functions
|
||||
'((pre . devdocs-browser--eww-tag-pre)
|
||||
(h1 . devdocs-browser--eww-tag-h1)
|
||||
(h2 . devdocs-browser--eww-tag-h2)
|
||||
(h3 . devdocs-browser--eww-tag-h3)
|
||||
(h4 . devdocs-browser--eww-tag-h4)
|
||||
(h5 . devdocs-browser--eww-tag-h5))))
|
||||
(setq-local imenu-create-index-function
|
||||
#'devdocs-browser--imenu-create-index)
|
||||
(advice-add 'shr-expand-url :filter-return #'devdocs-browser--eww-fix-url)
|
||||
(advice-add 'eww-display-html :filter-return #'devdocs-browser--eww-recenter-advice)
|
||||
(advice-add 'eww-browse-url :filter-args #'devdocs-browser--eww-browse-url-new-window-advice)
|
||||
(add-hook 'eldoc-documentation-functions #'devdocs-browser--eww-link-eldoc nil t)
|
||||
(eldoc-mode))
|
||||
|
||||
(defvar devdocs-browser--docs-dir "docs")
|
||||
(defvar devdocs-browser--index-json-filename "index.json")
|
||||
(defvar devdocs-browser--metadata-filename "metadata.el")
|
||||
(defvar devdocs-browser--offline-data-json-filename "content.json")
|
||||
(defvar devdocs-browser--offline-data-dir-name "content")
|
||||
|
||||
(defun devdocs-browser--completing-read (prompt collections &optional def)
|
||||
"Helper function for `completing-read'.
|
||||
PROMPT: same meaning, but this function will append ';' at the end;
|
||||
COLLECTION: alist of (name . props), where props is a plist with
|
||||
possibly the following keys: :value, :annotation, :group;
|
||||
if :group is not nil and name starts with '<group>: ', its removed.
|
||||
DEF: same meaning;"
|
||||
(setq collections (delq nil collections))
|
||||
(let ((annotation-function
|
||||
(lambda (s)
|
||||
(let ((annotation (plist-get
|
||||
(cdr (assoc s collections))
|
||||
:annotation)))
|
||||
(if annotation
|
||||
(concat " " annotation)
|
||||
nil))))
|
||||
(group-function
|
||||
(lambda (s transform)
|
||||
(let ((group (plist-get
|
||||
(cdr (assoc s collections))
|
||||
:group)))
|
||||
(cond
|
||||
(transform (if (and group (string-match (rx bos (literal group) ": ") s))
|
||||
(replace-match "" t t s)
|
||||
s))
|
||||
(t group))))))
|
||||
(setq prompt (concat prompt
|
||||
(when def
|
||||
(format " (default %s)" (funcall group-function def t)))
|
||||
": "))
|
||||
(let ((res (completing-read
|
||||
prompt
|
||||
(lambda (str pred action)
|
||||
(if (eq action 'metadata)
|
||||
`(metadata . ((annotation-function . ,annotation-function)
|
||||
(group-function . ,group-function)))
|
||||
(complete-with-action action collections str pred)))
|
||||
nil t ;; require-match
|
||||
nil nil def)))
|
||||
(or (plist-get (cdr (assoc res collections)) :value)
|
||||
res))))
|
||||
|
||||
(defun devdocs-browser--json-parse-buffer ()
|
||||
"Same as `json-parse-buffer', with custom settings."
|
||||
(json-parse-buffer :object-type 'plist :array-type 'array))
|
||||
|
||||
(defun devdocs-browser--read-json (file-path)
|
||||
"Read json file in FILE-PATH, if it's a relative path, find it in cache dir."
|
||||
(let ((filename (expand-file-name file-path devdocs-browser-cache-directory)))
|
||||
(when (file-exists-p filename)
|
||||
(with-temp-buffer
|
||||
(insert-file-contents filename)
|
||||
(devdocs-browser--json-parse-buffer)))))
|
||||
|
||||
(defun devdocs-browser--fetch-json (url-path file-path &optional base-url)
|
||||
"Fetch json from BASE-URL / URL-PATH, also save to FILE-PATH.
|
||||
BASE-URL defaults to `devdocs-browser-base-url'."
|
||||
(let ((cache-filename (expand-file-name file-path devdocs-browser-cache-directory)))
|
||||
(unless (file-exists-p (file-name-directory cache-filename))
|
||||
(make-directory (file-name-directory cache-filename) t))
|
||||
(with-temp-file cache-filename
|
||||
(erase-buffer)
|
||||
(url-insert-file-contents (concat (or base-url devdocs-browser-base-url) url-path))
|
||||
(devdocs-browser--json-parse-buffer))))
|
||||
|
||||
|
||||
(defvar devdocs-browser--docs-list-cache nil "Cached docs list.")
|
||||
|
||||
;;;###autoload
|
||||
(defun devdocs-browser-list-docs (&optional refresh-cache)
|
||||
"Get doc metadata lists, reload cache if REFRESH-CACHE."
|
||||
(setq devdocs-browser--docs-list-cache
|
||||
(or (and (not refresh-cache) devdocs-browser--docs-list-cache)
|
||||
(and (not refresh-cache) (devdocs-browser--read-json "docs.json"))
|
||||
(devdocs-browser--fetch-json "docs.json" "docs.json"))))
|
||||
|
||||
;;;###autoload
|
||||
(defun devdocs-browser-update-docs ()
|
||||
"Update doc metadata list.
|
||||
To upgrade docs content, see `devdocs-browser-upgrade-doc'."
|
||||
(interactive)
|
||||
(let ((count (length (devdocs-browser-list-docs t))))
|
||||
(message (concat "Doc metadata updated, found total %s docs. "
|
||||
"You may want to run `devdocs-browser-install-doc' "
|
||||
"or `devdocs-browser-upgrade-doc'.")
|
||||
count)))
|
||||
|
||||
(defun devdocs-browser-find-doc (slug-or-name)
|
||||
"Find doc from docs list by SLUG-OR-NAME."
|
||||
(let ((docs-list (devdocs-browser-list-docs)))
|
||||
(seq-find (lambda (doc)
|
||||
(or (equal (plist-get doc :slug) slug-or-name)
|
||||
(equal (plist-get doc :name) slug-or-name)))
|
||||
docs-list)))
|
||||
|
||||
(defvar devdocs-browser--docs-cache '() "Cached doc indexes plist.")
|
||||
|
||||
(defun devdocs-browser--install-doc-internal (doc)
|
||||
"(Re-)install doc identified by plist DOC. Return t if success."
|
||||
(let* ((slug (plist-get doc :slug))
|
||||
(mtime (plist-get doc :mtime))
|
||||
(docs-dir (expand-file-name devdocs-browser--docs-dir devdocs-browser-cache-directory))
|
||||
(doc-dir (expand-file-name slug docs-dir))
|
||||
success)
|
||||
(unless (file-exists-p docs-dir)
|
||||
(make-directory docs-dir t))
|
||||
(when (file-exists-p doc-dir)
|
||||
(delete-directory doc-dir t))
|
||||
|
||||
;; do not leave empty directory
|
||||
(unwind-protect
|
||||
(progn
|
||||
(devdocs-browser--fetch-json
|
||||
(format "docs/%s/index.json?%s" slug mtime)
|
||||
(expand-file-name devdocs-browser--index-json-filename doc-dir))
|
||||
(with-temp-file (expand-file-name devdocs-browser--metadata-filename doc-dir)
|
||||
(print doc (current-buffer)))
|
||||
(setq success t))
|
||||
(unless success
|
||||
(delete-directory doc-dir t)))
|
||||
|
||||
(if success
|
||||
(message "Installed devdocs doc %s version %s" slug mtime)
|
||||
(message "Failed to install devdocs doc %s" slug))
|
||||
;; remove cache
|
||||
(setq devdocs-browser--docs-cache
|
||||
(lax-plist-put devdocs-browser--docs-cache slug nil))
|
||||
success))
|
||||
|
||||
(defun devdocs-browser--doc-readable-name (doc)
|
||||
"Get human readable name for DOC."
|
||||
(let ((slug (plist-get doc :slug))
|
||||
(name (plist-get doc :name))
|
||||
(version (plist-get doc :version))
|
||||
(release (plist-get doc :release))
|
||||
res)
|
||||
(setq res (concat slug " (" name))
|
||||
(unless (zerop (length version))
|
||||
(setq res (concat res " " version)))
|
||||
(unless (zerop (length release))
|
||||
(setq res (concat res ", " release)))
|
||||
(setq res (concat res ")"))
|
||||
res))
|
||||
|
||||
;;;###autoload
|
||||
(defun devdocs-browser-install-doc (slug-or-name &optional force)
|
||||
"Install doc by SLUG-OR-NAME.
|
||||
When called interactively, user can choose from the list.
|
||||
When called interactively with prefix, or FORCE is t, reinstall existing doc."
|
||||
(interactive
|
||||
(let* ((force current-prefix-arg)
|
||||
(installed-docs
|
||||
(devdocs-browser-list-installed-slugs))
|
||||
(selected-slug
|
||||
(devdocs-browser--completing-read
|
||||
"Install doc"
|
||||
(mapcar (lambda (doc)
|
||||
(let ((slug (plist-get doc :slug)))
|
||||
(unless (and (not force)
|
||||
(member slug installed-docs))
|
||||
(cons (devdocs-browser--doc-readable-name doc)
|
||||
`(:value ,slug)))))
|
||||
(devdocs-browser-list-docs)))))
|
||||
(list selected-slug force)))
|
||||
(let ((doc (devdocs-browser-find-doc slug-or-name)))
|
||||
(unless (and (not force)
|
||||
(member (plist-get doc :slug) (devdocs-browser-list-installed-slugs)))
|
||||
(devdocs-browser--install-doc-internal doc))))
|
||||
|
||||
;;;###autoload
|
||||
(defun devdocs-browser-uninstall-doc (slug)
|
||||
"Uninstall doc by SLUG.
|
||||
When called interactively, user can choose from the list."
|
||||
(interactive (list (completing-read "Uninstall doc: "
|
||||
(devdocs-browser-list-installed-slugs)
|
||||
nil t)))
|
||||
(let* ((docs-dir (expand-file-name devdocs-browser--docs-dir devdocs-browser-cache-directory))
|
||||
(doc-dir (expand-file-name slug docs-dir)))
|
||||
(when (file-exists-p doc-dir)
|
||||
(delete-directory doc-dir t)))
|
||||
(setq devdocs-browser--docs-cache
|
||||
(lax-plist-put devdocs-browser--docs-cache slug nil)))
|
||||
|
||||
(defun devdocs-browser--upgrade-readable-name (old-doc new-doc)
|
||||
"Get human readable name for upgrade from OLD-DOC to NEW-DOC."
|
||||
(let ((slug (plist-get old-doc :slug))
|
||||
(name (plist-get old-doc :name))
|
||||
(old-version (plist-get old-doc :version))
|
||||
(old-release (plist-get old-doc :release))
|
||||
(old-mtime (plist-get old-doc :mtime))
|
||||
(new-version (plist-get new-doc :version))
|
||||
(new-release (plist-get new-doc :release))
|
||||
(new-mtime (plist-get new-doc :mtime))
|
||||
res)
|
||||
(setq res (format "%s (%s" slug name))
|
||||
(unless (equal old-version new-version)
|
||||
(setq res (concat res (format " %s->%s" old-version new-version))))
|
||||
(unless (equal old-release new-release)
|
||||
(setq res (concat res (format ", %s->%s" old-release new-release))))
|
||||
(setq res (concat res (format ", %s->%s)" old-mtime new-mtime)))
|
||||
res))
|
||||
|
||||
(defun devdocs-browser--upgrade-readable-name-or-nil (slug)
|
||||
"Get human readable name for upgrading SLUG if it needs upgrade."
|
||||
(let ((old-doc (devdocs-browser--load-doc slug))
|
||||
(new-doc (devdocs-browser-find-doc slug)))
|
||||
(when (and new-doc
|
||||
(> (plist-get new-doc :mtime) (plist-get old-doc :mtime)))
|
||||
(devdocs-browser--upgrade-readable-name old-doc new-doc))))
|
||||
|
||||
;;;###autoload
|
||||
(defun devdocs-browser-upgrade-doc (slug)
|
||||
"Upgrade doc by SLUG, return t if upgrade success.
|
||||
Also download new version of offline data if
|
||||
there's offline data for current version.
|
||||
When called interactively, user can choose from list.
|
||||
You may need to call `devdocs-browser-update-docs' first."
|
||||
(interactive
|
||||
(let (rows)
|
||||
(dolist (slug (devdocs-browser-list-installed-slugs))
|
||||
(let ((desc (devdocs-browser--upgrade-readable-name-or-nil slug)))
|
||||
(when desc
|
||||
(push (cons desc slug) rows))))
|
||||
(if (null rows)
|
||||
(progn
|
||||
(message "All docs up to date")
|
||||
(list nil))
|
||||
(list
|
||||
(cdr (assoc (completing-read "Upgrade doc: " rows nil t) rows))))))
|
||||
(when (and slug (devdocs-browser--upgrade-readable-name-or-nil slug))
|
||||
(let* ((has-offline-data (devdocs-browser-offline-data-dir slug))
|
||||
(doc (devdocs-browser-find-doc slug))
|
||||
(install-success (devdocs-browser--install-doc-internal doc)))
|
||||
(when (and has-offline-data install-success)
|
||||
(devdocs-browser--download-offline-data-internal doc))
|
||||
install-success)))
|
||||
|
||||
;;;###autoload
|
||||
(defun devdocs-browser-upgrade-all-docs ()
|
||||
"Upgrade all docs."
|
||||
(interactive)
|
||||
(let ((count 0))
|
||||
(dolist (slug (devdocs-browser-list-installed-slugs))
|
||||
(message "Processing %s..." slug)
|
||||
(when (devdocs-browser-upgrade-doc slug)
|
||||
(setq count (1+ count))))
|
||||
(message "Upgraded %s docs" count)))
|
||||
|
||||
(defun devdocs-browser-list-installed-slugs ()
|
||||
"Get a list of installed docs' slug name."
|
||||
(let ((dir (expand-file-name devdocs-browser--docs-dir devdocs-browser-cache-directory)))
|
||||
(when (file-exists-p dir)
|
||||
(directory-files dir nil
|
||||
;; ignore ".", ".." and hidden files
|
||||
"^[^.].*"))))
|
||||
|
||||
(defun devdocs-browser-find-installed-doc (slug-or-name)
|
||||
"Find installed doc by SLUG-OR-NAME."
|
||||
(let ((docs-list (mapcar #'devdocs-browser-installed-doc-info
|
||||
(devdocs-browser-list-installed-slugs))))
|
||||
(seq-find (lambda (doc)
|
||||
(or (equal (plist-get doc :slug) slug-or-name)
|
||||
(equal (plist-get doc :name) slug-or-name)))
|
||||
docs-list)))
|
||||
|
||||
(defun devdocs-browser-installed-doc-info (slug)
|
||||
"Get plist info of installed doc identified by SLUG."
|
||||
(cddr (devdocs-browser--load-doc slug)))
|
||||
|
||||
(defun devdocs-browser--load-doc (slug &optional refresh-cache)
|
||||
"Load doc identified by SLUG, reload cache if REFRESH-CACHE is not nil.
|
||||
Result is a plist metadata, with an extra :index field at the beginning."
|
||||
(or (and (not refresh-cache) (lax-plist-get devdocs-browser--docs-cache slug))
|
||||
(let* ((docs-dir (expand-file-name devdocs-browser--docs-dir
|
||||
devdocs-browser-cache-directory))
|
||||
(doc-dir (expand-file-name slug docs-dir))
|
||||
(metadata-filename (expand-file-name devdocs-browser--metadata-filename doc-dir))
|
||||
(metadata nil)
|
||||
(index-filename (expand-file-name devdocs-browser--index-json-filename doc-dir))
|
||||
(index (devdocs-browser--read-json index-filename))
|
||||
res)
|
||||
(when (file-exists-p metadata-filename)
|
||||
(with-temp-buffer
|
||||
(insert-file-contents metadata-filename)
|
||||
(setq metadata (read (current-buffer))))
|
||||
(setq res (append `(:index ,index) metadata))
|
||||
(setq devdocs-browser--docs-cache
|
||||
(lax-plist-put devdocs-browser--docs-cache slug res)))
|
||||
res)))
|
||||
|
||||
(defun devdocs-browser--download-offline-data-internal (doc)
|
||||
"(re-)Download and extract offline data for DOC."
|
||||
(let* ((slug (plist-get doc :slug))
|
||||
(mtime (plist-get doc :mtime))
|
||||
(docs-dir (expand-file-name devdocs-browser--docs-dir devdocs-browser-cache-directory))
|
||||
(doc-dir (expand-file-name slug docs-dir))
|
||||
(data-dir (expand-file-name devdocs-browser--offline-data-dir-name doc-dir))
|
||||
success)
|
||||
(unless (file-exists-p doc-dir)
|
||||
(make-directory doc-dir t))
|
||||
(when (file-exists-p data-dir)
|
||||
(delete-directory data-dir t))
|
||||
|
||||
;; do not leave half-complete data directory
|
||||
(unwind-protect
|
||||
(let ((data (devdocs-browser--fetch-json
|
||||
(format "%s/db.json?%s" slug mtime)
|
||||
(expand-file-name devdocs-browser--offline-data-json-filename doc-dir)
|
||||
devdocs-browser-doc-base-url)))
|
||||
;; write data to files
|
||||
(dolist (kv (seq-partition data 2))
|
||||
(when-let* ((name (substring (symbol-name (car kv)) 1))
|
||||
(value (cadr kv))
|
||||
;; prepent "./" to fix paths starting with literal "~" (e.g. deno)
|
||||
(path (expand-file-name (concat "./" name ".html") data-dir)))
|
||||
(unless (file-exists-p (file-name-directory path))
|
||||
(make-directory (file-name-directory path) t))
|
||||
(write-region value nil path)))
|
||||
(setq success t))
|
||||
(unless success
|
||||
(delete-directory data-dir t)))
|
||||
|
||||
(if success
|
||||
(message "Installed devdocs offline data %s version %s" slug mtime)
|
||||
(message "Failed to install devdocs offline data %s" slug))
|
||||
|
||||
success))
|
||||
|
||||
(defun devdocs-browser-offline-data-dir (slug)
|
||||
"Return doc SLUG's offline data dir if present, return nil otherwise."
|
||||
(let* ((docs-dir (expand-file-name devdocs-browser--docs-dir devdocs-browser-cache-directory))
|
||||
(doc-dir (expand-file-name slug docs-dir))
|
||||
(data-dir (expand-file-name devdocs-browser--offline-data-dir-name doc-dir)))
|
||||
(when (file-exists-p data-dir)
|
||||
(file-name-as-directory data-dir))))
|
||||
|
||||
(defun devdocs-browser-download-offline-data (slug)
|
||||
"Download offline data for doc SLUG.
|
||||
Offline data contains full content pages,
|
||||
which allows you to view docs without Internet connection.
|
||||
It may take some time to download offline data.
|
||||
When called interactively, user can choose from the list."
|
||||
(interactive (list (completing-read
|
||||
"Install offline data: "
|
||||
(seq-filter
|
||||
(lambda (slug) (null (devdocs-browser-offline-data-dir slug)))
|
||||
(devdocs-browser-list-installed-slugs))
|
||||
nil t)))
|
||||
(when-let* ((doc (devdocs-browser--load-doc slug)))
|
||||
(devdocs-browser--download-offline-data-internal doc)))
|
||||
|
||||
(defun devdocs-browser-remove-offline-data (slug)
|
||||
"Remove offline data for doc SLUG.
|
||||
When called interactively, user can choose from the list."
|
||||
(interactive (list (completing-read
|
||||
"Remove offline data: "
|
||||
(seq-filter
|
||||
#'devdocs-browser-offline-data-dir
|
||||
(devdocs-browser-list-installed-slugs))
|
||||
nil t)))
|
||||
(when-let* ((data-dir (devdocs-browser-offline-data-dir slug)))
|
||||
(delete-directory data-dir t)))
|
||||
|
||||
(defun devdocs-browser--eww-open (doc path)
|
||||
"Open PATH for document DOC using eww."
|
||||
(let* ((slug (plist-get doc :slug))
|
||||
(mtime (plist-get doc :mtime))
|
||||
base-url url)
|
||||
;; cannot use format directly because `path' may contains #query
|
||||
;; path: hello/world#query
|
||||
;; url for offline: file:///home/path/to/devdocs/python~3.8/hello/world.html#query
|
||||
;; url for online: https://documents.devdocs.io/python~3.8/hello/world.html?161818817#query
|
||||
(let ((offline-data-dir (devdocs-browser-offline-data-dir slug)))
|
||||
(if offline-data-dir
|
||||
(progn
|
||||
(setq base-url (concat "file://" offline-data-dir))
|
||||
(setq url (url-generic-parse-url (concat "file://" offline-data-dir path)))
|
||||
(setf (url-filename url) (concat (url-filename url) ".html")))
|
||||
(setq base-url (concat devdocs-browser-doc-base-url slug "/"))
|
||||
(setq url (url-generic-parse-url
|
||||
(concat devdocs-browser-doc-base-url slug "/" path)))
|
||||
(setf (url-filename url)
|
||||
(format "%s.html?%s" (url-filename url) mtime))))
|
||||
|
||||
(pop-to-buffer (format "*devdocs-%s*" slug))
|
||||
(if devdocs-browser-eww-mode
|
||||
(eww-save-history)
|
||||
(eww-mode)
|
||||
(devdocs-browser-eww-mode))
|
||||
(setq-local devdocs-browser--eww-data
|
||||
(list :doc doc
|
||||
:base-url base-url))
|
||||
|
||||
(eww (url-recreate-url url))
|
||||
(recenter)))
|
||||
|
||||
(defun devdocs-browser--default-active-slugs (&optional no-fallback-all)
|
||||
"Default active doc slugs for current buffer, fallback to all slugs if not NO-FALLBACK-ALL."
|
||||
(if devdocs-browser--eww-data
|
||||
(list (plist-get (plist-get devdocs-browser--eww-data :doc) :slug))
|
||||
(let ((names (or devdocs-browser-active-docs
|
||||
(alist-get major-mode devdocs-browser-major-mode-docs-alist)))
|
||||
slugs)
|
||||
(dolist (name names)
|
||||
(when-let* ((doc (devdocs-browser-find-installed-doc name))
|
||||
(slug (plist-get doc :slug)))
|
||||
(setq slugs (push slug slugs))))
|
||||
(or slugs
|
||||
(and (not no-fallback-all) (devdocs-browser-list-installed-slugs))))))
|
||||
|
||||
;;;###autoload
|
||||
(defun devdocs-browser-open-in (slug-or-name-list)
|
||||
"Open entry in specified docs SLUG-OR-NAME-LIST.
|
||||
When called interactively, user can choose from the list."
|
||||
(interactive
|
||||
(let ((def (devdocs-browser--default-active-slugs t)))
|
||||
(list (completing-read-multiple
|
||||
(concat "Select doc"
|
||||
(when def (format " (default %s)" def))
|
||||
": ")
|
||||
(devdocs-browser-list-installed-slugs)
|
||||
nil t nil nil def))))
|
||||
|
||||
(let ((current-word-regex
|
||||
(when-let ((word (thing-at-point 'word t)))
|
||||
(concat "\\<" (regexp-quote word) "\\>")))
|
||||
slugs rows def)
|
||||
(dolist (slug-or-name slug-or-name-list)
|
||||
(when-let* ((doc-simple (devdocs-browser-find-installed-doc slug-or-name))
|
||||
(slug (plist-get doc-simple :slug))
|
||||
(doc (devdocs-browser--load-doc slug))
|
||||
(index (plist-get doc :index))
|
||||
(entries (plist-get index :entries)))
|
||||
(setq slugs (push slug slugs))
|
||||
(let ((new-rows
|
||||
(mapcar
|
||||
(lambda (entry)
|
||||
(let* ((name (plist-get entry :name))
|
||||
(path (plist-get entry :path))
|
||||
(type (plist-get entry :type))
|
||||
(title (concat slug ": " name)))
|
||||
(when (and (null def) current-word-regex)
|
||||
(when (string-match-p current-word-regex name)
|
||||
(setq def title)))
|
||||
(cons title `(:value (,doc ,path)
|
||||
:group ,slug
|
||||
:annotation ,type))))
|
||||
entries)))
|
||||
(setq rows (append new-rows rows))
|
||||
(push (cons (format "%s: INDEX PAGE" slug)
|
||||
`(:value (,doc "index")
|
||||
:group ,slug))
|
||||
rows))))
|
||||
(let* ((selected-value
|
||||
(devdocs-browser--completing-read
|
||||
(format "Devdocs browser [%s]" (mapconcat #'identity slugs ","))
|
||||
rows def)))
|
||||
(when selected-value
|
||||
(apply #'devdocs-browser--eww-open selected-value)))))
|
||||
|
||||
;;;###autoload
|
||||
(defun devdocs-browser-open ()
|
||||
"Open entry in active docs.
|
||||
Active docs are specified by `devdocs-browser-active-docs',
|
||||
or `devdocs-browser-major-mode-docs-alist',
|
||||
or the current doc type if called in a devdocs eww buffer.
|
||||
When all of them are nil, all installed docs are used."
|
||||
(interactive)
|
||||
(devdocs-browser-open-in (devdocs-browser--default-active-slugs)))
|
||||
|
||||
|
||||
(provide 'devdocs-browser)
|
||||
;;; devdocs-browser.el ends here
|
|
@ -69,7 +69,7 @@
|
|||
(add-node-modules-path . [(20220315 340) ((s (1 12 0))) "Add node_modules to your exec-path" single ((:commit . "63f047fd84b825876152743f66de7ee6f9ed203b") (:authors ("Neri Marschik" . "marschik_neri@cyberagent.co.jp")) (:maintainer "Neri Marschik" . "marschik_neri@cyberagent.co.jp") (:keywords "javascript" "node" "node_modules" "eslint") (:url . "https://github.com/codesuki/add-node-modules-path"))])
|
||||
(addressbook-bookmark . [(20190612 1638) ((emacs (24))) "An address book based on Standard Emacs bookmarks." single ((:commit . "d8e502fc2f3d3ab1508ce9e50ebf8a9addc6e5b3") (:authors ("Thierry Volpiatto" . "thierry.volpiatto@gmail.com")) (:maintainer "Thierry Volpiatto" . "thierry.volpiatto@gmail.com") (:url . "https://github.com/thierryvolpiatto/addressbook-bookmark"))])
|
||||
(ado-mode . [(20220415 1647) ((emacs (25 1))) "Major mode for editing Stata-related files" tar ((:commit . "07ab2979692d70ca21ac64313903d5347ab748a9") (:authors ("Bill Rising" . "brising@alum.mit.edu")) (:maintainer "Bill Rising" . "brising@alum.mit.edu") (:keywords "tools" "languages" "files" "convenience" "stata" "mata" "ado") (:url . "https://github.com/louabill/ado-mode"))])
|
||||
(adoc-mode . [(20220828 733) ((emacs (26)) (markup-faces (1 0 0))) "a major-mode for editing AsciiDoc files in Emacs" single ((:commit . "800c316c90d335a1678f152fcf987f505a492ffe") (:authors ("Florian Kaufmann" . "sensorflo@gmail.com")) (:maintainer "Bozhidar Batsov" . "bozhidar@batsov.dev") (:keywords "asciidoc") (:url . "https://github.com/bbatsov/adoc-mode"))])
|
||||
(adoc-mode . [(20220919 659) ((emacs (26)) (markup-faces (1 0 0))) "a major-mode for editing AsciiDoc files in Emacs" single ((:commit . "6dc82593f05377a78083ee3f050a159f25a600b1") (:authors ("Florian Kaufmann" . "sensorflo@gmail.com")) (:maintainer "Bozhidar Batsov" . "bozhidar@batsov.dev") (:keywords "asciidoc") (:url . "https://github.com/bbatsov/adoc-mode"))])
|
||||
(aes . [(20211204 2348) ((emacs (26 1))) "Implementation of AES" single ((:commit . "c9cd12d6c1dbc18603eb4703276132cea59d5c78") (:authors ("Markus Sauermann" . "emacs-aes@sauermann-consulting.de")) (:maintainer "Markus Sauermann" . "emacs-aes@sauermann-consulting.de") (:keywords "data" "tools") (:url . "https://github.com/Sauermann/emacs-aes"))])
|
||||
(affe . [(20220603 548) ((emacs (27 1)) (consult (0 16))) "Asynchronous Fuzzy Finder for Emacs" tar ((:commit . "e8cb221892ae4d82fc52fffb72b45b5b89ada334") (:authors ("Daniel Mendler")) (:maintainer "Daniel Mendler") (:url . "https://github.com/minad/affe"))])
|
||||
(afternoon-theme . [(20140104 1859) ((emacs (24 1))) "Dark color theme with a deep blue background" single ((:commit . "89b1d778a1f8b385775c122f2bd1c62f0fbf931a") (:authors ("Ozan Sener" . "ozan@ozansener.com")) (:maintainer "Ozan Sener" . "ozan@ozansener.com") (:keywords "themes") (:url . "http://github.com/osener/emacs-afternoon-theme"))])
|
||||
|
@ -114,7 +114,7 @@
|
|||
(amread-mode . [(20220519 45) ((emacs (24 3)) (cl-lib (0 6 1))) "A minor mode helper user speed-reading" single ((:commit . "21f3cf796c08625cf70d534a990f4ae2273a5d4f") (:keywords "wp") (:url . "https://repo.or.cz/amread-mode.git"))])
|
||||
(amsreftex . [(20220115 1838) ((emacs (25 1))) "Add amsrefs bibliography support for reftex" single ((:commit . "facf47b82572e3f62bd8d9b8d4f4d5258f6c8a38") (:authors ("Fran Burstall" . "fran.burstall@gmail.com")) (:maintainer "Fran Burstall" . "fran.burstall@gmail.com") (:keywords "tex") (:url . "https://github.com/franburstall/amsreftex"))])
|
||||
(amx . [(20210305 118) ((emacs (24 4)) (s (0))) "Alternative M-x with extra features." single ((:commit . "37f9c7ae55eb0331b27200fb745206fc58ceffc0") (:authors ("Ryan C. Thompson" . "rct@thompsonclan.org") ("Cornelius Mika" . "cornelius.mika@gmail.com")) (:maintainer "Ryan C. Thompson" . "rct@thompsonclan.org") (:keywords "convenience" "usability" "completion") (:url . "http://github.com/DarwinAwardWinner/amx/"))])
|
||||
(anaconda-mode . [(20220717 1956) ((emacs (25 1)) (pythonic (0 1 0)) (dash (2 6 0)) (s (1 9)) (f (0 16 2))) "Code navigation, documentation lookup and completion for Python" tar ((:commit . "160e4e7185881233d96da6722332bd6d038187a9") (:authors ("Artem Malyshev" . "proofit404@gmail.com")) (:maintainer "Artem Malyshev" . "proofit404@gmail.com") (:url . "https://github.com/proofit404/anaconda-mode"))])
|
||||
(anaconda-mode . [(20220922 741) ((emacs (25 1)) (pythonic (0 1 0)) (dash (2 6 0)) (s (1 9)) (f (0 16 2))) "Code navigation, documentation lookup and completion for Python" tar ((:commit . "ca8edbaa7662d97e4a4416ec9a8d743863303911") (:authors ("Artem Malyshev" . "proofit404@gmail.com")) (:maintainer "Artem Malyshev" . "proofit404@gmail.com") (:url . "https://github.com/proofit404/anaconda-mode"))])
|
||||
(anakondo . [(20210221 1727) ((emacs (26 3))) "Adds clj-kondo based Clojure[Script] editing facilities" single ((:commit . "16b0ba14d94a5d7e55655efc9e1d6d069a9306f2") (:authors ("Didier A." . "didibus@users.noreply.github.com")) (:maintainer "Didier A." . "didibus@users.noreply.github.com") (:keywords "clojure" "clojurescript" "cljc" "clj-kondo" "completion" "languages" "tools") (:url . "https://github.com/didibus/anakondo"))])
|
||||
(anaphora . [(20180618 2200) nil "anaphoric macros providing implicit temp variables" single ((:commit . "3b2da3f759b244975852e79721c4a2dbad3905cf") (:authors ("Roland Walker" . "walker@pobox.com")) (:maintainer "Roland Walker" . "walker@pobox.com") (:keywords "extensions") (:url . "http://github.com/rolandwalker/anaphora"))])
|
||||
(ancient-one-dark-theme . [(20211030 1358) ((emacs (24 1))) "A color theme based off uetchy's Ancient One Dark Theme" single ((:commit . "a0eaa8bce0ffc25d1469af48a74e80f820bab0ab") (:authors ("Daniils Petrovs")) (:maintainer "Daniils Petrovs") (:url . "https://github.com/DaniruKun/ancient-one-dark-emacs-theme"))])
|
||||
|
@ -128,7 +128,7 @@
|
|||
(anki-mode . [(20201223 719) ((emacs (24 4)) (dash (2 12 0)) (markdown-mode (2 2)) (s (1 11 0)) (request (0 3 0))) "A major mode for creating anki cards" single ((:commit . "7cde5a68c9d0ef3811b0bd480274ea79909d2ddc") (:authors ("David Shepherd" . "davidshepherd7@gmail.com")) (:maintainer "David Shepherd" . "davidshepherd7@gmail.com") (:keywords "tools") (:url . "https://github.com/davidshepherd7/anki-mode"))])
|
||||
(anki-vocabulary . [(20200103 325) ((emacs (24 4)) (s (1 0)) (youdao-dictionary (0 4)) (anki-connect (1 0)) (s (1 10))) "Help you to create vocabulary cards in Anki" single ((:commit . "863fe0219577f996ab126f1b7902db3c2cc59b2b") (:authors ("DarkSun" . "lujun9972@gmail.com")) (:maintainer "DarkSun" . "lujun9972@gmail.com") (:keywords "lisp" "anki" "translator" "chinese") (:url . "https://github.com/lujun9972/anki-vocabulary.el"))])
|
||||
(annalist . [(20190929 207) ((emacs (24 4)) (cl-lib (0 5))) "Record and display information such as keybindings" tar ((:commit . "08df07e4530953a2c0b1aa553adcab37b7b614b0") (:authors ("Fox Kiester" . "noct@posteo.net")) (:maintainer "Fox Kiester" . "noct@posteo.net") (:keywords "convenience" "tools" "keybindings" "org") (:url . "https://github.com/noctuid/annalist.el"))])
|
||||
(annotate . [(20220809 846) nil "annotate files without changing them" single ((:commit . "0f4ffd5c1c9f92fea6961699287f3dd124b88aad") (:authors ("Bastian Bechtold")) (:maintainer "Bastian Bechtold <bastibe.dev@mailbox.org>, cage" . "cage-dev@twistfold.it") (:url . "https://github.com/bastibe/annotate.el"))])
|
||||
(annotate . [(20220916 1547) nil "annotate files without changing them" single ((:commit . "f166cca70bc5d54da6027a590b8407bc08deece6") (:authors ("Bastian Bechtold")) (:maintainer "Bastian Bechtold <bastibe.dev@mailbox.org>, cage" . "cage-dev@twistfold.it") (:url . "https://github.com/bastibe/annotate.el"))])
|
||||
(annotate-depth . [(20160520 2040) nil "Annotate buffer if indentation depth is beyond threshold." single ((:commit . "fcb24fa36287250e40d195590c4ca4a8a696277b") (:authors ("Morten Slot Kristensen <msk AT nullpointer DOT dk>")) (:maintainer "Morten Slot Kristensen <msk AT nullpointer DOT dk>") (:keywords "convenience") (:url . "https://github.com/netromdk/annotate-depth"))])
|
||||
(annotation . [(20200914 644) nil "Functions for annotating text with faces and help bubbles" single ((:commit . "aa5e3a127bf17a8c80d947f3c286758a36dadc36") (:url . "https://github.com/agda/agda"))])
|
||||
(annoying-arrows-mode . [(20161024 646) ((cl-lib (0 5))) "Ring the bell if using arrows too much" single ((:commit . "3c42e9807d7696da2da2a21b63beebf9cdb3f5dc") (:authors ("Magnar Sveen" . "magnars@gmail.com")) (:maintainer "Magnar Sveen" . "magnars@gmail.com"))])
|
||||
|
@ -150,7 +150,7 @@
|
|||
(apheleia . [(20220915 208) ((emacs (26))) "Reformat buffer stably" single ((:commit . "7aa46ba84f06251f280d226f98cb06ef83a0a697") (:authors ("Radian LLC" . "contact+apheleia@radian.codes")) (:maintainer "Radian LLC" . "contact+apheleia@radian.codes") (:keywords "tools") (:url . "https://github.com/raxod502/apheleia"))])
|
||||
(apib-mode . [(20200101 1017) ((markdown-mode (2 1))) "Major mode for API Blueprint files" single ((:commit . "c6dd05201f6eb9295736d8668a79a7510d11159e") (:authors ("Vilibald Wanča" . "vilibald@wvi.cz")) (:maintainer "Vilibald Wanča" . "vilibald@wvi.cz") (:keywords "tools" "api-blueprint") (:url . "http://github.com/w-vi/apib-mode"))])
|
||||
(apiwrap . [(20180602 2231) ((emacs (25))) "api-wrapping macros" single ((:commit . "e4c9c57d6620a788ec8a715ff1bb50542edea3a6") (:authors ("Sean Allred" . "code@seanallred.com")) (:maintainer "Sean Allred" . "code@seanallred.com") (:keywords "tools" "maint" "convenience") (:url . "https://github.com/vermiculus/apiwrap.el"))])
|
||||
(apparmor-mode . [(20220411 648) ((emacs (24 4))) "Major mode for editing AppArmor policy files" single ((:commit . "abc2a6adf563b89daee9f8fa07a71d78957defdb") (:authors ("Alex Murray" . "murray.alex@gmail.com")) (:maintainer "Alex Murray" . "murray.alex@gmail.com") (:url . "https://github.com/alexmurray/apparmor-mode"))])
|
||||
(apparmor-mode . [(20220920 1225) ((emacs (26 1))) "Major mode for editing AppArmor policy files" single ((:commit . "fdd520249a882eaf7b52dfaba49887149697741b") (:authors ("Alex Murray" . "murray.alex@gmail.com")) (:maintainer "Alex Murray" . "murray.alex@gmail.com") (:url . "https://github.com/alexmurray/apparmor-mode"))])
|
||||
(apples-mode . [(20110121 418) nil "Major mode for editing and executing AppleScript code" tar ((:commit . "83a9ab0d6ba82496e2f7df386909b1a55701fccb") (:authors ("tequilasunset" . "tequilasunset.mac@gmail.com")) (:maintainer "tequilasunset" . "tequilasunset.mac@gmail.com") (:keywords "applescript" "languages"))])
|
||||
(applescript-mode . [(20210802 1715) ((emacs (24 3))) "major mode for editing AppleScript source" single ((:commit . "00c141bbff46c89a96598b605dee05dd1d89f624") (:authors ("sakito" . "sakito@users.sourceforge.jp")) (:maintainer "sakito" . "sakito@users.sourceforge.jp") (:keywords "languages" "tools") (:url . "https://github.com/emacsorphanage/applescript-mode"))])
|
||||
(aproject . [(20220410 541) nil "Basic project framework for Emacs" tar ((:commit . "13e176ee69851403bec6471c5cceed17b7912b6f") (:authors ("Vietor Liu" . "vietor.liu@gmail.com")) (:maintainer "Vietor Liu" . "vietor.liu@gmail.com") (:keywords "environment" "project") (:url . "https://github.com/vietor/aproject"))])
|
||||
|
@ -172,12 +172,12 @@
|
|||
(arxiv-mode . [(20220128 920) ((emacs (27 1)) (hydra (0))) "Read and search for articles on arXiv.org" tar ((:commit . "f550583d2da8bd9600bd26bb4028fe22a9744da2") (:authors ("Alex Chen (fizban007)" . "fizban007@gmail.com") ("Simon Lin (Simon-Lin)" . "n.sibetz@gmail.com")) (:maintainer "Alex Chen (fizban007)" . "fizban007@gmail.com") (:keywords "bib" "convenience" "hypermedia") (:url . "https://github.com/fizban007/arxiv-mode"))])
|
||||
(ascii-table . [(20201019 700) ((emacs (24 3)) (cl-lib (0 5))) "Interactive ASCII table" single ((:commit . "4f68ad0b36c365c0652756691ab1703d0d46b4b4") (:authors ("Lassi Kortela" . "lassi@lassi.io")) (:maintainer "Lassi Kortela" . "lassi@lassi.io") (:keywords "help" "tools") (:url . "https://github.com/lassik/emacs-ascii-table"))])
|
||||
(asilea . [(20150105 1525) ((emacs (24)) (cl-lib (0 5))) "Find best compiler options using simulated annealing" single ((:commit . "2aab1cc63b64ef08d12e84fd7ba5c94065f6039f") (:authors ("Fanael Linithien" . "fanael4@gmail.com")) (:maintainer "Fanael Linithien" . "fanael4@gmail.com") (:url . "https://github.com/Fanael/asilea"))])
|
||||
(asm-blox . [(20220808 128) ((emacs (26 1)) (yaml (0 5 1))) "Programming game involving WAT" tar ((:commit . "d511ec0e24a081f1aa691c19cd38c8e0a90cb87e") (:authors ("Zachary Romero")) (:maintainer "Zachary Romero") (:keywords "games") (:url . "https://github.com/zkry/asm-blox"))])
|
||||
(asm-blox . [(20220921 28) ((emacs (26 1)) (yaml (0 5 1))) "Programming game involving WAT" tar ((:commit . "b9008a3b2df97501d9a5aedcc5666bd292fbc5d6") (:authors ("Zachary Romero")) (:maintainer "Zachary Romero") (:keywords "games") (:url . "https://github.com/zkry/asm-blox"))])
|
||||
(asn1-mode . [(20170729 226) ((emacs (24 3)) (s (1 10 0))) "ASN.1/GDMO mode for GNU Emacs" single ((:commit . "d5d4a8259daf708411699bcea85d322f18beb972") (:authors ("Taichi Kawabata <kawabata.taichi_at_gmail.com>")) (:maintainer "Taichi Kawabata <kawabata.taichi_at_gmail.com>") (:keywords "languages" "processes" "tools") (:url . "https://github.com/kawabata/asn1-mode/"))])
|
||||
(assess . [(20220719 1904) ((emacs (24 4)) (m-buffer (0 15))) "Test support functions" tar ((:commit . "44083d94feb45d3636f7ee6c55e0ef6bbb32b938") (:authors ("Phillip Lord" . "phillip.lord@russet.org.uk")) (:maintainer "Phillip Lord" . "phillip.lord@russet.org.uk"))])
|
||||
(astyle . [(20200328 616) ((emacs (24 4)) (reformatter (0 3))) "Astyle formatter functions" single ((:commit . "04ff2941f08c4b731fe6a18ee1697436d1ca1cc0") (:authors ("Petter Storvik")) (:maintainer "Petter Storvik") (:keywords "astyle" "c" "c++" "cpp" "reformatter") (:url . "https://github.com/storvik/emacs-astyle"))])
|
||||
(asx . [(20191024 1100) ((emacs (26 1))) "Ask StackExchange/StackOverflow" single ((:commit . "5ca12cc51bb02b5926adf9a7976ba9ca08a1ea21") (:authors ("Alex Ragone" . "ragonedk@gmail.com")) (:maintainer "Alex Ragone" . "ragonedk@gmail.com") (:keywords "convenience") (:url . "https://github.com/ragone/asx"))])
|
||||
(async . [(20220820 530) ((emacs (24 4))) "Asynchronous processing in Emacs" tar ((:commit . "73f825fd739875e4b8e10d47d497df402bbb61e7") (:authors ("John Wiegley" . "jwiegley@gmail.com")) (:maintainer "Thierry Volpiatto" . "thievol@posteo.net") (:keywords "async") (:url . "https://github.com/jwiegley/emacs-async"))])
|
||||
(async . [(20220922 1622) ((emacs (24 4))) "Asynchronous processing in Emacs" tar ((:commit . "dbac40131f6644bf80fd27581b62361e743fb4a8") (:authors ("John Wiegley" . "jwiegley@gmail.com")) (:maintainer "Thierry Volpiatto" . "thievol@posteo.net") (:keywords "async") (:url . "https://github.com/jwiegley/emacs-async"))])
|
||||
(async-await . [(20220827 437) ((emacs (25 1)) (promise (1 1)) (iter2 (0 9 10))) "Async/Await" single ((:commit . "e0d15e8057ed7520100bc50c5552278292ebcb07") (:authors ("chuntaro" . "chuntaro@sakura-games.jp")) (:maintainer "chuntaro" . "chuntaro@sakura-games.jp") (:keywords "async" "await" "convenience") (:url . "https://github.com/chuntaro/emacs-async-await"))])
|
||||
(async-backup . [(20220131 1438) ((emacs (24 4))) "Backup on each save without freezing Emacs" single ((:commit . "6ddb39fe77d66cdef48b87cb0d0554ad7d132308") (:authors ("contrapunctus" . "xmpp:contrapunctus@jabjab.de")) (:maintainer "contrapunctus" . "xmpp:contrapunctus@jabjab.de") (:keywords "files") (:url . "https://tildegit.org/contrapunctus/async-backup"))])
|
||||
(atcoder-tools . [(20200109 1236) ((emacs (26)) (f (0 20)) (s (1 12))) "An atcoder-tools client" single ((:commit . "cfe61ed18ea9b3b1bfb6f9e7d80a47599680cd1f") (:authors ("Seong Yong-ju" . "sei40kr@gmail.com")) (:maintainer "Seong Yong-ju" . "sei40kr@gmail.com") (:keywords "extensions" "tools") (:url . "https://github.com/sei40kr/atcoder-tools"))])
|
||||
|
@ -215,7 +215,7 @@
|
|||
(auto-dark . [(20220901 109) ((emacs (24 4))) "Automatically set the dark-mode theme based on MacOS status" single ((:commit . "9293593dfd9c4effa8abe855c7569c1f22531983") (:authors ("Rahul M. Juliato") ("Tim Harper <timcharper at gmail dot com>")) (:maintainer "Rahul M. Juliato") (:keywords "tools" "unix" "faces") (:url . "https://github.com/LionyxML/auto-dark-emacs"))])
|
||||
(auto-dictionary . [(20150410 1610) nil "automatic dictionary switcher for flyspell" single ((:commit . "b364e08009fe0062cf0927d8a0582fad5a12b8e7") (:authors ("Nikolaj Schumacher <bugs * nschum de>")) (:maintainer "Nikolaj Schumacher <bugs * nschum de>") (:keywords "wp") (:url . "http://nschum.de/src/emacs/auto-dictionary/"))])
|
||||
(auto-dim-other-buffers . [(20220209 2101) nil "Makes windows without focus less prominent" single ((:commit . "33b5f88b799a17947c266b04ad59462c5aeb4ed7") (:authors ("Michal Nazarewicz" . "mina86@mina86.com")) (:maintainer "Michal Nazarewicz" . "mina86@mina86.com") (:url . "https://github.com/mina86/auto-dim-other-buffers.el"))])
|
||||
(auto-highlight-symbol . [(20220505 505) ((emacs (26 1)) (ht (2 3))) "Automatic highlighting current symbol minor mode" single ((:commit . "3d60d2c64278f9f933ee78299f6decde2254af7e") (:authors ("Mitsuo Saito" . "arch320@NOSPAM.gmail.com")) (:maintainer "Shen, Jen-Chieh" . "jcs090218@gmail.com") (:keywords "highlight" "face" "match" "convenience") (:url . "http://github.com/jcs-elpa/auto-highlight-symbol"))])
|
||||
(auto-highlight-symbol . [(20220919 548) ((emacs (26 1)) (ht (2 3))) "Automatic highlighting current symbol minor mode" single ((:commit . "e10e4952fd23025f3f46edfde66e3ac2d7bdf069") (:authors ("Mitsuo Saito" . "arch320@NOSPAM.gmail.com")) (:maintainer "Shen, Jen-Chieh" . "jcs090218@gmail.com") (:keywords "highlight" "face" "match" "convenience") (:url . "http://github.com/jcs-elpa/auto-highlight-symbol"))])
|
||||
(auto-indent-mode . [(20211029 11) nil "Auto indent Minor mode" tar ((:commit . "664006b67329a8e27330541547f8c2187dab947c") (:authors ("Matthew L. Fidler, Le Wang & Others")) (:maintainer "Matthew L. Fidler") (:keywords "auto" "indentation") (:url . "https://github.com/mlf176f2/auto-indent-mode.el/"))])
|
||||
(auto-minor-mode . [(20180527 1123) ((emacs (24 4))) "Enable minor modes by file name and contents" single ((:commit . "c62f4e04c7b73835c399f0348bea0ade2720bcbb") (:authors ("Joe Wreschnig" . "joe.wreschnig@gmail.com")) (:maintainer "Joe Wreschnig" . "joe.wreschnig@gmail.com") (:keywords "convenience") (:url . "https://github.com/joewreschnig/auto-minor-mode"))])
|
||||
(auto-org-md . [(20180213 2343) ((emacs (24 4))) "export a markdown file automatically when you save an org-file" single ((:commit . "9318338bdb7fe8bd698d88f3af89b2d6413efdd2") (:authors ("jamcha" . "jamcha.aa@gmail.com")) (:maintainer "jamcha" . "jamcha.aa@gmail.com") (:keywords "org" "markdown") (:url . "https://github.com/jamcha-aa/auto-org-md"))])
|
||||
|
@ -273,7 +273,7 @@
|
|||
(bash-completion . [(20220531 1104) ((emacs (24 3))) "BASH completion for the shell buffer" single ((:commit . "8e9c20dbfe01d8bf6c61db231593623a201c75c6") (:authors ("Stephane Zermatten" . "szermatt@gmx.net")) (:maintainer "Stephane Zermatten" . "szermatt@gmail.com") (:keywords "shell" "bash" "bash-completion") (:url . "http://github.com/szermatt/emacs-bash-completion"))])
|
||||
(basic-c-compile . [(20170302 1112) ((cl-lib (0 5)) (f (0 19 0))) "Quickly create a Makefile, compile and run C." single ((:commit . "335e96e19647ad7245fb68cf7e68cf86c5023d23") (:authors ("Nick Spain" . "nicholas.spain96@gmail.com")) (:maintainer "Nick Spain" . "nicholas.spain96@gmail.com") (:keywords "c" "makefile" "compilation" "convenience") (:url . "https://github.com/nick96/basic-c-compile"))])
|
||||
(basic-ide . [(20200429 1104) ((emacs (25)) (basic-mode (0 4 2)) (company (0 9 12)) (flycheck (0 22)) (dash (2 12 0)) (f (0 17 0))) "BASIC IDE c64" single ((:commit . "d1d25c35cf899d58ead9377bf678a553c835c719") (:authors ("Fermin MF" . "fmfs@posteo.net")) (:maintainer "Fermin MF" . "fmfs@posteo.net") (:keywords "languages" "basic") (:url . "https://gitlab.com/sasanidas/emacs-c64-basic-ide"))])
|
||||
(basic-mode . [(20220910 1351) ((seq (2 20)) (emacs (25 1))) "Major mode for editing BASIC code" single ((:commit . "fae4bc22d075765d9c945c4d53532c9a885829b6") (:authors ("Johan Dykstrom")) (:maintainer "Johan Dykstrom") (:keywords "basic" "languages") (:url . "https://github.com/dykstrom/basic-mode"))])
|
||||
(basic-mode . [(20220917 718) ((seq (2 20)) (emacs (25 1))) "Major mode for editing BASIC code" single ((:commit . "a3c305577c2e8d53b78f0255161f3568e9d0bb89") (:authors ("Johan Dykstrom")) (:maintainer "Johan Dykstrom") (:keywords "basic" "languages") (:url . "https://github.com/dykstrom/basic-mode"))])
|
||||
(basic-theme . [(20160817 827) ((emacs (24))) "Minimalistic light color theme" single ((:commit . "9d0fd5f56898a5237c1de3363ad416aeab7f880e") (:authors ("Felix Geller" . "fgeller@gmail.com")) (:maintainer "Felix Geller" . "fgeller@gmail.com") (:keywords "theme" "basic" "minimal" "colors") (:url . "http://github.com/fgeller/basic-theme.el"))])
|
||||
(bats-mode . [(20160514 615) nil "Emacs mode for editing and running Bats tests" single ((:commit . "d519f7c89f5ae17dfc33400596df4564b478315f") (:authors ("Doug MacEachern")) (:maintainer "Doug MacEachern") (:keywords "bats" "tests") (:url . "https://github.com/dougm/bats-mode"))])
|
||||
(battery-notifier . [(20220705 2030) ((alert (1 3))) "Notify when battery capacity is low" single ((:commit . "b7301d3633afff78609afd45dcf78268f98d52d3") (:authors ("Jason Johnson" . "jason@fullsteamlabs.com")) (:maintainer "Jason Johnson" . "jason@fullsteamlabs.com") (:keywords "hardware" "battery") (:url . "https://github.com/jasonmj/battery-notifier"))])
|
||||
|
@ -352,11 +352,11 @@
|
|||
(bookmark-in-project . [(20220708 211) ((emacs (27 1))) "Bookmark access within a project" single ((:commit . "ccffde03b57d9b16fff59188d8e4090bf64d46d6") (:authors ("Campbell Barton" . "ideasman42@gmail.com")) (:maintainer "Campbell Barton" . "ideasman42@gmail.com") (:keywords "convenience") (:url . "https://codeberg.org/ideasman42/emacs-bookmark-in-project"))])
|
||||
(bookmark-view . [(20220403 2204) ((emacs (27 1))) "Bookmark views" single ((:commit . "0d40ac67f53b7fa75fe65c38a5ef65701ce4c3da") (:authors ("Daniel Mendler")) (:maintainer "Daniel Mendler") (:url . "https://github.com/minad/bookmark-view"))])
|
||||
(bool-flip . [(20161215 1539) ((emacs (24 3))) "flip the boolean under the point" single ((:commit . "0f7cc9b387429239fb929896511727d4e49a795b") (:authors ("Michael Brandt" . "michaelbrandt5@gmail.com")) (:maintainer "Michael Brandt" . "michaelbrandt5@gmail.com") (:keywords "boolean" "convenience" "usability") (:url . "http://github.com/michaeljb/bool-flip/"))])
|
||||
(boon . [(20220910 1333) ((emacs (26 1)) (dash (2 12 0)) (expand-region (0 10 0)) (multiple-cursors (1 3 0))) "Ergonomic Command Mode for Emacs." tar ((:commit . "41ad3363c2810cdda5ed08b2d83381843780a15f"))])
|
||||
(boon . [(20220918 1946) ((emacs (26 1)) (dash (2 12 0)) (expand-region (0 10 0)) (multiple-cursors (1 3 0))) "Ergonomic Command Mode for Emacs." tar ((:commit . "ee3d12fa3a811f13806b005bb3b1395e5f41dba9"))])
|
||||
(borg . [(20220812 1139) ((emacs (26)) (epkg (3 3 3)) (magit (3 3 0))) "Assimilate Emacs packages as Git submodules" tar ((:commit . "d3cdc176ee72e3e3feac6dd6b527cff5dcf788eb") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:keywords "tools") (:url . "https://github.com/emacscollective/borg"))])
|
||||
(borland-blue-theme . [(20160117 1321) ((emacs (24 1))) "Blue/yellow theme based on old DOS Borland/Turbo C IDE" single ((:commit . "db74eefebbc89d3c62575f8f50b319e87b4a3470") (:authors ("Alexey Veretennikov <alexey dot veretennikov at gmail dot com>")) (:maintainer "Alexey Veretennikov <alexey dot veretennikov at gmail dot com>") (:keywords "themes") (:url . "http://github.com/fourier/borland-blue-theme"))])
|
||||
(boron-theme . [(20170808 1308) ((emacs (24 0))) "an Emacs 24 theme based on Boron (tmTheme)" single ((:commit . "87ae1a765e07429fec25d2f29b004f84b52d2e0a") (:authors ("Jason Milkins")) (:maintainer "Jason Milkins") (:url . "https://github.com/emacsfodder/tmtheme-to-deftheme"))])
|
||||
(boxquote . [(20220105 1515) ((cl-lib (0 5))) "Quote text with a semi-box." single ((:commit . "f09bcfc9b97d0cd64a6da1f6de7ec8251ca33b0a") (:authors ("Dave Pearson" . "davep@davep.org")) (:maintainer "Dave Pearson" . "davep@davep.org") (:keywords "quoting") (:url . "https://github.com/davep/boxquote.el"))])
|
||||
(boxquote . [(20220919 714) ((cl-lib (0 5))) "Quote text with a semi-box." single ((:commit . "fe676396fa7e4372e01bf2c3d9a62e8d53615d46") (:authors ("Dave Pearson" . "davep@davep.org")) (:maintainer "Dave Pearson" . "davep@davep.org") (:keywords "quoting") (:url . "https://github.com/davep/boxquote.el"))])
|
||||
(bpe . [(20141228 2205) ((emacs (24 1))) "Blog from Org mode to Blogger" single ((:commit . "7b5b25f83506e6c9f4075d3803fa32404943a189") (:authors ("Yuta Yamada <cokesboy\"at\"gmail.com>")) (:maintainer "Yuta Yamada <cokesboy\"at\"gmail.com>") (:keywords "blogger" "blog") (:url . "https://github.com/yuutayamada/bpe"))])
|
||||
(bpftrace-mode . [(20190608 2201) ((emacs (24 0))) "Major mode for editing bpftrace script files" single ((:commit . "587b39ea7a1d786df5c04796d51bf2a5a4eda0d7") (:authors ("Jay Kamat" . "jaygkamat@gmail.com")) (:maintainer "Jay Kamat" . "jaygkamat@gmail.com") (:keywords "highlight" "c") (:url . "http://gitlab.com/jgkamat/bpftrace-mode"))])
|
||||
(bpr . [(20180220 1844) ((emacs (24))) "Background Process Runner" tar ((:commit . "af84a83dea09d86e77d87ac30604f2c5b4bf4117") (:authors ("Ilya Babanov" . "ilya-babanov@ya.ru")) (:maintainer "Ilya Babanov" . "ilya-babanov@ya.ru") (:keywords "background" "async" "process" "management") (:url . "https://github.com/ilya-babanov/emacs-bpr"))])
|
||||
|
@ -462,7 +462,7 @@
|
|||
(cedit . [(20200816 526) nil "paredit-like commands for c-like languages" single ((:commit . "cb38316903e6cfa8b8c978defa7e1dafcd4e0c12") (:authors ("zk_phi")) (:maintainer "zk_phi") (:url . "http://zk-phi.gitub.io/"))])
|
||||
(celery . [(20170225 924) ((emacs (24)) (dash-functional (2 11 0)) (s (1 9 0)) (deferred (0 3 2))) "a minor mode to draw stats from celery and more?" single ((:commit . "b3378dd81e5a717432123fb13d70201da5dc841a") (:authors ("ardumont" . "eniotna.t@gmail.com")) (:maintainer "ardumont" . "eniotna.t@gmail.com") (:keywords "celery" "convenience") (:url . "https://github.com/ardumont/emacs-celery"))])
|
||||
(celestial-mode-line . [(20180518 822) ((emacs (24))) "Show lunar phase and sunrise/-set time in modeline" single ((:commit . "3f5794aca99b977f1592cf1ab4516ae7922196a1") (:authors ("Peter" . "craven@gmx.net")) (:maintainer "Peter" . "craven@gmx.net") (:keywords "extensions") (:url . "https://github.com/ecraven/celestial-mode-line"))])
|
||||
(centaur-tabs . [(20220224 808) ((emacs (24 4)) (powerline (2 4)) (cl-lib (0 5))) "Aesthetic, modern looking customizable tabs plugin" tar ((:commit . "f4cef95acbd2eb99c8db3b6cdde74a6e0a966a0a") (:authors ("Emmanuel Bustos" . "ema2159@gmail.com")) (:maintainer "Emmanuel Bustos" . "ema2159@gmail.com") (:url . "https://github.com/ema2159/centaur-tabs"))])
|
||||
(centaur-tabs . [(20220920 510) ((emacs (24 4)) (powerline (2 4)) (cl-lib (0 5))) "Aesthetic, modern looking customizable tabs plugin" tar ((:commit . "eac6522bb9c19c525770822d9f14b4d0ff07324c") (:authors ("Emmanuel Bustos" . "ema2159@gmail.com")) (:maintainer "Emmanuel Bustos" . "ema2159@gmail.com") (:url . "https://github.com/ema2159/centaur-tabs"))])
|
||||
(centered-cursor-mode . [(20200507 1529) nil "cursor stays vertically centered" single ((:commit . "e9ee518d314ef7fb105a1e0cdc33dbb4dfe9d9e4") (:authors ("André Riemann" . "andre.riemann@web.de")) (:maintainer "André Riemann" . "andre.riemann@web.de") (:keywords "convenience") (:url . "https://github.com/andre-r/centered-cursor-mode.el"))])
|
||||
(centered-window . [(20220125 804) ((emacs (24 4))) "Center the text when there's only one window" single ((:commit . "80965f6c6afe8d918481433984b493de72af5399") (:authors ("Anler Hernández Peral" . "inbox+emacs@anler.me")) (:maintainer "Anler Hernández Peral" . "inbox+emacs@anler.me") (:keywords "faces" "windows") (:url . "https://github.com/anler/centered-window-mode"))])
|
||||
(centimacro . [(20201225 1132) nil "Assign multiple macros as global key bindings" single ((:commit . "0149877584b333c4f1953f0767f0cae23881b0df") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:keywords "macros") (:url . "https://github.com/abo-abo/centimacro"))])
|
||||
|
@ -490,7 +490,7 @@
|
|||
(cheerilee . [(20160313 1835) ((xelb (0 1))) "Toolkit library" tar ((:commit . "41bd81b5b0bb657241ceda5be6af5e07254d7376") (:authors ("Alessio Vanni" . "vannilla@firemail.cc")) (:maintainer "Alessio Vanni" . "vannilla@firemail.cc") (:keywords "multimedia" "tools") (:url . "https://github.com/Vannil/cheerilee.el"))])
|
||||
(chef-mode . [(20180628 1453) nil "minor mode for editing an opscode chef repository" single ((:commit . "048d691cb63981ae235763d4a6ced4af5c729924") (:authors ("Maciej Pasternacki" . "maciej@pasternacki.net")) (:maintainer "Maciej Pasternacki" . "maciej@pasternacki.net") (:keywords "chef" "knife"))])
|
||||
(chembalance . [(20210601 1653) ((emacs (24 4))) "Balance chemical equations" single ((:commit . "ae36c823ca151f1dc6144ec96b2f5e98181c0dbb") (:authors ("Sergi Ruiz Trepat")) (:maintainer "Sergi Ruiz Trepat") (:keywords "convenience" "chemistry") (:url . "https://github.com/sergiruiztrepat/chembalance"))])
|
||||
(chemtable . [(20210713 1551) ((emacs (24 1))) "Periodic table of the elements" single ((:commit . "05fc1449db497e715b33b8e08359fa17c3148c7b") (:authors ("Sergi Ruiz Trepat")) (:maintainer "Sergi Ruiz Trepat") (:keywords "convenience" "chemistry") (:url . "https://github.com/sergiruiztrepat/chemtable"))])
|
||||
(chemtable . [(20220921 1721) ((emacs (24 1))) "Periodic table of the elements" single ((:commit . "ba9c3e2ebddf348da462d808fcbce88f37473fd9") (:authors ("Sergi Ruiz Trepat")) (:maintainer "Sergi Ruiz Trepat") (:keywords "convenience" "chemistry") (:url . "https://github.com/sergiruiztrepat/chemtable"))])
|
||||
(cherry-blossom-theme . [(20150622 342) ((emacs (24 0))) "a soothing color theme for Emacs24." single ((:commit . "e5ea23694c0f20ab670c0aa87214c27f2232d922") (:authors ("Ben Yelsey" . "byelsey1@gmail.com")) (:maintainer "Ben Yelsey" . "byelsey1@gmail.com") (:url . "https://github.com/inlinestyle/emacs-cherry-blossom-theme"))])
|
||||
(chezmoi . [(20220310 2014) ((emacs (26 1))) "A package for interacting with chezmoi" tar ((:commit . "781783c483bc8fcdba3a230bb774c3a8a5ebe396") (:authors ("Harrison Pielke-Lombardo")) (:maintainer "Harrison Pielke-Lombardo") (:keywords "vc") (:url . "http://www.github.com/tuh8888/chezmoi.el"))])
|
||||
(chinese-conv . [(20170807 2128) ((cl-lib (0 5))) "Conversion between Chinese Characters with opencc or cconv" single ((:commit . "b56815bbb163d642e97fa73093b5a7e87cc32574") (:authors ("gucong" . "gucong43216@gmail.com")) (:maintainer "gucong" . "gucong43216@gmail.com") (:url . "https://github.com/gucong/emacs-chinese-conv"))])
|
||||
|
@ -508,7 +508,7 @@
|
|||
(chronos . [(20150602 1529) nil "multiple simultaneous countdown / countup timers" tar ((:commit . "b360d9dae57aa553cf2a14ffa0756a51ad71de09") (:authors ("David Knight" . "dxknight@opmbx.org")) (:maintainer "David Knight" . "dxknight@opmbx.org") (:keywords "calendar") (:url . "http://github.com/dxknight/chronos"))])
|
||||
(chruby . [(20180114 1652) ((cl-lib (0 5))) "Emacs integration for chruby" single ((:commit . "42bc6d521f832eca8e2ba210f30d03ad5529788f") (:authors ("Arne Brasseur" . "arne@arnebrasseur.net")) (:maintainer "Arne Brasseur" . "arne@arnebrasseur.net") (:keywords "languages") (:url . "https://github.com/plexus/chruby.el"))])
|
||||
(chyla-theme . [(20180302 1658) nil "chyla.org - green color theme." single ((:commit . "ae5e7ecace2ab474151eb0ac5ef07fba2dc32f8a") (:authors ("Adam Chyła" . "adam@chyla.org")) (:maintainer "Adam Chyła" . "adam@chyla.org") (:url . "https://github.com/chyla/ChylaThemeForEmacs"))])
|
||||
(cider . [(20220830 500) ((emacs (26)) (clojure-mode (5 15 1)) (parseedn (1 0 6)) (queue (0 2)) (spinner (1 7)) (seq (2 22)) (sesman (0 3 2))) "Clojure Interactive Development Environment that Rocks" tar ((:commit . "20debc82696bdd5ce807618d02665b92a4274492") (:authors ("Tim King" . "kingtim@gmail.com") ("Phil Hagelberg" . "technomancy@gmail.com") ("Bozhidar Batsov" . "bozhidar@batsov.dev") ("Artur Malabarba" . "bruce.connor.am@gmail.com") ("Hugo Duncan" . "hugo@hugoduncan.org") ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Bozhidar Batsov" . "bozhidar@batsov.dev") (:keywords "languages" "clojure" "cider") (:url . "http://www.github.com/clojure-emacs/cider"))])
|
||||
(cider . [(20220919 1610) ((emacs (26)) (clojure-mode (5 15 1)) (parseedn (1 0 6)) (queue (0 2)) (spinner (1 7)) (seq (2 22)) (sesman (0 3 2))) "Clojure Interactive Development Environment that Rocks" tar ((:commit . "101671c06df301833b3dcf6a5ed83a028efc334f") (:authors ("Tim King" . "kingtim@gmail.com") ("Phil Hagelberg" . "technomancy@gmail.com") ("Bozhidar Batsov" . "bozhidar@batsov.dev") ("Artur Malabarba" . "bruce.connor.am@gmail.com") ("Hugo Duncan" . "hugo@hugoduncan.org") ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Bozhidar Batsov" . "bozhidar@batsov.dev") (:keywords "languages" "clojure" "cider") (:url . "http://www.github.com/clojure-emacs/cider"))])
|
||||
(cider-decompile . [(20151122 537) ((cider (0 3 0)) (javap-mode (9))) "decompilation extension for cider" single ((:commit . "5d87035f3c3c14025e8f01c0c53d0ce2c8f56651") (:authors ("Dmitry Bushenko")) (:maintainer "Dmitry Bushenko") (:keywords "languages" "clojure" "cider") (:url . "http://www.github.com/clojure-emacs/cider-decompile"))])
|
||||
(cider-eval-sexp-fu . [(20190311 2152) ((emacs (24)) (eval-sexp-fu (0 5 0))) "Briefly highlights an evaluated sexp." single ((:commit . "7fd229f1441356866aedba611fd0cf4e89b50921") (:authors ("Sylvain Benner" . "sylvain.benner@gmail.com")) (:maintainer "Sylvain Benner" . "sylvain.benner@gmail.com") (:keywords "languages" "clojure" "cider"))])
|
||||
(cider-hydra . [(20190816 1121) ((cider (0 22 0)) (hydra (0 13 0))) "Hydras for CIDER." single ((:commit . "c3b8a15d72dddfbc390ab6a454bd7e4c765a2c95") (:authors ("Tianxiang Xiong" . "tianxiang.xiong@gmail.com")) (:maintainer "Tianxiang Xiong" . "tianxiang.xiong@gmail.com") (:keywords "convenience" "tools") (:url . "https://github.com/clojure-emacs/cider-hydra"))])
|
||||
|
@ -523,7 +523,7 @@
|
|||
(citar . [(20220913 1718) ((emacs (27 1)) (parsebib (4 2)) (org (9 5)) (citeproc (0 9))) "Citation-related commands for org, latex, markdown" tar ((:commit . "60cc30e4aa6947a9a06db39a4198162fa5959f5e") (:authors ("Bruce D'Arcus <https://github.com/bdarcus>")) (:maintainer "Bruce D'Arcus <https://github.com/bdarcus>") (:url . "https://github.com/emacs-citar/citar"))])
|
||||
(citar-embark . [(20220724 2250) ((emacs (27 1)) (embark (0 17)) (citar (0 9 7))) "Citar/Embark integration" single ((:commit . "8475c1fd2b8d2171b7c9dd4318aa67d09c62b820") (:authors ("Bruce D'Arcus" . "bdarcus@gmail.com")) (:maintainer "Bruce D'Arcus" . "bdarcus@gmail.com") (:keywords "bib" "extensions") (:url . "https://github.com/emacs-citar/citar-embark"))])
|
||||
(citar-org-roam . [(20220913 1114) ((emacs (27 1)) (org-roam (2 2)) (citar (1 0))) "Citar/org-roam integration" single ((:commit . "29688b89ac3bf78405fa0dce7e17965aa8fe0dff") (:authors ("Bruce D'Arcus" . "bdarcus@gmail.com")) (:maintainer "Bruce D'Arcus" . "bdarcus@gmail.com") (:url . "https://github.com/emacs-citar/citar-org-roam"))])
|
||||
(citeproc . [(20220816 1732) ((emacs (26)) (dash (2 13 0)) (s (1 12 0)) (f (0 18 0)) (queue (0 2)) (string-inflection (1 0)) (org (9)) (parsebib (2 4))) "A CSL 1.0.2 Citation Processor" tar ((:commit . "36c4ecdc485a2f264297bb60f82c0afe1a1d64d3") (:authors ("András Simonyi" . "andras.simonyi@gmail.com")) (:maintainer "András Simonyi" . "andras.simonyi@gmail.com") (:keywords "bib") (:url . "https://github.com/andras-simonyi/citeproc-el"))])
|
||||
(citeproc . [(20220921 1924) ((emacs (26)) (dash (2 13 0)) (s (1 12 0)) (f (0 18 0)) (queue (0 2)) (string-inflection (1 0)) (org (9)) (parsebib (2 4))) "A CSL 1.0.2 Citation Processor" tar ((:commit . "678db833e0128fe399ad4c99794186b46f33a68a") (:authors ("András Simonyi" . "andras.simonyi@gmail.com")) (:maintainer "András Simonyi" . "andras.simonyi@gmail.com") (:keywords "bib") (:url . "https://github.com/andras-simonyi/citeproc-el"))])
|
||||
(citeproc-org . [(20200915 2009) ((emacs (25 1)) (dash (2 12 0)) (org (9)) (f (0 18 0)) (citeproc (0 1)) (org-ref (1 1 1))) "Render org-mode references in CSL styles" tar ((:commit . "22a759c4f0ec80075014dcc594baa4d1b470d995") (:authors ("András Simonyi" . "andras.simonyi@gmail.com")) (:maintainer "András Simonyi" . "andras.simonyi@gmail.com") (:keywords "org-ref" "org-mode" "cite" "bib") (:url . "https://github.com/andras-simonyi/citeproc-org"))])
|
||||
(citre . [(20220523 745) ((emacs (26 1))) "Ctags IDE on the True Editor" tar ((:commit . "1c0ca637c7993559a0175e3001941457b8c71211") (:authors ("Hao Wang" . "amaikinono@gmail.com")) (:maintainer "Hao Wang" . "amaikinono@gmail.com") (:keywords "convenience" "tools") (:url . "https://github.com/universal-ctags/citre"))])
|
||||
(cl-format . [(20210831 530) nil "CL format routine." tar ((:commit . "ad1a4fb6bc91e65ea90bcf6792cc5a1be5380f9d") (:authors ("Andreas Politz" . "politza@fh-trier.de")) (:maintainer "akater" . "nuclearspace@gmail.com") (:keywords "extensions") (:url . "https://gitlab.com/akater/elisp-cl-format"))])
|
||||
|
@ -579,7 +579,7 @@
|
|||
(cobra-mode . [(20140116 2116) nil "Major mode for .NET-based Cobra language" single ((:commit . "acd6e53f6286af5176471d01f25257e5ddb6dd01") (:authors ("Taylor \"Nekroze\" Lawson")) (:maintainer "Taylor \"Nekroze\" Lawson") (:keywords "languages") (:url . "http://github.com/Nekroze/cobra-mode"))])
|
||||
(codcut . [(20190915 1009) nil "Share pieces of code to Codcut" single ((:commit . "bf07c3db3900e36b0b87423f3b715d6378f86393") (:authors ("Diego Pasquali" . "hello@dgopsq.space")) (:maintainer "Diego Pasquali" . "hello@dgopsq.space") (:keywords "comm" "tools" "codcut" "share") (:url . "https://github.com/codcut/codcut-emacs"))])
|
||||
(code-archive . [(20190612 308) ((emacs (24 3))) "git supported code archive and reference for org-mode" single ((:commit . "1ad9af6679d0294c3056eab9cad673f29c562721") (:authors ("Michael Schuldt" . "mbschuldt@gmail.com")) (:maintainer "Michael Schuldt" . "mbschuldt@gmail.com") (:url . "https://github.com/mschuldt/code-archive"))])
|
||||
(code-cells . [(20220910 1718) ((emacs (27 1))) "Lightweight notebooks with support for ipynb files" single ((:commit . "9da2ff44d1324b7c827b5d475391ba0a16c34239") (:authors ("Augusto Stoffel" . "arstoffel@gmail.com")) (:maintainer "Augusto Stoffel" . "arstoffel@gmail.com") (:keywords "convenience" "outlines") (:url . "https://github.com/astoff/code-cells.el"))])
|
||||
(code-cells . [(20220917 1431) ((emacs (27 1))) "Lightweight notebooks with support for ipynb files" single ((:commit . "fd68a33eb43b3cbd44fed767f48e230382903592") (:authors ("Augusto Stoffel" . "arstoffel@gmail.com")) (:maintainer "Augusto Stoffel" . "arstoffel@gmail.com") (:keywords "convenience" "outlines") (:url . "https://github.com/astoff/code-cells.el"))])
|
||||
(code-library . [(20160426 1218) ((gist (1 3 1))) "use org-mode to collect code snippets" single ((:commit . "3c79338eae5c892bfb4e4882298422d9fd65d2d7") (:authors ("DarkSun" . "lujun9972@gmail.com")) (:maintainer "DarkSun" . "lujun9972@gmail.com") (:keywords "lisp" "code"))])
|
||||
(code-review . [(20220629 1215) ((emacs (25 1)) (closql (1 2 0)) (magit (3 0 0)) (transient (0 3 7)) (a (1 0 0)) (ghub (3 5 1)) (uuidgen (1 2)) (deferred (0 5 1)) (markdown-mode (2 4)) (forge (0 3 0)) (emojify (1 2))) "Perform code review from Github, Gitlab, and Bitbucket Cloud" tar ((:commit . "95b36ec8e7935f96b2f3c6c9086d49cf4a72cbff") (:authors ("Wanderson Ferreira <https://github.com/wandersoncferreira>")) (:maintainer "Wanderson Ferreira" . "wand@hey.com") (:keywords "git" "tools" "vc") (:url . "https://github.com/wandersoncferreira/code-review"))])
|
||||
(code-stats . [(20201209 2135) ((emacs (25)) (request (0 3 0))) "Code::Stats plugin" single ((:commit . "9a467dfd6a3cef849468623e1c085cbf59dac154") (:authors ("Xu Chunyang" . "mail@xuchunyang.me")) (:maintainer "Xu Chunyang" . "mail@xuchunyang.me") (:url . "https://github.com/xuchunyang/code-stats-emacs"))])
|
||||
|
@ -597,8 +597,8 @@
|
|||
(color-theme-approximate . [(20140228 436) nil "Makes Emacs theme works on terminal transparently" single ((:commit . "f54301ca39bc5d2ffb000f233f8114184a3e7d71") (:authors ("Tung Dao" . "me@tungdao.com")) (:maintainer "Tung Dao" . "me@tungdao.com"))])
|
||||
(color-theme-buffer-local . [(20170126 601) ((color-theme (0))) "Install color-themes by buffer." single ((:commit . "faf7415c99e132094f1f09c6b6974ec118a18d87") (:authors ("Victor Borja" . "vic.borja@gmail.com")) (:maintainer "Victor Borja" . "vic.borja@gmail.com") (:keywords "faces") (:url . "http://github.com/vic/color-theme-buffer-local"))])
|
||||
(color-theme-modern . [(20220506 858) ((emacs (24))) "Reimplement colortheme with Emacs 24 theme framework." tar ((:commit . "74ad69bbca6fcfff3c0960d888c7c9c1f9f3e2e8") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/emacs-jp/replace-colorthemes"))])
|
||||
(color-theme-sanityinc-solarized . [(20200805 603) ((emacs (24 1)) (cl-lib (0 6))) "A version of Ethan Schoonover's Solarized themes" tar ((:commit . "7ef39ac9d99bfb699903cfc3623521c0ceec7b86") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:keywords "faces" "themes") (:url . "https://github.com/purcell/color-theme-sanityinc-solarized"))])
|
||||
(color-theme-sanityinc-tomorrow . [(20220913 1449) nil "A version of Chris Kempson's \"tomorrow\" themes" tar ((:commit . "7a948827fcfd5b78d69bc506b4299decc08ee6b9") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:keywords "faces" "themes") (:url . "https://github.com/purcell/color-theme-sanityinc-tomorrow"))])
|
||||
(color-theme-sanityinc-solarized . [(20220917 1350) ((emacs (24 1)) (cl-lib (0 6))) "A version of Ethan Schoonover's Solarized themes" tar ((:commit . "b8f4a65bd53b97b56b93fff2fb14f71b2831aa6f") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:keywords "faces" "themes") (:url . "https://github.com/purcell/color-theme-sanityinc-solarized"))])
|
||||
(color-theme-sanityinc-tomorrow . [(20220917 1349) nil "A version of Chris Kempson's \"tomorrow\" themes" tar ((:commit . "96dbaa43ff1326879e76a7943b8ae27265ae84e8") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:keywords "faces" "themes") (:url . "https://github.com/purcell/color-theme-sanityinc-tomorrow"))])
|
||||
(color-theme-x . [(20201204 2245) ((cl-lib (0 5))) "convert color themes to X11 resource settings" single ((:commit . "ec853dd931d625e07116fbc91d8829bd15f90889") (:authors ("Matthew Kennedy" . "mkennedy@killr.ath.cx")) (:maintainer "Andrew Johnson" . "andrew@andrewjamesjohnson.com") (:keywords "convenience" "faces" "frames") (:url . "https://github.com/ajsquared/color-theme-x"))])
|
||||
(colorless-themes . [(20210102 1035) ((emacs (24 1))) "A macro to generate mostly colorless themes" single ((:commit . "95fff8b4e313bdd2073454fd5be9420d95dab267") (:authors ("Thomas Letan" . "contact@thomasletan.fr")) (:maintainer "Thomas Letan" . "contact@thomasletan.fr") (:keywords "faces themes" "faces") (:url . "https://git.sr.ht/~lthms/colorless-themes.el"))])
|
||||
(colormaps . [(20171008 2224) ((emacs (25))) "Hex colormaps" single ((:commit . "3a88961ba66b09a49ea5aa92b2b8776b2c92d68c") (:authors ("Abhinav Tushar" . "lepisma@fastmail.com")) (:maintainer "Abhinav Tushar" . "lepisma@fastmail.com") (:keywords "tools") (:url . "https://github.com/lepisma/colormaps.el"))])
|
||||
|
@ -690,7 +690,6 @@
|
|||
(compdef . [(20200304 611) ((emacs (24 4))) "A local completion definer" single ((:commit . "30fb5846ed851efee641ce8c5d8879ad36cd7ac6") (:authors ("Uros Perisic")) (:maintainer "Uros Perisic") (:keywords "convenience") (:url . "https://gitlab.com/jjzmajic/compdef"))])
|
||||
(competitive-programming-snippets . [(20201115 1702) ((emacs (26)) (yasnippet (0 8 0))) "Competitive Programming snippets for yasnippet" tar ((:commit . "3b43c1aeaa6676d1d3d0c47e78790db9bee150b6") (:authors ("Seong Yong-ju" . "sei40kr@gmail.com")) (:maintainer "Seong Yong-ju" . "sei40kr@gmail.com") (:keywords "tools") (:url . "https://github.com/sei40kr/competitive-programming-snippets"))])
|
||||
(compiler-explorer . [(20220807 1136) ((emacs (26 1)) (request (0 3 0))) "Compiler explorer client (godbolt.org)" single ((:commit . "04da0fd822d7e9eca82c993c99f6318df824b652") (:authors ("Michał Krzywkowski" . "k.michal@zoho.com")) (:maintainer "Michał Krzywkowski" . "k.michal@zoho.com") (:keywords "c" "tools") (:url . "https://github.com/mkcms/compiler-explorer.el"))])
|
||||
(completions-frame . [(20210430 640) ((emacs (26 1))) "Show completions in child frame" single ((:commit . "860e5b97730df7ef5c34584ad164bc69c561db84") (:authors ("Andrii Kolomoiets" . "andreyk.mad@gmail.com")) (:maintainer "Andrii Kolomoiets" . "andreyk.mad@gmail.com") (:keywords "frames") (:url . "https://github.com/muffinmad/emacs-completions-frame"))])
|
||||
(composable . [(20220608 1148) ((emacs (25 1))) "composable editing" tar ((:commit . "205a69c64ea95ef67070423c31ed70ec44ec980c") (:authors ("Simon Friis Vindum" . "simon@vindum.io")) (:maintainer "Simon Friis Vindum" . "simon@vindum.io") (:keywords "lisp"))])
|
||||
(composer . [(20200616 1717) ((emacs (24 3)) (s (1 9 0)) (f (0 17)) (seq (1 9)) (php-runtime (0 1 0))) "Interface to PHP Composer" single ((:commit . "7c7f89df226cac69664d7eca5e913b544dc475c5") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:keywords "tools" "php" "dependency" "manager") (:url . "https://github.com/zonuexe/composer.el"))])
|
||||
(comware-router-mode . [(20220108 2111) ((dash (2 16 0)) (emacs (24 3))) "Major mode for editing Comware configuration files" single ((:commit . "cd8c74653c0e221e3dd1ca540496c4b4c7ee4617") (:authors ("Davide Restivo" . "davide.restivo@yahoo.it")) (:maintainer "Davide Restivo" . "davide.restivo@yahoo.it") (:keywords "convenience" "faces") (:url . "https://github.com/daviderestivo/comware-router-mode"))])
|
||||
|
@ -715,10 +714,10 @@
|
|||
(consult-lsp . [(20220507 856) ((emacs (27 1)) (lsp-mode (5 0)) (consult (0 16)) (f (0 20 0))) "LSP-mode Consult integration" single ((:commit . "19606a03cf854e1b0930c4526ed92c4560dccdc2") (:authors ("Gerry Agbobada")) (:maintainer "Gerry Agbobada") (:keywords "tools" "completion" "lsp") (:url . "https://github.com/gagbo/consult-lsp"))])
|
||||
(consult-notes . [(20220822 158) ((emacs (27 1)) (consult (0 17)) (s (1 12 0)) (dash (2 19))) "Manage notes with consult" tar ((:commit . "fd4091dd3655fdbbbb3fa15cfa96babe17c8b8b5") (:authors ("Colin McLear" . "mclear@fastmail.com")) (:maintainer "Colin McLear") (:keywords "convenience") (:url . "https://github.com/mclear-tools/consult-notes"))])
|
||||
(consult-notmuch . [(20220513 1647) ((emacs (26 1)) (consult (0 9)) (notmuch (0 31))) "Notmuch search using consult" single ((:commit . "4138855cddee0ef126cff6a5fc5ca9c49fd2682d") (:authors ("Jose A Ortega Ruiz" . "jao@gnu.org")) (:maintainer "Jose A Ortega Ruiz") (:keywords "mail") (:url . "https://codeberg.org/jao/consult-notmuch"))])
|
||||
(consult-org-roam . [(20220904 546) ((emacs (27 1)) (org-roam (2 2 0)) (consult (0 16))) "Consult integration for org-roam" single ((:commit . "f5157969209de1b549fbe37529b29a87337c9f28") (:authors ("jgru <https://github.com/jgru>")) (:maintainer "jgru <https://github.com/jgru>") (:url . "https://github.com/jgru/consult-org-roam"))])
|
||||
(consult-org-roam . [(20220921 507) ((emacs (27 1)) (org-roam (2 2 0)) (consult (0 16))) "Consult integration for org-roam" single ((:commit . "3eae47a4667a583e30703c1c5344e26225b5f676") (:authors ("jgru <https://github.com/jgru>")) (:maintainer "jgru <https://github.com/jgru>") (:url . "https://github.com/jgru/consult-org-roam"))])
|
||||
(consult-project-extra . [(20220424 1815) ((emacs (27 1)) (consult (0 17)) (project (0 8 1))) "Consult integration for project.el" single ((:commit . "fa882a0bf9b697ebb59d0dfa2ffd81ea6daabf41") (:authors ("Enrique Kessler Martínez")) (:maintainer "Enrique Kessler Martínez") (:keywords "convenience" "project" "management") (:url . "https://github.com/Qkessler/consult-project-extra"))])
|
||||
(consult-projectile . [(20220617 1042) ((emacs (25 1)) (consult (0 12)) (projectile (2 5 0))) "Consult integration for projectile" single ((:commit . "5ef1ada3be767ea766255801050210f5d796deec") (:authors ("Marco Pawłowski")) (:maintainer "Marco Pawłowski") (:keywords "convenience") (:url . "https://gitlab.com/OlMon/consult-projectile"))])
|
||||
(consult-recoll . [(20220912 1959) ((emacs (26 1)) (consult (0 18))) "Recoll queries using consult" single ((:commit . "999c50fb3e4e982034c45ceaae5db51b189e1a54") (:authors ("Jose A Ortega Ruiz" . "jao@gnu.org")) (:maintainer "Jose A Ortega Ruiz" . "jao@gnu.org") (:keywords "docs" "convenience") (:url . "https://codeberg.org/jao/consult-recoll"))])
|
||||
(consult-recoll . [(20220922 1758) ((emacs (26 1)) (consult (0 18))) "Recoll queries using consult" single ((:commit . "308171055786f99d6cdab22a397d31afa3eea2c2") (:authors ("Jose A Ortega Ruiz" . "jao@gnu.org")) (:maintainer "Jose A Ortega Ruiz" . "jao@gnu.org") (:keywords "docs" "convenience") (:url . "https://codeberg.org/jao/consult-recoll"))])
|
||||
(consult-spotify . [(20211114 2258) ((emacs (26 1)) (consult (0 8)) (espotify (0 1))) "Spotify queries using consult" single ((:commit . "5c1dcf0182135cda4191d4ba206fe2f265100293") (:authors ("Jose A Ortega Ruiz" . "jao@gnu.org")) (:maintainer "Jose A Ortega Ruiz") (:keywords "multimedia") (:url . "https://codeberg.org/jao/espotify"))])
|
||||
(consult-yasnippet . [(20220724 1338) ((emacs (27 1)) (yasnippet (0 14)) (consult (0 16))) "A consulting-read interface for yasnippet" single ((:commit . "ae0450889484f23dc4ec37518852a2c61b89f184") (:authors ("mohsin kaleem" . "mohkale@kisara.moe")) (:maintainer "mohsin kaleem" . "mohkale@kisara.moe") (:url . "https://github.com/mohkale/consult-yasnippet"))])
|
||||
(contextual . [(20180726 800) ((emacs (24)) (dash (2 12 1)) (cl-lib (0 5))) "Contextual profile management system" single ((:commit . "7ad2bb36426fd182d4d5ee7fd9be1cc0db8c7a84") (:authors ("Alexander Kahl" . "ak@sodosopa.io")) (:maintainer "Alexander Kahl" . "ak@sodosopa.io") (:keywords "convenience" "tools") (:url . "https://github.com/lshift-de/contextual"))])
|
||||
|
@ -786,11 +785,11 @@
|
|||
(crossword . [(20210614 633) ((emacs (26 1))) "Download and play crossword puzzles" single ((:commit . "e462de8ef15d1f979207a95b224e68d7feead92f") (:keywords "games") (:url . "https://github.com/Boruch-Baum/emacs-crossword"))])
|
||||
(crux . [(20210811 436) ((seq (1 11))) "A Collection of Ridiculously Useful eXtensions" single ((:commit . "6bfd212a7f7ae32e455802fde1f9e3f4fba932a0") (:authors ("Bozhidar Batsov" . "bozhidar@batsov.dev")) (:maintainer "Bozhidar Batsov" . "bozhidar@batsov.dev") (:keywords "convenience") (:url . "https://github.com/bbatsov/crux"))])
|
||||
(cryptol-mode . [(20190531 2051) nil "Cryptol major mode for Emacs" single ((:commit . "81ebbde83f7cb75b2dfaefc09de6a1703068c769") (:authors (nil . "Austin Seipp <aseipp [@at] pobox [dot] com>")) (:maintainer nil . "Austin Seipp <aseipp [@at] pobox [dot] com>") (:keywords "cryptol" "cryptography") (:url . "http://github.com/thoughtpolice/cryptol-mode"))])
|
||||
(crystal-mode . [(20220104 2146) ((emacs (24 4))) "Major mode for editing Crystal files" single ((:commit . "96a8058205b24b513d0b9307db32f05e30f9570b") (:keywords "languages" "crystal") (:url . "https://github.com/crystal-lang-tools/emacs-crystal-mode"))])
|
||||
(crystal-mode . [(20220918 1616) ((emacs (24 4))) "Major mode for editing Crystal files" single ((:commit . "e5b50952fc1d10b715231588cc1655eeef4a2458") (:keywords "languages" "crystal") (:url . "https://github.com/crystal-lang-tools/emacs-crystal-mode"))])
|
||||
(crystal-playground . [(20180830 501) ((emacs (25)) (crystal-mode (0 1 2))) "Local crystal playground for short code snippets." single ((:commit . "532dc7e4239eb4bdd241bc4347d34760344c1ebb") (:authors ("Jason Howell")) (:maintainer "Jason Howell") (:keywords "tools" "crystal") (:url . "https://github.com/jasonrobot/crystal-playground"))])
|
||||
(csgo-conf-mode . [(20161209 1619) nil "CS:GO Configuration files syntax highlighting" single ((:commit . "df45ca833eb68c394dd03acce5733a33c3b06bf8") (:authors ("Guillermo Robles" . "guillerobles1995@gmail.com")) (:maintainer "Guillermo Robles" . "guillerobles1995@gmail.com") (:keywords "languages") (:url . "https://github.com/wynro/emacs-csgo-conf-mode"))])
|
||||
(csharp-mode . [(20220819 1351) ((emacs (26 1))) "C# mode derived mode" tar ((:commit . "6e9d1f6b9900d3b8aa4106abf84a89311dfed85f") (:authors ("Theodor Thornhill" . "theo@thornhill.no")) (:maintainer "Jostein Kjønigsen" . "jostein@gmail.com") (:keywords "c#" "languages" "oop" "mode") (:url . "https://github.com/emacs-csharp/csharp-mode"))])
|
||||
(csound-mode . [(20211215 1925) ((emacs (25)) (shut-up (0 3 2)) (multi (2 0 1)) (dash (2 16 0)) (highlight (0))) "A major mode for interacting and coding Csound" tar ((:commit . "44c49e5a9262ede4b4477bafb13b42b1ba047b9c") (:authors ("Hlöðver Sigurðsson" . "hlolli@gmail.com")) (:maintainer "Hlöðver Sigurðsson" . "hlolli@gmail.com") (:url . "https://github.com/hlolli/csound-mode"))])
|
||||
(csound-mode . [(20220919 1033) ((emacs (25)) (shut-up (0 3 2)) (multi (2 0 1)) (dash (2 16 0)) (highlight (0))) "A major mode for interacting and coding Csound" tar ((:commit . "eae7a91c42d28a7a2a88fbd3cc02a0fc7b4a62af") (:authors ("Hlöðver Sigurðsson" . "hlolli@gmail.com")) (:maintainer "Hlöðver Sigurðsson" . "hlolli@gmail.com") (:url . "https://github.com/hlolli/csound-mode"))])
|
||||
(csproj-mode . [(20200801 1732) ((emacs (24))) "Work with .NET project files (csproj, vbproj)" tar ((:commit . "a7f0f4610c976a28c41b9b8299892f88b5d0336c") (:authors ("Omair Majid" . "omair.majid@gmail.com")) (:maintainer "Omair Majid" . "omair.majid@gmail.com") (:keywords "languages" "tools") (:url . "https://github.com/omajid/csproj-mode"))])
|
||||
(css-autoprefixer . [(20180311 1600) ((emacs (24))) "Adds autoprefix to CSS" single ((:commit . "386a5defc8543a3b87820f1761c075c7d1d93b38") (:authors (nil . "Kyung Mo Kweon<kkweon@gmail.com> and contributors")) (:maintainer nil . "Kyung Mo Kweon<kkweon@gmail.com> and contributors") (:keywords "convenience" "usability" "css") (:url . "https://github.com/kkweon/emacs-css-autoprefixer"))])
|
||||
(css-comb . [(20160416 559) nil "Sort CSS properties in a particular order using CSS Comb" single ((:commit . "6fa45e5af8a8bd3af6c1154cde3540e32c4206ee") (:authors ("Charanjit Singh" . "ckhabra@gmail.com")) (:maintainer "Charanjit Singh" . "ckhabra@gmail.com") (:url . "https://github.com/channikhabra/css-comb.el"))])
|
||||
|
@ -836,7 +835,7 @@
|
|||
(dakrone-theme . [(20170801 1933) nil "dakrone's custom dark theme" single ((:commit . "232ad1be5f3572dcbdf528f1655109aa355a6937") (:authors ("Lee Hinman <lee _AT_ writequit.org>")) (:maintainer "Lee Hinman <lee _AT_ writequit.org>") (:keywords "color" "themes") (:url . "https://github.com/dakrone/dakrone-theme"))])
|
||||
(danneskjold-theme . [(20220316 1101) nil "Beautiful high-contrast Emacs theme." tar ((:commit . "054c0b9bc9cefb53a4065096e66707d20885c461") (:authors ("Dmitry Akatov" . "akatovda@yandex.com")) (:maintainer "Dmitry Akatov" . "akatovda@yandex.com") (:url . "https://github.com/rails-to-cosmos/"))])
|
||||
(dante . [(20220907 1402) ((dash (2 12 0)) (emacs (25 1)) (f (0 19 0)) (flycheck (0 30)) (company (0 9)) (haskell-mode (13 14)) (s (1 11 0)) (lcr (1 0))) "Development mode for Haskell" single ((:commit . "1ab4d9520d17cd37d1f370d1c8adebf4d9d3f737") (:authors ("Jean-Philippe Bernardy" . "jeanphilippe.bernardy@gmail.com")) (:maintainer "Jean-Philippe Bernardy" . "jeanphilippe.bernardy@gmail.com") (:keywords "haskell" "tools") (:url . "https://github.com/jyp/dante"))])
|
||||
(dap-mode . [(20220915 1323) ((emacs (26 1)) (dash (2 18 0)) (lsp-mode (6 0)) (bui (1 1 0)) (f (0 20 0)) (s (1 12 0)) (lsp-treemacs (0 1)) (posframe (0 7 0)) (ht (2 3)) (lsp-docker (1 0 0))) "Debug Adapter Protocol mode" tar ((:commit . "5d5043f962de030cadf761613199e0251c602d1e") (:authors ("Ivan Yonchovski" . "yyoncho@gmail.com")) (:maintainer "Ivan Yonchovski" . "yyoncho@gmail.com") (:keywords "languages" "debug") (:url . "https://github.com/emacs-lsp/dap-mode"))])
|
||||
(dap-mode . [(20220921 941) ((emacs (26 1)) (dash (2 18 0)) (lsp-mode (6 0)) (bui (1 1 0)) (f (0 20 0)) (s (1 12 0)) (lsp-treemacs (0 1)) (posframe (0 7 0)) (ht (2 3)) (lsp-docker (1 0 0))) "Debug Adapter Protocol mode" tar ((:commit . "442aef50dbc3cfb853bee6d919e98d2941973136") (:authors ("Ivan Yonchovski" . "yyoncho@gmail.com")) (:maintainer "Ivan Yonchovski" . "yyoncho@gmail.com") (:keywords "languages" "debug") (:url . "https://github.com/emacs-lsp/dap-mode"))])
|
||||
(darcsum . [(20190316 2215) nil "a pcl-cvs like interface for managing darcs patches" single ((:commit . "6a8b690539d133c5e3d17cb23fe4365fbb6fb493") (:authors ("John Wiegley" . "johnw@gnu.org")) (:maintainer "John Wiegley" . "johnw@gnu.org") (:keywords "completion" "convenience" "tools" "vc"))])
|
||||
(darcula-theme . [(20171227 1845) nil "Inspired by IntelliJ's Darcula theme" single ((:commit . "d9b82b58ded9014985be6658f4ab17e26ed9e93e") (:authors ("Sam Halliday" . "Sam.Halliday@gmail.com")) (:maintainer "Sam Halliday" . "Sam.Halliday@gmail.com") (:keywords "faces") (:url . "https://gitlab.com/fommil/emacs-darcula-theme"))])
|
||||
(dark-krystal-theme . [(20170808 1300) ((emacs (24 0))) "an Emacs 24 theme based on Dark Krystal (tmTheme)" single ((:commit . "79084b99665dc9ffb0ec62cc092349a5ecebebbc") (:authors ("Jason Milkins")) (:maintainer "Jason Milkins") (:url . "https://github.com/emacsfodder/tmtheme-to-deftheme"))])
|
||||
|
@ -845,7 +844,7 @@
|
|||
(darkburn-theme . [(20170423 1652) nil "A not-so-low contrast color theme for Emacs." single ((:commit . "b59053533246330e9107721da7977a0af312c915") (:authors ("Jonas Gorauskas" . "jgorauskas@gmail.com")) (:maintainer "Jonas Gorauskas" . "jgorauskas@gmail.com") (:url . "http://github.com/gorauskas/darkburn-theme"))])
|
||||
(darkmine-theme . [(20160406 624) nil "Yet another emacs dark color theme." single ((:commit . "7f7e82ca03bcad52911fa41fb3e204e32d6ee63e") (:authors ("Pierre Lecocq" . "pierre.lecocq@gmail.com")) (:maintainer "Pierre Lecocq" . "pierre.lecocq@gmail.com") (:url . "https://github.com/pierre-lecocq/darkmine-theme"))])
|
||||
(darkokai-theme . [(20200614 1452) nil "A darker variant on Monokai." single ((:commit . "5820aeddfc8c869ba840cc534eba776936656a66") (:url . "http://github.com/sjrmanning/darkokai"))])
|
||||
(darktooth-theme . [(20220819 754) ((emacs (27 1)) (autothemer (0 2))) "From the darkness... it watches" tar ((:commit . "d6f3876d686b9af5a5eb80bc55ae3d17f8ec42b8") (:url . "http://github.com/emacsfodder/emacs-theme-darktooth"))])
|
||||
(darktooth-theme . [(20220920 151) ((emacs (27 1)) (autothemer (0 2))) "From the darkness... it watches" tar ((:commit . "4be48efc09f4dd5e61bfec835a08e89d891440ef") (:url . "http://github.com/emacsfodder/emacs-theme-darktooth"))])
|
||||
(dart-mode . [(20220401 0) ((emacs (24 3))) "Major mode for editing Dart files" single ((:commit . "ae032b9b30ebadfe1b8a48a4cf278417e506d100") (:authors ("https://github.com/bradyt/dart-mode/issues")) (:maintainer "https://github.com/bradyt/dart-mode/issues") (:keywords "languages") (:url . "https://github.com/bradyt/dart-mode"))])
|
||||
(dart-server . [(20210501 1445) ((emacs (24 5)) (cl-lib (0 5)) (dash (2 10 0)) (flycheck (0 23)) (s (1 10))) "Minor mode for editing Dart files" single ((:commit . "75562baf9a89b7e314bc2f795f6ecdc5d1f2cc8c") (:authors ("Natalie Weizenbaum") ("Brady Trainor" . "mail@bradyt.com")) (:maintainer "Brady Trainor" . "mail@bradyt.com") (:keywords "languages") (:url . "https://github.com/bradyt/dart-server"))])
|
||||
(dash . [(20220608 1931) ((emacs (24))) "A modern list library for Emacs" tar ((:commit . "0ac1ecf6b56eb67bb81a3cf70f8d4354b5782341") (:authors ("Magnar Sveen" . "magnars@gmail.com")) (:maintainer "Magnar Sveen" . "magnars@gmail.com") (:keywords "extensions" "lisp") (:url . "https://github.com/magnars/dash.el"))])
|
||||
|
@ -853,7 +852,7 @@
|
|||
(dash-at-point . [(20211023 104) nil "Search the word at point with Dash" single ((:commit . "fba1a6f42ea51d05110e12c62bdced664059eb55") (:authors ("Shinji Tanaka" . "shinji.tanaka@gmail.com")) (:maintainer "Shinji Tanaka" . "shinji.tanaka@gmail.com") (:url . "https://github.com/stanaka/dash-at-point"))])
|
||||
(dash-docs . [(20210830 926) ((emacs (24 4)) (cl-lib (0 5)) (async (1 9 3))) "Offline documentation browser using Dash docsets." tar ((:commit . "29848b6b347ac520f7646c200ed2ec36cea3feda") (:authors ("Raimon Grau" . "raimonster@gmail.com") ("Toni Reina " . "areina0@gmail.com") ("Bryan Gilbert" . "bryan@bryan.sh")) (:maintainer "Raimon Grau" . "raimonster@gmail.com") (:keywords "docs") (:url . "http://github.com/areina/helm-dash"))])
|
||||
(dash-functional . [(20210210 1449) ((dash (2 18 0))) "Collection of useful combinators for Emacs Lisp" single ((:commit . "0e975782086020aa12863fdb658d6a3cc748a10c") (:authors ("Matus Goljer" . "matus.goljer@gmail.com") ("Magnar Sveen" . "magnars@gmail.com")) (:maintainer "Matus Goljer" . "matus.goljer@gmail.com") (:keywords "extensions" "lisp") (:url . "https://github.com/magnars/dash.el"))])
|
||||
(dashboard . [(20220907 759) ((emacs (26 1))) "A startup screen extracted from Spacemacs" tar ((:commit . "02c350d7a767f577c8cccee84904c423f86fae54") (:authors ("Rakan Al-Hneiti" . "rakan.alhneiti@gmail.com")) (:maintainer "Jesús Martínez" . "jesusmartinez93@gmail.com") (:keywords "startup" "screen" "tools" "dashboard") (:url . "https://github.com/emacs-dashboard/emacs-dashboard"))])
|
||||
(dashboard . [(20220922 509) ((emacs (26 1))) "A startup screen extracted from Spacemacs" tar ((:commit . "554dc6fac1362dd6b66318c8250eea8bd63aa92f") (:authors ("Rakan Al-Hneiti" . "rakan.alhneiti@gmail.com")) (:maintainer "Jesús Martínez" . "jesusmartinez93@gmail.com") (:keywords "startup" "screen" "tools" "dashboard") (:url . "https://github.com/emacs-dashboard/emacs-dashboard"))])
|
||||
(dashboard-hackernews . [(20220516 1809) ((emacs (24)) (dashboard (1 2 5)) (request (0 3 0))) "Display Hacker News on dashboard" single ((:commit . "34d86bffcde7e6d10ffa7c5080a71a144f01f3aa") (:authors ("Hayato KAJIYAMA" . "kaji1216@gmail.com")) (:maintainer "Hayato KAJIYAMA" . "kaji1216@gmail.com") (:url . "https://github.com/hyakt/emacs-dashboard-hackernews"))])
|
||||
(dashboard-ls . [(20220704 633) ((emacs (24 3)) (dashboard (1 2 5))) "Display files/directories in current directory on Dashboard" single ((:commit . "5ff42002b501cfb9b76b975d37c7a899f013292c") (:authors ("Shen, Jen-Chieh" . "jcs090218@gmail.com")) (:maintainer "Shen, Jen-Chieh" . "jcs090218@gmail.com") (:keywords "convenience" "directory" "file" "show") (:url . "https://github.com/emacs-dashboard/dashboard-ls"))])
|
||||
(dashboard-project-status . [(20190202 1354) ((emacs (24)) (git (0 1 1)) (dashboard (1 2 5))) "Display a git project status in a dashboard widget." single ((:commit . "7675c138e9df8fe2c626e7ba9bbb8b6717671a41") (:authors ("Jason Duncan" . "jasond496@msn.com")) (:maintainer "Jason Duncan" . "jasond496@msn.com") (:url . "https://github.com/functionreturnfunction/dashboard-project-status"))])
|
||||
|
@ -897,10 +896,10 @@
|
|||
(desktop-environment . [(20220425 1834) ((emacs (25 1))) "Helps you control your GNU/Linux computer" single ((:commit . "2863dc3d66aed9052c8af39cc8c8c264be300560") (:authors ("Damien Cassou <damien@cassou.me>, Nicolas Petton" . "nicolas@petton.fr")) (:maintainer "Damien Cassou <damien@cassou.me>, Nicolas Petton" . "nicolas@petton.fr") (:url . "https://gitlab.petton.fr/DamienCassou/desktop-environment"))])
|
||||
(desktop-mail-user-agent . [(20210519 1008) ((emacs (24 3))) "Call OS default mail program to compose mail" single ((:commit . "caac672ef7e4ddced960fa31cef3a6ba5d7ab451") (:authors ("Lassi Kortela" . "lassi@lassi.io")) (:maintainer "Lassi Kortela" . "lassi@lassi.io") (:keywords "mail") (:url . "https://github.com/lassik/emacs-desktop-mail-user-agent"))])
|
||||
(desktop-registry . [(20140119 2143) nil "Keep a central registry of desktop files" single ((:commit . "244c2e7f9f0a1050aa8a47ad0b38f4e4584682dd") (:authors ("Tom Willemse" . "tom@ryuslash.org")) (:maintainer "Tom Willemse" . "tom@ryuslash.org") (:keywords "convenience") (:url . "http://projects.ryuslash.org/desktop-registry/"))])
|
||||
(detached . [(20220915 1320) ((emacs (27 1))) "A package to launch, and manage, detached processes" tar ((:commit . "77921c6cf4020a8062f9fd6cccda19bef51b2350") (:authors ("Niklas Eklund" . "niklas.eklund@posteo.net")) (:maintainer "detached.el Development" . "~niklaseklund/detached.el@lists.sr.ht") (:keywords "convenience" "processes") (:url . "https://sr.ht/~niklaseklund/detached.el/"))])
|
||||
(detached . [(20220922 1355) ((emacs (27 1))) "A package to launch, and manage, detached processes" tar ((:commit . "07d196af4480d58b067552fd1ead6b6f0607dc9c") (:authors ("Niklas Eklund" . "niklas.eklund@posteo.net")) (:maintainer "detached.el Development" . "~niklaseklund/detached.el@lists.sr.ht") (:keywords "convenience" "processes") (:url . "https://sr.ht/~niklaseklund/detached.el/"))])
|
||||
(detour . [(20181122 2138) ((emacs (24 4))) "Take a quick detour and return" single ((:commit . "f41f17cf1cf4f3db41563ff011786b6567596fb4") (:authors ("Stefan Kamphausen <www.skamphausen.de>")) (:maintainer "Stefan Kamphausen <www.skamphausen.de>") (:keywords "convenience" "abbrev") (:url . "https://github.com/ska2342/detour/"))])
|
||||
(devdocs . [(20220811 703) ((emacs (27 1))) "Emacs viewer for DevDocs" single ((:commit . "61ce83b79dc64e2f99d7f016a09b97e14b331459") (:authors ("Augusto Stoffel" . "arstoffel@gmail.com")) (:maintainer "Augusto Stoffel" . "arstoffel@gmail.com") (:keywords "help") (:url . "https://github.com/astoff/devdocs.el"))])
|
||||
(devdocs-browser . [(20211218 949) ((emacs (27 1))) "Browse devdocs.io documents using EWW" single ((:commit . "a46a2cdb83ed27869befe56fea04914a33252b3a") (:authors ("blahgeek" . "i@blahgeek.com")) (:maintainer "blahgeek" . "i@blahgeek.com") (:keywords "docs" "help" "tools") (:url . "https://github.com/blahgeek/emacs-devdocs-browser"))])
|
||||
(devdocs-browser . [(20220917 1403) ((emacs (27 1))) "Browse devdocs.io documents using EWW" single ((:commit . "badbb9cb57522cc0e002a32fe385f7ad1e929665") (:authors ("blahgeek" . "i@blahgeek.com")) (:maintainer "blahgeek" . "i@blahgeek.com") (:keywords "docs" "help" "tools") (:url . "https://github.com/blahgeek/emacs-devdocs-browser"))])
|
||||
(dfmt . [(20170728 1023) nil "Emacs Interface to D indenting/formatting tool dfmt." single ((:commit . "21b9094e907b7ac53f5ecb4ff4539613a9d12434") (:authors ("Per Nordlöw")) (:maintainer "Kirill Babikhin <qsimpleq>") (:keywords "tools" "convenience" "languages" "dlang") (:url . "https://github.com/qsimpleq/elisp-dfmt"))])
|
||||
(dhall-mode . [(20220519 1115) ((emacs (24 4)) (reformatter (0 3))) "Major mode for the dhall configuration language" single ((:commit . "c77f1c1e75b6d2725019c5275fc102ae98d25628") (:authors ("Sibi Prabakaran" . "sibi@psibi.in")) (:maintainer "Sibi Prabakaran" . "sibi@psibi.in") (:keywords "languages") (:url . "https://github.com/psibi/dhall-mode"))])
|
||||
(dianyou . [(20210525 1517) ((emacs (24 4))) "Search and analyze mails in Gnus" single ((:commit . "f77d9e76be5d8022fa6ee5426144f13f38dd09f2") (:authors ("Chen Bin <chenbin DOT sh AT gmail DOT com>")) (:maintainer "Chen Bin <chenbin DOT sh AT gmail DOT com>") (:keywords "mail") (:url . "http://github.com/redguardtoo/dianyou"))])
|
||||
|
@ -911,7 +910,7 @@
|
|||
(didyoumean . [(20200905 1843) ((emacs (24 4))) "Did you mean to open another file?" single ((:commit . "ce5edcce160b86e7f6480f0381be785d43f97e19") (:keywords "convenience") (:url . "https://gitlab.com/kisaragi-hiu/didyoumean.el"))])
|
||||
(diff-ansi . [(20220731 2329) ((emacs (27 1))) "Display diff's using alternative diffing tools" single ((:commit . "c4f350da4302cd7d33343d83d5faaeae6795768f") (:authors ("Campbell Barton" . "ideasman42@gmail.com")) (:maintainer "Campbell Barton" . "ideasman42@gmail.com") (:url . "https://codeberg.org/ideasman42/emacs-diff-ansi"))])
|
||||
(diff-at-point . [(20220708 211) ((emacs (26 2))) "Diff navigation" single ((:commit . "b32a741d5967b38749039ceafec85062a45e6bcd") (:authors ("Campbell Barton" . "ideasman42@gmail.com")) (:maintainer "Campbell Barton" . "ideasman42@gmail.com") (:url . "https://codeberg.org/ideasman42/emacs-diff-at-point"))])
|
||||
(diff-hl . [(20220829 15) ((cl-lib (0 2)) (emacs (25 1))) "Highlight uncommitted changes using VC" tar ((:commit . "37b00f3bad841e131d69442a89cbebc3041d996b") (:authors ("Dmitry Gutov" . "dgutov@yandex.ru")) (:maintainer "Dmitry Gutov" . "dgutov@yandex.ru") (:keywords "vc" "diff") (:url . "https://github.com/dgutov/diff-hl"))])
|
||||
(diff-hl . [(20220919 1045) ((cl-lib (0 2)) (emacs (25 1))) "Highlight uncommitted changes using VC" tar ((:commit . "5d90cca340cb72a821dd20635e4f5a924dd20ccf") (:authors ("Dmitry Gutov" . "dgutov@yandex.ru")) (:maintainer "Dmitry Gutov" . "dgutov@yandex.ru") (:keywords "vc" "diff") (:url . "https://github.com/dgutov/diff-hl"))])
|
||||
(difflib . [(20210224 2242) ((emacs (24 4)) (cl-generic (0 3)) (ht (2 2)) (s (1 12 0))) "Helpers for computing deltas between sequences." single ((:commit . "646fc4388274fe765bbf4661e17a24e4d081250c") (:authors ("Diego A. Mundo" . "dieggsy@pm.me")) (:maintainer "Diego A. Mundo" . "dieggsy@pm.me") (:keywords "matching" "tools" "string") (:url . "http://github.com/dieggsy/difflib.el"))])
|
||||
(diffpdf . [(20210626 1447) ((emacs (25 1)) (transient (0 3 0))) "Transient diffpdf" single ((:commit . "a5b203b549e373cb9b0ef3f00c0010bd34dd644a") (:authors ("Shuguang Sun" . "shuguang79@qq.com")) (:maintainer "Shuguang Sun" . "shuguang79@qq.com") (:keywords "tools") (:url . "https://github.com/ShuguangSun/diffpdf.el"))])
|
||||
(diffscuss-mode . [(20141014 2357) nil "Major mode for diffscuss files." single ((:commit . "bbc6dbed4b97d1eb9ae5dae021ed1e066129bd98") (:authors ("Edmund Jorgensen" . "edmund@hut8labs.com")) (:maintainer "Edmund Jorgensen" . "edmund@hut8labs.com") (:keywords "tools"))])
|
||||
|
@ -947,7 +946,7 @@
|
|||
(dired-icon . [(20170223 526) ((emacs (24 3))) "A minor mode to display a list of associated icons in dired buffers." tar ((:commit . "f60e10757a5011235b519231ad35974ff25963ed") (:authors ("Hong Xu" . "hong@topbug.net")) (:maintainer "Hong Xu" . "hong@topbug.net") (:keywords "dired" "files") (:url . "https://gitlab.com/xuhdev/dired-icon"))])
|
||||
(dired-imenu . [(20140109 1610) nil "imenu binding for dired mode" single ((:commit . "610e21fe0988c85931d34894d3eee2442c79ab0a") (:authors ("Damien Cassou" . "damien.cassou@gmail.com")) (:maintainer "Damien Cassou" . "damien.cassou@gmail.com") (:keywords "dired" "imenu") (:url . "https://github.com/DamienCassou/dired-imenu"))])
|
||||
(dired-k . [(20211002 2358) ((emacs (24 3))) "Highlight dired by size, date, git status" tar ((:commit . "b9507bac79fc8c030abbec389267262bc671f58b") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Neil Okamoto" . "neil.okamoto+melpa@gmail.com") (:url . "https://github.com/emacsorphanage/dired-k"))])
|
||||
(dired-launch . [(20220805 1655) ((emacs (24 3))) "Use dired as a launcher" single ((:commit . "b00c084c705311a40b19b624be9d301c9e92b3d9") (:authors ("David Thompson")) (:maintainer "David Thompson") (:keywords "dired" "launch") (:url . "https://github.com/thomp/dired-launch"))])
|
||||
(dired-launch . [(20220916 1836) ((emacs (24 3))) "Use dired as a launcher" single ((:commit . "519a6a49b56978b53e88a005490175cb913ec7fa") (:authors ("David Thompson")) (:maintainer "David Thompson") (:keywords "dired" "launch") (:url . "https://github.com/thomp/dired-launch"))])
|
||||
(dired-lsi . [(20200812 929) ((emacs (26 1))) "Add memo to directory and show it in dired" single ((:commit . "0f4038c8b47f6cfc70f82062800700c14c9912c2") (:authors ("Naoya Yamashita" . "conao3@gmail.com")) (:maintainer "Naoya Yamashita" . "conao3@gmail.com") (:keywords "convenience") (:url . "https://github.com/conao3/dired-lsi.el"))])
|
||||
(dired-narrow . [(20181114 1723) ((dash (2 7 0)) (dired-hacks-utils (0 0 1))) "Live-narrowing of search results for dired" single ((:commit . "c7184dc8f6ed3f2330db8d8f21f01c4b08056dd3") (:authors ("Matúš Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matúš Goljer" . "matus.goljer@gmail.com") (:keywords "files"))])
|
||||
(dired-open . [(20180922 1113) ((dash (2 5 0)) (dired-hacks-utils (0 0 1))) "Open files from dired using using custom actions" single ((:commit . "a45737d3a5aaac6928ebd7af041e5603dffaca64") (:authors ("Matúš Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matúš Goljer" . "matus.goljer@gmail.com") (:keywords "files"))])
|
||||
|
@ -960,7 +959,7 @@
|
|||
(dired-rmjunk . [(20191007 1232) nil "A home directory cleanup utility for Dired." single ((:commit . "0e890a41fa680a45b4b4aad2c28f9d6dca999cee") (:authors ("Jakob L. Kreuze" . "zerodaysfordays@sdf.lonestar.org")) (:maintainer "Jakob L. Kreuze" . "zerodaysfordays@sdf.lonestar.org") (:keywords "files" "matching") (:url . "https://git.sr.ht/~jakob/dired-rmjunk"))])
|
||||
(dired-rsync . [(20220729 1031) ((s (1 12 0)) (dash (2 0 0)) (emacs (24))) "Allow rsync from dired buffers" tar ((:commit . "7bdc1dd7c9e1217a20a4e1f26c3d1a3ed35f4a14") (:authors ("Alex Bennée" . "alex@bennee.com")) (:maintainer "Alex Bennée" . "alex@bennee.com") (:url . "https://github.com/stsquad/dired-rsync"))])
|
||||
(dired-sidebar . [(20220618 237) ((emacs (25 1)) (dired-subtree (0 0 1))) "Tree browser leveraging dired" single ((:commit . "f08bf15cb6cb3c44102731f50ffd812d8d68316c") (:authors ("James Nguyen" . "james@jojojames.com")) (:maintainer "James Nguyen" . "james@jojojames.com") (:keywords "dired" "files" "tools") (:url . "https://github.com/jojojames/dired-sidebar"))])
|
||||
(dired-single . [(20220726 137) nil "Reuse the current dired buffer to visit a directory" single ((:commit . "48532d747f0098280050721b5d016ec59c97c77c") (:keywords "dired" "reuse" "buffer") (:url . "https://github.com/crocket/dired-single"))])
|
||||
(dired-single . [(20220917 625) nil "Reuse the current dired buffer to visit a directory" single ((:commit . "3bb53664ccdfb2f911667947be6b6c022e4ec758") (:keywords "dired" "reuse" "buffer") (:url . "https://github.com/crocket/dired-single"))])
|
||||
(dired-subtree . [(20210105 1127) ((dash (2 5 0)) (dired-hacks-utils (0 0 1))) "Insert subdirectories in a tree-like fashion" single ((:commit . "1f19e249bdc66163b10028271943fc7b87e936ae") (:authors ("Matúš Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matúš Goljer" . "matus.goljer@gmail.com") (:keywords "files"))])
|
||||
(dired-toggle . [(20190616 303) nil "Show dired as sidebar and will not create new buffers when changing dir" single ((:commit . "b694ba91a45d0762bd032ff1bb4109e4c62ca686") (:authors ("Xu FaSheng <fasheng[AT]fasheng.info>")) (:maintainer "Xu FaSheng") (:keywords "dired" "sidebar") (:url . "https://github.com/fasheng/dired-toggle"))])
|
||||
(dired-toggle-sudo . [(20211216 102) nil "Browse directory with sudo privileges." single ((:commit . "9f86cdf858225b15c20affb97ed105e4109047bf") (:authors ("Sebastien Gross <seb•ɑƬ•chezwam•ɖɵʈ•org>")) (:maintainer "Sebastien Gross <seb•ɑƬ•chezwam•ɖɵʈ•org>") (:keywords "emacs" "dired"))])
|
||||
|
@ -973,7 +972,7 @@
|
|||
(direx-grep . [(20140515 1506) ((direx (0 1 -3))) "Grep node of direx.el using incremental search like anything.el/helm.el" single ((:commit . "1109a512a80b2673a70b18b8568514049017faad") (:authors ("Hiroaki Otsu" . "ootsuhiroaki@gmail.com")) (:maintainer "Hiroaki Otsu" . "ootsuhiroaki@gmail.com") (:keywords "convenience") (:url . "https://github.com/aki2o/direx-grep"))])
|
||||
(dirtree . [(20140129 832) ((tree-mode (1 1 1 1)) (windata (0))) "Directory tree views" single ((:commit . "ba55f1e716e386fdd37cb8e7f48616e405dc7251") (:authors ("Ye Wenbin" . "wenbinye@gmail.com")) (:maintainer "Ye Wenbin" . "wenbinye@gmail.com"))])
|
||||
(dirtree-prosjekt . [(20140129 904) ((prosjekt (0 3)) (dirtree (0 1))) "dirtree integration for prosjekt." single ((:commit . "03e06910589ba5cd736868793eb436b3233c6a26") (:authors ("Austin Bingham" . "austin.bingham@gmail.com")) (:maintainer "Austin Bingham" . "austin.bingham@gmail.com") (:url . "https://github.com/abingham/prosjekt"))])
|
||||
(dirvish . [(20220915 1457) ((emacs (27 1)) (transient (0 3 7))) "A modern file manager based on dired mode" tar ((:commit . "49ffb1dba47165daeaf2d9b604ecfee78f6da98a") (:authors ("Alex Lu <https://github.com/alexluigit>")) (:maintainer "Alex Lu <https://github.com/alexluigit>") (:keywords "files" "convenience") (:url . "https://github.com/alexluigit/dirvish"))])
|
||||
(dirvish . [(20220922 1748) ((emacs (27 1)) (transient (0 3 7))) "A modern file manager based on dired mode" tar ((:commit . "392599576889920afc36a7629f3bcdcd0bfcd552") (:authors ("Alex Lu <https://github.com/alexluigit>")) (:maintainer "Alex Lu <https://github.com/alexluigit>") (:keywords "files" "convenience") (:url . "https://github.com/alexluigit/dirvish"))])
|
||||
(disable-mouse . [(20210512 2114) ((emacs (24 1))) "Disable mouse commands globally" single ((:commit . "cae3be9dd012727b40ad3b511731191f79cebe42") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:keywords "mouse") (:url . "https://github.com/purcell/disable-mouse"))])
|
||||
(disaster . [(20220904 449) ((emacs (27))) "Disassemble C, C++ or Fortran code under cursor" single ((:commit . "0c13bd244cc43773af81e52ce73a55f199d58a61") (:authors ("Justine Tunney" . "jtunney@gmail.com") ("Abdelhak Bougouffa" . "abougouffa@fedoraproject.org")) (:maintainer "Abdelhak Bougouffa" . "abougouffa@fedoraproject.org") (:keywords "tools" "c") (:url . "https://github.com/jart/disaster"))])
|
||||
(discourse . [(20160911 819) ((cl-lib (0 5)) (request (0 2)) (s (1 11 0))) "discourse api" single ((:commit . "a86c7e608851e186fe12e892a573994f08c8e65e") (:authors ("DarkSun" . "lujun9972@gmail.com")) (:maintainer "DarkSun" . "lujun9972@gmail.com") (:keywords "lisp" "discourse") (:url . "https://github.com/lujun9972/discourse-api"))])
|
||||
|
@ -1024,9 +1023,9 @@
|
|||
(dokuwiki-mode . [(20170223 1301) nil "Major mode for DokuWiki document" single ((:commit . "e4e116f6fcc373e3f5937c1a7daa5c2c9c6d3fa1") (:authors ("Tsunenobu Kai" . "kai2nenobu@gmail.com")) (:maintainer "Tsunenobu Kai" . "kai2nenobu@gmail.com") (:keywords "hypermedia" "text" "dokuwiki") (:url . "https://github.com/kai2nenobu/emacs-dokuwiki-mode"))])
|
||||
(dollaro . [(20151123 1302) ((s (1 6 0))) "simple text templates" single ((:commit . "500127f0172ac7a1eec627e026b59136580a74ac") (:authors ("Alessandro Piras" . "laynor@gmail.com")) (:maintainer "Alessandro Piras" . "laynor@gmail.com") (:keywords "tools" "convenience"))])
|
||||
(doom . [(20180301 2308) ((cl-lib (0 5))) "DOM implementation and manipulation library" single ((:commit . "e59040aefc92dd9b3134eb623624307fb9e4327b") (:authors ("Alex Schroeder" . "alex@gnu.org") ("Henrik.Motakef" . "elisp@henrik-motakef.de") ("Katherine Whitlock" . "toroidal-code@gmail.com") ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Alex Schroeder") (:keywords "xml" "dom") (:url . "http://www.github.com/kensanata/doom.el/"))])
|
||||
(doom-modeline . [(20220911 631) ((emacs (25 1)) (compat (28 1 1 1)) (shrink-path (0 2 0))) "A minimal and modern mode-line" tar ((:commit . "73cccaba36aca706e8d819ce01f74d8d24533167") (:authors ("Vincent Zhang" . "seagle0128@gmail.com")) (:maintainer "Vincent Zhang" . "seagle0128@gmail.com") (:keywords "faces" "mode-line") (:url . "https://github.com/seagle0128/doom-modeline"))])
|
||||
(doom-modeline . [(20220921 356) ((emacs (25 1)) (compat (28 1 1 1)) (shrink-path (0 2 0))) "A minimal and modern mode-line" tar ((:commit . "43a7f64053e946204b4c5c8ddf6b2ec4907ea03f") (:authors ("Vincent Zhang" . "seagle0128@gmail.com")) (:maintainer "Vincent Zhang" . "seagle0128@gmail.com") (:keywords "faces" "mode-line") (:url . "https://github.com/seagle0128/doom-modeline"))])
|
||||
(doom-modeline-now-playing . [(20210831 1442) ((emacs (24 4)) (doom-modeline (3 0 0)) (async (1 9 3))) "Segment for Doom Modeline to show playerctl information" single ((:commit . "ef9158dfdf32e8eb789b69e7394d0bddaa68f42c") (:authors ("Ellis Kenyő" . "me@elken.dev")) (:maintainer "Ellis Kenyő" . "me@elken.dev") (:url . "https://github.com/elken/doom-modeline-now-playing"))])
|
||||
(doom-themes . [(20220727 853) ((emacs (25 1)) (cl-lib (0 5))) "an opinionated pack of modern color-themes" tar ((:commit . "5f96ee83e9734587bf3e8ec61d4f067b43d9c26e") (:authors ("Henrik Lissner" . "contact@henrik.io")) (:maintainer "Henrik Lissner" . "contact@henrik.io") (:keywords "themes" "faces") (:url . "https://github.com/doomemacs/themes"))])
|
||||
(doom-themes . [(20220916 1056) ((emacs (25 1)) (cl-lib (0 5))) "an opinionated pack of modern color-themes" tar ((:commit . "535800fd6ca7f5af56f7aa3d0e8f46fef8b7999b") (:authors ("Henrik Lissner" . "contact@henrik.io")) (:maintainer "Henrik Lissner" . "contact@henrik.io") (:keywords "themes" "faces") (:url . "https://github.com/doomemacs/themes"))])
|
||||
(dot-mode . [(20180312 2300) ((emacs (24 3))) "minor mode to repeat typing or commands" single ((:commit . "6ca22b73bcdae2363ee9641b822a60685df16a3e") (:authors ("Robert Wyrick" . "rob@wyrick.org")) (:maintainer "Robert Wyrick" . "rob@wyrick.org") (:keywords "convenience") (:url . "https://github.com/wyrickre/dot-mode"))])
|
||||
(dotenv-mode . [(20191027 2129) ((emacs (24 3))) "Major mode for .env files" single ((:commit . "e3701bf739bde44f6484eb7753deadaf691b73fb") (:authors ("Preetpal S. Sohal")) (:maintainer "Preetpal S. Sohal") (:url . "https://github.com/preetpalS/emacs-dotenv-mode"))])
|
||||
(dotnet . [(20200803 1032) nil "Interact with dotnet CLI tool" single ((:commit . "83ba1305d7895b03f3dffb2d3458b7ec75e6909f") (:authors ("Julien BLANCHARD" . "julien@sideburns.eu")) (:maintainer "Julien BLANCHARD" . "julien@sideburns.eu") (:keywords ".net" "tools") (:url . "https://github.com/julienXX/dotnet.el"))])
|
||||
|
@ -1091,7 +1090,7 @@
|
|||
(easy-kill-extras . [(20210529 945) ((easy-kill (0 9 4))) "Extra functions for easy-kill." tar ((:commit . "74e9d0fcafc38d5f24e6209671a552bc1ba5a867") (:authors ("Akinori MUSHA" . "knu@iDaemons.org")) (:maintainer "Akinori MUSHA" . "knu@iDaemons.org") (:keywords "killing" "convenience") (:url . "https://github.com/knu/easy-kill-extras.el"))])
|
||||
(easy-repeat . [(20150516 848) ((emacs (24 4))) "Repeat easily" single ((:commit . "060f0e6801c82c40c06961dc0528a00e18947a8c") (:authors ("Chunyang Xu" . "xuchunyang56@gmail.com")) (:maintainer "Chunyang Xu" . "xuchunyang56@gmail.com") (:keywords "repeat" "convenience") (:url . "https://github.com/xuchunyang/easy-repeat.el"))])
|
||||
(ebf . [(20210225 1211) ((dash (2 18 0)) (cl-lib (0 5))) "brainfuck language transpiler to Emacs Lisp" tar ((:commit . "6cbeb4d62416f4cfd5be8906667342af8ecc44a6") (:authors ("Alexey Kutepov" . "reximkut@gmail.com")) (:maintainer "Alexey Kutepov" . "reximkut@gmail.com") (:url . "http://github.com/rexim/ebf"))])
|
||||
(ebib . [(20220910 1240) ((parsebib (4 0)) (emacs (26 1))) "a BibTeX database manager" tar ((:commit . "0cbfb3c2d6bdd785296d498a2a28bba1ea83af71") (:authors ("Joost Kremers" . "joostkremers@fastmail.fm")) (:maintainer "Joost Kremers" . "joostkremers@fastmail.fm") (:keywords "text" "bibtex") (:url . "http://joostkremers.github.io/ebib/"))])
|
||||
(ebib . [(20220920 2227) ((parsebib (4 0)) (emacs (26 1))) "a BibTeX database manager" tar ((:commit . "740d1c3bbb7b5a92073be8428f52932412b7eb8c") (:authors ("Joost Kremers" . "joostkremers@fastmail.fm")) (:maintainer "Joost Kremers" . "joostkremers@fastmail.fm") (:keywords "text" "bibtex") (:url . "http://joostkremers.github.io/ebib/"))])
|
||||
(ebnf-mode . [(20220606 1846) ((emacs (25 1))) "Major mode for EBNF files" single ((:commit . "9bc7242557dcef797afdcb4a50c70bf153aa221d") (:authors ("Noah Peart" . "noah.v.peart@gmail.com")) (:maintainer "Noah Peart" . "noah.v.peart@gmail.com") (:url . "https://github.com/nverno/ebnf-mode"))])
|
||||
(ebuku . [(20220725 832) ((emacs (25 1))) "Interface to the buku Web bookmark manager" single ((:commit . "5b8bf34b8ea5d05f0b8dfc12bfea825f9cffbeda") (:authors ("Alexis <flexibeast@gmail.com>, Erik Sjöstrand" . "sjostrand.erik@gmail.com")) (:maintainer "Alexis" . "flexibeast@gmail.com") (:keywords "bookmarks" "buku" "data" "web" "www") (:url . "https://github.com/flexibeast/ebuku"))])
|
||||
(ecb . [(20170728 1921) nil "a code browser for Emacs" tar ((:commit . "1330a44cf3c171781083b0b926ab7622f64e6e81") (:authors ("Jesper Nordenberg" . "mayhem@home.se") ("Klaus Berndl" . "klaus.berndl@sdm.de") ("Kevin A. Burton" . "burton@openprivacy.org")) (:maintainer "Klaus Berndl" . "klaus.berndl@sdm.de") (:keywords "browser" "code" "programming" "tools"))])
|
||||
|
@ -1131,7 +1130,7 @@
|
|||
(egg . [(20181126 500) nil "Emacs Got Git - Emacs interface to Git" tar ((:commit . "00e768a78ac3d25f457eed667d02cac568480bf9") (:authors ("Bogolisk" . "bogolisk@gmail.com")) (:maintainer "Bogolisk" . "bogolisk@gmail.com") (:keywords "git" "version control" "release management"))])
|
||||
(egg-timer . [(20200217 1650) ((emacs (25 1))) "Commonly used intervals for setting timers while working" single ((:commit . "53a9e9d20453ea4b0198ca413b8b5069a0b30b38") (:authors ("William Carroll" . "wpcarro@gmail.com")) (:maintainer "William Carroll" . "wpcarro@gmail.com") (:url . "https://github.com/wpcarro/egg-timer.el"))])
|
||||
(egison-mode . [(20200107 2333) nil "Egison editing mode" tar ((:commit . "1ec6e8fedcda1bc2a6517cdbd8b1a85a1401a8f1") (:authors ("Satoshi Egi" . "egisatoshi@gmail.com")) (:maintainer "Satoshi Egi" . "egisatoshi@gmail.com") (:url . "https://github.com/egisatoshi/egison3/blob/master/elisp/egison-mode.el"))])
|
||||
(eglot . [(20220909 2125) ((emacs (26 1)) (jsonrpc (1 0 14)) (flymake (1 2 1)) (project (0 3 0)) (xref (1 0 1)) (eldoc (1 11 0)) (seq (2 23))) "Client for Language Server Protocol (LSP) servers" single ((:commit . "06e6dd6693123a737fb883dcf277432d63d6518e") (:authors ("João Távora" . "joaotavora@gmail.com")) (:maintainer "João Távora" . "joaotavora@gmail.com") (:keywords "convenience" "languages") (:url . "https://github.com/joaotavora/eglot"))])
|
||||
(eglot . [(20220919 1519) ((emacs (26 1)) (jsonrpc (1 0 14)) (flymake (1 2 1)) (project (0 3 0)) (xref (1 0 1)) (eldoc (1 11 0)) (seq (2 23))) "Client for Language Server Protocol (LSP) servers" single ((:commit . "79f41555d49b1f542e3c3428c396813bbc5ca4ff") (:authors ("João Távora" . "joaotavora@gmail.com")) (:maintainer "João Távora" . "joaotavora@gmail.com") (:keywords "convenience" "languages") (:url . "https://github.com/joaotavora/eglot"))])
|
||||
(eglot-fsharp . [(20220630 2007) ((emacs (27 1)) (eglot (1 4)) (fsharp-mode (1 10)) (jsonrpc (1 0 14))) "fsharp-mode eglot integration" single ((:commit . "185bfc2ca091cdd5d80ee798247d249076de2b30") (:authors ("Jürgen Hötzel" . "juergen@hoetzel.info")) (:maintainer "Jürgen Hötzel" . "juergen@hoetzel.info") (:keywords "languages") (:url . "https://github.com/fsharp/emacs-fsharp-mode"))])
|
||||
(eglot-java . [(20220403 1815) ((emacs (26 1)) (eglot (1 0)) (jsonrpc (1 0 0))) "Java extension for the eglot LSP client" single ((:commit . "da76eb69b3f86992d62302649a987f157b7b7371") (:authors ("Yves Zoundi" . "yves_zoundi@hotmail.com")) (:maintainer "Yves Zoundi" . "yves_zoundi@hotmail.com") (:keywords "convenience" "languages") (:url . "https://github.com/yveszoundi/eglot-java"))])
|
||||
(eglot-jl . [(20211208 359) ((emacs (25 1)) (eglot (1 4)) (julia-mode (0 3))) "Julia support for eglot" tar ((:commit . "2e35cf9768d97a0429a72deddbe30d6d7722d454") (:authors ("Adam Beckmeyer" . "adam_git@thebeckmeyers.xyz")) (:maintainer "Adam Beckmeyer" . "adam_git@thebeckmeyers.xyz") (:keywords "convenience" "languages") (:url . "https://github.com/non-Jedi/eglot-jl"))])
|
||||
|
@ -1240,10 +1239,10 @@
|
|||
(emacs-everywhere . [(20220831 1636) ((emacs (26 3))) "System-wide popup windows for quick edits" single ((:commit . "e1b701894196b0e0aaf18ab88c778877ec87d0c9") (:authors ("TEC <https://github.com/tecosaur>")) (:maintainer "TEC" . "contact@tecosaur.net") (:keywords "conenience" "frames") (:url . "https://github.com/tecosaur/emacs-everywhere"))])
|
||||
(emacsc . [(20220420 1042) nil "helper for emacsc(1)" tar ((:commit . "199c08147ebe98da1004c478c92ba8866950b637") (:authors ("Akinori MUSHA" . "knu@iDaemons.org")) (:maintainer "Akinori MUSHA" . "knu@iDaemons.org") (:keywords "tools") (:url . "https://github.com/knu/emacsc"))])
|
||||
(emacsist-view . [(20160426 1223) nil "Mode for viewing emacsist.com" single ((:commit . "f67761259ed779a9bc95c9a4e0474522990c5c6b") (:authors ("DarkSun" . "lujun9972@gmail.com")) (:maintainer "DarkSun" . "lujun9972@gmail.com") (:keywords "convenience" "usability") (:url . "https://github.com/lujun9972/emacsist-view"))])
|
||||
(emacsql . [(20220408 1614) ((emacs (25 1))) "high-level SQL database front-end" tar ((:commit . "373975cbccf7776af771e23f86043b236a330702") (:authors ("Christopher Wellons" . "wellons@nullprogram.com")) (:maintainer "Christopher Wellons" . "wellons@nullprogram.com") (:url . "https://github.com/skeeto/emacsql"))])
|
||||
(emacsql-mysql . [(20171219 227) ((emacs (25 1)) (emacsql (2 0 0))) "EmacSQL back-end for MySQL" single ((:commit . "ea613c5191dcaa2583d3f7d5737b31bb88a07ed5") (:authors ("Christopher Wellons" . "wellons@nullprogram.com")) (:maintainer "Christopher Wellons" . "wellons@nullprogram.com") (:url . "https://github.com/skeeto/emacsql"))])
|
||||
(emacsql-psql . [(20220101 1820) ((emacs (25 1)) (emacsql (2 0 0))) "EmacSQL back-end for PostgreSQL via psql" tar ((:commit . "c82a0e6b4d256a3743b718cfb640fa9efc045f6e") (:authors ("Christopher Wellons" . "wellons@nullprogram.com")) (:maintainer "Christopher Wellons" . "wellons@nullprogram.com") (:url . "https://github.com/skeeto/emacsql"))])
|
||||
(emacsql-sqlite . [(20220218 1543) ((emacs (25 1)) (emacsql (2 0 0))) "EmacSQL back-end for SQLite" tar ((:commit . "374726060d74df0e2bcb9d0355ff41e2c400ed30") (:authors ("Christopher Wellons" . "wellons@nullprogram.com")) (:maintainer "Christopher Wellons" . "wellons@nullprogram.com") (:url . "https://github.com/skeeto/emacsql"))])
|
||||
(emacsql . [(20220918 1902) ((emacs (25 1))) "High-level SQL database front-end" tar ((:commit . "18b40213fdc4cab2f836f5dc3f42b12f3c27af66") (:authors ("Christopher Wellons" . "wellons@nullprogram.com")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/magit/emacsql"))])
|
||||
(emacsql-mysql . [(20220918 1902) ((emacs (25 1)) (emacsql (3 0 0))) "EmacSQL back-end for MySQL" single ((:commit . "18b40213fdc4cab2f836f5dc3f42b12f3c27af66") (:authors ("Christopher Wellons" . "wellons@nullprogram.com")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/magit/emacsql"))])
|
||||
(emacsql-psql . [(20220918 1902) ((emacs (25 1)) (emacsql (2 0 0))) "EmacSQL back-end for PostgreSQL via psql" tar ((:commit . "18b40213fdc4cab2f836f5dc3f42b12f3c27af66") (:authors ("Christopher Wellons" . "wellons@nullprogram.com")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/magit/emacsql"))])
|
||||
(emacsql-sqlite . [(20220918 1902) ((emacs (25 1)) (emacsql (3 0 0))) "EmacSQL back-end for SQLite" tar ((:commit . "18b40213fdc4cab2f836f5dc3f42b12f3c27af66") (:authors ("Christopher Wellons" . "wellons@nullprogram.com")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/magit/emacsql"))])
|
||||
(emacsql-sqlite-builtin . [(20220422 1605) ((emacs (29)) (emacsql (3 0 0)) (emacsql-sqlite (3 0 0))) "EmacSQL back-end for SQLite using builtin support" single ((:commit . "c6f66f2a94a0c520d5c1028858adc2ab0f959f96") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:keywords "data") (:url . "https://github.com/emacscollective/emacsql-sqlite-builtin"))])
|
||||
(emacsql-sqlite-module . [(20220422 1605) ((emacs (25)) (emacsql (3 0 0)) (emacsql-sqlite (3 0 0)) (sqlite3 (0 15))) "EmacSQL back-end for SQLite using a module" single ((:commit . "c6f66f2a94a0c520d5c1028858adc2ab0f959f96") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:keywords "data") (:url . "https://github.com/emacscollective/emacsql-sqlite-builtin"))])
|
||||
(emacsql-sqlite3 . [(20220304 1014) ((emacs (26 1)) (emacsql (3 0 0))) "Yet another EmacSQL backend for SQLite" single ((:commit . "2113618732665f2112cb932a66c0e89c404d8777") (:authors ("Zhu Zihao" . "all_but_last@163.com")) (:maintainer "Zhu Zihao" . "all_but_last@163.com") (:keywords "extensions") (:url . "https://github.com/cireu/emacsql-sqlite3"))])
|
||||
|
@ -1251,8 +1250,8 @@
|
|||
(emamux . [(20200315 1220) ((emacs (24 3))) "Interact with tmux" single ((:commit . "6172131d78038f0b1490e24bac60534bf4ad3b30") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-emamux"))])
|
||||
(emamux-ruby-test . [(20130812 1639) ((emamux (0 1)) (projectile (0 9 1))) "Ruby test with emamux" single ((:commit . "785bfd44d097a46bb2ebe1e62ac7595fd4dc9ab5") (:url . "https://github.com/syohex/emamux-ruby-test"))])
|
||||
(emaps . [(20200508 1759) ((dash (2 17 0)) (emacs (24))) "Utilities for working with keymaps" single ((:commit . "7c561f3ded2015ed3774e5784059d6601082743e") (:authors ("Ben Moon" . "software@guiltydolphin.com")) (:maintainer "Ben Moon" . "software@guiltydolphin.com") (:keywords "convenience" "keyboard" "keymap" "utility") (:url . "https://github.com/GuiltyDolphin/emaps"))])
|
||||
(embark . [(20220913 1627) ((emacs (26 1))) "Conveniently act on minibuffer completions" tar ((:commit . "02c4b88f25fb4f4f17a553344875366117ccd2e1") (:authors ("Omar Antolín Camarena" . "omar@matem.unam.mx")) (:maintainer "Omar Antolín Camarena" . "omar@matem.unam.mx") (:keywords "convenience") (:url . "https://github.com/oantolin/embark"))])
|
||||
(embark-consult . [(20220704 37) ((emacs (27 1)) (embark (0 17)) (consult (0 17))) "Consult integration for Embark" single ((:commit . "5d0459d27aa7cf738b5af36cf862723a62bef955") (:authors ("Omar Antolín Camarena" . "omar@matem.unam.mx")) (:maintainer "Omar Antolín Camarena" . "omar@matem.unam.mx") (:keywords "convenience") (:url . "https://github.com/oantolin/embark"))])
|
||||
(embark . [(20220920 1647) ((emacs (26 1))) "Conveniently act on minibuffer completions" tar ((:commit . "2422d4e86f24b2b4204f2441f953e8407d011a2e") (:authors ("Omar Antolín Camarena" . "omar@matem.unam.mx")) (:maintainer "Omar Antolín Camarena" . "omar@matem.unam.mx") (:keywords "convenience") (:url . "https://github.com/oantolin/embark"))])
|
||||
(embark-consult . [(20220918 100) ((emacs (27 1)) (embark (0 17)) (consult (0 17))) "Consult integration for Embark" single ((:commit . "fc9f13863c168a2c25b22a10c8f6f8a87b662ea7") (:authors ("Omar Antolín Camarena" . "omar@matem.unam.mx")) (:maintainer "Omar Antolín Camarena" . "omar@matem.unam.mx") (:keywords "convenience") (:url . "https://github.com/oantolin/embark"))])
|
||||
(embark-vc . [(20220913 914) ((emacs (26 1)) (embark (0 13)) (forge (0 3)) (s (1 12 0))) "Embark actions for various version control integrations" single ((:commit . "316ed8d6c9e3ec7af069efbf2391a977852f067d") (:authors ("Ellis Kenyő <https://github.com/elken>")) (:maintainer "Ellis Kenyő" . "me@elken.dev") (:keywords "convenience" "matching" "terminals" "tools" "unix" "vc") (:url . "https://github.com/elken/embark-vc"))])
|
||||
(ember-mode . [(20200208 1423) ((cl-lib (0 5))) "Ember navigation mode for emacs" single ((:commit . "a587c423041b2fcb065fd5b6a03b2899b764e462") (:authors ("Aad Versteden" . "madnificent@gmail.com")) (:maintainer "Aad Versteden" . "madnificent@gmail.com") (:keywords "ember" "ember.js" "emberjs"))])
|
||||
(ember-yasnippets . [(20160526 1658) ((yasnippet (0 8 0))) "Snippets for Ember.js development" tar ((:commit . "3b5bd01569646237bf1b540d097e12f9118b67f4") (:authors ("Ron White" . "ronco@costite.com")) (:maintainer "Ron White" . "ronco@costite.com") (:keywords "tools" "abbrev" "languages"))])
|
||||
|
@ -1291,7 +1290,7 @@
|
|||
(epc . [(20140610 534) ((concurrent (0 3 1)) (ctable (0 1 2))) "A RPC stack for the Emacs Lisp" tar ((:commit . "94cd36a3bec752263ac9b1b3a9dd2def329d2af7") (:authors ("SAKURAI Masashi <m.sakurai at kiwanami.net>")) (:maintainer "SAKURAI Masashi <m.sakurai at kiwanami.net>") (:keywords "lisp" "rpc") (:url . "https://github.com/kiwanami/emacs-epc"))])
|
||||
(epic . [(20170210 23) ((htmlize (1 47))) "Evernote Picker for Cocoa Emacs" single ((:commit . "a41826c330eb0ea061d58a08cc861b0c4ac8ec4e") (:authors ("Yoshinari Nomura" . "nom@quickhack.net")) (:maintainer "Yoshinari Nomura" . "nom@quickhack.net") (:keywords "evernote" "applescript") (:url . "https://github.com/yoshinari-nomura/epic"))])
|
||||
(eping . [(20201027 2149) ((emacs (25 1))) "Ping websites to check internet connectivity" tar ((:commit . "004496ee06c0b8ead4a4f49e17109e8eb32eb49d") (:authors ("Sean Hutchings" . "seanhut@yandex.com")) (:maintainer "Sean Hutchings" . "seanhut@yandex.com") (:keywords "comm" "processes" "terminals" "unix") (:url . "https://github.com/sean-hut/eping"))])
|
||||
(epkg . [(20220822 1221) ((emacs (25 1)) (compat (28 1 1 0)) (closql (20210927))) "Browse the Emacsmirror package database" tar ((:commit . "f4dc72d130eae2ad4f479671339d1cdebda62811") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:keywords "tools") (:url . "https://github.com/emacscollective/epkg"))])
|
||||
(epkg . [(20220917 1359) ((emacs (25 1)) (compat (28 1 1 0)) (closql (20210927))) "Browse the Emacsmirror package database" tar ((:commit . "01df3974f5bf08d0984619dbea4994e3863208f6") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:keywords "tools") (:url . "https://github.com/emacscollective/epkg"))])
|
||||
(epkg-marginalia . [(20220511 1942) ((emacs (27 1)) (compat (28 1 1 0)) (epkg (3 3 1)) (marginalia (0 12))) "Show Epkg information in completion annotations" single ((:commit . "ee784211346c7c374accec2bda78788cc68fa641") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:keywords "tools") (:url . "https://github.com/emacscollective/epkg-marginalia"))])
|
||||
(epl . [(20180205 2049) ((cl-lib (0 3))) "Emacs Package Library" single ((:commit . "78ab7a85c08222cd15582a298a364774e3282ce6") (:authors ("Sebastian Wiesner" . "swiesner@lunaryorn.com")) (:maintainer "Johan Andersson" . "johan.rejeep@gmail.com") (:keywords "convenience") (:url . "http://github.com/cask/epl"))])
|
||||
(epm . [(20190509 443) ((emacs (24 3)) (epl (0 8))) "Emacs Package Manager" tar ((:commit . "6375ddbf93c5f25647f6ebb25b54045b3c93a5be") (:authors ("Chunyang Xu" . "xuchunyang.me@gmail.com")) (:maintainer "Chunyang Xu" . "xuchunyang.me@gmail.com") (:url . "https://github.com/xuchunyang/epm"))])
|
||||
|
@ -1368,7 +1367,7 @@
|
|||
(ess-smart-equals . [(20210411 1333) ((emacs (25 1)) (ess (18 10))) "flexible, context-sensitive assignment key for R/S" single ((:commit . "fea9eea4b59c3e9559b379508e3500076ca99ef1") (:authors ("Christopher R. Genovese" . "genovese@cmu.edu")) (:maintainer "Christopher R. Genovese" . "genovese@cmu.edu") (:keywords "r" "s" "ess" "convenience") (:url . "https://github.com/genovese/ess-smart-equals"))])
|
||||
(ess-smart-underscore . [(20190309 101) ((ess (0))) "Ess Smart Underscore" tar ((:commit . "aa871c5b0448515db439ea9bed6a8574e82ddb47") (:authors ("Matthew L. Fidler")) (:maintainer "Matthew Fidler") (:keywords "ess" "underscore") (:url . "http://github.com/mlf176f2/ess-smart-underscore.el"))])
|
||||
(ess-view . [(20181001 1730) ((ess (15)) (s (1 8 0)) (f (0 16 0))) "View R dataframes in a spreadsheet software" single ((:commit . "d4e5a340b7bcc58c434867b97923094bd0680283") (:authors ("Bocci Gionata" . "boccigionata@gmail.com")) (:maintainer "Bocci Gionata" . "boccigionata@gmail.com") (:keywords "extensions" "ess") (:url . "https://github.com/GioBo/ess-view"))])
|
||||
(ess-view-data . [(20220610 1406) ((emacs (26 1)) (ess (18 10 1)) (csv-mode (1 12))) "View Data" single ((:commit . "aab369f84cadebbbca7c3825741d643ebeb6b722") (:authors ("Shuguang Sun" . "shuguang79@qq.com")) (:maintainer "Shuguang Sun" . "shuguang79@qq.com") (:keywords "tools") (:url . "https://github.com/ShuguangSun/ess-view-data"))])
|
||||
(ess-view-data . [(20220920 1548) ((emacs (26 1)) (ess (18 10 1)) (csv-mode (1 12))) "View Data" single ((:commit . "8f00579c79d12f359ce6aff828a7462c421c962d") (:authors ("Shuguang Sun" . "shuguang79@qq.com")) (:maintainer "Shuguang Sun" . "shuguang79@qq.com") (:keywords "tools") (:url . "https://github.com/ShuguangSun/ess-view-data"))])
|
||||
(esup . [(20220202 2335) ((cl-lib (0 5)) (s (1 2)) (emacs (25 1))) "The Emacs StartUp Profiler (ESUP)" tar ((:commit . "4b49c8d599d4cc0fbf994e9e54a9c78e5ab62a5f") (:authors ("Joe Schafer" . "joe@jschaf.com")) (:maintainer "Serghei Iakovlev" . "egrep@protonmail.ch") (:keywords "convenience" "processes") (:url . "https://github.com/jschaf/esup"))])
|
||||
(esxml . [(20220506 759) ((emacs (24 1)) (kv (0 0 5)) (cl-lib (0 5))) "Library for working with xml via esxml and sxml" tar ((:commit . "7ac1fec0e45f12836b301fd9b8e7297434db2f70") (:authors ("Evan Izaksonas-Smith <izak0002 at umn dot edu>")) (:maintainer "Evan Izaksonas-Smith") (:keywords "tools" "lisp" "comm") (:url . "https://github.com/tali713/esxml"))])
|
||||
(eta . [(20210115 1655) ((emacs (25 1)) (ht (2 2)) (dash (2 17))) "standard and multi dispatch key bind" single ((:commit . "651f96c46eeb7ff8a0f0efcfacad5b4d25bfaa4b") (:authors ("Chris Zheng")) (:maintainer "Chris Zheng") (:keywords "convenience" "usability") (:url . "https://www.github.com/zcaudate/eta"))])
|
||||
|
@ -1540,7 +1539,7 @@
|
|||
(filetags . [(20190706 804) ((emacs (24 4))) "Package to manage filetags in filename" single ((:commit . "71667a819e46eb1f6e30e2fa61321acb7c6ccb3d") (:authors ("Max Beutelspacher")) (:maintainer "Max Beutelspacher") (:keywords "convenience" "files") (:url . "https://github.com/DerBeutlin/filetags.el"))])
|
||||
(filetree . [(20220312 1650) ((dash (2 12 0)) (helm (3 7 0)) (seq (2 23)) (transient (0 3 6))) "File tree view/manipulatation package" single ((:commit . "9125e5b7ebbb99b8c007018fcfd5034e7ac6630d") (:authors ("Ketan Patel" . "knpatel401@gmail.com")) (:maintainer "Ketan Patel" . "knpatel401@gmail.com") (:url . "https://github.com/knpatel401/filetree"))])
|
||||
(fill-column-indicator . [(20200806 2239) nil "Graphically indicate the fill column" single ((:commit . "c35f9de072c241699b57bcb46da84bed5af29cfe") (:authors ("Alp Aker" . "alp.tekin.aker@gmail.com")) (:maintainer "Alp Aker" . "alp.tekin.aker@gmail.com") (:keywords "convenience"))])
|
||||
(fill-function-arguments . [(20201223 819) ((emacs (24 4))) "Convert function arguments to/from single line" single ((:commit . "124cde3c17e31f6e3992d38f86f13f6d18711943") (:authors ("David Shepherd" . "davidshepherd7@gmail.com")) (:maintainer "David Shepherd" . "davidshepherd7@gmail.com") (:keywords "convenience") (:url . "https://github.com/davidshepherd7/fill-function-arguments"))])
|
||||
(fill-function-arguments . [(20210617 1538) ((emacs (24 4))) "Convert function arguments to/from single line" single ((:commit . "60a5a3c3004cffa111202b42217d604f63d72e70") (:authors ("David Shepherd" . "davidshepherd7@gmail.com")) (:maintainer "David Shepherd" . "davidshepherd7@gmail.com") (:keywords "convenience") (:url . "https://github.com/davidshepherd7/fill-function-arguments"))])
|
||||
(fill-page . [(20220704 650) ((emacs (24 4))) "Fill buffer so you don't see empty lines at the end" single ((:commit . "916f4ee74d4290575795042ed09a1c81eb66ba8f") (:authors ("Shen, Jen-Chieh" . "jcs090218@gmail.com")) (:maintainer "Shen, Jen-Chieh" . "jcs090218@gmail.com") (:keywords "convenience" "fill" "page" "buffer") (:url . "https://github.com/jcs-elpa/fill-page"))])
|
||||
(fillcode . [(20200524 2226) nil "Fill (wrap) function calls and expressions in source code" single ((:commit . "4d206982b6aaa493d709c84aea206cabb8b4038c") (:authors ("Ryan Barrett" . "fillcode@ryanb.org")) (:maintainer "Ryan Barrett" . "fillcode@ryanb.org") (:url . "https://snarfed.org/fillcode"))])
|
||||
(filldent . [(20220423 2216) ((emacs (24 1))) "Fill or indent" single ((:commit . "2f32e0cf5e27c613f962fa41bf3427bbdc04e6c0") (:authors ("Case Duckworth" . "acdw@acdw.net")) (:maintainer "Case Duckworth" . "acdw@acdw.net") (:url . "https://github.com/duckwork/filldent.el"))])
|
||||
|
@ -1702,7 +1701,7 @@
|
|||
(flycheck-ycmd . [(20181016 618) ((emacs (24)) (dash (2 13 0)) (flycheck (0 22)) (ycmd (1 2)) (let-alist (1 0 5))) "flycheck integration for ycmd" single ((:commit . "ef87d020d3314efbac2e8925c115d0ac5c128c2a") (:authors ("Austin Bingham" . "austin.bingham@gmail.com")) (:maintainer "Austin Bingham" . "austin.bingham@gmail.com") (:url . "https://github.com/abingham/emacs-ycmd"))])
|
||||
(flymake-aspell . [(20220411 826) ((emacs (26 1))) "Aspell checker for flymake" single ((:commit . "5ec0f9b28b1d86eec192b23bc24d9a33dfe51882") (:authors ("Leo Gaskin" . "leo.gaskin@le0.gs")) (:maintainer "Leo Gaskin" . "leo.gaskin@le0.gs") (:keywords "wp" "flymake" "spell" "aspell") (:url . "https://github.com/leotaku/flycheck-aspell"))])
|
||||
(flymake-coffee . [(20170723 146) ((flymake-easy (0 1))) "A flymake handler for coffee script" single ((:commit . "dee295acf30820ed15fe0de17137d50bc27fc80c") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/flymake-coffee"))])
|
||||
(flymake-collection . [(20220612 1340) ((emacs (28 1)) (let-alist (1 0)) (flymake (1 2 1))) "Collection of checkers for flymake, bringing flymake to the level of flycheck" tar ((:commit . "cd2574574bda1f3d94007cdc3b7e0f8007d69716") (:authors ("Mohsin Kaleem" . "mohkale@kisara.moe")) (:maintainer "Mohsin Kaleem" . "mohkale@kisara.moe") (:keywords "language" "tools") (:url . "https://github.com/mohkale/flymake-collection"))])
|
||||
(flymake-collection . [(20220918 1326) ((emacs (28 1)) (let-alist (1 0)) (flymake (1 2 1))) "Collection of checkers for flymake, bringing flymake to the level of flycheck" tar ((:commit . "023472345980c251429046d6a20e85c76f9e928e") (:authors ("Mohsin Kaleem" . "mohkale@kisara.moe")) (:maintainer "Mohsin Kaleem" . "mohkale@kisara.moe") (:keywords "language" "tools") (:url . "https://github.com/mohkale/flymake-collection"))])
|
||||
(flymake-css . [(20170723 146) ((flymake-easy (0 1))) "Flymake support for css using csslint" single ((:commit . "de090163ba289910ceeb61b13368ce42d0f2dfd8") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/flymake-css"))])
|
||||
(flymake-cursor . [(20220506 1458) ((flymake (0 3))) "Show flymake messages in the minibuffer after delay" single ((:commit . "95806594cacddbbc0c3aa2351a6a7cf28e73a8bf") (:authors ("Unknown Original Author") ("Dino Chiesa" . "dpchiesa@hotmail.com") ("Sam Graham <libflymake-emacs BLAHBLAH illusori.co.uk>")) (:maintainer "Sam Graham <libflymake-emacs BLAHBLAH illusori.co.uk>") (:keywords "languages" "mode" "flymake") (:url . "https://github.com/flymake/emacs-flymake-cursor"))])
|
||||
(flymake-diagnostic-at-point . [(20180815 1004) ((emacs (26 1)) (popup (0 5 3))) "Display flymake diagnostics at point" single ((:commit . "379616b1c6f5ebeaf08fbe54ae765008a78b3be7") (:authors ("Ricardo Martins" . "ricardo@scarybox.net")) (:maintainer "Ricardo Martins" . "ricardo@scarybox.net") (:keywords "convenience" "languages" "tools") (:url . "https://github.com/meqif/flymake-diagnostic-at-point"))])
|
||||
|
@ -1726,7 +1725,7 @@
|
|||
(flymake-json . [(20180511 911) ((flymake-easy (0 1))) "A flymake handler for json using jsonlint" single ((:commit . "ae58795f948402e987cda4c15f10354f8ec2d0fd") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/flymake-json"))])
|
||||
(flymake-kondor . [(20211026 501) ((emacs (26 1))) "Linter with clj-kondo" single ((:commit . "784e57f36812a37e323409b90b935ef3c6920a22") (:authors ("https://turbocafe.keybase.pub")) (:maintainer "https://turbocafe.keybase.pub") (:url . "https://github.com/turbo-cafe/flymake-kondor"))])
|
||||
(flymake-ktlint . [(20180831 346) ((emacs (26 1))) "Flymake extension for Ktlint." single ((:commit . "bea8bf350802c06756efd4e6dfba65f31dc41d78") (:maintainer "James Nguyen" . "james@jojojames.com") (:keywords "languages" "ktlint") (:url . "https://github.com/jojojames/flymake-ktlint"))])
|
||||
(flymake-languagetool . [(20220814 550) ((emacs (27 1)) (s (1 9 0))) "Flymake support for LanguageTool" single ((:commit . "b954dde15be113e5b917aebd0f006be1b54a2ee3") (:keywords "convenience" "grammar" "check") (:url . "https://github.com/emacs-languagetool/flymake-languagetool"))])
|
||||
(flymake-languagetool . [(20220922 1914) ((emacs (27 1)) (s (1 9 0))) "Flymake support for LanguageTool" single ((:commit . "f30d3ddb5b27bd700d3965709125940df32217af") (:keywords "convenience" "grammar" "check") (:url . "https://github.com/emacs-languagetool/flymake-languagetool"))])
|
||||
(flymake-less . [(20151111 738) ((less-css-mode (0 15)) (flymake-easy (0 1))) "Flymake handler for LESS stylesheets (lesscss.org)" single ((:commit . "32d3c28a9a5c52b82d1741ff9d715013b6498421") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:keywords "languages"))])
|
||||
(flymake-lua . [(20170129 154) nil "Flymake for Lua" single ((:commit . "dcc32b62a285215898ae774ba63dbda0656f6f53") (:authors (nil . "Sébastien Roccaserra (format \"<%s%s@%s.%s>\" \"s\" \"roccaserra\" \"yahoo\" \"com\")")) (:maintainer nil . "Sébastien Roccaserra (format \"<%s%s@%s.%s>\" \"s\" \"roccaserra\" \"yahoo\" \"com\")") (:keywords "lua"))])
|
||||
(flymake-markdownlint . [(20220320 1208) ((emacs (27 1))) "Markdown linter with markdownlint" single ((:commit . "59e3520668d9394c573e07b7980a2d48d9f6086c") (:authors ("Martin Kjær Jørgensen" . "mkj@gotu.dk")) (:maintainer "Martin Kjær Jørgensen" . "mkj@gotu.dk") (:url . "https://github.com/shaohme/flymake-markdownlint"))])
|
||||
|
@ -1775,7 +1774,7 @@
|
|||
(fontawesome . [(20170305 1356) ((emacs (24 4))) "fontawesome utility" tar ((:commit . "a743f80bfd53767ca9ee32da34c5ca032172a480") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-fontawesome"))])
|
||||
(fontify-face . [(20210503 1956) ((emacs (24))) "Fontify symbols representing faces with that face." single ((:commit . "d1386c88ccc77ccfb40b888ff90d6181325d14f8") (:authors ("Matúš Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matúš Goljer" . "matus.goljer@gmail.com") (:keywords "faces") (:url . "https://github.com/Fuco1/fontify-face"))])
|
||||
(fontsloth . [(20211118 2018) ((f (0 20 0)) (logito (0 1)) (pcache (0 5)) (stream (2 2 5)) (emacs (28 0))) "Elisp otf/ttf font loader/renderer" tar ((:commit . "615dd846cb80701cda4b34bc1dfb43bf695318b6") (:authors ("Jo Gay" . "jo.gay@mailfence.com")) (:maintainer "Jo Gay" . "jo.gay@mailfence.com") (:keywords "data" "font" "rasterization" "ttf" "otf") (:url . "https://github.com/jollm/fontsloth"))])
|
||||
(for . [(20220915 1158) ((emacs (28 1))) "Iteration and sequence" tar ((:commit . "0ea6470632f254e6926c46e8e86e2436520fd7c9") (:authors ("Wing Hei Chan" . "whmunkchan@outlook.com")) (:maintainer "Wing Hei Chan" . "whmunkchan@outlook.com") (:keywords "extensions") (:url . "https://github.com/usaoc/elisp-for"))])
|
||||
(for . [(20220922 1808) ((emacs (28 1))) "Iteration and sequence" tar ((:commit . "389c4b59cb85de2dc96ee0be5826e3f30984c48d") (:authors ("Wing Hei Chan" . "whmunkchan@outlook.com")) (:maintainer "Wing Hei Chan" . "whmunkchan@outlook.com") (:keywords "extensions") (:url . "https://github.com/usaoc/elisp-for"))])
|
||||
(forecast . [(20191004 1850) ((emacs (24 4))) "Weather forecasts" single ((:commit . "5f3e67448cc98fe2875115163849acae4d9e8526") (:authors ("Göktuğ Kayaalp" . "self@gkayaalp.com")) (:maintainer "Göktuğ Kayaalp" . "self@gkayaalp.com") (:keywords "weather" "forecast") (:url . "https://dev.gkayaalp.com/elisp/index.html#forecast-el"))])
|
||||
(foreign-regexp . [(20200325 50) nil "search and replace by foreign regexp." tar ((:commit . "e2dd47f2160cadc194eb156e7c76c3c869e6706e") (:authors ("K-talo Miyazaki <Keitaro dot Miyazaki at gmail dot com>")) (:maintainer "K-talo Miyazaki <Keitaro dot Miyazaki at gmail dot com>") (:keywords "convenience" "emulations" "matching" "tools" "unix" "wp"))])
|
||||
(foreman-mode . [(20170725 1422) ((s (1 9 0)) (dash (2 10 0)) (dash-functional (1 2 0)) (f (0 17 2)) (emacs (24))) "View and manage Procfile-based applications" single ((:commit . "22b3bb13134b617870ed1e888af739f4818be929") (:authors ("ZHOU Feng" . "zf.pascal@gmail.com")) (:maintainer "ZHOU Feng" . "zf.pascal@gmail.com") (:keywords "foreman") (:url . "http://github.com/zweifisch/foreman-mode"))])
|
||||
|
@ -1843,13 +1842,13 @@
|
|||
(geben . [(20220827 105) ((emacs (24 3)) (cl-lib (0 5))) "DBGp protocol frontend, a script debugger" tar ((:commit . "8df1ed2c8ff13b0ca4ef241c95c46f60a5a4fe3c") (:authors ("Matthew Carter" . "m@ahungry.com")) (:maintainer "Matthew Carter" . "m@ahungry.com") (:keywords "c" "comm" "tools") (:url . "https://github.com/ahungry/geben"))])
|
||||
(geben-helm-projectile . [(20160611 59) ((emacs (24)) (geben (0 26)) (helm-projectile (0 13 0))) "Integrate helm-projectile with geben" single ((:commit . "14db489efcb20c5aa9102288c94cec3c5a87c35d") (:authors ("Matthew Carter" . "m@ahungry.com")) (:maintainer "Matthew Carter" . "m@ahungry.com") (:keywords "ahungry" "emacs" "geben" "helm" "projectile" "debug") (:url . "https://github.com/ahungry/geben-helm-projectile"))])
|
||||
(geeknote . [(20220213 612) ((emacs (24))) "Use Evernote in Emacs through geeknote" single ((:commit . "ce2738aebeeda35f9d31027e9b7bad0813b975c3") (:authors ("Evan Dale Aromin")) (:maintainer "Evan Dale Aromin") (:keywords "evernote" "geeknote" "note" "emacs-evernote" "evernote-mode") (:url . "http://github.com/avendael/emacs-geeknote"))])
|
||||
(geiser . [(20220905 2341) ((emacs (25 1)) (transient (0 3)) (project (0 8 1))) "GNU Emacs and Scheme talk to each other" tar ((:commit . "d0a54c942839a561032b4bc41ca65ff4481bd073") (:authors ("Jose Antonio Ortega Ruiz" . "jao@gnu.org")) (:maintainer "Jose Antonio Ortega Ruiz" . "jao@gnu.org") (:keywords "languages" "scheme" "geiser") (:url . "https://gitlab.com/emacs-geiser/"))])
|
||||
(geiser . [(20220917 1659) ((emacs (25 1)) (transient (0 3)) (project (0 8 1))) "GNU Emacs and Scheme talk to each other" tar ((:commit . "486c39cfbdf1789fe493535b7e0ae72ff518e53e") (:authors ("Jose Antonio Ortega Ruiz" . "jao@gnu.org")) (:maintainer "Jose Antonio Ortega Ruiz" . "jao@gnu.org") (:keywords "languages" "scheme" "geiser") (:url . "https://gitlab.com/emacs-geiser/"))])
|
||||
(geiser-chez . [(20211216 2332) ((emacs (26 1)) (geiser (0 19))) "Chez Scheme's implementation of the geiser protocols" tar ((:commit . "48427d4aecc6fed751d266673f1ce2ad57ddbcfc") (:authors ("Peter" . "craven@gmx.net")) (:maintainer "Jose A Ortega Ruiz" . "jao@gnu.org") (:keywords "languages" "chez" "scheme" "geiser") (:url . "https://gitlab.com/emacs-geiser/chez"))])
|
||||
(geiser-chibi . [(20211204 1938) ((emacs (24 4)) (geiser (0 18))) "Chibi Scheme's implementation of the geiser protocols" tar ((:commit . "5a6a5a580ea45cd4974df21629a8d50cbe3d6e99") (:authors ("Peter" . "craven@gmx.net")) (:maintainer "Jose A Ortega Ruiz" . "jao@gnu.org") (:keywords "languages" "chibi" "scheme" "geiser") (:url . "https://gitlab.com/emacs-geiser/chibi"))])
|
||||
(geiser-chicken . [(20220717 1130) ((emacs (24 4)) (geiser (0 19))) "Chicken's implementation of the geiser protocols" tar ((:commit . "a480598b5908c95bc8d3178a48f13e9072a9235b") (:authors ("Daniel Leslie")) (:maintainer "Daniel Leslie") (:keywords "languages" "chicken" "scheme" "geiser") (:url . "https://gitlab.com/emacs-geiser/chicken"))])
|
||||
(geiser-gambit . [(20220208 1356) ((emacs (26 1)) (geiser (0 18))) "Gambit's implementation of the geiser protocols" tar ((:commit . "381d74ca5059b44fe3d8b5daf42214019c6d1a88") (:authors ("Daniel Leslie")) (:maintainer "Jose A Ortega Ruiz" . "jao@gnu.org") (:keywords "languages" "gambit" "scheme" "geiser") (:url . "https://gitlab.com/emacs-geiser/gambit"))])
|
||||
(geiser-gauche . [(20220503 1700) ((emacs (26 1)) (geiser (0 11 2))) "Gauche scheme support for Geiser" tar ((:commit . "8ff743f6416f00751e24aef8b9791501a40f5421") (:authors ("András Simonyi" . "andras.simonyi@gmail.com")) (:maintainer "András Simonyi" . "andras.simonyi@gmail.com") (:keywords "languages" "gauche" "scheme" "geiser") (:url . "https://gitlab.com/emacs-geiser/gauche"))])
|
||||
(geiser-guile . [(20220905 2345) ((emacs (25 1)) (geiser (0 26 1))) "Guile's implementation of the geiser protocols" tar ((:commit . "e540e14db538ed0d116a188569413f5aadd79180") (:authors ("Jose Antonio Ortega Ruiz" . "jao@gnu.org")) (:maintainer "Jose Antonio Ortega Ruiz" . "jao@gnu.org") (:keywords "languages" "guile" "scheme" "geiser") (:url . "https://gitlab.com/emacs-geiser/guile"))])
|
||||
(geiser-guile . [(20220922 52) ((emacs (25 1)) (geiser (0 26 1))) "Guile's implementation of the geiser protocols" tar ((:commit . "8f0ffecb430fffc8e32bb49bdc33becfa6846647") (:authors ("Jose Antonio Ortega Ruiz" . "jao@gnu.org")) (:maintainer "Jose Antonio Ortega Ruiz" . "jao@gnu.org") (:keywords "languages" "guile" "scheme" "geiser") (:url . "https://gitlab.com/emacs-geiser/guile"))])
|
||||
(geiser-kawa . [(20210920 1607) ((emacs (26 1)) (geiser (0 16))) "Kawa scheme support for Geiser" tar ((:commit . "5896b19642923f74f718eb68d447560b2d26d797") (:authors ("spellcard199" . "spellcard199@protonmail.com")) (:maintainer "spellcard199" . "spellcard199@protonmail.com") (:keywords "languages" "kawa" "scheme" "geiser") (:url . "https://gitlab.com/emacs-geiser/kawa"))])
|
||||
(geiser-mit . [(20211204 1935) ((emacs (24 4)) (geiser (0 18))) "MIT/GNU Scheme's implementation of the geiser protocols" tar ((:commit . "4e90e9ae815e89f3540fb9644e6016c663ef5765") (:authors ("Peter" . "craven@gmx.net")) (:maintainer "Jose A Ortega Ruiz" . "jao@gnu.org") (:keywords "languages" "mit" "scheme" "geiser") (:url . "https://gitlab.com/emacs-geiser/mit"))])
|
||||
(geiser-racket . [(20210421 125) ((emacs (26 1)) (geiser (0 16))) "Support for Racket in Geiser" tar ((:commit . "22e56ce80389544d3872cf4beb4008fb514b2218") (:authors ("Jose Antonio Ortega Ruiz" . "jao@gnu.org")) (:maintainer "Jose Antonio Ortega Ruiz" . "jao@gnu.org") (:keywords "languages" "racket" "scheme" "geiser") (:url . "https://gitlab.com/emacs-geiser/racket"))])
|
||||
|
@ -1875,7 +1874,7 @@
|
|||
(gherkin-mode . [(20171224 1353) nil "An emacs major mode for editing gherkin files." single ((:commit . "0313492e7da152f0aa73ddf96c0287ded8f51253") (:authors ("Craig Andera")) (:maintainer "Craig Andera") (:keywords "languages"))])
|
||||
(ghost-blog . [(20171023 742) ((markdown-mode (1 0))) "A package to manage Ghost blog" single ((:commit . "71b358643cc9a2db1bf752281ff94aba9b59e4cc") (:authors ("Javier Aguirre" . "hello@javaguirre.net")) (:maintainer "Javier Aguirre" . "hello@javaguirre.net") (:keywords "ghost" "blog") (:url . "https://github.com/javaguirre/ghost-blog"))])
|
||||
(ghq . [(20210504 902) nil "Ghq interface for emacs" single ((:commit . "582bd6daa505d04c7cc06d6c82ed8aee0624bfbe") (:authors ("Roman Coedo" . "romancoedo@gmail.com")) (:maintainer "Roman Coedo" . "romancoedo@gmail.com") (:keywords "ghq"))])
|
||||
(ghub . [(20220810 1157) ((emacs (25 1)) (compat (28 1 1 0)) (let-alist (1 0 6)) (treepy (0 1 1))) "Client libraries for Git forge APIs." tar ((:commit . "41c5e501e75b6bc02bd581669256fbd6be8746fa") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:keywords "tools") (:url . "https://github.com/magit/ghub"))])
|
||||
(ghub . [(20220918 2022) ((emacs (25 1)) (compat (28 1 1 0)) (let-alist (1 0 6)) (treepy (0 1 1))) "Client libraries for Git forge APIs." tar ((:commit . "f07790b36beb563d5b87be896efbd3b8533f2acf") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:keywords "tools") (:url . "https://github.com/magit/ghub"))])
|
||||
(ghub+ . [(20191229 1748) ((emacs (25)) (ghub (2 0)) (apiwrap (0 5))) "a thick GitHub API client built on ghub" single ((:commit . "b1adef2402d7599911d4dd447a987a0cea04e6fe") (:authors ("Sean Allred" . "code@seanallred.com")) (:maintainer "Sean Allred" . "code@seanallred.com") (:keywords "extensions" "multimedia" "tools") (:url . "https://github.com/vermiculus/ghub-plus"))])
|
||||
(gif-screencast . [(20220714 1300) ((emacs (25 1))) "One-frame-per-action GIF recording" single ((:commit . "adec408e6adab2e8e057fe0ad828749f473bfb83") (:authors ("Pierre Neidhardt" . "mail@ambrevar.xyz")) (:maintainer "Pierre Neidhardt" . "mail@ambrevar.xyz") (:keywords "multimedia" "screencast") (:url . "https://gitlab.com/ambrevar/emacs-gif-screencast"))])
|
||||
(gift-mode . [(20210528 1459) nil "major mode for editing GIFT format quizzes" single ((:commit . "c93354e8fe1173b22f398f17b127875807f15b87") (:authors ("Christophe Rhodes" . "christophe@rhodes.io")) (:maintainer "Christophe Rhodes" . "christophe@rhodes.io") (:url . "https://github.com/csrhodes/gift-mode"))])
|
||||
|
@ -1890,24 +1889,24 @@
|
|||
(git-backup-ivy . [(20220816 30) ((ivy (0 12 0)) (git-backup (0 0 1)) (emacs (25 1))) "An ivy interface to git-backup" single ((:commit . "ad6434bcd540de8e3cd9953035680f0a745040d5") (:authors ("Sebastian Wålinder" . "s.walinder@gmail.com")) (:maintainer "Sebastian Wålinder" . "s.walinder@gmail.com") (:keywords "backup" "convenience" "files" "tools" "vc") (:url . "https://github.com/walseb/git-backup-ivy"))])
|
||||
(git-blamed . [(20161028 1926) nil "Minor mode for incremental blame for Git" single ((:commit . "cef196abf398e2dd11f775d1e6cd8690567408aa") (:keywords "git" "version control" "release management"))])
|
||||
(git-command . [(20191028 333) ((term-run (0 1 4)) (with-editor (2 3 1))) "A Git Command-Line interface" single ((:commit . "a773d40da39dfb1c6ecf2b0758aa370ddea8f06d") (:authors ("10sr <8slashes+el [at] gmail [dot] com>")) (:maintainer "10sr <8slashes+el [at] gmail [dot] com>") (:keywords "utility" "git") (:url . "https://github.com/10sr/git-command-el"))])
|
||||
(git-commit . [(20220803 2341) ((emacs (25 1)) (compat (28 1 1 2)) (transient (20210920)) (with-editor (20211001))) "Edit Git commit messages." tar ((:commit . "ac7fae6a9893b55ad01942d9ea5a571d44426665") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li") ("Sebastian Wiesner" . "lunaryorn@gmail.com") ("Florian Ragwitz" . "rafl@debian.org") ("Marius Vollmer" . "marius.vollmer@gmail.com")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:keywords "git" "tools" "vc") (:url . "https://github.com/magit/magit"))])
|
||||
(git-commit . [(20220918 2032) ((emacs (25 1)) (compat (28 1 1 2)) (transient (20210920)) (with-editor (20211001))) "Edit Git commit messages." tar ((:commit . "ec17d4138c8efd6d9c98c66629ff73411320243c") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li") ("Sebastian Wiesner" . "lunaryorn@gmail.com") ("Florian Ragwitz" . "rafl@debian.org") ("Marius Vollmer" . "marius.vollmer@gmail.com")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:keywords "git" "tools" "vc") (:url . "https://github.com/magit/magit"))])
|
||||
(git-commit-insert-issue . [(20210107 2018) ((emacs (25)) (projectile (0)) (s (0)) (ghub (0)) (bitbucket (0))) "Get issues list when typing \"Fixes #\"" single ((:commit . "6cfb8b4b5b23ae881cf3d005da4d7f60d91cd2cd") (:authors ("Vindarel")) (:maintainer "Vindarel") (:keywords "tools" "vc" "github" "gitlab" "bitbucket" "commit" "issues") (:url . "https://gitlab.com/emacs-stuff/git-commit-insert-issue/"))])
|
||||
(git-dwim . [(20170126 1214) nil "Context-aware git commands such as branch handling" single ((:commit . "485c732130686c2f28a026e385366006435394b9") (:authors ("rubikitch" . "rubikitch@ruby-lang.org")) (:maintainer "rubikitch" . "rubikitch@ruby-lang.org") (:keywords "git" "tools" "convenience") (:url . "http://www.emacswiki.org/cgi-bin/wiki/download/git-dwim.el"))])
|
||||
(git-grep . [(20200920 1751) ((projectile (0 10 0))) "Search tools using git grep" single ((:commit . "12ff6045e9b6aa42f98abd4ddc44d670268a0849") (:authors ("Sam Kleinman")) (:maintainer "tychoish" . "garen@tychoish.com") (:keywords "matching" "files" "grep" "search" "using" "git-grep") (:url . "https://github.com/tychoish/git-grep.el"))])
|
||||
(git-gutter . [(20220423 1704) ((emacs (25 1))) "Port of Sublime Text plugin GitGutter" single ((:commit . "a50672b62a678922b8c0cab95225d520f493439b") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Neil Okamoto" . "neil.okamoto+melpa@gmail.com") (:url . "https://github.com/emacsorphanage/git-gutter"))])
|
||||
(git-gutter . [(20220922 256) ((emacs (25 1))) "Port of Sublime Text plugin GitGutter" single ((:commit . "ec28e85d237065cb3c28db4b66d129da6d309f9c") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Neil Okamoto" . "neil.okamoto+melpa@gmail.com") (:url . "https://github.com/emacsorphanage/git-gutter"))])
|
||||
(git-gutter+ . [(20151204 1723) ((git-commit (0)) (dash (0))) "Manage Git hunks straight from the buffer" single ((:commit . "b7726997806d9a2da9fe84ff00ecf21d62b6f975") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:keywords "git" "vc") (:url . "https://github.com/nonsequitur/git-gutter-plus"))])
|
||||
(git-gutter-fringe . [(20211003 2228) ((git-gutter (0 88)) (fringe-helper (0 1 1)) (cl-lib (0 5)) (emacs (24))) "Fringe version of git-gutter.el" single ((:commit . "648cb5b57faec55711803cdc9434e55a733c3eba") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Neil Okamoto" . "neil.okamoto+melpa@gmail.com") (:url . "https://github.com/emacsorphanage/git-gutter-fringe"))])
|
||||
(git-gutter-fringe+ . [(20140729 1103) ((git-gutter+ (0 1)) (fringe-helper (1 0 1))) "Fringe version of git-gutter+.el" single ((:commit . "3857d486e5b3eca9281fba1c76756cb39a9f9866") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/nonsequitur/git-gutter-fringe-plus"))])
|
||||
(git-identity . [(20220721 912) ((emacs (25 1)) (dash (2 10)) (hydra (0 14)) (f (0 20))) "Identity management for (ma)git" single ((:commit . "f920916a92fad0c551cd0739e48fc09d8709bd8d") (:authors ("Akira Komamura" . "akira.komamura@gmail.com")) (:maintainer "Akira Komamura" . "akira.komamura@gmail.com") (:keywords "git" "vc" "convenience") (:url . "https://github.com/akirak/git-identity.el"))])
|
||||
(git-io . [(20180317 1752) ((emacs (24 4))) "git.io integration" single ((:commit . "48753acba73b48b997bb678fb5e2a938ae63b5d6") (:authors ("Tejas Bubane" . "tejasbubane@gmail.com")) (:maintainer "Tejas Bubane" . "tejasbubane@gmail.com") (:keywords "convenience" "files") (:url . "https://github.com/tejasbubane/emacs-git-io"))])
|
||||
(git-lens . [(20220623 722) ((emacs (24 4))) "Show new, deleted or modified files in branch" single ((:commit . "8beec55b2c43bdf64172fb2539de97f1dd39a6d0") (:authors ("Peter Stiernström" . "peter@stiernstrom.se")) (:maintainer "Peter Stiernström" . "peter@stiernstrom.se") (:keywords "vc" "convenience") (:url . "https://github.com/pidu/git-lens"))])
|
||||
(git-lens . [(20220922 710) ((emacs (24 4))) "Show new, deleted or modified files in branch" single ((:commit . "347832fbdb75a0930aa3eef628ec0069a335f3b7") (:authors ("Peter Stiernström" . "peter@stiernstrom.se")) (:maintainer "Peter Stiernström" . "peter@stiernstrom.se") (:keywords "vc" "convenience") (:url . "https://github.com/pidu/git-lens"))])
|
||||
(git-link . [(20220613 135) ((emacs (24 3))) "Get the GitHub/Bitbucket/GitLab URL for a buffer location" single ((:commit . "fe2e8aa92dd8f1a9fb3f471658701487ff21f22b") (:authors ("Skye Shaw" . "skye.shaw@gmail.com")) (:maintainer "Skye Shaw" . "skye.shaw@gmail.com") (:keywords "git" "vc" "github" "bitbucket" "gitlab" "sourcehut" "aws" "azure" "convenience") (:url . "http://github.com/sshaw/git-link"))])
|
||||
(git-messenger . [(20201202 1637) ((emacs (24 3)) (popup (0 5 3))) "Popup last commit of current line" single ((:commit . "fb9a049ac3b5fba7369ef1f027b97881f1e377ec") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Neil Okamoto") (:url . "https://github.com/emacsorphanage/git-messenger"))])
|
||||
(git-modes . [(20220422 1611) ((emacs (25 1))) "Major modes for editing Git configuration files" tar ((:commit . "845d333732ad9c8d65a28f12af645c6682db6f45") (:authors ("Sebastian Wiesner" . "lunaryorn@gmail.com") ("Rüdiger Sonderfeld" . "ruediger@c-plusplus.net") ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:keywords "convenience" "vc" "git") (:url . "https://github.com/magit/git-modes"))])
|
||||
(git-msg-prefix . [(20191031 1304) ((emacs (24)) (s (1 10 0)) (dash (2 9 0))) "Insert commit message prefix (issue number)" single ((:commit . "43f6b31c1090371260a2f15b2117a7666920bee7") (:authors ("Raimon Grau" . "raimonster@gmail.com")) (:maintainer "Raimon Grau" . "raimonster@gmail.com") (:keywords "vc" "tools") (:url . "http://github.com/kidd/git-msg-prefix.el"))])
|
||||
(git-ps1-mode . [(20200113 704) nil "Global minor-mode to print __git_ps1 in mode-line" single ((:commit . "6762a309bd593d26258dfbf43e7bc21254a70fbf") (:authors ("10sr <8slashes+el [at] gmail [dot] com>")) (:maintainer "10sr <8slashes+el [at] gmail [dot] com>") (:keywords "utility" "mode-line" "git") (:url . "https://github.com/10sr/git-ps1-mode-el"))])
|
||||
(git-time-metric . [(20181116 2011) nil "Provide function to record time with gtm ( git time metric )" single ((:commit . "287108ed1d6885dc795eb3bad4476aa08c626186") (:authors ("Anton Sivolapov" . "anton.sivolapov@gmail.com")) (:maintainer "Anton Sivolapov" . "anton.sivolapov@gmail.com") (:keywords "tools" "gtm" "productivity" "time") (:url . "https://github.com/c301/gtm-emacs-plugin"))])
|
||||
(git-timemachine . [(20220324 1057) ((emacs (24 3)) (transient (0 1 0))) "Walk through git revisions of a file" single ((:commit . "ca09684e94767cc0b2339b77b778b4de4f9d104f") (:authors ("Peter Stiernström" . "peter@stiernstrom.se")) (:maintainer "Peter Stiernström" . "peter@stiernstrom.se") (:keywords "vc") (:url . "https://gitlab.com/pidu/git-timemachine"))])
|
||||
(git-timemachine . [(20220920 828) ((emacs (24 3)) (transient (0 1 0))) "Walk through git revisions of a file" single ((:commit . "77a3e7239fd8c194eee4b35f66f63bffdcd66ce6") (:authors ("Peter Stiernström" . "peter@stiernstrom.se")) (:maintainer "Peter Stiernström" . "peter@stiernstrom.se") (:keywords "vc") (:url . "https://gitlab.com/pidu/git-timemachine"))])
|
||||
(git-walktree . [(20191101 302) ((emacs (26 1)) (git (0 1 1)) (cl-lib (0 5))) "Browse Git tree and blob objects" tar ((:commit . "a1a5490b89d193724ec637818baf2d8edf97c638") (:authors ("10sr <8.slashes [at] gmail [dot] com>")) (:maintainer "10sr <8.slashes [at] gmail [dot] com>") (:keywords "vc" "utility" "git") (:url . "https://github.com/10sr/git-walktree-el"))])
|
||||
(git-wip-timemachine . [(20150408 1006) ((s (1 9 0))) "Walk through git-wip revisions of a file" single ((:commit . "1ce257e6c25117b01f1b899aca21e07eae084d40") (:authors ("Tim Krones" . "t.krones@gmx.net")) (:maintainer "Tim Krones" . "t.krones@gmx.net") (:keywords "git") (:url . "https://github.com/itsjeyd/git-wip-timemachine"))])
|
||||
(gitconfig . [(20130718 935) nil "Emacs lisp interface to work with git-config variables" single ((:commit . "6c313a39e20702ddcebc12d146f69db1ce668901") (:authors ("Samuel Tonini")) (:maintainer "Samuel Tonini") (:keywords "git" "gitconfig" "git-config"))])
|
||||
|
@ -1929,7 +1928,7 @@
|
|||
(gitlab . [(20180312 1647) ((s (1 9 0)) (dash (2 9 0)) (pkg-info (0 5 0)) (request (0 1 0))) "Emacs client for Gitlab" tar ((:commit . "68318aca3206d50701039c9aae39734ca29a49f9") (:authors ("Nicolas Lamirault" . "nicolas.lamirault@gmail.com")) (:maintainer "Nicolas Lamirault" . "nicolas.lamirault@gmail.com") (:keywords "gitlab") (:url . "https://github.com/nlamirault/emacs-gitlab"))])
|
||||
(gitlab-ci-mode . [(20191022 2017) ((emacs (25 1)) (yaml-mode (0 0 12))) "Mode for editing GitLab CI files" single ((:commit . "c861dc5fa17d380d5c3aca99dc3bbec5eee623bc") (:authors ("Joe Wreschnig")) (:maintainer "Joe Wreschnig") (:keywords "tools" "vc") (:url . "https://gitlab.com/joewreschnig/gitlab-ci-mode/"))])
|
||||
(gitlab-ci-mode-flycheck . [(20190323 1829) ((emacs (25)) (flycheck (31)) (gitlab-ci-mode (1))) "Flycheck support for ‘gitlab-ci-mode’" single ((:commit . "eba81cfb7224fd1fa4e4da90d11729cc7ea12f72") (:authors ("Joe Wreschnig")) (:maintainer "Joe Wreschnig") (:keywords "tools" "vc" "convenience") (:url . "https://gitlab.com/joewreschnig/gitlab-ci-mode-flycheck/"))])
|
||||
(gitlab-pipeline . [(20220619 1215) ((emacs (25 1)) (ghub (3 3 0))) "Get infomation about Gitlab pipelines" single ((:commit . "595e699aeab6c28582f309a047c42a0498873a8e") (:authors ("Giap Tran" . "txgvnn@gmail.com")) (:maintainer "Giap Tran" . "txgvnn@gmail.com") (:keywords "comm" "tools" "git") (:url . "https://github.com/TxGVNN/gitlab-pipeline"))])
|
||||
(gitlab-pipeline . [(20220921 1044) ((emacs (25 1)) (ghub (3 3 0))) "Get infomation about Gitlab pipelines" single ((:commit . "8cc070c156d6e45583074ef4eb110b8d1511b0c4") (:authors ("Giap Tran" . "txgvnn@gmail.com")) (:maintainer "Giap Tran" . "txgvnn@gmail.com") (:keywords "comm" "tools" "git") (:url . "https://github.com/TxGVNN/gitlab-pipeline"))])
|
||||
(gitlab-snip-helm . [(20200427 2014) ((emacs (25)) (dash (2 12 0)) (helm (3 2))) "Gitlab snippets api helm package" single ((:commit . "5fe0a66642da6f4e7ba9e1e3a96572c7f1876e37") (:authors ("Fermin MF" . "fmfs@posteo.net")) (:maintainer "Fermin MF" . "fmfs@posteo.net") (:keywords "tools" "files" "convenience") (:url . "https://gitlab.com/sasanidas/gitlab-snip-helm"))])
|
||||
(gitolite-clone . [(20160609 2355) ((dash (2 10 0)) (s (1 9 0)) (pcache (0 3 1)) (emacs (24))) "Clone gitolite repositories from a completing list" single ((:commit . "d8a4c2875c984e51137c980b5773f42703602721") (:authors ("Ivan Malison" . "IvanMalison@gmail.com")) (:maintainer "Ivan Malison" . "IvanMalison@gmail.com") (:keywords "gitolite" "clone" "git") (:url . "https://github.com/IvanMalison/gitolite-clone"))])
|
||||
(gitpatch . [(20170722 410) ((emacs (24 3))) "Git-format patch toolkit" single ((:commit . "577d5adf65c8133caa325c10e89e1e2fc323c907") (:authors ("Feng Shu" . "tumashu@163.com")) (:maintainer "Feng Shu" . "tumashu@163.com") (:keywords "convenience") (:url . "https://github.com/tumashu/gitpatch"))])
|
||||
|
@ -2002,7 +2001,7 @@
|
|||
(google-contacts . [(20201012 1056) ((oauth2 (0 10)) (cl-lib (0 5))) "Support for Google Contacts in Emacs" tar ((:commit . "8923c238fe0906184d2254b33ba72792ed12cd47") (:authors ("Julien Danjou" . "julien@danjou.info")) (:maintainer "Julien Danjou" . "julien@danjou.info") (:keywords "comm") (:url . "https://github.com/jd/google-contacts.el"))])
|
||||
(google-maps . [(20181121 1532) ((emacs (24 3))) "Access Google Maps from Emacs" tar ((:commit . "2eb16ff609f5a9f8d02c15238a111fbb7db6c146") (:authors ("Julien Danjou" . "julien@danjou.info")) (:maintainer "Julien Danjou" . "julien@danjou.info") (:keywords "comm") (:url . "https://julien.danjou.info/projects/emacs-packages#google-maps"))])
|
||||
(google-this . [(20170810 1215) ((emacs (24 1))) "A set of functions and bindings to google under point." single ((:commit . "8a2e3ca5da6a8c89bfe99a21486c6c7db125dc84") (:authors ("Artur Malabarba" . "bruce.connor.am@gmail.com")) (:maintainer "Artur Malabarba" . "bruce.connor.am@gmail.com") (:keywords "convenience" "hypermedia") (:url . "http://github.com/Malabarba/emacs-google-this"))])
|
||||
(google-translate . [(20220912 16) ((emacs (24 3)) (popup (0 5 8))) "Emacs interface to Google Translate" tar ((:commit . "f2b4534d4554c2103ed8084353c94c9cdc5cb24c") (:authors ("Oleksandr Manzyuk" . "manzyuk@gmail.com")) (:maintainer "Andrey Tykhonov" . "atykhonov@gmail.com") (:keywords "convenience") (:url . "https://github.com/atykhonov/google-translate"))])
|
||||
(google-translate . [(20220920 35) ((emacs (24 3)) (popup (0 5 8))) "Emacs interface to Google Translate" tar ((:commit . "f893b680311fedb1dd735bf5b3be7af1ed1583be") (:authors ("Oleksandr Manzyuk" . "manzyuk@gmail.com")) (:maintainer "Andrey Tykhonov" . "atykhonov@gmail.com") (:keywords "convenience") (:url . "https://github.com/atykhonov/google-translate"))])
|
||||
(goose-theme . [(20160828 1245) ((emacs (24 1))) "A gray color theme" single ((:commit . "acd017b50ab25a75fd1331eb3de66467e2042e9c") (:authors ("Stephen Whipple" . "shw@wicdmedia.org")) (:maintainer "Stephen Whipple" . "shw@wicdmedia.org") (:url . "https://github.com/thwg/goose-theme"))])
|
||||
(gore-mode . [(20151123 1927) ((go-mode (1 0 0))) "Simple mode for gore, a command-line evaluator for golang." single ((:commit . "94d7f3e99104e06167967c98fdc201049c433c2d") (:authors ("Sergey Pashaev" . "sergey.pashaev@gmail.com")) (:maintainer "Sergey Pashaev" . "sergey.pashaev@gmail.com") (:keywords "go" "repl"))])
|
||||
(gorepl-mode . [(20170905 945) ((emacs (24)) (s (1 11 0)) (f (0 19 0)) (hydra (0 13 0))) "Go REPL Interactive Development in top of Gore" single ((:commit . "bbd27f6a0a77f484e2a3f082d70dc69da63ae52a") (:authors ("Manuel Alonso" . "manuteali@gmail.com")) (:maintainer "Manuel Alonso" . "manuteali@gmail.com") (:keywords "languages" "go" "golang" "gorepl") (:url . "http://www.github.com/manute/gorepl-mode"))])
|
||||
|
@ -2088,7 +2087,7 @@
|
|||
(haskell-emacs . [(20160904 2026) nil "Write emacs extensions in haskell" tar ((:commit . "a2c6a079175904689eed7c6c200754bfa85d1ed9") (:authors ("Florian Knupfer")) (:maintainer "Florian Knupfer") (:keywords "haskell" "emacs" "ffi") (:url . "https://github.com/knupfer/haskell-emacs"))])
|
||||
(haskell-emacs-base . [(20150714 1559) ((haskell-emacs (2 4 0))) "Haskell functions from Prelude" tar ((:commit . "7f91f65254902b8ff04fdb679bc569b2f6a51637") (:authors ("Florian Knupfer")) (:maintainer "Florian Knupfer") (:keywords "haskell" "emacs" "ffi") (:url . "https://github.com/knupfer/haskell-emacs/modules/base"))])
|
||||
(haskell-emacs-text . [(20150713 1416) ((haskell-emacs (2 4 0))) "Haskell functions from Data.Text" tar ((:commit . "cc240612740fc3fd6e3c3d8cdfe486a89954f5d1") (:authors ("Florian Knupfer")) (:maintainer "Florian Knupfer") (:keywords "haskell" "emacs" "ffi") (:url . "https://github.com/knupfer/haskell-emacs/modules/text"))])
|
||||
(haskell-mode . [(20220529 1859) ((emacs (25 1))) "A Haskell editing mode" tar ((:commit . "5a9f8072c7b9168f0a8409adf9d62a3e4ad4ea3d") (:authors ("1992 Simon Marlow") ("1997-1998 Graeme E Moss" . "gem@cs.york.ac.uk") ("Tommy Thorn" . "thorn@irisa.fr") ("2001-2002 Reuben Thomas (>=v1.4)") ("2003 Dave Love" . "fx@gnu.org") ("2016 Arthur Fayzrakhmanov")) (:maintainer "1992 Simon Marlow") (:keywords "faces" "files" "haskell") (:url . "https://github.com/haskell/haskell-mode"))])
|
||||
(haskell-mode . [(20220917 1353) ((emacs (25 1))) "A Haskell editing mode" tar ((:commit . "90503413f4cdb0ed26871e39c4e6e2552b57f7db") (:authors ("1992 Simon Marlow") ("1997-1998 Graeme E Moss" . "gem@cs.york.ac.uk") ("Tommy Thorn" . "thorn@irisa.fr") ("2001-2002 Reuben Thomas (>=v1.4)") ("2003 Dave Love" . "fx@gnu.org") ("2016 Arthur Fayzrakhmanov")) (:maintainer "1992 Simon Marlow") (:keywords "faces" "files" "haskell") (:url . "https://github.com/haskell/haskell-mode"))])
|
||||
(haskell-snippets . [(20210228 344) ((cl-lib (0 5)) (yasnippet (0 8 0))) "Yasnippets for Haskell" tar ((:commit . "1c29c4a68ce89848b8d371c6510d1de3b586c8b3") (:authors ("Luke Hoersten" . "luke@hoersten.org")) (:maintainer "Luke Hoersten" . "luke@hoersten.org") (:keywords "snippets" "haskell") (:url . "https://github.com/haskell/haskell-snippets"))])
|
||||
(haskell-tab-indent . [(20200513 1950) nil "tab-based indentation for haskell-mode" single ((:commit . "e332562b67b2611ef3f97d6a0bc395c6aeb70c7b") (:authors ("Sean Whitton" . "spwhitton@spwhitton.name")) (:maintainer "Sean Whitton" . "spwhitton@spwhitton.name") (:keywords "indentation" "haskell") (:url . "https://spwhitton.name/tech/code/haskell-tab-indent/"))])
|
||||
(hasklig-mode . [(20211017 1730) ((emacs (25))) "Hasklig ligatures" single ((:commit . "4b73d61f4ef1c73733f7201fbf0b49ba9e3395b6") (:authors ("Daniel Mendler")) (:maintainer "Daniel Mendler") (:url . "https://github.com/minad/hasklig-mode"))])
|
||||
|
@ -2102,7 +2101,7 @@
|
|||
(hcl-mode . [(20200315 2129) ((emacs (24 3))) "Major mode for Hashicorp" single ((:commit . "c3d1158ad1a64f06aa8986ab1cdea6b7fbdd4bf7") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/emacs-hcl-mode"))])
|
||||
(headlong . [(20150417 1526) nil "reckless completion" single ((:commit . "f6830f87f236eee88263cb6976125f72422abe72") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:keywords "completion") (:url . "https://github.com/abo-abo/headlong"))])
|
||||
(heaven-and-hell . [(20190713 1830) ((emacs (24 4))) "easy toggle light/dark themes" single ((:commit . "e1febfd60d060c110a1e43c5f093cd8537251308") (:authors ("Valentin Ignatev" . "valentignatev@gmail.com")) (:maintainer "Valentin Ignatev" . "valentignatev@gmail.com") (:keywords "faces") (:url . "https://github.com/valignatev/heaven-and-hell"))])
|
||||
(helm . [(20220914 1117) ((helm-core (3 8 7)) (popup (0 5 3))) "Helm is an Emacs incremental and narrowing framework" tar ((:commit . "c3cd741a27247334c5f25998442c377cd3b36c78") (:authors ("Thierry Volpiatto" . "thievol@posteo.net")) (:maintainer "Thierry Volpiatto" . "thievol@posteo.net") (:url . "https://emacs-helm.github.io/helm/"))])
|
||||
(helm . [(20220921 610) ((helm-core (3 8 7)) (popup (0 5 3))) "Helm is an Emacs incremental and narrowing framework" tar ((:commit . "92f10d12e779433cc9cfae938be12552bc101c10") (:authors ("Thierry Volpiatto" . "thievol@posteo.net")) (:maintainer "Thierry Volpiatto" . "thievol@posteo.net") (:url . "https://emacs-helm.github.io/helm/"))])
|
||||
(helm-R . [(20120820 14) ((helm (20120517)) (ess (20120509))) "helm-sources and some utilities for GNU R." single ((:commit . "b0eb9d5f6a483a9dbe6eb6cf1f2024d4f5938bc2") (:authors ("myuhe <yuhei.maeda_at_gmail.com>")) (:maintainer "myuhe") (:keywords "convenience") (:url . "https://github.com/myuhe/helm-R.el"))])
|
||||
(helm-ack . [(20141030 1226) ((helm (1 0)) (cl-lib (0 5))) "Ack command with helm interface" single ((:commit . "5982f3cb6ec9f460ebbe06ec0ce7b3590bca3118") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-helm-ack"))])
|
||||
(helm-ad . [(20151209 1015) ((dash (2 8 0)) (helm (1 6 2))) "helm source for Active Directory" single ((:commit . "8ac044705d8620ee354a9cfa8cc1b865e83c0d55") (:authors ("Takahiro Noda" . "takahiro.noda+github@gmail.com")) (:maintainer "Takahiro Noda" . "takahiro.noda+github@gmail.com") (:keywords "comm"))])
|
||||
|
@ -2137,7 +2136,7 @@
|
|||
(helm-codesearch . [(20190412 1153) ((emacs (25 1)) (s (1 11 0)) (dash (2 12 0)) (helm (1 7 7)) (cl-lib (0 5))) "helm interface for codesearch" single ((:commit . "72f1d1de746115ab7e861178b49fa3c0b6b58d90") (:authors ("Youngjoo Lee" . "youngker@gmail.com")) (:maintainer "Youngjoo Lee" . "youngker@gmail.com") (:keywords "tools"))])
|
||||
(helm-commandlinefu . [(20150611 545) ((emacs (24 1)) (helm (1 7 0)) (json (1 3)) (let-alist (1 0 3))) "Search and browse commandlinefu.com from helm" single ((:commit . "9ee7e018c5db23ae9c8d1c8fa969876f15b7280d") (:authors ("Chunyang Xu" . "xuchunyang56@gmail.com")) (:maintainer "Chunyang Xu" . "xuchunyang56@gmail.com") (:keywords "commandlinefu.com") (:url . "https://github.com/xuchunyang/helm-commandlinefu"))])
|
||||
(helm-company . [(20190812 1429) ((helm (1 5 9)) (company (0 6 13))) "Helm interface for company-mode" single ((:commit . "6eb5c2d730a60e394e005b47c1db018697094dde") (:authors ("Yasuyuki Oka" . "yasuyk@gmail.com")) (:maintainer "Daniel Ralston" . "Sodel-the-Vociferous@users.noreply.github.com") (:url . "https://github.com/Sodel-the-Vociferous/helm-company"))])
|
||||
(helm-core . [(20220831 2005) ((emacs (25 1)) (async (1 9 4))) "Development files for Helm" tar ((:commit . "1855ee17c0b3db18bbc9a329c91ce8fa27e825e5") (:authors ("Thierry Volpiatto" . "thievol@posteo.net")) (:maintainer "Thierry Volpiatto" . "thievol@posteo.net") (:url . "https://emacs-helm.github.io/helm/"))])
|
||||
(helm-core . [(20220920 1150) ((emacs (25 1)) (async (1 9 4))) "Development files for Helm" tar ((:commit . "0c12230b4f90118990a3449cbc220b3e13417387") (:authors ("Thierry Volpiatto" . "thievol@posteo.net")) (:maintainer "Thierry Volpiatto" . "thievol@posteo.net") (:url . "https://emacs-helm.github.io/helm/"))])
|
||||
(helm-cscope . [(20190615 41) ((xcscope (1 0)) (helm (1 6 7)) (cl-lib (0 5)) (emacs (24 1))) "Helm interface for xcscope.el." single ((:commit . "af1d9e7f4460a88d7400b5a74d5da68084089ac1") (:authors ("alpha22jp" . "alpha22jp@gmail.com")) (:maintainer "alpha22jp" . "alpha22jp@gmail.com") (:keywords "cscope" "helm") (:url . "https://github.com/alpha22jp/helm-cscope.el"))])
|
||||
(helm-css-scss . [(20191230 1549) ((emacs (24 3)) (helm (1 0))) "CSS/SCSS/LESS Selectors with helm interface" single ((:commit . "48b996f73af1fef8d6e88a1c545d98f8c50b0cf3") (:authors ("Shingo Fukuyama - http://fukuyama.co")) (:maintainer "Shingo Fukuyama - http://fukuyama.co") (:keywords "convenience" "scss" "css" "less" "selector" "helm") (:url . "https://github.com/ShingoFukuyama/helm-css-scss"))])
|
||||
(helm-ctest . [(20220721 400) ((s (1 9 0)) (dash (2 11 0)) (helm-core (3 6 0))) "Run ctest from within emacs" single ((:commit . "48edc9fa862219da34feb423c06c33d8f6d43722") (:authors ("Dan LaManna" . "me@danlamanna.com")) (:maintainer "Dan LaManna" . "me@danlamanna.com") (:keywords "helm" "ctest"))])
|
||||
|
@ -2214,7 +2213,7 @@
|
|||
(helm-migemo . [(20151010 356) ((emacs (24 4)) (helm-core (1 7 8)) (migemo (1 9)) (cl-lib (0 5))) "Migemo plug-in for helm" single ((:commit . "66c6a19d07c6a385daefd2090d0709d26b608b4e") (:authors ("rubikitch" . "rubikitch@ruby-lang.org")) (:maintainer "Yuhei Maeda <yuhei.maeda_at_gmail.com>") (:keywords "matching" "convenience" "tools" "i18n") (:url . "https://github.com/emacs-jp/helm-migemo"))])
|
||||
(helm-mode-manager . [(20210108 2330) ((helm (1 5 3))) "Select and toggle major and minor modes with helm" single ((:commit . "7df8ed3ddd46a0402838b748d317c01454346164") (:authors ("istib")) (:maintainer "istib") (:url . "https://github.com/istib/helm-mode-manager"))])
|
||||
(helm-mt . [(20160918 452) ((emacs (24)) (helm (0 0)) (multi-term (0 0)) (cl-lib (0 5))) "helm multi-term management" single ((:commit . "d2bff4100118483bc398c56d0ff095294209265b") (:authors ("Didier Deshommes" . "dfdeshom@gmail.com")) (:maintainer "Didier Deshommes" . "dfdeshom@gmail.com") (:keywords "helm" "multi-term") (:url . "https://github.com/dfdeshom/helm-mt"))])
|
||||
(helm-mu . [(20220825 1025) ((helm (1 5 5))) "Helm sources for searching emails and contacts." single ((:commit . "85714ac9a9db6619035c40f5b5a2cae948561b01") (:authors ("Titus von der Malsburg" . "malsburg@posteo.de")) (:maintainer "Titus von der Malsburg" . "malsburg@posteo.de") (:url . "https://github.com/emacs-helm/helm-mu"))])
|
||||
(helm-mu . [(20220920 1200) ((helm (1 5 5))) "Helm sources for searching emails and contacts." single ((:commit . "b9865a3a8ba8af572fcf12d975ea04dc9437c1a2") (:authors ("Titus von der Malsburg" . "malsburg@posteo.de")) (:maintainer "Titus von der Malsburg" . "malsburg@posteo.de") (:url . "https://github.com/emacs-helm/helm-mu"))])
|
||||
(helm-navi . [(20201220 1823) ((emacs (24 4)) (helm (1 9 4)) (helm-org (1 0)) (navi-mode (2 0)) (s (1 10 0))) "Helm for navi-mode" single ((:commit . "c5666cc171288d1fa892900ee66fba2a1c892c81") (:authors ("Adam Porter" . "adam@alphapapa.net")) (:maintainer "Adam Porter" . "adam@alphapapa.net") (:keywords "navigation" "outlines") (:url . "http://github.com/emacs-helm/helm-navi"))])
|
||||
(helm-nixos-options . [(20151013 2309) ((nixos-options (0 0 1)) (helm (1 5 6))) "Helm Interface for nixos-options" single ((:commit . "f7709bb007ebafb4d6b32778c7764e2c44e0420d") (:authors ("Diego Berrocal" . "cestdiego@gmail.com") ("Travis B. Hartwell" . "nafai@travishartwell.net")) (:maintainer "Diego Berrocal" . "cestdiego@gmail.com") (:keywords "unix") (:url . "http://www.github.com/travisbhartwell/nix-emacs/"))])
|
||||
(helm-notmuch . [(20190320 1048) ((helm (1 9 3)) (notmuch (0 21))) "Search emails with Notmuch and Helm" single ((:commit . "97a01497e079a7b6505987e9feba6b603bbec288") (:authors ("Chunyang Xu" . "mail@xuchunyang.me")) (:maintainer "Chunyang Xu" . "mail@xuchunyang.me") (:keywords "mail") (:url . "https://github.com/emacs-helm/helm-notmuch"))])
|
||||
|
@ -2244,7 +2243,7 @@
|
|||
(helm-rails . [(20130424 1519) ((helm (1 5 1)) (inflections (1 1))) "Helm extension for Rails projects." single ((:commit . "723c2a27f3843570ec1039e3c526953e48b4ed40") (:authors ("Adam Sokolnicki" . "adam.sokolnicki@gmail.com")) (:maintainer "Adam Sokolnicki" . "adam.sokolnicki@gmail.com") (:keywords "helm" "rails" "git") (:url . "https://github.com/asok/helm-rails"))])
|
||||
(helm-rb . [(20131123 1639) ((helm (1 0)) (helm-ag-r (20131123))) "Search Ruby's method by ag and display helm" tar ((:commit . "4949d646420a9849af234dacdd8eb34a77c662fd") (:authors ("Yuta Yamada <cokesboy\"at\"gmail.com>")) (:maintainer "Yuta Yamada <cokesboy\"at\"gmail.com>") (:keywords "searching" "ruby") (:url . "https://github.com/yuutayamada/helm-rb"))])
|
||||
(helm-rdefs . [(20161130 536) ((emacs (24)) (helm (1 6 4))) "rdefs with helm interface" single ((:commit . "cd3a6b3af3015ee58ef30cb7c81c79ebe5fc867b") (:authors ("Hiroshi Saito" . "monodie@gmail.com")) (:maintainer "Hiroshi Saito" . "monodie@gmail.com") (:keywords "matching" "tools") (:url . "https://github.com/saidie/helm-rdefs"))])
|
||||
(helm-recoll . [(20200805 1235) ((helm (3 3)) (emacs (24 4))) "helm interface for the recoll desktop search tool." single ((:commit . "c021a3b5e8c010bdad062cceb80fb49788f89e9f") (:authors ("Thierry Volpiatto <thierry.volpiatto at gmail.com>")) (:maintainer "Thierry Volpiatto <thierry.volpiatto at gmail.com>") (:keywords "convenience") (:url . "https://github.com/emacs-helm/helm-recoll"))])
|
||||
(helm-recoll . [(20220920 1206) ((helm (3 3)) (emacs (24 4))) "helm interface for the recoll desktop search tool." single ((:commit . "c054047ecca360c3e02281d8d0c021f654e63f37") (:authors ("Thierry Volpiatto <thierry.volpiatto at gmail.com>")) (:maintainer "Thierry Volpiatto <thierry.volpiatto at gmail.com>") (:keywords "convenience") (:url . "https://github.com/emacs-helm/helm-recoll"))])
|
||||
(helm-rg . [(20200721 725) ((emacs (25)) (cl-lib (0 5)) (dash (2 13 0)) (helm (2 8 8))) "a helm interface to ripgrep" single ((:commit . "ee0a3c09da0c843715344919400ab0a0190cc9dc") (:authors ("Danny McClanahan")) (:maintainer "Danny McClanahan") (:keywords "find" "file" "files" "helm" "fast" "rg" "ripgrep" "grep" "search" "match") (:url . "https://github.com/cosmicexplorer/helm-rg"))])
|
||||
(helm-rhythmbox . [(20160524 1158) ((helm (1 5 0)) (cl-lib (0 5))) "control Rhythmbox's play queue via Helm" single ((:commit . "c92e1ded34ddd4e62e7e9a558259c232e05193fa") (:authors ("Thomas Winant" . "dewinant@gmail.com")) (:maintainer "Thomas Winant" . "dewinant@gmail.com") (:url . "https://github.com/mrBliss/helm-rhythmbox"))])
|
||||
(helm-robe . [(20151209 355) ((helm (1 7 7))) "completing read function for robe" single ((:commit . "7348d0bc0251b51979554ea678b970fd01c0efe9") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-helm-robe"))])
|
||||
|
@ -2289,7 +2288,7 @@
|
|||
(helm-zhihu-daily . [(20160625 1145) ((helm (1 0)) (cl-lib (0 5)) (emacs (24 4))) "Helm interface for 知乎日报 (http://daily.zhihu.com)" single ((:commit . "be27dcc6be1eb97663b65581a9a5c0fc81cfaba7") (:authors ("Chunyang Xu" . "xuchunyang56@gmail.com")) (:maintainer "Chunyang Xu" . "xuchunyang56@gmail.com") (:url . "https://github.com/xuchunyang/helm-zhihu-daily"))])
|
||||
(help-find . [(20220513 1028) ((emacs (25 2)) (dash (2 12))) "Additional help functions for working with keymaps" single ((:commit . "6dd61bbb6290e06e30c002c011da71e348ac045f") (:authors ("Duncan Burke" . "duncankburke@gmail.com")) (:maintainer "Duncan Burke" . "duncankburke@gmail.com") (:keywords "help") (:url . "https://github.com/duncanburke/help-find"))])
|
||||
(help-find-org-mode . [(20181204 234) ((emacs (24 4))) "Advise help to find org source over tangled code" single ((:commit . "c6fa2c8a8e9381572190010a9fa01f2be78f2790") (:authors ("Eric Crosson" . "eric.s.crosson@utexas.com")) (:maintainer "Eric Crosson" . "eric.s.crosson@utexas.com") (:keywords "convenience") (:url . "https://github.com/EricCrosson/help-find-org-mode"))])
|
||||
(helpful . [(20220830 456) ((emacs (25)) (dash (2 18 0)) (s (1 11 0)) (f (0 20 0)) (elisp-refs (1 2))) "A better *help* buffer" single ((:commit . "6633d82c6e3c921c486ec284cb6542f33278b605") (:authors ("Wilfred Hughes" . "me@wilfred.me.uk")) (:maintainer "Wilfred Hughes" . "me@wilfred.me.uk") (:keywords "help" "lisp") (:url . "https://github.com/Wilfred/helpful"))])
|
||||
(helpful . [(20220919 540) ((emacs (25)) (dash (2 18 0)) (s (1 11 0)) (f (0 20 0)) (elisp-refs (1 2))) "A better *help* buffer" single ((:commit . "db1e15b3783c83d9781a546f37b900ad53576659") (:authors ("Wilfred Hughes" . "me@wilfred.me.uk")) (:maintainer "Wilfred Hughes" . "me@wilfred.me.uk") (:keywords "help" "lisp") (:url . "https://github.com/Wilfred/helpful"))])
|
||||
(hemera-theme . [(20180916 924) ((emacs (24))) "Light theme" single ((:commit . "b67c902b210b37b00cac68726822404543147ba8") (:authors ("Guido Schmidt")) (:maintainer "Guido Schmidt" . "guido.schmidt.2912@gmail.com") (:keywords "themes" "light-theme") (:url . "https://github.com/GuidoSchmidt/emacs-hemera-theme"))])
|
||||
(hemisu-theme . [(20130508 1844) nil "Hemisu for Emacs." tar ((:commit . "ae593ac58e6bffef97467259c1d1472840385e84") (:authors ("Andrzej Sliwa")) (:maintainer "Andrzej Sliwa") (:url . "http://github/anrzejsliwa/django-theme"))])
|
||||
(hercules . [(20200420 747) ((emacs (24 4)) (which-key (3 3 2))) "An auto-magical, which-key-based hydra banisher." single ((:commit . "557da39878d0637395fdded91243b340c37eff7b") (:authors ("Uros Perisic")) (:maintainer "Uros Perisic") (:keywords "convenience") (:url . "https://gitlab.com/jjzmajic/hercules"))])
|
||||
|
@ -2384,7 +2383,7 @@
|
|||
(hungry-delete . [(20210409 1643) nil "hungry delete minor mode" single ((:commit . "d919e555e5c13a2edf4570f3ceec84f0ade71657") (:authors ("Nathaniel Flath" . "flat0103@gmail.com")) (:maintainer "Nathaniel Flath" . "flat0103@gmail.com") (:url . "http://github.com/nflath/hungry-delete"))])
|
||||
(hy-mode . [(20211016 2011) ((dash (2 18 0)) (s (1 11 0)) (emacs (24))) "Major mode for Hylang" tar ((:commit . "df814865a1faa8414dacdbb35b2a9029995312ec") (:keywords "languages" "lisp" "python") (:url . "http://github.com/hylang/hy-mode"))])
|
||||
(hyai . [(20170301 1447) ((cl-lib (0 5)) (emacs (24))) "Haskell Yet Another Indentation" single ((:commit . "e9a7e945fed12d8e664e898cf8b434b0376d5d80") (:authors ("Iku Iwasa" . "iku.iwasa@gmail.com")) (:maintainer "Iku Iwasa" . "iku.iwasa@gmail.com") (:url . "https://github.com/iquiw/hyai"))])
|
||||
(hybrid-reverse-theme . [(20220913 1954) ((emacs (24 1))) "Emacs theme with material color scheme" single ((:commit . "7315c279a63872b5da370eba11d1846961b08cb0") (:authors ("Riyyi")) (:maintainer "Riyyi") (:keywords "faces" "theme") (:url . "https://github.com/riyyi/emacs-hybrid-reverse"))])
|
||||
(hybrid-reverse-theme . [(20220921 1345) ((emacs (24 1))) "Emacs theme with material color scheme" single ((:commit . "5c60e7428d3c135c5f027d09f4474ed776f80d8d") (:authors ("Riyyi")) (:maintainer "Riyyi") (:keywords "faces" "theme") (:url . "https://github.com/riyyi/emacs-hybrid-reverse"))])
|
||||
(hydandata-light-theme . [(20190809 1925) nil "A light color theme that is easy on your eyes" single ((:commit . "812ffa4bee3163098ef66ee4506feed45018be4e") (:authors ("David Chkhikvadze" . "david@chkhd.net")) (:maintainer "David Chkhikvadze" . "david@chkhd.net") (:keywords "color-theme" "theme") (:url . "https://github.com/chkhd/hydandata-light-theme"))])
|
||||
(hyde . [(20160508 308) nil "Major mode to help create and manage Jekyll blogs" tar ((:commit . "a8cd6ed00ecd8d7de0ded2f4867015b412b15b76"))])
|
||||
(hydra . [(20220910 1206) ((cl-lib (0 5)) (lv (0))) "Make bindings that stick around." tar ((:commit . "317e1de33086637579a7aeb60f77ed0405bf359b") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:keywords "bindings") (:url . "https://github.com/abo-abo/hydra"))])
|
||||
|
@ -2635,7 +2634,7 @@
|
|||
(jsfmt . [(20180920 1008) nil "Interface to jsfmt command for javascript files" single ((:commit . "ca141a135c7700eaedef92561d334e1fb7dc28a1") (:authors ("Brett Langdon" . "brett@blangdon.com")) (:maintainer "Brett Langdon" . "brett@blangdon.com") (:url . "https://github.com/brettlangdon/jsfmt.el"))])
|
||||
(json-mode . [(20211011 630) ((json-snatcher (1 0 0)) (emacs (24 4))) "Major mode for editing JSON files." single ((:commit . "eedb4560034f795a7950fa07016bd4347c368873") (:authors ("Josh Johnston")) (:maintainer "Josh Johnston") (:url . "https://github.com/joshwnj/json-mode"))])
|
||||
(json-navigator . [(20191213 755) ((emacs (25 1)) (hierarchy (0 6 0))) "View and navigate JSON structures" single ((:commit . "afd902e0b5cde37fad4786515a695d17f1625286") (:authors ("Damien Cassou" . "damien@cassou.me")) (:maintainer "Damien Cassou" . "damien@cassou.me") (:url . "https://github.com/DamienCassou/json-navigator"))])
|
||||
(json-par . [(20220815 1101) ((emacs (24 4)) (json-mode (1 7 0))) "Minor mode for structural editing of JSON" tar ((:commit . "4f1fffd2595be3e3af0b5fb1e0c499ecee698273") (:authors ("taku0 (http://github.com/taku0)")) (:maintainer "taku0 (http://github.com/taku0)") (:keywords "abbrev" "convenience" "files") (:url . "https://github.com/taku0/json-par"))])
|
||||
(json-par . [(20220919 652) ((emacs (24 4)) (json-mode (1 7 0))) "Minor mode for structural editing of JSON" tar ((:commit . "2dd58826eef67a656efd9897f65d306b5c3eb8b0") (:authors ("taku0" . "mxxouy6x3m_github@tatapa.org")) (:maintainer "taku0" . "mxxouy6x3m_github@tatapa.org") (:keywords "abbrev" "convenience" "files") (:url . "https://github.com/taku0/json-par"))])
|
||||
(json-process-client . [(20210525 733) ((emacs (25 1))) "Interact with a TCP process using JSON" single ((:commit . "373b2cc7e3d26dc00594e0b2c1bb66815aad2826") (:authors ("Nicolas Petton" . "nicolas@petton.fr") ("Damien Cassou" . "damien@cassou.me")) (:maintainer "Nicolas Petton" . "nicolas@petton.fr") (:url . "https://gitlab.petton.fr/nico/json-process-client"))])
|
||||
(json-reformat . [(20220905 2342) ((emacs (24 3))) "Reformatting tool for JSON" single ((:commit . "e9999b1f1fc933c02ff44f4136602b6a45ed59c6") (:authors ("Wataru MIYAGUNI" . "gonngo@gmail.com")) (:maintainer "Wataru MIYAGUNI" . "gonngo@gmail.com") (:keywords "json") (:url . "https://github.com/gongo/json-reformat"))])
|
||||
(json-rpc . [(20200417 1629) ((emacs (24 1)) (cl-lib (0 5))) "JSON-RPC library" single ((:commit . "81a5a520072e20d18aeab2aac4d66c046b031e56") (:authors ("Christopher Wellons" . "wellons@nullprogram.com")) (:maintainer "Christopher Wellons" . "wellons@nullprogram.com") (:url . "https://github.com/skeeto/elisp-json-rpc"))])
|
||||
|
@ -2736,7 +2735,7 @@
|
|||
(kubernetes-evil . [(20220625 534) ((kubernetes (0 18 0)) (evil (1 2 12))) "Kubernetes keybindings for evil-mode." single ((:commit . "b155d64aa72bd1175770db3518a67a347caa36dd") (:authors ("Chris Barrett" . "chris+emacs@walrus.cool")) (:maintainer "Chris Barrett" . "chris+emacs@walrus.cool"))])
|
||||
(kubernetes-helm . [(20210902 2232) ((yaml-mode (0 0 13)) (emacs (25 3))) "extension for helm, the package manager for kubernetes" single ((:commit . "95cf92600436f67bd7bfe650763e68635f5ecc8e") (:authors ("Adrien Brochard")) (:maintainer "Adrien Brochard") (:keywords "kubernetes" "helm" "k8s" "tools" "processes") (:url . "https://github.com/abrochard/kubernetes-helm"))])
|
||||
(kubernetes-tramp . [(20181228 922) ((emacs (24)) (cl-lib (0 5))) "TRAMP integration for kubernetes containers" single ((:commit . "8713571b66940f8f3f496b55baa23cdf1df7a869") (:authors ("Giovanni Ruggiero" . "giovanni.ruggiero+github@gmail.com")) (:maintainer "Giovanni Ruggiero" . "giovanni.ruggiero+github@gmail.com") (:keywords "kubernetes" "convenience") (:url . "https://github.com/gruggiero/kubernetes-tramp"))])
|
||||
(kurecolor . [(20220909 1442) ((emacs (24 4)) (s (1 12))) "color editing goodies" tar ((:commit . "8af900180c888b3b6c2137d4e9457991e62bd6ae") (:authors ("Jason Milkins" . "jasonm23@gmail.com")) (:maintainer "Jason Milkins" . "jasonm23@gmail.com") (:url . "https://github.com/emacsfodder/kurecolor.el"))])
|
||||
(kurecolor . [(20220919 313) ((emacs (24 4)) (s (1 12))) "color editing goodies" tar ((:commit . "190756dc0046358e172cff7e9f94db23634a4485") (:authors ("Jason Milkins" . "jasonm23@gmail.com")) (:maintainer "Jason Milkins" . "jasonm23@gmail.com") (:url . "https://github.com/emacsfodder/kurecolor.el"))])
|
||||
(kuronami-theme . [(20220602 339) ((emacs (24 1))) "A deep blue theme with cool autumnal colors" single ((:commit . "a51d5ff3883bd94d0a181bb5d60f747190eda4f6") (:authors ("Eric Chung <>")) (:maintainer "Eric Chung <>") (:url . "https://github.com/inj0h/kuronami"))])
|
||||
(kv . [(20140108 1534) nil "key/value data structure functions" single ((:commit . "721148475bce38a70e0b678ba8aa923652e8900e") (:authors ("Nic Ferrier" . "nferrier@ferrier.me.uk")) (:maintainer "Nic Ferrier" . "nferrier@ferrier.me.uk") (:keywords "lisp"))])
|
||||
(kwin . [(20220120 2125) nil "communicatewith the KWin window manager" single ((:commit . "20fac6508e5535a26df783ba05f04d1800b7382c") (:authors ("Simon Hafner")) (:maintainer "Simon Hafner") (:url . "http://github.com/reactormonk/kwin-minor-mode"))])
|
||||
|
@ -2753,7 +2752,7 @@
|
|||
(langtool . [(20200529 230) ((cl-lib (0 3))) "Grammar check utility using LanguageTool" single ((:commit . "8276eccc5587bc12fd205ee58a7a982f0a136e41") (:authors ("Masahiro Hayashi" . "mhayashi1120@gmail.com")) (:maintainer "Masahiro Hayashi" . "mhayashi1120@gmail.com") (:keywords "docs") (:url . "https://github.com/mhayashi1120/Emacs-langtool"))])
|
||||
(langtool-ignore-fonts . [(20210526 2340) ((emacs (25 1)) (langtool (2 2 1))) "Force langtool to ignore certain fonts" single ((:commit . "a5d04c3840c293f1b11db3c28e7210d0d20f53af") (:authors ("Christopher Lloyd" . "cjl8zf@virginia.edu")) (:maintainer "Christopher Lloyd" . "cjl8zf@virginia.edu") (:url . "https://github.com/cjl8zf/langtool-ignore-fonts"))])
|
||||
(language-detection . [(20161123 1813) ((emacs (24)) (cl-lib (0 5))) "Automatic language detection from code snippets" single ((:commit . "38f5d294870678efc6ccf94ce6e8175a58f93025") (:authors ("Andreas Jansson" . "andreas@jansson.me.uk")) (:maintainer "Andreas Jansson" . "andreas@jansson.me.uk") (:url . "https://github.com/andreasjansson/language-detection.el"))])
|
||||
(language-id . [(20220810 1351) ((emacs (24 3))) "Library to work with programming language identifiers" single ((:commit . "ba65c244ac931dbf9e8569f080dedffed88fb029") (:authors ("Lassi Kortela" . "lassi@lassi.io")) (:maintainer "Lassi Kortela" . "lassi@lassi.io") (:keywords "languages" "util") (:url . "https://github.com/lassik/emacs-language-id"))])
|
||||
(language-id . [(20220919 759) ((emacs (24 3))) "Library to work with programming language identifiers" single ((:commit . "f3dff989e44153abf6a9745904be09bad417ec0a") (:authors ("Lassi Kortela" . "lassi@lassi.io")) (:maintainer "Lassi Kortela" . "lassi@lassi.io") (:keywords "languages" "util") (:url . "https://github.com/lassik/emacs-language-id"))])
|
||||
(languagetool . [(20220514 309) ((emacs (27 0)) (request (0 3 2))) "LanguageTool integration for grammar and spell check" tar ((:commit . "503d18bd3c074fe8f495cfa6a34ccca1ef6961ce") (:authors ("Joar Buitrago" . "jebuitragoc@unal.edu.co")) (:maintainer "Joar Buitrago" . "jebuitragoc@unal.edu.co") (:keywords "grammar" "text" "docs" "tools" "convenience" "checker") (:url . "https://github.com/PillFall/Emacs-LanguageTool.el"))])
|
||||
(lastfm . [(20211018 838) ((emacs (26 1)) (request (0 3 0)) (anaphora (1 0 4)) (memoize (1 1)) (elquery (0 1 0)) (s (1 12 0))) "Last.fm API for Emacs Lisp" single ((:commit . "b4b19f0aadc5087febeeb3f59944a89c4cdcf325") (:authors ("Mihai Olteanu" . "mihai_olteanu@fastmail.fm")) (:maintainer "Mihai Olteanu" . "mihai_olteanu@fastmail.fm") (:keywords "multimedia" "api") (:url . "https://github.com/mihaiolteanu/lastfm.el/"))])
|
||||
(lastpass . [(20201229 2109) ((emacs (24 4)) (seq (1 9)) (cl-lib (0 5))) "LastPass command wrapper" single ((:commit . "2366de7824b6c5f8e9ec6811d219dc06794e8630") (:authors ("Petter Storvik")) (:maintainer "Petter Storvik") (:keywords "extensions" "processes" "lpass" "lastpass") (:url . "https://github.com/storvik/emacs-lastpass"))])
|
||||
|
@ -2771,7 +2770,7 @@
|
|||
(lavenderless-theme . [(20201222 1627) ((colorless-themes (0 2))) "A mostly colorless version of lavender-theme" single ((:commit . "1b2a507b3b7f9559c944af8fc7531a60b38ae0c3") (:authors ("Thomas Letan" . "lthms@soap.coffee")) (:maintainer "Thomas Letan" . "lthms@soap.coffee") (:keywords "faces" "theme") (:url . "https://git.sr.ht/~lthms/colorless-themes.el"))])
|
||||
(lcb-mode . [(20160816 540) ((emacs (24))) "LiveCode Builder major mode" single ((:commit . "e5b0b6ca6c5feeb2502d66a760ddf5bb590d04c4") (:authors ("Peter TB Brett" . "peter@peter-b.co.uk")) (:maintainer "Peter TB Brett" . "peter@peter-b.co.uk") (:keywords "languages") (:url . "https://github.com/peter-b/lcb-mode"))])
|
||||
(lcr . [(20210102 853) ((dash (2 12 0)) (emacs (25 1))) "lightweight coroutines" single ((:commit . "493424dab9f374c5521dca8714481b70cb3c3cfd") (:authors ("Jean-Philippe Bernardy" . "jeanphilippe.bernardy@gmail.com")) (:maintainer "Jean-Philippe Bernardy" . "jeanphilippe.bernardy@gmail.com") (:keywords "tools") (:url . "https://github.com/jyp/lcr"))])
|
||||
(le-thesaurus . [(20220519 610) ((request (0 3 2)) (emacs (24 4))) "Query thesaurus.com for synonyms of a given word" single ((:commit . "790ffaaf3d24b82fbf05376daa6787717c5b1f7d") (:url . "https://github.com/AnselmC/le-thesaurus.el"))])
|
||||
(le-thesaurus . [(20220920 1924) ((request (0 3 2)) (emacs (24 4))) "Query thesaurus.com for synonyms of a given word" single ((:commit . "4dbe929aeaef7d38e75d52844cf9022244fc94ae") (:url . "https://github.com/AnselmC/le-thesaurus.el"))])
|
||||
(leaf . [(20211226 1633) ((emacs (24 1))) "Simplify your init.el configuration, extended use-package" single ((:commit . "9eb18e8c9c375aa0158fbd06ea906bfbf54408fe") (:authors ("Naoya Yamashita" . "conao3@gmail.com")) (:maintainer "Naoya Yamashita" . "conao3@gmail.com") (:keywords "lisp" "settings") (:url . "https://github.com/conao3/leaf.el"))])
|
||||
(leaf-convert . [(20210816 1103) ((emacs (26 1)) (leaf (3 6 0)) (leaf-keywords (1 1 0)) (ppp (2 1))) "Convert many format to leaf format" single ((:commit . "da86654f1021445cc42c1a5a9195f15097352209") (:authors ("Naoya Yamashita" . "conao3@gmail.com")) (:maintainer "Naoya Yamashita" . "conao3@gmail.com") (:keywords "tools") (:url . "https://github.com/conao3/leaf-convert.el"))])
|
||||
(leaf-defaults . [(20210301 118) ((emacs (26 1)) (leaf (4 1)) (leaf-keywords (1 1))) "Awesome leaf config collections" tar ((:commit . "96ce39d4f16736f1e654e24eac16a2603976c724") (:authors ("Naoya Yamashita" . "conao3@gmail.com")) (:maintainer "Naoya Yamashita" . "conao3@gmail.com") (:keywords "convenience") (:url . "https://github.com/conao3/leaf-defaults.el"))])
|
||||
|
@ -2793,7 +2792,7 @@
|
|||
(less-css-mode . [(20161001 453) nil "Major mode for editing LESS CSS files (lesscss.org)" single ((:commit . "59bf174c4e9f053ec2a7ef8c8a8198490390f6fb") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:keywords "less" "css" "mode") (:url . "https://github.com/purcell/less-css-mode"))])
|
||||
(letcheck . [(20160202 1948) nil "Check the erroneous assignments in let forms" single ((:commit . "edf188ca2f85349e971b83f164c6484264e79426") (:authors ("Matus Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matus Goljer" . "matus.goljer@gmail.com") (:keywords "convenience") (:url . "https://github.com/Fuco1/letcheck"))])
|
||||
(letterbox-mode . [(20170702 125) ((emacs (24 3))) "hide sensitive text on a buffer" single ((:commit . "88c67a51d67216d569a28e8423200883fde096dd") (:authors ("Fernando Leboran" . "f.leboran@gmail.com")) (:maintainer "Fernando Leboran" . "f.leboran@gmail.com") (:keywords "password" "convenience") (:url . "http://github.com/pacha64/letterbox-mode"))])
|
||||
(leuven-theme . [(20220203 947) nil "Awesome Emacs color theme on white background" tar ((:commit . "d7dd9188a65e2ab7cf73c2e575a830baae38cb0c") (:authors ("Fabrice Niessen <(concat \"fniessen\" at-sign \"pirilampo.org\")>")) (:maintainer "Fabrice Niessen <(concat \"fniessen\" at-sign \"pirilampo.org\")>") (:keywords "color" "theme") (:url . "https://github.com/fniessen/emacs-leuven-theme"))])
|
||||
(leuven-theme . [(20220922 1545) nil "Awesome Emacs color theme on white background" tar ((:commit . "1dbd4bda6045080d5a293d56e686af5b4f7fdd9d") (:authors ("Fabrice Niessen <(concat \"fniessen\" at-sign \"pirilampo.org\")>")) (:maintainer "Fabrice Niessen <(concat \"fniessen\" at-sign \"pirilampo.org\")>") (:keywords "color" "theme") (:url . "https://github.com/fniessen/emacs-leuven-theme"))])
|
||||
(levenshtein . [(20090830 1040) nil "Edit distance between two strings." single ((:commit . "070925197ebf6b704e6e00c4f2d2ec783f3df38c") (:authors ("Aaron S. Hawley <ashawley at uvm dot edu>,") ("Art Taylor")) (:maintainer "Aaron S. Hawley <ashawley at uvm dot edu>,") (:keywords "lisp"))])
|
||||
(lexbind-mode . [(20141027 1429) nil "Puts the value of lexical-binding in the mode line" single ((:commit . "fa0a6848c1cfd3fbf45db43dc2deef16377d887d") (:authors ("Andrew Kirkpatrick" . "ubermonk@gmail.com")) (:maintainer "Andrew Kirkpatrick" . "ubermonk@gmail.com") (:keywords "convenience" "lisp") (:url . "https://github.com/spacebat/lexbind-mode"))])
|
||||
(lexic . [(20220501 1432) ((emacs (26 3))) "A major mode to find out more about words" single ((:commit . "f9b3de4d9c2dd1ce5022383e1a504b87bf7d1b09") (:authors ("pluskid" . "pluskid@gmail.com") ("gucong" . "gucong43216@gmail.com") ("TEC" . "tec@tecosaur.com")) (:maintainer "TEC" . "tec@tecosaur.com") (:url . "https://github.com/tecosaur/lexic"))])
|
||||
|
@ -2808,7 +2807,7 @@
|
|||
(librera-sync . [(20210827 2300) ((emacs (26 1)) (f (0 17))) "Sync document's position with Librera Reader for Android" tar ((:commit . "b6b97adc08c26b1595249e1c129793100f4ca26e") (:authors ("Dmitriy Pshonko" . "jumper047@gmail.com")) (:maintainer "Dmitriy Pshonko" . "jumper047@gmail.com") (:keywords "multimedia" "sync") (:url . "https://github.com/jumper047/librera-sync"))])
|
||||
(lice . [(20220312 2215) nil "License And Header Template" tar ((:commit . "0b69ba54057146f1473e85c0760029e584e3eb13") (:authors ("Taiki Sugawara" . "buzz.taiki@gmail.com")) (:maintainer "Taiki Sugawara" . "buzz.taiki@gmail.com") (:keywords "template" "license" "tools") (:url . "https://github.com/buzztaiki/lice-el"))])
|
||||
(license-snippets . [(20201117 1619) ((emacs (26)) (yasnippet (0 8 0))) "LICENSE templates for yasnippet" tar ((:commit . "a89988b81604fd23c43746912215770a4b861989") (:authors ("Seong Yong-ju" . "sei40kr@gmail.com")) (:maintainer "Seong Yong-ju" . "sei40kr@gmail.com") (:keywords "tools") (:url . "https://github.com/sei40kr/license-snippets"))])
|
||||
(license-templates . [(20220704 654) ((emacs (24 3)) (request (0 3 0))) "Create LICENSE using GitHub API" single ((:commit . "de70c234f6183f6c0c15c1297d03f5f4f44bd8b0") (:authors ("Shen, Jen-Chieh" . "jcs090218@gmail.com")) (:maintainer "Shen, Jen-Chieh" . "jcs090218@gmail.com") (:keywords "convenience" "license" "api" "template") (:url . "https://github.com/jcs-elpa/license-templates"))])
|
||||
(license-templates . [(20220918 813) ((emacs (24 3)) (request (0 3 0))) "Create LICENSE using GitHub API" single ((:commit . "cebb88350916e0c808668c06c40d55eb1c9d0b2e") (:authors ("Shen, Jen-Chieh" . "jcs090218@gmail.com")) (:maintainer "Shen, Jen-Chieh" . "jcs090218@gmail.com") (:keywords "convenience" "license" "api" "template") (:url . "https://github.com/jcs-elpa/license-templates"))])
|
||||
(ligature . [(20220808 1225) ((emacs (28))) "Display typographical ligatures in major modes" single ((:commit . "89cbd67a815f61e5001f19d64d6ec1771e867742") (:authors ("Mickey Petersen" . "mickey@masteringemacs.org")) (:maintainer "Mickey Petersen" . "mickey@masteringemacs.org") (:keywords "tools" "faces") (:url . "https://www.github.com/mickeynp/ligature.el"))])
|
||||
(light-soap-theme . [(20150607 1445) ((emacs (24))) "Emacs 24 theme with a light background." single ((:commit . "76a787bd40c6b567ae68ced7f5d9f9f10725e00d"))])
|
||||
(ligo-mode . [(20220908 1957) ((emacs (27 1))) "A major mode for editing LIGO source code" single ((:commit . "70575ac1c92f0a29096f6f2a1f01c59cefdc4b3e") (:authors ("LigoLang SASU")) (:maintainer "LigoLang SASU") (:keywords "languages") (:url . "https://gitlab.com/ligolang/ligo/-/tree/dev/tools/emacs"))])
|
||||
|
@ -2846,7 +2845,7 @@
|
|||
(literate-calc-mode . [(20220215 1814) ((emacs (25 1)) (s (1 12 0))) "Inline results from calc" single ((:commit . "f5133e65d8ffdab918cdfc269ac0c067a0de5e9b") (:authors ("Robin Schroer")) (:maintainer "Robin Schroer") (:keywords "calc" "languages" "tools") (:url . "https://github.com/sulami/literate-calc-mode.el"))])
|
||||
(literate-coffee-mode . [(20170211 1515) ((coffee-mode (0 5 0))) "major-mode for Literate CoffeeScript" single ((:commit . "ef34c3a5b813ef078d44c29887761950ab6821c7") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-literate-coffee-mode"))])
|
||||
(literate-elisp . [(20220626 932) ((emacs (26 1))) "Load Emacs Lisp code blocks from Org files" single ((:commit . "bbc4befbf13f63b92cb1d780501482ae5bd8285b") (:authors ("Jingtao Xu" . "jingtaozf@gmail.com")) (:maintainer "Jingtao Xu" . "jingtaozf@gmail.com") (:keywords "lisp" "docs" "extensions" "tools") (:url . "https://github.com/jingtaozf/literate-elisp"))])
|
||||
(litex-mode . [(20220909 146) ((emacs (24 4))) "Minor mode for converting lisp to LaTeX" tar ((:commit . "ad98a61e71e76ab3caf2a2eb36886716d28e8c23") (:authors ("Gaurav Atreya" . "allmanpride@gmail.com")) (:maintainer "Gaurav Atreya" . "allmanpride@gmail.com") (:keywords "calculator" "lisp" "latex") (:url . "https://github.com/Atreyagaurav/litex-mode"))])
|
||||
(litex-mode . [(20220918 2348) ((emacs (24 4)) (units-mode (0 1 1))) "Minor mode for converting lisp to LaTeX" tar ((:commit . "966aa25af6b4268d20d35f1338753bfa93df01d4") (:authors ("Gaurav Atreya" . "allmanpride@gmail.com")) (:maintainer "Gaurav Atreya" . "allmanpride@gmail.com") (:keywords "calculator" "lisp" "latex") (:url . "https://github.com/Atreyagaurav/litex-mode"))])
|
||||
(live-code-talks . [(20180907 1647) ((emacs (24)) (cl-lib (0 5)) (narrowed-page-navigation (0 1))) "Support for slides with live code in them" single ((:commit . "97f16a9ee4e6ff3e0f9291eaead772c66e3e12ae") (:authors ("David Raymond Christiansen" . "david@davidchristiansen.dk")) (:maintainer "David Raymond Christiansen" . "david@davidchristiansen.dk") (:keywords "docs" "multimedia"))])
|
||||
(live-preview . [(20201010 1948) ((emacs (24 4))) "Live preview by any shell command while editing" single ((:commit . "603a4a1759fbec92e7a1cabc249517c78e59ce7e") (:authors ("Lassi Kortela" . "lassi@lassi.io")) (:maintainer "Lassi Kortela" . "lassi@lassi.io") (:keywords "languages" "util") (:url . "https://github.com/lassik/emacs-live-preview"))])
|
||||
(live-py-mode . [(20220518 204) ((emacs (24 3))) "Live Coding in Python" tar ((:commit . "e509c806138cbe164c0d655cc7d662f94c386c9b") (:authors ("Don Kirkby http://donkirkby.github.io")) (:maintainer "Don Kirkby http://donkirkby.github.io") (:keywords "live" "coding") (:url . "http://donkirkby.github.io/live-py-plugin/"))])
|
||||
|
@ -2873,7 +2872,7 @@
|
|||
(lognav-mode . [(20220410 1344) ((emacs (24 3))) "Navigate Log Error Messages" single ((:commit . "100541ec31468b771073a7d2ad4512c1dcb1eb07") (:authors ("Shawn Ellis" . "shawn.ellis17@gmail.com")) (:maintainer "Shawn Ellis" . "shawn.ellis17@gmail.com") (:keywords "log" "error" "lognav-mode" "convenience") (:url . "https://hg.osdn.net/view/lognav-mode/lognav-mode"))])
|
||||
(logpad . [(20201113 917) nil "Simulate Windows Notepad for logging." single ((:commit . "2955c6e3de40bd1e84acb4c16c7690b210f82bec") (:authors ("Sven Knurr" . "git@tuxproject.de")) (:maintainer "Sven Knurr" . "git@tuxproject.de") (:keywords "files" "outlines" "notepad") (:url . "https://github.com/dertuxmalwieder/logpad.el"))])
|
||||
(logstash-conf . [(20210123 1949) nil "basic mode for editing logstash configuration" single ((:commit . "ec9b527191cd47d3b5947cb0ec3d6a8a57b121ea") (:authors ("Wilfred Hughes" . "me@wilfred.me.uk")) (:maintainer "Wilfred Hughes" . "me@wilfred.me.uk"))])
|
||||
(logview . [(20220609 2003) ((emacs (25 1)) (datetime (0 6 1)) (extmap (1 0))) "Major mode for viewing log files" single ((:commit . "6446ccf25f834519d7f5c71e5293b062d599b355") (:authors ("Paul Pogonyshev" . "pogonyshev@gmail.com")) (:maintainer "Paul Pogonyshev" . "pogonyshev@gmail.com") (:keywords "files" "tools") (:url . "https://github.com/doublep/logview"))])
|
||||
(logview . [(20220916 2058) ((emacs (25 1)) (datetime (0 6 1)) (extmap (1 0))) "Major mode for viewing log files" single ((:commit . "3b0b544b69759f4c119d4460f98263b6e739e7de") (:authors ("Paul Pogonyshev" . "pogonyshev@gmail.com")) (:maintainer "Paul Pogonyshev" . "pogonyshev@gmail.com") (:keywords "files" "tools") (:url . "https://github.com/doublep/logview"))])
|
||||
(lol-data-dragon . [(20200705 1822) ((emacs (25 1))) "Browse Champions of League of Legends on Data Dragon" single ((:commit . "0deec9867bd7ba96220ee2968a9b2a94fd474431") (:authors ("Xu Chunyang")) (:maintainer "Xu Chunyang") (:keywords "games" "hypermedia") (:url . "https://github.com/xuchunyang/lol-data-dragon.el"))])
|
||||
(lolcat . [(20190527 1145) ((emacs (24 3))) "Rainbows and unicorns!" single ((:commit . "4855e587a3b9681c077dac4b9f166dd860f439a4") (:authors ("Xu Chunyang" . "mail@xuchunyang.me")) (:maintainer "Xu Chunyang" . "mail@xuchunyang.me") (:url . "https://github.com/xuchunyang/lolcat.el"))])
|
||||
(lolcode-mode . [(20111002 847) nil "Major mode for editing LOLCODE" single ((:commit . "280a47e0bf02ee3abc7c5b6b14345056f41981f9") (:authors ("Bodil Stokke" . "lolcode@bodil.tv")) (:maintainer "Bodil Stokke" . "lolcode@bodil.tv") (:keywords "lolcode" "major" "mode") (:url . "http://github.com/bodil/lolcode-mode"))])
|
||||
|
@ -2887,10 +2886,10 @@
|
|||
(lox-mode . [(20200619 1700) ((emacs (24 3))) "Major mode for the Lox programming language" single ((:commit . "083a2299e188a516d1e46ef2dd1cbb89db1aec49") (:authors ("Timmy Jose" . "zoltan.jose@gmail.com")) (:maintainer "Timmy Jose" . "zoltan.jose@gmail.com") (:keywords "languages" "lox") (:url . "https://github.com/timmyjose-projects/lox-mode"))])
|
||||
(lpy . [(20220818 1613) ((emacs (25 1)) (lispy (0 27 0))) "A lispy interface to Python" tar ((:commit . "ce78a4613458790cc785c1687af7eed8f0d8d66c") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:keywords "python" "lisp") (:url . "https://github.com/abo-abo/lpy"))])
|
||||
(lsp-cfn . [(20220822 1545) ((emacs (27 0)) (lsp-mode (8 0 0)) (yaml-mode (0 0 15))) "LSP integration for cfn-lsp-extra" tar ((:commit . "55203d41d767c091511599fca236c1f9c39cd58a") (:authors ("Laurence Warne")) (:maintainer "Laurence Warne") (:url . "https://github.com/LaurenceWarne/lsp-cfn.el"))])
|
||||
(lsp-dart . [(20220910 1443) ((emacs (26 3)) (lsp-treemacs (0 3)) (lsp-mode (7 0 1)) (dap-mode (0 6)) (f (0 20 0)) (dash (2 14 1)) (dart-mode (1 0 5))) "Dart support lsp-mode" tar ((:commit . "0f163756ad65d0400fa91a22b422ae771b513160") (:keywords "languages" "extensions") (:url . "https://emacs-lsp.github.io/lsp-dart"))])
|
||||
(lsp-dart . [(20220918 1430) ((emacs (26 3)) (lsp-treemacs (0 3)) (lsp-mode (7 0 1)) (dap-mode (0 6)) (f (0 20 0)) (dash (2 14 1)) (dart-mode (1 0 5))) "Dart support lsp-mode" tar ((:commit . "f64c08cdef162bfcf479655685247ef1c9a1bbc1") (:keywords "languages" "extensions") (:url . "https://emacs-lsp.github.io/lsp-dart"))])
|
||||
(lsp-docker . [(20220513 1434) ((emacs (26 1)) (dash (2 14 1)) (lsp-mode (6 2 1)) (f (0 20 0)) (yaml (0 2 0)) (ht (2 0))) "LSP Docker integration" single ((:commit . "a0d7cbf80652429c0be4dc7d39e1887ba4691ec7") (:authors ("Ivan Yonchovski" . "yyoncho@gmail.com")) (:maintainer "Ivan Yonchovski" . "yyoncho@gmail.com") (:keywords "languages" "langserver") (:url . "https://github.com/emacs-lsp/lsp-docker"))])
|
||||
(lsp-focus . [(20200906 1917) ((emacs (26 1)) (focus (0 1 1)) (lsp-mode (6 1))) "focus.el support for lsp-mode" single ((:commit . "d01f0af156e4e78dcb9fa8e080a652cf8f221d30") (:authors ("Vibhav Pant")) (:maintainer "Vibhav Pant") (:keywords "languages" "lsp-mode") (:url . "https://github.com/emacs-lsp/lsp-focus"))])
|
||||
(lsp-grammarly . [(20220704 626) ((emacs (27 1)) (lsp-mode (6 1)) (grammarly (0 3 0)) (request (0 3 0)) (s (1 12 0)) (ht (2 3))) "LSP Clients for Grammarly" single ((:commit . "1b2c90593e984605d6ad85094ca8a41f4f64c37c") (:authors ("Shen, Jen-Chieh" . "jcs090218@gmail.com")) (:maintainer "Shen, Jen-Chieh" . "jcs090218@gmail.com") (:keywords "convenience" "lsp" "grammarly" "checker") (:url . "https://github.com/emacs-grammarly/lsp-grammarly"))])
|
||||
(lsp-grammarly . [(20220916 441) ((emacs (27 1)) (lsp-mode (6 1)) (grammarly (0 3 0)) (request (0 3 0)) (s (1 12 0)) (ht (2 3))) "LSP Clients for Grammarly" single ((:commit . "eab5292037478c32e7d658fb5cba8b8fb6d72a7c") (:authors ("Shen, Jen-Chieh" . "jcs090218@gmail.com")) (:maintainer "Shen, Jen-Chieh" . "jcs090218@gmail.com") (:keywords "convenience" "lsp" "grammarly" "checker") (:url . "https://github.com/emacs-grammarly/lsp-grammarly"))])
|
||||
(lsp-haskell . [(20220809 2129) ((emacs (24 3)) (lsp-mode (3 0))) "Haskell support for lsp-mode" single ((:commit . "485c1148ce4d27030bb95b21c7289809294e7d31") (:keywords "haskell") (:url . "https://github.com/emacs-lsp/lsp-haskell"))])
|
||||
(lsp-intellij . [(20180831 2051) ((emacs (25 1)) (lsp-mode (4 1))) "intellij lsp client" single ((:commit . "cf30f0ac63bd0140e758840b8ab070e8313697b2") (:authors ("Ruin0x11" . "ipickering2@gmail.com")) (:maintainer "Ruin0x11" . "ipickering2@gmail.com") (:keywords "languages" "processes" "tools") (:url . "https://github.com/Ruin0x11/lsp-intellij"))])
|
||||
(lsp-ivy . [(20220831 1823) ((emacs (25 1)) (dash (2 14 1)) (lsp-mode (6 2 1)) (ivy (0 13 0))) "LSP ivy integration" single ((:commit . "9ecf4dd9b1207109802bd1882aa621eb1c385106") (:keywords "languages" "debug") (:url . "https://github.com/emacs-lsp/lsp-ivy"))])
|
||||
|
@ -2899,9 +2898,9 @@
|
|||
(lsp-jedi . [(20220430 18) ((emacs (25 1)) (lsp-mode (6 0))) "Lsp client plugin for Python Jedi Language Server" single ((:commit . "5e3eb3e160c2d38b8bd2b5cd3b86fa4f823f9330") (:authors ("Fred Campos" . "fred.tecnologia@gmail.com")) (:maintainer "Fred Campos") (:keywords "language-server" "tools" "python" "jedi" "ide") (:url . "http://github.com/fredcamps/lsp-jedi"))])
|
||||
(lsp-julia . [(20211229 1534) ((emacs (25 1)) (lsp-mode (6 3)) (julia-mode (0 3))) "Julia support for lsp-mode" tar ((:commit . "e6ff5c09eb73c9b376bfbbd94f47c0366a01cf44") (:authors ("Martin Wolke" . "vibhavp@gmail.com") ("Adam Beckmeyer" . "adam_git@thebeckmeyers.xyz") ("Guido Kraemer" . "gdkrmr@users.noreply.github.com")) (:maintainer "Guido Kraemer" . "gdkrmr@users.noreply.github.com") (:keywords "languages" "tools") (:url . "https://github.com/gdkrmr/lsp-julia"))])
|
||||
(lsp-latex . [(20210815 1426) ((emacs (25 1)) (lsp-mode (6 0))) "LSP-mode client for LaTeX, on texlab" single ((:commit . "d1da34e21d88e507dc1abc75ec457c9cd30165db") (:authors ("ROCKTAKEY" . "rocktakey@gmail.com")) (:maintainer "ROCKTAKEY" . "rocktakey@gmail.com") (:keywords "languages" "tex") (:url . "https://github.com/ROCKTAKEY/lsp-latex"))])
|
||||
(lsp-ltex . [(20220912 1600) ((emacs (27 1)) (lsp-mode (6 1))) "LSP Clients for LTEX" single ((:commit . "127c8e8ce7c8e23b6b6ad0c85eaa415044059053") (:authors ("Shen, Jen-Chieh" . "jcs090218@gmail.com")) (:maintainer "Shen, Jen-Chieh" . "jcs090218@gmail.com") (:keywords "convenience" "lsp" "languagetool" "checker") (:url . "https://github.com/emacs-languagetool/lsp-ltex"))])
|
||||
(lsp-ltex . [(20220916 442) ((emacs (27 1)) (lsp-mode (6 1))) "LSP Clients for LTEX" single ((:commit . "ab485b8dca64922c024cb1a7ee95231d68883bca") (:authors ("Shen, Jen-Chieh" . "jcs090218@gmail.com")) (:maintainer "Shen, Jen-Chieh" . "jcs090218@gmail.com") (:keywords "convenience" "lsp" "languagetool" "checker") (:url . "https://github.com/emacs-languagetool/lsp-ltex"))])
|
||||
(lsp-metals . [(20220715 2128) ((emacs (26 1)) (scala-mode (1 1)) (lsp-mode (7 0)) (lsp-treemacs (0 2)) (dap-mode (0 3)) (dash (2 18 0)) (f (0 20 0)) (ht (2 0)) (treemacs (2 5))) "Scala Client settings" tar ((:commit . "097d6021a4ff0eae704cc3074e064c9509c5cafc") (:authors ("Ross A. Baker" . "ross@rossabaker.com") ("Evgeny Kurnevsky" . "kurnevsky@gmail.com")) (:maintainer "Ross A. Baker" . "ross@rossabaker.com") (:keywords "languages" "extensions") (:url . "https://github.com/emacs-lsp/lsp-metals"))])
|
||||
(lsp-mode . [(20220914 1807) ((emacs (26 1)) (dash (2 18 0)) (f (0 20 0)) (ht (2 3)) (spinner (1 7 3)) (markdown-mode (2 3)) (lv (0))) "LSP mode" tar ((:commit . "45fec559fe63da0742f9bd481a33adba3b1d6d9b") (:authors ("Vibhav Pant, Fangrui Song, Ivan Yonchovski")) (:maintainer "Vibhav Pant, Fangrui Song, Ivan Yonchovski") (:keywords "languages") (:url . "https://github.com/emacs-lsp/lsp-mode"))])
|
||||
(lsp-mode . [(20220922 1911) ((emacs (26 1)) (dash (2 18 0)) (f (0 20 0)) (ht (2 3)) (spinner (1 7 3)) (markdown-mode (2 3)) (lv (0))) "LSP mode" tar ((:commit . "447032e53c8bfb56dbd00f2b51355544e87ed180") (:authors ("Vibhav Pant, Fangrui Song, Ivan Yonchovski")) (:maintainer "Vibhav Pant, Fangrui Song, Ivan Yonchovski") (:keywords "languages") (:url . "https://github.com/emacs-lsp/lsp-mode"))])
|
||||
(lsp-mssql . [(20191204 1150) ((emacs (25 1)) (lsp-mode (6 2)) (dash (2 14 1)) (f (0 20 0)) (ht (2 0)) (lsp-treemacs (0 1))) "MSSQL LSP bindings" tar ((:commit . "e16e91d6a2a6cdb406ee9b98cfb47f7a32e41d61") (:authors ("Ivan Yonchovski" . "yyoncho@gmail.com")) (:maintainer "Ivan Yonchovski" . "yyoncho@gmail.com") (:keywords "data" "languages") (:url . "https://github.com/emacs-lsp/lsp-mssql"))])
|
||||
(lsp-origami . [(20211016 1045) ((origami (1 0)) (lsp-mode (6 1))) "origami.el support for lsp-mode" single ((:commit . "5b88ab77dc2696c93fa5dd9debe183821c533b71") (:authors ("Vibhav Pant")) (:maintainer "Vibhav Pant") (:keywords "languages" "lsp-mode") (:url . "https://github.com/emacs-lsp/lsp-origami"))])
|
||||
(lsp-p4 . [(20190127 1049) ((lsp-mode (3 0))) "P4 support for lsp-mode" tar ((:commit . "084e33a5782f9153502d9b03e63d9cbbe81cdaeb") (:authors ("Dmitri Makarov")) (:maintainer "Dmitri Makarov") (:keywords "lsp" "p4") (:url . "https://github.com/dmakarov/p4ls"))])
|
||||
|
@ -2914,7 +2913,7 @@
|
|||
(lsp-sonarlint . [(20210820 2044) ((emacs (25)) (dash (2 12 0)) (lsp-mode (6 3)) (ht (2 3))) "Emacs Sonarlint lsp client" tar ((:commit . "3af97828f9c08d782fb2086e3a73bda5759e6788") (:authors ("Fermin MF" . "fmfs@posteo.net")) (:maintainer "Fermin MF" . "fmfs@posteo.net") (:keywords "languages" "tools" "php" "javascript" "xml" "ruby" "html" "scala" "java" "python") (:url . "https://github.com/emacs-lsp/lsp-sonarlint"))])
|
||||
(lsp-sourcekit . [(20210905 2017) ((emacs (25 1)) (lsp-mode (5))) "sourcekit-lsp client for lsp-mode" single ((:commit . "97ff36b228a61e69734c7180f33cc6951b1a600f") (:authors ("Daniel Martín")) (:maintainer "Daniel Martín") (:keywords "languages" "lsp" "swift" "objective-c" "c++") (:url . "https://github.com/emacs-lsp/lsp-sourcekit"))])
|
||||
(lsp-tailwindcss . [(20220912 1321) ((lsp-mode (7 1)) (f (0 20 0)) (emacs (26 1))) "A lsp-mode client for tailwindcss" single ((:commit . "c0ca58d090453db2ec70fe55f8203055d2358533") (:authors ("A.I." . "merrick@luois.me")) (:maintainer "A.I." . "merrick@luois.me") (:keywords "language" "tools") (:url . "https://github.com/merrickluo/lsp-tailwindcss"))])
|
||||
(lsp-treemacs . [(20220502 459) ((emacs (26 1)) (dash (2 18 0)) (f (0 20 0)) (ht (2 0)) (treemacs (2 5)) (lsp-mode (6 0))) "LSP treemacs" tar ((:commit . "9859326df6b8e8c954a3c227e53b6878e54aaae8") (:authors ("Ivan Yonchovski")) (:maintainer "Ivan Yonchovski") (:keywords "languages") (:url . "https://github.com/emacs-lsp/lsp-treemacs"))])
|
||||
(lsp-treemacs . [(20220918 742) ((emacs (26 1)) (dash (2 18 0)) (f (0 20 0)) (ht (2 0)) (treemacs (2 5)) (lsp-mode (6 0))) "LSP treemacs" tar ((:commit . "f7ae97560cfbc88e781a2d5b9253dace7175b918") (:authors ("Ivan Yonchovski")) (:maintainer "Ivan Yonchovski") (:keywords "languages") (:url . "https://github.com/emacs-lsp/lsp-treemacs"))])
|
||||
(lsp-ui . [(20220823 1626) ((emacs (26 1)) (dash (2 18 0)) (lsp-mode (6 0)) (markdown-mode (2 3))) "UI modules for lsp-mode" tar ((:commit . "d8cce7dc154aa3216c080dd5c6fb827bdba9a312") (:authors ("Sebastien Chapuis <sebastien@chapu.is>, Fangrui Song" . "i@maskray.me")) (:maintainer "Sebastien Chapuis <sebastien@chapu.is>, Fangrui Song" . "i@maskray.me") (:keywords "languages" "tools") (:url . "https://github.com/emacs-lsp/lsp-ui"))])
|
||||
(lua-mode . [(20220801 503) ((emacs (24 3))) "a major-mode for editing Lua scripts" single ((:commit . "d17a00ca50aee197cd017d573b83367eb241cc44") (:authors ("2011-2013 immerrr" . "immerrr+lua@gmail.com") ("2010-2011 Reuben Thomas" . "rrt@sc3d.org") ("2006 Juergen Hoetzel" . "juergen@hoetzel.info") ("2004 various (support for Lua 5 and byte compilation)") ("2001 Christian Vogler" . "cvogler@gradient.cis.upenn.edu") ("1997 Bret Mogilefsky" . "mogul-lua@gelatinous.com") ("tcl-mode by Gregor Schmid" . "schmid@fb3-s7.math.tu-berlin.de") ("with tons of assistance from") ("Paul Du Bois" . "pld-lua@gelatinous.com") ("Aaron Smith" . "aaron-lua@gelatinous.com")) (:maintainer "2011-2013 immerrr" . "immerrr+lua@gmail.com") (:keywords "languages" "processes" "tools") (:url . "https://immerrr.github.io/lua-mode"))])
|
||||
(luarocks . [(20170430 2305) ((emacs (24)) (cl-lib (0 5))) "luarocks tools" single ((:commit . "cee27ba0716edf338077387969883226dd2b7484") (:authors ("Mario Rodas" . "marsam@users.noreply.github.com")) (:maintainer "Mario Rodas" . "marsam@users.noreply.github.com") (:keywords "convenience") (:url . "https://github.com/emacs-pe/luarocks.el"))])
|
||||
|
@ -2938,8 +2937,8 @@
|
|||
(mag-menu . [(20150505 1850) ((splitter (0 1 0))) "Intuitive keyboard-centric menu system" single ((:commit . "9b9277021cd09fb1dba64b1d2a00705d20914bd6") (:authors ("Steven Thomas")) (:maintainer "Steven Thomas") (:keywords "convenience") (:url . "https://github.com/chumpage/mag-menu"))])
|
||||
(magic-filetype . [(20180219 1552) ((emacs (24)) (s (1 9 0))) "Enhance filetype major mode" single ((:commit . "019494add5ff02dd36cb3f500142fc51125522cc") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:keywords "emulations" "vim" "ft" "file" "magic-mode") (:url . "https://github.com/zonuexe/magic-filetype.el"))])
|
||||
(magic-latex-buffer . [(20210306 422) ((cl-lib (0 5)) (emacs (25 1))) "Magically enhance LaTeX-mode font-locking for semi-WYSIWYG editing" single ((:commit . "903ec91872760e47c0e5715795f8465173615098") (:authors ("zk_phi")) (:maintainer "zk_phi") (:url . "http://zk-phi.github.io/"))])
|
||||
(magik-mode . [(20220702 1158) nil "mode for editing Magik + some utils." tar ((:commit . "a7c5553d2780640630d31b469d522ecffdf052f5") (:keywords "languages") (:url . "http://github.com/roadrunner1776/magik"))])
|
||||
(magit . [(20220914 2356) ((emacs (25 1)) (compat (28 1 1 2)) (dash (20210826)) (git-commit (20220222)) (magit-section (20220325)) (transient (20220325)) (with-editor (20220318))) "A Git porcelain inside Emacs." tar ((:commit . "75647d08a097157231c598648e2f632279ff3a41") (:authors ("Marius Vollmer" . "marius.vollmer@gmail.com") ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:keywords "git" "tools" "vc") (:url . "https://github.com/magit/magit"))])
|
||||
(magik-mode . [(20220920 1237) nil "mode for editing Magik + some utils." tar ((:commit . "2f86d2f456029c3ed9d8e5cd0ed2f3dd8cb3b862") (:keywords "languages") (:url . "http://github.com/roadrunner1776/magik"))])
|
||||
(magit . [(20220919 1308) ((emacs (25 1)) (compat (28 1 1 2)) (dash (20210826)) (git-commit (20220222)) (magit-section (20220325)) (transient (20220325)) (with-editor (20220318))) "A Git porcelain inside Emacs." tar ((:commit . "4ee691cd90a4975b31ba4f3f6fc3ae69a0b0eb62") (:authors ("Marius Vollmer" . "marius.vollmer@gmail.com") ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:keywords "git" "tools" "vc") (:url . "https://github.com/magit/magit"))])
|
||||
(magit-annex . [(20220302 1725) ((cl-lib (0 3)) (magit (3 0 0))) "Control git-annex from Magit" single ((:commit . "efe484644666c6b7c544b0fb7b87e30703fa9425") (:authors ("Kyle Meyer" . "kyle@kyleam.com") ("Rémi Vanicat" . "vanicat@debian.org")) (:maintainer "Kyle Meyer" . "kyle@kyleam.com") (:keywords "vc" "tools") (:url . "https://github.com/magit/magit-annex"))])
|
||||
(magit-circleci . [(20191209 2113) ((dash (2 16 0)) (transient (0 1 0)) (magit (2 90 0)) (emacs (25 3))) "CircleCI integration for Magit" single ((:commit . "3425ad5b16cb48d6802b7e9ed044b4cd7a99c785") (:authors ("Adrien Brochard")) (:maintainer "Adrien Brochard") (:keywords "circleci" "continuous" "integration" "magit" "vc" "tools") (:url . "https://github.com/abrochard/magit-circleci"))])
|
||||
(magit-commit-mark . [(20220809 625) ((emacs (28 1)) (magit (3 3 0))) "Support marking commits as read" single ((:commit . "9367f7e4038792073f090b2c881cdbde1ab47f40") (:authors ("Campbell Barton" . "ideasman42@gmail.com")) (:maintainer "Campbell Barton" . "ideasman42@gmail.com") (:url . "https://codeberg.org/ideasman42/emacs-magit-commit-mark"))])
|
||||
|
@ -2974,7 +2973,7 @@
|
|||
(major-mode-icons . [(20220210 1404) ((emacs (24 3)) (powerline (2 4)) (all-the-icons (2 3 0))) "display icon for major-mode on mode-line." tar ((:commit . "b0214e0af13cd3691c4d28f03e3108bd98ec7a85") (:keywords "frames" "multimedia") (:url . "https://repo.or.cz/major-mode-icons.git"))])
|
||||
(make-color . [(20140625 1150) nil "Alternative to picking color - update fg/bg color by pressing r/g/b/... keys" single ((:commit . "a1b34e95ccd3ebee4fba1489ab613d0b3078026d") (:authors ("Alex Kost" . "alezost@gmail.com")) (:maintainer "Alex Kost" . "alezost@gmail.com") (:keywords "color") (:url . "https://github.com/alezost/make-color.el"))])
|
||||
(make-it-so . [(20190625 1036) ((swiper (0 8 0)) (emacs (24))) "Transform files with Makefile recipes." tar ((:commit . "b73dfb640588123c9eece230ad72b37604f5c126") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:keywords "make" "dired") (:url . "https://github.com/abo-abo/make-it-so"))])
|
||||
(makefile-executor . [(20220914 1024) ((emacs (27 1)) (dash (2 11 0)) (f (0 11 0)) (s (1 10 0))) "Commands for conveniently running makefile targets" single ((:commit . "b2dd81e4218ed1c19ae48da815be01a55c435417") (:authors ("Lowe Thiderman" . "lowe.thiderman@gmail.com")) (:maintainer "Lowe Thiderman" . "lowe.thiderman@gmail.com") (:keywords "processes") (:url . "https://github.com/thiderman/makefile-executor.el"))])
|
||||
(makefile-executor . [(20220919 802) ((emacs (27 1)) (dash (2 11 0)) (f (0 11 0)) (s (1 10 0))) "Commands for conveniently running makefile targets" single ((:commit . "b304f4b5cc5d33eedf76ff0fdae839d1a00ed2a5") (:authors ("Lowe Thiderman" . "lowe.thiderman@gmail.com")) (:maintainer "Lowe Thiderman" . "lowe.thiderman@gmail.com") (:keywords "processes") (:url . "https://github.com/thiderman/makefile-executor.el"))])
|
||||
(makey . [(20131231 1430) ((cl-lib (0 2))) "interactive commandline mode" single ((:commit . "a61781e69d3b451551e269446e1c5f624ab81137") (:authors ("Mickey Petersen" . "mickey@masteringemacs.org")) (:maintainer "Mickey Petersen" . "mickey@masteringemacs.org"))])
|
||||
(malinka . [(20171202 1021) ((s (1 9 0)) (dash (2 4 0)) (f (0 11 0)) (cl-lib (0 3)) (rtags (0 0)) (projectile (0 11 0))) "A C/C++ project configuration package for Emacs" single ((:commit . "e3dc5b0703a5954057110b82cb397a990ace23e6") (:authors ("Lefteris Karapetsas" . "lefteris@refu.co")) (:maintainer "Lefteris Karapetsas" . "lefteris@refu.co") (:keywords "c" "c++" "project-management") (:url . "https://github.com/LefterisJP/malinka"))])
|
||||
(mallard-mode . [(20131204 425) nil "Major mode for editing Mallard files" tar ((:commit . "0a4cfede57bc31134495804ce513cc106de8de3c") (:authors ("Jaromir Hradilek" . "jhradilek@gmail.com")) (:maintainer "Jaromir Hradilek" . "jhradilek@gmail.com") (:keywords "xml" "mallard") (:url . "https://github.com/jhradilek/emacs-mallard-mode"))])
|
||||
|
@ -2989,7 +2988,7 @@
|
|||
(map-progress . [(20190128 16) ((cl-lib (0 6 1))) "mapping macros that report progress" single ((:commit . "1fb916159cd054c233ce3c80d9d01adfae640297") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:keywords "convenience") (:url . "https://github.com/tarsius/map-progress"))])
|
||||
(map-regexp . [(20190128 18) ((cl-lib (0 6 1))) "map over matches of a regular expression" single ((:commit . "ae2d1c22f786ad987aef3e319925e80160a887a0") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:keywords "convenience") (:url . "https://github.com/tarsius/map-regexp"))])
|
||||
(marcopolo . [(20160421 1004) ((s (1 9 0)) (dash (2 9 0)) (pkg-info (0 5 0)) (request (0 1 0))) "Emacs client to the Docker HUB/Registry API" tar ((:commit . "85db828f2bb4346a811b3326349b1c6d0aae4601") (:authors ("Nicolas Lamirault" . "nicolas.lamirault@gmail.com")) (:maintainer "Nicolas Lamirault" . "nicolas.lamirault@gmail.com") (:keywords "docker") (:url . "https://github.com/nlamirault/marcopolo"))])
|
||||
(marginalia . [(20220914 945) ((emacs (27 1))) "Enrich existing commands with completion annotations" single ((:commit . "db12d80307ea9d6de44b59d18533c9cbf0c51724") (:authors ("Omar Antolín Camarena <omar@matem.unam.mx>, Daniel Mendler" . "mail@daniel-mendler.de")) (:maintainer "Omar Antolín Camarena <omar@matem.unam.mx>, Daniel Mendler" . "mail@daniel-mendler.de") (:url . "https://github.com/minad/marginalia"))])
|
||||
(marginalia . [(20220922 1059) ((emacs (27 1))) "Enrich existing commands with completion annotations" single ((:commit . "ddba3a384916d83b68527379bbdf01161201853e") (:authors ("Omar Antolín Camarena <omar@matem.unam.mx>, Daniel Mendler" . "mail@daniel-mendler.de")) (:maintainer "Omar Antolín Camarena <omar@matem.unam.mx>, Daniel Mendler" . "mail@daniel-mendler.de") (:url . "https://github.com/minad/marginalia"))])
|
||||
(mark-multiple . [(20121118 1554) nil "Sorta lets you mark several regions at once." tar ((:commit . "f6a53c7c5283d640ae718f4548b0fda78877a375") (:authors ("Magnar Sveen" . "magnars@gmail.com")) (:maintainer "Magnar Sveen" . "magnars@gmail.com") (:keywords "marking" "library"))])
|
||||
(mark-thing-at . [(20201219 231) ((emacs (26)) (choice-program (0 13))) "Mark a pattern at the current point" single ((:commit . "b012270ea7780ed02ddf61d884b96cdc4fc01594") (:authors ("Paul Landes")) (:maintainer "Paul Landes") (:keywords "mark" "point" "lisp") (:url . "https://github.com/plandes/mark-thing-at"))])
|
||||
(mark-tools . [(20130614 1025) nil "Some simple tools to access the mark-ring in Emacs" single ((:commit . "a11b61effa90bd0abc876d12573674d36fc17f0c") (:authors ("Alex Bennée" . "alex@bennee.com")) (:maintainer "Alex Bennée" . "alex@bennee.com") (:url . "https://github.com/stsquad/emacs-mark-tools"))])
|
||||
|
@ -3008,18 +3007,18 @@
|
|||
(marshal . [(20201223 1853) ((emacs (25 1)) (ht (2 0))) "eieio extension for automatic (un)marshalling" single ((:commit . "490496d974d03906f784707ecc2e0ac36ed84b96") (:authors ("Yann Hodique" . "yann.hodique@gmail.com")) (:maintainer "Yann Hodique" . "yann.hodique@gmail.com") (:keywords "extensions") (:url . "https://github.com/sigma/marshal.el"))])
|
||||
(maruo-macro-mode . [(20160616 1349) ((emacs (24 3))) "Major mode for editing Hidemaru/Maruo macro script" single ((:commit . "8fc9a38ad051eafa8eb94038711acc52c5d1d8d5") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:keywords "programming" "editor" "macro"))])
|
||||
(masm-mode . [(20200308 1450) ((emacs (25 1))) "MASM x86 and x64 assembly major mode" single ((:commit . "ab63524d195332ec9f703783704231606e69c292") (:authors ("YiGeeker" . "zyfchinese@yeah.net")) (:maintainer "YiGeeker" . "zyfchinese@yeah.net") (:keywords "languages") (:url . "https://github.com/YiGeeker/masm-mode"))])
|
||||
(mastodon . [(20220912 2042) ((emacs (27 1)) (request (0 3 0))) "Client for Mastodon" tar ((:commit . "cf504419334bf964e5211ab238783efb15325648") (:authors ("Johnson Denen" . "johnson.denen@gmail.com")) (:maintainer "Marty Hiatt" . "martianhiatus@riseup.net") (:url . "https://codeberg.org/martianh/mastodon.el"))])
|
||||
(mastodon . [(20220922 940) ((emacs (27 1)) (request (0 3 0)) (persist (0 4))) "Client for Mastodon" tar ((:commit . "6b88c28779bd64aaf56c9d1e0c5fced77a506c0a") (:authors ("Johnson Denen" . "johnson.denen@gmail.com")) (:maintainer "Marty Hiatt" . "martianhiatus@riseup.net") (:url . "https://codeberg.org/martianh/mastodon.el"))])
|
||||
(material-theme . [(20210904 1226) ((emacs (24 1))) "A Theme based on the colors of the Google Material Design" tar ((:commit . "6823009bc92f82aa3a90e27e1009f7da8e87b648") (:authors ("Christoph Paulik" . "cpaulik@gmail.com")) (:maintainer "Christoph Paulik" . "cpaulik@gmail.com") (:keywords "themes") (:url . "http://github.com/cpaulik/emacs-material-theme"))])
|
||||
(math-preview . [(20220830 1740) ((emacs (26 1)) (json (1 4)) (dash (2 18 0)) (s (1 12 0))) "Preview TeX math equations inline" single ((:commit . "dd41b03c64eca324558e6139699cacccfdd0efd2") (:authors ("Matsievskiy S.V.")) (:maintainer "Matsievskiy S.V.") (:keywords "convenience") (:url . "https://gitlab.com/matsievskiysv/math-preview"))])
|
||||
(math-symbol-lists . [(20220828 2047) nil "Lists of Unicode math symbols and latex commands" tar ((:commit . "ac3eb053d3b576fcdd192b0ac6ad5090ea3a7079") (:authors ("Vitalie Spinu" . "spinuvit@gmail.com")) (:maintainer "Vitalie Spinu" . "spinuvit@gmail.com") (:keywords "unicode" "symbols" "mathematics") (:url . "https://github.com/vspinu/math-symbol-lists"))])
|
||||
(math-symbols . [(20201005 2313) nil "Math Symbol Input methods and conversion tools" tar ((:commit . "091b81cb40ceaff97614999ffe85b572ace182f0") (:authors ("KAWABATA, Taichi <kawabata.taichi_at_gmail.com>")) (:maintainer "KAWABATA, Taichi <kawabata.taichi_at_gmail.com>") (:keywords "i18n" "languages" "tex") (:url . "https://github.com/kawabata/math-symbols"))])
|
||||
(math-tex-convert . [(20220912 313) ((emacs (26 1)) (math-symbol-lists (1 3)) (auctex (12 1))) "Convert LaTeX macros to unicode and back" tar ((:commit . "93daa5c64ac6bbf2f634e1dd19678a9dd70c3444") (:authors ("Enrico Flor" . "enrico@eflor.net")) (:maintainer "Enrico Flor" . "enrico@eflor.net") (:url . "https://github.com/enricoflor/math-tex-convert"))])
|
||||
(math-tex-convert . [(20220918 1850) ((emacs (26 1)) (math-symbol-lists (1 3)) (auctex (12 1))) "Convert LaTeX macros to unicode and back" tar ((:commit . "91a9588f0d2d145f1695a531cc8bba8ec0adee3b") (:authors ("Enrico Flor" . "enrico@eflor.net")) (:maintainer "Enrico Flor" . "enrico@eflor.net") (:url . "https://github.com/enricoflor/math-tex-convert"))])
|
||||
(matlab-mode . [(20220412 913) nil "Major mode for MATLAB(R) dot-m files" tar ((:commit . "5069e3ca0034e0da64eb9b3cd426f52992938d06"))])
|
||||
(maude-mode . [(20220419 1454) ((emacs (25))) "Emacs mode for the programming language Maude" single ((:commit . "68de3c11ae16c409afa74516aaf465996d1a9e59") (:authors ("Ellef Gjelstad <ellefg+maude*ifi.uio.no>")) (:maintainer "Rudi Schlatte" . "rudi@constantly.at") (:keywords "languages" "maude") (:url . "https://github.com/rudi/abs-mode"))])
|
||||
(maven-test-mode . [(20141220 557) ((s (1 9)) (emacs (24))) "Utilities for navigating test files and running maven test tasks." single ((:commit . "a19151861df2ad8ae4880a2e7c86ddf848cb569a") (:authors ("Renan Ranelli")) (:maintainer "Renan Ranelli") (:keywords "java" "maven" "test") (:url . "http://github.com/rranelli/maven-test-mode"))])
|
||||
(maxframe . [(20170120 1705) nil "maximize the emacs frame based on display size" single ((:commit . "13bda6dd9f1d96aa4b9dd9957a26cefd399a7772") (:authors ("Ryan McGeary")) (:maintainer "Ryan McGeary") (:keywords "display" "frame" "window" "maximize"))])
|
||||
(maxima . [(20220531 1751) ((emacs (25 1)) (s (1 11 0)) (test-simple (1 3 0))) "Major mode for Maxima" tar ((:commit . "8f0f64740928def955762780c801ef682dabd562") (:authors ("William F. Schelter") ("Jay Belanger") ("Fermin Munoz")) (:maintainer "Fermin Munoz" . "fmfs@posteo.net") (:keywords "maxima" "tools" "math") (:url . "https://gitlab.com/sasanidas/maxima"))])
|
||||
(mb-url . [(20211205 1100) ((emacs (25))) "Multiple Backends for Emacs URL package" tar ((:commit . "ca0a3878763180fe2d775feae88b87d21dd8dcb8") (:authors ("ZHANG Weiyi" . "dochang@gmail.com")) (:maintainer "ZHANG Weiyi" . "dochang@gmail.com") (:keywords "comm" "data" "processes" "hypermedia") (:url . "https://github.com/dochang/mb-url"))])
|
||||
(mb-url . [(20220921 1904) ((emacs (25))) "Multiple Backends for Emacs URL package" tar ((:commit . "74fd873981b0fdc35518e4cfdd52527b6f95cdf5") (:authors ("ZHANG Weiyi" . "dochang@gmail.com")) (:maintainer "ZHANG Weiyi" . "dochang@gmail.com") (:keywords "comm" "data" "processes" "hypermedia") (:url . "https://github.com/dochang/mb-url"))])
|
||||
(mbe . [(20151126 1134) ((emacs (24)) (cl-lib (0 5))) "Macros by Example" single ((:commit . "bb10aa8f26bb7e9b1d5746934c94edb00402940c") (:authors ("Ian Price" . "ianprice90@googlemail.com")) (:maintainer "Ian Price" . "ianprice90@googlemail.com") (:keywords "tools" "macros") (:url . "https://github.com/ijp/mbe.el"))])
|
||||
(mbo70s-theme . [(20170808 1315) ((emacs (24 0))) "70s style palette, with similarities to mbo theme" single ((:commit . "bed3db8965708ed4e9482b224a9b084765c052f2") (:authors ("Jason Milkins")) (:maintainer "Jason Milkins") (:url . "https://github.com/emacsfodder/tmtheme-to-deftheme"))])
|
||||
(mbsync . [(20200128 1053) nil "run mbsync to fetch mails" single ((:commit . "d3c81da81ce5b154c0d048047a47277338721a70") (:authors ("Dimitri Fontaine" . "dim@tapoueh.org")) (:maintainer "Dimitri Fontaine" . "dim@tapoueh.org") (:url . "https://github.com/dimitri/mbsync-el"))])
|
||||
|
@ -3036,8 +3035,8 @@
|
|||
(memento-mori . [(20190628 2147) ((emacs (24)) (cl-lib (0 5))) "Reminder of mortality" single ((:commit . "52f95bd4cf6617b60dc204c9bccb8d8fa17d4f9e") (:authors ("Lassi Kortela" . "lassi@lassi.io")) (:maintainer "Lassi Kortela" . "lassi@lassi.io") (:keywords "help") (:url . "https://github.com/lassik/emacs-memento-mori"))])
|
||||
(memoize . [(20200103 2036) nil "Memoization functions" single ((:commit . "51b075935ca7070f62fae1d69fe0ff7d8fa56fdd") (:authors ("Christopher Wellons" . "mosquitopsu@gmail.com")) (:maintainer "Christopher Wellons" . "mosquitopsu@gmail.com") (:url . "https://github.com/skeeto/emacs-memoize"))])
|
||||
(memolist . [(20150804 1721) ((markdown-mode (22 0)) (ag (0 45))) "memolist.el is Emacs port of memolist.vim." single ((:commit . "60c296e202a71e9dcf1c3936d47b5c4b95c5839f") (:authors ("mikanfactory <k952i4j14x17_at_gmail.com>")) (:maintainer "mikanfactory") (:keywords "markdown" "memo") (:url . "http://github.com/mikanfactory/emacs-memolist"))])
|
||||
(mentor . [(20220729 1756) ((emacs (25 1)) (xml-rpc (1 6 15)) (seq (1 11)) (async (1 9 3))) "Frontend for the rTorrent bittorrent client" tar ((:commit . "a820c8492392d2e3480845af4f6573c942996de8") (:authors ("Stefan Kangas" . "stefankangas@gmail.com")) (:maintainer "Stefan Kangas" . "stefankangas@gmail.com") (:keywords "comm" "processes" "bittorrent") (:url . "https://github.com/skangas/mentor"))])
|
||||
(meow . [(20220911 319) ((emacs (27 1))) "Yet Another modal editing" tar ((:commit . "28ded780283085dcc27b33a8e0d7a93c4798c9a8") (:authors ("Shi Tianshu")) (:maintainer "Shi Tianshu") (:keywords "convenience" "modal-editing") (:url . "https://www.github.com/DogLooksGood/meow"))])
|
||||
(mentor . [(20220922 1342) ((emacs (25 1)) (xml-rpc (1 6 15)) (seq (1 11)) (async (1 9 3))) "Frontend for the rTorrent bittorrent client" tar ((:commit . "969459eeee86c995f73f9f2026255b3b734c4665") (:authors ("Stefan Kangas" . "stefankangas@gmail.com")) (:maintainer "Stefan Kangas" . "stefankangas@gmail.com") (:keywords "comm" "processes" "bittorrent") (:url . "https://github.com/skangas/mentor"))])
|
||||
(meow . [(20220920 45) ((emacs (27 1))) "Yet Another modal editing" tar ((:commit . "c3f291ad289769fc9a3b2745a5e9969af6322d0c") (:authors ("Shi Tianshu")) (:maintainer "Shi Tianshu") (:keywords "convenience" "modal-editing") (:url . "https://www.github.com/DogLooksGood/meow"))])
|
||||
(merlin . [(20220630 1249) ((emacs (25 1))) "Mode for Merlin, an assistant for OCaml" tar ((:commit . "2e006714bbd000e2e4ad8d67469254ca2988def6") (:authors ("Frédéric Bour <frederic.bour(_)lakaban.net>")) (:maintainer "Frédéric Bour <frederic.bour(_)lakaban.net>") (:keywords "ocaml" "languages") (:url . "https://github.com/ocaml/merlin"))])
|
||||
(merlin-ac . [(20210615 1208) ((emacs (25 1)) (merlin (3)) (auto-complete (1 5))) "Merlin and auto-complete integration." single ((:commit . "aa9a385e7b610b855911c4e544371725dd83511e") (:authors ("Simon Castellan <simon.castellan(_)iuwt.fr>") ("Frédéric Bour <frederic.bour(_)lakaban.net>") ("Thomas Refis <thomas.refis(_)gmail.com>")) (:maintainer "Simon Castellan <simon.castellan(_)iuwt.fr>") (:keywords "ocaml" "languages") (:url . "http://github.com/ocaml/merlin"))])
|
||||
(merlin-company . [(20210615 1208) ((emacs (25 1)) (merlin (3)) (company (0 9))) "Merlin and company mode integration." single ((:commit . "aa9a385e7b610b855911c4e544371725dd83511e") (:authors ("Simon Castellan <simon.castellan(_)iuwt.fr>") ("Frédéric Bour <frederic.bour(_)lakaban.net>") ("Thomas Refis <thomas.refis(_)gmail.com>")) (:maintainer "Simon Castellan <simon.castellan(_)iuwt.fr>") (:keywords "ocaml" "languages") (:url . "http://github.com/ocaml/merlin"))])
|
||||
|
@ -3054,7 +3053,7 @@
|
|||
(metalheart-theme . [(20160710 641) ((emacs (24))) "Low-contrast theme with a dark blue-green background." single ((:commit . "ec98ea2c11dc1213dae8cbe1fe0cee73ca138bb2") (:authors ("Martin Haesler")) (:maintainer "Martin Haesler"))])
|
||||
(metamorph . [(20220328 129) ((emacs (26 1))) "Transform your buffers with lisp" single ((:commit . "3633e32a9601c491df32d6c2212dbe63dc6484f4") (:authors ("Adam Niederer" . "adam.niederer@gmail.com")) (:maintainer "Adam Niederer" . "adam.niederer@gmail.com") (:keywords "metaprogramming" "wp") (:url . "http://github.com/AdamNiederer/metamorph"))])
|
||||
(metascript-mode . [(20150709 57) ((emacs (24 3))) "Major mode for the Metascript programming language" single ((:commit . "edb361c7b0e5de231e5334a17b90652fb1df78f9") (:keywords "languages" "metascript" "mjs") (:url . "http://github.com/metascript/metascript-mode"))])
|
||||
(metaweblog . [(20220907 504) ((emacs (28 1))) "An XML-RPC MetaWeblog and WordPress API client." single ((:commit . "bd6289d66d4453bc776a85b17a11edb5a49adeb6") (:authors ("Puneeth Chaganti" . "punchagan+org2blog@gmail.com")) (:maintainer "Grant Rettke" . "grant@wisdomandwonder.com") (:keywords "comm") (:url . "https://github.com/org2blog/org2blog"))])
|
||||
(metaweblog . [(20220919 2119) ((emacs (27 1))) "An XML-RPC MetaWeblog and WordPress API client" single ((:commit . "a87e5d665838478dc03416f078e7d6f2100604ea") (:authors ("Puneeth Chaganti" . "punchagan+org2blog@gmail.com")) (:maintainer "Grant Rettke" . "grant@wisdomandwonder.com") (:keywords "comm") (:url . "https://github.com/org2blog/org2blog"))])
|
||||
(metrics-tracker . [(20220713 1131) ((emacs (24 4)) (seq (2 3))) "Generate reports of personal metrics from diary entries" single ((:commit . "b524398c768227bc14fd12c833dcd4e22d66efd3") (:authors ("Ian Martins" . "ianxm@jhu.edu")) (:maintainer "Ian Martins" . "ianxm@jhu.edu") (:keywords "calendar") (:url . "https://github.com/ianxm/emacs-tracker"))])
|
||||
(metronome . [(20220210 147) ((emacs (25 1))) "A simple metronome" tar ((:commit . "1e1bd5234f3ecfb608041d423be7412c461ad3c2") (:authors ("Jonathan Gregory <jgrg at autistici dot org>")) (:maintainer "Jonathan Gregory <jgrg at autistici dot org>") (:url . "https://gitlab.com/jagrg/metronome"))])
|
||||
(mew . [(20210625 240) nil "Messaging in the Emacs World" tar ((:commit . "fc4bca6d95d8b8d5e169ecf1433d968c2eec299d") (:authors ("Kazu Yamamoto" . "Kazu@Mew.org")) (:maintainer "Kazu Yamamoto" . "Kazu@Mew.org"))])
|
||||
|
@ -3111,9 +3110,9 @@
|
|||
(modern-sh . [(20211101 1001) ((emacs (25 1)) (hydra (0 15 0)) (eval-in-repl (0 9 7))) "Minor mode for editing shell script" single ((:commit . "8ebebe77304aa8170f7af809e7564c79d3bd45da") (:keywords "languages" "programming") (:url . "https://github.com/damon-kwok/modern-sh"))])
|
||||
(modtime-skip-mode . [(20140128 2201) nil "Minor mode for disabling modtime and supersession checks on files." single ((:commit . "c0e49523aa26b2263a8693691ac775988015f592") (:authors ("Jordon Biondo" . "biondoj@mail.gvsu.edu")) (:maintainer "Jordon Biondo" . "biondoj@mail.gvsu.edu") (:url . "http://www.github.com/jordonbiondo/modtime-skip-mode"))])
|
||||
(modular-config . [(20210726 1614) ((emacs (25 1))) "Organize your config into small and loadable modules" single ((:commit . "043907d96efff70dfaea1e721de90bd35970e8bd") (:authors ("Sidharth Arya" . "sidhartharya10@gmail.com")) (:maintainer "Sidharth Arya" . "sidhartharya10@gmail.com") (:keywords "startup" "lisp" "tools") (:url . "https://github.com/SidharthArya/modular-config.el"))])
|
||||
(modus-themes . [(20220911 226) ((emacs (27 1))) "Elegant, highly legible and customizable themes" tar ((:commit . "e4ee971f53d5c687de7bfbcf9fd1522bb42be902") (:authors ("Protesilaos Stavrou" . "info@protesilaos.com")) (:maintainer "Modus-Themes Development" . "~protesilaos/modus-themes@lists.sr.ht") (:keywords "faces" "theme" "accessibility") (:url . "https://git.sr.ht/~protesilaos/modus-themes"))])
|
||||
(modus-themes . [(20220921 1323) ((emacs (27 1))) "Elegant, highly legible and customizable themes" tar ((:commit . "ee35a9af344d2b2920589ec4d66e9cb513bdfb80") (:authors ("Protesilaos Stavrou" . "info@protesilaos.com")) (:maintainer "Modus-Themes Development" . "~protesilaos/modus-themes@lists.sr.ht") (:keywords "faces" "theme" "accessibility") (:url . "https://git.sr.ht/~protesilaos/modus-themes"))])
|
||||
(moe-theme . [(20220707 1110) nil "A colorful eye-candy theme. Moe, moe, kyun!" tar ((:commit . "786c5f9aefa38b36f6bee0aa56aaa8da00fa0924") (:authors ("kuanyui" . "azazabc123@gmail.com")) (:maintainer "kuanyui" . "azazabc123@gmail.com") (:keywords "themes") (:url . "https://github.com/kuanyui/moe-theme.el"))])
|
||||
(molar-mass . [(20210519 1342) ((emacs (24 3))) "Calculates molar mass of a molecule" single ((:commit . "838db1486a2dc5a3774eb195d62fbcdef71a63f7") (:authors ("Sergi Ruiz Trepat")) (:maintainer "Sergi Ruiz Trepat") (:keywords "convenience" "chemistry") (:url . "https://github.com/sergiruiztrepat/molar-mass.el"))])
|
||||
(molar-mass . [(20220922 1752) ((emacs (24 3))) "Calculates molar mass of a molecule" single ((:commit . "c3b686c4b621b45fa4b17857b4934eb4487d74f5") (:authors ("Sergi Ruiz Trepat")) (:maintainer "Sergi Ruiz Trepat") (:keywords "convenience" "chemistry") (:url . "https://github.com/sergiruiztrepat/molar-mass.el"))])
|
||||
(molecule . [(20180527 743) ((emacs (25 1))) "Simple wrapper for molecule" single ((:commit . "2ef72b81d9aa24ea782b71a061a3abdad6cae162") (:authors (": drymer <drymer [ AT ] autistici.org>")) (:maintainer ": drymer <drymer [ AT ] autistici.org>") (:keywords ":" "languages" "terminals") (:url . "https://git.daemons.it/drymer/molecule.el"))])
|
||||
(molokai-theme . [(20220106 1520) nil "molokai theme with Emacs theme engine" single ((:commit . "cc53e997e7eff93b58ad16a376a292c1dd66044b") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/alloy-d/color-theme-molokai"))])
|
||||
(mongo . [(20150315 1219) nil "MongoDB driver for Emacs Lisp" tar ((:commit . "595529ddd70ecb9fab8b11daad2c3929941099d6") (:authors ("Tomohiro Matsuyama" . "m2ym.pub@gmail.com")) (:maintainer "Tomohiro Matsuyama" . "m2ym.pub@gmail.com") (:keywords "convenience"))])
|
||||
|
@ -3125,7 +3124,7 @@
|
|||
(monokai-pro-theme . [(20210206 1820) nil "A simple theme based on the Monokai Pro Sublime color schemes" tar ((:commit . "d0489741a80d818713c290a1a4bdd985877228bb") (:authors ("Kaleb Elwert" . "belak@coded.io")) (:maintainer "Kaleb Elwert" . "belak@coded.io") (:url . "https://github.com/belak/emacs-monokai-pro-theme"))])
|
||||
(monokai-theme . [(20220117 1244) nil "A fruity color theme for Emacs." single ((:commit . "4a09c59f948ba5b602b6f395e667f53224fd75a2") (:authors ("Kelvin Smith" . "oneKelvinSmith@gmail.com")) (:maintainer "Kelvin Smith" . "oneKelvinSmith@gmail.com") (:url . "http://github.com/oneKelvinSmith/monokai-emacs"))])
|
||||
(monotropic-theme . [(20211116 1328) ((emacs (24))) "Monotropic Theme" single ((:commit . "f32a04b5bfee9cbcce4b223f17228d1142a28211") (:authors ("caffo")) (:maintainer "caffo") (:url . "https://github.com/caffo/monotropic-theme"))])
|
||||
(monroe . [(20220915 1557) nil "Yet another client for nREPL" single ((:commit . "328da792abad95f14c40499f48d288f0baa6697b") (:authors ("Sanel Zukan" . "sanelz@gmail.com")) (:maintainer "Sanel Zukan" . "sanelz@gmail.com") (:keywords "languages" "clojure" "nrepl" "lisp") (:url . "http://www.github.com/sanel/monroe"))])
|
||||
(monroe . [(20220915 1647) nil "Yet another client for nREPL" single ((:commit . "8f809e4aa0a35ec2d1c880aacf59e6bc317a566f") (:authors ("Sanel Zukan" . "sanelz@gmail.com")) (:maintainer "Sanel Zukan" . "sanelz@gmail.com") (:keywords "languages" "clojure" "nrepl" "lisp") (:url . "http://www.github.com/sanel/monroe"))])
|
||||
(mood-line . [(20211003 2113) ((emacs (25 1))) "A minimal mode-line inspired by doom-modeline" single ((:commit . "ef1c752679a8f92faa7b4828adbbb300b6942f22") (:authors ("Jessie Hildebrandt <jessieh.net>")) (:maintainer "Jessie Hildebrandt <jessieh.net>") (:keywords "mode-line" "faces") (:url . "https://gitlab.com/jessieh/mood-line"))])
|
||||
(mood-one-theme . [(20220613 114) ((emacs (24 4))) "A dark color scheme inspired by the Doom One theme." single ((:commit . "033910aaf1bb41f384d1b5b96d55975d1378a34b") (:authors ("Jessie Hildebrandt <jessieh.net>")) (:maintainer "Jessie Hildebrandt <jessieh.net>") (:keywords "mode-line" "faces") (:url . "https://gitlab.com/jessieh/mood-one-theme"))])
|
||||
(moody . [(20220620 844) ((emacs (25 3)) (compat (28 1 1 0))) "Tabs and ribbons for the mode line" single ((:commit . "a798096ee4ccf66ef2aa7016c00c8531bd63d27a") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:keywords "faces") (:url . "https://github.com/tarsius/moody"))])
|
||||
|
@ -3197,7 +3196,7 @@
|
|||
(my-repo-pins . [(20220726 813) ((emacs (26 1))) "Keep your git repositories organized" single ((:commit . "f460f17c524db2c815966a0b1ffe86ac450d4908") (:authors ("Félix Baylac Jacqué <felix at alternativebit.fr>")) (:maintainer "Félix Baylac Jacqué <felix at alternativebit.fr>") (:url . "https://alternativebit.fr/projects/my-repo-pins/"))])
|
||||
(myanmar-input-methods . [(20160106 1537) nil "Emacs Input Method for Myanmar" single ((:commit . "9d4e0d6358c61bde7a2274e430ef71683faea32e") (:authors ("Ye Lin Kyaw" . "yelinkyaw@gmail.com")) (:maintainer "Ye Lin Kyaw" . "yelinkyaw@gmail.com") (:keywords "myanmar" "unicode" "keyboard") (:url . "http://github.com/yelinkyaw/emacs-myanmar-input-methods"))])
|
||||
(mybigword . [(20220715 615) ((emacs (25 1))) "Vocabulary builder using Zipf to extract English big words" tar ((:commit . "6c35dd44369930b039a37f6174617bb6ab93be27") (:authors ("Chen Bin <chenbin DOT sh AT gmail.com>")) (:maintainer "Chen Bin <chenbin DOT sh AT gmail.com>") (:keywords "convenience") (:url . "https://github.com/redguardtoo/mybigword"))])
|
||||
(mybuild-mode . [(20220910 2015) ((emacs (24 3))) "Major mode for editing Mybuild files from Embox" single ((:commit . "879117b965a593b47432208e388e852223adcc88") (:authors ("Evgeny Simonenko" . "easimonenko@gmail.com")) (:maintainer "Evgeny Simonenko" . "easimonenko@gmail.com") (:keywords "languages") (:url . "https://github.com/easimonenko/mybuild-mode"))])
|
||||
(mybuild-mode . [(20220919 2032) ((emacs (24 3))) "Major mode for editing Mybuild files from Embox" single ((:commit . "0fc84a09a065903338d9364e980b692051f229b0") (:authors ("Evgeny Simonenko" . "easimonenko@gmail.com")) (:maintainer "Evgeny Simonenko" . "easimonenko@gmail.com") (:keywords "languages") (:url . "https://github.com/easimonenko/mybuild-mode"))])
|
||||
(mykie . [(20150808 2205) ((emacs (24 3)) (cl-lib (0 5))) "Command multiplexer: Register multiple functions to a keybind" tar ((:commit . "91f222b4f2b2b4285b0bc306905eb960826a67ed") (:authors ("Yuta Yamada <cokesboy\"at\"gmail.com>")) (:maintainer "Yuta Yamada <cokesboy\"at\"gmail.com>") (:keywords "emacs" "configuration" "keybind") (:url . "https://github.com/yuutayamada/mykie-el"))])
|
||||
(mynt-mode . [(20150512 2049) ((virtualenvwrapper (20131514))) "Minor mode to work with the mynt static site generator" single ((:commit . "23d4489167bfa899634548cb41ed32fdeb3600c9") (:authors ("Christian Brassat")) (:maintainer "Christian Brassat") (:keywords "convenience") (:url . "https://github.com/crshd/mynt-mode"))])
|
||||
(myrddin-mode . [(20191225 2120) ((emacs (24 3))) "Major mode for editing Myrddin source files" single ((:commit . "51c0a2cb9dfc9526cd47e71313f5a745c99cadcc") (:authors ("Jakob L. Kreuze" . "zerodaysfordays@sdf.lonestar.org")) (:maintainer "Jakob L. Kreuze" . "zerodaysfordays@sdf.lonestar.org") (:keywords "languages") (:url . "https://git.sr.ht/~jakob/myrddin-mode"))])
|
||||
|
@ -3256,7 +3255,7 @@
|
|||
(nikki . [(20210227 1707) ((emacs (24 3))) "A simple diary mode" single ((:commit . "894bb6060018cb523abe43a7d3b2bf5691dda5e8") (:authors ("Taiki Harada" . "thdev994@gmail.com")) (:maintainer "Taiki Harada" . "thdev994@gmail.com") (:keywords "convenience") (:url . "https://github.com/th994/nikki"))])
|
||||
(nikola . [(20170703 2021) ((async (1 5)) (emacs (24 3))) "Simple wrapper for nikola" single ((:commit . "964715ac30943c9d6976999cad208dc60d09def0") (:authors (": drymer <drymer [ AT ] autistici.org>")) (:maintainer ": drymer <drymer [ AT ] autistici.org>") (:keywords ":" "nikola") (:url . ": https://git.daemons.it/drymer/nikola.el"))])
|
||||
(nim-mode . [(20211102 917) ((emacs (24 4)) (epc (0 1 1)) (let-alist (1 0 1)) (commenter (0 5 1)) (flycheck-nimsuggest (0 8 1))) "A major mode for the Nim programming language" tar ((:commit . "744e076f0bea1c5ddc49f92397d9aa98ffa7eff8") (:authors ("Simon Hafner")) (:maintainer "Simon Hafner" . "hafnersimon@gmail.com") (:keywords "nim" "languages"))])
|
||||
(nimbus-theme . [(20220610 207) ((emacs (24 1))) "An awesome dark theme" single ((:commit . "5beeda54ece58c8eb91ffcf2b365c832c9b454aa") (:authors ("Marcin Swieczkowski" . "marcin.swieczkowski@gmail.com") ("See README.md for full list of contributors.")) (:maintainer "Marcin Swieczkowski" . "marcin.swieczkowski@gmail.com") (:keywords "faces") (:url . "https://github.com/m-cat/nimbus-theme"))])
|
||||
(nimbus-theme . [(20220921 2351) ((emacs (24 1))) "An awesome dark theme" single ((:commit . "08a4e4b76b70a297415abf0ff882dec02b81ffcd") (:authors ("Marcin Swieczkowski" . "marcin.swieczkowski@gmail.com") ("See README.md for full list of contributors.")) (:maintainer "Marcin Swieczkowski" . "marcin.swieczkowski@gmail.com") (:keywords "faces") (:url . "https://github.com/m-cat/nimbus-theme"))])
|
||||
(ninja-mode . [(20181024 1439) ((emacs (24))) "Major mode for editing .ninja files" single ((:commit . "d2045dedc39885e702176b2b5e05bc77024ae3aa"))])
|
||||
(nix-buffer . [(20180212 1518) ((f (0 17 3)) (emacs (24 4))) "Set up buffer environments with nix" single ((:commit . "db57cda36e7477bdc7ef5a136357b971b1d4d099") (:authors ("Shea Levy")) (:maintainer "Shea Levy") (:url . "https://github.com/shlevy/nix-buffer/tree/master/"))])
|
||||
(nix-env-install . [(20200812 1305) ((emacs (25 1))) "Install packages using nix-env" single ((:commit . "79c34bc117ba1cebeb67fab32c364951d2ec37a0") (:authors ("Akira Komamura" . "akira.komamura@gmail.com")) (:maintainer "Akira Komamura" . "akira.komamura@gmail.com") (:keywords "processes" "tools") (:url . "https://github.com/akirak/nix-env-install"))])
|
||||
|
@ -3436,7 +3435,7 @@
|
|||
(operate-on-number . [(20150707 623) nil "Operate on number at point with arithmetic functions" single ((:commit . "ceb3be565a29326c1098244fac0c50606723a56e") (:authors ("Akinori MUSHA" . "knu@iDaemons.org")) (:maintainer "Akinori MUSHA" . "knu@iDaemons.org") (:keywords "editing") (:url . "https://github.com/knu/operate-on-number.el"))])
|
||||
(orangey-bits-theme . [(20220822 324) ((autothemer (0 2)) (emacs (27 1))) "A Theme with smashing orangey bits" single ((:commit . "533856d399cb4098300bcaf4a2d20920395746f8") (:url . "http://github.com/emacsfodder/emacs-theme-orangey-bits"))])
|
||||
(orca . [(20220828 4) ((emacs (24 3)) (zoutline (0 1 0))) "Org Capture" single ((:commit . "0687f416a5573f63b691d384454f5a793266ed97") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:keywords "org" "convenience") (:url . "https://github.com/abo-abo/orca"))])
|
||||
(orderless . [(20220527 2228) ((emacs (26 1))) "Completion style for matching regexps in any order" tar ((:commit . "8b9af2796fa0eb87eea4140bc08d16880a493803") (:authors ("Omar Antolín Camarena" . "omar@matem.unam.mx")) (:maintainer "Omar Antolín Camarena" . "omar@matem.unam.mx") (:keywords "extensions") (:url . "https://github.com/oantolin/orderless"))])
|
||||
(orderless . [(20220918 48) ((emacs (26 1))) "Completion style for matching regexps in any order" tar ((:commit . "6b86527b30ef96e047d97e314ac640a410891d1f") (:authors ("Omar Antolín Camarena" . "omar@matem.unam.mx")) (:maintainer "Omar Antolín Camarena" . "omar@matem.unam.mx") (:keywords "extensions") (:url . "https://github.com/oantolin/orderless"))])
|
||||
(ordinal . [(20210519 1442) ((emacs (24 3))) "Convert number to ordinal number notation" single ((:commit . "a7f378306290b6807fb6b87cee3ef79b31cec711") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:keywords "lisp") (:url . "https://github.com/zonuexe/ordinal.el"))])
|
||||
(org-ac . [(20170401 1307) ((auto-complete-pcmp (0 0 1)) (log4e (0 2 0)) (yaxception (0 1))) "Some auto-complete sources for org-mode" single ((:commit . "41e3ef8e4039619d0370c23c66730b3b2e9e32ed") (:authors ("Hiroaki Otsu" . "ootsuhiroaki@gmail.com")) (:maintainer "Hiroaki Otsu" . "ootsuhiroaki@gmail.com") (:keywords "org" "completion") (:url . "https://github.com/aki2o/org-ac"))])
|
||||
(org-agenda-property . [(20140626 2116) ((emacs (24 2))) "Display org properties in the agenda buffer." single ((:commit . "01afb36072eb27846eb09310dfca7991dbae831e") (:authors ("Artur Malabarba" . "bruce.connor.am@gmail.com")) (:maintainer "Artur Malabarba" . "bruce.connor.am@gmail.com") (:keywords "calendar") (:url . "http://github.com/Bruce-Connor/org-agenda-property"))])
|
||||
|
@ -3466,7 +3465,7 @@
|
|||
(org-clock-csv . [(20201222 1506) ((org (8 3)) (s (1 0))) "Export `org-mode' clock entries to CSV format." single ((:commit . "af94b58c2e179a5bcc938f339e93de0eee3da99c") (:authors ("Aaron Jacobs" . "atheriel@gmail.com")) (:maintainer "Aaron Jacobs" . "atheriel@gmail.com") (:keywords "calendar" "data" "org") (:url . "https://github.com/atheriel/org-clock-csv"))])
|
||||
(org-clock-reminder . [(20211010 2139) ((emacs (26 1))) "Notifications that remind you about clocked-in tasks" tar ((:commit . "9f9b88348ffbc6628f2286dcb4c064b520d0a638") (:authors ("Nikolay Brovko" . "i@nickey.ru")) (:maintainer "Nikolay Brovko" . "i@nickey.ru") (:keywords "calendar" "convenience") (:url . "https://github.com/inickey/org-clock-reminder"))])
|
||||
(org-clock-split . [(20200331 526) ((emacs (24))) "Split clock entries" single ((:commit . "39e1d2912a7a7223e2356a5fc4dff03507ae084d") (:authors ("Justin Taft <https://github.com/justintaft>")) (:maintainer "Justin Taft <https://github.com/justintaft>") (:keywords "calendar") (:url . "https://github.com/justintaft/emacs-org-clock-split"))])
|
||||
(org-clock-today . [(20191204 1558) ((emacs (25))) "Show total clocked time of the current day in the mode line" single ((:commit . "e326a45b60e0fd4ca057f1d1dc3e99a516a5aa2f") (:authors ("Tijs Mallaerts" . "tijs.mallaerts@gmail.com")) (:maintainer "Tijs Mallaerts" . "tijs.mallaerts@gmail.com") (:url . "https://github.com/mallt/org-clock-today-mode"))])
|
||||
(org-clock-today . [(20220918 514) ((emacs (25))) "Show total clocked time of the current day in the mode line" single ((:commit . "b73cca120eb64538ab0666892a8b97b6d65b4d6b") (:authors ("Tijs Mallaerts" . "tijs.mallaerts@gmail.com")) (:maintainer "Tijs Mallaerts" . "tijs.mallaerts@gmail.com") (:url . "https://github.com/mallt/org-clock-today-mode"))])
|
||||
(org-commentary . [(20160802 637) ((dash (2 0)) (emacs (24 4)) (org (8 0))) "generate or update conventional library headers using Org mode files" tar ((:commit . "821ccb994811359c42f4e3d459e0e88849d42b75") (:authors ("Sergei Maximov" . "s.b.maximov@gmail.com")) (:maintainer "Sergei Maximov" . "s.b.maximov@gmail.com") (:keywords "convenience" "docs" "tools") (:url . "https://github.com/smaximov/org-commentary"))])
|
||||
(org-contacts . [(20220910 436) ((emacs (27 1)) (org (9 3 4))) "Contacts management system for Org Mode" single ((:commit . "217ba04c9d638067a6ccb0829cf1885f54c1d568") (:authors ("Julien Danjou" . "julien@danjou.info")) (:maintainer "stardiviner" . "numbchild@gmail.com") (:keywords "contacts" "org-mode" "outlines" "hypermedia" "calendar") (:url . "https://repo.or.cz/org-contacts.git"))])
|
||||
(org-context . [(20220606 1339) nil "Contextual capture and agenda commands for Org-mode" single ((:commit . "47bd45149cb74dab2ebecccfb918f6f8502a4f2c") (:authors ("Sylvain Rousseau <thisirs at gmail dot com>")) (:maintainer "Sylvain Rousseau <thisirs at gmail dot com>") (:keywords "org" "capture" "agenda" "convenience") (:url . "https://github.com/thisirs/org-context"))])
|
||||
|
@ -3504,7 +3503,7 @@
|
|||
(org-inline-pdf . [(20220429 1012) ((emacs (25 1)) (org (9 4))) "Inline PDF previewing for Org" single ((:commit . "b790818ecbb85cd6dee44754935eb12153a79679") (:authors ("Shigeaki Nishina")) (:maintainer "Shigeaki Nishina") (:keywords "org" "outlines" "hypermedia") (:url . "https://github.com/shg/org-inline-pdf.el"))])
|
||||
(org-iv . [(20171001 1022) ((impatient-mode (1 0 0)) (org (8 0)) (cl-lib (0 5))) "a tool used to view html (in browser) generated by org-file once the org-file changes" tar ((:commit . "7f2bb1b32647655fd9d6684f6f09dcc66b61b0cd") (:authors ("kuangdash" . "kuangdash@163.com")) (:maintainer "kuangdash" . "kuangdash@163.com") (:url . "https://github.com/kuangdash/org-iv"))])
|
||||
(org-jira . [(20220725 1808) ((emacs (24 5)) (cl-lib (0 5)) (request (0 2 0)) (dash (2 14 1))) "Syncing between Jira and Org-mode." tar ((:commit . "9510f2010750c5c74b6c1be7e06939afd64aa39b") (:maintainer "Matthew Carter" . "m@ahungry.com") (:keywords "ahungry" "jira" "org" "bug" "tracker") (:url . "https://github.com/ahungry/org-jira"))])
|
||||
(org-journal . [(20220408 629) ((emacs (25 1)) (org (9 1))) "a simple org-mode based journaling mode" single ((:commit . "839a2e19865a03bec30ef32431f981f33880a754") (:authors ("Bastian Bechtold") ("Christian Schwarzgruber")) (:maintainer "Bastian Bechtold") (:url . "http://github.com/bastibe/org-journal"))])
|
||||
(org-journal . [(20220920 1514) ((emacs (25 1)) (org (9 1))) "a simple org-mode based journaling mode" single ((:commit . "1ea9e3b672ed384922ede6af96598446f3691873") (:authors ("Bastian Bechtold") ("Christian Schwarzgruber")) (:maintainer "Bastian Bechtold") (:url . "http://github.com/bastibe/org-journal"))])
|
||||
(org-journal-list . [(20190221 2052) ((emacs (25))) "Org mode Journal List" single ((:commit . "2b26d00181bb49bff64b31ad020490acd1b6ae02") (:authors ("Huy Tran" . "huytd189@gmail.com")) (:maintainer "Huy Tran" . "huytd189@gmail.com") (:url . "https://github.com/huytd/org-journal-list"))])
|
||||
(org-journal-tags . [(20220815 1604) ((emacs (27 1)) (org-journal (2 1 2)) (magit-section (3 3 0)) (transient (0 3 7))) "Tagging and querying system for org-journal" single ((:commit . "c7db858aef69501b2878a7c2aed4ad0447842b4e") (:authors ("Korytov Pavel" . "thexcloud@gmail.com")) (:maintainer "Korytov Pavel" . "thexcloud@gmail.com") (:url . "https://github.com/SqrtMinusOne/org-journal-tags"))])
|
||||
(org-kanban . [(20220723 1216) ((s (0)) (dash (2 17 0)) (emacs (24 4)) (org (9 1))) "kanban dynamic block for org-mode." single ((:commit . "e78deb03880ae89d6bceae6563ef1383526233a1") (:authors ("Christian Köstlin" . "christian.koestlin@gmail.com")) (:maintainer "Christian Köstlin" . "christian.koestlin@gmail.com") (:keywords "org-mode" "org" "kanban" "tools") (:url . "http://github.com/gizmomogwai/org-kanban"))])
|
||||
|
@ -3520,7 +3519,7 @@
|
|||
(org-mind-map . [(20180826 2340) ((emacs (24)) (dash (1 8 0)) (org (8 2 10))) "Creates a directed graph from org-mode files" single ((:commit . "41df4b2e30455494f1848b4e06cc9208aa9e902b") (:authors ("Ted Wiles" . "theodore.wiles@gmail.com")) (:maintainer "Ted Wiles" . "theodore.wiles@gmail.com") (:keywords "orgmode" "extensions" "graphviz" "dot") (:url . "https://github.com/theodorewiles/org-mind-map"))])
|
||||
(org-ml . [(20220711 1528) ((emacs (27 1)) (org (9 3)) (dash (2 17)) (s (1 12))) "Functional Org Mode API" tar ((:commit . "385e3bee497f858705144d7ab5e6570d31d3ffe8") (:authors ("Nathan Dwarshuis" . "ndwar@yavin4.ch")) (:maintainer "Nathan Dwarshuis" . "ndwar@yavin4.ch") (:keywords "org-mode" "outlines") (:url . "https://github.com/ndwarshuis/org-ml"))])
|
||||
(org-mobile-sync . [(20180606 524) ((emacs (24 3 50)) (org (8 0))) "automatically sync org-mobile on changes" single ((:commit . "06764b943a528827df1e2acc6bc7806cc2c1351f") (:authors ("steckerhalter")) (:maintainer "steckerhalter") (:keywords "org-mode" "org" "mobile" "sync" "todo") (:url . "https://framagit.org/steckerhalter/org-mobile-sync"))])
|
||||
(org-modern . [(20220914 1432) ((emacs (27 1))) "Modern looks for Org" single ((:commit . "d6307eefcc1576579f21defb1a18cac2f693a194") (:authors ("Daniel Mendler" . "mail@daniel-mendler.de")) (:maintainer "Daniel Mendler" . "mail@daniel-mendler.de") (:url . "https://github.com/minad/org-modern"))])
|
||||
(org-modern . [(20220915 1915) ((emacs (27 1))) "Modern looks for Org" single ((:commit . "828cf100c62fc9dfb50152c192ac3a968c1b54bc") (:authors ("Daniel Mendler" . "mail@daniel-mendler.de")) (:maintainer "Daniel Mendler" . "mail@daniel-mendler.de") (:url . "https://github.com/minad/org-modern"))])
|
||||
(org-movies . [(20210920 101) ((emacs (26 1)) (org (9 0)) (request (0 3 0))) "Manage watchlist with Org mode" single ((:commit . "e96fecaffa2924de64a507aa31d2934e667ee1ea") (:authors ("Anh T Nguyen")) (:maintainer "Anh T Nguyen") (:keywords "hypermedia" "outlines" "org") (:url . "https://github.com/teeann/org-movies"))])
|
||||
(org-mru-clock . [(20220902 654) ((emacs (26 1))) "Clock in/out of tasks with completion and persistent history" single ((:commit . "2d3374a1b758a04f08f75b2a5fe05e99989077c1") (:authors ("Kevin Brubeck Unhammer" . "unhammer@fsfe.org")) (:maintainer "Kevin Brubeck Unhammer" . "unhammer@fsfe.org") (:keywords "convenience" "calendar") (:url . "https://github.com/unhammer/org-mru-clock"))])
|
||||
(org-msg . [(20220809 1736) ((emacs (24 4)) (htmlize (1 54))) "Org mode to send and reply to email in HTML." single ((:commit . "e0174324ac37a63ed36869c7632dd7139f1b2419") (:authors ("Jérémy Compostella" . "jeremy.compostella@gmail.com")) (:maintainer "Jérémy Compostella" . "jeremy.compostella@gmail.com") (:keywords "extensions" "mail") (:url . "https://github.com/jeremy-compostella/org-msg"))])
|
||||
|
@ -3612,7 +3611,7 @@
|
|||
(org-working-set . [(20220414 1402) ((org (9 3)) (dash (2 12)) (s (1 12)) (emacs (26 3))) "Manage and visit a small set of org-nodes." single ((:commit . "6af54ed3a5d9bf90629223157803c42f5d3b152c") (:authors ("Marc Ihm" . "1@2484.de")) (:maintainer "Marc Ihm" . "1@2484.de") (:url . "https://github.com/marcIhm/org-working-set"))])
|
||||
(org-wunderlist . [(20191017 1917) ((request-deferred (0 2 0)) (alert (1 1)) (emacs (24)) (cl-lib (0 5)) (org (8 2 4)) (s (1 9 0))) "Org sync with Wunderlist" single ((:commit . "1a084bb49be4b5a1066db9cd9b7da2f8efab293f") (:authors ("myuhe <yuhei.maeda_at_gmail.com>")) (:maintainer "myuhe") (:keywords "convenience") (:url . "https://github.com/myuhe/org-wunderlist.el"))])
|
||||
(org-zettelkasten . [(20220819 2335) ((emacs (24 3)) (org (9 0))) "Helper functions to use Zettelkasten in org-mode" single ((:commit . "c1f3ca9368a43638de7a0e78a0dceaa0f8943c37") (:authors ("Yann Herklotz" . "yann@ymhg.org")) (:maintainer "Yann Herklotz" . "yann@ymhg.org") (:keywords "files" "hypermedia" "org" "notes") (:url . "https://github.com/ymherklotz/emacs-zettelkasten"))])
|
||||
(org2blog . [(20220909 302) ((htmlize (1 56)) (hydra (0 15 0)) (xml-rpc (1 6 15)) (writegood-mode (2 2 0)) (metaweblog (1 1 14))) "Blog from Org mode to WordPress" tar ((:commit . "4df3158bfd78c4e601b9bd78bc15b1c7243be9fc") (:authors ("Puneeth Chaganti" . "punchagan+org2blog@gmail.com")) (:maintainer "Grant Rettke" . "grant@wisdomandwonder.com") (:keywords "comm" "convenience" "outlines" "wp") (:url . "https://github.com/org2blog/org2blog"))])
|
||||
(org2blog . [(20220919 2119) ((htmlize (1 56)) (hydra (0 15 0)) (xml-rpc (1 6 15)) (writegood-mode (2 2 0)) (metaweblog (1 1 15))) "Blog from Org mode to WordPress" tar ((:commit . "a87e5d665838478dc03416f078e7d6f2100604ea") (:authors ("Puneeth Chaganti" . "punchagan+org2blog@gmail.com")) (:maintainer "Grant Rettke" . "grant@wisdomandwonder.com") (:keywords "comm" "convenience" "outlines" "wp") (:url . "https://github.com/org2blog/org2blog"))])
|
||||
(org2ctex . [(20200331 550) ((emacs (24 4))) "Export org to ctex (a latex macro for Chinese)" single ((:commit . "2e40aa5e78b0562516f46f689e7b74cdf451cc2a") (:authors ("Feng Shu" . "tumashu@163.com")) (:maintainer "Feng Shu" . "tumashu@163.com") (:url . "https://github.com/tumashu/org2ctex"))])
|
||||
(org2elcomment . [(20170324 945) ((org (8 3 4))) "Convert Org file to Elisp comments" single ((:commit . "c88a75d9587c484ead18f7adf08592b09c1cceb0") (:authors ("Junpeng Qiu" . "qjpchmail@gmail.com")) (:maintainer "Junpeng Qiu" . "qjpchmail@gmail.com") (:keywords "extensions"))])
|
||||
(org2issue . [(20190531 941) ((org (8 0)) (emacs (24 4)) (ox-gfm (0 1)) (gh (0 1)) (s (20160405 920))) "export org to github issue" single ((:commit . "910b98c858762fd14b11d261626c5e979dde0833") (:authors ("DarkSun" . "lujun9972@gmail.com")) (:maintainer "DarkSun" . "lujun9972@gmail.com") (:keywords "convenience" "github" "org") (:url . "https://github.com/lujun9972/org2issue"))])
|
||||
|
@ -3750,7 +3749,7 @@
|
|||
(parrot . [(20220101 518) ((emacs (24 1))) "Party Parrot rotates gracefully in mode-line." tar ((:commit . "1d381f24d74242018e306d1a0c891bed9a465ac3") (:authors ("Daniel Ting" . "deep.paren.12@gmail.com")) (:maintainer "Daniel Ting" . "deep.paren.12@gmail.com") (:keywords "party" "parrot" "rotate" "sirocco" "kakapo" "games") (:url . "https://github.com/dp12/parrot.git"))])
|
||||
(parse-csv . [(20160512 1723) nil "Parse strings with CSV fields into s-expressions" single ((:commit . "96bef1ffbc89ea12d13311c9fa239c5c3e864890") (:authors ("Edward Marco Baringer (Common Lisp)") ("Matt Curtis" . "matt.r.curtis@gmail.com")) (:maintainer "Matt Curtis" . "matt.r.curtis@gmail.com") (:keywords "csv") (:url . "https://github.com/mrc/el-csv"))])
|
||||
(parse-it . [(20220704 640) ((emacs (25 1)) (s (1 12 0))) "Basic Parser in Emacs Lisp" tar ((:commit . "c1b5ce15a5bcb80595f45e2fc3bda828f525859f") (:authors ("Shen, Jen-Chieh" . "jcs090218@gmail.com")) (:maintainer "Shen, Jen-Chieh" . "jcs090218@gmail.com") (:keywords "convenience" "parse" "parser" "lex" "lexer" "ast") (:url . "https://github.com/jcs-elpa/parse-it"))])
|
||||
(parsebib . [(20220730 2341) ((emacs (25 1))) "A library for parsing bib files" single ((:commit . "ca7f5fcbbdfb38e84fd1740e14dad32a7081c69e") (:authors ("Joost Kremers" . "joostkremers@fastmail.fm")) (:maintainer "Joost Kremers" . "joostkremers@fastmail.fm") (:keywords "text" "bibtex") (:url . "https://github.com/joostkremers/parsebib"))])
|
||||
(parsebib . [(20220916 2236) ((emacs (25 1))) "A library for parsing bib files" single ((:commit . "f87b0fd64abb61e6ed5ac01813fb1ee98eb7d3bf") (:authors ("Joost Kremers" . "joostkremers@fastmail.fm")) (:maintainer "Joost Kremers" . "joostkremers@fastmail.fm") (:keywords "text" "bibtex") (:url . "https://github.com/joostkremers/parsebib"))])
|
||||
(parsec . [(20180730 16) ((emacs (24)) (cl-lib (0 5))) "Parser combinator library" single ((:commit . "2cbbbc2254aa7bcaa4fb5e07c8c1bf2f381dba26") (:authors ("Junpeng Qiu" . "qjpchmail@gmail.com")) (:maintainer "Junpeng Qiu" . "qjpchmail@gmail.com") (:keywords "extensions") (:url . "https://github.com/cute-jumper/parsec.el"))])
|
||||
(parseclj . [(20220422 936) ((emacs (25))) "Clojure/EDN parser" tar ((:commit . "4d0e780e00f1828b00c43099e6eebc6582998f72") (:authors ("Arne Brasseur" . "arne@arnebrasseur.net")) (:maintainer "Arne Brasseur" . "arne@arnebrasseur.net") (:keywords "lisp" "clojure" "edn" "parser"))])
|
||||
(parseedn . [(20220520 835) ((emacs (26)) (parseclj (1 1 0)) (map (2))) "Clojure/EDN parser" single ((:commit . "a09686fbb9113b8b1b4f20c9e1dc0d6fea01a64f") (:authors ("Arne Brasseur" . "arne@arnebrasseur.net")) (:maintainer "Arne Brasseur" . "arne@arnebrasseur.net") (:keywords "lisp" "clojure" "edn" "parser"))])
|
||||
|
@ -3803,11 +3802,11 @@
|
|||
(persp-mode-project-bridge . [(20220115 602) ((emacs (27 1)) (persp-mode (2 9))) "Integration of persp-mode + project.el" single ((:commit . "cacc22942ca5dffdfc3d16cf88576ce0bd9e3a68") (:authors ("Constantin Kulikov (Bad_ptr)" . "zxnotdead@gmail.com") ("Siavash Askari Nasr" . "siavash.askari.nasr@gmail.com")) (:maintainer "Siavash Askari Nasr" . "siavash.askari.nasr@gmail.com") (:keywords "vc" "persp-mode" "perspective" "project" "project.el") (:url . "https://github.com/CIAvash/persp-mode-project-bridge"))])
|
||||
(persp-mode-projectile-bridge . [(20170315 1120) ((persp-mode (2 9)) (projectile (0 13 0)) (cl-lib (0 5))) "persp-mode + projectile integration." single ((:commit . "f6453cd7b8b4352c06e771706f2c5b7e2cdff1ce") (:authors ("Constantin Kulikov (Bad_ptr)" . "zxnotdead@gmail.com")) (:maintainer "Constantin Kulikov (Bad_ptr)" . "zxnotdead@gmail.com") (:keywords "persp-mode" "projectile") (:url . "https://github.com/Bad-ptr/persp-mode-projectile-bridge.el"))])
|
||||
(persp-projectile . [(20210618 708) ((perspective (1 9)) (projectile (2 4)) (cl-lib (0 3))) "Perspective integration with Projectile" single ((:commit . "6e4c2e017d59d10d627cf95b2bb9f9fa2b22a3a3") (:authors ("Daniel Wu")) (:maintainer "Daniel Wu") (:keywords "project" "convenience"))])
|
||||
(perspective . [(20220908 1514) ((emacs (24 4)) (cl-lib (0 5))) "switch between named \"perspectives\" of the editor" single ((:commit . "4cb9be75a41b66ec91d95464f1eed34cb1ea3b0a") (:authors ("Natalie Weizenbaum" . "nex342@gmail.com")) (:maintainer "Natalie Weizenbaum" . "nex342@gmail.com") (:keywords "workspace" "convenience" "frames") (:url . "http://github.com/nex3/perspective-el"))])
|
||||
(perspective . [(20220921 346) ((emacs (24 4)) (cl-lib (0 5))) "switch between named \"perspectives\" of the editor" single ((:commit . "8a69512639ae915c32c5055d1308ebf4b278266c") (:authors ("Natalie Weizenbaum" . "nex342@gmail.com")) (:maintainer "Natalie Weizenbaum" . "nex342@gmail.com") (:keywords "workspace" "convenience" "frames") (:url . "http://github.com/nex3/perspective-el"))])
|
||||
(perspective-exwm . [(20220125 1939) ((emacs (27 1)) (burly (0 2 -1)) (exwm (0 26)) (perspective (2 17))) "Better integration for perspective.el and EXWM" single ((:commit . "541946caa0359c14c90da58196bec7baed122a46") (:authors ("Korytov Pavel" . "thexcloud@gmail.com")) (:maintainer "Korytov Pavel" . "thexcloud@gmail.com") (:url . "https://github.com/SqrtMinusOne/perspective-exwm.el"))])
|
||||
(perspeen . [(20171203 1021) ((emacs (25 0)) (powerline (2 4))) "An package for multi-workspace" tar ((:commit . "edb70c530bda50ff3d1756e32a703d5fef5e5480") (:authors ("Peng Li" . "seudut@gmail.com")) (:maintainer "Peng Li" . "seudut@gmail.com") (:keywords "lisp") (:url . "https://github.com/seudut/perspeen"))])
|
||||
(pest-mode . [(20200321 504) ((emacs (26 3))) "Major mode for editing Pest files" single ((:commit . "e71e2f2730e926ee936ff7be15d912de27547e9e") (:authors ("ksqsf" . "i@ksqsf.moe")) (:maintainer "ksqsf" . "i@ksqsf.moe") (:keywords "languages") (:url . "https://github.com/ksqsf/pest-mode"))])
|
||||
(pet . [(20220905 2004) ((emacs (26 1)) (f (0 6 0))) "Executable and virtualenv tracker for python-mode" single ((:commit . "90bb4bff1e16210d7e8de72ea0e4ded83e863da0") (:authors ("Jimmy Yuen Ho Wong" . "wyuenho@gmail.com")) (:maintainer "Jimmy Yuen Ho Wong" . "wyuenho@gmail.com") (:keywords "tools") (:url . "https://github.com/wyuenho/emacs-pet/"))])
|
||||
(pet . [(20220917 2111) ((emacs (26 1)) (f (0 6 0))) "Executable and virtualenv tracker for python-mode" single ((:commit . "7620c18223f126c384dbf42b0b167a6066a81dd1") (:authors ("Jimmy Yuen Ho Wong" . "wyuenho@gmail.com")) (:maintainer "Jimmy Yuen Ho Wong" . "wyuenho@gmail.com") (:keywords "tools") (:url . "https://github.com/wyuenho/emacs-pet/"))])
|
||||
(pfuture . [(20220913 1401) ((emacs (25 2))) "a simple wrapper around asynchronous processes" single ((:commit . "19b53aebbc0f2da31de6326c495038901bffb73c") (:authors ("Alexander Miller" . "alexanderm@web.de")) (:maintainer "Alexander Miller" . "alexanderm@web.de") (:url . "https://github.com/Alexander-Miller/pfuture"))])
|
||||
(pg . [(20130731 2142) nil "Emacs Lisp interface to the PostgreSQL RDBMS" single ((:commit . "4f6516ec3946d95dcef49abb6703cc89ecb5183d") (:authors ("Eric Marsden" . "emarsden@laas.fr")) (:maintainer "Helmut Eller" . "heller@common-lisp.net") (:keywords "data" "comm" "database" "postgresql"))])
|
||||
(pgdevenv . [(20150105 2236) nil "Manage your PostgreSQL development envs" tar ((:commit . "7f1d5bc734750aca98cf67a9491cdbd5615fd132") (:authors ("Dimitri Fontaine" . "dim@tapoueh.org")) (:maintainer "Dimitri Fontaine" . "dim@tapoueh.org") (:keywords "emacs" "postgresql" "development" "environment" "shell" "debug" "gdb"))])
|
||||
|
@ -3827,7 +3826,7 @@
|
|||
(php-boris-minor-mode . [(20140209 1835) ((php-boris (0 0 1)) (highlight (0))) "a minor mode to evaluate PHP code in the Boris repl" single ((:commit . "8648eba604e4ff82ef6594a2c5ee4cb4825e6235") (:authors ("steckerhalter")) (:maintainer "steckerhalter") (:keywords "php" "repl" "eval") (:url . "https://github.com/steckerhalter/php-boris-minor-mode"))])
|
||||
(php-cs-fixer . [(20220516 1008) ((cl-lib (0 5))) "php-cs-fixer wrapper." single ((:commit . "efe4368d891f1eec6311363cfd6be3e9eadb5e0a") (:authors ("Philippe Ivaldi for OVYA")) (:maintainer "Philippe Ivaldi for OVYA") (:keywords "languages" "php") (:url . "https://github.com/OVYA/php-cs-fixer"))])
|
||||
(php-eldoc . [(20140202 1941) nil "eldoc backend for php" tar ((:commit . "df05064146b884d9081e10657e32dc480f070cfe") (:authors ("sabof")) (:maintainer "sabof") (:url . "https://github.com/sabof/php-eldoc"))])
|
||||
(php-mode . [(20220911 1543) ((emacs (25 2))) "Major mode for editing PHP code" tar ((:commit . "6f9a471e5c0399e9277c1ad6af05de72b642c87a") (:authors ("Eric James Michael Ritz")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:keywords "languages" "php") (:url . "https://github.com/emacs-php/php-mode"))])
|
||||
(php-mode . [(20220917 1904) ((emacs (25 2))) "Major mode for editing PHP code" tar ((:commit . "6513efaf6fd062aaa5ed542a710394553fe1c4e1") (:authors ("Eric James Michael Ritz")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:keywords "languages" "php") (:url . "https://github.com/emacs-php/php-mode"))])
|
||||
(php-quickhelp . [(20210819 2025) ((emacs (25 1))) "Quickhelp at point for php" single ((:commit . "d5e11b7a6bad64550521e8822139a33218b8c9bb") (:authors ("Vincenzo Pupillo")) (:maintainer "Vincenzo Pupillo") (:url . "https://github.com/vpxyz/php-quickhelp"))])
|
||||
(php-refactor-mode . [(20171124 635) nil "Minor mode to quickly and safely perform common refactorings" single ((:commit . "d06dabd9ca743a04067e02282b69d7b7467fb4b7") (:authors ("Matthew M. Keeler" . "keelerm84@gmail.com")) (:maintainer "Matthew M. Keeler" . "keelerm84@gmail.com") (:keywords "php" "refactor") (:url . "https://github.com/keelerm84/php-refactor-mode.el"))])
|
||||
(php-runtime . [(20181212 1825) ((emacs (25)) (cl-lib (0 5)) (f (0 20)) (s (1 7))) "Language binding bridge to PHP" single ((:commit . "017e0e70f07d6b25e37d5c5f4d271a914b677631") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:keywords "processes" "php") (:url . "https://github.com/emacs-php/php-runtime.el"))])
|
||||
|
@ -3856,6 +3855,7 @@
|
|||
(pipenv . [(20220514 123) ((emacs (25 1)) (s (1 12 0)) (pyvenv (1 20)) (load-env-vars (0 0 2))) "A Pipenv porcelain" single ((:commit . "3af159749824c03f59176aff7f66ddd6a5785a10") (:authors ("Paul Walsh" . "paulywalsh@gmail.com")) (:maintainer "Paul Walsh" . "paulywalsh@gmail.com") (:url . "https://github.com/pwalsh/pipenv.el"))])
|
||||
(pipewire . [(20220725 1858) ((emacs (28 1))) "PipeWire user interface" tar ((:commit . "115a8a89a3a0c6a89ebe22df0ef0928a701cb1f0") (:authors ("Milan Zamazal" . "pdm@zamazal.org")) (:maintainer "Milan Zamazal" . "pdm@zamazal.org") (:keywords "multimedia") (:url . "https://git.zamazal.org/pdm/pipewire-0"))])
|
||||
(pippel . [(20220416 1743) ((emacs (25 1)) (s (1 11 0)) (dash (2 12 0))) "Frontend to python package manager pip" tar ((:commit . "19153aa8845aa95d080f224d4fcaf2d75224bd5a") (:authors ("Fritz Stelzer" . "brotzeitmacher@gmail.com")) (:maintainer "Arif Er" . "arifer612@protonmail.me") (:url . "https://github.com/arifer612/pippel"))])
|
||||
(pixelblaze . [(20220918 1925) ((emacs (27 1)) (websocket (1 13))) "Interact with a Pixelblaze via Websocket" single ((:commit . "564a093f700a3292cbffb3887dd3a8d789f54e6d") (:authors ("Mark Grosen" . "mark@grosen.org")) (:maintainer "Mark Grosen" . "mark@grosen.org") (:keywords "games" "pixelblaze" "neopixel" "ws2812" "sk6812") (:url . "https://github.com/mgsb/emacs-pixelblaze"))])
|
||||
(pixie-mode . [(20180626 541) ((clojure-mode (3 0 1)) (inf-clojure (1 0 0))) "Major mode for Pixie-lang" single ((:commit . "a40c2632cfbe948852a5cdcfd44e6a65db11834d") (:authors ("John Walker" . "john.lou.walker@gmail.com")) (:maintainer "John Walker" . "john.lou.walker@gmail.com") (:url . "https://github.com/johnwalker/pixie-mode"))])
|
||||
(pixiv-novel-mode . [(20160220 1421) nil "Major mode for pixiv novel" single ((:commit . "0d1ca524d92b91f20a7105402a773bc21779b434") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:keywords "novel" "pixiv"))])
|
||||
(pkg-info . [(20150517 1143) ((epl (0 8))) "Information about packages" single ((:commit . "4dbe328c9eced79e0004e3fdcd7bfb997a928be5") (:authors ("Sebastian Wiesner" . "swiesner@lunaryorn.com")) (:maintainer "Sebastian Wiesner" . "swiesner@lunaryorn.com") (:keywords "convenience") (:url . "https://github.com/lunaryorn/pkg-info.el"))])
|
||||
|
@ -4012,6 +4012,7 @@
|
|||
(ptemplate . [(20210324 1446) ((emacs (25 1)) (yasnippet (0 13 0))) "Project templates" single ((:commit . "b81cc7be8865745c3a60177a244d2a69729ab21b") (:authors ("Nikita Bloshchanevich" . "nikblos@outlook.com")) (:maintainer "Nikita Bloshchanevich" . "nikblos@outlook.com") (:url . "https://github.com/nbfalcon/ptemplate"))])
|
||||
(ptemplate-templates . [(20210324 1443) ((emacs (25 1)) (ptemplate (2 0 0))) "Official templates" tar ((:commit . "3788387973dde3101f9a3f2064572be033c59ad6") (:authors ("Nikita Bloshchanevich" . "nikblos@outlook.com")) (:maintainer "Nikita Bloshchanevich" . "nikblos@outlook.com") (:url . "https://github.com/nbfalcon/ptemplate-templates"))])
|
||||
(pubmed . [(20220710 2149) ((emacs (26 1)) (esxml (0 3 4)) (s (1 12 0)) (unidecode (0 2))) "Interface to PubMed" tar ((:commit . "7e38b3f8ec72618b89afdeaa113f1787dcb690ca") (:authors ("Folkert van der Beek" . "folkertvanderbeek@gmail.com")) (:maintainer "Folkert van der Beek" . "folkertvanderbeek@gmail.com") (:keywords "pubmed" "hypermedia") (:url . "https://gitlab.com/fvdbeek/emacs-pubmed"))])
|
||||
(pueue . [(20220915 1249) ((emacs (28 1)) (with-editor (3 0 4))) "Interface for pueue" single ((:commit . "169ffd565462cb72eaff0b376d1f37c81a4b5fbb") (:authors ("Valeriy Litkovskyy" . "vlr.ltkvsk@protonmail.com")) (:maintainer "Valeriy Litkovskyy" . "vlr.ltkvsk@protonmail.com") (:keywords "processes") (:url . "https://github.com/xFA25E/pueue"))])
|
||||
(pug-mode . [(20211114 1645) ((emacs (24 4)) (cl-lib (0 5))) "Major mode for jade/pug template files" single ((:commit . "73f8c2f95eba695f701df20c8436f49abadebdc1") (:authors ("Nathan Weizenbaum")) (:maintainer "Henrik Lissner" . "contact@henrik.io") (:keywords "markup" "language" "jade" "pug") (:url . "https://github.com/hlissner/emacs-pug-mode"))])
|
||||
(pulseaudio-control . [(20220418 742) nil "Use `pactl' to manage PulseAudio volumes." single ((:commit . "22f54ae7282b37eaec0231a21e60213a5dbc7172") (:authors ("Alexis" . "flexibeast@gmail.com") ("Ellington Santos" . "ellingtonsantos@gmail.com") ("Sergey Trofimov" . "sarg@sarg.org.ru")) (:maintainer "Alexis" . "flexibeast@gmail.com") (:keywords "multimedia" "hardware" "sound" "pulseaudio") (:url . "https://github.com/flexibeast/pulseaudio-control"))])
|
||||
(punctuality-logger . [(20141120 2031) nil "Punctuality logger for Emacs" single ((:commit . "d76c5d5589a4f8a94cc5537686d9a3b46ea7cc59") (:authors ("Philip Woods" . "elzairthesorcerer@gmail.com")) (:maintainer "Philip Woods" . "elzairthesorcerer@gmail.com") (:keywords "reminder" "calendar") (:url . "https://gitlab.com/elzair/punctuality-logger"))])
|
||||
|
@ -4031,6 +4032,7 @@
|
|||
(py-import-check . [(20130802 1111) nil "Finds the unused python imports using importchecker" single ((:commit . "38ad91e67047bd37231497d11d409d064d510f98") (:authors ("Sibi" . "sibi@psibi.in")) (:maintainer "Sibi" . "sibi@psibi.in") (:keywords "python" "import" "check") (:url . "https://github.com/psibi/emacs-py-import-check"))])
|
||||
(py-isort . [(20160925 1018) nil "Use isort to sort the imports in a Python buffer" single ((:commit . "e67306f459c47c53a65604e4eea88a3914596560") (:authors ("Friedrich Paetzke" . "paetzke@fastmail.fm")) (:maintainer "Friedrich Paetzke" . "paetzke@fastmail.fm") (:url . "http://paetzke.me/project/py-isort.el"))])
|
||||
(py-smart-operator . [(20170531 1209) ((s (1 9 0))) "smart-operator for python-mode" single ((:commit . "0c8a66faca4b35158d0b5885472cb75286039167") (:authors ("Rustem Muslimov" . "r.muslimov@gmail.com")) (:maintainer "Rustem Muslimov" . "r.muslimov@gmail.com") (:keywords "python" "convenience" "smart-operator"))])
|
||||
(py-snippets . [(20220918 952) ((yasnippet (0 8 0))) "Collection of advanced Python yasnippet snippets" tar ((:commit . "1a85c41ea33f33e5b4a5a12a64fd9c4591fc0bcb") (:authors ("Gustaf Waldemarson" . "gustaf.waldemarson@gmail.com")) (:maintainer "Gustaf Waldemarson" . "gustaf.waldemarson@gmail.com") (:keywords "convenience" "snippets") (:url . "https://github.com/Xaldew/py-snippets"))])
|
||||
(py-test . [(20151117 622) ((dash (2 9 0)) (f (0 17)) (emacs (24 4))) "A test runner for Python code." single ((:commit . "3b2a0bdaacb54df6f2bee8317423e5c0d159d5cf") (:authors ("Bogdan Paul Popa" . "popa.bogdanp@gmail.com")) (:maintainer "Bogdan Paul Popa" . "popa.bogdanp@gmail.com") (:keywords "python" "testing" "py.test") (:url . "https://github.com/Bogdanp/py-test.el"))])
|
||||
(py-yapf . [(20160925 1122) nil "Use yapf to beautify a Python buffer" single ((:commit . "a878304202ad827a1f3de3dce1badd9ca8731146") (:authors ("Friedrich Paetzke" . "f.paetzke@gmail.com")) (:maintainer "Friedrich Paetzke" . "f.paetzke@gmail.com") (:url . "https://github.com/paetzke/py-yapf.el"))])
|
||||
(pycarddavel . [(20150831 1216) ((helm (1 7 0)) (emacs (24 0))) "Integrate pycarddav" single ((:commit . "6ead921066fa0156f20155b7126e5875ce11c328") (:authors ("Damien Cassou" . "damien@cassou.me")) (:maintainer "Damien Cassou" . "damien@cassou.me") (:keywords "helm" "pyccarddav" "carddav" "message" "mu4e" "contacts"))])
|
||||
|
@ -4039,7 +4041,7 @@
|
|||
(pyenv-mode . [(20200518 1521) ((pythonic (0 1 0))) "Integrate pyenv with python-mode" single ((:commit . "d191037fe62ed8d4fee5888845da3e2c386d8e89") (:authors ("Artem Malyshev" . "proofit404@gmail.com")) (:maintainer "Artem Malyshev" . "proofit404@gmail.com") (:url . "https://github.com/proofit404/pyenv-mode"))])
|
||||
(pygen . [(20161121 506) ((elpy (1 12 0)) (python-mode (6 2 2)) (dash (2 13 0))) "Python code generation using Elpy and Python-mode." single ((:commit . "3a5d1d1a0640865b15be05cd1eeb33bb4793b622") (:authors ("Jack Crawley <http://www.github.com/jackcrawley>")) (:maintainer "Jack Crawley <http://www.github.com/jackcrawley>") (:keywords "python" "code generation") (:url . "https://github.com/JackCrawley/pygen/"))])
|
||||
(pygn-mode . [(20220531 1422) ((emacs (26 1)) (tree-sitter (0 15 2)) (tree-sitter-langs (0 10 7)) (uci-mode (0 5 4)) (nav-flash (1 0 0)) (ivy (0 10 0))) "Major-mode for chess PGN files, powered by Python" tar ((:commit . "9a56e701cfcdf9024dda15175e0d0fc645446019") (:authors ("Dodge Coates and Roland Walker")) (:maintainer "Dodge Coates and Roland Walker") (:keywords "data" "games" "chess") (:url . "https://github.com/dwcoates/pygn-mode"))])
|
||||
(pyim . [(20220913 14) ((emacs (25 1)) (async (1 6)) (xr (1 13))) "A Chinese input method support quanpin, shuangpin, wubi, cangjie and rime." tar ((:commit . "3263ac79fa5a6521b692256458a98f8ffc95dc06") (:authors ("Ye Wenbin" . "wenbinye@163.com") ("Feng Shu" . "tumashu@163.com")) (:maintainer "Feng Shu" . "tumashu@163.com") (:keywords "convenience" "chinese" "pinyin" "input-method") (:url . "https://github.com/tumashu/pyim"))])
|
||||
(pyim . [(20220919 421) ((emacs (25 1)) (async (1 6)) (xr (1 13))) "A Chinese input method support quanpin, shuangpin, wubi, cangjie and rime." tar ((:commit . "d1b28087e261814de5b3200629b023c403cb93d4") (:authors ("Ye Wenbin" . "wenbinye@163.com") ("Feng Shu" . "tumashu@163.com")) (:maintainer "Feng Shu" . "tumashu@163.com") (:keywords "convenience" "chinese" "pinyin" "input-method") (:url . "https://github.com/tumashu/pyim"))])
|
||||
(pyim-basedict . [(20220614 1108) nil "The default pinyin dict of pyim" tar ((:commit . "d61af27686f7a39e6c138b7261a686e7ea7a0ef7") (:authors ("Feng Shu" . "tumashu@163.com")) (:maintainer "Feng Shu" . "tumashu@163.com") (:keywords "convenience" "chinese" "pinyin" "input-method" "complete") (:url . "https://github.com/tumashu/pyim-basedict"))])
|
||||
(pyim-cangjiedict . [(20210617 934) ((pyim (3 7))) "Some cangjie dicts for pyim" tar ((:commit . "d17e3d32a6480939b350a91a915ebe8e6efad819") (:authors ("Yuanchen Xie" . "yuanchen.gm@gmail.com")) (:maintainer "Yuanchen Xie" . "yuanchen.gm@gmail.com") (:keywords "convenience" "chinese" "pinyin" "input-method" "complete") (:url . "https://github.com/p1uxtar/pyim-cangjiedict"))])
|
||||
(pyim-smzmdict . [(20210505 1445) ((pyim (3 7))) "Sanma(triple) Zhengma dict for pyim" tar ((:commit . "fcddbde17a04d174c7353548056524687f7be8d2") (:authors ("Yue Shi (Zhizhi)")) (:maintainer "Yuanchen Xie") (:keywords "convenience" "i18n" "pyim" "chinese" "zhengma") (:url . "https://github.com/p1uxtar/pyim-smzmdict"))])
|
||||
|
@ -4062,8 +4064,8 @@
|
|||
(python-insert-docstring . [(20211127 1232) ((emacs (25 1))) "Python Google docstring inserter" single ((:commit . "cd6419b74c99c06d5c48c1b289572acce1fd193b") (:authors ("Marco Vocialta" . "macurovc@tutanota.com")) (:maintainer "Marco Vocialta" . "macurovc@tutanota.com") (:url . "https://github.com/macurovc/insert-docstring"))])
|
||||
(python-isort . [(20210603 2153) ((emacs (26)) (reformatter (0 6))) "Reformat python-mode buffer with isort" single ((:commit . "339814df22b87eebca02137e581f65d6283fce97") (:authors ("Jimmy Yuen Ho Wong" . "wyuenho@gmail.com")) (:maintainer "Jimmy Yuen Ho Wong" . "wyuenho@gmail.com") (:keywords "languages") (:url . "https://github.com/wyuenho/emacs-python-isort"))])
|
||||
(python-mls . [(20220528 1502) ((emacs (27 1))) "Multi-line shell for (i)Python" single ((:commit . "bbfe9a8b2ea081c032eccfd541dac2bc46aa54a6") (:authors ("J.D. Smith")) (:maintainer "J.D. Smith") (:keywords "languages" "processes") (:url . "https://github.com/jdtsmith/python-mls"))])
|
||||
(python-mode . [(20220907 1017) nil "Python major mode" tar ((:commit . "b19009fd9bb411882f8c733125d0232b3e228d93") (:authors ("2015-2021 https://gitlab.com/groups/python-mode-devs") ("2003-2014 https://launchpad.net/python-mode") ("1995-2002 Barry A. Warsaw") ("1992-1994 Tim Peters")) (:maintainer nil . "python-mode@python.org") (:keywords "languages" "processes" "python" "oop") (:url . "https://gitlab.com/groups/python-mode-devs"))])
|
||||
(python-pytest . [(20220720 1918) ((emacs (24 4)) (dash (2 18 0)) (transient (0 3 7)) (projectile (0 14 0)) (s (1 12 0))) "helpers to run pytest" single ((:commit . "9bf8db38bf18feb0484931877210cecfaa96bfc6") (:authors ("wouter bolsterlee" . "wouter@bolsterl.ee")) (:maintainer "wouter bolsterlee" . "wouter@bolsterl.ee") (:keywords "pytest" "test" "python" "languages" "processes" "tools") (:url . "https://github.com/wbolster/emacs-python-pytest"))])
|
||||
(python-mode . [(20220922 1149) nil "Python major mode" tar ((:commit . "7cf62b573db2b698413cdfe3f78c3e5ad7d62738") (:authors ("2015-2021 https://gitlab.com/groups/python-mode-devs") ("2003-2014 https://launchpad.net/python-mode") ("1995-2002 Barry A. Warsaw") ("1992-1994 Tim Peters")) (:maintainer nil . "python-mode@python.org") (:keywords "languages" "processes" "python" "oop") (:url . "https://gitlab.com/groups/python-mode-devs"))])
|
||||
(python-pytest . [(20220917 1903) ((emacs (24 4)) (dash (2 18 0)) (transient (0 3 7)) (projectile (0 14 0)) (s (1 12 0))) "helpers to run pytest" single ((:commit . "bec1483d51a97e181049fbe8ce21659c81bf855d") (:authors ("wouter bolsterlee" . "wouter@bolsterl.ee")) (:maintainer "wouter bolsterlee" . "wouter@bolsterl.ee") (:keywords "pytest" "test" "python" "languages" "processes" "tools") (:url . "https://github.com/wbolster/emacs-python-pytest"))])
|
||||
(python-switch-quotes . [(20161228 809) ((emacs (24 3))) "cycle between ' and \" quotes in python strings" single ((:commit . "93f1e9b40e061a6cea480139e8b1362b6404abd0") (:authors ("Vladimir Lagunov" . "lagunov.vladimir@gmail.com")) (:maintainer "Vladimir Lagunov" . "lagunov.vladimir@gmail.com") (:keywords "python" "tools" "convenience") (:url . "https://github.com/werehuman/python-switch-quotes"))])
|
||||
(python-test . [(20181018 29) ((emacs (25 1))) "Python testing integration" single ((:commit . "f899975b133539e19ba822e4b0bfd1a28572967e") (:authors ("Mario Rodas" . "marsam@users.noreply.github.com")) (:maintainer "Mario Rodas" . "marsam@users.noreply.github.com") (:keywords "convenience" "tools" "processes") (:url . "https://github.com/emacs-pe/python-test.el"))])
|
||||
(python-x . [(20220602 2108) ((python (0 24)) (folding (0)) (cl-lib (0 5))) "python.el extras for interactive evaluation" tar ((:commit . "fef5162af9dfc1225339098ae00e053a2e16b799") (:authors ("Yuri D'Elia" . "wavexx@thregr.org")) (:maintainer "Yuri D'Elia" . "wavexx@thregr.org"))])
|
||||
|
@ -4092,7 +4094,7 @@
|
|||
(quiz . [(20190525 1206) ((cl-lib (0 5)) (emacs (25))) "Multiple choice quiz game" single ((:commit . "570bf53926d89282cdb9653bd5aa8fe968f92bbd") (:authors ("Dave Pearson" . "davep@davep.org")) (:maintainer "Dave Pearson" . "davep@davep.org") (:keywords "games" "trivia" "quiz") (:url . "https://github.com/davep/quiz.el"))])
|
||||
(r-autoyas . [(20140101 1510) ((ess (0)) (yasnippet (0 8 0))) "Provides automatically created yasnippets for R function argument lists." tar ((:commit . "d321a7da0ef2e94668d53e0807277da7b70ea678") (:authors ("Sven Hartenstein & Matthew Fidler")) (:maintainer "Matthew Fidler") (:keywords "r" "yasnippet") (:url . "https://github.com/mlf176f2/r-autoyas.el"))])
|
||||
(racer . [(20210307 243) ((emacs (25 1)) (rust-mode (0 2 0)) (dash (2 13 0)) (s (1 10 0)) (f (0 18 2)) (pos-tip (0 4 6))) "code completion, goto-definition and docs browsing for Rust via racer" single ((:commit . "1e63e98626737ea9b662d4a9b1ffd6842b1c648c") (:authors ("Phil Dawes")) (:maintainer "Phil Dawes") (:keywords "abbrev" "convenience" "matching" "rust" "tools") (:url . "https://github.com/racer-rust/emacs-racer"))])
|
||||
(racket-mode . [(20220912 1749) ((emacs (25 1))) "Racket editing, REPL, and more" tar ((:commit . "caa9259ad08f3aa7b9fb4441933ca3ac7254fad2") (:authors ("Greg Hendershott")) (:maintainer "Greg Hendershott") (:url . "https://www.racket-mode.com/"))])
|
||||
(racket-mode . [(20220921 1525) ((emacs (25 1))) "Racket editing, REPL, and more" tar ((:commit . "0071a3c630a24eca95d115da81fd0091259ccc50") (:authors ("Greg Hendershott")) (:maintainer "Greg Hendershott") (:url . "https://www.racket-mode.com/"))])
|
||||
(rails-i18n . [(20220126 1643) ((emacs (27 2)) (yaml (0 1 0)) (dash (2 19 1))) "Seach and insert i18n on ruby code" single ((:commit . "8e87e4e48e31902b8259ded28a208c2e7efea6e9") (:authors ("Otávio Schwanck dos Santos" . "otavioschwanck@gmail.com")) (:maintainer "Otávio Schwanck dos Santos" . "otavioschwanck@gmail.com") (:keywords "tools" "languages") (:url . "https://github.com/otavioschwanck/rails-i18n.el"))])
|
||||
(rails-log-mode . [(20140408 425) nil "Major mode for viewing Rails log files" single ((:commit . "ff440003ad7d47cb0ac3300f2a632f4cfd36a446") (:authors ("Anantha kumaran" . "ananthakumaran@gmail.com")) (:maintainer "Anantha kumaran" . "ananthakumaran@gmail.com") (:keywords "rails" "log"))])
|
||||
(rails-routes . [(20220126 1631) ((emacs (27 2)) (inflections (1 1))) "Search for and insert rails routes" single ((:commit . "eab995a9297ca5bd9bd4f4c2737f2fecfc36def0") (:authors ("Otávio Schwanck" . "otavioschwanck@gmail.com")) (:maintainer "Otávio Schwanck" . "otavioschwanck@gmail.com") (:keywords "tools" "languages") (:url . "https://github.com/otavioschwanck/rails-routes"))])
|
||||
|
@ -4182,7 +4184,7 @@
|
|||
(repeat-help . [(20220718 1742) ((emacs (28 1))) "Display keybindings for repeat-mode" single ((:commit . "bdc21d9a8846b4adf63dd9317860666da5ade478") (:authors ("Karthik Chikmagalur" . "karthikchikmagalur@gmail.com")) (:maintainer "Karthik Chikmagalur" . "karthikchikmagalur@gmail.com") (:keywords "convenience") (:url . "https://github.com/karthink/repeat-help"))])
|
||||
(repeatable-motion . [(20170620 1848) ((emacs (24))) "Make repeatable versions of motions" tar ((:commit . "77aa35b27c8a76dc8deef87c9f71ef7e6fd289ee") (:authors ("William Hatch" . "willghatch@gmail.com")) (:maintainer "William Hatch" . "willghatch@gmail.com") (:keywords "motion" "repeatable") (:url . "https://github.com/willghatch/emacs-repeatable-motion"))])
|
||||
(repeater . [(20180418 1212) ((emacs (24 4))) "Repeat recent repeated commands" single ((:commit . "854b874542b186b2408cbc58ad0591fe8eb70b6c") (:authors ("Xu Chunyang" . "mail@xuchunyang.me")) (:maintainer "Xu Chunyang" . "mail@xuchunyang.me") (:keywords "convenience") (:url . "https://github.com/xuchunyang/repeater"))])
|
||||
(repl-toggle . [(20220912 847) ((fullframe (0 0 5))) "Switch to/from repl buffer for current major-mode" single ((:commit . "bb1f3b0f579f70c4ddf452a557e92391f3ad2225") (:authors ("Tom Regner" . "tom@goochesa.de")) (:maintainer "Tom Regner" . "tom@goochesa.de") (:keywords "repl" "buffers" "toggle"))])
|
||||
(repl-toggle . [(20220920 752) ((fullframe (0 0 5))) "Switch to/from repl buffer for current major-mode" single ((:commit . "e05996b4a2b988f93ccce67f933cfad00064360f") (:authors ("Tom Regner" . "tom@goochesa.de")) (:maintainer "Tom Regner" . "tom@goochesa.de") (:keywords "repl" "buffers" "toggle"))])
|
||||
(replace-from-region . [(20170227 2316) nil "Replace commands whose query is from region" single ((:commit . "dc9318b9b2822da7b00ecc34d1dc965c8f96c9bb") (:authors ("rubikitch" . "rubikitch@ruby-lang.org")) (:maintainer "rubikitch" . "rubikitch@ruby-lang.org") (:keywords "replace" "search" "region") (:url . "http://www.emacswiki.org/emacs/download/replace-from-region.el"))])
|
||||
(replace-pairs . [(20160207 1251) ((emacs (24 4))) "Query-replace pairs of things" single ((:commit . "ef6f2719aab7714f6cb209fd3dd6d2e720681b3c") (:authors ("David Shepherd" . "davidshepherd7@gmail.com")) (:maintainer "David Shepherd" . "davidshepherd7@gmail.com") (:url . "https://github.com/davidshepherd7/replace-pairs"))])
|
||||
(replace-symbol . [(20160518 12) nil "Rename symbols in expressions or buffers" single ((:commit . "baf949e528aee1881f455f9c84e67718bedcb3f6") (:authors ("Brian Mastenbrook" . "brian@mastenbrook.net")) (:maintainer "Brian Mastenbrook" . "brian@mastenbrook.net") (:url . "https://github.com/bmastenbrook/replace-symbol-el"))])
|
||||
|
@ -4204,7 +4206,7 @@
|
|||
(revbufs . [(20200907 2223) nil "Reverts all out-of-date buffers safely" single ((:commit . "df3c02d3063951582c693ae12547993cec8256e2") (:authors ("Neil Van Dyke" . "neil@neilvandyke.org")) (:maintainer "Sam Kleinman" . "sam@tychoish.com") (:keywords "convenience" "buffers") (:url . "http://www.neilvandyke.org/revbufs/"))])
|
||||
(reveal-in-folder . [(20220704 659) ((emacs (24 3)) (f (0 20 0)) (s (1 12 0))) "Reveal current file in folder" single ((:commit . "7b2b02356b75e224a0414995af95d45786ee6f7d") (:authors ("Shen, Jen-Chieh" . "jcs090218@gmail.com")) (:maintainer "Shen, Jen-Chieh" . "jcs090218@gmail.com") (:keywords "convenience" "folder" "finder" "reveal" "file" "explorer") (:url . "https://github.com/jcs-elpa/reveal-in-folder"))])
|
||||
(reveal-in-osx-finder . [(20150802 1657) nil "Reveal file associated with buffer in OS X Finder" single ((:commit . "5710e5936e47139a610ec9a06899f72e77ddc7bc") (:authors ("Kazuki YOSHIDA")) (:maintainer "Kazuki YOSHIDA") (:keywords "os x" "finder") (:url . "https://github.com/kaz-yos/reveal-in-osx-finder"))])
|
||||
(reverse-im . [(20220309 1919) ((emacs (25 1)) (seq (2 23))) "Reverse mapping for non-default system layouts" single ((:commit . "65e64ffa9f5358ebbe88cc84e8486987eda70c2d") (:keywords "i18n") (:url . "https://github.com/a13/reverse-im.el"))])
|
||||
(reverse-im . [(20220922 1650) ((emacs (25 1)) (seq (2 23))) "Reverse mapping for non-default system layouts" single ((:commit . "40e841b9d5b72ac0872de4e3f08406cb80236706") (:keywords "i18n") (:url . "https://github.com/a13/reverse-im.el"))])
|
||||
(reverse-theme . [(20141205 145) nil "Reverse theme for Emacs" single ((:commit . "13d0821a4ec5ece7e6a81f50d2a1a7e7ad21394d") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-reverse-theme"))])
|
||||
(revert-buffer-all . [(20220731 2351) ((emacs (24 3))) "Revert all open buffers" single ((:commit . "c07996fcf3e8f7ee156055327522586f32582ce1") (:authors ("Campbell Barton" . "ideasman42@gmail.com")) (:maintainer "Campbell Barton" . "ideasman42@gmail.com") (:url . "https://codeberg.org/ideasman42/emacs-buffer-revert-all"))])
|
||||
(review-mode . [(20220817 1010) nil "major mode for ReVIEW" single ((:commit . "2b24db8d85a1c40dbd67be195caa79c9df1e0f4b") (:authors ("Kenshi Muto" . "kmuto@kmuto.jp")) (:maintainer "Kenshi Muto" . "kmuto@kmuto.jp") (:url . "https://github.com/kmuto/review-el"))])
|
||||
|
@ -4212,7 +4214,7 @@
|
|||
(rfc-mode . [(20210615 1721) ((emacs (25 1))) "RFC document browser and viewer" single ((:commit . "3ef663203b157e7c5b2cd3c425ec8fbe7977a24c") (:authors ("Nicolas Martyanoff" . "khaelin@gmail.com")) (:maintainer "Nicolas Martyanoff" . "khaelin@gmail.com") (:url . "https://github.com/galdor/rfc-mode"))])
|
||||
(rg . [(20220521 1653) ((emacs (25 1)) (transient (0 3 0)) (wgrep (2 1 10))) "A search tool based on ripgrep" tar ((:commit . "89343e9858787fa8d3651cd03ff7b0d03309dee8") (:authors ("David Landell" . "david.landell@sunnyhill.email") ("Roland McGrath" . "roland@gnu.org")) (:maintainer "David Landell" . "david.landell@sunnyhill.email") (:keywords "matching" "tools") (:url . "https://github.com/dajva/rg.el"))])
|
||||
(rgb . [(20220717 1940) ((emacs (24 3))) "RGB control via OpenRGB" single ((:commit . "4aab5a5be16b69b47ef5e67d02782df5e41dbd7b") (:url . "https://gitlab.com/cwpitts/rgb.el"))])
|
||||
(rhq . [(20220329 1027) ((emacs (24 4))) "Client for rhq" single ((:commit . "46a3108436cc4a2c5343b010f2086088d7b9682b") (:authors ("ROCKTAKEY" . "rocktakey@gmail.com")) (:maintainer "ROCKTAKEY" . "rocktakey@gmail.com") (:keywords "tools" "extensions") (:url . "https://github.com/ROCKTAKEY/rhq"))])
|
||||
(rhq . [(20220916 1632) ((emacs (24 4))) "Client for rhq" single ((:commit . "7d9c5dee2e493eb0c5d41afca1b6049de8c2a26d") (:authors ("ROCKTAKEY" . "rocktakey@gmail.com")) (:maintainer "ROCKTAKEY" . "rocktakey@gmail.com") (:keywords "tools" "extensions") (:url . "https://github.com/ROCKTAKEY/rhq"))])
|
||||
(rhtml-mode . [(20130422 1311) nil "major mode for editing RHTML files" tar ((:commit . "a6d71b38a3db867ccf82999c99805db1a3a33c33"))])
|
||||
(rib-mode . [(20170726 1448) ((emacs (24))) "RenderMan® Interface Bytestream (RIB) Major Mode" single ((:commit . "97470158784c3c212e22e2c20b8471ee65ba59af") (:authors ("Remik Ziemlinski and Daniel Blezek" . "daniel.blezek@gmail.com")) (:maintainer "Remik Ziemlinski and Daniel Blezek" . "daniel.blezek@gmail.com") (:url . "https://github.com/blezek/rib-mode"))])
|
||||
(rich-minority . [(20190419 1136) ((cl-lib (0 5))) "Clean-up and Beautify the list of minor-modes." single ((:commit . "a03e693f6f9232cf75363aaaf1cb041f21675c19") (:authors ("Artur Malabarba" . "emacs@endlessparentheses.com")) (:maintainer "Artur Malabarba" . "emacs@endlessparentheses.com") (:keywords "mode-line" "faces") (:url . "https://github.com/Malabarba/rich-minority"))])
|
||||
|
@ -4224,7 +4226,7 @@
|
|||
(rinari . [(20150709 640) ((ruby-mode (1 0)) (inf-ruby (2 2 5)) (ruby-compilation (0 16)) (jump (2 0))) "Rinari Is Not A Rails IDE" single ((:commit . "be07b0f42aefa24c5d36c441d1f3f72e64fffaa4") (:authors ("Phil Hagelberg, Eric Schulte, Steve Purcell")) (:maintainer "Phil Hagelberg, Eric Schulte, Steve Purcell") (:keywords "ruby" "rails" "project" "convenience" "web") (:url . "https://github.com/eschulte/rinari"))])
|
||||
(rings . [(20160531 2027) nil "Buffer rings. Like tabs, but better." single ((:commit . "3590b222eb80652cbd27866f066bd3571d86edfc") (:authors ("Konrad Scorciapino")) (:maintainer "Konrad Scorciapino") (:keywords "utilities" "productivity") (:url . "http://github.com/konr/rings"))])
|
||||
(ripgrep . [(20220520 1410) nil "Front-end for ripgrep, a command line search tool" single ((:commit . "872e250e8f93b8bb0a8a1de8bde17fd9bd116e31") (:authors ("Nicolas Lamirault" . "nicolas.lamirault@gmail.com")) (:maintainer "Nicolas Lamirault" . "nicolas.lamirault@gmail.com") (:keywords "ripgrep" "ack" "pt" "ag" "sift" "grep" "search") (:url . "https://github.com/nlamirault/ripgrep.el"))])
|
||||
(riscv-mode . [(20170804 1521) ((emacs (24 4))) "Major-mode for RISC V assembly" single ((:commit . "99febf97d1fa9441e8dada94fe30c2aa439c9749") (:authors ("Adam Niederer <https://github.com/AdamNiederer>")) (:maintainer "Adam Niederer") (:keywords "riscv" "assembly") (:url . "https://github.com/AdamNiederer/riscv-mode"))])
|
||||
(riscv-mode . [(20220916 206) ((emacs (24 4))) "Major-mode for RISC V assembly" single ((:commit . "8e335b9c93de93ed8dd063d702b0f5ad48eef6d7") (:authors ("Adam Niederer <https://github.com/AdamNiederer>")) (:maintainer "Adam Niederer") (:keywords "riscv" "assembly") (:url . "https://github.com/AdamNiederer/riscv-mode"))])
|
||||
(rivet-mode . [(20201013 1905) ((emacs (24)) (web-mode (16))) "A minor mode for editing Apache Rivet files" single ((:commit . "6cf58cf04fee933113857af07414b3f27c24b505") (:authors ("Jade Michael Thornton")) (:maintainer "Jade Michael Thornton") (:url . "https://gitlab.com/thornjad/rivet-mode"))])
|
||||
(rjsx-mode . [(20200120 1446) ((emacs (24 4)) (js2-mode (20170504))) "Real support for JSX" single ((:commit . "014c760138dac5ae47ed3eade62f4a9f765f52b7") (:authors ("Felipe Ochoa" . "felipe@fov.space")) (:maintainer "Felipe Ochoa" . "felipe@fov.space") (:keywords "languages") (:url . "https://github.com/felipeochoa/rjsx-mode/"))])
|
||||
(rmsbolt . [(20220909 130) ((emacs (25 1))) "A compiler output viewer" tar ((:commit . "9aa25c200e6b1709263c0638b1827f36de423519") (:authors ("Jay Kamat" . "jaygkamat@gmail.com")) (:maintainer "Jay Kamat" . "jaygkamat@gmail.com") (:keywords "compilation" "tools") (:url . "http://gitlab.com/jgkamat/rmsbolt"))])
|
||||
|
@ -4269,9 +4271,9 @@
|
|||
(runtests . [(20150807 831) nil "Run unit tests from Emacs" single ((:commit . "ed90249f24cc48290018df48b9b9b7172440be3e") (:authors ("Sune Simonsen" . "sune@we-knowhow.dk")) (:maintainer "Sune Simonsen" . "sune@we-knowhow.dk") (:keywords "test") (:url . "https://github.com/sunesimonsen/emacs-runtests"))])
|
||||
(russian-holidays . [(20170109 2140) nil "Russian holidays for the calendar" single ((:commit . "b285a30f29d85c48e3ea4eb93972d34a090c167b") (:authors ("Alexander I.Grafov" . "siberian@laika.name")) (:maintainer "Alexander I.Grafov" . "siberian@laika.name") (:url . "https://github.com/grafov/russian-holidays"))])
|
||||
(rust-auto-use . [(20200608 1359) nil "Utility to automatically insert Rust use statements" single ((:commit . "d5205f7b9b9eae0f7d0893f87d3391464719f9c0") (:authors ("Rotem Yaari" . "rotemy@MBP.local")) (:maintainer "Rotem Yaari" . "rotemy@MBP.local") (:keywords "languages"))])
|
||||
(rust-mode . [(20220825 1306) ((emacs (25 1))) "A major-mode for editing Rust source code" tar ((:commit . "2d6bc53f526623e585aae5855a81a13b709df97d") (:authors ("Mozilla")) (:maintainer "Mozilla") (:keywords "languages") (:url . "https://github.com/rust-lang/rust-mode"))])
|
||||
(rust-mode . [(20220919 1051) ((emacs (25 1))) "A major-mode for editing Rust source code" tar ((:commit . "1d24ca2e6c18cd036f00e930cca64f44db04fb67") (:authors ("Mozilla")) (:maintainer "Mozilla") (:keywords "languages") (:url . "https://github.com/rust-lang/rust-mode"))])
|
||||
(rust-playground . [(20200116 1043) ((emacs (24 3))) "Local Rust playground for short code snippets." single ((:commit . "5a117781dcb66065bea7830dd73618008fc34949") (:authors ("Alexander I.Grafov" . "grafov@gmail.com")) (:maintainer "Alexander I.Grafov" . "grafov@gmail.com") (:keywords "tools" "rust") (:url . "https://github.com/grafov/rust-playground"))])
|
||||
(rustic . [(20220915 1525) ((emacs (26 1)) (rust-mode (1 0 3)) (dash (2 13 0)) (f (0 18 2)) (let-alist (1 0 4)) (markdown-mode (2 3)) (project (0 3 0)) (s (1 10 0)) (seq (2 3)) (spinner (1 7 3)) (xterm-color (1 6))) "Rust development environment" tar ((:commit . "a391fa6052239fca9e07afafb3227feb4b7d8429") (:authors ("Mozilla")) (:maintainer "Mozilla") (:keywords "languages"))])
|
||||
(rustic . [(20220918 1200) ((emacs (26 1)) (rust-mode (1 0 3)) (dash (2 13 0)) (f (0 18 2)) (let-alist (1 0 4)) (markdown-mode (2 3)) (project (0 3 0)) (s (1 10 0)) (seq (2 3)) (spinner (1 7 3)) (xterm-color (1 6))) "Rust development environment" tar ((:commit . "53cacf5039f1d88cdd5cad98d1e9e0ad92da2615") (:authors ("Mozilla")) (:maintainer "Mozilla") (:keywords "languages"))])
|
||||
(rutils . [(20220619 1421) ((emacs (26 1)) (ess (18 10 1)) (transient (0 3 0))) "R utilities with transient" tar ((:commit . "dd500ab8062ce40cb339ec8620bdfc63fdd28364") (:authors ("Shuguang Sun" . "shuguang79@qq.com")) (:maintainer "Shuguang Sun" . "shuguang79@qq.com") (:keywords "convenience") (:url . "https://github.com/ShuguangSun/rutils.el"))])
|
||||
(rvm . [(20220910 1558) nil "Emacs integration for rvm" single ((:commit . "e1e83b5466c132c066142ac63729ba833c530c83") (:authors ("Yves Senn" . "yves.senn@gmx.ch")) (:maintainer "Yves Senn" . "yves.senn@gmx.ch") (:keywords "ruby" "rvm") (:url . "http://www.emacswiki.org/emacs/RvmEl"))])
|
||||
(ryo-modal . [(20220103 940) ((emacs (25 1))) "Roll your own modal mode" single ((:commit . "0a61eed4d2917422d6401b6abe2037c26dab658a") (:authors ("Erik Sjöstrand" . "sjostrand.erik@gmail.com")) (:maintainer "Erik Sjöstrand" . "sjostrand.erik@gmail.com") (:keywords "convenience" "modal" "keys") (:url . "http://github.com/Kungsgeten/ryo-modal"))])
|
||||
|
@ -4394,7 +4396,7 @@
|
|||
(shm . [(20180327 57) nil "Structured Haskell Mode" tar ((:commit . "7f9df73f45d107017c18ce4835bbc190dfe6782e") (:authors ("Chris Done" . "chrisdone@gmail.com")) (:maintainer "Chris Done" . "chrisdone@gmail.com") (:keywords "development" "haskell" "structured"))])
|
||||
(shoulda . [(20140616 1833) ((cl-lib (0 5))) "Shoulda test support for ruby" single ((:commit . "24dc6b6138a06edde9c8d13a6aaa1654d1d7de54") (:authors ("Marcwebbie" . "marcwebbie@gmail.com")) (:maintainer "Marcwebbie" . "marcwebbie@gmail.com") (:keywords "ruby" "tests" "shoulda"))])
|
||||
(show-css . [(20160210 1408) ((doom (1 3)) (s (1 10 0))) "Show the css of the html attribute the cursor is on" tar ((:commit . "771daeddd4df7a7c10f66419a837145649bab63b") (:authors ("Sheldon McGrandle" . "developer@rednemesis.com")) (:maintainer "Sheldon McGrandle" . "developer@rednemesis.com") (:keywords "hypermedia") (:url . "https://github.com/smmcg/showcss-mode"))])
|
||||
(show-eol . [(20220704 659) ((emacs (24 4))) "Show end of line symbol in buffer" single ((:commit . "1af58bd6358e934c05830c4689a3eb576b9d6daf") (:authors ("Shen, Jen-Chieh" . "jcs090218@gmail.com")) (:maintainer "Shen, Jen-Chieh" . "jcs090218@gmail.com") (:keywords "convenience" "end" "eol" "line") (:url . "https://github.com/jcs-elpa/show-eol"))])
|
||||
(show-eol . [(20220919 631) ((emacs (24 4))) "Show end of line symbol in buffer" single ((:commit . "ad3aa8f4fa0d1b20f8526536f0ac35386f521372") (:authors ("Shen, Jen-Chieh" . "jcs090218@gmail.com")) (:maintainer "Shen, Jen-Chieh" . "jcs090218@gmail.com") (:keywords "convenience" "end" "eol" "line") (:url . "https://github.com/jcs-elpa/show-eol"))])
|
||||
(show-font-mode . [(20201225 2217) ((emacs (25 1))) "Show font at point on mode line" single ((:commit . "c7328b85655688d257b769192d26b9f5c9bbe26d") (:authors ("Melissa Boiko" . "melissa@namakajiri.net")) (:maintainer "Melissa Boiko" . "melissa@namakajiri.net") (:keywords "faces" "i18n" "unicode" "fonts" "fontsets") (:url . "https://github.com/melissaboiko/show-font-mode"))])
|
||||
(showtip . [(20090830 1040) nil "Show tip at cursor" single ((:commit . "930da302809a4257e8d69425455b29e1cc91949b") (:authors ("Ye Wenbin" . "wenbinye@gmail.com")) (:maintainer "Ye Wenbin" . "wenbinye@gmail.com") (:keywords "help"))])
|
||||
(shpec-mode . [(20150530 922) nil "Minor mode for shpec specification" single ((:commit . "76bccd63e3b70233a6c9ca0798dd03550952cc76") (:authors ("AdrieanKhisbe" . "adriean.khisbe@live.fr")) (:maintainer "AdrieanKhisbe" . "adriean.khisbe@live.fr") (:keywords "languages" "tools") (:url . "http://github.com/shpec/shpec-mode"))])
|
||||
|
@ -4409,8 +4411,8 @@
|
|||
(sicp . [(20200512 1137) nil "Structure and Interpretation of Computer Programs in info format" tar ((:commit . "4002d83083d520c6b5ede2df36cc2cee885d450a") (:authors ("Hal Abelson") ("Jerry Sussman") ("Julie Sussman")) (:maintainer "Hal Abelson") (:url . "https://mitpress.mit.edu/sicp"))])
|
||||
(side-hustle . [(20210627 701) ((emacs (24 4)) (seq (2 20))) "Hustle through Imenu in a side window" single ((:commit . "1f4cd5e7cfbabb00c6d87e913770f21e3d16c957") (:authors ("Paul W. Rankin" . "pwr@bydasein.com")) (:maintainer "Paul W. Rankin" . "pwr@bydasein.com") (:keywords "convenience") (:url . "https://github.com/rnkn/side-hustle"))])
|
||||
(side-notes . [(20210709 1403) ((emacs (24 4))) "Easy access to a directory notes file" single ((:commit . "41fe8544661a772f764a0924e04080f258053955") (:authors ("Paul W. Rankin" . "pwr@bydasein.com")) (:maintainer "Paul W. Rankin" . "pwr@bydasein.com") (:keywords "convenience") (:url . "https://github.com/rnkn/side-notes"))])
|
||||
(sidecar-locals . [(20220710 1040) ((emacs (27 1))) "A flexible alternative to built-in dir-locals" single ((:commit . "3aa9c890ebc38800ab26f5f877da32a79ce87d18") (:authors ("Campbell Barton" . "ideasman42@gmail.com")) (:maintainer "Campbell Barton" . "ideasman42@gmail.com") (:keywords "convenience") (:url . "https://codeberg.org/ideasman42/emacs-sidecar-locals"))])
|
||||
(sideline . [(20220911 1609) ((emacs (27 1))) "Show information on the side" single ((:commit . "48714f3503d16469dac325dbc909a4a9a3e4a804") (:authors ("Shen, Jen-Chieh" . "jcs090218@gmail.com")) (:maintainer "Shen, Jen-Chieh" . "jcs090218@gmail.com") (:keywords "convenience") (:url . "https://github.com/emacs-sideline/sideline"))])
|
||||
(sidecar-locals . [(20220921 501) ((emacs (27 1))) "A flexible alternative to built-in dir-locals" single ((:commit . "4175fe207de8530474c4ec368d4507ddf97dc412") (:authors ("Campbell Barton" . "ideasman42@gmail.com")) (:maintainer "Campbell Barton" . "ideasman42@gmail.com") (:keywords "convenience") (:url . "https://codeberg.org/ideasman42/emacs-sidecar-locals"))])
|
||||
(sideline . [(20220922 508) ((emacs (27 1))) "Show information on the side" single ((:commit . "0bfdb6274cda0c19424c78804086ed93df96b4bb") (:authors ("Shen, Jen-Chieh" . "jcs090218@gmail.com")) (:maintainer "Shen, Jen-Chieh" . "jcs090218@gmail.com") (:keywords "convenience") (:url . "https://github.com/emacs-sideline/sideline"))])
|
||||
(sideline-blame . [(20220629 801) ((emacs (27 1)) (sideline (0 1 0)) (vc-msg (1 1 1))) "Show blame messages with sideline" single ((:commit . "6e9fb45caea9031554e6e2110e39e219a407779e") (:authors ("Shen, Jen-Chieh" . "jcs090218@gmail.com")) (:maintainer "Shen, Jen-Chieh" . "jcs090218@gmail.com") (:keywords "convenience" "blame") (:url . "https://github.com/emacs-sideline/sideline-blame"))])
|
||||
(sideline-flycheck . [(20220629 752) ((emacs (27 1)) (sideline (0 1 1)) (flycheck (0 14)) (ht (2 4))) "Show flycheck errors with sideline" single ((:commit . "a1fd5368acbc8cd15e00d23a0bf6f19d24f5c061") (:authors ("Shen, Jen-Chieh" . "jcs090218@gmail.com")) (:maintainer "Shen, Jen-Chieh" . "jcs090218@gmail.com") (:keywords "convenience" "flycheck") (:url . "https://github.com/emacs-sideline/sideline-flycheck"))])
|
||||
(sideline-flymake . [(20220629 802) ((emacs (27 1)) (sideline (0 1 0))) "Show flymake errors with sideline" single ((:commit . "3320d2416a255b0b8d7abb314883e103d66aeb07") (:authors ("Shen, Jen-Chieh" . "jcs090218@gmail.com")) (:maintainer "Shen, Jen-Chieh" . "jcs090218@gmail.com") (:keywords "convenience" "flymake") (:url . "https://github.com/emacs-sideline/sideline-flymake"))])
|
||||
|
@ -4527,7 +4529,7 @@
|
|||
(solo-jazz-theme . [(20220117 2009) ((emacs (24 1))) "The Solo-Jazz color theme" single ((:commit . "51d63d8a2c855f4ea79eef9fc9c8a5c9702642c4") (:authors ("Carl Steib")) (:maintainer "Carl Steib") (:url . "https://github.com/cstby/solo-jazz-emacs-theme"))])
|
||||
(somafm . [(20220402 2131) ((emacs (26 1)) (dash (2 12 0)) (request (0 3 2)) (cl-lib (0 6 1))) "A simple soma.fm interface" single ((:commit . "90b661fb1abc652feb6508eb61735919d02e9687") (:authors ("Arte Ebrahimi <>")) (:maintainer "Arte Ebrahimi <>") (:keywords "multimedia") (:url . "https://github.com/artenator/somafm.el"))])
|
||||
(sonic-pi . [(20211214 1242) ((cl-lib (0 5)) (osc (0 1)) (dash (2 2 0)) (emacs (24)) (highlight (0))) "A Emacs client for SonicPi" tar ((:commit . "9ae16d0fd4cba77ae0bedac83f2cb46569be6ade") (:authors ("Joseph Wilk" . "joe@josephwilk.net")) (:maintainer "Joseph Wilk" . "joe@josephwilk.net") (:keywords "sonicpi" "ruby") (:url . "http://www.github.com/repl-electric/sonic-pi.el"))])
|
||||
(soothe-theme . [(20220913 33) ((emacs (24 3)) (autothemer (0 2))) "A dark colorful theme" tar ((:commit . "b3452a86befe2754f282f75efb60adb4bc5d364e") (:authors ("Jason Milkins" . "jasonm23@gmail.com")) (:maintainer "Jason Milkins" . "jasonm23@gmail.com") (:url . "https://github.com/emacsfodder/emacs-soothe-theme"))])
|
||||
(soothe-theme . [(20220922 349) ((emacs (24 3)) (autothemer (0 2))) "A dark colorful theme" tar ((:commit . "d8aee0fca549d535ebb7b5fd1a8017f12925d16b") (:authors ("Jason Milkins" . "jasonm23@gmail.com")) (:maintainer "Jason Milkins" . "jasonm23@gmail.com") (:url . "https://github.com/emacsfodder/emacs-soothe-theme"))])
|
||||
(sorcery-theme . [(20210101 1352) ((autothemer (0 2))) "A D&D (Dark and Dusty) Theme" single ((:commit . "5a1c4445b9e6e09589a299a9962a6973272a0c2f") (:authors ("Maxime Tréca" . "maxime@gmail.com")) (:maintainer "Maxime Tréca" . "maxime@gmail.com") (:url . "http://github.com/vxid/emacs-theme-sorcery"))])
|
||||
(soria-theme . [(20220127 1004) ((emacs (25 1))) "A xoria256 theme with some colors from openSUSE" tar ((:commit . "2db1859743fe9fc58eab4e6f6c1e37825ad7b69c") (:authors ("Miquel Sabaté Solà" . "mikisabate@gmail.com")) (:maintainer "Miquel Sabaté Solà" . "mikisabate@gmail.com") (:keywords "faces") (:url . "https://github.com/mssola/soria"))])
|
||||
(sort-words . [(20160929 1335) nil "Sort words in a selected region" single ((:commit . "7b6e108f80237363faf7ec28b2c58dec270b8601") (:authors ("\"Aleksandar Simic\"" . "asimic@gmail.com")) (:maintainer "\"Aleksandar Simic\"" . "asimic@gmail.com") (:keywords "tools") (:url . "http://github.org/dotemacs/sort-words.el"))])
|
||||
|
@ -4550,7 +4552,7 @@
|
|||
(sparkline . [(20150101 1319) ((cl-lib (0 3))) "Make sparkline images from a list of numbers" single ((:commit . "a2b5d817d272d6363b67ed8f8cc75499a19fa8d2") (:authors ("Willem Rein Oudshoorn" . "woudshoo@xs4all.nl")) (:maintainer "Willem Rein Oudshoorn" . "woudshoo@xs4all.nl") (:keywords "extensions"))])
|
||||
(sparql-mode . [(20220824 1323) ((cl-lib (0 5)) (emacs (24 3))) "Edit and interactively evaluate SPARQL queries." tar ((:commit . "15960092e8ce8ebe6a6afd82202ccf47cb306e76") (:authors ("Craig Andera <candera at wangdera dot com>")) (:maintainer "Bjarte Johansen <Bjarte dot Johansen at gmail dot com>") (:url . "https://github.com/ljos/sparql-mode"))])
|
||||
(spatial-navigate . [(20220708 211) ((emacs (26 2))) "Directional navigation between white-space blocks" single ((:commit . "6840ca694d281d39de76c1af0cb2ec526b40820a") (:authors ("Campbell Barton" . "ideasman42@gmail.com")) (:maintainer "Campbell Barton" . "ideasman42@gmail.com") (:url . "https://codeberg.org/ideasman42/emacs-spatial-navigate"))])
|
||||
(spdx . [(20220913 204) ((emacs (24 4))) "Insert SPDX license and copyright headers" tar ((:commit . "77a896d367f7cf08bc7411d22090109d367d5c91") (:authors ("Zhiwei Chen" . "condy0919@gmail.com")) (:maintainer "Zhiwei Chen" . "condy0919@gmail.com") (:keywords "license" "tools") (:url . "https://github.com/condy0919/spdx.el"))])
|
||||
(spdx . [(20220919 207) ((emacs (24 4))) "Insert SPDX license and copyright headers" tar ((:commit . "36ae026d53a782dc90cc7079ef107a4c80095b01") (:authors ("Zhiwei Chen" . "condy0919@gmail.com")) (:maintainer "Zhiwei Chen" . "condy0919@gmail.com") (:keywords "license" "tools") (:url . "https://github.com/condy0919/spdx.el"))])
|
||||
(speech-tagger . [(20170728 1829) ((cl-lib (0 5))) "tag parts of speech using coreNLP" tar ((:commit . "61955b40d4e8b09e66a3e8033e82893f81657c06") (:authors ("Danny McClanahan" . "danieldmcclanahan@gmail.com")) (:maintainer "Danny McClanahan" . "danieldmcclanahan@gmail.com") (:keywords "speech" "tag" "nlp" "language" "corenlp" "parsing" "natural") (:url . "https://github.com/cosmicexplorer/speech-tagger"))])
|
||||
(speechd-el . [(20220608 1422) nil "Client to speech synthesizers and Braille displays." tar ((:commit . "7e30c439729d5635ddd341ad5ab16f832a4619ea") (:authors ("Milan Zamazal" . "pdm@zamazal.org")) (:maintainer "Milan Zamazal" . "pdm@zamazal.org"))])
|
||||
(speed-type . [(20220815 1458) ((emacs (25 1))) "Practice touch and speed typing" tar ((:commit . "304cb8cd6c30d07577d7d864fd32858a29a73dba") (:authors ("Gunther Hagleitner")) (:maintainer "Daniel Kraus" . "daniel@kraus.my") (:keywords "games") (:url . "https://github.com/dakra/speed-type"))])
|
||||
|
@ -4584,7 +4586,7 @@
|
|||
(sr-speedbar . [(20161025 831) nil "Same frame speedbar" single ((:commit . "77a83fb50f763a465c021eca7343243f465b4a47") (:authors ("Sebastian Rose" . "sebastian_rose@gmx.de")) (:maintainer "Sebastian Rose" . "sebastian_rose@gmx.de") (:keywords "speedbar" "sr-speedbar.el") (:url . "http://www.emacswiki.org/emacs/download/sr-speedbar.el"))])
|
||||
(srcery-theme . [(20210601 1247) ((emacs (24))) "Dark color theme" single ((:commit . "58dd21cd63e4a2eed15e0082c2547069363f107b") (:authors ("Daniel Berg")) (:maintainer "Daniel Berg") (:keywords "faces") (:url . "https://github.com/srcery-colors/srcery-emacs"))])
|
||||
(srefactor . [(20180703 1810) ((emacs (24 4))) "A refactoring tool based on Semantic parser framework" tar ((:commit . "6f2c97d17fb70f4ca2112f5a2b99a8ec162004f5") (:authors ("Tu, Do Hoang" . "tuhdo1710@gmail.com")) (:maintainer "Tu, Do Hoang") (:keywords "c" "languages" "tools") (:url . "https://github.com/tuhdo/semantic-refactor"))])
|
||||
(srfi . [(20220812 2051) ((emacs (25 1))) "Scheme Requests for Implementation browser" tar ((:commit . "a17dabd0c45c4481de48e00ce390f5968d95111d") (:authors ("Lassi Kortela" . "lassi@lassi.io")) (:maintainer "Lassi Kortela" . "lassi@lassi.io") (:keywords "languages" "util") (:url . "https://github.com/srfi-explorations/emacs-srfi"))])
|
||||
(srfi . [(20220920 345) ((emacs (25 1))) "Scheme Requests for Implementation browser" tar ((:commit . "f564f380f037a0ba877eed6e7b52fb910956c04f") (:authors ("Lassi Kortela" . "lassi@lassi.io")) (:maintainer "Lassi Kortela" . "lassi@lassi.io") (:keywords "languages" "util") (:url . "https://github.com/srfi-explorations/emacs-srfi"))])
|
||||
(srv . [(20180715 1959) ((emacs (24 3))) "perform SRV DNS requests" single ((:commit . "b1eb7b109bc1c616dbf027429a90dc3b1a4263f1") (:authors ("Magnus Henoch" . "magnus.henoch@gmail.com")) (:maintainer "Magnus Henoch" . "magnus.henoch@gmail.com") (:keywords "comm") (:url . "https://github.com/legoscia/srv.el"))])
|
||||
(ssass-mode . [(20200211 132) ((emacs (24 3))) "Edit Sass without a Turing Machine" single ((:commit . "96f557887ad97a0066a60c54f92b7234b8407016") (:authors ("Adam Niederer" . "adam.niederer@gmail.com")) (:maintainer "Adam Niederer" . "adam.niederer@gmail.com") (:keywords "languages" "sass") (:url . "http://github.com/AdamNiederer/ssass-mode"))])
|
||||
(ssh . [(20120904 2042) nil "Support for remote logins using ssh." single ((:commit . "c17cf5b43df8ac4662a0580f85898e1f078df0d1") (:authors ("Noah Friedman" . "friedman@splode.com")) (:maintainer "Ian Eure" . "ian.eure@gmail.com") (:keywords "unix" "comm"))])
|
||||
|
@ -4657,7 +4659,7 @@
|
|||
(sweet-theme . [(20200708 1202) ((emacs (24 1))) "Sweet-looking theme" single ((:commit . "ccbfdb6a17e25ab18a0b64101675bc1dfef44006") (:authors ("2bruh4me")) (:maintainer "2bruh4me") (:keywords "faces") (:url . "https://github.com/2bruh4me/sweet-theme"))])
|
||||
(sweetgreen . [(20180605 335) ((dash (2 12 1)) (helm (1 5 6)) (request (0 2 0)) (cl-lib (0 5))) "Order Salads from sweetgreen.com" single ((:commit . "e933fe466b5ef0e976967e203f88bd7a012469d1") (:authors ("Diego Berrocal" . "cestdiego@gmail.com")) (:maintainer "Diego Berrocal" . "cestdiego@gmail.com") (:keywords "salad" "food" "sweetgreen" "request") (:url . "https://www.github.com/CestDiego/sweetgreen.el"))])
|
||||
(swift-helpful . [(20220707 846) ((emacs (25 1)) (dash (2 12 0)) (lsp-mode (6 0)) (swift-mode (8 0 0))) "Show documentation for Swift programs." tar ((:commit . "b46c580e4b8f55761431ec677866de3fc66592e9") (:authors ("Daniel Martín" . "mardani29@yahoo.es")) (:maintainer "Daniel Martín" . "mardani29@yahoo.es") (:keywords "help" "swift") (:url . "https://github.com/danielmartin/swift-helpful"))])
|
||||
(swift-mode . [(20220709 602) ((emacs (24 4)) (seq (2 3))) "Major-mode for Apple's Swift programming language" tar ((:commit . "cdd194cbadcee724a9813da386f0a612082b1ab1") (:authors ("taku0 (http://github.com/taku0)") ("Chris Barrett" . "chris.d.barrett@me.com") ("Bozhidar Batsov" . "bozhidar@batsov.com") ("Arthur Evstifeev" . "lod@pisem.net")) (:maintainer "taku0 (http://github.com/taku0)") (:keywords "languages" "swift") (:url . "https://github.com/swift-emacs/swift-mode"))])
|
||||
(swift-mode . [(20220919 608) ((emacs (24 4)) (seq (2 3))) "Major-mode for Apple's Swift programming language" tar ((:commit . "b3e090e4e518334fcc5500e1981f6f1876b92a90") (:authors ("taku0" . "mxxouy6x3m_github@tatapa.org") ("Chris Barrett" . "chris.d.barrett@me.com") ("Bozhidar Batsov" . "bozhidar@batsov.com") ("Arthur Evstifeev" . "lod@pisem.net")) (:maintainer "taku0" . "mxxouy6x3m_github@tatapa.org") (:keywords "languages" "swift") (:url . "https://github.com/swift-emacs/swift-mode"))])
|
||||
(swift3-mode . [(20160918 1250) ((emacs (24 4))) "Major-mode for Apple's Swift programming language." tar ((:commit . "ea34d46bf9a4293e75ffdac9500d34989316d9e9") (:keywords "languages" "swift") (:url . "https://github.com/taku0/swift3-mode"))])
|
||||
(swiper . [(20220430 2247) ((emacs (24 5)) (ivy (0 13 4))) "Isearch with an overview. Oh, man!" single ((:commit . "8bf8027e4bd8c093bddb76a813952d2a0dcbf21d") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:keywords "matching") (:url . "https://github.com/abo-abo/swiper"))])
|
||||
(swiper-helm . [(20180131 1744) ((emacs (24 1)) (swiper (0 1 0)) (helm (1 5 3))) "Helm version of Swiper." single ((:commit . "93fb6db87bc6a5967898b5fd3286954cc72a0008") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:keywords "matching") (:url . "https://github.com/abo-abo/swiper-helm"))])
|
||||
|
@ -4709,7 +4711,7 @@
|
|||
(tangonov-theme . [(20220825 1535) ((emacs (25))) "A 256 color dark theme featuring bright pastels" single ((:commit . "3c0000e3eb0ad5ec56e4415ed10c80f0eaba498b") (:authors ("Trevor Richards" . "trev@trevdev.ca")) (:maintainer "Trevor Richards" . "trev@trevdev.ca") (:keywords "faces" "theme" "dark" "fringe") (:url . "https://sr.ht/~trevdev/tangonov-theme/"))])
|
||||
(tangotango-theme . [(20220714 2034) nil "Tango Palette color theme for Emacs 24." single ((:commit . "9036c4978965149ae9837bc0ad691b2ba9269052") (:authors ("Julien Barnier" . "julien@nozav.org")) (:maintainer "Julien Barnier" . "julien@nozav.org") (:keywords "tango" "palette" "color" "theme" "emacs") (:url . "https://github.com/juba/color-theme-tangotango"))])
|
||||
(tao-theme . [(20220414 354) nil "This package provides two parametrized uncoloured color themes for Emacs: tao-yin and tao-yang." tar ((:commit . "d6fe980783e22df310df1ae51ac249c28c83ac53") (:authors ("Peter Kosov" . "11111000000@email.com")) (:maintainer "Peter Kosov" . "11111000000@email.com") (:url . "http://github.com/11111000000/tao-theme-emacs"))])
|
||||
(taskpaper-mode . [(20220915 858) nil "Major mode for working with TaskPaper files" single ((:commit . "f61902771993589498345c0a7df0e0781e86794c") (:authors ("Dmitry Safronov" . "saf.dmitry@gmail.com")) (:maintainer "Dmitry Safronov" . "saf.dmitry@gmail.com") (:keywords "outlines" "notetaking" "task management" "productivity" "taskpaper") (:url . "https://github.com/saf-dmitry/taskpaper-mode"))])
|
||||
(taskpaper-mode . [(20220920 1206) nil "Major mode for working with TaskPaper files" single ((:commit . "f0403ad34ae8e8ed5ca1f3ccd076a4c125350c83") (:authors ("Dmitry Safronov" . "saf.dmitry@gmail.com")) (:maintainer "Dmitry Safronov" . "saf.dmitry@gmail.com") (:keywords "outlines" "notetaking" "task management" "productivity" "taskpaper") (:url . "https://github.com/saf-dmitry/taskpaper-mode"))])
|
||||
(taskrunner . [(20190916 1608) ((emacs (25 1)) (projectile (2 0 0)) (async (1 9 3))) "Retrieve build system/taskrunner tasks" tar ((:commit . "716323aff410b4d864d137c9ebe4bbb5b8587f5e") (:authors ("Yavor Konstantinov <ykonstantinov1 AT gmail DOT com>")) (:maintainer "Yavor Konstantinov <ykonstantinov1 AT gmail DOT com>") (:keywords "build-system" "taskrunner" "build" "task-runner" "tasks" "convenience") (:url . "https://github.com/emacs-taskrunner/emacs-taskrunner"))])
|
||||
(tawny-mode . [(20191108 1346) ((cider (0 12)) (emacs (25))) "Ontology Editing with Tawny-OWL" single ((:commit . "079028b7547743a36384650981ea068849aac53e") (:authors ("Phillip Lord" . "phillip.lord@newcastle.ac.uk")) (:maintainer "Phillip Lord" . "phillip.lord@newcastle.ac.uk"))])
|
||||
(tblui . [(20161007 1912) ((dash (2 12 1)) (magit-popup (2 6 0)) (tablist (0 70)) (cl-lib (0 5))) "Define tabulated list UI easily" single ((:commit . "e280e11b35a2fdbcadf9ce901a2b62684ac7a7a3") (:authors ("Yuki Inoue <inouetakahiroki _at_ gmail.com>")) (:maintainer "Yuki Inoue <inouetakahiroki _at_ gmail.com>") (:url . "https://github.com/Yuki-Inoue/tblui.el"))])
|
||||
|
@ -4721,7 +4723,7 @@
|
|||
(teco . [(20200707 2309) nil "Teco interpreter" single ((:commit . "2529eb0f7f35c526c1b6fca5250399718ff5138a") (:authors ("Dale R. Worley" . "worley@alum.mit.edu")) (:maintainer "Mark T. Kennedy" . "mtk@acm.org") (:keywords "convenience" "emulations" "files") (:url . "https://github.com/mtk/teco.git"))])
|
||||
(telega . [(20220819 506) ((emacs (26 1)) (visual-fill-column (1 9)) (rainbow-identifiers (0 2 2))) "Telegram client (unofficial)" tar ((:commit . "42a0dd0e30a82a8e34eaccf6e7a1366f4621d49d") (:authors ("Zajcev Evgeny" . "zevlg@yandex.ru")) (:maintainer "Zajcev Evgeny" . "zevlg@yandex.ru") (:keywords "comm") (:url . "https://github.com/zevlg/telega.el"))])
|
||||
(telepathy . [(20131209 1258) nil "Access Telepathy from Emacs" single ((:commit . "211d785b02a29ddc254422fdcc3db45262582f8c") (:authors ("Nicolas Petton" . "petton.nicolas@gmail.com")) (:maintainer "Nicolas Petton" . "petton.nicolas@gmail.com") (:keywords "telepathy" "tools"))])
|
||||
(telephone-line . [(20220424 400) ((emacs (24 4)) (cl-lib (0 5)) (cl-generic (0 2)) (seq (1 8))) "Rewrite of Powerline" tar ((:commit . "6f3455a365912e8f0c45a2240ea79507dee45ade") (:authors ("Daniel Bordak" . "dbordak@fastmail.fm")) (:maintainer "Daniel Bordak" . "dbordak@fastmail.fm") (:keywords "mode-line") (:url . "https://github.com/dbordak/telephone-line"))])
|
||||
(telephone-line . [(20220919 1412) ((emacs (24 4)) (cl-lib (0 5)) (cl-generic (0 2)) (seq (1 8))) "Rewrite of Powerline" tar ((:commit . "ab518000fdcd9a6600bcbf97f3ff028314465ddf") (:authors ("Daniel Bordak" . "dbordak@fastmail.fm")) (:maintainer "Daniel Bordak" . "dbordak@fastmail.fm") (:keywords "mode-line") (:url . "https://github.com/dbordak/telephone-line"))])
|
||||
(teletext . [(20211203 1111) ((emacs (24 3))) "Teletext broadcast viewer" single ((:commit . "6b003e9dab9bd0c27d188a81f5fff740d66a2282") (:authors ("Lassi Kortela" . "lassi@lassi.io")) (:maintainer "Lassi Kortela" . "lassi@lassi.io") (:keywords "comm" "help" "hypermedia") (:url . "https://github.com/lassik/emacs-teletext"))])
|
||||
(teletext-yle . [(20210927 825) ((emacs (24 3)) (teletext (0 1))) "Teletext provider for Finnish national network YLE" single ((:commit . "9c8f4b503923c4ec688e2dcc9dff62d71bc55933") (:authors ("Lassi Kortela" . "lassi@lassi.io")) (:maintainer "Lassi Kortela" . "lassi@lassi.io") (:keywords "comm" "help" "hypermedia") (:url . "https://github.com/lassik/emacs-teletext-yle"))])
|
||||
(tempel . [(20220912 1523) ((emacs (27 1))) "Tempo templates/snippets with in-buffer field editing" single ((:commit . "836de584d064bfd2c581ce9ade87a9d4cee88acb") (:authors ("Daniel Mendler" . "mail@daniel-mendler.de")) (:maintainer "Daniel Mendler" . "mail@daniel-mendler.de") (:url . "https://github.com/minad/tempel"))])
|
||||
|
@ -4785,7 +4787,7 @@
|
|||
(timonier . [(20170411 800) ((emacs (24 4)) (s (1 11 0)) (f (0 19 0)) (dash (2 12 0)) (pkg-info (0 5 0)) (hydra (0 13 6)) (request (0 2 0)) (all-the-icons (2 0 0))) "Manage Kubernetes Applications" tar ((:commit . "3460a878269424c8d19b7d5d8e04749d0a8bf203") (:authors ("Nicolas Lamirault" . "nicolas.lamirault@gmail.com")) (:maintainer "Nicolas Lamirault" . "nicolas.lamirault@gmail.com") (:keywords "kubernetes" "docker") (:url . "https://github.com/nlamirault/timonier"))])
|
||||
(timp . [(20160618 803) ((emacs (24 4)) (cl-lib (0 5)) (fifo-class (1 0)) (signal (1 0))) "Multithreading library" tar ((:commit . "59657bf603904635d88c3fe4ff1ce45ee6572428") (:authors ("Mola-T" . "Mola@molamola.xyz")) (:maintainer "Mola-T" . "Mola@molamola.xyz") (:keywords "internal" "lisp" "processes" "tools") (:url . "https://github.com/mola-T/timp"))])
|
||||
(timu-rouge-theme . [(20220717 2158) ((emacs (27 1))) "Color theme inspired by the Rouge Theme for VSCode" single ((:commit . "bbfc8bbba01e5caa9d11628f0bc2276605c75901") (:authors ("Aimé Bertrand" . "aime.bertrand@macowners.club")) (:maintainer "Aimé Bertrand" . "aime.bertrand@macowners.club") (:keywords "faces" "themes") (:url . "https://gitlab.com/aimebertrand/timu-rouge-theme"))])
|
||||
(timu-spacegrey-theme . [(20220828 1639) ((emacs (25 1))) "Color theme inspired by the Spacegray theme in Sublime Text" single ((:commit . "0fe44da805fa52267bb637b60b87d712b1378940") (:authors ("Aimé Bertrand" . "aime.bertrand@macowners.club")) (:maintainer "Aimé Bertrand" . "aime.bertrand@macowners.club") (:keywords "faces" "themes") (:url . "https://gitlab.com/aimebertrand/timu-spacegrey-theme"))])
|
||||
(timu-spacegrey-theme . [(20220922 1439) ((emacs (25 1))) "Color theme inspired by the Spacegray theme in Sublime Text" single ((:commit . "80d227124e4bb6f8fbf613187fda77b7a16be9df") (:authors ("Aimé Bertrand" . "aime.bertrand@macowners.club")) (:maintainer "Aimé Bertrand" . "aime.bertrand@macowners.club") (:keywords "faces" "themes") (:url . "https://gitlab.com/aimebertrand/timu-spacegrey-theme"))])
|
||||
(tinkerer . [(20200914 1756) ((s (1 2 0))) "Elisp wrapper for Tinkerer Blogging Engine." single ((:commit . "7cedeb264a44cd62bcd9c778dca52316d09e07e5") (:authors ("Yagnesh Raghava Yakkala" . "hi@yagnesh.org")) (:maintainer "Yagnesh Raghava Yakkala" . "hi@yagnesh.org") (:keywords "tinkerer" "blog" "wrapper") (:url . "https://github.com/yyr/tinkerer.el"))])
|
||||
(tiny . [(20220910 1929) nil "Quickly generate linear ranges in Emacs" single ((:commit . "c107480fca7e42737c51b2afaa33ac31e92a7290") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:keywords "convenience") (:url . "https://github.com/abo-abo/tiny"))])
|
||||
(tiny-menu . [(20220725 1748) ((emacs (24 4))) "Display tiny menus." single ((:commit . "17eacfd1d44cd4d5482d32eac63229230c3cd3fc") (:authors ("Aaron Bieber" . "aaron@aaronbieber.com")) (:maintainer "Aaron Bieber" . "aaron@aaronbieber.com") (:keywords "menu" "tools") (:url . "https://github.com/aaronbieber/tiny-menu.el"))])
|
||||
|
@ -4796,7 +4798,7 @@
|
|||
(tldr . [(20210921 1715) ((emacs (24 3))) "tldr client for Emacs" single ((:commit . "d3fd2a809a266c005915026799121c78e8b358f0") (:authors ("Ono Hiroko" . "azazabc123@gmail.com")) (:maintainer "Ono Hiroko" . "azazabc123@gmail.com") (:keywords "tools" "docs") (:url . "https://github.com/kuanyui/tldr.el"))])
|
||||
(tmmofl . [(20121025 1101) nil "Calls functions dependant on font lock highlighting at point" single ((:commit . "532aa6978e994e2b069ffe37aaf9a0011a07dadc") (:authors ("Phillip Lord" . "p.lord@hgmp.mrc.ac.uk")) (:maintainer "Phillip Lord" . "p.lord@hgmp.mrc.ac.uk") (:keywords "minor mode" "font lock" "toggling."))])
|
||||
(tmux-pane . [(20200730 520) ((names (0 5)) (emacs (24)) (s (0))) "Provide integration between emacs window and tmux pane" single ((:commit . "923524efe8e6e5e0d269de6bb253b45e02d9a663") (:keywords "convenience" "terminals" "tmux" "window" "pane" "navigation" "integration") (:url . "https://github.com/laishulu/emacs-tmux-pane"))])
|
||||
(toc-mode . [(20220723 1725) ((emacs (26 1))) "Manage outlines/table of contents of pdf and djvu documents" single ((:commit . "0671d11654db7f7f33d023006d0d2f3d60e85147") (:authors ("Daniel Laurens Nicolai" . "dalanicolai@gmail.com")) (:maintainer "Daniel Laurens Nicolai" . "dalanicolai@gmail.com") (:keywords "tools" "outlines" "convenience") (:url . "https://github.com/dalanicolai/toc-mode"))])
|
||||
(toc-mode . [(20220916 859) ((emacs (26 1))) "Manage outlines/table of contents of pdf and djvu documents" single ((:commit . "cf6b12ca356d119e68935737e3340155d8fda3f3") (:authors ("Daniel Laurens Nicolai" . "dalanicolai@gmail.com")) (:maintainer "Daniel Laurens Nicolai" . "dalanicolai@gmail.com") (:keywords "tools" "outlines" "convenience") (:url . "https://github.com/dalanicolai/toc-mode"))])
|
||||
(toc-org . [(20220110 1452) nil "add table of contents to org-mode files (formerly, org-toc)" single ((:commit . "bf2e4b358efbd860ecafe6e74776de0885d9d100") (:authors ("Sergei Nosov <sergei.nosov [at] gmail.com>")) (:maintainer "Sergei Nosov <sergei.nosov [at] gmail.com>") (:keywords "org-mode" "org-toc" "toc-org" "org" "toc" "table" "of" "contents") (:url . "https://github.com/snosov1/toc-org"))])
|
||||
(todoist . [(20220517 1814) ((dash (2 15 0)) (transient (0 1 0)) (org (8 3 5)) (emacs (25 3))) "Extension for interacting and managing todoist tasks" single ((:commit . "f9ec1e730705f1fc8888f11a2b4ef1a4907e2f0b") (:authors ("Adrien Brochard")) (:maintainer "Adrien Brochard") (:keywords "todoist" "task" "todo" "comm") (:url . "https://github.com/abrochard/emacs-todoist"))])
|
||||
(todotxt . [(20220204 1903) nil "A major mode for editing todo.txt files" single ((:commit . "ddb25fb931b4bbc1af14c4c712d412af454794c4") (:authors ("Rick Dillon" . "rpdillon@killring.org")) (:maintainer "Rick Dillon" . "rpdillon@killring.org") (:keywords "todo.txt" "todotxt" "todotxt.el") (:url . "https://github.com/rpdillon/todotxt.el"))])
|
||||
|
@ -4806,7 +4808,7 @@
|
|||
(toggle-quotes . [(20140710 926) nil "Toggle between single and double quoted string" single ((:commit . "33abc221d6887f0518337851318065cd86c34b03") (:authors ("Jim Tian" . "tianjin.sc@gmail.com")) (:maintainer "Jim Tian" . "tianjin.sc@gmail.com") (:keywords "convenience" "quotes") (:url . "https://github.com/toctan/toggle-quotes.el"))])
|
||||
(toggle-test . [(20140723 537) nil "Toggle between source and test files in various programming languages" single ((:commit . "a0b64834101c2b8b24da365baea1d36e57b069b5") (:authors ("Raghunandan Rao" . "r.raghunandan@gmail.com")) (:maintainer "Raghunandan Rao" . "r.raghunandan@gmail.com") (:keywords "tdd" "test" "toggle" "productivity") (:url . "https://github.com/rags/toggle-test"))])
|
||||
(toggle-window . [(20141207 1548) nil "toggle current window size between half and full" single ((:commit . "e82c60e543933880402ede11e9423e48a17dde53") (:authors ("Kenny Liu")) (:maintainer "Kenny Liu") (:keywords "hide" "window") (:url . "https://github.com/deadghost/toggle-window"))])
|
||||
(tok-theme . [(20220915 751) ((emacs (26 1))) "Comfy dark monochromatic theme" single ((:commit . "137a68f69c3df8754c195346bb3a82238ea3caa8") (:authors ("Topi Kettunen" . "topi@topikettunen.com")) (:maintainer "Topi Kettunen" . "topi@topikettunen.com") (:url . "https://github.com/topikettunen/tok-theme"))])
|
||||
(tok-theme . [(20220917 1658) ((emacs (26 1))) "Comfy dark monochromatic theme" single ((:commit . "e18455146bc8bb73beac5d5fa060c6a2ef656bec") (:authors ("Topi Kettunen" . "topi@topikettunen.com")) (:maintainer "Topi Kettunen" . "topi@topikettunen.com") (:url . "https://github.com/topikettunen/tok-theme"))])
|
||||
(tokei . [(20220823 2058) ((emacs (27 1)) (magit-section (3 3 0))) "Display codebase statistics" single ((:commit . "86fbca422f580a95eb30247e46891184f3ac5c18") (:authors ("Daniel Nagy <https://github.com/nagy>")) (:maintainer "Daniel Nagy" . "danielnagy@posteo.de") (:url . "https://github.com/nagy/tokei.el"))])
|
||||
(tomatinho . [(20180621 1748) nil "Simple and beautiful pomodoro timer" tar ((:commit . "b53354b9b9f496c0388d6a573b06b7d6fc53d0bd") (:authors ("Konrad Scorciapino" . "scorciapino@gmail.com")) (:maintainer "Konrad Scorciapino" . "scorciapino@gmail.com") (:keywords "time" "productivity" "pomodoro technique"))])
|
||||
(toml . [(20130903 1255) nil "TOML (Tom's Obvious, Minimal Language) parser" single ((:commit . "9633a6872928e737a2335aae1065768b23d8c3b3") (:authors ("Wataru MIYAGUNI" . "gonngo@gmail.com")) (:maintainer "Wataru MIYAGUNI" . "gonngo@gmail.com") (:keywords "toml" "parser") (:url . "https://github.com/gongo/emacs-toml"))])
|
||||
|
@ -4831,14 +4833,14 @@
|
|||
(tramp-hdfs . [(20210526 339) ((emacs (24 4))) "Tramp extension to access hadoop/hdfs file system in Emacs" single ((:commit . "aa93bdbb3d5619c262ce53af1981edcd2a0705e5") (:authors ("Raghav Kumar Gautam" . "raghav@apache.org")) (:maintainer "Raghav Kumar Gautam" . "raghav@apache.org") (:keywords "tramp" "emacs" "hdfs" "hadoop" "webhdfs" "rest"))])
|
||||
(tramp-term . [(20220725 1441) nil "Automatic setup of directory tracking in ssh sessions" single ((:commit . "ed75189122737d301f716a30a8013205aa3736f1") (:authors ("Randy Morris" . "randy.morris@archlinux.us")) (:maintainer "Randy Morris" . "randy.morris@archlinux.us") (:keywords "comm" "terminals") (:url . "https://github.com/randymorris/tramp-term.el"))])
|
||||
(transfer-sh . [(20200601 1708) ((emacs (24 3)) (async (1 0))) "Simple interface for sending buffer contents to transfer.sh" single ((:commit . "0621a66d00ec91a209a542c10b158095088bd44d") (:keywords "comm" "convenience" "files") (:url . "https://gitlab.com/tuedachu/transfer-sh.el"))])
|
||||
(transient . [(20220915 1511) ((emacs (25 1)) (compat (28 1 1 0))) "Transient commands" tar ((:commit . "555792f71e0ad41a08ab50cce26e229d5769aeea") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:keywords "extensions") (:url . "https://github.com/magit/transient"))])
|
||||
(transient . [(20220918 2101) ((emacs (25 1)) (compat (28 1 1 0))) "Transient commands" tar ((:commit . "097f5be6e0c228790a6e78ffee5f0c599cb58b20") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:keywords "extensions") (:url . "https://github.com/magit/transient"))])
|
||||
(transient-dwim . [(20220425 1331) ((emacs (26 1)) (transient (0 1))) "Useful preset transient commands" single ((:commit . "7b6e70fb49b9d18106748202011863ebc39b864a") (:authors ("Naoya Yamashita" . "conao3@gmail.com")) (:maintainer "Naoya Yamashita" . "conao3@gmail.com") (:keywords "tools") (:url . "https://github.com/conao3/transient-dwim.el"))])
|
||||
(transient-posframe . [(20210102 130) ((emacs (26 0)) (posframe (0 4 3)) (transient (0 2 0))) "Using posframe to show transient" single ((:commit . "5f0874ac3ce6f50968ed5e088d6538a07bdfd11f") (:authors ("Yanghao Xie")) (:maintainer "Yanghao Xie" . "yhaoxie@gmail.com") (:keywords "convenience" "bindings" "tooltip") (:url . "https://github.com/yanghaoxie/transient-posframe"))])
|
||||
(translate-mode . [(20220511 1357) ((emacs (24 3))) "Paragraph-oriented side-by-side doc translation workflow" single ((:commit . "e1940b333241a4d0c224b7b875962736ca2b693b") (:authors ("Ray Wang" . "rayw.public@gmail.com")) (:maintainer "Ray Wang" . "rayw.public@gmail.com") (:keywords "translate" "convenience" "editing") (:url . "https://github.com/rayw000/translate-mode"))])
|
||||
(transmission . [(20210705 2152) ((emacs (24 4)) (let-alist (1 0 5))) "Interface to a Transmission session" single ((:commit . "a03a6f5c7b133e0a37896b6d993dd6d6d4532cc2") (:authors ("Mark Oteiza" . "mvoteiza@udel.edu")) (:maintainer "Mark Oteiza" . "mvoteiza@udel.edu") (:keywords "comm" "tools"))])
|
||||
(transpose-frame . [(20220913 1749) nil "Transpose windows arrangement in a frame" single ((:commit . "7b7f8a1582436749a57ebbba6ead716b5a0edddc") (:authors ("S. Irie")) (:maintainer "S. Irie") (:keywords "window"))])
|
||||
(transpose-mark . [(20150405 716) nil "Transpose data using the Emacs mark" single ((:commit . "667327602004794de97214cf336ac61650ef75b7") (:authors ("Kevin W. van Rooijen" . "kevin.van.rooijen@attichacker.com")) (:maintainer "Kevin W. van Rooijen" . "kevin.van.rooijen@attichacker.com") (:keywords "transpose" "convenience"))])
|
||||
(transwin . [(20220704 640) ((emacs (24 3))) "Make window/frame transparent" single ((:commit . "209b410f406ab4db5bb357d8f5b305982d3dea4b") (:authors ("Shen, Jen-Chieh" . "jcs090218@gmail.com")) (:maintainer "Shen, Jen-Chieh" . "jcs090218@gmail.com") (:keywords "frames" "window" "transparent") (:url . "https://github.com/jcs-elpa/transwin"))])
|
||||
(transwin . [(20220921 827) ((emacs (24 3))) "Make window/frame transparent" single ((:commit . "e4a1fe564224bce61fbf72ad6f12805078cbf8db") (:authors ("Shen, Jen-Chieh" . "jcs090218@gmail.com")) (:maintainer "Shen, Jen-Chieh" . "jcs090218@gmail.com") (:keywords "frames" "window" "transparent") (:url . "https://github.com/jcs-elpa/transwin"))])
|
||||
(trashed . [(20220106 1358) ((emacs (25 1))) "Viewing/editing system trash can" single ((:commit . "ddf5830730544435a068f2dc9ac75a81ea69df1d") (:authors ("Shingo Tanaka" . "shingo.fg8@gmail.com")) (:maintainer "Shingo Tanaka" . "shingo.fg8@gmail.com") (:keywords "files" "convenience" "unix") (:url . "https://github.com/shingo256/trashed"))])
|
||||
(travis . [(20150825 1138) ((s (1 9 0)) (dash (2 9 0)) (pkg-info (0 5 0)) (request (0 1 0))) "Emacs client for Travis" tar ((:commit . "c8769d3db10ed4604969049e3bd276afa0a0138e") (:authors ("Nicolas Lamirault" . "nicolas.lamirault@gmail.com")) (:maintainer "Nicolas Lamirault" . "nicolas.lamirault@gmail.com") (:keywords "travis") (:url . "https://github.com/nlamirault/emacs-travis"))])
|
||||
(tray . [(20220422 1628) ((emacs (27 1)) (compat (28 1 1 0)) (transient (0 3 0))) "Various transient menus" single ((:commit . "0ff79f738fbff38520d329aa93d59678cfc0e55f") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:keywords "convenience") (:url . "https://git.sr.ht/~tarsius/tray"))])
|
||||
|
@ -4850,16 +4852,16 @@
|
|||
(tree-sitter-ispell . [(20220704 340) ((emacs (25 1)) (tree-sitter (0 15 0))) "Run ispell on tree-sitter text nodes" single ((:commit . "5cd63219bbef77eb002c7e7d0df30f5714ae69dc") (:authors ("Erick Navarro" . "erick@navarro.io")) (:maintainer "Erick Navarro" . "erick@navarro.io") (:url . "https://github.com/erickgnavar/tree-sitter-ispell.el"))])
|
||||
(tree-sitter-langs . [(20220915 441) ((emacs (25 1)) (tree-sitter (0 15 0))) "Grammar bundle for tree-sitter" tar ((:commit . "6d18db5e68d106b21c5c6a746bd262a8e8782a2c") (:authors ("Tuấn-Anh Nguyễn" . "ubolonton@gmail.com")) (:maintainer "Tuấn-Anh Nguyễn" . "ubolonton@gmail.com") (:keywords "languages" "tools" "parsers" "tree-sitter") (:url . "https://github.com/emacs-tree-sitter/tree-sitter-langs"))])
|
||||
(treefactor . [(20200516 1631) ((emacs (26 1)) (dash (2 16 0)) (f (0 20 0)) (org (9 2 6)) (avy (0 5 0))) "Restructure your messy Org documents" single ((:commit . "75357757022a4399ab772ff0d92065bd114dabe9") (:authors ("Leo Littlebook" . "Leo.Littlebook@gmail.com")) (:maintainer "Leo Littlebook" . "Leo.Littlebook@gmail.com") (:keywords "outlines" "files" "convenience") (:url . "https://github.com/cyberthal/treefactor"))])
|
||||
(treemacs . [(20220915 1626) ((emacs (26 1)) (cl-lib (0 5)) (dash (2 11 0)) (s (1 12 0)) (ace-window (0 9 0)) (pfuture (1 7)) (hydra (0 13 2)) (ht (2 2)) (cfrs (1 3 2))) "A tree style file explorer package" tar ((:commit . "59b1fc20fed4b0c196a3f92606fd0358e2334eae") (:authors ("Alexander Miller" . "alexanderm@web.de")) (:maintainer "Alexander Miller" . "alexanderm@web.de") (:url . "https://github.com/Alexander-Miller/treemacs"))])
|
||||
(treemacs . [(20220917 1219) ((emacs (26 1)) (cl-lib (0 5)) (dash (2 11 0)) (s (1 12 0)) (ace-window (0 9 0)) (pfuture (1 7)) (hydra (0 13 2)) (ht (2 2)) (cfrs (1 3 2))) "A tree style file explorer package" tar ((:commit . "e4bb236bd5cd7c077c2207b33d2699485c405536") (:authors ("Alexander Miller" . "alexanderm@web.de")) (:maintainer "Alexander Miller" . "alexanderm@web.de") (:url . "https://github.com/Alexander-Miller/treemacs"))])
|
||||
(treemacs-all-the-icons . [(20220911 1427) ((emacs (26 1)) (all-the-icons (4 0 1)) (treemacs (0 0))) "all-the-icons integration for treemacs" single ((:commit . "ba0afc8be921776b5813e44d5495f09556da087b") (:authors ("Eric Dallo" . "ercdll1337@gmail.com")) (:maintainer "Eric Dallo" . "ercdll1337@gmail.com") (:url . "https://github.com/Alexander-Miller/treemacs"))])
|
||||
(treemacs-evil . [(20220911 1427) ((emacs (26 1)) (evil (1 2 12)) (treemacs (0 0))) "Evil mode integration for treemacs" single ((:commit . "ba0afc8be921776b5813e44d5495f09556da087b") (:authors ("Alexander Miller" . "alexanderm@web.de")) (:maintainer "Alexander Miller" . "alexanderm@web.de") (:url . "https://github.com/Alexander-Miller/treemacs"))])
|
||||
(treemacs-icons-dired . [(20220915 1626) ((treemacs (0 0)) (emacs (26 1))) "Treemacs icons for dired" single ((:commit . "1961981c81122b22ea70962f45c01feeb54c3800") (:authors ("Alexander Miller" . "alexanderm@web.de")) (:maintainer "Alexander Miller" . "alexanderm@web.de") (:url . "https://github.com/Alexander-Miller/treemacs"))])
|
||||
(treemacs-magit . [(20220911 1427) ((emacs (26 1)) (treemacs (0 0)) (pfuture (1 3)) (magit (2 90 0))) "Magit integration for treemacs" single ((:commit . "ba0afc8be921776b5813e44d5495f09556da087b") (:authors ("Alexander Miller" . "alexanderm@web.de")) (:maintainer "Alexander Miller" . "alexanderm@web.de") (:url . "https://github.com/Alexander-Miller/treemacs"))])
|
||||
(treemacs-magit . [(20220917 1026) ((emacs (26 1)) (treemacs (0 0)) (pfuture (1 3)) (magit (2 90 0))) "Magit integration for treemacs" single ((:commit . "13a8a060b784021f3d6bd7c27f2a0bcf6ea0d087") (:authors ("Alexander Miller" . "alexanderm@web.de")) (:maintainer "Alexander Miller" . "alexanderm@web.de") (:url . "https://github.com/Alexander-Miller/treemacs"))])
|
||||
(treemacs-persp . [(20220911 1427) ((emacs (26 1)) (treemacs (0 0)) (persp-mode (2 9 7)) (dash (2 11 0))) "Persp-mode integration for treemacs" single ((:commit . "ba0afc8be921776b5813e44d5495f09556da087b") (:authors ("Alexander Miller" . "alexanderm@web.de")) (:maintainer "Alexander Miller" . "alexanderm@web.de") (:url . "https://github.com/Alexander-Miller/treemacs"))])
|
||||
(treemacs-perspective . [(20220911 1427) ((emacs (26 1)) (treemacs (0 0)) (perspective (2 8)) (dash (2 11 0))) "Perspective integration for treemacs" single ((:commit . "ba0afc8be921776b5813e44d5495f09556da087b") (:authors ("Alexander Miller" . "alexanderm@web.de") ("Jason Dufair" . "jase@dufair.org")) (:maintainer "Alexander Miller" . "alexanderm@web.de") (:url . "https://github.com/Alexander-Miller/treemacs"))])
|
||||
(treemacs-projectile . [(20220911 1427) ((emacs (26 1)) (projectile (0 14 0)) (treemacs (0 0))) "Projectile integration for treemacs" single ((:commit . "ba0afc8be921776b5813e44d5495f09556da087b") (:authors ("Alexander Miller" . "alexanderm@web.de")) (:maintainer "Alexander Miller" . "alexanderm@web.de") (:url . "https://github.com/Alexander-Miller/treemacs"))])
|
||||
(treemacs-tab-bar . [(20220221 2038) ((emacs (27 1)) (treemacs (0 0)) (dash (2 11 0))) "Tab bar integration for treemacs" single ((:commit . "b18a05b1f62074a40e6011d83cd4c92cbee040dd") (:authors ("Alexander Miller" . "alexanderm@web.de") ("Jason Dufair" . "jase@dufair.org") ("Aaron Jensen" . "aaronjensen@gmail.com")) (:maintainer "Alexander Miller" . "alexanderm@web.de") (:url . "https://github.com/Alexander-Miller/treemacs"))])
|
||||
(treepy . [(20191108 2217) ((emacs (25 1))) "Generic tree traversal tools" single ((:commit . "306f7031d26e4ebfc9ff36614acdc6993f3e23c3") (:authors ("Daniel Barreto" . "daniel.barreto.n@gmail.com")) (:maintainer "Daniel Barreto" . "daniel.barreto.n@gmail.com") (:keywords "lisp" "maint" "tools") (:url . "https://github.com/volrath/treepy.el"))])
|
||||
(treepy . [(20220919 759) ((emacs (25 1))) "Generic tree traversal tools" single ((:commit . "de1a2ddc3fd7152d0bfbd9e14312ff8a4864ab2b") (:authors ("Daniel Barreto" . "daniel.barreto.n@gmail.com")) (:maintainer "Daniel Barreto" . "daniel.barreto.n@gmail.com") (:keywords "lisp" "maint" "tools") (:url . "https://github.com/volrath/treepy.el"))])
|
||||
(treeview . [(20220912 2346) ((emacs (24 4))) "A generic tree navigation library" single ((:commit . "b68f77bf102b289e7b0e97f767bb7ffff9a5835b") (:authors ("Tilman Rassy" . "tilman.rassy@googlemail.com")) (:maintainer "Tilman Rassy" . "tilman.rassy@googlemail.com") (:keywords "lisp" "tools" "internal" "convenience") (:url . "https://github.com/tilmanrassy/emacs-treeview"))])
|
||||
(trident-mode . [(20190410 2036) ((emacs (24)) (slime (20130526)) (skewer-mode (1 5 0)) (dash (1 0 3))) "Live Parenscript interaction" single ((:commit . "109a1bc10bd0c4b47679a6ca5c4cd27c7c8d4ccb") (:authors ("John Mastro" . "john.b.mastro@gmail.com")) (:maintainer "John Mastro" . "john.b.mastro@gmail.com") (:keywords "languages" "lisp" "processes" "tools") (:url . "https://github.com/johnmastro/trident-mode.el"))])
|
||||
(trinary . [(20180904 2313) ((emacs (24))) "Trinary logic." single ((:commit . "886232c6d7e92a8e9fe573eef46754ebe321f90d") (:authors ("Matúš Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matúš Goljer" . "matus.goljer@gmail.com") (:keywords "languages") (:url . "https://github.com/Fuco1/trinary-logic"))])
|
||||
|
@ -4985,7 +4987,7 @@
|
|||
(vector-utils . [(20140508 2041) nil "Vector-manipulation utility functions" single ((:commit . "5f9ced3960a318d611c3d20ffdc9ca74054fa8b7") (:authors ("Roland Walker" . "walker@pobox.com")) (:maintainer "Roland Walker" . "walker@pobox.com") (:keywords "extensions") (:url . "http://github.com/rolandwalker/vector-utils"))])
|
||||
(vega-view . [(20210401 1115) ((emacs (25)) (cider (0 24 0)) (parseedn (0 1))) "Vega visualization viewer" single ((:commit . "3793025a523a86acc6255b4183b12ebfc95e1116") (:authors ("Jack Rusher" . "jack@appliedscience.studio")) (:maintainer "Jack Rusher" . "jack@appliedscience.studio") (:keywords "multimedia") (:url . "https://www.github.com/applied-science/emacs-vega-view"))])
|
||||
(vegetative-theme . [(20220822 353) ((autothemer (0 2)) (emacs (24))) "A Theme based on green CRT terminals" single ((:commit . "db60ce0fe327ae7e4371545179ed94483b1132a8") (:url . "http://github.com/emacsfodder/emacs-theme-vegetative"))])
|
||||
(verb . [(20220727 1923) ((emacs (25 1))) "Organize and send HTTP requests" tar ((:commit . "89006a65946faa5fa7136f7ceba09cd9059899c4") (:authors ("Federico Tedin" . "federicotedin@gmail.com")) (:maintainer "Federico Tedin" . "federicotedin@gmail.com") (:keywords "tools") (:url . "https://github.com/federicotdn/verb"))])
|
||||
(verb . [(20220915 2159) ((emacs (25 1))) "Organize and send HTTP requests" tar ((:commit . "f945690276fbf16e65ac97f53ba5da9f8b637546") (:authors ("Federico Tedin" . "federicotedin@gmail.com")) (:maintainer "Federico Tedin" . "federicotedin@gmail.com") (:keywords "tools") (:url . "https://github.com/federicotdn/verb"))])
|
||||
(veri-kompass . [(20200213 934) ((emacs (25)) (cl-lib (0 5)) (org (8 2 0))) "verilog codebase navigation facility" single ((:commit . "271903cdf92db05898ee7cffb65641f30fa08280") (:maintainer nil . "andrea_corallo@yahoo.it") (:keywords "languages" "extensions" "verilog" "hardware" "rtl") (:url . "https://gitlab.com/koral/veri-kompass"))])
|
||||
(verify-url . [(20160426 1228) ((cl-lib (0 5))) "find out invalid urls in the buffer or region" single ((:commit . "d6f3623cda8cd526a2d198619b137059cb1ba1ab") (:authors ("DarkSun" . "lujun9972@gmail.com")) (:maintainer "DarkSun" . "lujun9972@gmail.com") (:keywords "convenience" "usability" "url") (:url . "https://github.com/lujun9972/verify-url"))])
|
||||
(verona-mode . [(20200823 536) ((emacs (25 1)) (dash (2 17 0)) (hydra (0 15 0))) "A major mode for the Verona programming language" single ((:commit . "72dd31ef847344d79409503f3c42169041eb3da4") (:keywords "languages" "programming") (:url . "https://github.com/damon-kwok/verona-mode"))])
|
||||
|
@ -5004,7 +5006,7 @@
|
|||
(vimish-fold . [(20201205 1156) ((emacs (24 4)) (cl-lib (0 5)) (f (0 18 0))) "Fold text like in Vim" single ((:commit . "a6501cbfe3db791f9ca17fd986c7202a87f3adb8") (:authors ("Mark Karpov" . "markkarpov92@gmail.com")) (:maintainer "Mark Karpov" . "markkarpov92@gmail.com") (:keywords "convenience") (:url . "https://github.com/mrkkrp/vimish-fold"))])
|
||||
(vimrc-mode . [(20181116 1919) nil "Major mode for vimrc files" single ((:commit . "13bc150a870d5d4a95f1111e4740e2b22813c30e") (:keywords "languages" "vim") (:url . "https://github.com/mcandre/vimrc-mode"))])
|
||||
(virtual-auto-fill . [(20200906 2038) ((emacs (25 2)) (adaptive-wrap (0 7)) (visual-fill-column (1 9))) "Readably display text without adding line breaks" single ((:commit . "a3991ce02d9a6a1624a3f04da80f4ac966a44092") (:authors ("Luis Gerhorst" . "virtual-auto-fill@luisgerhorst.de")) (:maintainer "Luis Gerhorst" . "virtual-auto-fill@luisgerhorst.de") (:keywords "convenience" "mail" "outlines" "files" "wp") (:url . "https://github.com/luisgerhorst/virtual-auto-fill"))])
|
||||
(virtual-comment . [(20220913 419) ((emacs (26 1))) "Virtual Comments" single ((:commit . "fbfee18042b106c12e9be37a07a6724e1637590d") (:authors ("Thanh Vuong" . "thanhvg@gmail.com")) (:maintainer "Thanh Vuong" . "thanhvg@gmail.com") (:url . "https://github.com/thanhvg/emacs-virtual-comment"))])
|
||||
(virtual-comment . [(20220921 221) ((emacs (26 1))) "Virtual Comments" single ((:commit . "b0c2ac4a9d625b5f4f329bbab879ad86cd7056bd") (:authors ("Thanh Vuong" . "thanhvg@gmail.com")) (:maintainer "Thanh Vuong" . "thanhvg@gmail.com") (:url . "https://github.com/thanhvg/emacs-virtual-comment"))])
|
||||
(virtualenv . [(20140220 2301) nil "Virtualenv for Python" single ((:commit . "cc82856b6316d5e78073de717f0d5d1a4ee35fa6") (:authors ("Aaron Culich" . "aculich@gmail.com")) (:maintainer "Aaron Culich" . "aculich@gmail.com") (:keywords "python" "virtualenv"))])
|
||||
(virtualenvwrapper . [(20190223 1919) ((dash (1 5 0)) (s (1 6 1))) "a featureful virtualenv tool for Emacs" single ((:commit . "f753e5ad91c2ff5d11bec424aa8cec141efa6925") (:authors ("James J Porter" . "porterjamesj@gmail.com")) (:maintainer "James J Porter" . "porterjamesj@gmail.com") (:keywords "python" "virtualenv" "virtualenvwrapper") (:url . "http://github.com/porterjamesj/virtualenvwrapper.el"))])
|
||||
(visible-mark . [(20150624 450) nil "Make marks visible." single ((:commit . "c1852e13b6b61982738b56977a452ec9026faf1b") (:authors ("Ian Kelling" . "ian@iankelling.org")) (:maintainer "Ian Kelling" . "ian@iankelling.org") (:keywords "marking" "color" "faces") (:url . "https://gitlab.com/iankelling/visible-mark"))])
|
||||
|
@ -5193,7 +5195,7 @@
|
|||
(yaml . [(20220720 2359) ((emacs (25 1))) "YAML parser for Elisp" single ((:commit . "73fde9d8fbbaf2596449285df9eb412ae9dd74d9") (:authors ("Zachary Romero" . "zkry@posteo.org")) (:maintainer "Zachary Romero" . "zkry@posteo.org") (:keywords "tools") (:url . "https://github.com/zkry/yaml.el"))])
|
||||
(yaml-imenu . [(20220406 1703) ((emacs (24 4)) (yaml-mode (0))) "Enhancement of the imenu support in yaml-mode." tar ((:commit . "c1fbba8b03a7bef4fc2b87404914fa9c6eb67b55") (:authors ("Akinori MUSHA" . "knu@iDaemons.org")) (:maintainer "Akinori MUSHA" . "knu@iDaemons.org") (:keywords "outlining" "convenience" "imenu") (:url . "https://github.com/knu/yaml-imenu.el"))])
|
||||
(yaml-mode . [(20220903 1821) ((emacs (24 1))) "Major mode for editing YAML files" single ((:commit . "9969207f60b69e42c573a63764faeb9caaccb2bf") (:authors ("Yoshiki Kurihara" . "clouder@gmail.com") ("Marshall T. Vandegrift" . "llasram@gmail.com")) (:maintainer "Vasilij Schneidermann" . "mail@vasilij.de") (:keywords "data" "yaml") (:url . "https://github.com/yoshiki/yaml-mode"))])
|
||||
(yaml-pro . [(20220901 311) ((emacs (26 1)) (yaml (0 5 1))) "Parser-aided YAML editing features" tar ((:commit . "22121b234b484bbf9735c6122ce00663b80608ca") (:authors ("Zachary Romero")) (:maintainer "Zachary Romero") (:keywords "tools") (:url . "https://github.com/zkry/yaml-pro"))])
|
||||
(yaml-pro . [(20220919 1312) ((emacs (26 1)) (yaml (0 5 1))) "Parser-aided YAML editing features" tar ((:commit . "36d340b27a008478466e0158c8ef4098230bfe49") (:authors ("Zachary Romero")) (:maintainer "Zachary Romero") (:keywords "tools") (:url . "https://github.com/zkry/yaml-pro"))])
|
||||
(yaml-tomato . [(20151123 753) ((s (1 9))) "copy or show the yaml path currently under cursor." single ((:commit . "1272c502fac6ce6b0f8b7f8a9beb353f0b35e13c") (:authors ("qrczeno")) (:maintainer "qrczeno") (:keywords "yaml"))])
|
||||
(yang-mode . [(20190507 724) nil "major mode for editing YANG files" single ((:commit . "4b4ab4d4a79d37d6c31c6ea7cccbc425e0b1eded") (:authors ("Martin Bjorklund" . "mbj4668@gmail.com")) (:maintainer "Martin Bjorklund" . "mbj4668@gmail.com"))])
|
||||
(yankpad . [(20220201 2104) ((emacs (25 1))) "Paste snippets from an org-mode file" single ((:commit . "927e6d26956ac7219b8a69d641acf486854fba16") (:authors ("Erik Sjöstrand")) (:maintainer "Erik Sjöstrand") (:keywords "abbrev" "convenience") (:url . "http://github.com/Kungsgeten/yankpad"))])
|
||||
|
@ -5207,7 +5209,7 @@
|
|||
(yasnippet-lean . [(20220105 2251) ((yasnippet (0 8 0))) "Collection of snippets for the Lean prover" tar ((:commit . "c75485757cc8675ad4f36c1eb028d9d54dc21733") (:maintainer "Simon Hudon" . "simon.hudon@gmail.com") (:keywords "convenience" "snippets" "leanprover") (:url . "https://github.com/leanprover-community/yasnippet-lean"))])
|
||||
(yasnippet-snippets . [(20220713 1234) ((yasnippet (0 8 0))) "Collection of yasnippet snippets" tar ((:commit . "cd665c9cba4bab646f6d50ac098bee63573a4ca5") (:authors ("Andrea Crotti" . "andrea.crotti.0@gmail.com")) (:maintainer "Andrea Crotti" . "andrea.crotti.0@gmail.com") (:keywords "snippets") (:url . "https://github.com/AndreaCrotti/yasnippet-snippets"))])
|
||||
(yatemplate . [(20211115 1208) ((yasnippet (0 8 1)) (emacs (24 3))) "File templates with yasnippet" single ((:commit . "275745ce1482edc08efb0b7807bc86d832bcc734") (:authors ("Wieland Hoffmann" . "themineo+yatemplate@gmail.com")) (:maintainer "Wieland Hoffmann" . "themineo+yatemplate@gmail.com") (:keywords "files" "convenience") (:url . "https://github.com/mineo/yatemplate"))])
|
||||
(yatex . [(20211203 2212) nil "Yet Another tex-mode for emacs //野鳥//" tar ((:commit . "907de32064c99c25fb49072438be7c1034892af3"))])
|
||||
(yatex . [(20220921 1234) nil "Yet Another tex-mode for emacs //野鳥//" tar ((:commit . "c6a26b422d3065d59dcef86a4db99cbad0f64bb0"))])
|
||||
(yaxception . [(20150105 1452) nil "Provide framework about exception like Java for Elisp" single ((:commit . "21a36020c6a5319ea6461f4524aa3a0589df3bbd") (:authors ("Hiroaki Otsu" . "ootsuhiroaki@gmail.com")) (:maintainer "Hiroaki Otsu" . "ootsuhiroaki@gmail.com") (:keywords "exception" "error" "signal") (:url . "https://github.com/aki2o/yaxception"))])
|
||||
(ycm . [(20150822 1836) nil "Emacs client for the YouCompleteMe auto-completion server." single ((:commit . "4da8a14abcd0f4fa3235042ade2e12b5068c0601") (:authors ("Ajay Gopinathan" . "ajay@gopinathan.net")) (:maintainer "Ajay Gopinathan" . "ajay@gopinathan.net") (:keywords "c" "abbrev"))])
|
||||
(ycmd . [(20190416 807) ((emacs (24 4)) (dash (2 13 0)) (s (1 11 0)) (deferred (0 5 1)) (cl-lib (0 6 1)) (let-alist (1 0 5)) (request (0 3 0)) (request-deferred (0 3 0)) (pkg-info (0 6))) "emacs bindings to the ycmd completion server" tar ((:commit . "6f4f7384b82203cccf208e3ec09252eb079439f9") (:url . "https://github.com/abingham/emacs-ycmd"))])
|
||||
|
@ -5217,7 +5219,7 @@
|
|||
(yesterbox . [(20200327 52) ((emacs (24 3))) "Count number of inbox messages by day" single ((:commit . "7d890ab3f012b1a48a0e8e437f5fcaeba9825fdc") (:authors ("Stephen J. Eglen" . "sje30@cam.ac.uk")) (:maintainer "Stephen J. Eglen" . "sje30@cam.ac.uk") (:keywords "mail") (:url . "http://github.com/sje30/yesterbox"))])
|
||||
(ynab . [(20200607 2008) ((emacs (26 3)) (cl-lib (0 5)) (ts (0 2))) "Major mode for YNAB (you need a budget)" single ((:commit . "2c6beb4d2c4996017f6b3c62c26db52a61e5c479") (:authors ("Jim Anders <https://github.com/janders223>")) (:maintainer "Jim Anders" . "jimanders223@gmail.com") (:keywords "ynab" "budget" "convenience") (:url . "https://github.com/janders223/ynab.el"))])
|
||||
(yoficator . [(20190509 1620) nil "Interactively yoficate Russian texts" tar ((:commit . "fa914f9648515bca54b5e558ca57d2b65fa57491") (:authors ("Eugene Minkovskii" . "emin@mccme.ru") ("Alexander Krotov" . "ilabdsf@gmail.com")) (:maintainer "Eugene Minkovskii" . "emin@mccme.ru") (:url . "https://gitlab.com/link2xt/yoficator"))])
|
||||
(yoshi-theme . [(20211031 456) nil "Theme named after my cat" single ((:commit . "787bb0a13c6e1b28e904e1b7f18564d5e97c9c93") (:authors ("Tom Willemse" . "tom@ryuslash.org")) (:maintainer "Tom Willemse" . "tom@ryuslash.org") (:keywords "faces") (:url . "http://projects.ryuslash.org/yoshi-theme/"))])
|
||||
(yoshi-theme . [(20220917 638) nil "Theme named after my cat" single ((:commit . "ac195a65281bed6ac894a9c9e904d56d375ce05e") (:authors ("Tom Willemse" . "tom@ryuslash.org")) (:maintainer "Tom Willemse" . "tom@ryuslash.org") (:keywords "faces") (:url . "http://projects.ryuslash.org/yoshi-theme/"))])
|
||||
(youdao-dictionary . [(20200722 1705) ((popup (0 5 0)) (pos-tip (0 4 6)) (chinese-word-at-point (0 2)) (names (0 5)) (emacs (24))) "Youdao Dictionary interface for Emacs" single ((:commit . "8a4815a43565b9bfd257246e4895b8bfafb9d573") (:authors ("Chunyang Xu" . "xuchunyang56@gmail.com")) (:maintainer "Chunyang Xu" . "xuchunyang56@gmail.com") (:keywords "convenience" "chinese" "dictionary") (:url . "https://github.com/xuchunyang/youdao-dictionary.el"))])
|
||||
(ytdious . [(20210228 2111) ((emacs (25 3))) "Query / Preview YouTube via Invidious" single ((:commit . "941460b51e43ef6764e15e2b9c4af54c3e56115f") (:authors ("Stefan Huchler") ("Gabriele Rastello")) (:maintainer "Stefan Huchler") (:keywords "youtube" "matching" "multimedia") (:url . "https://github.com/spiderbit/ytdious"))])
|
||||
(ytdl . [(20210506 914) ((emacs (26 1)) (async (1 9 4)) (transient (0 2 0)) (dash (2 17 0))) "Emacs Interface for youtube-dl" single ((:commit . "23da64f5c38b8cb83dbbadf704171b86cc0fa937") (:authors ("Arnaud Hoffmann" . "tuedachu@gmail.com")) (:maintainer "Arnaud Hoffmann" . "tuedachu@gmail.com") (:keywords "comm" "multimedia") (:url . "https://gitlab.com/tuedachu/ytdl"))])
|
||||
|
@ -5235,7 +5237,7 @@
|
|||
(zephir-mode . [(20200417 830) ((cl-lib (0 5)) (pkg-info (0 4)) (emacs (25 1))) "Major mode for editing Zephir code" tar ((:commit . "4e9618b77dff67c1c7b6fff78605a62311db88b8") (:authors ("Serghei Iakovlev" . "egrep@protonmail.ch")) (:maintainer "Serghei Iakovlev" . "egrep@protonmail.ch") (:keywords "languages") (:url . "https://github.com/zephir-lang/zephir-mode"))])
|
||||
(zero-input . [(20200405 1220) ((emacs (24 3)) (s (1 2 0))) "Zero Chinese input method framework" single ((:commit . "729da9f4b99acb744ee6974ed7f3d4e252fd19da") (:url . "https://gitlab.emacsos.com/sylecn/zero-el"))])
|
||||
(zerodark-theme . [(20211115 841) ((all-the-icons (2 0 0))) "A dark, medium contrast theme for Emacs" single ((:commit . "b463528704f6eb00684c0ee003fbd8e42901cde0") (:authors ("Nicolas Petton" . "nicolas@petton.fr")) (:maintainer "Nicolas Petton" . "nicolas@petton.fr") (:keywords "themes") (:url . "https://github.com/NicolasPetton/zerodark-theme"))])
|
||||
(zetteldeft . [(20220914 1351) ((emacs (25 1)) (deft (0 8)) (ace-window (0 7 0))) "Turn deft into a zettelkasten system" tar ((:commit . "045f34532d3d96f08ccca2ab2b34354ff6078c63") (:authors ("EFLS <Elias Storms>")) (:maintainer "EFLS <Elias Storms>") (:keywords "deft" "zettelkasten" "zetteldeft" "wp" "files") (:url . "https://efls.github.io/zetteldeft/"))])
|
||||
(zetteldeft . [(20220921 1949) ((emacs (25 1)) (deft (0 8)) (ace-window (0 7 0))) "Turn deft into a zettelkasten system" tar ((:commit . "29fa4c9708046f40199106eceaa14ceb58648be9") (:authors ("EFLS <Elias Storms>")) (:maintainer "EFLS <Elias Storms>") (:keywords "deft" "zettelkasten" "zetteldeft" "wp" "files") (:url . "https://efls.github.io/zetteldeft/"))])
|
||||
(zetteldesk . [(20220703 1648) ((emacs (27 1)) (org-roam (2 0))) "A revision and outlining tool for org-roam" single ((:commit . "b9367a738628dbb569ab878b65240a567eadaaf6") (:authors ("Vidianos Giannitsis" . "vidianosgiannitsis@gmail.com")) (:maintainer "Vidianos Giannitsis" . "vidianosgiannitsis@gmail.com") (:url . "https://github.com/Vidianos-Giannitsis/zetteldesk.el"))])
|
||||
(zetteldesk-info . [(20220626 1100) ((zetteldesk (0 4)) (emacs (27 1))) "A zetteldesk extension for interacting with the info program" single ((:commit . "171fefe91fc616c94b2ec29826fa6893f5816c00") (:authors ("Vidianos Giannitsis" . "vidianosgiannitsis@gmail.com")) (:maintainer "Vidianos Giannitsis" . "vidianosgiannitsis@gmail.com") (:url . "https://github.com/Vidianos-Giannitsis/zetteldesk-info.el"))])
|
||||
(zetteldesk-kb . [(20220703 1648) ((zetteldesk (1 0 1)) (hydra (0 15)) (major-mode-hydra (0 2)) (emacs (24 1))) "Keybindings for zetteldesk.el" single ((:commit . "b9367a738628dbb569ab878b65240a567eadaaf6") (:authors ("Vidianos Giannitsis" . "vidianosgiannitsis@gmail.com")) (:maintainer "Vidianos Giannitsis" . "vidianosgiannitsis@gmail.com") (:url . "https://github.com/Vidianos-Giannitsis/zetteldesk-kb.el"))])
|
||||
|
|
59
org/elpa/devdocs-20220811.703/devdocs-autoloads.el
Normal file
59
org/elpa/devdocs-20220811.703/devdocs-autoloads.el
Normal file
|
@ -0,0 +1,59 @@
|
|||
;;; devdocs-autoloads.el --- automatically extracted autoloads -*- lexical-binding: t -*-
|
||||
;;
|
||||
;;; Code:
|
||||
|
||||
(add-to-list 'load-path (directory-file-name
|
||||
(or (file-name-directory #$) (car load-path))))
|
||||
|
||||
|
||||
;;;### (autoloads nil "devdocs" "devdocs.el" (0 0 0 0))
|
||||
;;; Generated autoloads from devdocs.el
|
||||
|
||||
(autoload 'devdocs-delete "devdocs" "\
|
||||
Delete DevDocs documentation.
|
||||
DOC is a document metadata alist.
|
||||
|
||||
\(fn DOC)" t nil)
|
||||
|
||||
(autoload 'devdocs-install "devdocs" "\
|
||||
Download and install DevDocs documentation.
|
||||
DOC is a document metadata alist.
|
||||
|
||||
\(fn DOC)" t nil)
|
||||
|
||||
(autoload 'devdocs-update-all "devdocs" "\
|
||||
Reinstall all documents with a new version available." t nil)
|
||||
|
||||
(autoload 'devdocs-lookup "devdocs" "\
|
||||
Look up a DevDocs documentation entry.
|
||||
|
||||
Display entries in the documents `devdocs-current-docs' for
|
||||
selection. With a prefix argument (or, from Lisp, if ASK-DOCS is
|
||||
non-nil), first read the name of one or more installed documents
|
||||
and set `devdocs-current-docs' for this buffer.
|
||||
|
||||
If INITIAL-INPUT is not nil, insert it into the minibuffer.
|
||||
|
||||
\(fn &optional ASK-DOCS INITIAL-INPUT)" t nil)
|
||||
|
||||
(autoload 'devdocs-peruse "devdocs" "\
|
||||
Read a document from the first page.
|
||||
|
||||
\(fn DOC)" t nil)
|
||||
|
||||
(autoload 'devdocs-search "devdocs" "\
|
||||
Search for QUERY in the DevDocs website.
|
||||
|
||||
\(fn QUERY)" t nil)
|
||||
|
||||
(register-definition-prefixes "devdocs" '("devdocs-"))
|
||||
|
||||
;;;***
|
||||
|
||||
;; Local Variables:
|
||||
;; version-control: never
|
||||
;; no-byte-compile: t
|
||||
;; no-update-autoloads: t
|
||||
;; coding: utf-8
|
||||
;; End:
|
||||
;;; devdocs-autoloads.el ends here
|
2
org/elpa/devdocs-20220811.703/devdocs-pkg.el
Normal file
2
org/elpa/devdocs-20220811.703/devdocs-pkg.el
Normal file
|
@ -0,0 +1,2 @@
|
|||
;;; Generated package description from devdocs.el -*- no-byte-compile: t -*-
|
||||
(define-package "devdocs" "20220811.703" "Emacs viewer for DevDocs" '((emacs "27.1")) :commit "61ce83b79dc64e2f99d7f016a09b97e14b331459" :authors '(("Augusto Stoffel" . "arstoffel@gmail.com")) :maintainer '("Augusto Stoffel" . "arstoffel@gmail.com") :keywords '("help") :url "https://github.com/astoff/devdocs.el")
|
619
org/elpa/devdocs-20220811.703/devdocs.el
Normal file
619
org/elpa/devdocs-20220811.703/devdocs.el
Normal file
|
@ -0,0 +1,619 @@
|
|||
;;; devdocs.el --- Emacs viewer for DevDocs -*- lexical-binding: t -*-
|
||||
|
||||
;; Copyright (C) 2021 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Augusto Stoffel <arstoffel@gmail.com>
|
||||
;; Keywords: help
|
||||
;; Package-Version: 20220811.703
|
||||
;; Package-Commit: 61ce83b79dc64e2f99d7f016a09b97e14b331459
|
||||
;; URL: https://github.com/astoff/devdocs.el
|
||||
;; Package-Requires: ((emacs "27.1"))
|
||||
;; Version: 0.5
|
||||
|
||||
;; 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 3 of the License, 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; devdocs.el is a documentation viewer similar to the built-in Info
|
||||
;; browser, but geared towards documentation obtained from
|
||||
;; https://devdocs.io.
|
||||
|
||||
;; To get started, download some documentation with `devdocs-install`.
|
||||
;; This will show the available documents and save the selected one to
|
||||
;; disk. Once you have the desired documents at hand, use
|
||||
;; `devdocs-lookup` to search for entries.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'seq)
|
||||
(require 'shr)
|
||||
(require 'url-expand)
|
||||
(eval-when-compile
|
||||
(require 'let-alist))
|
||||
|
||||
(unless (libxml-available-p)
|
||||
(display-warning 'devdocs "This package requires Emacs to be compiled with libxml2"))
|
||||
|
||||
(defgroup devdocs nil
|
||||
"Emacs viewer for DevDocs."
|
||||
:group 'help
|
||||
:prefix "devdocs-")
|
||||
|
||||
(defcustom devdocs-current-docs nil
|
||||
"A list of documents relevant to the current buffer.
|
||||
This variable is normally set by the `devdocs-lookup' command,
|
||||
but you may also wish to set it via a hook or as file or
|
||||
directory-local variable."
|
||||
:local t
|
||||
:type '(list string))
|
||||
|
||||
(defcustom devdocs-data-dir (expand-file-name "devdocs" user-emacs-directory)
|
||||
"Directory to save documentation files."
|
||||
:type 'directory)
|
||||
|
||||
(defvar devdocs-site-url "https://devdocs.io"
|
||||
"Location of the DevDocs website.")
|
||||
|
||||
(defvar devdocs-cdn-url "https://documents.devdocs.io"
|
||||
"Location of the DevDocs CDN.")
|
||||
|
||||
(defcustom devdocs-cache-timeout 900
|
||||
"Number of seconds to keep cached information such as document indexes."
|
||||
:type 'number)
|
||||
|
||||
(defcustom devdocs-separator " » "
|
||||
"String used to format a documentation location, e.g. in header line."
|
||||
:type 'string)
|
||||
|
||||
(defcustom devdocs-disambiguated-entry-format #("%s (%s)" 3 7 (face italic))
|
||||
"How to disambiguate entries with identical names in `devdocs-lookup'.
|
||||
This string is passed to `format' with two arguments, the entry
|
||||
name and a count."
|
||||
:type '(choice (const :tag "Count in parentheses, italicized"
|
||||
#("%s (%s)" 3 7 (face italic)))
|
||||
(const :tag "Invisible cookie"
|
||||
#("%s (%s)" 2 7 (invisible t)))
|
||||
string))
|
||||
|
||||
(defcustom devdocs-fontify-code-blocks t
|
||||
"Whether to fontify code snippets inside pre tags.
|
||||
Fontification is done using the `org-src' library, which see."
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom devdocs-window-select nil
|
||||
"Whether to select the DevDocs window for viewing."
|
||||
:type 'boolean)
|
||||
|
||||
(defface devdocs-code-block '((t nil))
|
||||
"Additional face to apply to code blocks in DevDocs buffers.")
|
||||
|
||||
(defvar devdocs-history nil
|
||||
"History of documentation entries.")
|
||||
|
||||
(defconst devdocs--data-format-version 1
|
||||
"Version number of the saved documentation data format.")
|
||||
|
||||
;;; Memoization
|
||||
|
||||
(defvar devdocs--cache (make-hash-table :test 'equal)
|
||||
"Hash table used by `devdocs--with-cache'.")
|
||||
|
||||
(defmacro devdocs--with-cache (&rest body)
|
||||
"Evaluate BODY with memoization.
|
||||
The return value is stored and reused if needed again within the
|
||||
time span specified by `devdocs-cache-timeout'.
|
||||
|
||||
Note that the lexical environment is used to associate BODY to
|
||||
its return value; take the necessary precautions."
|
||||
`(if-let ((fun (lambda () ,@body))
|
||||
(funrep ,(if (< emacs-major-version 28) ;; Cf. bug#32503
|
||||
'(prin1-to-string fun)
|
||||
'fun))
|
||||
(data (gethash funrep devdocs--cache)))
|
||||
(prog1 (cdr data)
|
||||
(timer-set-time (car data) (time-add nil devdocs-cache-timeout)))
|
||||
(let ((val (funcall fun))
|
||||
(timer (run-at-time devdocs-cache-timeout nil
|
||||
#'remhash funrep devdocs--cache)))
|
||||
(prog1 val
|
||||
(puthash funrep (cons timer val) devdocs--cache)))))
|
||||
|
||||
;;; Documentation management
|
||||
|
||||
(defun devdocs--doc-metadata (slug)
|
||||
"Return the metadata of an installed document named SLUG."
|
||||
(let ((file (expand-file-name (concat slug "/metadata") devdocs-data-dir)))
|
||||
(unless (file-exists-p file)
|
||||
(user-error "Document `%s' is not installed" slug))
|
||||
(with-temp-buffer
|
||||
(insert-file-contents file)
|
||||
(let ((metadata (read (current-buffer))))
|
||||
(unless (eq (car metadata) devdocs--data-format-version)
|
||||
(user-error "Please run `devdocs-update-all'"))
|
||||
(cdr metadata)))))
|
||||
|
||||
(defun devdocs--installed-docs ()
|
||||
"Return a list of installed documents."
|
||||
(mapcar #'devdocs--doc-metadata
|
||||
(let ((default-directory devdocs-data-dir))
|
||||
(seq-filter #'file-directory-p
|
||||
(when (file-directory-p devdocs-data-dir)
|
||||
(directory-files "." nil "^[^.]"))))))
|
||||
|
||||
(defun devdocs--available-docs ()
|
||||
"Return a list of available documents.
|
||||
If necessary, download data from `devdocs-site-url'."
|
||||
(devdocs--with-cache
|
||||
(with-temp-buffer
|
||||
(url-insert-file-contents
|
||||
(format "%s/docs.json" devdocs-site-url))
|
||||
(json-read))))
|
||||
|
||||
(defun devdocs--doc-title (doc)
|
||||
"Title of document DOC.
|
||||
DOC is either a metadata alist, or the slug of an installed
|
||||
document."
|
||||
(let-alist (if (stringp doc) (devdocs--doc-metadata doc) doc)
|
||||
(if (seq-empty-p .version) .name (concat .name " " .version))))
|
||||
|
||||
(defun devdocs--read-document (prompt &optional multiple available)
|
||||
"Query interactively for a DevDocs document.
|
||||
|
||||
PROMPT is passed to `completing-read'.
|
||||
Non-nil MULTIPLE allows selecting multiple documents.
|
||||
Non-nil AVAILABLE means to offer a list of all available documents;
|
||||
otherwise, offer only installed documents.
|
||||
|
||||
Return a document metadata alist if MULTIPLE is nil; otherwise, a
|
||||
list of metadata alists."
|
||||
(let ((cands (mapcar (lambda (it) (cons (alist-get 'slug it) it))
|
||||
(if available
|
||||
(devdocs--available-docs)
|
||||
(or (devdocs--installed-docs)
|
||||
(user-error "No documents in `%s'" devdocs-data-dir))))))
|
||||
(if multiple
|
||||
(delq nil (mapcar (lambda (s) (cdr (assoc s cands)))
|
||||
(completing-read-multiple prompt cands)))
|
||||
(cdr (assoc (completing-read prompt cands nil t) cands)))))
|
||||
|
||||
;;;###autoload
|
||||
(defun devdocs-delete (doc)
|
||||
"Delete DevDocs documentation.
|
||||
DOC is a document metadata alist."
|
||||
(interactive (list (devdocs--read-document "Delete documentation: ")))
|
||||
(let ((dest (expand-file-name (alist-get 'slug doc) devdocs-data-dir)))
|
||||
(if (and (file-directory-p dest)
|
||||
(file-in-directory-p dest devdocs-data-dir))
|
||||
(delete-directory dest t)
|
||||
(user-error "Document `%s' is not installed" (alist-get 'slug doc)))))
|
||||
|
||||
;;;###autoload
|
||||
(defun devdocs-install (doc)
|
||||
"Download and install DevDocs documentation.
|
||||
DOC is a document metadata alist."
|
||||
(interactive (list (devdocs--read-document "Install documentation: " nil t)))
|
||||
(make-directory devdocs-data-dir t)
|
||||
(let* ((slug (alist-get 'slug doc))
|
||||
(mtime (alist-get 'mtime doc))
|
||||
(temp (make-temp-file "devdocs-" t))
|
||||
pages)
|
||||
(with-temp-buffer
|
||||
(url-insert-file-contents (format "%s/%s/db.json?%s" devdocs-cdn-url slug mtime))
|
||||
(dolist-with-progress-reporter
|
||||
(entry (let ((json-key-type 'string))
|
||||
(json-read)))
|
||||
"Installing documentation..."
|
||||
(with-temp-file (expand-file-name
|
||||
(url-hexify-string (format "%s.html" (car entry))) temp)
|
||||
(push (car entry) pages)
|
||||
(insert (cdr entry)))))
|
||||
(with-temp-buffer
|
||||
(url-insert-file-contents (format "%s/%s/index.json?%s" devdocs-cdn-url slug mtime))
|
||||
(let ((index (json-read)))
|
||||
(push `(pages . ,(vconcat (nreverse pages))) index)
|
||||
(with-temp-file (expand-file-name "index" temp)
|
||||
(prin1 index (current-buffer)))))
|
||||
(with-temp-file (expand-file-name "metadata" temp)
|
||||
(prin1 (cons devdocs--data-format-version doc) (current-buffer)))
|
||||
(let ((dest (expand-file-name slug devdocs-data-dir)))
|
||||
(when (and (file-directory-p dest)
|
||||
(file-in-directory-p dest devdocs-data-dir))
|
||||
(delete-directory dest t))
|
||||
(rename-file (file-name-as-directory temp) dest))
|
||||
(message "Document `%s' installed" slug)))
|
||||
|
||||
;;;###autoload
|
||||
(defun devdocs-update-all ()
|
||||
"Reinstall all documents with a new version available."
|
||||
(interactive)
|
||||
(when-let ((installed (when (file-directory-p devdocs-data-dir)
|
||||
(directory-files devdocs-data-dir nil "^[^.]")))
|
||||
(newer (seq-filter
|
||||
(lambda (doc)
|
||||
(let-alist doc
|
||||
(and (member .slug installed)
|
||||
(< (alist-get 'mtime
|
||||
(ignore-errors (devdocs--doc-metadata .slug))
|
||||
0) ;; Update docs with an old data format too
|
||||
.mtime))))
|
||||
(devdocs--available-docs)))
|
||||
((y-or-n-p (format "Update %s documents %s?"
|
||||
(length newer)
|
||||
(mapcar (lambda (d) (alist-get 'slug d)) newer)))))
|
||||
(dolist (doc newer)
|
||||
(devdocs-install doc))))
|
||||
|
||||
;;; Document indexes
|
||||
|
||||
(defun devdocs--index (doc kind)
|
||||
"Return an index of document DOC, where KIND is `entries', `pages' or `types'."
|
||||
(if kind
|
||||
(alist-get kind (devdocs--with-cache (devdocs--index doc nil)))
|
||||
(let* ((docmeta (cons 'doc doc))
|
||||
(indexes (with-temp-buffer
|
||||
(insert-file-contents (expand-file-name
|
||||
(concat (alist-get 'slug doc) "/index")
|
||||
devdocs-data-dir))
|
||||
(read (current-buffer))))
|
||||
(entries (alist-get 'entries indexes)))
|
||||
(prog1 indexes
|
||||
(seq-do-indexed (lambda (entry i) (aset entries i (cons docmeta entry)))
|
||||
entries)))))
|
||||
|
||||
;;; Documentation viewer
|
||||
|
||||
(defvar-local devdocs--stack nil
|
||||
"List of viewed entries, set buffer-locally when in `devdocs-mode'.")
|
||||
|
||||
(defvar-local devdocs--forward-stack nil
|
||||
"List of viewed entries for `devdocs-go-forward'.")
|
||||
|
||||
(defvar devdocs-header-line
|
||||
'(:eval (let-alist (car devdocs--stack)
|
||||
(concat (devdocs--doc-title .doc)
|
||||
(and .type devdocs-separator) .type
|
||||
devdocs-separator (or .name .path)))))
|
||||
|
||||
(define-derived-mode devdocs-mode special-mode "DevDocs"
|
||||
"Major mode for viewing DevDocs documents."
|
||||
:interactive nil
|
||||
(setq-local
|
||||
browse-url-browser-function 'devdocs--browse-url
|
||||
buffer-undo-list t
|
||||
header-line-format devdocs-header-line
|
||||
revert-buffer-function 'devdocs--revert-buffer
|
||||
truncate-lines t))
|
||||
|
||||
(defun devdocs-goto-target ()
|
||||
"Go to the original position in a DevDocs buffer."
|
||||
(interactive)
|
||||
(goto-char (point-min))
|
||||
(when-let ((pred (if (fboundp 'shr--set-target-ids) #'member t)) ;; shr change in Emacs 29
|
||||
(match (text-property-search-forward 'shr-target-id shr-target-id pred)))
|
||||
(goto-char (prop-match-beginning match))))
|
||||
|
||||
(defun devdocs-go-back ()
|
||||
"Go to the previously displayed entry in this DevDocs buffer."
|
||||
(interactive)
|
||||
(unless (cadr devdocs--stack)
|
||||
(user-error "No previous entry"))
|
||||
(push (pop devdocs--stack) devdocs--forward-stack)
|
||||
(devdocs--render (pop devdocs--stack)))
|
||||
|
||||
(defun devdocs-go-forward ()
|
||||
"Go to the next entry in this DevDocs buffer."
|
||||
(interactive)
|
||||
(unless (car devdocs--forward-stack)
|
||||
(user-error "No next entry"))
|
||||
(devdocs--render (pop devdocs--forward-stack)))
|
||||
|
||||
(defun devdocs-next-entry (count)
|
||||
"Go forward COUNT entries in this document.
|
||||
|
||||
Note that this refers to the index order, which may not coincide
|
||||
with the order of appearance in the text."
|
||||
(interactive "p")
|
||||
(let-alist (car devdocs--stack)
|
||||
(let* ((entries (devdocs--index .doc 'entries))
|
||||
(pred (lambda (entry _) (string= (alist-get 'path entry) .path)))
|
||||
(current (seq-position entries nil pred)))
|
||||
(unless current (user-error "No current entry"))
|
||||
(devdocs--render
|
||||
(or (ignore-error 'args-out-of-range (elt entries (+ count current)))
|
||||
(user-error "No %s entry" (if (< count 0) "previous" "next")))))))
|
||||
|
||||
(defun devdocs-previous-entry (count)
|
||||
"Go backward COUNT entries in this document."
|
||||
(interactive "p")
|
||||
(devdocs-next-entry (- count)))
|
||||
|
||||
(defun devdocs-goto-page (doc page)
|
||||
"Go to a given PAGE (a number or path) of DOC.
|
||||
Interactively, read a page name with completion."
|
||||
(interactive (let-alist (car devdocs--stack)
|
||||
(list .doc (completing-read "Go to page: "
|
||||
(append (devdocs--index .doc 'pages) nil)
|
||||
nil t nil 'devdocs-history))))
|
||||
(let* ((path (cond ((stringp page) page)
|
||||
((numberp page) (elt (devdocs--index doc 'pages) page))))
|
||||
(entry (or (seq-find (lambda (entry) (string= (alist-get 'path entry) path))
|
||||
(devdocs--index doc 'entries))
|
||||
`((doc . ,doc) (path . ,path)))))
|
||||
(devdocs--render entry)))
|
||||
|
||||
(defun devdocs-first-page (doc)
|
||||
"Go to first page of DOC."
|
||||
(interactive (list (alist-get 'doc (car devdocs--stack))))
|
||||
(devdocs-goto-page doc 0))
|
||||
|
||||
(defun devdocs-last-page (doc)
|
||||
"Go to last page of DOC."
|
||||
(interactive (list (alist-get 'doc (car devdocs--stack))))
|
||||
(devdocs-goto-page doc (1- (length (devdocs--index doc 'pages)))))
|
||||
|
||||
(defun devdocs-next-page (count)
|
||||
"Go forward COUNT pages in this document."
|
||||
(interactive "p")
|
||||
(let-alist (car devdocs--stack)
|
||||
(let* ((pages (devdocs--index .doc 'pages))
|
||||
(dest (+ count (seq-position pages (devdocs--path-file .path)))))
|
||||
(cond ((< dest 0) (user-error "No previous page"))
|
||||
((<= (length pages) dest) (user-error "No next page")))
|
||||
(devdocs-goto-page .doc dest))))
|
||||
|
||||
(defun devdocs-previous-page (count)
|
||||
"Go backward COUNT entries in this document."
|
||||
(interactive "p")
|
||||
(devdocs-next-page (- count)))
|
||||
|
||||
(defun devdocs-copy-url ()
|
||||
"Copy the URL of the current DevDocs page to the kill ring."
|
||||
(interactive)
|
||||
(let-alist (or (car devdocs--stack)
|
||||
(user-error "Not in a DevDocs buffer"))
|
||||
(let ((url (url-encode-url
|
||||
(format "%s/%s/%s"
|
||||
devdocs-site-url
|
||||
.doc.slug
|
||||
(if .fragment
|
||||
(concat (devdocs--path-file .path) "#" .fragment)
|
||||
.path)))))
|
||||
(kill-new url)
|
||||
(message "Copied %s" url))))
|
||||
|
||||
(let ((map devdocs-mode-map))
|
||||
(define-key map [tab] #'forward-button)
|
||||
(define-key map [backtab] #'backward-button)
|
||||
(define-key map "d" #'devdocs-peruse)
|
||||
(define-key map "i" #'devdocs-lookup)
|
||||
(define-key map "p" #'devdocs-previous-entry)
|
||||
(define-key map "n" #'devdocs-next-entry)
|
||||
(define-key map "g" #'devdocs-goto-page)
|
||||
(define-key map "[" #'devdocs-previous-page)
|
||||
(define-key map "]" #'devdocs-next-page)
|
||||
(define-key map "<" #'devdocs-first-page)
|
||||
(define-key map ">" #'devdocs-last-page)
|
||||
(define-key map "l" #'devdocs-go-back)
|
||||
(define-key map "r" #'devdocs-go-forward)
|
||||
(define-key map "w" #'devdocs-copy-url)
|
||||
(define-key map "." #'devdocs-goto-target))
|
||||
|
||||
;;; Rendering
|
||||
|
||||
(defun devdocs--path-file (path)
|
||||
"Return the non-fragment part of PATH."
|
||||
(substring path 0 (string-match "#" path)))
|
||||
|
||||
(defun devdocs--path-fragment (path)
|
||||
"Return the fragment part of PATH, or nil if absent."
|
||||
(when-let ((i (string-match "#" path)))
|
||||
(substring path (1+ i))))
|
||||
|
||||
(defun devdocs--path-expand (path base)
|
||||
"Expand PATH relative to a BASE path."
|
||||
(pcase (string-to-char path)
|
||||
('?/ path)
|
||||
('?# (concat (devdocs--path-file base) path))
|
||||
(_ (seq-rest ;; drop leading slash
|
||||
(url-expander-remove-relative-links ;; undocumented function!
|
||||
(concat (file-name-directory base) path))))))
|
||||
|
||||
(defun devdocs--shr-tag-pre (dom)
|
||||
"Insert and fontify pre-tag represented by DOM."
|
||||
(let ((start (point)))
|
||||
(if-let ((lang (and devdocs-fontify-code-blocks
|
||||
(dom-attr dom 'data-language)))
|
||||
(mode (or (cdr (assoc lang '(("cpp" . c++-mode)
|
||||
("shell" . sh-mode))))
|
||||
(intern (concat lang "-mode"))))
|
||||
(buffer (and (fboundp mode) (current-buffer))))
|
||||
(insert
|
||||
(with-temp-buffer
|
||||
(shr-tag-pre dom)
|
||||
(let ((inhibit-message t)
|
||||
(message-log-max nil))
|
||||
(ignore-errors (delay-mode-hooks (funcall mode)))
|
||||
(font-lock-ensure))
|
||||
(buffer-string)))
|
||||
(shr-tag-pre dom))
|
||||
(add-face-text-property start (point) 'devdocs-code-block t)))
|
||||
|
||||
(defun devdocs--render (entry)
|
||||
"Render a DevDocs documentation entry, returning a buffer.
|
||||
|
||||
ENTRY is an alist like those in the entry index of the document,
|
||||
possibly with an additional ENTRY.fragment which overrides the
|
||||
fragment part of ENTRY.path."
|
||||
(with-current-buffer (get-buffer-create "*devdocs*")
|
||||
(unless (eq major-mode 'devdocs-mode)
|
||||
(devdocs-mode))
|
||||
(let-alist entry
|
||||
(let ((inhibit-read-only t)
|
||||
(shr-external-rendering-functions `((pre . devdocs--shr-tag-pre)
|
||||
,@shr-external-rendering-functions))
|
||||
(file (expand-file-name (format "%s/%s.html"
|
||||
.doc.slug
|
||||
(url-hexify-string (devdocs--path-file .path)))
|
||||
devdocs-data-dir)))
|
||||
(erase-buffer)
|
||||
(setq-local shr-target-id (or .fragment (devdocs--path-fragment .path)))
|
||||
;; TODO: cl-progv here for shr settings?
|
||||
(shr-insert-document
|
||||
(with-temp-buffer
|
||||
(insert-file-contents file)
|
||||
(libxml-parse-html-region (point-min) (point-max)))))
|
||||
(set-buffer-modified-p nil)
|
||||
(setq-local devdocs-current-docs (list .doc.slug))
|
||||
(push entry devdocs--stack)
|
||||
(setq-local list-buffers-directory (format-mode-line devdocs-header-line nil nil (current-buffer)))
|
||||
(devdocs-goto-target)
|
||||
(current-buffer))))
|
||||
|
||||
(defun devdocs--revert-buffer (&rest _args)
|
||||
"Refresh DevDocs buffer."
|
||||
(devdocs--render (pop devdocs--stack)))
|
||||
|
||||
(defun devdocs--browse-url (url &rest args)
|
||||
"A suitable `browse-url-browser-function' for `devdocs-mode'.
|
||||
URL can be an internal link in a DevDocs document.
|
||||
ARGS is passed as is to `browse-url'."
|
||||
(if (string-match-p ":" url)
|
||||
(let ((browse-url-browser-function (default-value 'browse-url-browser-function)))
|
||||
(apply #'browse-url url args))
|
||||
(let-alist (car devdocs--stack)
|
||||
(let* ((dest (devdocs--path-expand url .path))
|
||||
(file (devdocs--path-file dest))
|
||||
(frag (devdocs--path-fragment dest))
|
||||
(entry (seq-find (lambda (it)
|
||||
(let-alist it
|
||||
(or (string= .path dest)
|
||||
(string= .path file))))
|
||||
(devdocs--index .doc 'entries))))
|
||||
(unless entry (error "Can't find `%s'" dest))
|
||||
(when frag (push `(fragment . ,frag) entry))
|
||||
(devdocs--render entry)))))
|
||||
|
||||
;;; Lookup commands
|
||||
|
||||
(defun devdocs--entries (documents)
|
||||
"A list of entries in DOCUMENTS, as propertized strings."
|
||||
(let* ((counts (make-hash-table :test 'equal))
|
||||
(mkentry (lambda (it)
|
||||
(let* ((name (alist-get 'name it))
|
||||
(count (1+ (gethash name counts 0))))
|
||||
(puthash name count counts)
|
||||
`(,name ,count . ,it))))
|
||||
(entries (mapcan (lambda (doc)
|
||||
(mapcar mkentry
|
||||
(devdocs--index doc 'entries)))
|
||||
documents)))
|
||||
(mapcar (pcase-lambda (`(,name ,count . ,it))
|
||||
(propertize (if (= 1 (gethash name counts))
|
||||
name
|
||||
(format devdocs-disambiguated-entry-format name count))
|
||||
'devdocs--data it))
|
||||
entries)))
|
||||
|
||||
(defun devdocs--get-data (str)
|
||||
"Get data stored as a string property in STR."
|
||||
(get-text-property 0 'devdocs--data str))
|
||||
|
||||
(defun devdocs--annotate (cand)
|
||||
"Return an annotation for `devdocs--read-entry' candidate CAND."
|
||||
(let-alist (devdocs--get-data cand)
|
||||
(concat " " (propertize " " 'display '(space :align-to 40))
|
||||
(devdocs--doc-title .doc) devdocs-separator .type)))
|
||||
|
||||
(defun devdocs--relevant-docs (ask)
|
||||
"Return a list of relevant documents for the current buffer.
|
||||
May ask interactively for the desired documents, remembering the
|
||||
choice for this buffer. If ASK is non-nil, ask unconditionally."
|
||||
(if ask
|
||||
(let ((docs (devdocs--read-document "Documents for this buffer: " t)))
|
||||
(prog1 docs
|
||||
(setq-local devdocs-current-docs
|
||||
(mapcar (lambda (d) (alist-get 'slug d)) docs))))
|
||||
(or (mapcar #'devdocs--doc-metadata devdocs-current-docs)
|
||||
(devdocs--relevant-docs t)
|
||||
(user-error "No documents"))))
|
||||
|
||||
(defun devdocs--read-entry (prompt documents initial-input)
|
||||
"Read the name of an entry in one of the DOCUMENTS, using PROMPT.
|
||||
|
||||
INITIAL-INPUT is passed to `completing-read'"
|
||||
(let* ((cands (devdocs--with-cache
|
||||
(devdocs--entries documents)))
|
||||
(metadata '(metadata
|
||||
(category . devdocs)
|
||||
(annotation-function . devdocs--annotate)))
|
||||
(coll (lambda (string predicate action)
|
||||
(if (eq action 'metadata)
|
||||
metadata
|
||||
(complete-with-action action cands string predicate))))
|
||||
(cand (completing-read prompt coll nil t initial-input
|
||||
'devdocs-history
|
||||
(thing-at-point 'symbol))))
|
||||
(devdocs--get-data (car (member cand cands)))))
|
||||
|
||||
;;;###autoload
|
||||
(defun devdocs-lookup (&optional ask-docs initial-input)
|
||||
"Look up a DevDocs documentation entry.
|
||||
|
||||
Display entries in the documents `devdocs-current-docs' for
|
||||
selection. With a prefix argument (or, from Lisp, if ASK-DOCS is
|
||||
non-nil), first read the name of one or more installed documents
|
||||
and set `devdocs-current-docs' for this buffer.
|
||||
|
||||
If INITIAL-INPUT is not nil, insert it into the minibuffer."
|
||||
(interactive "P")
|
||||
(let* ((entry (devdocs--read-entry "Go to documentation: "
|
||||
(devdocs--relevant-docs ask-docs)
|
||||
initial-input))
|
||||
(buffer (devdocs--render entry))
|
||||
(window (display-buffer buffer)))
|
||||
(when window
|
||||
(with-selected-window window
|
||||
(devdocs-goto-target)
|
||||
(recenter 0))
|
||||
(when devdocs-window-select
|
||||
(select-window window)))))
|
||||
|
||||
;;;###autoload
|
||||
(defun devdocs-peruse (doc)
|
||||
"Read a document from the first page."
|
||||
(interactive (list (devdocs--read-document "Peruse documentation: ")))
|
||||
(pop-to-buffer (devdocs-goto-page doc 0)))
|
||||
|
||||
;; Don't show devdocs-mode specific commands in M-x
|
||||
(dolist (sym '(devdocs-goto-target devdocs-go-back devdocs-go-forward
|
||||
devdocs-next-entry devdocs-previous-entry devdocs-goto-page
|
||||
devdocs-first-page devdocs-last-page devdocs-next-page
|
||||
devdocs-previous-page devdocs-copy-url))
|
||||
(put sym 'completion-predicate (lambda (_ buffer)
|
||||
(provided-mode-derived-p
|
||||
(buffer-local-value 'major-mode buffer)
|
||||
'devdocs-mode))))
|
||||
|
||||
;;; Compatibility with the old devdocs package
|
||||
|
||||
;;;###autoload
|
||||
(defun devdocs-search (query)
|
||||
"Search for QUERY in the DevDocs website."
|
||||
(interactive (list (read-from-minibuffer
|
||||
(format "Search %s: " devdocs-site-url)
|
||||
nil nil nil nil (thing-at-point 'symbol))))
|
||||
(browse-url (format "%s/#q=%s" devdocs-site-url (url-hexify-string query))))
|
||||
|
||||
(provide 'devdocs)
|
||||
;;; devdocs.el ends here
|
|
@ -0,0 +1,70 @@
|
|||
;;; devdocs-browser-autoloads.el --- automatically extracted autoloads -*- lexical-binding: t -*-
|
||||
;;
|
||||
;;; Code:
|
||||
|
||||
(add-to-list 'load-path (directory-file-name
|
||||
(or (file-name-directory #$) (car load-path))))
|
||||
|
||||
|
||||
;;;### (autoloads nil "devdocs-browser" "devdocs-browser.el" (0 0
|
||||
;;;;;; 0 0))
|
||||
;;; Generated autoloads from devdocs-browser.el
|
||||
|
||||
(autoload 'devdocs-browser-list-docs "devdocs-browser" "\
|
||||
Get doc metadata lists, reload cache if REFRESH-CACHE.
|
||||
|
||||
\(fn &optional REFRESH-CACHE)" nil nil)
|
||||
|
||||
(autoload 'devdocs-browser-update-docs "devdocs-browser" "\
|
||||
Update doc metadata list.
|
||||
To upgrade docs content, see `devdocs-browser-upgrade-doc'." t nil)
|
||||
|
||||
(autoload 'devdocs-browser-install-doc "devdocs-browser" "\
|
||||
Install doc by SLUG-OR-NAME.
|
||||
When called interactively, user can choose from the list.
|
||||
When called interactively with prefix, or FORCE is t, reinstall existing doc.
|
||||
|
||||
\(fn SLUG-OR-NAME &optional FORCE)" t nil)
|
||||
|
||||
(autoload 'devdocs-browser-uninstall-doc "devdocs-browser" "\
|
||||
Uninstall doc by SLUG.
|
||||
When called interactively, user can choose from the list.
|
||||
|
||||
\(fn SLUG)" t nil)
|
||||
|
||||
(autoload 'devdocs-browser-upgrade-doc "devdocs-browser" "\
|
||||
Upgrade doc by SLUG, return t if upgrade success.
|
||||
Also download new version of offline data if
|
||||
there's offline data for current version.
|
||||
When called interactively, user can choose from list.
|
||||
You may need to call `devdocs-browser-update-docs' first.
|
||||
|
||||
\(fn SLUG)" t nil)
|
||||
|
||||
(autoload 'devdocs-browser-upgrade-all-docs "devdocs-browser" "\
|
||||
Upgrade all docs." t nil)
|
||||
|
||||
(autoload 'devdocs-browser-open-in "devdocs-browser" "\
|
||||
Open entry in specified docs SLUG-OR-NAME-LIST.
|
||||
When called interactively, user can choose from the list.
|
||||
|
||||
\(fn SLUG-OR-NAME-LIST)" t nil)
|
||||
|
||||
(autoload 'devdocs-browser-open "devdocs-browser" "\
|
||||
Open entry in active docs.
|
||||
Active docs are specified by `devdocs-browser-active-docs',
|
||||
or `devdocs-browser-major-mode-docs-alist',
|
||||
or the current doc type if called in a devdocs eww buffer.
|
||||
When all of them are nil, all installed docs are used." t nil)
|
||||
|
||||
(register-definition-prefixes "devdocs-browser" '("devdocs-browser-"))
|
||||
|
||||
;;;***
|
||||
|
||||
;; Local Variables:
|
||||
;; version-control: never
|
||||
;; no-byte-compile: t
|
||||
;; no-update-autoloads: t
|
||||
;; coding: utf-8
|
||||
;; End:
|
||||
;;; devdocs-browser-autoloads.el ends here
|
|
@ -0,0 +1,2 @@
|
|||
;;; Generated package description from devdocs-browser.el -*- no-byte-compile: t -*-
|
||||
(define-package "devdocs-browser" "20220917.1403" "Browse devdocs.io documents using EWW" '((emacs "27.1")) :commit "badbb9cb57522cc0e002a32fe385f7ad1e929665" :authors '(("blahgeek" . "i@blahgeek.com")) :maintainer '("blahgeek" . "i@blahgeek.com") :keywords '("docs" "help" "tools") :url "https://github.com/blahgeek/emacs-devdocs-browser")
|
806
org/elpa/devdocs-browser-20220917.1403/devdocs-browser.el
Normal file
806
org/elpa/devdocs-browser-20220917.1403/devdocs-browser.el
Normal file
|
@ -0,0 +1,806 @@
|
|||
;;; devdocs-browser.el --- Browse devdocs.io documents using EWW -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 2021
|
||||
|
||||
;; Author: blahgeek <i@blahgeek.com>
|
||||
;; URL: https://github.com/blahgeek/emacs-devdocs-browser
|
||||
;; Package-Version: 20220917.1403
|
||||
;; Package-Commit: badbb9cb57522cc0e002a32fe385f7ad1e929665
|
||||
;; Version: 20210525
|
||||
;; Keywords: docs, help, tools
|
||||
;; Package-Requires: ((emacs "27.1"))
|
||||
|
||||
;; 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 3 of the License, 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; Browse devdocs.io documents inside Emacs using EWW.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'files)
|
||||
(require 'shr)
|
||||
(require 'eww)
|
||||
(require 'eldoc)
|
||||
(require 'imenu)
|
||||
|
||||
|
||||
(defgroup devdocs-browser nil
|
||||
"Browse devdocs.io."
|
||||
:group 'tools
|
||||
:group 'web)
|
||||
|
||||
(defcustom devdocs-browser-cache-directory
|
||||
(expand-file-name "devdocs-browser" user-emacs-directory)
|
||||
"Directory to store devdocs cache files."
|
||||
:type 'directory
|
||||
:group 'devdocs-browser)
|
||||
|
||||
(defcustom devdocs-browser-base-url "https://devdocs.io/"
|
||||
"Base URL to fetch json metadata files."
|
||||
:type 'string)
|
||||
|
||||
(defcustom devdocs-browser-doc-base-url "https://documents.devdocs.io/"
|
||||
"Base URL for doc contents."
|
||||
:type 'string)
|
||||
|
||||
(defcustom devdocs-browser-major-mode-docs-alist
|
||||
'((c++-mode . ("cpp"))
|
||||
(c-mode . ("c"))
|
||||
(go-mode . ("go"))
|
||||
(python-mode . ("Python"))
|
||||
(emacs-lisp-mode . ("elisp"))
|
||||
(cmake-mode . ("CMake")))
|
||||
"Alist of MAJOR-MODE and list of docset names.
|
||||
When calling `devdocs-browser-open', this variable will be used
|
||||
to pick a list of docsets based on the current MAJOR-MODE.
|
||||
Docset name may be SLUG (e.g. 'python~3.8') or NAME (e.g. 'Python'),
|
||||
if it's a NAME and multiple choices are possible,
|
||||
one of the installed docs with the NAME will be used.
|
||||
Also see `devdocs-browser-active-docs'."
|
||||
:type '(alist :key-type function
|
||||
:value-type (list string)))
|
||||
|
||||
(defvar-local devdocs-browser-active-docs
|
||||
nil
|
||||
"List of docset names used by `devdocs-browser-open' to pick docsets.
|
||||
If this var is set to non-nil,
|
||||
it have higher priority than `devdocs-browser-major-mode-docs-alist'.
|
||||
See `devdocs-browser-major-mode-docs-alist' for the meaning of NAME.")
|
||||
|
||||
(defcustom devdocs-browser-highlight-lang-mode-alist '()
|
||||
"Alist of language name and MAJOR-MODE, to highlight HTML pre blocks.
|
||||
If language is not found in this alist,
|
||||
`devdocs-browser-highlight-lang-mode-alist-default' will be used.
|
||||
See https://prismjs.com/ for list of language names."
|
||||
:type '(alist :key-type string
|
||||
:value-type function))
|
||||
|
||||
(defvar devdocs-browser-highlight-lang-mode-alist-default
|
||||
'(("html" . html-mode)
|
||||
("xml" . xml-mode)
|
||||
("css" . css-mode)
|
||||
("clike" . c-mode)
|
||||
("javascript" . js-mode)
|
||||
("js" . js-mode)
|
||||
("jsx" . js-mode)
|
||||
("bash" . sh-mode)
|
||||
("shell" . sh-mode)
|
||||
("c" . c-mode)
|
||||
("cpp" . c++-mode)
|
||||
("cmake" . cmake-mode)
|
||||
("go" . go-mode)
|
||||
("haskell" . haskell-mode)
|
||||
("hs" . haskell-mode)
|
||||
("java" . java-mode)
|
||||
("json" . js-mode)
|
||||
("elisp" . elisp-mode)
|
||||
("emacs" . elisp-mode)
|
||||
("lua" . lua-mode)
|
||||
("makefile" . makefile-mode)
|
||||
("markdown" . markdown-mode)
|
||||
("md" . markdown-mode)
|
||||
("nginx" . conf-mode)
|
||||
("objectivec" . objc-mode)
|
||||
("objc" . objc-mode)
|
||||
("perl" . perl-mode)
|
||||
("protobuf" . protobuf-mode)
|
||||
("python" . python-mode)
|
||||
("py" . python-mode)
|
||||
("ruby" . ruby-mode)
|
||||
("rb" . ruby-mode)
|
||||
("sql" . sql-mode)
|
||||
("typescript" . typescript-mode))
|
||||
"Default value for `devdocs-browser-highlight-lang-mode-alist'.")
|
||||
|
||||
|
||||
(defun devdocs-browser--eww-fontify-pre (dom)
|
||||
"Return fontified string for pre DOM."
|
||||
(with-temp-buffer
|
||||
(shr-generic dom)
|
||||
(when (> shr-indentation 0)
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(while (not (eobp))
|
||||
(shr-indent)
|
||||
(forward-line 1))))
|
||||
(let* ((language (dom-attr dom 'data-language))
|
||||
(mode (cdr (or (assoc language devdocs-browser-highlight-lang-mode-alist)
|
||||
(assoc language devdocs-browser-highlight-lang-mode-alist-default)))))
|
||||
(when (fboundp mode)
|
||||
(delay-mode-hooks (funcall mode))
|
||||
(font-lock-default-function mode)
|
||||
(font-lock-default-fontify-region (point-min) (point-max) nil)))
|
||||
(buffer-string)))
|
||||
|
||||
(defun devdocs-browser--eww-tag-pre (dom)
|
||||
"Rendering function for pre DOM."
|
||||
(let ((shr-folding-mode 'none)
|
||||
(shr-current-font 'default))
|
||||
(shr-ensure-newline)
|
||||
(insert (devdocs-browser--eww-fontify-pre dom))
|
||||
(shr-ensure-newline)))
|
||||
|
||||
(defun devdocs-browser--eww-tag-maybe-set-title (dom)
|
||||
"Maybe set DOM as title if it's not set yet."
|
||||
(when (zerop (length (plist-get eww-data :title)))
|
||||
(eww-tag-title dom)))
|
||||
|
||||
(defun devdocs-browser--eww-tag-h1 (dom)
|
||||
"Rendering function for h1 DOM. Maybe use it as title."
|
||||
(devdocs-browser--eww-tag-maybe-set-title dom)
|
||||
(shr-tag-h1 dom))
|
||||
|
||||
(defun devdocs-browser--eww-tag-h2 (dom)
|
||||
"Rendering function for h2 DOM. Maybe use it as title."
|
||||
(devdocs-browser--eww-tag-maybe-set-title dom)
|
||||
(shr-heading dom (if shr-use-fonts
|
||||
'(variable-pitch (:height 1.2 :weight bold))
|
||||
'bold)))
|
||||
|
||||
(defun devdocs-browser--eww-tag-h3 (dom)
|
||||
"Rendering function for h2 DOM. Maybe use it as title."
|
||||
(devdocs-browser--eww-tag-maybe-set-title dom)
|
||||
(shr-heading dom (if shr-use-fonts
|
||||
'(variable-pitch (:height 1.1 :weight bold))
|
||||
'bold)))
|
||||
|
||||
(defun devdocs-browser--eww-tag-h4 (dom)
|
||||
"Rendering function for h4 DOM."
|
||||
(shr-heading dom 'bold))
|
||||
|
||||
(defun devdocs-browser--eww-tag-h5 (dom)
|
||||
"Rendering function for h5 DOM."
|
||||
(shr-heading dom 'italic))
|
||||
|
||||
(defvar-local devdocs-browser--eww-data '()
|
||||
"Plist data for current eww page, contain :doc and :path.")
|
||||
|
||||
(defun devdocs-browser--eww-fix-url (url)
|
||||
"Fix links' URL in docs by appending suffix and mtime."
|
||||
;; shr-expand-url may be call in a temp buffer
|
||||
;; we need to temporary bind this buffer to access the buffer-local variable.
|
||||
(with-current-buffer (window-buffer)
|
||||
(let ((url-parsed (url-generic-parse-url url))
|
||||
(root-url-parsed (url-generic-parse-url (plist-get eww-data :url)))
|
||||
(mtime (plist-get (plist-get devdocs-browser--eww-data :doc) :mtime)))
|
||||
(when (and mtime
|
||||
(equal (url-type url-parsed) (url-type root-url-parsed))
|
||||
(equal (url-host url-parsed) (url-host root-url-parsed))
|
||||
(not (string-match-p "\\.html" url)))
|
||||
(setf (url-filename url-parsed)
|
||||
(if (equal (url-type url-parsed) "file")
|
||||
(concat (url-filename url-parsed) ".html")
|
||||
(format "%s.html?%s" (url-filename url-parsed) mtime)))
|
||||
(setq url (url-recreate-url url-parsed)))))
|
||||
url)
|
||||
|
||||
(defun devdocs-browser--eww-parse-url-path (url)
|
||||
"Return URL's doc :path ('hello/world#target')."
|
||||
;; see devdocs-browser--eww-open for url pattern
|
||||
(when-let* ((url-parsed (url-generic-parse-url url))
|
||||
(doc (plist-get devdocs-browser--eww-data :doc))
|
||||
(slug (plist-get doc :slug))
|
||||
(filename-suffix (if (equal (url-type url-parsed) "file")
|
||||
".html"
|
||||
(format ".html?%s" (plist-get doc :mtime))))
|
||||
(filename-prefix (if (equal (url-type url-parsed) "file")
|
||||
(devdocs-browser-offline-data-dir slug)
|
||||
(concat "/" slug "/")))
|
||||
(path (url-filename url-parsed)))
|
||||
(when (and (string-prefix-p filename-prefix path)
|
||||
(string-suffix-p filename-suffix path))
|
||||
(setq path (string-remove-prefix filename-prefix path))
|
||||
(setq path (string-remove-suffix filename-suffix path))
|
||||
(when (url-target url-parsed)
|
||||
(setq path (concat path "#" (url-target url-parsed))))
|
||||
path)))
|
||||
|
||||
(defun devdocs-browser--eww-page-path ()
|
||||
"Return current page's :path ('hello/world#target')."
|
||||
(devdocs-browser--eww-parse-url-path (plist-get eww-data :url)))
|
||||
|
||||
(defun devdocs-browser--eww-link-eldoc (&optional _)
|
||||
"Show URL link or description at current point."
|
||||
(when-let ((url (get-text-property (point) 'shr-url)))
|
||||
(if-let ((path (devdocs-browser--eww-parse-url-path url)))
|
||||
(let* ((doc (plist-get devdocs-browser--eww-data :doc))
|
||||
(index (plist-get doc :index))
|
||||
(entries (plist-get index :entries))
|
||||
(entry (seq-find
|
||||
(lambda (x) (equal (plist-get x :path) path))
|
||||
entries)))
|
||||
(concat
|
||||
(when entry
|
||||
(propertize (plist-get entry :name) 'face 'font-lock-keyword-face))
|
||||
(when entry
|
||||
(format " (%s): " (plist-get entry :type)))
|
||||
(propertize path 'face 'italic)))
|
||||
(format "External link: %s" (propertize url 'face 'italic)))))
|
||||
|
||||
(defun devdocs-browser--position-by-target (target)
|
||||
"Find buffer position for TARGET (url hash)."
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(when-let ((match (text-property-search-forward 'shr-target-id target #'member)))
|
||||
(prop-match-beginning match))))
|
||||
|
||||
(defun devdocs-browser--imenu-create-index ()
|
||||
"Create index alist for current buffer for imenu.
|
||||
Can be used as `imenu-create-index-function'."
|
||||
(when-let* ((doc (plist-get devdocs-browser--eww-data :doc))
|
||||
(entries (plist-get (plist-get doc :index) :entries))
|
||||
(page-path (devdocs-browser--eww-page-path))
|
||||
(page-url (url-generic-parse-url page-path)))
|
||||
(seq-filter
|
||||
#'identity
|
||||
(mapcar
|
||||
(lambda (entry)
|
||||
(when-let* ((name (plist-get entry :name))
|
||||
(path (plist-get entry :path))
|
||||
(url (url-generic-parse-url path))
|
||||
(target (url-target url))
|
||||
(_ (equal (url-filename url) (url-filename page-url))))
|
||||
(cons name (devdocs-browser--position-by-target target))))
|
||||
entries))))
|
||||
|
||||
(define-obsolete-function-alias 'devdocs-browser-eww-goto-target 'imenu "20220917")
|
||||
|
||||
(defun devdocs-browser-eww-open-in-default-browser ()
|
||||
"Open current page in devdocs.io in browser."
|
||||
(interactive)
|
||||
(when-let* ((doc (plist-get devdocs-browser--eww-data :doc))
|
||||
(slug (plist-get doc :slug))
|
||||
(path (devdocs-browser--eww-page-path))
|
||||
(url (concat devdocs-browser-base-url slug "/" path)))
|
||||
(browse-url-default-browser url)))
|
||||
|
||||
(defun devdocs-browser--eww-recenter-advice (res)
|
||||
"Recenter current cursor for devdocs buffer, used for advice :filter-return (return `RES')."
|
||||
(when devdocs-browser--eww-data
|
||||
(recenter))
|
||||
res)
|
||||
|
||||
(defun devdocs-browser--eww-browse-url-new-window-advice (args)
|
||||
"Advice around `eww-browse-url' with ARGS, set NEW-WINDOW if URL is external."
|
||||
(let ((url (car args))
|
||||
(new-window (cadr args)))
|
||||
(when (and devdocs-browser--eww-data
|
||||
(not (devdocs-browser--eww-parse-url-path url)))
|
||||
(setq new-window t))
|
||||
(list url new-window)))
|
||||
|
||||
(define-minor-mode devdocs-browser-eww-mode
|
||||
"Minor mode for browsing devdocs pages with eww."
|
||||
:lighter " Devdocs"
|
||||
:interactive nil
|
||||
:group 'devdocs-browser
|
||||
:keymap (let ((map (make-sparse-keymap)))
|
||||
(define-key map (kbd "C-c C-o") #'devdocs-browser-eww-open-in-default-browser)
|
||||
map)
|
||||
(setq-local shr-external-rendering-functions
|
||||
(append shr-external-rendering-functions
|
||||
'((pre . devdocs-browser--eww-tag-pre)
|
||||
(h1 . devdocs-browser--eww-tag-h1)
|
||||
(h2 . devdocs-browser--eww-tag-h2)
|
||||
(h3 . devdocs-browser--eww-tag-h3)
|
||||
(h4 . devdocs-browser--eww-tag-h4)
|
||||
(h5 . devdocs-browser--eww-tag-h5))))
|
||||
(setq-local imenu-create-index-function
|
||||
#'devdocs-browser--imenu-create-index)
|
||||
(advice-add 'shr-expand-url :filter-return #'devdocs-browser--eww-fix-url)
|
||||
(advice-add 'eww-display-html :filter-return #'devdocs-browser--eww-recenter-advice)
|
||||
(advice-add 'eww-browse-url :filter-args #'devdocs-browser--eww-browse-url-new-window-advice)
|
||||
(add-hook 'eldoc-documentation-functions #'devdocs-browser--eww-link-eldoc nil t)
|
||||
(eldoc-mode))
|
||||
|
||||
(defvar devdocs-browser--docs-dir "docs")
|
||||
(defvar devdocs-browser--index-json-filename "index.json")
|
||||
(defvar devdocs-browser--metadata-filename "metadata.el")
|
||||
(defvar devdocs-browser--offline-data-json-filename "content.json")
|
||||
(defvar devdocs-browser--offline-data-dir-name "content")
|
||||
|
||||
(defun devdocs-browser--completing-read (prompt collections &optional def)
|
||||
"Helper function for `completing-read'.
|
||||
PROMPT: same meaning, but this function will append ';' at the end;
|
||||
COLLECTION: alist of (name . props), where props is a plist with
|
||||
possibly the following keys: :value, :annotation, :group;
|
||||
if :group is not nil and name starts with '<group>: ', its removed.
|
||||
DEF: same meaning;"
|
||||
(setq collections (delq nil collections))
|
||||
(let ((annotation-function
|
||||
(lambda (s)
|
||||
(let ((annotation (plist-get
|
||||
(cdr (assoc s collections))
|
||||
:annotation)))
|
||||
(if annotation
|
||||
(concat " " annotation)
|
||||
nil))))
|
||||
(group-function
|
||||
(lambda (s transform)
|
||||
(let ((group (plist-get
|
||||
(cdr (assoc s collections))
|
||||
:group)))
|
||||
(cond
|
||||
(transform (if (and group (string-match (rx bos (literal group) ": ") s))
|
||||
(replace-match "" t t s)
|
||||
s))
|
||||
(t group))))))
|
||||
(setq prompt (concat prompt
|
||||
(when def
|
||||
(format " (default %s)" (funcall group-function def t)))
|
||||
": "))
|
||||
(let ((res (completing-read
|
||||
prompt
|
||||
(lambda (str pred action)
|
||||
(if (eq action 'metadata)
|
||||
`(metadata . ((annotation-function . ,annotation-function)
|
||||
(group-function . ,group-function)))
|
||||
(complete-with-action action collections str pred)))
|
||||
nil t ;; require-match
|
||||
nil nil def)))
|
||||
(or (plist-get (cdr (assoc res collections)) :value)
|
||||
res))))
|
||||
|
||||
(defun devdocs-browser--json-parse-buffer ()
|
||||
"Same as `json-parse-buffer', with custom settings."
|
||||
(json-parse-buffer :object-type 'plist :array-type 'array))
|
||||
|
||||
(defun devdocs-browser--read-json (file-path)
|
||||
"Read json file in FILE-PATH, if it's a relative path, find it in cache dir."
|
||||
(let ((filename (expand-file-name file-path devdocs-browser-cache-directory)))
|
||||
(when (file-exists-p filename)
|
||||
(with-temp-buffer
|
||||
(insert-file-contents filename)
|
||||
(devdocs-browser--json-parse-buffer)))))
|
||||
|
||||
(defun devdocs-browser--fetch-json (url-path file-path &optional base-url)
|
||||
"Fetch json from BASE-URL / URL-PATH, also save to FILE-PATH.
|
||||
BASE-URL defaults to `devdocs-browser-base-url'."
|
||||
(let ((cache-filename (expand-file-name file-path devdocs-browser-cache-directory)))
|
||||
(unless (file-exists-p (file-name-directory cache-filename))
|
||||
(make-directory (file-name-directory cache-filename) t))
|
||||
(with-temp-file cache-filename
|
||||
(erase-buffer)
|
||||
(url-insert-file-contents (concat (or base-url devdocs-browser-base-url) url-path))
|
||||
(devdocs-browser--json-parse-buffer))))
|
||||
|
||||
|
||||
(defvar devdocs-browser--docs-list-cache nil "Cached docs list.")
|
||||
|
||||
;;;###autoload
|
||||
(defun devdocs-browser-list-docs (&optional refresh-cache)
|
||||
"Get doc metadata lists, reload cache if REFRESH-CACHE."
|
||||
(setq devdocs-browser--docs-list-cache
|
||||
(or (and (not refresh-cache) devdocs-browser--docs-list-cache)
|
||||
(and (not refresh-cache) (devdocs-browser--read-json "docs.json"))
|
||||
(devdocs-browser--fetch-json "docs.json" "docs.json"))))
|
||||
|
||||
;;;###autoload
|
||||
(defun devdocs-browser-update-docs ()
|
||||
"Update doc metadata list.
|
||||
To upgrade docs content, see `devdocs-browser-upgrade-doc'."
|
||||
(interactive)
|
||||
(let ((count (length (devdocs-browser-list-docs t))))
|
||||
(message (concat "Doc metadata updated, found total %s docs. "
|
||||
"You may want to run `devdocs-browser-install-doc' "
|
||||
"or `devdocs-browser-upgrade-doc'.")
|
||||
count)))
|
||||
|
||||
(defun devdocs-browser-find-doc (slug-or-name)
|
||||
"Find doc from docs list by SLUG-OR-NAME."
|
||||
(let ((docs-list (devdocs-browser-list-docs)))
|
||||
(seq-find (lambda (doc)
|
||||
(or (equal (plist-get doc :slug) slug-or-name)
|
||||
(equal (plist-get doc :name) slug-or-name)))
|
||||
docs-list)))
|
||||
|
||||
(defvar devdocs-browser--docs-cache '() "Cached doc indexes plist.")
|
||||
|
||||
(defun devdocs-browser--install-doc-internal (doc)
|
||||
"(Re-)install doc identified by plist DOC. Return t if success."
|
||||
(let* ((slug (plist-get doc :slug))
|
||||
(mtime (plist-get doc :mtime))
|
||||
(docs-dir (expand-file-name devdocs-browser--docs-dir devdocs-browser-cache-directory))
|
||||
(doc-dir (expand-file-name slug docs-dir))
|
||||
success)
|
||||
(unless (file-exists-p docs-dir)
|
||||
(make-directory docs-dir t))
|
||||
(when (file-exists-p doc-dir)
|
||||
(delete-directory doc-dir t))
|
||||
|
||||
;; do not leave empty directory
|
||||
(unwind-protect
|
||||
(progn
|
||||
(devdocs-browser--fetch-json
|
||||
(format "docs/%s/index.json?%s" slug mtime)
|
||||
(expand-file-name devdocs-browser--index-json-filename doc-dir))
|
||||
(with-temp-file (expand-file-name devdocs-browser--metadata-filename doc-dir)
|
||||
(print doc (current-buffer)))
|
||||
(setq success t))
|
||||
(unless success
|
||||
(delete-directory doc-dir t)))
|
||||
|
||||
(if success
|
||||
(message "Installed devdocs doc %s version %s" slug mtime)
|
||||
(message "Failed to install devdocs doc %s" slug))
|
||||
;; remove cache
|
||||
(setq devdocs-browser--docs-cache
|
||||
(lax-plist-put devdocs-browser--docs-cache slug nil))
|
||||
success))
|
||||
|
||||
(defun devdocs-browser--doc-readable-name (doc)
|
||||
"Get human readable name for DOC."
|
||||
(let ((slug (plist-get doc :slug))
|
||||
(name (plist-get doc :name))
|
||||
(version (plist-get doc :version))
|
||||
(release (plist-get doc :release))
|
||||
res)
|
||||
(setq res (concat slug " (" name))
|
||||
(unless (zerop (length version))
|
||||
(setq res (concat res " " version)))
|
||||
(unless (zerop (length release))
|
||||
(setq res (concat res ", " release)))
|
||||
(setq res (concat res ")"))
|
||||
res))
|
||||
|
||||
;;;###autoload
|
||||
(defun devdocs-browser-install-doc (slug-or-name &optional force)
|
||||
"Install doc by SLUG-OR-NAME.
|
||||
When called interactively, user can choose from the list.
|
||||
When called interactively with prefix, or FORCE is t, reinstall existing doc."
|
||||
(interactive
|
||||
(let* ((force current-prefix-arg)
|
||||
(installed-docs
|
||||
(devdocs-browser-list-installed-slugs))
|
||||
(selected-slug
|
||||
(devdocs-browser--completing-read
|
||||
"Install doc"
|
||||
(mapcar (lambda (doc)
|
||||
(let ((slug (plist-get doc :slug)))
|
||||
(unless (and (not force)
|
||||
(member slug installed-docs))
|
||||
(cons (devdocs-browser--doc-readable-name doc)
|
||||
`(:value ,slug)))))
|
||||
(devdocs-browser-list-docs)))))
|
||||
(list selected-slug force)))
|
||||
(let ((doc (devdocs-browser-find-doc slug-or-name)))
|
||||
(unless (and (not force)
|
||||
(member (plist-get doc :slug) (devdocs-browser-list-installed-slugs)))
|
||||
(devdocs-browser--install-doc-internal doc))))
|
||||
|
||||
;;;###autoload
|
||||
(defun devdocs-browser-uninstall-doc (slug)
|
||||
"Uninstall doc by SLUG.
|
||||
When called interactively, user can choose from the list."
|
||||
(interactive (list (completing-read "Uninstall doc: "
|
||||
(devdocs-browser-list-installed-slugs)
|
||||
nil t)))
|
||||
(let* ((docs-dir (expand-file-name devdocs-browser--docs-dir devdocs-browser-cache-directory))
|
||||
(doc-dir (expand-file-name slug docs-dir)))
|
||||
(when (file-exists-p doc-dir)
|
||||
(delete-directory doc-dir t)))
|
||||
(setq devdocs-browser--docs-cache
|
||||
(lax-plist-put devdocs-browser--docs-cache slug nil)))
|
||||
|
||||
(defun devdocs-browser--upgrade-readable-name (old-doc new-doc)
|
||||
"Get human readable name for upgrade from OLD-DOC to NEW-DOC."
|
||||
(let ((slug (plist-get old-doc :slug))
|
||||
(name (plist-get old-doc :name))
|
||||
(old-version (plist-get old-doc :version))
|
||||
(old-release (plist-get old-doc :release))
|
||||
(old-mtime (plist-get old-doc :mtime))
|
||||
(new-version (plist-get new-doc :version))
|
||||
(new-release (plist-get new-doc :release))
|
||||
(new-mtime (plist-get new-doc :mtime))
|
||||
res)
|
||||
(setq res (format "%s (%s" slug name))
|
||||
(unless (equal old-version new-version)
|
||||
(setq res (concat res (format " %s->%s" old-version new-version))))
|
||||
(unless (equal old-release new-release)
|
||||
(setq res (concat res (format ", %s->%s" old-release new-release))))
|
||||
(setq res (concat res (format ", %s->%s)" old-mtime new-mtime)))
|
||||
res))
|
||||
|
||||
(defun devdocs-browser--upgrade-readable-name-or-nil (slug)
|
||||
"Get human readable name for upgrading SLUG if it needs upgrade."
|
||||
(let ((old-doc (devdocs-browser--load-doc slug))
|
||||
(new-doc (devdocs-browser-find-doc slug)))
|
||||
(when (and new-doc
|
||||
(> (plist-get new-doc :mtime) (plist-get old-doc :mtime)))
|
||||
(devdocs-browser--upgrade-readable-name old-doc new-doc))))
|
||||
|
||||
;;;###autoload
|
||||
(defun devdocs-browser-upgrade-doc (slug)
|
||||
"Upgrade doc by SLUG, return t if upgrade success.
|
||||
Also download new version of offline data if
|
||||
there's offline data for current version.
|
||||
When called interactively, user can choose from list.
|
||||
You may need to call `devdocs-browser-update-docs' first."
|
||||
(interactive
|
||||
(let (rows)
|
||||
(dolist (slug (devdocs-browser-list-installed-slugs))
|
||||
(let ((desc (devdocs-browser--upgrade-readable-name-or-nil slug)))
|
||||
(when desc
|
||||
(push (cons desc slug) rows))))
|
||||
(if (null rows)
|
||||
(progn
|
||||
(message "All docs up to date")
|
||||
(list nil))
|
||||
(list
|
||||
(cdr (assoc (completing-read "Upgrade doc: " rows nil t) rows))))))
|
||||
(when (and slug (devdocs-browser--upgrade-readable-name-or-nil slug))
|
||||
(let* ((has-offline-data (devdocs-browser-offline-data-dir slug))
|
||||
(doc (devdocs-browser-find-doc slug))
|
||||
(install-success (devdocs-browser--install-doc-internal doc)))
|
||||
(when (and has-offline-data install-success)
|
||||
(devdocs-browser--download-offline-data-internal doc))
|
||||
install-success)))
|
||||
|
||||
;;;###autoload
|
||||
(defun devdocs-browser-upgrade-all-docs ()
|
||||
"Upgrade all docs."
|
||||
(interactive)
|
||||
(let ((count 0))
|
||||
(dolist (slug (devdocs-browser-list-installed-slugs))
|
||||
(message "Processing %s..." slug)
|
||||
(when (devdocs-browser-upgrade-doc slug)
|
||||
(setq count (1+ count))))
|
||||
(message "Upgraded %s docs" count)))
|
||||
|
||||
(defun devdocs-browser-list-installed-slugs ()
|
||||
"Get a list of installed docs' slug name."
|
||||
(let ((dir (expand-file-name devdocs-browser--docs-dir devdocs-browser-cache-directory)))
|
||||
(when (file-exists-p dir)
|
||||
(directory-files dir nil
|
||||
;; ignore ".", ".." and hidden files
|
||||
"^[^.].*"))))
|
||||
|
||||
(defun devdocs-browser-find-installed-doc (slug-or-name)
|
||||
"Find installed doc by SLUG-OR-NAME."
|
||||
(let ((docs-list (mapcar #'devdocs-browser-installed-doc-info
|
||||
(devdocs-browser-list-installed-slugs))))
|
||||
(seq-find (lambda (doc)
|
||||
(or (equal (plist-get doc :slug) slug-or-name)
|
||||
(equal (plist-get doc :name) slug-or-name)))
|
||||
docs-list)))
|
||||
|
||||
(defun devdocs-browser-installed-doc-info (slug)
|
||||
"Get plist info of installed doc identified by SLUG."
|
||||
(cddr (devdocs-browser--load-doc slug)))
|
||||
|
||||
(defun devdocs-browser--load-doc (slug &optional refresh-cache)
|
||||
"Load doc identified by SLUG, reload cache if REFRESH-CACHE is not nil.
|
||||
Result is a plist metadata, with an extra :index field at the beginning."
|
||||
(or (and (not refresh-cache) (lax-plist-get devdocs-browser--docs-cache slug))
|
||||
(let* ((docs-dir (expand-file-name devdocs-browser--docs-dir
|
||||
devdocs-browser-cache-directory))
|
||||
(doc-dir (expand-file-name slug docs-dir))
|
||||
(metadata-filename (expand-file-name devdocs-browser--metadata-filename doc-dir))
|
||||
(metadata nil)
|
||||
(index-filename (expand-file-name devdocs-browser--index-json-filename doc-dir))
|
||||
(index (devdocs-browser--read-json index-filename))
|
||||
res)
|
||||
(when (file-exists-p metadata-filename)
|
||||
(with-temp-buffer
|
||||
(insert-file-contents metadata-filename)
|
||||
(setq metadata (read (current-buffer))))
|
||||
(setq res (append `(:index ,index) metadata))
|
||||
(setq devdocs-browser--docs-cache
|
||||
(lax-plist-put devdocs-browser--docs-cache slug res)))
|
||||
res)))
|
||||
|
||||
(defun devdocs-browser--download-offline-data-internal (doc)
|
||||
"(re-)Download and extract offline data for DOC."
|
||||
(let* ((slug (plist-get doc :slug))
|
||||
(mtime (plist-get doc :mtime))
|
||||
(docs-dir (expand-file-name devdocs-browser--docs-dir devdocs-browser-cache-directory))
|
||||
(doc-dir (expand-file-name slug docs-dir))
|
||||
(data-dir (expand-file-name devdocs-browser--offline-data-dir-name doc-dir))
|
||||
success)
|
||||
(unless (file-exists-p doc-dir)
|
||||
(make-directory doc-dir t))
|
||||
(when (file-exists-p data-dir)
|
||||
(delete-directory data-dir t))
|
||||
|
||||
;; do not leave half-complete data directory
|
||||
(unwind-protect
|
||||
(let ((data (devdocs-browser--fetch-json
|
||||
(format "%s/db.json?%s" slug mtime)
|
||||
(expand-file-name devdocs-browser--offline-data-json-filename doc-dir)
|
||||
devdocs-browser-doc-base-url)))
|
||||
;; write data to files
|
||||
(dolist (kv (seq-partition data 2))
|
||||
(when-let* ((name (substring (symbol-name (car kv)) 1))
|
||||
(value (cadr kv))
|
||||
;; prepent "./" to fix paths starting with literal "~" (e.g. deno)
|
||||
(path (expand-file-name (concat "./" name ".html") data-dir)))
|
||||
(unless (file-exists-p (file-name-directory path))
|
||||
(make-directory (file-name-directory path) t))
|
||||
(write-region value nil path)))
|
||||
(setq success t))
|
||||
(unless success
|
||||
(delete-directory data-dir t)))
|
||||
|
||||
(if success
|
||||
(message "Installed devdocs offline data %s version %s" slug mtime)
|
||||
(message "Failed to install devdocs offline data %s" slug))
|
||||
|
||||
success))
|
||||
|
||||
(defun devdocs-browser-offline-data-dir (slug)
|
||||
"Return doc SLUG's offline data dir if present, return nil otherwise."
|
||||
(let* ((docs-dir (expand-file-name devdocs-browser--docs-dir devdocs-browser-cache-directory))
|
||||
(doc-dir (expand-file-name slug docs-dir))
|
||||
(data-dir (expand-file-name devdocs-browser--offline-data-dir-name doc-dir)))
|
||||
(when (file-exists-p data-dir)
|
||||
(file-name-as-directory data-dir))))
|
||||
|
||||
(defun devdocs-browser-download-offline-data (slug)
|
||||
"Download offline data for doc SLUG.
|
||||
Offline data contains full content pages,
|
||||
which allows you to view docs without Internet connection.
|
||||
It may take some time to download offline data.
|
||||
When called interactively, user can choose from the list."
|
||||
(interactive (list (completing-read
|
||||
"Install offline data: "
|
||||
(seq-filter
|
||||
(lambda (slug) (null (devdocs-browser-offline-data-dir slug)))
|
||||
(devdocs-browser-list-installed-slugs))
|
||||
nil t)))
|
||||
(when-let* ((doc (devdocs-browser--load-doc slug)))
|
||||
(devdocs-browser--download-offline-data-internal doc)))
|
||||
|
||||
(defun devdocs-browser-remove-offline-data (slug)
|
||||
"Remove offline data for doc SLUG.
|
||||
When called interactively, user can choose from the list."
|
||||
(interactive (list (completing-read
|
||||
"Remove offline data: "
|
||||
(seq-filter
|
||||
#'devdocs-browser-offline-data-dir
|
||||
(devdocs-browser-list-installed-slugs))
|
||||
nil t)))
|
||||
(when-let* ((data-dir (devdocs-browser-offline-data-dir slug)))
|
||||
(delete-directory data-dir t)))
|
||||
|
||||
(defun devdocs-browser--eww-open (doc path)
|
||||
"Open PATH for document DOC using eww."
|
||||
(let* ((slug (plist-get doc :slug))
|
||||
(mtime (plist-get doc :mtime))
|
||||
base-url url)
|
||||
;; cannot use format directly because `path' may contains #query
|
||||
;; path: hello/world#query
|
||||
;; url for offline: file:///home/path/to/devdocs/python~3.8/hello/world.html#query
|
||||
;; url for online: https://documents.devdocs.io/python~3.8/hello/world.html?161818817#query
|
||||
(let ((offline-data-dir (devdocs-browser-offline-data-dir slug)))
|
||||
(if offline-data-dir
|
||||
(progn
|
||||
(setq base-url (concat "file://" offline-data-dir))
|
||||
(setq url (url-generic-parse-url (concat "file://" offline-data-dir path)))
|
||||
(setf (url-filename url) (concat (url-filename url) ".html")))
|
||||
(setq base-url (concat devdocs-browser-doc-base-url slug "/"))
|
||||
(setq url (url-generic-parse-url
|
||||
(concat devdocs-browser-doc-base-url slug "/" path)))
|
||||
(setf (url-filename url)
|
||||
(format "%s.html?%s" (url-filename url) mtime))))
|
||||
|
||||
(pop-to-buffer (format "*devdocs-%s*" slug))
|
||||
(if devdocs-browser-eww-mode
|
||||
(eww-save-history)
|
||||
(eww-mode)
|
||||
(devdocs-browser-eww-mode))
|
||||
(setq-local devdocs-browser--eww-data
|
||||
(list :doc doc
|
||||
:base-url base-url))
|
||||
|
||||
(eww (url-recreate-url url))
|
||||
(recenter)))
|
||||
|
||||
(defun devdocs-browser--default-active-slugs (&optional no-fallback-all)
|
||||
"Default active doc slugs for current buffer, fallback to all slugs if not NO-FALLBACK-ALL."
|
||||
(if devdocs-browser--eww-data
|
||||
(list (plist-get (plist-get devdocs-browser--eww-data :doc) :slug))
|
||||
(let ((names (or devdocs-browser-active-docs
|
||||
(alist-get major-mode devdocs-browser-major-mode-docs-alist)))
|
||||
slugs)
|
||||
(dolist (name names)
|
||||
(when-let* ((doc (devdocs-browser-find-installed-doc name))
|
||||
(slug (plist-get doc :slug)))
|
||||
(setq slugs (push slug slugs))))
|
||||
(or slugs
|
||||
(and (not no-fallback-all) (devdocs-browser-list-installed-slugs))))))
|
||||
|
||||
;;;###autoload
|
||||
(defun devdocs-browser-open-in (slug-or-name-list)
|
||||
"Open entry in specified docs SLUG-OR-NAME-LIST.
|
||||
When called interactively, user can choose from the list."
|
||||
(interactive
|
||||
(let ((def (devdocs-browser--default-active-slugs t)))
|
||||
(list (completing-read-multiple
|
||||
(concat "Select doc"
|
||||
(when def (format " (default %s)" def))
|
||||
": ")
|
||||
(devdocs-browser-list-installed-slugs)
|
||||
nil t nil nil def))))
|
||||
|
||||
(let ((current-word-regex
|
||||
(when-let ((word (thing-at-point 'word t)))
|
||||
(concat "\\<" (regexp-quote word) "\\>")))
|
||||
slugs rows def)
|
||||
(dolist (slug-or-name slug-or-name-list)
|
||||
(when-let* ((doc-simple (devdocs-browser-find-installed-doc slug-or-name))
|
||||
(slug (plist-get doc-simple :slug))
|
||||
(doc (devdocs-browser--load-doc slug))
|
||||
(index (plist-get doc :index))
|
||||
(entries (plist-get index :entries)))
|
||||
(setq slugs (push slug slugs))
|
||||
(let ((new-rows
|
||||
(mapcar
|
||||
(lambda (entry)
|
||||
(let* ((name (plist-get entry :name))
|
||||
(path (plist-get entry :path))
|
||||
(type (plist-get entry :type))
|
||||
(title (concat slug ": " name)))
|
||||
(when (and (null def) current-word-regex)
|
||||
(when (string-match-p current-word-regex name)
|
||||
(setq def title)))
|
||||
(cons title `(:value (,doc ,path)
|
||||
:group ,slug
|
||||
:annotation ,type))))
|
||||
entries)))
|
||||
(setq rows (append new-rows rows))
|
||||
(push (cons (format "%s: INDEX PAGE" slug)
|
||||
`(:value (,doc "index")
|
||||
:group ,slug))
|
||||
rows))))
|
||||
(let* ((selected-value
|
||||
(devdocs-browser--completing-read
|
||||
(format "Devdocs browser [%s]" (mapconcat #'identity slugs ","))
|
||||
rows def)))
|
||||
(when selected-value
|
||||
(apply #'devdocs-browser--eww-open selected-value)))))
|
||||
|
||||
;;;###autoload
|
||||
(defun devdocs-browser-open ()
|
||||
"Open entry in active docs.
|
||||
Active docs are specified by `devdocs-browser-active-docs',
|
||||
or `devdocs-browser-major-mode-docs-alist',
|
||||
or the current doc type if called in a devdocs eww buffer.
|
||||
When all of them are nil, all installed docs are used."
|
||||
(interactive)
|
||||
(devdocs-browser-open-in (devdocs-browser--default-active-slugs)))
|
||||
|
||||
|
||||
(provide 'devdocs-browser)
|
||||
;;; devdocs-browser.el ends here
|
Reference in a new issue