[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/el-search fac5586 285/332: [el-search] Improve my last
From: |
Stefan Monnier |
Subject: |
[elpa] externals/el-search fac5586 285/332: [el-search] Improve my last commit "Add C-h help" |
Date: |
Tue, 1 Dec 2020 15:49:05 -0500 (EST) |
branch: externals/el-search
commit fac5586088f74b77e314cc85cd6041a37f0fc2e2
Author: Michael Heerdegen <michael_heerdegen@web.de>
Commit: Michael Heerdegen <michael_heerdegen@web.de>
[el-search] Improve my last commit "Add C-h help"
Also bump version to 1.9.1.
* packages/el-search/el-search.el
(el-search-help-list-bindings-verbose): Use 'with-help-window'.
(el-search-help-list-bindings--1): Make it work with
'with-help-window'.
Skip menu bindings in binding lists.
(el-search-help-list-bindings): Rewrite to make it work with new
'el-search-help-list-bindings--1' version.
---
el-search.el | 139 ++++++++++++++++++++++++++++++-----------------------------
1 file changed, 71 insertions(+), 68 deletions(-)
diff --git a/el-search.el b/el-search.el
index 3bdd6cd..97b9552 100644
--- a/el-search.el
+++ b/el-search.el
@@ -7,7 +7,7 @@
;; Created: 29 Jul 2015
;; Keywords: lisp
;; Compatibility: GNU Emacs 25
-;; Version: 1.9.0
+;; Version: 1.9.1
;; Package-Requires: ((emacs "25") (stream "2.2.4") (cl-print "1.0"))
@@ -1966,85 +1966,88 @@ map until you finished el-searching."
(let ((display-buffer-overriding-action '(nil (inhibit-same-window . t))))
(el-search-help-for-help-internal)))
-(defun el-search-help-list-bindings--1 (buffer search-buffer &optional more)
- (with-current-buffer buffer
- (erase-buffer)
- (cl-flet* ((keys-string
- (lambda (cmd-name)
- (let* ((get-keys
- (lambda (&optional map)
- (with-current-buffer search-buffer
- (where-is-internal cmd-name (and map (list
map))))))
- (tmap (if el-search-use-transient-map
- el-search-prefix-key-transient-map
- el-search-basic-transient-map))
- (keys (nreverse (or (funcall get-keys tmap)
- (funcall get-keys)))))
- (if keys (mapconcat #'key-description keys ", ")
- "no key"))))
- (cmd-help
- (lambda (cmd-name)
- (let* ((maxl 34)
- (add-padding
- (lambda (s)
- (let ((sl (length s)))
- (concat (if (<= maxl sl) s
- (concat s " " (make-string (- maxl sl
1) ?.)))
- " ")))))
- (if more
- (concat
- "`" (symbol-name cmd-name) "'"
- " (" (keys-string cmd-name) ")\n"
- (when-let ((docstring (documentation cmd-name)))
- (string-match "\\(\\`.*$\\)" docstring)
- (concat (match-string 1 docstring) "\n"))
- "\n")
- (concat " "
- (funcall add-padding (symbol-name cmd-name))
- (keys-string cmd-name)
- "\n"))))))
- (insert
- "Bindings for controlling el-searches:\n\n"
- (cmd-help 'el-search-pattern)
- (cmd-help 'el-search-pattern-backward)
- (cmd-help 'el-search-help-list-bindings)
- (cmd-help 'el-search-help-list-bindings-verbose)
- (cmd-help 'el-search-pause-search)
- (cmd-help 'el-search-keyboard-quit)
- (cmd-help 'el-search-occur)
- (cmd-help 'el-search-jump-to-search-head)
- (cmd-help 'el-search-from-beginning)
- (cmd-help 'el-search-last-buffer-match)
- (cmd-help 'el-search-scroll-down)
- (cmd-help 'el-search-scroll-up)
- (cmd-help 'el-search-continue-in-next-buffer)
- (cmd-help 'el-search-skip-directory)
- (cmd-help 'el-search-to-register)
- (cmd-help 'el-search-query-replace)
- (if more "" (substitute-command-keys "
+(defun el-search-help-list-bindings--1 (&optional verbose)
+ (cl-flet* ((keys-string
+ (lambda (cmd-name)
+ (let* ((get-keys
+ (lambda (&optional map)
+ (seq-filter
+ (lambda (binding)
+ (pcase binding
+ ((seq 'menu-bar) nil)
+ (_ t)))
+ (where-is-internal cmd-name (and map (list map))))))
+ (tmap (if el-search-use-transient-map
+ el-search-prefix-key-transient-map
+ el-search-basic-transient-map))
+ (keys (nreverse (or (funcall get-keys tmap)
+ (funcall get-keys)))))
+ (if keys (mapconcat #'key-description keys ", ")
+ "no key"))))
+ (cmd-help
+ (lambda (cmd-name)
+ (let* ((maxl 34)
+ (add-padding
+ (lambda (s)
+ (let ((sl (length s)))
+ (concat (if (<= maxl sl) s
+ (concat s " " (make-string (- maxl sl 1)
?.)))
+ " ")))))
+ (princ (if verbose
+ (concat
+ "`" (symbol-name cmd-name) "'"
+ " (" (keys-string cmd-name) ")\n"
+ (when-let ((docstring (documentation cmd-name)))
+ (string-match "\\(\\`.*$\\)" docstring)
+ (concat (match-string 1 docstring) "\n"))
+ "\n")
+ (concat " "
+ (funcall add-padding (symbol-name cmd-name))
+ (keys-string cmd-name)
+ "\n")))))))
+ (princ "Bindings for controlling el-searches:\n\n")
+ (cmd-help 'el-search-pattern)
+ (cmd-help 'el-search-pattern-backward)
+ (cmd-help 'el-search-help-list-bindings)
+ (cmd-help 'el-search-help-list-bindings-verbose)
+ (cmd-help 'el-search-pause-search)
+ (cmd-help 'el-search-keyboard-quit)
+ (cmd-help 'el-search-occur)
+ (cmd-help 'el-search-jump-to-search-head)
+ (cmd-help 'el-search-from-beginning)
+ (cmd-help 'el-search-last-buffer-match)
+ (cmd-help 'el-search-scroll-down)
+ (cmd-help 'el-search-scroll-up)
+ (cmd-help 'el-search-continue-in-next-buffer)
+ (cmd-help 'el-search-skip-directory)
+ (cmd-help 'el-search-to-register)
+ (cmd-help 'el-search-query-replace)
+ (unless verbose (princ (substitute-command-keys "
Toggle visibility of this window with \
`\\<el-search-basic-transient-map>\\[el-search-help-list-bindings]'"))))
- (goto-char (point-min)))
- buffer)
+ standard-output)
(defun el-search-help-list-bindings ()
"Toggle quick help window."
(interactive)
(setq this-command 'el-search-pattern)
(unless (el-search-close-quick-help-maybe)
- (let* ((help-buffer (el-search-help-list-bindings--1
- (get-buffer-create el-search-quick-help-buffer-name)
- (current-buffer)))
- (help-window (display-buffer-pop-up-window help-buffer '())))
- (fit-window-to-buffer help-window)
- (with-current-buffer help-buffer (setq-local el-search-help-window
help-window)))))
+ (let ((help-buffer (get-buffer-create el-search-quick-help-buffer-name)))
+ (with-current-buffer help-buffer
+ (let ((inhibit-read-only t))
+ (erase-buffer)))
+ (let ((standard-output help-buffer))
+ (el-search-help-list-bindings--1))
+ (let ((help-window (display-buffer-pop-up-window help-buffer '())))
+ (fit-window-to-buffer help-window)
+ (with-current-buffer help-buffer
+ (setq-local el-search-help-window help-window))))))
(defun el-search-help-list-bindings-verbose ()
"List bindings and first lines of documentation."
(interactive)
- (temp-buffer-window-show
- (el-search-help-list-bindings--1
- (get-buffer-create "*Help*") (current-buffer) 'more)))
+ (with-help-window (help-buffer)
+ (el-search-help-list-bindings--1 'verbose)))
(defun el-search-help-list-patterns ()
(interactive)
- [elpa] externals/el-search 5c3bd4e 247/332: [el-search] Add bindings for first/last match jumping, (continued)
- [elpa] externals/el-search 5c3bd4e 247/332: [el-search] Add bindings for first/last match jumping, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 3699425 246/332: [el-search] Add command 'el-search-last-buffer-match', Stefan Monnier, 2020/12/01
- [elpa] externals/el-search cf68daf 249/332: [el-search] Avoid most calls to 'scan-sexps', Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 894f8b1 254/332: [el-search] More minor tweaks, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 6c5a6b4 265/332: [el-search] Fix an infloop in el-search--search-pattern-1, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search b830be5 263/332: [el-search] Some scrolling tweaks, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search e60f228 267/332: [el-search] Don't try to kill modified buffers, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 34f734e 258/332: [el-search] Add special scroll commands, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search d4ad652 278/332: [el-search] Implement an explicit quit command, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search fbe70bf 284/332: [el-search] Add C-h help, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search fac5586 285/332: [el-search] Improve my last commit "Add C-h help",
Stefan Monnier <=
- [elpa] externals/el-search 23911d1 288/332: [el-search] Add menus, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 68fcfcd 286/332: [el-search] Include preceding comments in occur defun context, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 90062c5 290/332: Update copyrights of some packages, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 120c662 296/332: [el-search] Minibuffer pattern prompt hints part 2, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 668d049 302/332: [el-search] Add el-search-list-defined-patterns, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search bb978b2 306/332: [el-search] Fix behavior after completed single-buffer search, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 985ca3c 312/332: [el-search] Add "List patterns" menu item, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search f5e8235 321/332: [el-search] C-c C-c in edit-replacement means replace, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 9d8798f 140/332: Work around more manifestations of Emacs bug #24542, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 7d621de 216/332: * el-search/el-search.el: Some minor tweaks, Stefan Monnier, 2020/12/01