diff --git a/modules/lang/org/autoload/org.el b/modules/lang/org/autoload/org.el index ad2462b0a..76800f3f2 100644 --- a/modules/lang/org/autoload/org.el +++ b/modules/lang/org/autoload/org.el @@ -160,115 +160,117 @@ If on a: - link: follow it - otherwise, refresh all inline images in current tree." (interactive "P") - (let* ((context (org-element-context)) - (type (org-element-type context))) - ;; skip over unimportant contexts - (while (and context (memq type '(verbatim code bold italic underline strike-through subscript superscript))) - (setq context (org-element-property :parent context) - type (org-element-type context))) - (pcase type - (`headline - (cond ((memq (bound-and-true-p org-goto-map) - (current-active-maps)) - (org-goto-ret)) - ((and (fboundp 'toc-org-insert-toc) - (member "TOC" (org-get-tags))) - (toc-org-insert-toc) - (message "Updating table of contents")) - ((string= "ARCHIVE" (car-safe (org-get-tags))) - (org-force-cycle-archived)) - ((or (org-element-property :todo-type context) - (org-element-property :scheduled context)) - (org-todo - (if (eq (org-element-property :todo-type context) 'done) - (or (car (+org-get-todo-keywords-for (org-element-property :todo-keyword context))) - 'todo) - 'done)))) - ;; Update any metadata or inline previews in this subtree - (org-update-checkbox-count) - (org-update-parent-todo-statistics) - (when (and (fboundp 'toc-org-insert-toc) - (member "TOC" (org-get-tags))) - (toc-org-insert-toc) - (message "Updating table of contents")) - (let* ((beg (if (org-before-first-heading-p) - (line-beginning-position) - (save-excursion (org-back-to-heading) (point)))) - (end (if (org-before-first-heading-p) - (line-end-position) - (save-excursion (org-end-of-subtree) (point)))) - (overlays (ignore-errors (overlays-in beg end))) - (latex-overlays - (cl-find-if (lambda (o) (eq (overlay-get o 'org-overlay-type) 'org-latex-overlay)) - overlays)) - (image-overlays - (cl-find-if (lambda (o) (overlay-get o 'org-image-overlay)) - overlays))) - (+org--toggle-inline-images-in-subtree beg end) - (if (or image-overlays latex-overlays) - (org-clear-latex-preview beg end) - (org--latex-preview-region beg end)))) + (if (button-at (point)) + (call-interactively #'push-button) + (let* ((context (org-element-context)) + (type (org-element-type context))) + ;; skip over unimportant contexts + (while (and context (memq type '(verbatim code bold italic underline strike-through subscript superscript))) + (setq context (org-element-property :parent context) + type (org-element-type context))) + (pcase type + (`headline + (cond ((memq (bound-and-true-p org-goto-map) + (current-active-maps)) + (org-goto-ret)) + ((and (fboundp 'toc-org-insert-toc) + (member "TOC" (org-get-tags))) + (toc-org-insert-toc) + (message "Updating table of contents")) + ((string= "ARCHIVE" (car-safe (org-get-tags))) + (org-force-cycle-archived)) + ((or (org-element-property :todo-type context) + (org-element-property :scheduled context)) + (org-todo + (if (eq (org-element-property :todo-type context) 'done) + (or (car (+org-get-todo-keywords-for (org-element-property :todo-keyword context))) + 'todo) + 'done)))) + ;; Update any metadata or inline previews in this subtree + (org-update-checkbox-count) + (org-update-parent-todo-statistics) + (when (and (fboundp 'toc-org-insert-toc) + (member "TOC" (org-get-tags))) + (toc-org-insert-toc) + (message "Updating table of contents")) + (let* ((beg (if (org-before-first-heading-p) + (line-beginning-position) + (save-excursion (org-back-to-heading) (point)))) + (end (if (org-before-first-heading-p) + (line-end-position) + (save-excursion (org-end-of-subtree) (point)))) + (overlays (ignore-errors (overlays-in beg end))) + (latex-overlays + (cl-find-if (lambda (o) (eq (overlay-get o 'org-overlay-type) 'org-latex-overlay)) + overlays)) + (image-overlays + (cl-find-if (lambda (o) (overlay-get o 'org-image-overlay)) + overlays))) + (+org--toggle-inline-images-in-subtree beg end) + (if (or image-overlays latex-overlays) + (org-clear-latex-preview beg end) + (org--latex-preview-region beg end)))) - (`clock (org-clock-update-time-maybe)) + (`clock (org-clock-update-time-maybe)) - (`footnote-reference - (org-footnote-goto-definition (org-element-property :label context))) + (`footnote-reference + (org-footnote-goto-definition (org-element-property :label context))) - (`footnote-definition - (org-footnote-goto-previous-reference (org-element-property :label context))) + (`footnote-definition + (org-footnote-goto-previous-reference (org-element-property :label context))) - ((or `planning `timestamp) - (org-follow-timestamp-link)) + ((or `planning `timestamp) + (org-follow-timestamp-link)) - ((or `table `table-row) - (if (org-at-TBLFM-p) - (org-table-calc-current-TBLFM) - (ignore-errors - (save-excursion - (goto-char (org-element-property :contents-begin context)) - (org-call-with-arg 'org-table-recalculate (or arg t)))))) + ((or `table `table-row) + (if (org-at-TBLFM-p) + (org-table-calc-current-TBLFM) + (ignore-errors + (save-excursion + (goto-char (org-element-property :contents-begin context)) + (org-call-with-arg 'org-table-recalculate (or arg t)))))) - (`table-cell - (org-table-blank-field) - (org-table-recalculate arg) - (when (and (string-empty-p (string-trim (org-table-get-field))) - (bound-and-true-p evil-local-mode)) - (evil-change-state 'insert))) + (`table-cell + (org-table-blank-field) + (org-table-recalculate arg) + (when (and (string-empty-p (string-trim (org-table-get-field))) + (bound-and-true-p evil-local-mode)) + (evil-change-state 'insert))) - (`babel-call - (org-babel-lob-execute-maybe)) + (`babel-call + (org-babel-lob-execute-maybe)) - (`statistics-cookie - (save-excursion (org-update-statistics-cookies arg))) + (`statistics-cookie + (save-excursion (org-update-statistics-cookies arg))) - ((or `src-block `inline-src-block) - (org-babel-execute-src-block arg)) + ((or `src-block `inline-src-block) + (org-babel-execute-src-block arg)) - ((or `latex-fragment `latex-environment) - (org-latex-preview arg)) + ((or `latex-fragment `latex-environment) + (org-latex-preview arg)) - (`link - (let* ((lineage (org-element-lineage context '(link) t)) - (path (org-element-property :path lineage))) - (if (or (equal (org-element-property :type lineage) "img") - (and path (image-type-from-file-name path))) - (+org--toggle-inline-images-in-subtree - (org-element-property :begin lineage) - (org-element-property :end lineage)) - (org-open-at-point arg)))) + (`link + (let* ((lineage (org-element-lineage context '(link) t)) + (path (org-element-property :path lineage))) + (if (or (equal (org-element-property :type lineage) "img") + (and path (image-type-from-file-name path))) + (+org--toggle-inline-images-in-subtree + (org-element-property :begin lineage) + (org-element-property :end lineage)) + (org-open-at-point arg)))) - ((guard (org-element-property :checkbox (org-element-lineage context '(item) t))) - (let ((match (and (org-at-item-checkbox-p) (match-string 1)))) - (org-toggle-checkbox (if (equal match "[ ]") '(16))))) + ((guard (org-element-property :checkbox (org-element-lineage context '(item) t))) + (let ((match (and (org-at-item-checkbox-p) (match-string 1)))) + (org-toggle-checkbox (if (equal match "[ ]") '(16))))) - (_ - (if (or (org-in-regexp org-ts-regexp-both nil t) - (org-in-regexp org-tsr-regexp-both nil t) - (org-in-regexp org-link-any-re nil t)) - (call-interactively #'org-open-at-point) - (+org--toggle-inline-images-in-subtree - (org-element-property :begin context) - (org-element-property :end context))))))) + (_ + (if (or (org-in-regexp org-ts-regexp-both nil t) + (org-in-regexp org-tsr-regexp-both nil t) + (org-in-regexp org-link-any-re nil t)) + (call-interactively #'org-open-at-point) + (+org--toggle-inline-images-in-subtree + (org-element-property :begin context) + (org-element-property :end context)))))))) ;;;###autoload (defun +org/shift-return (&optional arg)