branch: externals/boxy-headings commit d9ff199273bd96011fe5bfe20cafab57dc189930 Author: Amy Grinn <grinn....@gmail.com> Commit: Amy Grinn <grinn....@gmail.com>
Bug fix: remove with-slots --- boxy-headings.el | 123 +++++++++++++++++++++++++++---------------------------- 1 file changed, 61 insertions(+), 62 deletions(-) diff --git a/boxy-headings.el b/boxy-headings.el index 77921c9963..b4d198cf8f 100644 --- a/boxy-headings.el +++ b/boxy-headings.el @@ -3,7 +3,7 @@ ;; Copyright (C) 2021-2025 Free Software Foundation, Inc. ;; Author: Amy Grinn <grinn....@gmail.com> -;; Version: 2.1.9 +;; Version: 2.1.10 ;; File: boxy-headings.el ;; Package-Requires: ((emacs "26.1") (boxy "2.0") (org "9.4")) ;; Keywords: tools @@ -236,67 +236,66 @@ diagram." (defun boxy-headings--add-heading (heading parent) "Add HEADING to world as a child of PARENT." - (with-slots (markers (parent-level level)) parent - (with-current-buffer (marker-buffer (car markers)) - (let* ((partitioned (seq-group-by - (lambda (h) - (if (member (boxy-headings--get-rel - (org-element-property :begin h)) - boxy-children-relationships) - 'children - 'siblings)) - (cddr heading))) - (children (alist-get 'children partitioned)) - (siblings (alist-get 'siblings partitioned)) - (pos (org-element-property :begin heading)) - (columns (save-excursion (goto-char pos) (org-columns--collect-values))) - (max-column-length (apply #'max 0 - (mapcar - (lambda (column) - (length (cadr (car column)))) - columns))) - (rel (boxy-headings--get-rel pos)) - (level (if (member rel boxy-children-relationships) - (+ 1 parent-level) - parent-level)) - (name (org-element-property :title heading)) - (box (boxy-box :name (if (string-match org-link-bracket-re name) - (match-string 2 name) - name) - :rel rel - :level level - :rel-box parent - :parent parent - :tooltip (mapconcat - (lambda (column) - (format - (concat "%" (number-to-string max-column-length) "s : %s") - (cadr (car column)) - (cadr column))) - columns - "\n") - :markers (list (set-marker (point-marker) pos)) - :post-jump-hook 'org-reveal - :in-front (string= rel "in front of") - :on-top (string= rel "on top of") - :y-order (cond - ((string= rel "in front of") 1.0e+INF) - ((string= rel "on top of") -1.0e+INF) - (t 0)) - :primary t))) - (boxy-add-next box parent) - (when children - (push `(lambda (box) - (mapc - (lambda (h) (boxy-headings--add-heading h box)) - ',children)) - (boxy-box-expand-children box))) - (when siblings - (push `(lambda (box) - (mapc - (lambda (h) (boxy-headings--add-heading h box)) - ',siblings)) - (boxy-box-expand-siblings box))))))) + (with-current-buffer (marker-buffer (car (boxy-box-markers parent))) + (let* ((partitioned (seq-group-by + (lambda (h) + (if (member (boxy-headings--get-rel + (org-element-property :begin h)) + boxy-children-relationships) + 'children + 'siblings)) + (cddr heading))) + (children (alist-get 'children partitioned)) + (siblings (alist-get 'siblings partitioned)) + (pos (org-element-property :begin heading)) + (columns (save-excursion (goto-char pos) (org-columns--collect-values))) + (max-column-length (apply #'max 0 + (mapcar + (lambda (column) + (length (cadr (car column)))) + columns))) + (rel (boxy-headings--get-rel pos)) + (level (if (member rel boxy-children-relationships) + (+ 1 (boxy-box-level parent)) + (boxy-box-level parent))) + (name (org-element-property :title heading)) + (box (boxy-box :name (if (string-match org-link-bracket-re name) + (match-string 2 name) + name) + :rel rel + :level level + :rel-box parent + :parent parent + :tooltip (mapconcat + (lambda (column) + (format + (concat "%" (number-to-string max-column-length) "s : %s") + (cadr (car column)) + (cadr column))) + columns + "\n") + :markers (list (set-marker (point-marker) pos)) + :post-jump-hook 'org-reveal + :in-front (string= rel "in front of") + :on-top (string= rel "on top of") + :y-order (cond + ((string= rel "in front of") 1.0e+INF) + ((string= rel "on top of") -1.0e+INF) + (t 0)) + :primary t))) + (boxy-add-next box parent) + (when children + (push `(lambda (box) + (mapc + (lambda (h) (boxy-headings--add-heading h box)) + ',children)) + (boxy-box-expand-children box))) + (when siblings + (push `(lambda (box) + (mapc + (lambda (h) (boxy-headings--add-heading h box)) + ',siblings)) + (boxy-box-expand-siblings box)))))) ;;;; Utility expressions