From 6d5a37b41d90e213bf21568be37073afb17b7835 Mon Sep 17 00:00:00 2001 From: Daniel Borchmann Date: Sun, 31 Mar 2019 19:05:44 +0200 Subject: [PATCH] [ELPA] Update crucial packages --- elpa/dash-20180910.1856/dash-autoloads.el | 15 - elpa/dash-20190320.1406/dash-autoloads.el | 22 ++ .../dash-pkg.el | 2 +- .../dash.el | 27 +- .../hydra-autoloads.el | 39 ++- .../hydra-examples.el | 11 +- .../hydra-ox.el | 0 .../hydra-pkg.el | 2 +- .../hydra.el | 259 +++++++++++++----- .../lv.el | 0 .../mc-cycle-cursors.el | 0 .../mc-edit-lines.el | 0 .../mc-hide-unmatched-lines-mode.el | 0 .../mc-mark-more.el | 0 .../mc-mark-pop.el | 0 .../mc-separate-operations.el | 0 .../multiple-cursors-autoloads.el | 47 +++- .../multiple-cursors-core.el | 30 +- .../multiple-cursors-pkg.el | 2 +- .../multiple-cursors.el | 0 .../rectangular-region-mode.el | 0 21 files changed, 332 insertions(+), 124 deletions(-) delete mode 100644 elpa/dash-20180910.1856/dash-autoloads.el create mode 100644 elpa/dash-20190320.1406/dash-autoloads.el rename elpa/{dash-20180910.1856 => dash-20190320.1406}/dash-pkg.el (55%) rename elpa/{dash-20180910.1856 => dash-20190320.1406}/dash.el (99%) rename elpa/{hydra-20181128.1716 => hydra-20190326.1950}/hydra-autoloads.el (64%) rename elpa/{hydra-20181128.1716 => hydra-20190326.1950}/hydra-examples.el (97%) rename elpa/{hydra-20181128.1716 => hydra-20190326.1950}/hydra-ox.el (100%) rename elpa/{hydra-20181128.1716 => hydra-20190326.1950}/hydra-pkg.el (80%) rename elpa/{hydra-20181128.1716 => hydra-20190326.1950}/hydra.el (88%) rename elpa/{hydra-20181128.1716 => hydra-20190326.1950}/lv.el (100%) rename elpa/{multiple-cursors-20180913.1237 => multiple-cursors-20190317.1211}/mc-cycle-cursors.el (100%) rename elpa/{multiple-cursors-20180913.1237 => multiple-cursors-20190317.1211}/mc-edit-lines.el (100%) rename elpa/{multiple-cursors-20180913.1237 => multiple-cursors-20190317.1211}/mc-hide-unmatched-lines-mode.el (100%) rename elpa/{multiple-cursors-20180913.1237 => multiple-cursors-20190317.1211}/mc-mark-more.el (100%) rename elpa/{multiple-cursors-20180913.1237 => multiple-cursors-20190317.1211}/mc-mark-pop.el (100%) rename elpa/{multiple-cursors-20180913.1237 => multiple-cursors-20190317.1211}/mc-separate-operations.el (100%) rename elpa/{multiple-cursors-20180913.1237 => multiple-cursors-20190317.1211}/multiple-cursors-autoloads.el (86%) rename elpa/{multiple-cursors-20180913.1237 => multiple-cursors-20190317.1211}/multiple-cursors-core.el (96%) rename elpa/{multiple-cursors-20180913.1237 => multiple-cursors-20190317.1211}/multiple-cursors-pkg.el (57%) rename elpa/{multiple-cursors-20180913.1237 => multiple-cursors-20190317.1211}/multiple-cursors.el (100%) rename elpa/{multiple-cursors-20180913.1237 => multiple-cursors-20190317.1211}/rectangular-region-mode.el (100%) diff --git a/elpa/dash-20180910.1856/dash-autoloads.el b/elpa/dash-20180910.1856/dash-autoloads.el deleted file mode 100644 index 5eb72bb..0000000 --- a/elpa/dash-20180910.1856/dash-autoloads.el +++ /dev/null @@ -1,15 +0,0 @@ -;;; dash-autoloads.el --- automatically extracted autoloads -;; -;;; Code: -(add-to-list 'load-path (directory-file-name (or (file-name-directory #$) (car load-path)))) - -;;;### (autoloads nil nil ("dash.el") (23517 56182 290592 403000)) - -;;;*** - -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; End: -;;; dash-autoloads.el ends here diff --git a/elpa/dash-20190320.1406/dash-autoloads.el b/elpa/dash-20190320.1406/dash-autoloads.el new file mode 100644 index 0000000..8bacbc8 --- /dev/null +++ b/elpa/dash-20190320.1406/dash-autoloads.el @@ -0,0 +1,22 @@ +;;; dash-autoloads.el --- automatically extracted autoloads +;; +;;; Code: + +(add-to-list 'load-path (directory-file-name + (or (file-name-directory #$) (car load-path)))) + + +;;;### (autoloads nil "dash" "dash.el" (0 0 0 0)) +;;; Generated autoloads from dash.el + +(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "dash" '("dash-" "-keep" "-butlast" "-non" "-only-some" "-zip" "-e" "->" "-a" "-gr" "-when-let" "-d" "-l" "-s" "-p" "-r" "-m" "-i" "-f" "-u" "-value-to-list" "-t" "--" "-c" "!cons" "!cdr"))) + +;;;*** + +;; Local Variables: +;; version-control: never +;; no-byte-compile: t +;; no-update-autoloads: t +;; coding: utf-8 +;; End: +;;; dash-autoloads.el ends here diff --git a/elpa/dash-20180910.1856/dash-pkg.el b/elpa/dash-20190320.1406/dash-pkg.el similarity index 55% rename from elpa/dash-20180910.1856/dash-pkg.el rename to elpa/dash-20190320.1406/dash-pkg.el index 29e7123..8ba45f6 100644 --- a/elpa/dash-20180910.1856/dash-pkg.el +++ b/elpa/dash-20190320.1406/dash-pkg.el @@ -1,2 +1,2 @@ ;;; -*- no-byte-compile: t -*- -(define-package "dash" "20180910.1856" "A modern list library for Emacs" 'nil :commit "6514359b8606a6a9a94068ccd601fcd6379d6584" :keywords '("lists") :authors '(("Magnar Sveen" . "magnars@gmail.com")) :maintainer '("Magnar Sveen" . "magnars@gmail.com")) +(define-package "dash" "20190320.1406" "A modern list library for Emacs" 'nil :commit "677c1561142db89cb151f50ce21f24096ca1a328" :keywords '("lists") :authors '(("Magnar Sveen" . "magnars@gmail.com")) :maintainer '("Magnar Sveen" . "magnars@gmail.com")) diff --git a/elpa/dash-20180910.1856/dash.el b/elpa/dash-20190320.1406/dash.el similarity index 99% rename from elpa/dash-20180910.1856/dash.el rename to elpa/dash-20190320.1406/dash.el index ee67456..87989dc 100644 --- a/elpa/dash-20180910.1856/dash.el +++ b/elpa/dash-20190320.1406/dash.el @@ -3,8 +3,8 @@ ;; Copyright (C) 2012-2016 Free Software Foundation, Inc. ;; Author: Magnar Sveen -;; Version: 2.14.1 -;; Package-Version: 20180910.1856 +;; Version: 2.15.0 +;; Package-Version: 20190320.1406 ;; Keywords: lists ;; This program is free software; you can redistribute it and/or modify @@ -87,6 +87,14 @@ the target form." forms) ,retval))) +(defmacro --doto (eval-initial-value &rest forms) + "Anaphoric form of `-doto'. +Note: `it' is not required in each form." + (declare (indent 1)) + `(let ((it ,eval-initial-value)) + ,@forms + it)) + (defun -each (list fn) "Call FN with every item in LIST. Return nil, used for side-effects only." (--each list (funcall fn it))) @@ -914,9 +922,11 @@ See also: `-drop'" "Rotate LIST N places to the right. With N negative, rotate to the left. The time complexity is O(n)." (declare (pure t) (side-effect-free t)) - (if (> n 0) - (append (last list n) (butlast list n)) - (append (-drop (- n) list) (-take (- n) list)))) + (when list + (let* ((len (length list)) + (n-mod-len (mod n len)) + (new-tail-len (- len n-mod-len))) + (append (-drop new-tail-len list) (-take new-tail-len list))))) (defun -insert-at (n x list) "Return a list with X inserted into LIST at position N. @@ -2533,11 +2543,15 @@ the new seed." (defun -cons-pair? (con) "Return non-nil if CON is true cons pair. -That is (A . B) where B is not a list." +That is (A . B) where B is not a list. + +Alias: `-cons-pair-p'" (declare (pure t) (side-effect-free t)) (and (listp con) (not (listp (cdr con))))) +(defalias '-cons-pair-p '-cons-pair?) + (defun -cons-to-list (con) "Convert a cons pair to a list with `car' and `cdr' of the pair respectively." (declare (pure t) (side-effect-free t)) @@ -2942,6 +2956,7 @@ structure such as plist or alist." "-unfold" "--unfold" "-cons-pair?" + "-cons-pair-p" "-cons-to-list" "-value-to-list" "-tree-mapreduce-from" diff --git a/elpa/hydra-20181128.1716/hydra-autoloads.el b/elpa/hydra-20190326.1950/hydra-autoloads.el similarity index 64% rename from elpa/hydra-20181128.1716/hydra-autoloads.el rename to elpa/hydra-20190326.1950/hydra-autoloads.el index ac2ab69..ee73bd2 100644 --- a/elpa/hydra-20181128.1716/hydra-autoloads.el +++ b/elpa/hydra-20190326.1950/hydra-autoloads.el @@ -1,9 +1,12 @@ ;;; hydra-autoloads.el --- automatically extracted autoloads ;; ;;; Code: -(add-to-list 'load-path (directory-file-name (or (file-name-directory #$) (car load-path)))) + +(add-to-list 'load-path (directory-file-name + (or (file-name-directory #$) (car load-path)))) + -;;;### (autoloads nil "hydra" "hydra.el" (23555 58032 639630 221000)) +;;;### (autoloads nil "hydra" "hydra.el" (0 0 0 0)) ;;; Generated autoloads from hydra.el (autoload 'defhydra "hydra" "\ @@ -41,7 +44,7 @@ nil. If you don't even want the KEY to be printed, set HINT explicitly to nil. The heads inherit their PLIST from BODY-PLIST and are allowed to -override some keys. The keys recognized are :exit and :bind. +override some keys. The keys recognized are :exit, :bind, and :column. :exit can be: - nil (default): this head will continue the Hydra state. @@ -51,6 +54,8 @@ override some keys. The keys recognized are :exit and :bind. - nil: this head will not be bound in BODY-MAP. - a lambda taking KEY and CMD used to bind a head. +:column is a string that sets the column for all subsequent heads. + It is possible to omit both BODY-MAP and BODY-KEY if you don't want to bind anything. In that case, typically you will bind the generated NAME/body command. This command is also the return @@ -62,10 +67,33 @@ result of `defhydra'. (function-put 'defhydra 'doc-string-elt '3) +(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "hydra" '("hydra-" "defhydra"))) + ;;;*** -;;;### (autoloads nil nil ("hydra-examples.el" "hydra-ox.el" "hydra-pkg.el" -;;;;;; "lv.el") (23555 58032 655630 298000)) +;;;### (autoloads nil "hydra-examples" "hydra-examples.el" (0 0 0 +;;;;;; 0)) +;;; Generated autoloads from hydra-examples.el + +(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "hydra-examples" '("hydra-" "org-agenda-cts" "whitespace-mode"))) + +;;;*** + +;;;### (autoloads nil "hydra-ox" "hydra-ox.el" (0 0 0 0)) +;;; Generated autoloads from hydra-ox.el + +(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "hydra-ox" '("hydra-ox"))) + +;;;*** + +;;;### (autoloads nil "lv" "lv.el" (0 0 0 0)) +;;; Generated autoloads from lv.el + +(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "lv" '("lv-"))) + +;;;*** + +;;;### (autoloads nil nil ("hydra-pkg.el") (0 0 0 0)) ;;;*** @@ -73,5 +101,6 @@ result of `defhydra'. ;; version-control: never ;; no-byte-compile: t ;; no-update-autoloads: t +;; coding: utf-8 ;; End: ;;; hydra-autoloads.el ends here diff --git a/elpa/hydra-20181128.1716/hydra-examples.el b/elpa/hydra-20190326.1950/hydra-examples.el similarity index 97% rename from elpa/hydra-20181128.1716/hydra-examples.el rename to elpa/hydra-20190326.1950/hydra-examples.el index 70f75b0..5262ec6 100644 --- a/elpa/hydra-20181128.1716/hydra-examples.el +++ b/elpa/hydra-20190326.1950/hydra-examples.el @@ -270,7 +270,7 @@ _v_ariable _u_ser-option _h_ _l_ _o_k _y_ank ^_j_^ _n_ew-copy _r_eset ^^^^ _e_xchange _u_ndo -^^^^ ^ ^ _p_aste +^^^^ ^ ^ _x_kill " ("h" rectangle-backward-char nil) ("l" rectangle-forward-char nil) @@ -285,7 +285,7 @@ _h_ _l_ _o_k _y_ank ("y" yank-rectangle nil) ("u" undo nil) ("s" string-rectangle nil) - ("p" kill-rectangle nil) + ("x" kill-rectangle nil) ("o" nil nil)) ;; Recommended binding: @@ -333,6 +333,13 @@ _y_: ?y? year _q_: quit _L__l__c_: log = ?l?" ;; Recommended binding: ;; (define-key org-agenda-mode-map "v" 'hydra-org-agenda-view/body) +;;** Example 13: automatic columns +(defhydra hydra-movement () + ("j" next-line "down" :column "Vertical") + ("k" previous-line "up") + ("l" forward-char "forward" :column "Horizontal") + ("h" backward-char "back")) + ;;* Helpers (require 'windmove) diff --git a/elpa/hydra-20181128.1716/hydra-ox.el b/elpa/hydra-20190326.1950/hydra-ox.el similarity index 100% rename from elpa/hydra-20181128.1716/hydra-ox.el rename to elpa/hydra-20190326.1950/hydra-ox.el diff --git a/elpa/hydra-20181128.1716/hydra-pkg.el b/elpa/hydra-20190326.1950/hydra-pkg.el similarity index 80% rename from elpa/hydra-20181128.1716/hydra-pkg.el rename to elpa/hydra-20190326.1950/hydra-pkg.el index 34c289b..e5328e1 100644 --- a/elpa/hydra-20181128.1716/hydra-pkg.el +++ b/elpa/hydra-20190326.1950/hydra-pkg.el @@ -1,4 +1,4 @@ -(define-package "hydra" "20181128.1716" "Make bindings that stick around." +(define-package "hydra" "20190326.1950" "Make bindings that stick around." '((cl-lib "0.5")) :keywords '("bindings") diff --git a/elpa/hydra-20181128.1716/hydra.el b/elpa/hydra-20190326.1950/hydra.el similarity index 88% rename from elpa/hydra-20181128.1716/hydra.el rename to elpa/hydra-20190326.1950/hydra.el index 49066e9..aba74ca 100644 --- a/elpa/hydra-20181128.1716/hydra.el +++ b/elpa/hydra-20190326.1950/hydra.el @@ -1,6 +1,6 @@ ;;; hydra.el --- Make bindings that stick around. -*- lexical-binding: t -*- -;; Copyright (C) 2015 Free Software Foundation, Inc. +;; Copyright (C) 2015-2019 Free Software Foundation, Inc. ;; Author: Oleh Krehel ;; Maintainer: Oleh Krehel @@ -207,6 +207,34 @@ the body or the head." :type 'sexp :group 'hydra) +(declare-function posframe-show "posframe") +(declare-function posframe-hide "posframe") +(declare-function posframe-poshandler-window-center "posframe") + +(defun hydra-posframe-show (str) + (require 'posframe) + (posframe-show + " *hydra-posframe*" + :string str + :poshandler #'posframe-poshandler-window-center)) + +(defun hydra-posframe-hide () + (posframe-hide " *hydra-posframe*")) + +(defvar hydra-hint-display-alist + (list (list 'lv #'lv-message #'lv-delete-window) + (list 'message #'message (lambda () (message ""))) + (list 'posframe #'hydra-posframe-show #'hydra-posframe-hide)) + "Store the functions for `hydra-hint-display-type'.") + +(defcustom hydra-hint-display-type 'lv + "The utility to show hydra hint" + :type '(choice + (const message) + (const lv) + (const posframe)) + :group 'hydra) + (defcustom hydra-lv t "When non-nil, `lv-message' (not `message') will be used to display hints." :type 'boolean) @@ -441,6 +469,21 @@ Return DEFAULT if PROP is not in H." ((blue teal) t) (t nil))))) +(defun hydra--normalize-body (body) + "Put BODY in a normalized format. +Add :exit and :foreign-keys if they are not there. +Remove :color key. And sort the plist alphabetically." + (let ((plist (cddr body))) + (plist-put plist :exit (hydra--body-exit body)) + (plist-put plist :foreign-keys (hydra--body-foreign-keys body)) + (let* ((alist0 (cl-loop for (k v) on plist + by #'cddr collect (cons k v))) + (alist1 (assq-delete-all :color alist0)) + (alist2 (cl-sort alist1 #'string< + :key (lambda (x) (symbol-name (car x)))))) + (append (list (car body) (cadr body)) + (cl-mapcan (lambda (x) (list (car x) (cdr x))) alist2))))) + (defalias 'hydra--imf #'list) (defun hydra-default-pre () @@ -471,9 +514,8 @@ Return DEFAULT if PROP is not in H." (setq hydra-curr-map nil) (unless (and hydra--ignore (null hydra--work-around-dedicated)) - (if hydra-lv - (lv-delete-window) - (message ""))) + (funcall + (nth 2 (assoc hydra-hint-display-type hydra-hint-display-alist)))) nil) (defvar hydra-head-format "[%s]: " @@ -483,9 +525,10 @@ Return DEFAULT if PROP is not in H." "The function for formatting key-doc pairs.") (defun hydra-key-doc-function-default (key key-width doc doc-width) - "Doc" (cond ((equal key " ") (format (format "%%-%ds" (+ 3 key-width doc-width)) doc)) + ((listp doc) + `(format ,(format "%%%ds: %%%ds" key-width (- -1 doc-width)) ,key ,doc)) (t (format (format "%%%ds: %%%ds" key-width (- -1 doc-width)) key doc)))) (defun hydra--to-string (x) @@ -493,6 +536,14 @@ Return DEFAULT if PROP is not in H." x (eval x))) +(defun hydra--eval-and-format (x) + (let ((str (hydra--to-string (cdr x)))) + (format + (if (> (length str) 0) + (concat hydra-head-format str) + "%s") + (car x)))) + (defun hydra--hint-heads-wocol (body heads) "Generate a hint for the echo area. BODY, and HEADS are parameters to `defhydra'. @@ -501,14 +552,13 @@ Works for heads without a property :column." (dolist (h heads) (let ((val (assoc (cadr h) alist)) (pstr (hydra-fontify-head h body))) - (unless (not (stringp (cl-caddr h))) - (if val - (setf (cadr val) - (concat (cadr val) " " pstr)) - (push - (cons (cadr h) - (cons pstr (cl-caddr h))) - alist))))) + (if val + (setf (cadr val) + (concat (cadr val) " " pstr)) + (push + (cons (cadr h) + (cons pstr (cl-caddr h))) + alist)))) (let ((keys (nreverse (mapcar #'cdr alist))) (n-cols (plist-get (cddr body) :columns)) res) @@ -537,13 +587,7 @@ Works for heads without a property :column." `(concat (mapconcat - (lambda (x) - (let ((str (hydra--to-string (cdr x)))) - (format - (if (> (length str) 0) - (concat hydra-head-format str) - "%s") - (car x)))) + #'hydra--eval-and-format ',keys ", ") ,(if keys "." "")))) @@ -557,11 +601,16 @@ Works for heads without a property :column." BODY, and HEADS are parameters to `defhydra'." (let* ((sorted-heads (hydra--sort-heads (hydra--normalize-heads heads))) (heads-w-col (cl-remove-if-not (lambda (heads) (hydra--head-property (nth 0 heads) :column)) sorted-heads)) - (heads-wo-col (cl-remove-if (lambda (heads) (hydra--head-property (nth 0 heads) :column)) sorted-heads))) - (concat (when heads-w-col - (hydra--hint-from-matrix body (hydra--generate-matrix heads-w-col))) - (when heads-wo-col - (hydra--hint-heads-wocol body (car heads-wo-col)))))) + (heads-wo-col (cl-remove-if (lambda (heads) (hydra--head-property (nth 0 heads) :column)) sorted-heads)) + (hint-w-col (when heads-w-col + (hydra--hint-from-matrix body (hydra--generate-matrix heads-w-col)))) + (hint-wo-col (when heads-wo-col + (hydra--hint-heads-wocol body (car heads-wo-col))))) + (if (null hint-w-col) + hint-wo-col + (if (stringp hint-wo-col) + `(concat ,@hint-w-col ,hint-wo-col) + `(concat ,@hint-w-col ,@(cdr hint-wo-col)))))) (defvar hydra-fontify-head-function nil "Possible replacement for `hydra-fontify-head-default'.") @@ -715,27 +764,37 @@ The expressions can be auto-expanded according to NAME." (substring docstring 0 start) "%" spec (substring docstring (+ start offset 1 lspec varp)))))))) - (cond - ((string= docstring "") - rest) - ((eq ?\n (aref docstring 0)) - `(concat (format ,(substring docstring 1) ,@(nreverse varlist)) - ,rest)) - (t - (let ((r `(replace-regexp-in-string - " +$" "" - (concat ,docstring - ,(cond ((string-match-p "\\`\n" rest) - ":") - ((string-match-p "\n" rest) - ":\n") - (t - ": ")) - (replace-regexp-in-string - "\\(%\\)" "\\1\\1" ,rest))))) - (if (stringp rest) - `(format ,(eval r)) - `(format ,r)))))))) + (hydra--format-1 docstring rest varlist)))) + +(defun hydra--format-1 (docstring rest varlist) + (cond + ((string= docstring "") + rest) + ((listp rest) + (unless (string-match-p "[:\n]" docstring) + (setq docstring (concat docstring ":\n"))) + (unless (or (string-match-p "\n\\'" docstring) + (equal (cadr rest) "\n")) + (setq docstring (concat docstring "\n"))) + `(concat (format ,(replace-regexp-in-string "\\`\n" "" docstring) ,@(nreverse varlist)) + ,@(cdr rest))) + ((eq ?\n (aref docstring 0)) + `(format ,(concat (substring docstring 1) rest) ,@(nreverse varlist))) + (t + (let ((r `(replace-regexp-in-string + " +$" "" + (concat ,docstring + ,(cond ((string-match-p "\\`\n" rest) + ":") + ((string-match-p "\n" rest) + ":\n") + (t + ": ")) + (replace-regexp-in-string + "\\(%\\)" "\\1\\1" ,rest))))) + (if (stringp rest) + `(format ,(eval r)) + `(format ,r)))))) (defun hydra--complain (format-string &rest args) "Forward to (`message' FORMAT-STRING ARGS) unless `hydra-verbose' is nil." @@ -872,9 +931,9 @@ KEY is forwarded to `plist-get'." (message (eval hint))) (t (when hydra-is-helpful - (if hydra-lv - (lv-message (eval hint)) - (message (eval hint)))))))) + (funcall + (nth 1 (assoc hydra-hint-display-type hydra-hint-display-alist)) + (eval hint))))))) (defmacro hydra--make-funcall (sym) "Transform SYM into a `funcall' to call it." @@ -1074,33 +1133,54 @@ representing the maximum dimension of their owning group. decorated-heads) res))) (nreverse res)))) +(defun hydra-interpose (x lst) + "Insert X in between each element of LST." + (let (res y) + (while (setq y (pop lst)) + (push y res) + (push x res)) + (nreverse (cdr res)))) + +(defun hydra--hint-row (heads body) + (let ((lst (hydra-interpose + "| " + (mapcar (lambda (head) + (funcall hydra-key-doc-function + (hydra-fontify-head head body) + (let ((n (hydra--head-property head :max-key-len))) + (+ n (cl-count ?% (car head)))) + (nth 2 head) ;; doc + (hydra--head-property head :max-doc-len))) + heads)))) + (when (stringp (car (last lst))) + (let ((len (length lst)) + (new-last (replace-regexp-in-string "\s+$" "" (car (last lst))))) + (when (= 0 (length (setf (nth (- len 1) lst) new-last))) + (setf (nth (- len 2) lst) "|")))) + lst)) + + (defun hydra--hint-from-matrix (body heads-matrix) "Generate a formated table-style docstring according to BODY and HEADS-MATRIX. HEADS-MATRIX is expected to be a list of heads with following features: Each heads must have the same length Each head must have a property max-key-len and max-doc-len." (when heads-matrix - (let* ((first-heads-col (nth 0 heads-matrix)) - (last-row-index (- (length first-heads-col) 1)) - (lines nil)) - (dolist (row-index (number-sequence 0 last-row-index)) - (let ((heads-in-row (mapcar - (lambda (heads) (nth row-index heads)) - heads-matrix))) - (push (replace-regexp-in-string - "\s+$" "" - (mapconcat (lambda (head) - (funcall hydra-key-doc-function - (hydra-fontify-head head body) ;; key - (let ((n (hydra--head-property head :max-key-len))) - (+ n (cl-count ?% (car head)))) - (nth 2 head) ;; doc - (hydra--head-property head :max-doc-len))) - heads-in-row "| ")) - lines))) - (concat (mapconcat #'identity (nreverse lines) "\n") "\n")))) + (let ((lines (hydra--hint-from-matrix-1 body heads-matrix))) + `(,@(apply #'append (hydra-interpose '("\n") lines)) + "\n")))) -;; previous functions dealt with automatic docstring table generation from :column head property +(defun hydra--hint-from-matrix-1 (body heads-matrix) + (let* ((first-heads-col (nth 0 heads-matrix)) + (last-row-index (- (length first-heads-col) 1)) + (lines nil)) + (dolist (row-index (number-sequence 0 last-row-index)) + (let ((heads-in-row (mapcar + (lambda (heads) (nth row-index heads)) + heads-matrix))) + (push (hydra--hint-row heads-in-row body) + lines))) + (nreverse lines))) (defun hydra-idle-message (secs hint name) "In SECS seconds display HINT." @@ -1167,7 +1247,7 @@ nil. If you don't even want the KEY to be printed, set HINT explicitly to nil. The heads inherit their PLIST from BODY-PLIST and are allowed to -override some keys. The keys recognized are :exit and :bind. +override some keys. The keys recognized are :exit, :bind, and :column. :exit can be: - nil (default): this head will continue the Hydra state. @@ -1177,6 +1257,8 @@ override some keys. The keys recognized are :exit and :bind. - nil: this head will not be bound in BODY-MAP. - a lambda taking KEY and CMD used to bind a head. +:column is a string that sets the column for all subsequent heads. + It is possible to omit both BODY-MAP and BODY-KEY if you don't want to bind anything. In that case, typically you will bind the generated NAME/body command. This command is also the return @@ -1192,6 +1274,7 @@ result of `defhydra'." (setq docstring ""))) (when (keywordp (car body)) (setq body (cons nil (cons nil body)))) + (setq body (hydra--normalize-body body)) (condition-case-unless-debug err (let* ((keymap-name (intern (format "%S/keymap" name))) (body-name (intern (format "%S/body" name))) @@ -1274,12 +1357,14 @@ result of `defhydra'." "An %S Hydra must have at least one blue head in order to exit" body-foreign-keys))) `(progn - ;; create keymap - (set (defvar ,keymap-name + (set (defvar ,(intern (format "%S/params" name)) nil - ,(format "Keymap for %S." name)) - ',keymap) - ;; declare heads + ,(format "Params of %S." name)) + ',body) + (set (defvar ,(intern (format "%S/docstring" name)) + nil + ,(format "Docstring of %S." name)) + ,docstring) (set (defvar ,(intern (format "%S/heads" name)) nil ,(format "Heads for %S." name)) @@ -1288,6 +1373,12 @@ result of `defhydra'." (cl-remf (cl-cdddr j) :cmd-name) j)) heads)) + ;; create keymap + (set (defvar ,keymap-name + nil + ,(format "Keymap for %S." name)) + ',keymap) + ;; declare heads (set (defvar ,(intern (format "%S/hint" name)) nil ,(format "Dynamic hint for %S." name)) @@ -1338,6 +1429,24 @@ result of `defhydra'." (hydra--complain "Error in defhydra %S: %s" name (cdr err)) nil))) +(defmacro defhydra+ (name body &optional docstring &rest heads) + "Redefine an existing hydra by adding new heads. +Arguments are same as of `defhydra'." + (declare (indent defun) (doc-string 3)) + (unless (stringp docstring) + (setq heads + (cons docstring heads)) + (setq docstring nil)) + `(defhydra ,name ,(or body (hydra--prop name "/params")) + ,(or docstring (hydra--prop name "/docstring")) + ,@(cl-delete-duplicates + (append (hydra--prop name "/heads") heads) + :key #'car + :test #'equal))) + +(defun hydra--prop (name prop-name) + (symbol-value (intern (concat (symbol-name name) prop-name)))) + (defmacro defhydradio (name _body &rest heads) "Create radios with prefix NAME. _BODY specifies the options; there are none currently. diff --git a/elpa/hydra-20181128.1716/lv.el b/elpa/hydra-20190326.1950/lv.el similarity index 100% rename from elpa/hydra-20181128.1716/lv.el rename to elpa/hydra-20190326.1950/lv.el diff --git a/elpa/multiple-cursors-20180913.1237/mc-cycle-cursors.el b/elpa/multiple-cursors-20190317.1211/mc-cycle-cursors.el similarity index 100% rename from elpa/multiple-cursors-20180913.1237/mc-cycle-cursors.el rename to elpa/multiple-cursors-20190317.1211/mc-cycle-cursors.el diff --git a/elpa/multiple-cursors-20180913.1237/mc-edit-lines.el b/elpa/multiple-cursors-20190317.1211/mc-edit-lines.el similarity index 100% rename from elpa/multiple-cursors-20180913.1237/mc-edit-lines.el rename to elpa/multiple-cursors-20190317.1211/mc-edit-lines.el diff --git a/elpa/multiple-cursors-20180913.1237/mc-hide-unmatched-lines-mode.el b/elpa/multiple-cursors-20190317.1211/mc-hide-unmatched-lines-mode.el similarity index 100% rename from elpa/multiple-cursors-20180913.1237/mc-hide-unmatched-lines-mode.el rename to elpa/multiple-cursors-20190317.1211/mc-hide-unmatched-lines-mode.el diff --git a/elpa/multiple-cursors-20180913.1237/mc-mark-more.el b/elpa/multiple-cursors-20190317.1211/mc-mark-more.el similarity index 100% rename from elpa/multiple-cursors-20180913.1237/mc-mark-more.el rename to elpa/multiple-cursors-20190317.1211/mc-mark-more.el diff --git a/elpa/multiple-cursors-20180913.1237/mc-mark-pop.el b/elpa/multiple-cursors-20190317.1211/mc-mark-pop.el similarity index 100% rename from elpa/multiple-cursors-20180913.1237/mc-mark-pop.el rename to elpa/multiple-cursors-20190317.1211/mc-mark-pop.el diff --git a/elpa/multiple-cursors-20180913.1237/mc-separate-operations.el b/elpa/multiple-cursors-20190317.1211/mc-separate-operations.el similarity index 100% rename from elpa/multiple-cursors-20180913.1237/mc-separate-operations.el rename to elpa/multiple-cursors-20190317.1211/mc-separate-operations.el diff --git a/elpa/multiple-cursors-20180913.1237/multiple-cursors-autoloads.el b/elpa/multiple-cursors-20190317.1211/multiple-cursors-autoloads.el similarity index 86% rename from elpa/multiple-cursors-20180913.1237/multiple-cursors-autoloads.el rename to elpa/multiple-cursors-20190317.1211/multiple-cursors-autoloads.el index 91f3cd7..492b41a 100644 --- a/elpa/multiple-cursors-20180913.1237/multiple-cursors-autoloads.el +++ b/elpa/multiple-cursors-20190317.1211/multiple-cursors-autoloads.el @@ -1,10 +1,20 @@ ;;; multiple-cursors-autoloads.el --- automatically extracted autoloads ;; ;;; Code: -(add-to-list 'load-path (directory-file-name (or (file-name-directory #$) (car load-path)))) + +(add-to-list 'load-path (directory-file-name + (or (file-name-directory #$) (car load-path)))) + -;;;### (autoloads nil "mc-edit-lines" "mc-edit-lines.el" (23517 56120 -;;;;;; 926283 899000)) +;;;### (autoloads nil "mc-cycle-cursors" "mc-cycle-cursors.el" (0 +;;;;;; 0 0 0)) +;;; Generated autoloads from mc-cycle-cursors.el + +(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mc-cycle-cursors" '("mc/"))) + +;;;*** + +;;;### (autoloads nil "mc-edit-lines" "mc-edit-lines.el" (0 0 0 0)) ;;; Generated autoloads from mc-edit-lines.el (autoload 'mc/edit-lines "mc-edit-lines" "\ @@ -31,10 +41,12 @@ Add one cursor to the beginning of each line in the active region. \(fn)" t nil) +(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mc-edit-lines" '("mc/edit-lines-empty-lines"))) + ;;;*** ;;;### (autoloads nil "mc-hide-unmatched-lines-mode" "mc-hide-unmatched-lines-mode.el" -;;;;;; (23517 56120 982284 180000)) +;;;;;; (0 0 0 0)) ;;; Generated autoloads from mc-hide-unmatched-lines-mode.el (autoload 'mc-hide-unmatched-lines-mode "mc-hide-unmatched-lines-mode" "\ @@ -46,10 +58,11 @@ mode. To leave this mode press or \"C-g\" \(fn &optional ARG)" t nil) +(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mc-hide-unmatched-lines-mode" '("hum/"))) + ;;;*** -;;;### (autoloads nil "mc-mark-more" "mc-mark-more.el" (23517 56120 -;;;;;; 954284 39000)) +;;;### (autoloads nil "mc-mark-more" "mc-mark-more.el" (0 0 0 0)) ;;; Generated autoloads from mc-mark-more.el (autoload 'mc/mark-next-like-this "mc-mark-more" "\ @@ -244,10 +257,11 @@ Mark the tag we're in and its pair for renaming. \(fn)" t nil) +(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mc-mark-more" '("mc/" "mc--"))) + ;;;*** -;;;### (autoloads nil "mc-mark-pop" "mc-mark-pop.el" (23517 56120 -;;;;;; 986284 200000)) +;;;### (autoloads nil "mc-mark-pop" "mc-mark-pop.el" (0 0 0 0)) ;;; Generated autoloads from mc-mark-pop.el (autoload 'mc/mark-pop "mc-mark-pop" "\ @@ -259,7 +273,7 @@ to the popped mark. ;;;*** ;;;### (autoloads nil "mc-separate-operations" "mc-separate-operations.el" -;;;;;; (23517 56120 910283 818000)) +;;;;;; (0 0 0 0)) ;;; Generated autoloads from mc-separate-operations.el (autoload 'mc/insert-numbers "mc-separate-operations" "\ @@ -296,10 +310,12 @@ Aligns all cursors with whitespace like `mc/vertical-align' does \(fn)" t nil) +(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mc-separate-operations" '("mc/insert-numbers-default" "mc--"))) + ;;;*** ;;;### (autoloads nil "multiple-cursors-core" "multiple-cursors-core.el" -;;;;;; (23517 56120 966284 100000)) +;;;;;; (0 0 0 0)) ;;; Generated autoloads from multiple-cursors-core.el (autoload 'multiple-cursors-mode "multiple-cursors-core" "\ @@ -307,10 +323,12 @@ Mode while multiple cursors are active. \(fn &optional ARG)" t nil) +(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "multiple-cursors-core" '("multiple-cursors-mode" "unsupported-cmd" "deactivate-cursor-after-undo" "activate-cursor-for-undo"))) + ;;;*** ;;;### (autoloads nil "rectangular-region-mode" "rectangular-region-mode.el" -;;;;;; (23517 56120 974284 140000)) +;;;;;; (0 0 0 0)) ;;; Generated autoloads from rectangular-region-mode.el (autoload 'set-rectangular-region-anchor "rectangular-region-mode" "\ @@ -326,10 +344,12 @@ A mode for creating a rectangular region to edit \(fn &optional ARG)" t nil) +(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "rectangular-region-mode" '("rectangular-region-mode" "rrm/"))) + ;;;*** -;;;### (autoloads nil nil ("mc-cycle-cursors.el" "multiple-cursors-pkg.el" -;;;;;; "multiple-cursors.el") (23517 56120 958284 59000)) +;;;### (autoloads nil nil ("multiple-cursors-pkg.el" "multiple-cursors.el") +;;;;;; (0 0 0 0)) ;;;*** @@ -337,5 +357,6 @@ A mode for creating a rectangular region to edit ;; version-control: never ;; no-byte-compile: t ;; no-update-autoloads: t +;; coding: utf-8 ;; End: ;;; multiple-cursors-autoloads.el ends here diff --git a/elpa/multiple-cursors-20180913.1237/multiple-cursors-core.el b/elpa/multiple-cursors-20190317.1211/multiple-cursors-core.el similarity index 96% rename from elpa/multiple-cursors-20180913.1237/multiple-cursors-core.el rename to elpa/multiple-cursors-20190317.1211/multiple-cursors-core.el index 4ca8e75..12e9e75 100644 --- a/elpa/multiple-cursors-20180913.1237/multiple-cursors-core.el +++ b/elpa/multiple-cursors-20190317.1211/multiple-cursors-core.el @@ -149,7 +149,18 @@ highlights the entire width of the window." autopair-action autopair-wrap-action temporary-goal-column - er/history) + er/history + dabbrev--abbrev-char-regexp + dabbrev--check-other-buffers + dabbrev--friend-buffer-list + dabbrev--last-abbrev-location + dabbrev--last-abbreviation + dabbrev--last-buffer + dabbrev--last-buffer-found + dabbrev--last-direction + dabbrev--last-expansion + dabbrev--last-expansion-location + dabbrev--last-table) "A list of vars that need to be tracked on a per-cursor basis.") (defun mc/store-current-state-in-overlay (o) @@ -424,6 +435,10 @@ the original cursor, to inform about the lack of support." (message "%S is not supported with multiple cursors%s" original-command (get original-command 'mc--unsupported)) + + ;; lazy-load the user's list file + (mc/load-lists) + (when (and original-command (not (memq original-command mc--default-cmds-to-run-once)) (not (memq original-command mc/cmds-to-run-once)) @@ -602,6 +617,15 @@ for running commands with multiple cursors." :type 'file :group 'multiple-cursors) +(defvar mc--list-file-loaded nil + "Whether the list file has already been loaded.") + +(defun mc/load-lists () + "Loads preferences for running commands with multiple cursors from `mc/list-file'" + (unless mc--list-file-loaded + (load mc/list-file 'noerror 'nomessage) + (setq mc--list-file-loaded t))) + (defun mc/dump-list (list-symbol) "Insert (setq 'LIST-SYMBOL LIST-VALUE) to current buffer." (cl-symbol-macrolet ((value (symbol-value list-symbol))) @@ -806,10 +830,6 @@ for running commands with multiple cursors." (defvar mc/cmds-to-run-for-all nil "Commands to run for all cursors in multiple-cursors-mode") -;; load, but no errors if it does not exist yet please, and no message -;; while loading -(load mc/list-file 'noerror 'nomessage) - (provide 'multiple-cursors-core) ;; Local Variables: diff --git a/elpa/multiple-cursors-20180913.1237/multiple-cursors-pkg.el b/elpa/multiple-cursors-20190317.1211/multiple-cursors-pkg.el similarity index 57% rename from elpa/multiple-cursors-20180913.1237/multiple-cursors-pkg.el rename to elpa/multiple-cursors-20190317.1211/multiple-cursors-pkg.el index af9fd61..c5f1d05 100644 --- a/elpa/multiple-cursors-20180913.1237/multiple-cursors-pkg.el +++ b/elpa/multiple-cursors-20190317.1211/multiple-cursors-pkg.el @@ -1,4 +1,4 @@ -(define-package "multiple-cursors" "20180913.1237" "Multiple cursors for Emacs." +(define-package "multiple-cursors" "20190317.1211" "Multiple cursors for Emacs." '((cl-lib "0.5"))) ;; Local Variables: ;; no-byte-compile: t diff --git a/elpa/multiple-cursors-20180913.1237/multiple-cursors.el b/elpa/multiple-cursors-20190317.1211/multiple-cursors.el similarity index 100% rename from elpa/multiple-cursors-20180913.1237/multiple-cursors.el rename to elpa/multiple-cursors-20190317.1211/multiple-cursors.el diff --git a/elpa/multiple-cursors-20180913.1237/rectangular-region-mode.el b/elpa/multiple-cursors-20190317.1211/rectangular-region-mode.el similarity index 100% rename from elpa/multiple-cursors-20180913.1237/rectangular-region-mode.el rename to elpa/multiple-cursors-20190317.1211/rectangular-region-mode.el