[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/leaf 31e1fac 07/46: Added support to find the leaf bloc
From: |
Stefan Monnier |
Subject: |
[elpa] externals/leaf 31e1fac 07/46: Added support to find the leaf block. |
Date: |
Mon, 15 Mar 2021 22:20:42 -0400 (EDT) |
branch: externals/leaf
commit 31e1fac90793be6948000f1b832b2e2b81d6d0e4
Author: Z572 <873216071@qq.com>
Commit: Zheng Junjie <873216071@qq.com>
Added support to find the leaf block.
---
leaf.el | 36 +++++++++++++++++++++++++++++++++++-
1 file changed, 35 insertions(+), 1 deletion(-)
diff --git a/leaf.el b/leaf.el
index ee95eb5..2744009 100644
--- a/leaf.el
+++ b/leaf.el
@@ -54,6 +54,7 @@
Same as `list' but this macro does not evaluate any arguments."
`(quote ,args))
+(defvar leaf--paths nil)
(defvar leaf--raw)
(defvar leaf--name)
(defvar leaf--key)
@@ -66,6 +67,7 @@ Same as `list' but this macro does not evaluate any
arguments."
(defvar leaf-keywords
(leaf-list
:disabled (unless (eval (car leaf--value)) `(,@leaf--body))
+ :leaf-path (progn (when (and load-in-progress (eval (car
leaf--value))) (add-to-list 'leaf--paths (cons leaf--name load-file-name)))
`(,@leaf--body))
:leaf-protect (if (and leaf--body (eval (car leaf--value)))
`((leaf-handler-leaf-protect ,leaf--name ,@leaf--body)) `(,@leaf--body))
:load-path `(,@(mapcar (lambda (elm) `(add-to-list 'load-path
,elm)) leaf--value) ,@leaf--body)
:load-path* `(,@(mapcar (lambda (elm) `(add-to-list 'load-path
(locate-user-emacs-file ,elm))) leaf--value) ,@leaf--body)
@@ -354,7 +356,7 @@ Sort by `leaf-sort-leaf--values-plist' in this order.")
(defcustom leaf-system-defaults (leaf-list
:leaf-autoload t :leaf-defer t :leaf-protect t
- :leaf-defun t :leaf-defvar t)
+ :leaf-defun t :leaf-defvar t :leaf-path t)
"The value for all `leaf' blocks for leaf system."
:type 'sexp
:group 'leaf)
@@ -719,6 +721,38 @@ see `alist-get'."
(display-buffer buf))))
+;;;; find-function
+
+(defcustom leaf-find-regexp
+ ".*([[:space:]]*leaf[[:space:]]+%s"
+ "The regexp used by `leaf-find' to search for a leaf block.
+Note it must contain a `%s' at the place where `format'
+should insert the leaf name."
+ :type 'regexp
+ :group 'leaf)
+
+(with-eval-after-load 'find-func
+ (defvar find-function-regexp-alist)
+ (add-to-list 'find-function-regexp-alist
+ '(leaf . leaf-find-regexp)))
+
+(defun leaf-find (name)
+ "Find the leaf block of NAME."
+ (interactive
+ (list (completing-read
+ "Find leaf: "
+ (delete-dups (mapcar #'car leaf--paths)))))
+ (require 'find-func)
+ (let* ((name (intern name))
+ (paths (flatten-tree (mapcar (lambda (a) (when (equal name (car a))
(cdr a))) leaf--paths)))
+ (path (if (= (length paths) 1) paths (list (completing-read "Select
one: " paths))))
+ (location (apply #'find-function-search-for-symbol name 'leaf path)))
+ (prog1 (pop-to-buffer (car location))
+ (when (cdr location)
+ (goto-char (cdr location)))
+ (run-hooks 'find-function-after-hook))))
+
+
;;;; Key management
(defvar leaf-key-override-global-map (make-keymap)
- [elpa] externals/leaf ce10d84 22/46: use mapcan for old Emacs<=27.1, (continued)
- [elpa] externals/leaf ce10d84 22/46: use mapcan for old Emacs<=27.1, Stefan Monnier, 2021/03/15
- [elpa] externals/leaf 3e28eb0 31/46: fix list minor issue, Stefan Monnier, 2021/03/15
- [elpa] externals/leaf 641672c 35/46: expand leaf--paths initialize sexp, Stefan Monnier, 2021/03/15
- [elpa] externals/leaf 896da3e 44/46: fix leaf-find-regexp., Stefan Monnier, 2021/03/15
- [elpa] externals/leaf b1fe4f2 46/46: Merge pull request #481 from Z572/fix-leaf-find-regexp, Stefan Monnier, 2021/03/15
- [elpa] externals/leaf b64a2fa 40/46: fix test, Stefan Monnier, 2021/03/15
- [elpa] externals/leaf d6c12f1 33/46: tagged v4.3.7, Stefan Monnier, 2021/03/15
- [elpa] externals/leaf 1db35d4 19/46: format sexp, Stefan Monnier, 2021/03/15
- [elpa] externals/leaf 39e0359 37/46: Merge pull request #480 from conao3/feature#479, Stefan Monnier, 2021/03/15
- [elpa] externals/leaf 1ee956d 42/46: tagged v4.3.9, Stefan Monnier, 2021/03/15
- [elpa] externals/leaf 31e1fac 07/46: Added support to find the leaf block.,
Stefan Monnier <=
- [elpa] externals/leaf bafd5c5a 18/46: move leaf-find-regexp definition, Stefan Monnier, 2021/03/15
- [elpa] externals/leaf cb35aac 34/46: Merge pull request #478 from conao3/feature#477, Stefan Monnier, 2021/03/15
- [elpa] externals/leaf 2d210be 24/46: expand :leaf-path keyword anytime but set suppress-keywords, Stefan Monnier, 2021/03/15
- [elpa] externals/leaf fbe9bfb 43/46: Merge pull request #468 from Z572/leaf-key-list-mode, Stefan Monnier, 2021/03/15
- [elpa] externals/leaf 38ef506 45/46: tagged v4.4.0, Stefan Monnier, 2021/03/15
- [elpa] externals/leaf 1695574 11/46: update document, tagged v4.3.4, Stefan Monnier, 2021/03/15
- [elpa] externals/leaf 005481d 28/46: tagged v4.3.6, Stefan Monnier, 2021/03/15
- [elpa] externals/leaf fc8924d 27/46: add just eval-buffer, byte-compile situation, Stefan Monnier, 2021/03/15
- [elpa] externals/leaf fe1003f 39/46: align load-file-name, Stefan Monnier, 2021/03/15