Add recursive open/close
This commit is contained in:
parent
84ee2e8dcb
commit
053c2c7ac8
22
origami.el
22
origami.el
@ -494,6 +494,17 @@ otherwise fetch cached tree."
|
|||||||
(origami-apply-new-tree buffer tree (origami-fold-assoc path (lambda (node)
|
(origami-apply-new-tree buffer tree (origami-fold-assoc path (lambda (node)
|
||||||
(origami-fold-open-set node t)))))))
|
(origami-fold-open-set node t)))))))
|
||||||
|
|
||||||
|
(defun origami-open-node-recursively (buffer point)
|
||||||
|
(interactive (list (current-buffer) (point)))
|
||||||
|
(-when-let (tree (origami-get-fold-tree buffer))
|
||||||
|
(-when-let (path (origami-fold-find-path-containing tree point))
|
||||||
|
(origami-apply-new-tree
|
||||||
|
buffer tree (origami-fold-assoc path
|
||||||
|
(lambda (node)
|
||||||
|
(origami-fold-map (lambda (node)
|
||||||
|
(origami-fold-open-set node t))
|
||||||
|
node)))))))
|
||||||
|
|
||||||
(defun origami-show-node (buffer point)
|
(defun origami-show-node (buffer point)
|
||||||
"Like `origami-open-node' but opens parent nodes recursively so
|
"Like `origami-open-node' but opens parent nodes recursively so
|
||||||
as to ensure seeing where POINT is."
|
as to ensure seeing where POINT is."
|
||||||
@ -513,6 +524,17 @@ as to ensure seeing where POINT is."
|
|||||||
path (lambda (node)
|
path (lambda (node)
|
||||||
(origami-fold-open-set node nil)))))))
|
(origami-fold-open-set node nil)))))))
|
||||||
|
|
||||||
|
(defun origami-close-node-recursively (buffer point)
|
||||||
|
(interactive (list (current-buffer) (point)))
|
||||||
|
(-when-let (tree (origami-get-fold-tree buffer))
|
||||||
|
(-when-let (path (origami-fold-find-path-containing tree point))
|
||||||
|
(origami-apply-new-tree
|
||||||
|
buffer tree (origami-fold-assoc path
|
||||||
|
(lambda (node)
|
||||||
|
(origami-fold-map (lambda (node)
|
||||||
|
(origami-fold-open-set node nil))
|
||||||
|
node)))))))
|
||||||
|
|
||||||
(defun origami-toggle-node (buffer point)
|
(defun origami-toggle-node (buffer point)
|
||||||
(interactive (list (current-buffer) (point)))
|
(interactive (list (current-buffer) (point)))
|
||||||
(-when-let (tree (origami-get-fold-tree buffer))
|
(-when-let (tree (origami-get-fold-tree buffer))
|
||||||
|
Loading…
Reference in New Issue
Block a user