[elpa] main 7387933: * elpa-packages (eev): Auto-sync

2021-05-29 Thread monnier--- via
branch: main
commit 7387933f3fd4fd7b6ab47843f75fd179f8a46658
Author: Stefan Monnier 
Commit: Stefan Monnier 

* elpa-packages (eev): Auto-sync
---
 elpa-packages | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/elpa-packages b/elpa-packages
index 4da0ffd..4b2a745 100644
--- a/elpa-packages
+++ b/elpa-packages
@@ -131,7 +131,8 @@
  ("ebdb-gnorb" :url nil)
  ("ebdb-i18n-chn"  :url nil)
  ("ediprolog"  :url nil)
- ("eev":url "https://github.com/edrx/eev.git"; :branch 
"UTF-8")
+ ("eev":url "https://github.com/edrx/eev.git";
+  :branch "UTF-8" :auto-sync t)
  ("eglot"   :url "https://github.com/joaotavora/eglot.git";)
  ("el-search"  :url nil)
  ("eldoc"  :core "lisp/emacs-lisp/eldoc.el")



[elpa] externals/eev updated (af3fb0c -> 615e832)

2021-05-29 Thread ELPA Syncer
elpasync pushed a change to branch externals/eev.

  from  af3fb0c   Bumped the version number in eev.el.
   new  e1b54fd   Fixed a bug in `ee-insert' and `find-einsert'.
   new  dc4b212   New file: "eev-tla.el".
   new  9a88596   Bumped the version number in eev.el.
   new  615e832   Make "eev-rcirc.el" support the LiberaChat server.


Summary of changes:
 ChangeLog  |  28 +
 VERSION|   4 +-
 eev-blinks.el  |  32 -
 eev-elinks.el  |   2 +
 eev-hydras.el  | 160 +---
 eev-intro.el   |  97 ++-
 eev-pdflike.el |  78 ++--
 eev-rcirc.el   |  75 ++-
 eev-tla.el | 383 +
 eev-tlinks.el  |  31 -
 eev.el |   2 +-
 11 files changed, 822 insertions(+), 70 deletions(-)
 create mode 100644 eev-tla.el



[elpa] externals/eev dc4b212 2/4: New file: "eev-tla.el".

2021-05-29 Thread ELPA Syncer
branch: externals/eev
commit dc4b212f840de2b2352c57042dbb3f20992689c0
Author: Eduardo Ochs 
Commit: Eduardo Ochs 

New file: "eev-tla.el".
---
 VERSION   |   4 +-
 eev-elinks.el |   2 +
 eev-hydras.el | 160 ++---
 eev-intro.el  |   3 +-
 eev-tla.el| 367 ++
 5 files changed, 515 insertions(+), 21 deletions(-)

diff --git a/VERSION b/VERSION
index b05a4ac..70ea30e 100644
--- a/VERSION
+++ b/VERSION
@@ -1,2 +1,2 @@
-Sun May 16 07:50:08 GMT 2021
-Sun May 16 04:50:08 -03 2021
+Sat May 22 19:31:36 GMT 2021
+Sat May 22 16:31:36 -03 2021
diff --git a/eev-elinks.el b/eev-elinks.el
index c0c027d..e7d091a 100644
--- a/eev-elinks.el
+++ b/eev-elinks.el
@@ -1297,6 +1297,8 @@ Convert PKG - a symbol - to a package-desc structure (or 
to nil)."
 ;; «find-esetkey-links»  (to ".find-esetkey-links")
 ;; Skel: (find-find-links-links-new "esetkey" "key command" "longkey")
 ;; Test: (find-esetkey-links (kbd "M-o") 'other-window)
+;;  See: (find-eevtemplvideo "14:20" "4. `find-esetkey-links'")
+;;   (find-eevtemplvideo "14:45"   "if we just run M-x find-esetkey-links")
 ;;
 (defun find-esetkey-links (&optional key command &rest pos-spec-list)
   "Visit a temporary buffer containing sexps for setting a key."
diff --git a/eev-hydras.el b/eev-hydras.el
index ef62147..fef9ffc 100644
--- a/eev-hydras.el
+++ b/eev-hydras.el
@@ -19,7 +19,7 @@
 ;;
 ;; Author: Eduardo Ochs 
 ;; Maintainer: Eduardo Ochs 
-;; Version:20210511
+;; Version:20210521
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: 
@@ -41,6 +41,16 @@
 ;; It depends on the package "hydra".
 ;; I need to record a short video about this.
 ;; This code will probably change a LOT in the next months.
+;; Update: I recorded a video, it's here:
+;;
+;;   http://angg.twu.net/eev-videos/2021-05-20_hydra_ei.mp4
+;;  (find-eevvideo-links "hydraei" "2021-05-20_hydra_ei")
+
+
+
+;; «.hydra-eev-index-edit» (to "hydra-eev-index-edit")
+;; «.find-eev-index-edit-intro»(to "find-eev-index-edit-intro")
+
 
 
 ;; See: https://github.com/abo-abo/hydra
@@ -51,22 +61,27 @@
 
 
 
+(defalias 'ei 'eev-index-edit)
+
+(defun eev-index-edit ()
+  "Call `eev-index-edit/body' to edit the index."
+  (interactive)
+  (hydra-eev-index-edit/body))
+
 (defun eev-index-replace (from-string to-string)
   "Replace FROM-STRING to TO-STRING in the current line."
   (search-forward from-string (ee-eol))
   (replace-match to-string)
   (eek "C-a"))
 
-(defun eev-index-edit ()
-  "Call `eev-index-edit/body' to edit the index."
-  (interactive)
-  ;;
-  ;; Definition of the hydra:
-  ;;
-  (defhydra hydra-eev-index-edit (:color green :hint nil)
+
+
+;; «hydra-eev-index-edit»  (to ".hydra-eev-index-edit")
+;;
+(defhydra hydra-eev-index-edit (:color green :hint nil)
   "
-_q_:quit   _0_: delthiswindow
- werty:  _u_:prev_i_:insert  _o_:other window  _p_:prev
+_q_:quit_0_: delthiswindow
+ werty:  _u_:prev_i_:insert  _o_:second window  _p_:prev
 asdfgh:  _j_:next_k_:kill_l_:eval
  ^ ^ _,_:adj<-   _._:adj->
 Standard usage: _k__o__p__l__i__0_q
@@ -92,14 +107,125 @@ Use `_,_'s and `_._'s between the `_i_' and the `_0_' to 
adjust the `(to ...)'.\
   ("<"  (eek "M-<"))
   ("M-<"(eek "M-<"))
   ("q"  nil))
-  ;;
-  ;; End of the definition of the hydra.
-  ;;
-  ;; Call the hydra:
-  (hydra-eev-index-edit/body)
-  )
 
-(defalias 'ei 'eev-index-edit)
+
+
+
+
+;; «find-eev-index-edit-intro»  (to ".find-eev-index-edit-intro")
+;; Skel: (find-intro-links "eev-index-edit")
+
+(defun find-eev-index-edit-intro (&rest pos-spec-list) (interactive)
+  (let ((ee-buffer-name "*(find-eev-index-edit-intro)*"))
+(apply 'find-eintro "\
+\(Re)generate: (find-eev-index-edit-intro)
+Source code:  (find-efunction 'find-eev-index-edit-intro)
+More intros:  (find-eev-quick-intro)
+  (find-eev-intro)
+  (find-eepitch-intro)
+This buffer is _temporary_ and _editable_.
+It is meant as both a tutorial and a sandbox.
+
+
+
+This is \"intro\" is a sandboxed tutorial for:
+
+  (find-eev \"eev-hydras.el\")
+  (find-refining-intro \"5. Pointing to anchors\")
+  (find-refining-intro \"5. Pointing to anchors\" \"but I don't touch-type\")
+
+In these sections about anchors in the main tutorial - see:
+
+  (find-eev-quick-intro \"8.3. Creating index/section anchor pairs\")
+  (find-eev-quick-intro \"8.4. Creating e-script blocks\")
+
+I said that I organize the indexes of my e-script files - like:
+
+  (find-wget \"http://angg.twu.net/e/youtube.e\";)
+  http://angg.twu.net/e/youtube.e.html
+
+by hand. This was true until april 2021, when I wrote a hydra for
+that and started to play with it.
+
+Remember that many functions in eev create temporary buffers that
+have many lines, or blocks of lines, that can be used to perfor

[elpa] externals/eev e1b54fd 1/4: Fixed a bug in `ee-insert' and `find-einsert'.

2021-05-29 Thread ELPA Syncer
branch: externals/eev
commit e1b54fd4c354970f568f9f00c1d7482c2ee1ea1b
Author: Eduardo Ochs 
Commit: Eduardo Ochs 

Fixed a bug in `ee-insert' and `find-einsert'.
---
 ChangeLog | 10 ++
 VERSION   |  4 ++--
 eev-blinks.el | 31 +--
 eev-intro.el  | 25 ++---
 eev-tlinks.el | 31 ++-
 5 files changed, 89 insertions(+), 12 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 25fda08..c5c698c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2021-05-16  Eduardo Ochs  
+
+   * eev-blinks.el (ee-insert): use `characterp' instead of
+   `char-valid-p'.
+
+2021-05-13  Eduardo Ochs  
+
+   * eev-blinks.el (ee-goto-position, ee-goto-rest): added a comment
+   about curved single quotes.
+
 2021-05-12  Eduardo Ochs  
 
* eev-audiovideo.el (find-eevvlinksvideo): new function.
diff --git a/VERSION b/VERSION
index 5c4443e..b05a4ac 100644
--- a/VERSION
+++ b/VERSION
@@ -1,2 +1,2 @@
-Wed May 12 15:58:21 GMT 2021
-Wed May 12 12:58:21 -03 2021
+Sun May 16 07:50:08 GMT 2021
+Sun May 16 04:50:08 -03 2021
diff --git a/eev-blinks.el b/eev-blinks.el
index 6340edc..c1d870e 100644
--- a/eev-blinks.el
+++ b/eev-blinks.el
@@ -2,7 +2,7 @@
 ;; The basic hyperlinks are the ones that do not depend on templates,
 ;; and that are not created by `code-c-d' and friends.
 
-;; Copyright (C) 1999-2020 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2021 Free Software Foundation, Inc.
 ;;
 ;; This file is part of GNU eev.
 ;;
@@ -21,7 +21,7 @@
 ;;
 ;; Author: Eduardo Ochs 
 ;; Maintainer: Eduardo Ochs 
-;; Version:20201229
+;; Version:20210516
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: 
@@ -44,6 +44,7 @@
 ;; «.eek»  (to "eek")
 ;; «.ee-goto-position» (to "ee-goto-position")
 ;; «.ee-goto-rest» (to "ee-goto-rest")
+;;   «.curved-single-quotes»   (to "curved-single-quotes")
 ;; «.find-fline»   (to "find-fline")
 ;; «.find-wottb»   (to "find-wottb")
 ;; «.find-efaces»  (to "find-efaces")
@@ -120,8 +121,8 @@ An example: (eek \"C-x 4 C-h\")"
 ;;;
 ;; «ee-goto-position»  (to ".ee-goto-position")
 ;; Support for pos-spec-lists in hyperlinks.
-;; See: (find-eval-intro "6. Refining hyperlinks")
-;;  (find-refining-intro "1. Pos-spec-lists")
+;; See: (find-refining-intro "1. Pos-spec-lists")
+;;  (find-refining-intro "2. Refining hyperlinks")
 
 (defun ee-goto-position (&optional pos-spec &rest rest)
   "Process the \"absolute pos-spec-lists\" arguments in hyperlink functions.
@@ -156,7 +157,7 @@ they skip the first \"absolute\" pos-spec."
 (if rest (ee-goto-rest rest
 
 ;; «ee-goto-rest»  (to ".ee-goto-rest")
-;; See: (find-eval-intro "7. Pos-spec-lists")
+;; See: (find-refining-intro "1. Pos-spec-lists")
 ;;
 (defun ee-goto-rest (list)
   "Process \"relative pos-spec-lists\".
@@ -183,6 +184,24 @@ the standard definition."
(t (error "Not a valid pos-spec item: %S" (car list)
 
 
+;; «curved-single-quotes»  (to ".curved-single-quotes")
+;; In some situations Emacs converts "`foo'"s to "‘foo’"s, or
+;; vice-versa, in info pages and docstrings; see:
+;;
+;;   (find-elnode "Keys in Documentation" "User Option: text-quoting-style")
+;;   (find-elnode "Text Quoting Style""User Option: text-quoting-style")
+;;   (find-elnode "Text Quoting Style" "curved single quotes")
+;;   (find-elnode "Text Quoting Style" "grave accent and apostrophe")
+;;   (find-efunction  'eejump "find-eejumps")
+;;   (find-efunctiondescr 'eejump "find-eejumps")
+;;
+;; Eev doesn't have a way to convert strings in pos-spec-lists between
+;; these styles yet; at this moment `ee-goto-position' and
+;; `ee-goto-rest' do the simplest thing possible - they search for
+;; their string arguments literally with `search-forward'.
+
+
+
 
 
 ;;;   __ _   ___ _ _
@@ -995,7 +1014,7 @@ Example: (ee-insert '(?a ?z) 10 \"Foo!\")"
   (while rest
 (let ((o (car rest)))
   (cond ((stringp o) (insert o))
-   ((numberp o) (if (char-valid-p o) (insert o)))
+   ((numberp o) (if (characterp o) (insert o)))
((consp o) (mapc 'ee-insert (apply 'number-sequence o)))
(t (error "Not string/int/pair: %S" o
 (setq rest (cdr rest
diff --git a/eev-intro.el b/eev-intro.el
index 0e364eb..3f0db7c 100644
--- a/eev-intro.el
+++ b/eev-intro.el
@@ -2810,6 +2810,11 @@ what you do, in a format that is reasonably readable and 
that is
 easy to \"play back\" later, step by step and in any order. We
 call these executable logs, or executable notes, \"e-scripts\".
 
+[Video links:]
+  (find-eev2019video \"5:41\" \"e-scripts\")
+  (find-eev2019video \"12:54\" \"A demo\")
+
+
 
 
 
@@ -2921,6 +2926,12 @@ back\" from that buffer with `M-k' of `M-K':
   (find-eval-intro \"5. Going back\")
 
 
+[Video links:]
+  (find-eev2020video \"2:25\" \"vari

[elpa] externals/eev 9a88596 3/4: Bumped the version number in eev.el.

2021-05-29 Thread ELPA Syncer
branch: externals/eev
commit 9a885962ac41d8d401ea0061971a2d5a5cd7daf3
Author: Eduardo Ochs 
Commit: Eduardo Ochs 

Bumped the version number in eev.el.
---
 VERSION | 4 ++--
 eev.el  | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/VERSION b/VERSION
index 70ea30e..455d5fb 100644
--- a/VERSION
+++ b/VERSION
@@ -1,2 +1,2 @@
-Sat May 22 19:31:36 GMT 2021
-Sat May 22 16:31:36 -03 2021
+Sat May 22 19:36:43 GMT 2021
+Sat May 22 16:36:43 -03 2021
diff --git a/eev.el b/eev.el
index 31d5dd8..b804498 100644
--- a/eev.el
+++ b/eev.el
@@ -6,7 +6,7 @@
 ;; Package-Requires: ((emacs "24.4"))
 ;; Keywords: lisp e-scripts
 ;; URL: http://angg.twu.net/#eev
-;; Version: 20210512
+;; Version: 20210522
 
 ;; 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



[elpa] externals/eev 615e832 4/4: Make "eev-rcirc.el" support the LiberaChat server.

2021-05-29 Thread ELPA Syncer
branch: externals/eev
commit 615e83260a14eed914cc31f34364cc05527c7efc
Author: Eduardo Ochs 
Commit: Eduardo Ochs 

Make "eev-rcirc.el" support the LiberaChat server.
---
 ChangeLog  | 18 ++
 VERSION|  4 +--
 eev-blinks.el  |  1 +
 eev-intro.el   | 69 +++
 eev-pdflike.el | 78 ++
 eev-rcirc.el   | 75 +--
 eev-tla.el | 18 +-
 eev.el |  2 +-
 8 files changed, 223 insertions(+), 42 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index c5c698c..3d42334 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+2021-05-28  Eduardo Ochs  
+
+   * eev-pdflike.el (find-pdf-page): make it an alias to
+   `find-xpdf-page'. Also, the comments in "eev-pdflike.el" now say
+   that the recommened a way to change the default viewer is with a
+   `defalias'; before this change the recommended way was with a
+   `code-pdfbackend', that was much harder to understand.
+
+   * eev-rcirc.el (ee-libera-server, ee-libera-ichannels)
+   (ee-libera-achannels): new variables.
+   (find-libera, find-libera-2a, find-libera-3a, eepitch-libera): new
+   functions.
+
+   * eev-intro.el (find-rcirc-intro): use LiberaChat insted of
+   Freenode.
+
+   * eev-tla.el: new file.
+
 2021-05-16  Eduardo Ochs  
 
* eev-blinks.el (ee-insert): use `characterp' instead of
diff --git a/VERSION b/VERSION
index 455d5fb..0bdc9ca 100644
--- a/VERSION
+++ b/VERSION
@@ -1,2 +1,2 @@
-Sat May 22 19:36:43 GMT 2021
-Sat May 22 16:36:43 -03 2021
+Sat May 29 04:31:39 GMT 2021
+Sat May 29 01:31:39 -03 2021
diff --git a/eev-blinks.el b/eev-blinks.el
index c1d870e..4a2b803 100644
--- a/eev-blinks.el
+++ b/eev-blinks.el
@@ -1021,6 +1021,7 @@ Example: (ee-insert '(?a ?z) 10 \"Foo!\")"
 
 ;; Tests: (find-einsert '((32 1000) 10 (8000 12000)))
 ;;(find-einsert '("Greek:\n" (913 969) 10 "Bold:\n" (120276 120327)))
+;;(find-einsert (list (char-from-name "MUSICAL SYMBOL C CLEF")))
 (defun find-einsert (what &rest rest)
 "Show characters, strings, and ranges of characters in a temporary buffer.
 Example of use: (find-einsert '((32 1000) 10 (8000 12000)))"
diff --git a/eev-intro.el b/eev-intro.el
index 31a72be..8ab764a 100644
--- a/eev-intro.el
+++ b/eev-intro.el
@@ -19,7 +19,7 @@
 ;;
 ;; Author: Eduardo Ochs 
 ;; Maintainer: Eduardo Ochs 
-;; Version:20210512
+;; Version:20210529
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://angg.twu.net/eev-current/eev-intro.el>
@@ -8914,8 +8914,13 @@ support for rcirc (and no support for ERC).
 
 The eev support for rcirc consists mainly of three high-level
 functions that connect to Freenode (the IRC server where most
-discussion of free software projects happen), called
-`find-freenode', `find-freenode-2a' and `find-freenode-3a'.
+discussion of free software projects USED TO happen), and three
+high-level functions that connect to LiberaChat (the IRC server
+where most discussion of free software projects were moved to).
+These functions are called:
+
+  `find-freenode', `find-freenode-2a' and `find-freenode-3a',
+  `find-libera', `find-libera-2a' and `find-libera-3a'.
 
 For a good explanation of what IRC is, see:
 
@@ -8929,21 +8934,21 @@ For a good explanation of what IRC is, see:
 Let's start with an example. In
 
   (setq rcirc-default-nick \"hakuryo\")
-  (setq ee-freenode-ichannels \"#eev\")
-  (find-freenode-3a \"#eev\")
+  (setq ee-libera-ichannels \"#eev\")
+  (find-libera-3a \"#eev\")
 
 the first sexp tells rcirc to use the nickname \"hakuryo\" when
 connecting to an IRC server; the second sets the set of \"initial
-channels\" on Freenode to just one channel, #eev - a channel that
-is usually empty, but that doesn't require authentication; the
-third sexp is a \"sexp hyperlink to the Freenode channel #eev\".
-The third sexp:
+channels\" on LiberaChat to just one channel, #eev - a channel
+that is usually empty, but that doesn't require authentication;
+the third sexp is a \"sexp hyperlink to the LiberaChat channel
+#eev\". The third sexp:
 
   1) creates a window setting like this,
 
_
   |   | |
-  |   |   Freenode  |
+  |   |  LiberaChat |
   |   |server   |
   |   |   messages  |
   |  current  |_|
@@ -8953,7 +8958,7 @@ The third sexp:
   |   | |
   |___|_|
 
-  2) tells rcirc to connect to Freenode and to the channel #eev
+  2) tells rcirc to connect to LiberaChat and to 

[elpa] main 7f3cc09: * elpa-packages (consult, corfu, marginalia, vertico): Auto-sync

2021-05-29 Thread monnier--- via
branch: main
commit 7f3cc097d517d30f862f9d6ce54a7b891627f382
Author: Stefan Monnier 
Commit: Stefan Monnier 

* elpa-packages (consult, corfu, marginalia, vertico): Auto-sync
---
 elpa-packages | 10 ++
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/elpa-packages b/elpa-packages
index 4b2a745..c04d305 100644
--- a/elpa-packages
+++ b/elpa-packages
@@ -95,10 +95,11 @@
  ("company-ebdb"   :url nil)
  ("company-math"   :url "https://github.com/vspinu/company-math.git";)
  ("company-statistics" :url 
"https://github.com/company-mode/company-statistics";)
- ("consult":url "https://github.com/minad/consult";)
+ ("consult":url "https://github.com/minad/consult";
+  :auto-sync t)
  ("context-coloring"   :url 
"https://github.com/jacksonrayhamilton/context-coloring.git";)
  ("corfu"  :url "https://github.com/minad/corfu";
-  :doc "README.org")
+  :doc "README.org" :auto-sync t)
  ("counsel":url "https://github.com/abo-abo/swiper";)
  ("cpio-mode"  :url "https://github.com/dlewan/cpio-mode";)
  ("crisp"  :url nil)
@@ -214,7 +215,8 @@
  ("loc-changes":url 
"https://github.com/rocky/emacs-loc-changes";)
  ("loccur" :url "https://github.com/fourier/loccur";)
  ("map" :core "lisp/emacs-lisp/map.el")
- ("marginalia" :url "https://github.com/minad/marginalia";)
+ ("marginalia" :url "https://github.com/minad/marginalia";
+  :auto-sync t)
  ("markchars"  :url nil)
  ("math-symbol-lists"  :url "https://github.com/vspinu/math-symbol-lists.git";)
  ("memory-usage"   :url nil)
@@ -385,7 +387,7 @@
  ("vlf":url "https://github.com/m00natic/vlfi";)
  ("verilog-mode":core "lisp/progmodes/verilog-mode.el")
  ("vertico":url "https://github.com/minad/vertico";
-  :doc "README.org")
+  :doc "README.org" :auto-sync t)
  ("wcheck-mode":url "https://github.com/tlikonen/wcheck-mode";)
  ("wconf"  :url "https://github.com/ilohmar/wconf";)
  ("web-server" :url "https://github.com/eschulte/emacs-web-server.git";)



[elpa] externals/consult 34e4a8f 2/2: Update changelog

2021-05-29 Thread ELPA Syncer
branch: externals/consult
commit 34e4a8f06dd543cafa7b1fd2ef12da93b2390149
Author: Daniel Mendler 
Commit: Daniel Mendler 

Update changelog
---
 CHANGELOG.org | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/CHANGELOG.org b/CHANGELOG.org
index 1d4d0ae..a208fef 100644
--- a/CHANGELOG.org
+++ b/CHANGELOG.org
@@ -19,6 +19,9 @@
 - Deprecate =consult-config= in favor of new =consult-customize= macro.
 - =consult-buffer=: Enable previews for files and bookmarks by default.
 - =consult-buffer=/=consult--multi=: Add support for =:preview-key= per source.
+- =consult-buffer=: Push visible buffers down in the buffer list.
+- =consult-flycheck=: Moved to separate repository prior to ELPA submission.
+- Submitted Consult to ELPA.
 
 * Version 0.7 (2021-04-29)
 



[elpa] externals/consult 2d5cde7 1/2: consult-buffer: Push visible buffers further down the list (Fix #320)

2021-05-29 Thread ELPA Syncer
branch: externals/consult
commit 2d5cde707ad609d95954ae84d5a04fccc77ec89f
Author: Daniel Mendler 
Commit: Daniel Mendler 

consult-buffer: Push visible buffers further down the list (Fix #320)
---
 consult.el | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/consult.el b/consult.el
index 6c7e9b8..0453ed9 100644
--- a/consult.el
+++ b/consult.el
@@ -3289,7 +3289,11 @@ The command supports previewing the currently selected 
theme."
 ; Command: consult-buffer
 
 (consult--define-cache consult--cached-buffers
-  (nconc (delq (current-buffer) (buffer-list)) (list (current-buffer
+  (let ((buffers (delq (current-buffer) (buffer-list)))
+(visible-p (lambda (x) (get-buffer-window x 'visible
+(nconc (seq-remove visible-p buffers)
+   (seq-filter visible-p buffers)
+   (list (current-buffer)
 
 (consult--define-cache consult--cached-buffer-names
   (mapcar #'buffer-name (consult--cached-buffers)))



[elpa] externals/vertico f47b8bb: Update readme

2021-05-29 Thread ELPA Syncer
branch: externals/vertico
commit f47b8bbb34307e0aef896dcffd39fe9cb3572796
Author: Daniel Mendler 
Commit: Daniel Mendler 

Update readme
---
 README.org | 37 +++--
 vertico.el |  7 +++
 2 files changed, 26 insertions(+), 18 deletions(-)

diff --git a/README.org b/README.org
index f0b7a52..c1e6f59 100644
--- a/README.org
+++ b/README.org
@@ -11,11 +11,13 @@
 * Introduction
 
 Vertico provides a minimalistic vertical completion UI, which is based on the
-default completion system. By reusing the default system, Vertico achieves full
-compatibility with built-in Emacs commands and completion tables. Vertico is
-pretty bare-bone and comes with only a minimal set of commands. The code base 
is
-small (~500 lines of code without whitespace and comments). Additional
-enhancements can be installed separately via complementary packages.
+default completion system. By reusing the built-in facilities system, Vertico
+achieves full compatibility with built-in Emacs commands and completion tables.
+Vertico only provides the completion UI and comes with only a minimal set of
+commands. The code base is small and maintainable (~500 lines of code without
+whitespace and comments).
+
+Additional enhancements can be installed separately via complementary packages.
 
 * Features
 
@@ -160,13 +162,15 @@ the same spirit as Vertico.
 * Alternatives
 
 There are many alternative completion UIs, each UI with its own advantages and
-disadvantages. The [[https://github.com/raxod502/selectrum][Selectrum readme]] 
gives an extensive comparison of many
-available completion systems from the perspective of Selectrum.
+disadvantages.
 
-Vertico aims to be fully compliant with all Emacs commands and achieves that
-with a minimal code base, relying purely on ~completing-read~ while avoiding to
+Vertico aims to be 100% compliant with all Emacs commands and achieves that 
with
+a minimal code base, relying purely on ~completing-read~ while avoiding to
 invent its own APIs. Inventing a custom API as Helm or Ivy is explicitly 
avoided
-in order to increase flexibility and package reuse.
+in order to increase flexibility and package reuse. Due to its small code base
+and reuse of the Emacs built-in facilities, bugs are less likely to occur in
+comparison to completion UIs or full completion systems, which reimplement a 
lot
+of functionality.
 
 Since Vertico only provides the UI, you may want to combine it with some of the
 complementary packages, to give a full-featured completion experience similar 
to
@@ -175,16 +179,21 @@ to their liking - completion plays an integral part in 
how the users interacts
 with Emacs. There are at least two other interactive completion UIs, which
 follow a similar philosophy:
 
-- [[https://github.com/raxod502/selectrum][Selectrum]]: If you are looking for 
a less minimalistic and more full-featured
-  (but also more complex) package, you may be interested in Selectrum, which 
has
-  a similar UI as Vertico. Additionally Selectrum supports Avy-style quick 
keys,
-  a horizontal display and a configurable buffer display.
+- [[https://github.com/raxod502/selectrum][Selectrum]]: If you are looking for 
a less minimalistic
+  (but more complex) package, you may be interested in Selectrum, which has a
+  similar UI as Vertico. Additionally Selectrum supports Avy-style quick keys, 
a
+  horizontal display and a configurable buffer display. On the other hand,
+  Selectrum is not not yet fully compatible with every Emacs completion command
+  ([[https://github.com/raxod502/selectrum/issues/481][Issue #481]]).
 - [[https://github.com/oantolin/icomplete-vertical][Icomplete-vertical]]: This 
package enhances the Emacs builtin Icomplete with a
   vertical display. In contrast to Vertico, the candidates are rotated such 
that
   the current candidate always appears at the top. From my perspective,
   candidate rotation feels a bit less intuitive than the UI of Vertico or
   Selectrum. Note that Emacs 28 offers a built-in ~icomplete-vertical-mode~.
 
+See also the [[https://github.com/raxod502/selectrum][Selectrum readme]], 
which gives an extensive comparison of many
+available completion systems from the perspective of Selectrum.
+
 * Problematic completion commands
 
   Vertico works well and is robust in most scenarios. However a few completion
diff --git a/vertico.el b/vertico.el
index 668827a..d5d7516 100644
--- a/vertico.el
+++ b/vertico.el
@@ -27,10 +27,9 @@
 ;;; Commentary:
 
 ;; Vertico provides a minimalistic vertical completion UI, which is
-;; based on the default completion system. By reusing the default
-;; system, Vertico achieves full compatibility with built-in Emacs
-;; commands and completion tables. Vertico is pretty bare-bone and
-;; comes with only a minimal set of commands.
+;; based on the default completion system. By reusing the built-in
+;; facilities, Vertico achieves full compatibility with built-in Emacs
+;; commands and completion tables.
 
 ;;; Code:
 

[elpa] externals/consult updated (d214c27 -> 34e4a8f)

2021-05-29 Thread ELPA Syncer
elpasync pushed a change to branch externals/consult.

  from  d214c27   consult-flymake: Fix status indicator
   new  2d5cde7   consult-buffer: Push visible buffers further down the 
list (Fix #320)
   new  34e4a8f   Update changelog


Summary of changes:
 CHANGELOG.org | 3 +++
 consult.el| 6 +-
 2 files changed, 8 insertions(+), 1 deletion(-)



[elpa] externals/hyperbole updated (a6a25b8 -> ff41854)

2021-05-29 Thread ELPA Syncer
elpasync pushed a change to branch externals/hyperbole.

  from  a6a25b8   Add kotl-mode tests (#95)
   new  f271ade   Fix hpath:expand when no match for variable in path
   new  3541e4a   Merge branch 'master' of hyperbole
   new  b11bd83   Add ebut create tests (#96)
   new  ff41854   Merge branch 'master' of hyperbole


Summary of changes:
 ChangeLog  |  28 ++
 hact.el|  22 
 hbut.el|   4 +-
 hpath.el   | 157 -
 hypb.el|  28 ++
 hyrolo.el  |   5 +-
 kotl/kexport.el|   2 +-
 kotl/kotl-mode.el  |  11 ++--
 kotl/kview.el  |  33 ++-
 test/hbut-tests.el |   2 +-
 test/hui-tests.el  |  62 +
 11 files changed, 232 insertions(+), 122 deletions(-)



[elpa] externals/hyperbole 3541e4a 3/4: Merge branch 'master' of hyperbole

2021-05-29 Thread ELPA Syncer
branch: externals/hyperbole
commit 3541e4a63b383ecfa6801e59fc10f835cc1a3b58
Merge: f271ade a6a25b8
Author: Bob Weiner 
Commit: Bob Weiner 

Merge branch 'master' of hyperbole
---
 ChangeLog   |  11 +++
 test/kotl-mode-tests.el | 225 
 2 files changed, 236 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index 312613d..0186a9d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -20,6 +20,17 @@
 small remainder when cells at level 1 have labels longer
 than the allowed indent.
 
+2021-05-24  Mats Lidell  
+
+* test/kotl-mode-tests.el (kotl-mode-extension-open-buffer-in-kotl-mode)
+(kotl-mode-set-view-with-kbd, kotl-mode-idstamp-saved-with-file)
+(kotl-mode-demote-keeps-idstamp, kotl-mode-demote-change-label)
+(kotl-mode-views, kotl-mode-move-cell-before-cell)
+(kotl-mode-move-cell-after-cell, kotl-mode-copy-cell-after-cell)
+(kotl-mode-copy-cell-before-cell, kotl-mode-jump-to-cell)
+(kotl-mode-goto-child-and-parent, kotl-mode-kill-cell): Add kotl-mode
+tests.
+
 2021-05-23  Bob Weiner  
 
 * kotl/kotl-mode.el (kotl-mode:beginning-of-buffer,
diff --git a/test/kotl-mode-tests.el b/test/kotl-mode-tests.el
index 36c0d39..28f43fc 100644
--- a/test/kotl-mode-tests.el
+++ b/test/kotl-mode-tests.el
@@ -82,6 +82,231 @@
;; Cleanup
(set-buffer-modified-p nil)))
 
+(ert-deftest kotl-mode-extension-open-buffer-in-kotl-mode ()
+  "When a file with kotl extension is created it enters kotl mode."
+  (let ((kotl-file (make-temp-file "hypb" nil ".kotl" "hej")))
+(unwind-protect
+(progn
+  (find-file kotl-file)
+  (should (equal major-mode 'kotl-mode)))
+  (delete-file kotl-file
+
+(ert-deftest kotl-mode-set-view-with-kbd ()
+  "When the view mode is changed the label is changed too."
+  (skip-unless (not noninteractive))
+  (let ((kotl-file (make-temp-file "hypb" nil ".kotl")))
+(unwind-protect
+(progn
+  (find-file kotl-file)
+  (should (string= (kcell-view:label (point)) "1"))
+  (should (hact 'kbd-key "C-c C-v 0 RET"))
+  (hy-test-helpers:consume-input-events)
+  (should (eq (kview:label-type kview) 'id))
+  (should (string= (kcell-view:label (point)) "01")))
+  (delete-file kotl-file
+
+(ert-deftest kotl-mode-idstamp-saved-with-file ()
+  "The active view mode is saved with the buffer."
+  (let ((kotl-file (make-temp-file "hypb" nil ".kotl")))
+(unwind-protect
+(progn
+  (find-file kotl-file)
+
+  ;; Verify default label
+  (should (string= (kcell-view:label (point)) "1"))
+
+  ;; Verify idstamp label
+  (kvspec:activate "ben0")
+  (should (eq (kview:label-type kview) 'id))
+  (should (string= (kcell-view:idstamp) "01"))
+  (should (string= (kcell-view:label (point)) "01"))
+
+  ;; Verify idstamp view is active when file is visited next time.
+  (set-buffer-modified-p t)
+  (save-buffer)
+  (kill-buffer)
+  (find-file kotl-file)
+  (should (eq (kview:label-type kview) 'id))
+  (should (string= (kcell-view:idstamp) "01"))
+  (should (string= (kcell-view:label (point)) "01")))
+  (delete-file kotl-file
+
+(ert-deftest kotl-mode-demote-keeps-idstamp ()
+  "When tree is demoted the idstamp label is not changed."
+  (let ((kotl-file (make-temp-file "hypb" nil ".kotl")))
+(unwind-protect
+(progn
+  (find-file kotl-file)
+  (kotl-mode:add-cell)
+
+  ;; Verify default label
+  (should (string= (kcell-view:idstamp) "02"))
+  (should (string= (kcell-view:label (point)) "2"))
+
+  ;; Verify idstamp label
+  (kvspec:activate "ben0")
+  (should (string= (kcell-view:idstamp) "02"))
+  (should (string= (kcell-view:label (point)) "02"))
+
+  ;; Verify demote does not change idstamp label
+  (kotl-mode:demote-tree 0)
+  (should (string= (kcell-view:idstamp) "02"))
+  (should (string= (kcell-view:label (point)) "02")))
+  (delete-file kotl-file
+
+(ert-deftest kotl-mode-demote-change-label ()
+  "When tree is demoted the label is changed."
+  (let ((kotl-file (make-temp-file "hypb" nil ".kotl")))
+(unwind-protect
+(progn
+  (find-file kotl-file)
+  (kotl-mode:add-cell)
+
+  ;; Verify default label
+  (should (string= (kcell-view:label (point)) "2"))
+
+  ;; Verify demote change label
+  (kotl-mode:demote-tree 0)
+  (should (string= (kcell-view:label (point)) "1a")))
+  (delete-file kotl-file
+
+(ert-deftest kotl-mode-label-type-activation ()
+  "Kotl-mode test label type activation."
+  (let ((kotl-file (make-temp-file "hypb" nil ".kotl")))
+(unwind-protect
+(progn
+  (find-file kotl-file)
+  (kotl-mode:add-cell)
+  (kotl-mode:demote-tree 0)
+
+  (should (

[elpa] externals/hyperbole f271ade 2/4: Fix hpath:expand when no match for variable in path

2021-05-29 Thread ELPA Syncer
branch: externals/hyperbole
commit f271adec7faa70a2927c692acf0323b15953fdd1
Author: Bob Weiner 
Commit: Bob Weiner 

Fix hpath:expand when no match for variable in path

Fix some cases of symtable:actype-p and symtable:ibtype-p

Improve koutline indent handling in kview.el
---
 ChangeLog  |  22 
 hact.el|  22 
 hbut.el|   4 +-
 hpath.el   | 157 -
 hypb.el|  28 ++
 hyrolo.el  |   5 +-
 kotl/kexport.el|   2 +-
 kotl/kotl-mode.el  |  11 ++--
 kotl/kview.el  |  33 ++-
 test/hbut-tests.el |   2 +-
 10 files changed, 164 insertions(+), 122 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index ceeff3b..312613d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,25 @@
+2021-05-27  Bob Weiner  
+
+* hpath.el (hpath:expand-with-variable): Fix to not add variable
+to path if already in the path.
+   (hpath:substitute-match-value): Return STR unchanged
+if no value substituted for any variable name.
+
+* hbut.el (ebut:program, hbut:action):
+  hact.el (actype:action, actype:doc): Handle lambdas properly.
+
+* hact.el (symtable:actype-p, symtable:ibtype-p): Return nil if
+arg is not a symbol or string, e.g. a lambda.
+
+2021-05-25  Bob Weiner  
+
+* kotl/kotl-mode.el (kotl-mode:to-valid-position): Removed one
+unused setting of 'indent'.
+
+* kotl/kview.el (kcell-view:level): Use 'floor' to ignore any
+small remainder when cells at level 1 have labels longer
+than the allowed indent.
+
 2021-05-23  Bob Weiner  
 
 * kotl/kotl-mode.el (kotl-mode:beginning-of-buffer,
diff --git a/hact.el b/hact.el
index 3f957f1..5eb1d3b 100644
--- a/hact.el
+++ b/hact.el
@@ -111,11 +111,13 @@ keys is the Elisp symbol for the type, which includes the 
prefix.")
 
 (defsubst symtable:actype-p (symbol-or-name)
   "Return the Elisp symbol given by SYMBOL-OR-NAME if it is a Hyperbole action 
type name, else nil."
-  (symtable:get symbol-or-name symtable:actypes))
+  (when (or (symbolp symbol-or-name) (stringp symbol-or-name))
+(symtable:get symbol-or-name symtable:actypes)))
 
 (defsubst symtable:ibtype-p (symbol-or-name)
   "Return the Elisp symbol given by SYMBOL-OR-NAME if it is a Hyperbole 
implicit button type name, else nil."
-  (symtable:get symbol-or-name symtable:ibtypes))
+  (when (or (symbolp symbol-or-name) (stringp symbol-or-name))
+(symtable:get symbol-or-name symtable:ibtypes)))
 
 (defunsymtable:add (symbol-or-name symtable)
   "Add Hyperbole SYMBOL-OR-NAME to existing SYMTABLE.
@@ -455,13 +457,14 @@ performing ACTION."
 ACTYPE may be a Hyperbole actype or Emacs Lisp function."
   (let (actname
action)
-(if (stringp actype)
-   (setq actname actype
- actype (intern actype))
-  (setq actname (symbol-name actype)))
+(cond ((stringp actype)
+  (setq actname actype
+actype (intern actype)))
+ ((and actype (symbolp actype))
+  (setq actname (symbol-name actype
 (setq actype (or (symtable:actype-p actname) actype)
  action (htype:body actype))
-(if (fboundp actype)
+(if (functionp actype)
actype
   action)))
 
@@ -515,14 +518,13 @@ Return nil when no documentation."
 (but-type (hattr:get hbut 'categ))
 (sym-p (and act (symbolp act)))
 (end-line) (doc))
-(cond ((and but-type (fboundp but-type)
+(cond ((and (functionp but-type)
(setq doc (htype:doc but-type)))
   ;; Is an implicit button, so use its doc string if any.
   )
  (sym-p
   (setq doc (htype:doc act
-(if (null doc)
-   nil
+(when doc
   (setq doc (substitute-command-keys doc))
   (or full (setq end-line (string-match "[\n]" doc)
 doc (substring doc 0 end-line
diff --git a/hbut.el b/hbut.el
index 2e4bc75..7f48fb7 100644
--- a/hbut.el
+++ b/hbut.el
@@ -429,7 +429,7 @@ For interactive creation, use `hui:ebut-create' instead."
(hattr:set 'hbut:current 'loc (hui:key-src but-buf))
(hattr:set 'hbut:current 'dir (hui:key-dir but-buf))
 (if (or (and actype-sym (fboundp actype-sym))
-   (fboundp ,actype))
+   (functionp ,actype))
(hattr:set 'hbut:current 'actype ,actype)
  (error "(,actype)"))
(hattr:set 'hbut:current 'args ',args)
@@ -879,7 +879,7 @@ Default is 'hbut:current."
   atype
 (or action (actype:action atype
   ;; Must be an implicit button.
-  (when (fboundp atype) atype
+  (when (functionp atype) atype
 
 (defunhbut:at-p ()
   "Return symbol for explicit or implicit Hyperbole button at point or nil.
diff --git a/hpath.el b/hpath.el
index 0cbf125..708f375 100644
--- a/hpath.el
+++ b/hpath.el
@@ -1009,10 +1009,15 @@ window in which the buffer is displayed."
 (def

[elpa] externals/hyperbole b11bd83 1/4: Add ebut create tests (#96)

2021-05-29 Thread ELPA Syncer
branch: externals/hyperbole
commit b11bd83e6c0e1c0d83b5d266d355b45562c602d4
Author: Mats Lidell 
Commit: GitHub 

Add ebut create tests (#96)
---
 ChangeLog |  6 ++
 test/hui-tests.el | 62 +++
 2 files changed, 68 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index 1880ef6..61aea44 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2021-05-29  Mats Lidell  
+
+* test/hui-tests.el (hui-ebut-create-link-to-directory)
+(hui-ebut-use-region-as-label, hui-ebut-www-link)
+(hui-ebut-create-exec-shell-cmd): ebut create tests.
+
 2021-05-24  Mats Lidell  
 
 * test/kotl-mode-tests.el (kotl-mode-extension-open-buffer-in-kotl-mode)
diff --git a/test/hui-tests.el b/test/hui-tests.el
index 29c70c1..c513e93 100644
--- a/test/hui-tests.el
+++ b/test/hui-tests.el
@@ -18,6 +18,12 @@
 (require 'ert)
 (require 'with-simulated-input)
 
+(load (expand-file-name "hy-test-helpers"
+(file-name-directory (or load-file-name
+ default-directory
+(declare-function hy-test-helpers:consume-input-events "hy-test-helpers")
+
+
 (ert-deftest hui-ibut-label-create ()
   "Create a label for an implicit button."
   (with-temp-buffer
@@ -40,5 +46,61 @@
(should (equal (car err) 'error))
(should (string-match "ibutton at point already has a label" (cadr 
err)
 
+(ert-deftest hui-ebut-create-link-to-directory ()
+  "Create an ebut with link-to-directory."
+  (skip-unless (not noninteractive))
+  (let ((file (make-temp-file "hypb_" nil ".txt")))
+(unwind-protect
+(progn
+  (find-file file)
+  (should (hact 'kbd-key "C-h h e c label RET RET link-to-directory 
RET RET"))
+  (hy-test-helpers:consume-input-events)
+  (should (eq (hattr:get (hbut:at-p) 'actype) 
'actypes::link-to-directory))
+  (should (equal (hattr:get (hbut:at-p) 'lbl-key) "label")))
+  (delete-file file
+
+(ert-deftest hui-ebut-use-region-as-label ()
+  "Create an ebut using region as label."
+  (skip-unless (not noninteractive))
+  (let ((file (make-temp-file "hypb_" nil ".txt" "label")))
+(unwind-protect
+(progn
+  (find-file file)
+  (beginning-of-buffer)
+  (mark-word)
+  (should (hact 'kbd-key "C-h h e c RET link-to-directory RET RET"))
+  (hy-test-helpers:consume-input-events)
+  (should (eq (hattr:get (hbut:at-p) 'actype) 
'actypes::link-to-directory))
+  (should (equal (hattr:get (hbut:at-p) 'lbl-key) "label")))
+  (delete-file file
+
+(ert-deftest hui-ebut-www-link ()
+  "Create an ebut with an url."
+  (skip-unless (not noninteractive))
+  (let ((file (make-temp-file "hypb_" nil ".txt")))
+(unwind-protect
+(progn
+  (find-file file)
+  (should (hact 'kbd-key "C-h h e c label RET RET www-url RET 
www.example.com RET"))
+  (hy-test-helpers:consume-input-events)
+  (should (eq (hattr:get (hbut:at-p) 'actype) 'actypes::www-url))
+  (should (equal (hattr:get (hbut:at-p) 'args) '("www.example.com")))
+  (should (equal (hattr:get (hbut:at-p) 'lbl-key) "label")))
+  (delete-file file
+
+(ert-deftest hui-ebut-create-exec-shell-cmd ()
+  "Create an ebut that executes a command."
+  (skip-unless (not noninteractive))
+  (let ((file (make-temp-file "hypb_" nil ".txt")))
+(unwind-protect
+(progn
+  (find-file file)
+  (should (hact 'kbd-key "C-h h e c label RET RET exec-shell-cmd RET 
ls SPC /tmp RET y RET"))
+  (hy-test-helpers:consume-input-events)
+  (should (eq (hattr:get (hbut:at-p) 'actype) 
'actypes::exec-shell-cmd))
+  (should (equal (hattr:get (hbut:at-p) 'args) '("ls /tmp" t nil)))
+  (should (equal (hattr:get (hbut:at-p) 'lbl-key) "label")))
+  (delete-file file
+
 (provide 'hui-tests)
 ;;; hui-tests.el ends here



[elpa] externals/hyperbole ff41854 4/4: Merge branch 'master' of hyperbole

2021-05-29 Thread ELPA Syncer
branch: externals/hyperbole
commit ff41854887e1cd59dc392010ae565bb7c5dfed03
Merge: 3541e4a b11bd83
Author: Bob Weiner 
Commit: Bob Weiner 

Merge branch 'master' of hyperbole
---
 ChangeLog |  6 ++
 test/hui-tests.el | 62 +++
 2 files changed, 68 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index 0186a9d..da77abc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2021-05-29  Mats Lidell  
+
+* test/hui-tests.el (hui-ebut-create-link-to-directory)
+(hui-ebut-use-region-as-label, hui-ebut-www-link)
+(hui-ebut-create-exec-shell-cmd): ebut create tests.
+
 2021-05-27  Bob Weiner  
 
 * hpath.el (hpath:expand-with-variable): Fix to not add variable
diff --git a/test/hui-tests.el b/test/hui-tests.el
index 29c70c1..c513e93 100644
--- a/test/hui-tests.el
+++ b/test/hui-tests.el
@@ -18,6 +18,12 @@
 (require 'ert)
 (require 'with-simulated-input)
 
+(load (expand-file-name "hy-test-helpers"
+(file-name-directory (or load-file-name
+ default-directory
+(declare-function hy-test-helpers:consume-input-events "hy-test-helpers")
+
+
 (ert-deftest hui-ibut-label-create ()
   "Create a label for an implicit button."
   (with-temp-buffer
@@ -40,5 +46,61 @@
(should (equal (car err) 'error))
(should (string-match "ibutton at point already has a label" (cadr 
err)
 
+(ert-deftest hui-ebut-create-link-to-directory ()
+  "Create an ebut with link-to-directory."
+  (skip-unless (not noninteractive))
+  (let ((file (make-temp-file "hypb_" nil ".txt")))
+(unwind-protect
+(progn
+  (find-file file)
+  (should (hact 'kbd-key "C-h h e c label RET RET link-to-directory 
RET RET"))
+  (hy-test-helpers:consume-input-events)
+  (should (eq (hattr:get (hbut:at-p) 'actype) 
'actypes::link-to-directory))
+  (should (equal (hattr:get (hbut:at-p) 'lbl-key) "label")))
+  (delete-file file
+
+(ert-deftest hui-ebut-use-region-as-label ()
+  "Create an ebut using region as label."
+  (skip-unless (not noninteractive))
+  (let ((file (make-temp-file "hypb_" nil ".txt" "label")))
+(unwind-protect
+(progn
+  (find-file file)
+  (beginning-of-buffer)
+  (mark-word)
+  (should (hact 'kbd-key "C-h h e c RET link-to-directory RET RET"))
+  (hy-test-helpers:consume-input-events)
+  (should (eq (hattr:get (hbut:at-p) 'actype) 
'actypes::link-to-directory))
+  (should (equal (hattr:get (hbut:at-p) 'lbl-key) "label")))
+  (delete-file file
+
+(ert-deftest hui-ebut-www-link ()
+  "Create an ebut with an url."
+  (skip-unless (not noninteractive))
+  (let ((file (make-temp-file "hypb_" nil ".txt")))
+(unwind-protect
+(progn
+  (find-file file)
+  (should (hact 'kbd-key "C-h h e c label RET RET www-url RET 
www.example.com RET"))
+  (hy-test-helpers:consume-input-events)
+  (should (eq (hattr:get (hbut:at-p) 'actype) 'actypes::www-url))
+  (should (equal (hattr:get (hbut:at-p) 'args) '("www.example.com")))
+  (should (equal (hattr:get (hbut:at-p) 'lbl-key) "label")))
+  (delete-file file
+
+(ert-deftest hui-ebut-create-exec-shell-cmd ()
+  "Create an ebut that executes a command."
+  (skip-unless (not noninteractive))
+  (let ((file (make-temp-file "hypb_" nil ".txt")))
+(unwind-protect
+(progn
+  (find-file file)
+  (should (hact 'kbd-key "C-h h e c label RET RET exec-shell-cmd RET 
ls SPC /tmp RET y RET"))
+  (hy-test-helpers:consume-input-events)
+  (should (eq (hattr:get (hbut:at-p) 'actype) 
'actypes::exec-shell-cmd))
+  (should (equal (hattr:get (hbut:at-p) 'args) '("ls /tmp" t nil)))
+  (should (equal (hattr:get (hbut:at-p) 'lbl-key) "label")))
+  (delete-file file
+
 (provide 'hui-tests)
 ;;; hui-tests.el ends here



[elpa] main ddff5cf: * elpa-packages (devdocs): New package

2021-05-29 Thread monnier--- via
branch: main
commit ddff5cf8df5edd6b6fdbc552da9549ecbc327a21
Author: Stefan Monnier 
Commit: Stefan Monnier 

* elpa-packages (devdocs): New package
---
 elpa-packages | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/elpa-packages b/elpa-packages
index c04d305..203bc07 100644
--- a/elpa-packages
+++ b/elpa-packages
@@ -115,6 +115,8 @@
  ("debbugs":url nil :doc ("debbugs.texi" "debbugs-ug.texi"))
  ("delight":url "https://git.savannah.gnu.org/r/delight.git";
   :auto-sync t)
+ ("devdocs":url "https://github.com/astoff/devdocs.el";
+  :auto-sync t)
  ("dict-tree"  :url "http://www.dr-qubit.org/git/predictive.git";)
  ("diffview":url "https://github.com/mgalgs/diffview-mode.git";)
  ("diff-hl"
@@ -182,7 +184,8 @@
   :make ("kotl/kotl-autoloads.el")
   :auto-sync t)
  ("ioccur" :url "https://github.com/thierryvolpiatto/ioccur.git";)
- ("isearch-mb" :url "https://github.com/astoff/isearch-mb";)
+ ("isearch-mb" :url "https://github.com/astoff/isearch-mb";
+  :auto-sync t)
  ("iterators"  :url nil)
  ("ivy"
   :url "https://github.com/abo-abo/swiper";



[elpa] branch externals/devdocs created (now 77f4ace)

2021-05-29 Thread ELPA Syncer
elpasync pushed a change to branch externals/devdocs.

at  77f4ace   Add a devdocs-search command, as in the old devdocs 
package

This branch includes the following new commits:

   new  71142b8   Initial commit
   new  15d95ef   Refine document management
   new  257813d   Cache document index with timeout
   new  2bc4d37   Improve lookup command
   new  ccadf08   Add a README
   new  d5c437d   Rename package
   new  77f4ace   Add a devdocs-search command, as in the old devdocs 
package




[elpa] externals/devdocs 2bc4d37 4/7: Improve lookup command

2021-05-29 Thread ELPA Syncer
branch: externals/devdocs
commit 2bc4d371e81d6e42085fd72cbdd6128316c396d1
Author: Augusto Stoffel 
Commit: Augusto Stoffel 

Improve lookup command
---
 evdocs.el | 74 +--
 1 file changed, 63 insertions(+), 11 deletions(-)

diff --git a/evdocs.el b/evdocs.el
index ca7f532..d022a33 100644
--- a/evdocs.el
+++ b/evdocs.el
@@ -55,12 +55,16 @@
   :type 'number)
 
 (defcustom evdocs-separator " » "
-  "String used to format a documentation location, e.g. in header line.")
+  "String used to format a documentation location, e.g. in header line."
+  :type 'string)
 
 (defvar evdocs--index (make-hash-table :test 'equal)
   "A hash table to cache document indices.
 To be accessed through the function `evdocs--index'.")
 
+(defvar evdocs-history nil
+  "History of documentation entries.")
+
 ;;; Documentation management
 
 (defvar evdocs--doc-metadata (make-hash-table :test 'equal)
@@ -86,18 +90,22 @@ downloaded data otherwise."
   (gethash doc evdocs--doc-metadata))
 
 (defun evdocs--doc-title (doc)
-  "Title of document with slug DOC"
+  "Title of document with slug DOC."
   (let-alist (evdocs--doc-metadata doc)
 (if .version (concat .name " " .version) .name)))
 
-(defun evdocs--read-document (prompt &optional pred multiple refresh)
-  "Query interactively for a DevDocs document."
+(defun evdocs--read-document (prompt &optional predicate multiple refresh)
+  "Query interactively for a DevDocs document.
+PROMPT and PREDICATE as `completing-read'.
+MULTIPLE, if non-nil, allows selecting multiple documents.
+REFRESH, if non-nil, downloads the DevDocs document list anew."
   (evdocs--doc-metadata nil refresh) ;; Maybe initialize and refresh
   (let (cands)
 (maphash (lambda (k _)
-   (when (or (not pred) (funcall pred k))
+   (when (or (not predicate) (funcall predicate k))
  (push (cons (evdocs--doc-title k) k) cands)))
  evdocs--doc-metadata)
+(unless cands (user-error "No documents"))
 (if multiple
 (delq nil (mapcar (lambda (s) (cdr (assoc s cands)))
   (completing-read-multiple prompt cands)))
@@ -135,18 +143,15 @@ DOC is a document slug."
  (url-hexify-string (format "%s.html" (car entry))) 
temp)
   (insert (cdr entry)
 (url-copy-file (format "%s/%s/index.json" evdocs-cdn-url doc)
-   (expand-file-name "index.json" temp))
+   (expand-file-name "index.json" temp))
 (with-temp-file (expand-file-name "metadata" temp)
   (prin1 (evdocs--doc-metadata doc) (current-buffer)))
 (rename-file temp (expand-file-name doc evdocs-data-dir) t)
 (clrhash evdocs--index)
-(message "Documentation for `%s' installed." doc)))
+(message "Installed %s documentation" (evdocs--doc-title doc
 
 ;;; Document indexes
 
-(defvar evdocs--index (make-hash-table :test 'equal)
-  "A hash table to cache document indices.")
-
 (defun evdocs--index (doc)
   "Return the index of document DOC.
 This is an alist containing `entries' and `types'."
@@ -228,7 +233,7 @@ This is an alist containing `entries' and `types'."
   (substring path 0 (string-match "#" path)))
 
 (defun evdocs--path-fragment (path)
-  "Return the fragment part of path, or nil if absent."
+  "Return the fragment part of PATH, or nil if absent."
   (when-let ((i (string-match "#" path)))
 (substring path (1+ i
 
@@ -269,6 +274,7 @@ ENTRY.path."
   (current-buffer
 
 (defun evdocs--browse-url (url &rest _)
+  "A suitable `browse-url-browser-function' for `devdocs-mode'."
   (let-alist (car evdocs--stack)
 (let* ((dest (evdocs--path-expand url .path))
(file (evdocs--path-file dest))
@@ -283,7 +289,53 @@ ENTRY.path."
   (when frag (push `(fragment . ,frag) entry))
   (evdocs--render entry
 
+;;; Lookup command
+
+(defun evdocs--entries (doc)
+  "A list of entries in DOC, as propertized strings."
+  (seq-map (lambda (it)
+ (let ((s (let-alist it
+;; Disambiguate of entries with same .name
+(format #("%s\0%c%s" 2 7
+  (invisible t rear-nonsticky t 
cursor-intangible t))
+.name .index .doc
+   (prog1 s (put-text-property 0 1 'evdocs--data it s
+   (alist-get 'entries (evdocs--index doc
+
+(defun evdocs--get-data (str)
+  "Get data stored as a string property in STR."
+  (get-text-property 0 'evdocs--data str))
+
+(defun evdocs--annotate (cand)
+  "Return an annotation for `evdocs--read-entry' candidate CAND."
+  (let-alist (evdocs--get-data cand)
+(concat " " (propertize " " 'display '(space :align-to 40))
+ (evdocs--doc-title .doc) evdocs-separator .type)))
+
+(defun evdocs--read-entry (prompt)
+  "Read the name of an entry in a document, using PROMPT.
+All entries of `evdocs-current-docs' are listed."
+  (let* ((cands 

[elpa] externals/devdocs d5c437d 6/7: Rename package

2021-05-29 Thread ELPA Syncer
branch: externals/devdocs
commit d5c437de777492d0907769f52882969ffa9eb4bc
Author: Augusto Stoffel 
Commit: Augusto Stoffel 

Rename package

Author of the existing "devdocs" package has agreed to hand over
maintainership.

See https://github.com/xuchunyang/DevDocs.el/issues/4
---
 README.md   |  19 ++--
 evdocs.el => devdocs.el | 254 
 2 files changed, 137 insertions(+), 136 deletions(-)

diff --git a/README.md b/README.md
index 675babd..a176421 100644
--- a/README.md
+++ b/README.md
@@ -1,22 +1,23 @@
-evdocs — Emacs viewer for DevDocs
-=
+devdocs.el — Emacs viewer for DevDocs
+=
 
-evdocs is a documentation viewer similar to the built-in Info browser,
-but geared towards documentation obtained from the [DevDocs] website.
+devdocs.el is a documentation viewer similar to the built-in Info
+browser, but geared towards documentation obtained from the [DevDocs]
+website.
 
-To get started, download some documentation with `M-x evdocs-install`.
+To get started, download some documentation with `M-x devdocs-install`.
 This will first query https://devdocs.io for the available documents,
 and save to disk the selected document.
 
-Once you have the desired documents at hand, call `M-x evdocs-lookup`
+Once you have the desired documents at hand, call `M-x devdocs-lookup`
 to search for entries.
 
-In any given buffer, the first call to `evdocs-lookup` will query for
+In any given buffer, the first call to `devdocs-lookup` will query for
 a list of documents to search (you can select more than one option by
 entering a comma-separated list).  This selection will be remembered
-in subsequent calls to `evdocs-lookup`, unless a prefix argument is
+in subsequent calls to `devdocs-lookup`, unless a prefix argument is
 given; in this case you can select a new list of documents.
-Alternatively, you can set the `evdocs-current-docs` variable
+Alternatively, you can set the `devdocs-current-docs` variable
 directly, say via [dir-local variables] or a mode hook:
 
 ```elisp
diff --git a/evdocs.el b/devdocs.el
similarity index 56%
rename from evdocs.el
rename to devdocs.el
index bd01a39..8ffa856 100644
--- a/evdocs.el
+++ b/devdocs.el
@@ -1,10 +1,10 @@
-;;; evdocs.el --- Emacs viewer for DevDocs -*- lexical-binding: t -*-
+;;; devdocs.el --- Emacs viewer for DevDocs -*- lexical-binding: t -*-
 
 ;; Copyright (C) 2021 Augusto Stoffel
 
 ;; Author: Augusto Stoffel 
 ;; Keywords: help
-;; URL: https://github.com/astoff/evdocs
+;; URL: https://github.com/astoff/devdocs
 ;; Package-Requires: ((emacs "27.1"))
 ;; Version: 0
 
@@ -23,14 +23,14 @@
 
 ;;; Commentary:
 
-;; evdocs is a documentation viewer similar to Emacs's built-in Info
+;; devdocs is a documentation viewer similar to Emacs's built-in Info
 ;; browser, but geared towards documentation obtained from
 ;; https://devdocs.io.
 
-;; To get started, download some documentation with `evdocs-install`.
+;; 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
-;; `evdocs-lookup` to search for entries.
+;; `devdocs-lookup` to search for entries.
 
 ;;; Code:
 
@@ -39,237 +39,237 @@
 (eval-when-compile
   (require 'let-alist))
 
-(defgroup evdocs nil
+(defgroup devdocs nil
   "Emacs viewer for DevDocs."
   :group 'help
-  :prefix "evdocs-")
+  :prefix "devdocs-")
 
-(defcustom evdocs-current-docs nil
+(defcustom devdocs-current-docs nil
   "A list of documents relevant to the current buffer."
   :local t
   :type '(list string))
 
-(defcustom evdocs-data-dir (expand-file-name "devdocs" user-emacs-directory)
+(defcustom devdocs-data-dir (expand-file-name "devdocs" user-emacs-directory)
   "Directory to save documentation files."
   :type 'directory)
 
-(defvar evdocs-site-url "https://devdocs.io";
+(defvar devdocs-site-url "https://devdocs.io";
   "Location of the DevDocs website.")
 
-(defvar evdocs-cdn-url "https://documents.devdocs.io";
+(defvar devdocs-cdn-url "https://documents.devdocs.io";
   "Location of the DevDocs CDN.")
 
-(defcustom evdocs-timeout 300
+(defcustom devdocs-timeout 300
   "Number of seconds to keep cached document indexes."
   :type 'number)
 
-(defcustom evdocs-separator " » "
+(defcustom devdocs-separator " » "
   "String used to format a documentation location, e.g. in header line."
   :type 'string)
 
-(defvar evdocs--index (make-hash-table :test 'equal)
+(defvar devdocs--index (make-hash-table :test 'equal)
   "A hash table to cache document indices.
-To be accessed through the function `evdocs--index'.")
+To be accessed through the function `devdocs--index'.")
 
-(defvar evdocs-history nil
+(defvar devdocs-history nil
   "History of documentation entries.")
 
 ;;; Documentation management
 
-(defvar evdocs--doc-metadata (make-hash-table :test 'equal)
+(def

[elpa] externals/isearch-mb 88e409e 2/6: Fix indentation

2021-05-29 Thread ELPA Syncer
branch: externals/isearch-mb
commit 88e409ed5633a8d0505c32ba1aeb6933752fce26
Author: Augusto Stoffel 
Commit: Augusto Stoffel 

Fix indentation
---
 isearch-mb.el | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/isearch-mb.el b/isearch-mb.el
index 7e088f9..ff00fd7 100644
--- a/isearch-mb.el
+++ b/isearch-mb.el
@@ -58,10 +58,10 @@
 
 (defvar isearch-mb--after-exit
   '(isearch-query-replace
-   isearch-query-replace-regexp
-   isearch-highlight-regexp
-   isearch-highlight-lines-matching-regexp
-   isearch-abort)
+isearch-query-replace-regexp
+isearch-highlight-regexp
+isearch-highlight-lines-matching-regexp
+isearch-abort)
   "List of commands to execute after exiting the minibuffer.")
 
 (defvar isearch-mb--no-search



[elpa] externals/isearch-mb 1ae8ad2 1/6: Refine Readme and Commentary

2021-05-29 Thread ELPA Syncer
branch: externals/isearch-mb
commit 1ae8ad293430bfcc2d0226a873e6ea5dd8b6f96f
Author: Augusto Stoffel 
Commit: Augusto Stoffel 

Refine Readme and Commentary
---
 README.md | 50 ++
 isearch-mb.el | 10 +-
 2 files changed, 31 insertions(+), 29 deletions(-)

diff --git a/README.md b/README.md
index e633f90..eff0fa4 100644
--- a/README.md
+++ b/README.md
@@ -1,14 +1,16 @@
-Isearch-Mb
+isearch-mb
 ==
 
-This Emacs package provides an alternative Isearch UI based on the
+This Emacs package provides an alternative isearch UI based on the
 minibuffer.  This allows editing the search string in arbitrary ways
-without any special maneuver; unlike standard Isearch, cursor motion
-commands do not end the search.  Moreover, in comparison with standard
-Isearch, the search status information in the echo area is simplified.
+without any special maneuver; unlike standard isearch, cursor motion
+commands do not end the search.  Moreover, the search status
+information in the echo area and some keybindings are slightly
+simplified.
 
-Isearch-Mb is part of [GNU ELPA] and can be installed via `M-x
-list-packages`.  To activate it, type `M-x isearch-mb-mode`.
+isearch-mb is part of [GNU ELPA] and can be installed with `M-x
+package-install RET isearch-mb RET`.  To activate it, type `M-x
+isearch-mb-mode`.
 
 
 Keybindings
@@ -23,17 +25,17 @@ it includes the following commands:
 - M->: `isearch-end-of-buffer`
 - M-%: `isearch-query-replace`
 - C-M-%: `isearch-query-replace-regexp`
-- M-s prefix: similar to standard Isearch
+- M-s prefix: similar to standard isearch
 
-Everything else works as in a plain minibuffer, e.g. RET
-ends the search normally and C-g cancels it.
+Everything else works as in a plain minibuffer.  For instance,
+RET ends the search normally and C-g cancels it.
 
 Some customization ideas
 
 
-Isearch provides a myriad of customization options, and most of them
-make just as much sense in Isearch-Mb mode.  The following are some
-uncontroversial settings that would make sense for most people:
+isearch provides a myriad of customization options, and most of them
+make just as much sense when using isearch-mb.  The following are some
+uncontroversial improvements of the defaults:
 
 ``` elisp
 (setq-default
@@ -44,7 +46,7 @@ uncontroversial settings that would make sense for most 
people:
  regexp-search-ring-max 200)
 ```
 
-Note that since Isearch-Mb relies on a regular minibuffer, you can use
+Note that since isearch-mb relies on a regular minibuffer, you can use
 you favorite tool to browse the history of previous search strings
 (say, the `consult-history` command from the excellent [Consult]
 package).
@@ -66,14 +68,14 @@ strict whitespace matching with M-s SPC during a 
search.
  search-whitespace-regexp ".*?")
 ```
 
-Interaction with other Isearch extensions
+Interaction with other isearch extensions
 -
 
-Some third-party Isearch extensions require a bit of configuration in
-order to work with Isearch-Mb.  There are three cases to consider:
+Some third-party isearch extensions require a bit of configuration in
+order to work with isearch-mb.  There are three cases to consider:
 
-- **Commands that start a search** shouldn't require extra
-  configuration.
+- **Commands that start a search** in a special state shouldn't
+  require extra configuration.  This includes PDF Tools, Embark, etc.
 
 - **Commands that operate during a search session** should be added to
   the list `isearch-mb--with-buffer`.  Examples of this case are
@@ -87,15 +89,15 @@ order to work with Isearch-Mb.  There are three cases to 
consider:
   (define-key isearch-mb-minibuffer-map (kbd "M-r") #'consult-isearch)
   ```
 
-  Most Isearch commands that are not made available by default in
-  Isearch-Mb can also be used in this fashion:
+  Most isearch commands that are not made available by default in
+  isearch-mb can also be used in this fashion:
 
   ``` elisp
   (add-to-list 'isearch-mb--with-buffer #'isearch-yank-word)
   (define-key isearch-mb-minibuffer-map (kbd "M-s C-w") #'isearch-yank-word)
   ```
 
-- **Commands that end the Isearch session** should be added to the
+- **Commands that end the isearch session** should be added to the
   list `isearch-mb--after-exit`.  Examples of this case are
   [`anzu-isearch-query-replace`][anzu] and [`consult-line`][consult]:
 
@@ -107,7 +109,7 @@ order to work with Isearch-Mb.  There are three cases to 
consider:
   (define-key isearch-mb-minibuffer-map (kbd "M-s l") 'consult-line)
   ```
 
-  Making motion commands quit the search as in standard Isearch is out
+  Making motion commands quit the search as in standard isearch is out
   of the scope of this package, but you can define your own commands
   to emulate that effect.  Here is one possibility:
 
@@ -125,7 +127,7 @@ order to work with Isearch-Mb.  There are three cases to 
consider:
   (defin

[elpa] externals/isearch-mb b3f0b9f 5/6: Avoid recenter when ending the search

2021-05-29 Thread ELPA Syncer
branch: externals/isearch-mb
commit b3f0b9f3d5bc58cc5a9ea39c947c61632787a088
Author: Augusto Stoffel 
Commit: Augusto Stoffel 

Avoid recenter when ending the search

`read-from-minibuffer' saves and restores the window configuration,
and this may cause a recenter when ending the search.  This can only
be avoided by manually undoing the recenter. See also:

https://lists.gnu.org/archive/html/emacs-devel/2021-05/msg00862.html

Closes #14
---
 isearch-mb.el | 8 +++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/isearch-mb.el b/isearch-mb.el
index 919aa16..76ebe0f 100644
--- a/isearch-mb.el
+++ b/isearch-mb.el
@@ -187,11 +187,15 @@ minibuffer."
;; avoid flicker.  As a side effect, window-start/end in
;; `isearch-lazy-highlight-update' will have incorrect 
values,
;; so we need to lazy-highlight the whole buffer.
-   (lazy-highlight-buffer (not (null isearch-lazy-highlight
+   (lazy-highlight-buffer (not (null isearch-lazy-highlight)))
+   (wstart nil))
(minibuffer-with-setup-hook
(lambda ()
  (add-hook 'after-change-functions #'isearch-mb--after-change 
nil 'local)
  (add-hook 'post-command-hook #'isearch-mb--post-command-hook 
nil 'local)
+ (add-hook 'minibuffer-exit-hook
+   (lambda () (setq wstart (window-start 
(minibuffer-selected-window
+   nil 'local)
  (setq-local tool-bar-map isearch-tool-bar-map)
  (setq isearch-mb--prompt-overlay (make-overlay (point-min) 
(point-min)
 
(current-buffer) t t))
@@ -215,6 +219,8 @@ minibuffer."
   (delete-dups)
   (mapcar (if isearch-regexp 'regexp-quote 'identity)))
 t))
+   ;; Undo a possible recenter after quitting the minibuffer.
+   (set-window-start nil wstart)
(dolist (fun isearch-mb--after-exit)
  (advice-remove fun #'isearch-mb--after-exit))
(dolist (fun isearch-mb--with-buffer)



[elpa] externals/isearch-mb d12875b 4/6: Set an isearch-error on invalid regexp

2021-05-29 Thread ELPA Syncer
branch: externals/isearch-mb
commit d12875bf80ee009d8d572ff9921b017ecd5010f3
Author: Augusto Stoffel 
Commit: Augusto Stoffel 

Set an isearch-error on invalid regexp
---
 isearch-mb.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/isearch-mb.el b/isearch-mb.el
index 2cf6f14..919aa16 100644
--- a/isearch-mb.el
+++ b/isearch-mb.el
@@ -110,7 +110,7 @@
(condition-case err
(prog1 nil (string-match-p isearch-string ""))
  (invalid-regexp
-  (prog1 t (isearch-mb--message (cadr err)))
+  (prog1 t (setq isearch-error (cadr err)))
   (isearch-update)
 (goto-char isearch-barrier)
 (setq isearch-adjusted t isearch-success t)



[elpa] externals/isearch-mb 8157dd0 6/6: Avoid recenter only when ending the search normally

2021-05-29 Thread ELPA Syncer
branch: externals/isearch-mb
commit 8157dd0539cd7b58046b54418c3bb8e56301f71d
Author: Augusto Stoffel 
Commit: Augusto Stoffel 

Avoid recenter only when ending the search normally
---
 isearch-mb.el | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/isearch-mb.el b/isearch-mb.el
index 76ebe0f..c7af45f 100644
--- a/isearch-mb.el
+++ b/isearch-mb.el
@@ -218,9 +218,9 @@ minibuffer."
   (delq nil)
   (delete-dups)
   (mapcar (if isearch-regexp 'regexp-quote 'identity)))
-t))
-   ;; Undo a possible recenter after quitting the minibuffer.
-   (set-window-start nil wstart)
+t)
+   ;; Undo a possible recenter after quitting the minibuffer.
+   (set-window-start nil wstart))
(dolist (fun isearch-mb--after-exit)
  (advice-remove fun #'isearch-mb--after-exit))
(dolist (fun isearch-mb--with-buffer)



[elpa] externals/devdocs 71142b8 1/7: Initial commit

2021-05-29 Thread ELPA Syncer
branch: externals/devdocs
commit 71142b8ac4f496f34657a95eb43aa48b8817cab1
Author: Augusto Stoffel 
Commit: Augusto Stoffel 

Initial commit
---
 .gitignore |   2 +
 evdocs.el  | 267 +
 2 files changed, 269 insertions(+)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000..257c9f7
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+*.elc
+*-autoloads.el
diff --git a/evdocs.el b/evdocs.el
new file mode 100644
index 000..43ea726
--- /dev/null
+++ b/evdocs.el
@@ -0,0 +1,267 @@
+;;; evdocs.el --- Emacs viewer for DevDocs  -*- lexical-binding: t -*-
+
+;; Copyright (C) 2021 Augusto Stoffel
+
+;; Author: Augusto Stoffel 
+;; Keywords: help
+;; URL: https://github.com/astoff/evdocs
+;; Package-Requires: ((emacs "27.1"))
+;; Version: 0
+
+;; 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 .
+
+;;; Commentary:
+
+;;; Code:
+
+(defgroup evdocs nil
+  "Emacs viewer for DevDocs."
+  :group 'help
+  :prefix "evdocs-")
+
+(defcustom evdocs-current-docs nil
+  "A list of DevDocs documents relevant for the current buffer."
+  :local t
+  :type '(list string))
+
+(defcustom evdocs-data-dir (expand-file-name "devdocs" user-emacs-directory)
+  "Directory to save documentation files."
+  :type 'directory)
+
+(defvar evdocs-site-url "https://devdocs.io";
+  "Location of the DevDocs website.")
+
+(defvar evdocs-cdn-url "https://documents.devdocs.io";
+  "Location of the DevDocs CDN.")
+
+;;; Manage documentation
+
+(defvar evdocs--manifest nil)
+
+(defun evdocs--manifest (&optional refresh)
+  "Return a hash table of documents available from DevDocs."
+  (when (or refresh (not evdocs--manifest))
+(let ((tbl (make-hash-table :test 'equal)))
+  (with-temp-buffer
+(url-insert-file-contents (format "%s/docs.json" evdocs-site-url))
+(seq-doseq (it (json-read))
+  (puthash (alist-get 'slug it) it tbl))
+(setq evdocs--manifest tbl
+  evdocs--manifest)
+
+(defun evdocs--installed-p (doc)
+  "Non-nil if DOC is installed."
+  (file-exists-p
+   (expand-file-name "metadata" (expand-file-name doc evdocs-data-dir
+
+(defun evdocs--doc-title (doc)
+  "Title of document with slug DOC"
+  (let-alist (gethash doc (evdocs--manifest))
+(if .version (concat .name " " .version) .name)))
+
+(defun evdocs--read-document (prompt &optional pred multiple)
+  "Query interactively for a DevDocs document."
+  (let (cands)
+(maphash (lambda (k v)
+   (when (or (not pred) (funcall pred k))
+ (push (cons (evdocs--doc-title k) k) cands)))
+ (evdocs--manifest))
+(if multiple
+;; (thread-last (completing-read-multiple prompt cands)
+;;   (mapcar (lambda (s) (cdr (assoc s cands
+;;   (delq nil)
+;;   (delete-dups))
+(delq nil (mapcar (lambda (s) (cdr (assoc s cands)))
+  (completing-read-multiple prompt cands)))
+  (cdr (assoc (completing-read prompt cands nil t) cands)
+
+(defun evdocs-delete (doc)
+  "Delete DevDocs documentation.
+DOC is a document slug."
+  (interactive (list (evdocs--read-document "Delete documentation: "
+#'evdocs--installed-p)))
+  (let ((dest (file-name-as-directory
+   (expand-file-name doc evdocs-data-dir
+(if (and (file-directory-p dest)
+ (file-in-directory-p dest evdocs-data-dir))
+(delete-directory dest t t)
+  (user-error (format "Documentation for `%s' is not installed" doc)
+
+(defun evdocs-install (doc)
+  "Download and install DevDocs documentation.
+DOC is a document slug."
+  (interactive (list (evdocs--read-document
+  "Install documentation: "
+  (lambda (s) (not (evdocs--installed-p s))
+  (let ((temp (make-temp-file "devdocs-" t)))
+(with-temp-buffer
+  (url-insert-file-contents (format "%s/%s/db.json" evdocs-cdn-url doc))
+  (seq-doseq (entry (json-read))
+(with-temp-file (expand-file-name
+ (url-hexify-string (format "%s.html" (car entry))) 
temp)
+  (insert (cdr entry)
+(url-copy-file (format "%s/%s/index.json" evdocs-cdn-url doc)
+   (expand-file-name "index.json" temp))
+(with-temp-file (expand-file-name "metadata" temp)
+  (prin1 (gethash doc (evdocs--

[elpa] externals/devdocs 15d95ef 2/7: Refine document management

2021-05-29 Thread ELPA Syncer
branch: externals/devdocs
commit 15d95ef5a97e1841fe0ffe291aca0858264c17de
Author: Augusto Stoffel 
Commit: Augusto Stoffel 

Refine document management
---
 evdocs.el | 81 ++-
 1 file changed, 49 insertions(+), 32 deletions(-)

diff --git a/evdocs.el b/evdocs.el
index 43ea726..07e53ad 100644
--- a/evdocs.el
+++ b/evdocs.el
@@ -1,4 +1,4 @@
-;;; evdocs.el --- Emacs viewer for DevDocs  -*- lexical-binding: t -*-
+;;; evdocs.el --- Emacs viewer for DevDocs -*- lexical-binding: t -*-
 
 ;; Copyright (C) 2021 Augusto Stoffel
 
@@ -25,13 +25,18 @@
 
 ;;; Code:
 
+(require 'seq)
+(require 'shr)
+(eval-when-compile
+  (require 'let-alist))
+
 (defgroup evdocs nil
   "Emacs viewer for DevDocs."
   :group 'help
   :prefix "evdocs-")
 
 (defcustom evdocs-current-docs nil
-  "A list of DevDocs documents relevant for the current buffer."
+  "A list of documents relevant to the current buffer."
   :local t
   :type '(list string))
 
@@ -45,47 +50,58 @@
 (defvar evdocs-cdn-url "https://documents.devdocs.io";
   "Location of the DevDocs CDN.")
 
-;;; Manage documentation
-
-(defvar evdocs--manifest nil)
-
-(defun evdocs--manifest (&optional refresh)
-  "Return a hash table of documents available from DevDocs."
-  (when (or refresh (not evdocs--manifest))
-(let ((tbl (make-hash-table :test 'equal)))
-  (with-temp-buffer
-(url-insert-file-contents (format "%s/docs.json" evdocs-site-url))
-(seq-doseq (it (json-read))
-  (puthash (alist-get 'slug it) it tbl))
-(setq evdocs--manifest tbl
-  evdocs--manifest)
-
-(defun evdocs--installed-p (doc)
-  "Non-nil if DOC is installed."
-  (file-exists-p
-   (expand-file-name "metadata" (expand-file-name doc evdocs-data-dir
+(defcustom evdocs-timeout 300
+  "Number of seconds to keep cached document indexes.")
+
+(defcustom evdocs-separator " » "
+  "String used to format a documentation location, e.g. in header line.")
+
+;;; Documentation management
+
+(defvar evdocs--doc-metadata (make-hash-table :test 'equal)
+  "A hash table mapping document slugs to their metadata.
+To be accessed through the function `evdocs--doc-metadata'.")
+
+(defun evdocs--doc-metadata (doc &optional refresh)
+  "Return the metadata for a document DOC.
+Also populates `evdocs--doc-metadata' if necessary, either from
+data on disk if REFRESH is nil, or from freshly downloaded data
+otherwise."
+  (when (or refresh (hash-table-empty-p evdocs--doc-metadata))
+(let* ((file (expand-file-name "docs.json" evdocs-data-dir))
+   (docs (if (or refresh (not (file-exists-p file)))
+ (with-temp-file file
+   (url-insert-file-contents (format "%s/docs.json" 
evdocs-site-url))
+   (json-read))
+   (json-read-file file
+  (clrhash evdocs--doc-metadata)
+  (seq-doseq (doc docs)
+(puthash (alist-get 'slug doc) doc evdocs--doc-metadata
+  (gethash doc evdocs--doc-metadata))
 
 (defun evdocs--doc-title (doc)
   "Title of document with slug DOC"
-  (let-alist (gethash doc (evdocs--manifest))
+  (let-alist (evdocs--doc-metadata doc)
 (if .version (concat .name " " .version) .name)))
 
-(defun evdocs--read-document (prompt &optional pred multiple)
+(defun evdocs--read-document (prompt &optional pred multiple refresh)
   "Query interactively for a DevDocs document."
+  (evdocs--doc-metadata nil refresh) ;; Maybe initialize and refresh
   (let (cands)
-(maphash (lambda (k v)
+(maphash (lambda (k _)
(when (or (not pred) (funcall pred k))
  (push (cons (evdocs--doc-title k) k) cands)))
- (evdocs--manifest))
+ evdocs--doc-metadata)
 (if multiple
-;; (thread-last (completing-read-multiple prompt cands)
-;;   (mapcar (lambda (s) (cdr (assoc s cands
-;;   (delq nil)
-;;   (delete-dups))
 (delq nil (mapcar (lambda (s) (cdr (assoc s cands)))
   (completing-read-multiple prompt cands)))
   (cdr (assoc (completing-read prompt cands nil t) cands)
 
+(defun evdocs--installed-p (doc)
+  "Non-nil if DOC is installed."
+  (file-exists-p
+   (expand-file-name "metadata" (expand-file-name doc evdocs-data-dir
+
 (defun evdocs-delete (doc)
   "Delete DevDocs documentation.
 DOC is a document slug."
@@ -103,7 +119,8 @@ DOC is a document slug."
 DOC is a document slug."
   (interactive (list (evdocs--read-document
   "Install documentation: "
-  (lambda (s) (not (evdocs--installed-p s))
+  (lambda (s) (not (evdocs--installed-p s)))
+  nil 'refresh)))
   (let ((temp (make-temp-file "devdocs-" t)))
 (with-temp-buffer
   (url-insert-file-contents (format "%s/%s/db.json" evdocs-cdn-url doc))
@@ -114,9 +131,9 @@ DOC is a document slug."
 (url-copy-file (format "%s/%s/index.json" evdocs-cdn-url doc

[elpa] externals/devdocs 257813d 3/7: Cache document index with timeout

2021-05-29 Thread ELPA Syncer
branch: externals/devdocs
commit 257813d20a40060cf52abfaaab67a910a91c8b69
Author: Augusto Stoffel 
Commit: Augusto Stoffel 

Cache document index with timeout
---
 evdocs.el | 135 ++
 1 file changed, 75 insertions(+), 60 deletions(-)

diff --git a/evdocs.el b/evdocs.el
index 07e53ad..ca7f532 100644
--- a/evdocs.el
+++ b/evdocs.el
@@ -51,11 +51,16 @@
   "Location of the DevDocs CDN.")
 
 (defcustom evdocs-timeout 300
-  "Number of seconds to keep cached document indexes.")
+  "Number of seconds to keep cached document indexes."
+  :type 'number)
 
 (defcustom evdocs-separator " » "
   "String used to format a documentation location, e.g. in header line.")
 
+(defvar evdocs--index (make-hash-table :test 'equal)
+  "A hash table to cache document indices.
+To be accessed through the function `evdocs--index'.")
+
 ;;; Documentation management
 
 (defvar evdocs--doc-metadata (make-hash-table :test 'equal)
@@ -64,13 +69,14 @@ To be accessed through the function 
`evdocs--doc-metadata'.")
 
 (defun evdocs--doc-metadata (doc &optional refresh)
   "Return the metadata for a document DOC.
-Also populates `evdocs--doc-metadata' if necessary, either from
-data on disk if REFRESH is nil, or from freshly downloaded data
-otherwise."
+Also populates the variable `evdocs--doc-metadata' if necessary,
+either from data on disk if REFRESH is nil, or from freshly
+downloaded data otherwise."
   (when (or refresh (hash-table-empty-p evdocs--doc-metadata))
 (let* ((file (expand-file-name "docs.json" evdocs-data-dir))
(docs (if (or refresh (not (file-exists-p file)))
  (with-temp-file file
+   (make-directory (file-name-directory file) t)
(url-insert-file-contents (format "%s/docs.json" 
evdocs-site-url))
(json-read))
(json-read-file file
@@ -136,60 +142,47 @@ DOC is a document slug."
 (clrhash evdocs--index)
 (message "Documentation for `%s' installed." doc)))
 
-;;; Manipulating a single document
-
-(defvar evdocs--doc-index (make-hash-table))
-
-(defun evdocs--doc-index (doc)
-  (or (gethash doc evdocs--doc-index)
-  (puthash doc
-   (json-read-file (expand-file-name (concat doc "/index.json")
- evdocs-data-dir))
-   evdocs--doc-index)))
-
-(defun evdocs--entries (doc)
-  "Return a list of entries for document DOC."
-  (mapcar (let ((docid (cons 'doc doc)))
-(lambda (entry)
-  (let-alist entry
-(cons (concat .type ": " .name) (cons docid entry)
-  (alist-get 'entries (evdocs--doc-index doc
-
-(defvar evdocs--entries (make-hash-table))
-
-(defun evdocs--entries (doc)
-  "Return a list of entries for document DOC."
-  (or (gethash doc evdocs--entries)
-  (puthash doc
-   (seq-map-indexed
-(let ((docid (cons 'doc doc)))
-  (lambda (entry i)
-(let-alist entry
-  (thread-last entry
-(cons `(index . ,i))
-(cons docid)
-(cons .name)
-(alist-get 'entries (json-read-file
- (expand-file-name (concat doc 
"/index.json")
-   evdocs-data-dir
-   evdocs--entries)))
-
-
-(defun evdocs--read-entry (prompt)
-  (let* ((cands (mapcan #'evdocs--entries evdocs-current-docs)))
-(cdr (assoc (completing-read prompt cands nil t) cands
+;;; Document indexes
+
+(defvar evdocs--index (make-hash-table :test 'equal)
+  "A hash table to cache document indices.")
+
+(defun evdocs--index (doc)
+  "Return the index of document DOC.
+This is an alist containing `entries' and `types'."
+  (if-let ((idx (gethash doc evdocs--index)))
+  (prog1 idx
+(timer-set-time (alist-get 'timer idx) evdocs-timeout))
+(let* ((docid (cons 'doc doc))
+   (idx (json-read-file (expand-file-name (concat doc "/index.json")
+  evdocs-data-dir)))
+   (entries (alist-get 'entries idx)))
+  (setf (alist-get 'timer idx)
+(run-at-time evdocs-timeout nil
+ (lambda () (remhash doc evdocs--index
+  (seq-do-indexed (lambda (entry i)
+(push `(index . ,i) entry)
+(push docid entry)
+(aset entries i entry))
+  entries)
+  (puthash doc idx evdocs--index
 
 ;;; Documentation viewer
 
-(defvar-local evdocs--data nil
-  "Alist of data, set buffer-locally when in `evdocs-mode'.")
+(defvar-local evdocs--stack nil
+  "List of viewed entries, set buffer-locally when in `evdocs-mode'.")
+
+(defvar-local evdocs--forward-stack nil
+  "List of viewed entries for `evdocs-g

[elpa] externals/devdocs 77f4ace 7/7: Add a devdocs-search command, as in the old devdocs package

2021-05-29 Thread ELPA Syncer
branch: externals/devdocs
commit 77f4ace2811849b8a72d2cd89242d9ecd1f4eaaa
Author: Augusto Stoffel 
Commit: Augusto Stoffel 

Add a devdocs-search command, as in the old devdocs package
---
 devdocs.el | 9 +
 1 file changed, 9 insertions(+)

diff --git a/devdocs.el b/devdocs.el
index 8ffa856..6286985 100644
--- a/devdocs.el
+++ b/devdocs.el
@@ -357,5 +357,14 @@ non-nil), first read a list of available documents and set
   (devdocs-goto-target)
   (recenter 0
 
+;;; Compatibility with the old devdocs package
+
+(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



[elpa] externals/devdocs ccadf08 5/7: Add a README

2021-05-29 Thread ELPA Syncer
branch: externals/devdocs
commit ccadf0882aac81182dd1bc4b78b0af2ec6cc1dd3
Author: Augusto Stoffel 
Commit: Augusto Stoffel 

Add a README
---
 README.md | 34 ++
 evdocs.el | 18 ++
 2 files changed, 48 insertions(+), 4 deletions(-)

diff --git a/README.md b/README.md
new file mode 100644
index 000..675babd
--- /dev/null
+++ b/README.md
@@ -0,0 +1,34 @@
+evdocs — Emacs viewer for DevDocs
+=
+
+evdocs is a documentation viewer similar to the built-in Info browser,
+but geared towards documentation obtained from the [DevDocs] website.
+
+To get started, download some documentation with `M-x evdocs-install`.
+This will first query https://devdocs.io for the available documents,
+and save to disk the selected document.
+
+Once you have the desired documents at hand, call `M-x evdocs-lookup`
+to search for entries.
+
+In any given buffer, the first call to `evdocs-lookup` will query for
+a list of documents to search (you can select more than one option by
+entering a comma-separated list).  This selection will be remembered
+in subsequent calls to `evdocs-lookup`, unless a prefix argument is
+given; in this case you can select a new list of documents.
+Alternatively, you can set the `evdocs-current-docs` variable
+directly, say via [dir-local variables] or a mode hook:
+
+```elisp
+(with-eval-after-load 'evdocs
+  (add-hook 'python-mode-hook
+(lambda () (add-to-list 'evdocs-current-docs "python~3.9"
+```
+
+In the `*devdocs*` buffer, navigation keys similar to Info and
+`*Help*` buffers are available; press `C-h m` for details.  Internal
+hyperlinks are opened in the same viewing buffer, and external links
+are opened as `browse-url` normally would.
+
+[DevDocs]: https://devdocs.io
+[dir-local variables]: 
https://www.gnu.org/software/emacs/manual/html_node/emacs/Directory-Variables.html
diff --git a/evdocs.el b/evdocs.el
index d022a33..bd01a39 100644
--- a/evdocs.el
+++ b/evdocs.el
@@ -23,6 +23,15 @@
 
 ;;; Commentary:
 
+;; evdocs is a documentation viewer similar to Emacs's built-in Info
+;; browser, but geared towards documentation obtained from
+;; https://devdocs.io.
+
+;; To get started, download some documentation with `evdocs-install`.
+;; This will show the available documents and save the selected one to
+;; disk.  Once you have the desired documents at hand, use
+;; `evdocs-lookup` to search for entries.
+
 ;;; Code:
 
 (require 'seq)
@@ -247,9 +256,9 @@ This is an alist containing `entries' and `types'."
 (defun evdocs--render (entry)
   "Render a DevDocs documentation entry, returning a buffer.
 
-ENTRY is an alist like those in `evdocs--index', possibly with an
-additional ENTRY.fragment which overrides the fragment part of
-ENTRY.path."
+ENTRY is an alist like those in the variable `evdocs--index',
+possibly with an additional ENTRY.fragment which overrides the
+fragment part of ENTRY.path."
   (or (libxml-available-p)
   (error "This function requires Emacs to be compiled with libxml2"))
   (with-current-buffer (get-buffer-create "*devdocs*")
@@ -274,7 +283,8 @@ ENTRY.path."
   (current-buffer
 
 (defun evdocs--browse-url (url &rest _)
-  "A suitable `browse-url-browser-function' for `devdocs-mode'."
+  "A suitable `browse-url-browser-function' for `devdocs-mode'.
+URL can be an internal link in a DevDocs document."
   (let-alist (car evdocs--stack)
 (let* ((dest (evdocs--path-expand url .path))
(file (evdocs--path-file dest))



[elpa] externals/isearch-mb updated (7caa427 -> 8157dd0)

2021-05-29 Thread ELPA Syncer
elpasync pushed a change to branch externals/isearch-mb.

  from  7caa427   Bump version
   new  1ae8ad2   Refine Readme and Commentary
   new  88e409e   Fix indentation
   new  6fe9d1a   Uncapitalize the word "isearch"
   new  d12875b   Set an isearch-error on invalid regexp
   new  b3f0b9f   Avoid recenter when ending the search
   new  8157dd0   Avoid recenter only when ending the search normally


Summary of changes:
 README.md | 50 ++
 isearch-mb.el | 52 +---
 2 files changed, 55 insertions(+), 47 deletions(-)



[elpa] externals/isearch-mb 6fe9d1a 3/6: Uncapitalize the word "isearch"

2021-05-29 Thread ELPA Syncer
branch: externals/isearch-mb
commit 6fe9d1acb34594b91dea9f4400578dd741ba4b9b
Author: Augusto Stoffel 
Commit: Augusto Stoffel 

Uncapitalize the word "isearch"
---
 isearch-mb.el | 22 +++---
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/isearch-mb.el b/isearch-mb.el
index ff00fd7..2cf6f14 100644
--- a/isearch-mb.el
+++ b/isearch-mb.el
@@ -1,4 +1,4 @@
-;;; isearch-mb.el --- Control Isearch from the minibuffer -*- lexical-binding: 
t; -*-
+;;; isearch-mb.el --- Control isearch from the minibuffer -*- lexical-binding: 
t; -*-
 
 ;; Copyright (C) 2021  Free Software Foundation, Inc.
 
@@ -90,13 +90,13 @@
 (define-key map "\M-sr" #'isearch-toggle-regexp)
 (define-key map "\M-sw" #'isearch-toggle-word)
 map)
-  "Minibuffer keymap used by Isearch-Mb.")
+  "Minibuffer keymap used by isearch-mb.")
 
 (defvar isearch-mb--prompt-overlay nil
   "Overlay for minibuffer prompt updates.")
 
 (defun isearch-mb--after-change (_beg _end _len)
-  "Hook to run from the minibuffer to update the Isearch state."
+  "Hook to run from the minibuffer to update the isearch state."
   (let ((string (minibuffer-contents))
 (inhibit-redisplay t))
 (with-minibuffer-selected-window
@@ -117,12 +117,12 @@
 (isearch-search-and-update)
 
 (defun isearch-mb--post-command-hook ()
-  "Hook to make the minibuffer reflect the Isearch state."
+  "Hook to make the minibuffer reflect the isearch state."
   (unless isearch--current-buffer
 (throw 'isearch-mb--continue '(ignore)))
   (let ((inhibit-modification-hooks t))
 ;; We never update `isearch-message'.  If it's not empty, then
-;; Isearch changed the search string on its own volition.
+;; isearch changed the search string on its own volition.
 (unless (string-empty-p isearch-message)
   (setq isearch-message "")
   (delete-minibuffer-contents)
@@ -158,7 +158,7 @@
 
 (defun isearch-mb--with-buffer (&rest args)
   "Evaluate ARGS in the search buffer.
-Intended as an advice for Isearch commands."
+Intended as an advice for isearch commands."
   (if (minibufferp)
   (let ((enable-recursive-minibuffers t)
 (inhibit-redisplay t))
@@ -167,8 +167,8 @@ Intended as an advice for Isearch commands."
 (apply args)))
 
 (defun isearch-mb--after-exit (&rest args)
-  "Evaluate ARGS after quitting Isearch-Mb.
-Intended as an advice for commands that quit Isearch and use the
+  "Evaluate ARGS after quitting isearch-mb.
+Intended as an advice for commands that quit isearch and use the
 minibuffer."
   (throw 'isearch-mb--continue args))
 
@@ -223,7 +223,7 @@ minibuffer."
 (quit (if isearch-mode (isearch-cancel) (signal 'quit nil)
 
 (defun isearch-mb--setup ()
-  "Arrange to start Isearch-Mb after this command, if applicable."
+  "Arrange to start isearch-mb after this command, if applicable."
   (unless (minibufferp)
 ;; When `with-isearch-suspended' is involved, this hook may run
 ;; more than once, hence the test for `isearch-mode'.
@@ -231,9 +231,9 @@ minibuffer."
 
 ;;;###autoload
 (define-minor-mode isearch-mb-mode
-  "Control Isearch from the minibuffer.
+  "Control isearch from the minibuffer.
 
-During an Isearch-Mb session, the following keys are available:
+During an isearch-mb session, the following keys are available:
 \\{isearch-mb-minibuffer-map}"
   :global t
   (if isearch-mb-mode



[elpa] externals/devdocs fdbe3fb: Prepare for first GNU ELPA release

2021-05-29 Thread ELPA Syncer
branch: externals/devdocs
commit fdbe3fba6205985e128ff5d7c2f1b7e9ad0323a8
Author: Augusto Stoffel 
Commit: Augusto Stoffel 

Prepare for first GNU ELPA release
---
 README.md  | 4 +++-
 devdocs.el | 4 ++--
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/README.md b/README.md
index a176421..abb863a 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,8 @@ devdocs.el — Emacs viewer for DevDocs
 
 devdocs.el is a documentation viewer similar to the built-in Info
 browser, but geared towards documentation obtained from the [DevDocs]
-website.
+website.  It is available from [GNU ELPA]; to install, type `M-x
+package-install RET devdocs RET`.
 
 To get started, download some documentation with `M-x devdocs-install`.
 This will first query https://devdocs.io for the available documents,
@@ -32,4 +33,5 @@ hyperlinks are opened in the same viewing buffer, and 
external links
 are opened as `browse-url` normally would.
 
 [DevDocs]: https://devdocs.io
+[GNU ELPA]: https://elpa.gnu.org/packages/devdocs.html
 [dir-local variables]: 
https://www.gnu.org/software/emacs/manual/html_node/emacs/Directory-Variables.html
diff --git a/devdocs.el b/devdocs.el
index 6286985..b06b403 100644
--- a/devdocs.el
+++ b/devdocs.el
@@ -1,12 +1,12 @@
 ;;; devdocs.el --- Emacs viewer for DevDocs -*- lexical-binding: t -*-
 
-;; Copyright (C) 2021 Augusto Stoffel
+;; Copyright (C) 2021  Free Software Foundation, Inc.
 
 ;; Author: Augusto Stoffel 
 ;; Keywords: help
 ;; URL: https://github.com/astoff/devdocs
 ;; Package-Requires: ((emacs "27.1"))
-;; Version: 0
+;; Version: 0.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



[elpa] externals/org updated (c5573bd -> c34aae1)

2021-05-29 Thread ELPA Syncer
elpasync pushed a change to branch externals/org.

  from  c5573bd   Merge branch 'maint'
   new  f4aac60   ox-latex: add LaTeX attributes to quote block
   new  54863e8   ox-latex: Surround option string with braces if it 
includes brackets
   new  c34aae1   doc/Makefile: `cleanall` target now deletes 
doc/{org,orgguide}.texi


Summary of changes:
 doc/Makefile   |  1 +
 doc/org-manual.org | 42 ++
 etc/ORG-NEWS   |  7 +++
 lisp/ox-latex.el   | 27 ---
 4 files changed, 74 insertions(+), 3 deletions(-)



[elpa] externals/org c34aae1 3/3: doc/Makefile: `cleanall` target now deletes doc/{org, orgguide}.texi

2021-05-29 Thread ELPA Syncer
branch: externals/org
commit c34aae1d6b0bcdc9f069cc4f54590338f2e7031d
Author: Greg Minshall 
Commit: Nicolas Goaziou 

doc/Makefile: `cleanall` target now deletes doc/{org,orgguide}.texi

* doc/Makefile: `cleanall` target now deletes doc/{org,orgguide}.texi

In the past, at least one of these seems to have been a tracked
(source?) file.  That is no longer the case.
---
 doc/Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/doc/Makefile b/doc/Makefile
index da5a07a..d934258 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -58,6 +58,7 @@ clean:
  org-version.tex *.aux *.cp *.cps *.dvi *.fn *.fns *.ky *.kys \
   *.pg *.pgs *.toc *.tp *.tps *.vr *.vrs *.log *.html *.ps
 cleanall:  clean
+   $(RM) org.texi orgguide.texi
$(RMR) guide manual
 
 clean-install:



[elpa] externals/org f4aac60 1/3: ox-latex: add LaTeX attributes to quote block

2021-05-29 Thread ELPA Syncer
branch: externals/org
commit f4aac6090d61a2f93eb225cadca9e153a0b25a2c
Author: Juan Manuel Macias 
Commit: Nicolas Goaziou 

ox-latex: add LaTeX attributes to quote block

* doc/org-manual.org (Quote blocks in LaTeX export): manual updated
* etc/ORG-NEWS (Support quote blocks in LaTeX export): news updated
* lisp/ox-latex.el (latex): add `org-latex-default-quote-environment' to 
`:options-alist'
(org-latex-default-quote-environment): the default quote environment
is `quote'
(org-latex-quote-block): add two attributes: `environment' and `options'
---
 doc/org-manual.org | 42 ++
 etc/ORG-NEWS   |  7 +++
 lisp/ox-latex.el   | 22 --
 3 files changed, 69 insertions(+), 2 deletions(-)

diff --git a/doc/org-manual.org b/doc/org-manual.org
index 118d97e..977ef80 100644
--- a/doc/org-manual.org
+++ b/doc/org-manual.org
@@ -13919,6 +13919,48 @@ To eat the world’s due, by the grave and thee.
 ,#+END_VERSE
 #+end_src
 
+*** Quote blocks in LaTeX export
+:PROPERTIES:
+:DESCRIPTION: Attributes specific to quote blocks.
+:END:
+
+#+cindex: quote blocks, in @LaTeX{} export
+#+cindex: @samp{ATTR_LATEX}, keyword
+#+cindex: org-latex-default-quote-environment
+
+The LaTeX export back-end accepts two attributes for quote blocks:
+=:environment=, for an arbitrary quoting environment (the default
+value is that of ~org-latex-default-quote-environment~: ~"quote"~) and
+=:options=. For example, to choose the environment =quotation=,
+included as an alternative to =quote= in standard LaTeX classes:
+
+#+begin_example
+,#+ATTR_LATEX: :environment quotation
+,#+BEGIN_QUOTE
+some text...
+,#+END_QUOTE
+#+end_example
+
+To choose the =foreigndisplayquote= environment, included in the LaTeX
+package =csquotes=, with the =german= option, use this syntax:
+
+#+begin_example
+,#+LATEX_HEADER:\usepackage[autostyle=true]{csquotes}
+,#+ATTR_LATEX: :environment foreigndisplayquote :options {german}
+,#+BEGIN_QUOTE
+some text in German...
+,#+END_QUOTE
+#+end_example
+
+#+texinfo: @noindent
+which is exported to LaTeX as
+
+#+begin_example
+\begin{foreigndisplayquote}{german}
+some text in German...
+\end{foreigndisplayquote}
+#+end_example
+
 ** Markdown Export
 :PROPERTIES:
 :DESCRIPTION: Exporting to Markdown.
diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS
index 8707222..c8a93c9 100644
--- a/etc/ORG-NEWS
+++ b/etc/ORG-NEWS
@@ -244,6 +244,13 @@ require the external LaTeX package =verse.sty=, wich is an 
extension
 of the standard LaTeX environment. The purpose of these attributes is
 explained below.
 
+*** Support quote blocks in LaTeX export
+
+The LaTeX export back-end accepts two attributes for quote blocks:
+=:environment=, for an arbitrary quoting environment (the default
+value is that of =org-latex-default-quote-environment=: ="quote"=) and
+=:options=.
+
 *** =org-set-tags-command= selects tags from ~org-global-tags-completion-table~
 
 Let ~org-set-tags-command~ TAB fast tag completion interface complete
diff --git a/lisp/ox-latex.el b/lisp/ox-latex.el
index b9ecf07..9e2e7be 100644
--- a/lisp/ox-latex.el
+++ b/lisp/ox-latex.el
@@ -121,6 +121,7 @@
 (:latex-classes nil nil org-latex-classes)
 (:latex-default-figure-position nil nil org-latex-default-figure-position)
 (:latex-default-table-environment nil nil 
org-latex-default-table-environment)
+(:latex-default-quote-environment nil nil 
org-latex-default-quote-environment)
 (:latex-default-table-mode nil nil org-latex-default-table-mode)
 (:latex-diary-timestamp-format nil nil org-latex-diary-timestamp-format)
 (:latex-footnote-defined-format nil nil org-latex-footnote-defined-format)
@@ -772,6 +773,13 @@ default we use here encompasses both."
   :package-version '(Org . "8.0")
   :type 'string)
 
+(defcustom org-latex-default-quote-environment "quote"
+  "Default environment used to `quote' blocks."
+  :group 'org-export-latex
+  :package-version '(Org . "9.5")
+  :type 'string
+  :safe t)
+
 (defcustom org-latex-default-table-mode 'table
   "Default mode for tables.
 
@@ -2895,9 +2903,19 @@ channel."
   "Transcode a QUOTE-BLOCK element from Org to LaTeX.
 CONTENTS holds the contents of the block.  INFO is a plist
 holding contextual information."
+  (let ((environment
+ (or (org-export-read-attribute :attr_latex quote-block :environment)
+ (plist-get info :latex-default-quote-environment)))
+(options
+ (or (org-export-read-attribute :attr_latex quote-block :options)
+ "")))
   (org-latex--wrap-label
-   quote-block (format "\\begin{quote}\n%s\\end{quote}" contents) info))
-
+   quote-block (format "\\begin{%s}%s\n%s\\end{%s}"
+environment
+options
+contents
+environment)
+   info)))
 
  Radio Target
 



[elpa] externals/org 54863e8 2/3: ox-latex: Surround option string with braces if it includes brackets

2021-05-29 Thread ELPA Syncer
branch: externals/org
commit 54863e802ff89778b28bab79fb418b03c9abd5a5
Author: Markus Huber 
Commit: Nicolas Goaziou 

ox-latex: Surround option string with braces if it includes brackets

lisp/ox-latex.el (org-latex--make-option-string): If `value' of
a `pair' from `options' contains a bracket the whole `value' is
surrounded by braces.

In case of LaTeX export using listings the dialect of
a language (e.g. [LaTeX]TeX) is surrounded by brackets. For inline
source blocks all options end as optional argument to \lstinline
between brackets which breaks the LaTeX parser.

TINYCHANGE
---
 lisp/ox-latex.el | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/lisp/ox-latex.el b/lisp/ox-latex.el
index 9e2e7be..9724b0d 100644
--- a/lisp/ox-latex.el
+++ b/lisp/ox-latex.el
@@ -1494,7 +1494,10 @@ nil."
   (pcase-let ((`(,keyword ,value) pair))
 (concat keyword
 (and (> (length value) 0)
- (concat "=" value)
+ (concat "="
+  (if (string-match-p (rx (any "[]")) 
value)
+  (format "{%s}" value)
+value))
 options
 ","))
 



[elpa] externals/vertico 438a834 2/3: Update readme

2021-05-29 Thread ELPA Syncer
branch: externals/vertico
commit 438a834a05399c0e0f3549c8184eb6e4213c82be
Author: Daniel Mendler 
Commit: Daniel Mendler 

Update readme
---
 README.org | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.org b/README.org
index c1e6f59..fa072d0 100644
--- a/README.org
+++ b/README.org
@@ -14,7 +14,7 @@ Vertico provides a minimalistic vertical completion UI, which 
is based on the
 default completion system. By reusing the built-in facilities system, Vertico
 achieves full compatibility with built-in Emacs commands and completion tables.
 Vertico only provides the completion UI and comes with only a minimal set of
-commands. The code base is small and maintainable (~500 lines of code without
+commands. The code base is small and maintainable (~600 lines of code without
 whitespace and comments).
 
 Additional enhancements can be installed separately via complementary packages.



[elpa] externals/vertico updated (f47b8bb -> b8673f4)

2021-05-29 Thread ELPA Syncer
elpasync pushed a change to branch externals/vertico.

  from  f47b8bb   Update readme
   new  8232ad2   Add vertico-next/previous-group (Fix #47)
   new  438a834   Update readme
   new  b8673f4   Document vertico-next/previous-group


Summary of changes:
 README.org |  7 +--
 vertico.el | 28 
 2 files changed, 33 insertions(+), 2 deletions(-)



[elpa] externals/vertico 8232ad2 1/3: Add vertico-next/previous-group (Fix #47)

2021-05-29 Thread ELPA Syncer
branch: externals/vertico
commit 8232ad29cf99d1bb93fcad9658e89636c3d2e0a7
Author: Daniel Mendler 
Commit: Daniel Mendler 

Add vertico-next/previous-group (Fix #47)

Bound to forward/backward-paragraph
---
 vertico.el | 28 
 1 file changed, 28 insertions(+)

diff --git a/vertico.el b/vertico.el
index d5d7516..19f3019 100644
--- a/vertico.el
+++ b/vertico.el
@@ -96,6 +96,8 @@
 (define-key map [remap previous-line] #'vertico-previous)
 (define-key map [remap next-line-or-history-element] #'vertico-next)
 (define-key map [remap previous-line-or-history-element] 
#'vertico-previous)
+(define-key map [remap backward-paragraph] #'vertico-previous-group)
+(define-key map [remap forward-paragraph] #'vertico-next-group)
 (define-key map [remap exit-minibuffer] #'vertico-exit)
 (define-key map [remap kill-ring-save] #'vertico-save)
 (define-key map [C-return] #'vertico-exit-input)
@@ -559,6 +561,32 @@
 (exit-minibuffer)
   (message "Match required"
 
+(defun vertico--goto-group (next)
+  "Move to next group if NEXT is non-nil, otherwise move to previous group."
+  (let* ((end (minibuffer-prompt-end))
+ (metadata (completion-metadata (buffer-substring end (max end 
(point)))
+minibuffer-completion-table
+minibuffer-completion-predicate))
+ (group-fun (or (completion-metadata-get metadata 'group-function) 
#'ignore))
+ (orig-index vertico--index))
+(while (let ((last-index vertico--index))
+ (if next (vertico-next) (vertico-previous))
+ (if (or (= vertico--index orig-index) (= vertico--index 
last-index))
+ (and (vertico--goto orig-index) nil)
+   (and (> vertico--index 0)
+(equal (funcall group-fun (nth (1- vertico--index) 
vertico--candidates) nil)
+   (funcall group-fun (nth vertico--index 
vertico--candidates) nil
+
+(defun vertico-next-group ()
+  "Move to next group."
+  (interactive)
+  (vertico--goto-group 'next))
+
+(defun vertico-previous-group ()
+  "Move to previous group."
+  (interactive)
+  (vertico--goto-group nil))
+
 (defun vertico-exit-input ()
   "Exit minibuffer with input."
   (interactive)



[elpa] externals/vertico b8673f4 3/3: Document vertico-next/previous-group

2021-05-29 Thread ELPA Syncer
branch: externals/vertico
commit b8673f4da5888f2afc05bd06982e835ef419d3d8
Author: Daniel Mendler 
Commit: Daniel Mendler 

Document vertico-next/previous-group
---
 README.org | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/README.org b/README.org
index fa072d0..d2d546e 100644
--- a/README.org
+++ b/README.org
@@ -47,7 +47,8 @@ Here is an example configuration:
 :init
 (vertico-mode)
 
-;; Optionally enable cycling for `vertico-next' and `vertico-previous'.
+;; Optionally enable cycling for `vertico-next', `vertico-previous',
+;; `vertico-next-group' and `vertico-previous-group'.
 ;; (setq vertico-cycle t)
   )
 
@@ -99,6 +100,8 @@ the binding of =TAB= to ~vertico-insert~ and the bindings of
 - ~scroll-up-command~ -> ~vertico-scroll-up~
 - ~next-line~, ~next-line-or-history-element~ -> ~vertico-next~
 - ~previous-line~, ~previous-line-or-history-element~ -> ~vertico-previous~
+- ~forward-paragraph~ -> ~vertico-next-group~
+- ~backward-paragraph~ -> ~vertico-previous-group~
 - ~exit-minibuffer~ -> ~vertico-exit~
 - ~kill-ring-save~ -> ~vertico-save~
 - == -> ~vertico-exit-input~



[elpa] externals/devdocs ec4085a 1/2: Add autoloads

2021-05-29 Thread ELPA Syncer
branch: externals/devdocs
commit ec4085a976eec6acf3e2f3d487c519c2a70df8a1
Author: Augusto Stoffel 
Commit: Augusto Stoffel 

Add autoloads
---
 README.md  | 5 ++---
 devdocs.el | 4 
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/README.md b/README.md
index abb863a..a0249e0 100644
--- a/README.md
+++ b/README.md
@@ -22,9 +22,8 @@ Alternatively, you can set the `devdocs-current-docs` variable
 directly, say via [dir-local variables] or a mode hook:
 
 ```elisp
-(with-eval-after-load 'evdocs
-  (add-hook 'python-mode-hook
-(lambda () (add-to-list 'evdocs-current-docs "python~3.9"
+(add-hook 'python-mode-hook
+  (lambda () (setq-local devdocs-current-docs '("python~3.9"
 ```
 
 In the `*devdocs*` buffer, navigation keys similar to Info and
diff --git a/devdocs.el b/devdocs.el
index b06b403..283bd8d 100644
--- a/devdocs.el
+++ b/devdocs.el
@@ -125,6 +125,7 @@ REFRESH, if non-nil, downloads the DevDocs document list 
anew."
   (file-exists-p
(expand-file-name "metadata" (expand-file-name doc devdocs-data-dir
 
+;;;###autoload
 (defun devdocs-delete (doc)
   "Delete DevDocs documentation.
 DOC is a document slug."
@@ -137,6 +138,7 @@ DOC is a document slug."
 (delete-directory dest t t)
   (user-error (format "Documentation for `%s' is not installed" doc)
 
+;;;###autoload
 (defun devdocs-install (doc)
   "Download and install DevDocs documentation.
 DOC is a document slug."
@@ -339,6 +341,7 @@ All entries of `devdocs-current-docs' are listed."
(thing-at-point 'symbol))
   cands)
 
+;;;###autoload
 (defun devdocs-lookup (&optional ask-docs)
   "Look up a DevDocs documentation entry.
 
@@ -359,6 +362,7 @@ non-nil), first read a list of available documents and set
 
 ;;; Compatibility with the old devdocs package
 
+;;;###autoload
 (defun devdocs-search (query)
   "Search for QUERY in the DevDocs website."
   (interactive (list (read-from-minibuffer



[elpa] externals/devdocs updated (fdbe3fb -> 8a3f4e0)

2021-05-29 Thread ELPA Syncer
elpasync pushed a change to branch externals/devdocs.

  from  fdbe3fb   Prepare for first GNU ELPA release
   new  ec4085a   Add autoloads
   new  8a3f4e0   Eat disambiguation cookies


Summary of changes:
 README.md  |  5 ++---
 devdocs.el | 33 +++--
 2 files changed, 25 insertions(+), 13 deletions(-)



[elpa] externals/devdocs 8a3f4e0 2/2: Eat disambiguation cookies

2021-05-29 Thread ELPA Syncer
branch: externals/devdocs
commit 8a3f4e00e0a2113c604c631f81f7db90c1b56d5b
Author: Augusto Stoffel 
Commit: Augusto Stoffel 

Eat disambiguation cookies
---
 devdocs.el | 27 ++-
 1 file changed, 18 insertions(+), 9 deletions(-)

diff --git a/devdocs.el b/devdocs.el
index 283bd8d..7827c53 100644
--- a/devdocs.el
+++ b/devdocs.el
@@ -307,9 +307,8 @@ URL can be an internal link in a DevDocs document."
   "A list of entries in DOC, as propertized strings."
   (seq-map (lambda (it)
  (let ((s (let-alist it
-;; Disambiguate of entries with same .name
-(format #("%s\0%c%s" 2 7
-  (invisible t rear-nonsticky t 
cursor-intangible t))
+;; Disambiguation cookie for entries with same .name
+(format #("%s\0%c%s" 2 7 (invisible t))
 .name .index .doc
(prog1 s (put-text-property 0 1 'devdocs--data it s
(alist-get 'entries (devdocs--index doc
@@ -324,6 +323,14 @@ URL can be an internal link in a DevDocs document."
 (concat " " (propertize " " 'display '(space :align-to 40))
  (devdocs--doc-title .doc) devdocs-separator .type)))
 
+(defun devdocs--eat-cookie (&rest _)
+  "Eat the disambiguation cookie in the minibuffer."
+  (let* ((pos (minibuffer-prompt-end))
+ (max (point-max)))
+(while (and (< pos max) (/= 0 (char-after pos)))
+  (setq pos (1+ pos)))
+(add-text-properties pos max '(invisible t rear-nonsticky t 
cursor-intangible t
+
 (defun devdocs--read-entry (prompt)
   "Read the name of an entry in a document, using PROMPT.
 All entries of `devdocs-current-docs' are listed."
@@ -334,12 +341,14 @@ All entries of `devdocs-current-docs' are listed."
  (coll (lambda (string predicate action)
  (if (eq action 'metadata)
  metadata
-   (complete-with-action action cands string predicate)
-(devdocs--get-data
- (car (member (completing-read prompt coll nil t nil
-   'devdocs-history
-   (thing-at-point 'symbol))
-  cands)
+   (complete-with-action action cands string predicate
+ (cand (minibuffer-with-setup-hook
+   (lambda ()
+ (add-hook 'after-change-functions 'devdocs--eat-cookie 
nil t))
+   (completing-read prompt coll nil t nil
+'devdocs-history
+(thing-at-point 'symbol)
+(devdocs--get-data (car (member cand cands)
 
 ;;;###autoload
 (defun devdocs-lookup (&optional ask-docs)



[elpa] externals/vertico e92da20: Credit Iñigo Serna as co-author of 8232ad29cf99d1bb93fcad9658e89636c3d2e0a7

2021-05-29 Thread ELPA Syncer
branch: externals/vertico
commit e92da204f6f9e718c493ee902a33f67628299126
Author: Daniel Mendler 
Commit: Daniel Mendler 

Credit Iñigo Serna as co-author of 8232ad29cf99d1bb93fcad9658e89636c3d2e0a7

Co-authored-by: Iñigo Serna 

See #47



[elpa] externals/consult e538f16: Version 0.8

2021-05-29 Thread ELPA Syncer
branch: externals/consult
commit e538f168d9d16c926d92c19d6131298962b778a9
Author: Daniel Mendler 
Commit: Daniel Mendler 

Version 0.8
---
 CHANGELOG.org | 2 +-
 consult.el| 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.org b/CHANGELOG.org
index a208fef..0a4c05e 100644
--- a/CHANGELOG.org
+++ b/CHANGELOG.org
@@ -2,7 +2,7 @@
 #+author: Daniel Mendler
 #+language: en
 
-* Development version
+* Version 0.8 (2021-05-30)
 
 - Async commands: Do not fix vertical height in Selectrum.
 - =consult-imenu=: Deduplicate items (some imenu backends generate duplicates).
diff --git a/consult.el b/consult.el
index 0453ed9..4231343 100644
--- a/consult.el
+++ b/consult.el
@@ -5,7 +5,7 @@
 ;; Author: Daniel Mendler and Consult contributors
 ;; Maintainer: Daniel Mendler 
 ;; Created: 2020
-;; Version: 0.7
+;; Version: 0.8
 ;; Package-Requires: ((emacs "26.1"))
 ;; Homepage: https://github.com/minad/consult
 



[elpa] externals/marginalia ca9a5e3: Version 0.6

2021-05-29 Thread ELPA Syncer
branch: externals/marginalia
commit ca9a5e35913569d66d34193a87d8511b2bb9d2b2
Author: Daniel Mendler 
Commit: Daniel Mendler 

Version 0.6
---
 marginalia.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/marginalia.el b/marginalia.el
index dce03ed..755b10c 100644
--- a/marginalia.el
+++ b/marginalia.el
@@ -5,7 +5,7 @@
 ;; Author: Omar Antolín Camarena , Daniel Mendler 

 ;; Maintainer: Omar Antolín Camarena , Daniel Mendler 

 ;; Created: 2020
-;; Version: 0.5
+;; Version: 0.6
 ;; Package-Requires: ((emacs "26.1"))
 ;; Homepage: https://github.com/minad/marginalia
 



[elpa] externals/corfu b247e7f: Use pcase-let

2021-05-29 Thread ELPA Syncer
branch: externals/corfu
commit b247e7f0c8113a4197a38c1e6325b91503145915
Author: Daniel Mendler 
Commit: Daniel Mendler 

Use pcase-let
---
 corfu.el | 33 -
 1 file changed, 16 insertions(+), 17 deletions(-)

diff --git a/corfu.el b/corfu.el
index 21ac8ea..84aa10d 100644
--- a/corfu.el
+++ b/corfu.el
@@ -371,22 +371,21 @@ Set to nil in order to disable confirmation."
 
 (defun corfu--recompute-candidates (str metadata pt table pred)
   "Recompute candidates from STR, METADATA, PT, TABLE and PRED."
-  (let* ((before (substring str 0 pt))
- (after (substring str pt))
- ;; bug#47678: `completion-boundaries` fails for `partial-completion`
- ;; if the cursor is moved between the slashes of "~//".
- ;; See also vertico.el which has the same issue.
- (bounds (or (condition-case nil
- (completion-boundaries before
-table
-pred
-after)
-   (t (cons 0 (length after))
- (field (substring str (car bounds) (+ pt (cdr bounds
- (completing-file (eq (corfu--metadata-get metadata 'category) 'file))
- (all-hl (corfu--all-completions str table pred pt metadata))
- (all (car all-hl))
- (base (or (when-let (z (last all)) (prog1 (cdr z) (setcdr z nil))) 
0)))
+  (pcase-let* ((before (substring str 0 pt))
+   (after (substring str pt))
+   ;; bug#47678: `completion-boundaries` fails for 
`partial-completion`
+   ;; if the cursor is moved between the slashes of "~//".
+   ;; See also vertico.el which has the same issue.
+   (bounds (or (condition-case nil
+   (completion-boundaries before
+  table
+  pred
+  after)
+ (t (cons 0 (length after))
+   (field (substring str (car bounds) (+ pt (cdr bounds
+   (completing-file (eq (corfu--metadata-get metadata 'category) 
'file))
+   (`(,all . ,hl) (corfu--all-completions str table pred pt 
metadata))
+   (base (or (when-let (z (last all)) (prog1 (cdr z) (setcdr z 
nil))) 0)))
 ;; Filter the ignored file extensions. We cannot use modified predicate 
for this filtering,
 ;; since this breaks the special casing in the 
`completion-file-name-table' for `file-exists-p'
 ;; and `file-directory-p'.
@@ -402,7 +401,7 @@ Set to nil in order to disable confirmation."
 (when (and completing-file (not (string-suffix-p "/" field)))
   (setq all (corfu--move-to-front (concat field "/") all)))
 (setq all (corfu--move-to-front field all))
-(list base (length all) all (cdr all-hl
+(list base (length all) all hl)))
 
 (defun corfu--update-candidates (str metadata pt table pred)
   "Update candidates from STR, METADATA, PT, TABLE and PRED."



[elpa] externals/vertico 5516cff: Use pcase-let*

2021-05-29 Thread ELPA Syncer
branch: externals/vertico
commit 5516cff8bea2451eb4623954641998a206b86100
Author: Daniel Mendler 
Commit: Daniel Mendler 

Use pcase-let*
---
 vertico.el | 21 ++---
 1 file changed, 10 insertions(+), 11 deletions(-)

diff --git a/vertico.el b/vertico.el
index 19f3019..c5782e6 100644
--- a/vertico.el
+++ b/vertico.el
@@ -260,16 +260,15 @@
 
 (defun vertico--recompute-candidates (pt content bounds metadata)
   "Recompute candidates given PT, CONTENT, BOUNDS and METADATA."
-  (let* ((field (substring content (car bounds) (+ pt (cdr bounds
- ;; `minibuffer-completing-file-name' has been obsoleted by the 
completion category
- (completing-file (eq 'file (completion-metadata-get metadata 
'category)))
- (all-hl (vertico--all-completions content
-   minibuffer-completion-table
-   minibuffer-completion-predicate
-   pt metadata))
- (all (car all-hl))
- (base (or (when-let (z (last all)) (prog1 (cdr z) (setcdr z nil))) 0))
- (def (or (car-safe minibuffer-default) minibuffer-default)))
+  (pcase-let* ((field (substring content (car bounds) (+ pt (cdr bounds
+   ;; `minibuffer-completing-file-name' has been obsoleted by the 
completion category
+   (completing-file (eq 'file (completion-metadata-get metadata 
'category)))
+   (`(,all . ,hl) (vertico--all-completions content
+
minibuffer-completion-table
+
minibuffer-completion-predicate
+pt metadata))
+   (base (or (when-let (z (last all)) (prog1 (cdr z) (setcdr z 
nil))) 0))
+   (def (or (car-safe minibuffer-default) minibuffer-default)))
 ;; Filter the ignored file extensions. We cannot use modified predicate 
for this filtering,
 ;; since this breaks the special casing in the 
`completion-file-name-table' for `file-exists-p'
 ;; and `file-directory-p'.
@@ -289,7 +288,7 @@
 (setq all (vertico--move-to-front field all))
 (when-let (group-fun (completion-metadata-get metadata 'group-function))
   (setq all (vertico--group-by group-fun all)))
-(list base (length all) all (cdr all-hl
+(list base (length all) all hl)))
 
 (defun vertico--group-by (fun elems)
   "Group ELEMS by FUN."