[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/el-search 061464c 303/332: [el-search] Improvise eldoc
From: |
Stefan Monnier |
Subject: |
[elpa] externals/el-search 061464c 303/332: [el-search] Improvise eldoc support for search pattern prompt |
Date: |
Tue, 1 Dec 2020 15:49:09 -0500 (EST) |
branch: externals/el-search
commit 061464c94568000b76fc0f7929e216c12ac18d8b
Author: Michael Heerdegen <michael_heerdegen@web.de>
Commit: Michael Heerdegen <michael_heerdegen@web.de>
[el-search] Improvise eldoc support for search pattern prompt
* packages/el-search/el-search.el
(el-search-eldoc-documentation-function): New function.
(el-search-read-pattern-setup-mb): Install
'el-search-eldoc-documentation-function' buffer-locally.
---
el-search.el | 27 ++++++++++++++++++++++++++-
1 file changed, 26 insertions(+), 1 deletion(-)
diff --git a/el-search.el b/el-search.el
index 229a8a1..d671e0c 100644
--- a/el-search.el
+++ b/el-search.el
@@ -948,6 +948,29 @@ nil."
(timer-set-time el-search--mb-hints-timer (time-add (current-time)
el-search-mb-hints-delay))
(timer-activate el-search--mb-hints-timer)))
+(defun el-search-eldoc-documentation-function ()
+ (when (catch 'result
+ (save-excursion
+ (while (condition-case nil
+ (progn (backward-up-list)
+ (if (el-search-looking-at '`(,(or 'pred 'guard)
. ,_))
+ (throw 'result nil)
+ t))
+ (scan-error nil)))
+ t))
+ (pcase-let (((and current-fsym `(,fnsym ,index))
+ (elisp--fnsym-in-current-sexp)))
+ (defvar el-search--pcase-macros) ;defined later
+ (let (pattern-def docstring help)
+ (and fnsym
+ (setq pattern-def (cdr (assoc fnsym el-search--pcase-macros)))
+ ;; This is what `elisp-get-fnsym-args-string' (which we can't
use) does
+ (setq docstring (documentation pattern-def))
+ (setq help (help-split-fundoc docstring fnsym))
+ (elisp--highlight-function-argument
+ current-fsym (elisp-function-argstring (car help))
+ index (concat (symbol-name fnsym) ": ")))))))
+
(defvar el-search--this-session-match-count-data nil)
(defun el-search-read-pattern-setup-mb ()
@@ -958,7 +981,9 @@ nil."
(setq el-search--this-session-match-count-data nil)
(when (timerp el-search--mb-hints-timer) (cancel-timer
el-search--mb-hints-timer))
(setq el-search--mb-hints-timer nil)
- (add-hook 'post-command-hook #'el-search-read-pattern-trigger-mb-hints t
t)))
+ (add-hook 'post-command-hook #'el-search-read-pattern-trigger-mb-hints t
t))
+ (add-function :before-until (local 'eldoc-documentation-function)
+ #'el-search-eldoc-documentation-function))
(defvar el-search--search-pattern-1-do-fun nil)
(defvar el-search--busy-animation
- [elpa] externals/el-search dfaa7f2 244/332: [el-search] Some more minor tweaks, (continued)
- [elpa] externals/el-search dfaa7f2 244/332: [el-search] Some more minor tweaks, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search a6c23b5 250/332: * el-search/el-search.el: Correct NOERROR argument uses, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 2a02a81 277/332: [el-search] Let el-search-query-replace add undo boundaries, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 864f0ed 276/332: [el-search] Provide el-search-occur-search-object earlier, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 23cf24d 275/332: [el-search] Enhancements to my last two commits, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search effcb50 271/332: [el-search] Make r hit twice restore a replaced match, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search b9ba337 283/332: [el-search] Allow to work without installing key bindings, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 841a027 287/332: [el-search] Some optimization tweaks, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 70634b7 298/332: [el-search] Avoid bytecomp warning windows pop up, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 22c2f25 297/332: [el-search] Display colored defun match count, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 061464c 303/332: [el-search] Improvise eldoc support for search pattern prompt,
Stefan Monnier <=
- [elpa] externals/el-search 9f4a9e5 310/332: [el-search] Improve "Make replacement editable and ediff'able", Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 3da4529 316/332: [el-search] Minor tweaks and version bump, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search e96c51e 319/332: [el-search] Key syntax cleanup, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search f091ed5 320/332: [el-search] Prefer rx forms to stringish regexps, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 47ee6b1 226/332: Improve working of `el-search-kill-left-over-search-buffers', Stefan Monnier, 2020/12/01
- [elpa] externals/el-search e21a53d 240/332: [el-search] Use current buffer to check for matches in replacement, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 188fb4a 259/332: [el-search] Minor tweaks and bump version to 1.7.5, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search d909f2e 260/332: [el-search] Follow-ups to transient map handling, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search d9950e1 264/332: [el-search] Fix nested match issues in *El Occur*, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search d9b2ff6 257/332: [el-search] Extend meaning of C-J prefix arg, Stefan Monnier, 2020/12/01