Function: kotl-mode:kill-tree
kotl-mode:kill-tree is an interactive and byte-compiled function
defined in kotl-mode.el.
Signature
(kotl-mode:kill-tree &optional ARG)
Documentation
Kill ARG following trees starting with tree rooted at point.
An ARG of 0 deletes the entire koutline and inserts an empty #1 cell, restarting the outline fresh once you save it.
If ARG is a negative number, nothing is done.
Key Bindings
Source Code
;; Defined in ~/.emacs.d/elpa/hyperbole-20260414.325/kotl/kotl-mode.el
(defun kotl-mode:kill-tree (&optional arg)
"Kill ARG following trees starting with tree rooted at point.
An ARG of 0 deletes the entire koutline and inserts an empty #1 cell,
restarting the outline fresh once you save it.
If ARG is a negative number, nothing is done."
(interactive "*p")
(or (integerp arg) (setq arg 1))
(let ((killed)
(label (kcell-view:label))
(lbl-sep-len (kview:label-separator-length kotl-kview))
start end sib)
(when (zerop arg)
(setq start (point-min)
end (point-max)
sib nil
killed t)
;; Don't want to delete any prior cells, so if on last cell, ensure
;; this is the last one killed.
(if (kotl-mode:last-cell-p)
(progn (setq arg 0)
(kview:delete-region start end))
(kview:delete-region start end))
(kview:id-counter-set kotl-kview 0))
(while (> arg 0)
(setq start (kotl-mode:tree-start)
end (kotl-mode:tree-end)
sib (kcell-view:sibling-p nil nil lbl-sep-len)
arg (1- arg)
killed t)
;; Don't want to delete any prior cells, so if on last cell, ensure
;; this is the last one killed.
(if (kotl-mode:last-cell-p)
(progn (setq arg 0)
(kview:delete-region start end))
(kview:delete-region start end)
(unless (kotl-mode:buffer-empty-p)
(kotl-mode:to-valid-position))))
(when killed
(cond (sib (klabel-type:update-labels label))
((kotl-mode:buffer-empty-p)
;; Always leave at least 1 visible cell within a view.
(kview:add-cell "1" 1)))
(kotl-mode:to-valid-position))))