feat(org): add +org/reformat-at-point command
A DWIM command to reformat a src block, table, or paragraph at point. Ref: #7685
This commit is contained in:
parent
8072762de8
commit
f6e65c4010
2 changed files with 19 additions and 1 deletions
|
@ -334,6 +334,24 @@ see how ARG affects this command."
|
||||||
(org-clock-in))
|
(org-clock-in))
|
||||||
((org-clock-in-last arg))))
|
((org-clock-in-last arg))))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun +org/reformat-at-point ()
|
||||||
|
"Reformat the element at point.
|
||||||
|
|
||||||
|
If in an org src block, invokes `+format/org-block' if the ':editor format'
|
||||||
|
module is enabled.
|
||||||
|
If in an org table, realign the cells with `org-table-align'.
|
||||||
|
Otherwise, falls back to `org-fill-paragraph' to reflow paragraphs."
|
||||||
|
(interactive)
|
||||||
|
(let ((element (org-element-at-point)))
|
||||||
|
(cond ((org-in-src-block-p nil element)
|
||||||
|
(unless (modulep! :editor format)
|
||||||
|
(user-error ":editor format module is disabled, ignoring reformat..."))
|
||||||
|
(call-interactively #'+format/org-block))
|
||||||
|
((org-at-table-p)
|
||||||
|
(save-excursion (org-table-align)))
|
||||||
|
((call-interactively #'org-fill-paragraph)))))
|
||||||
|
|
||||||
|
|
||||||
;;; Folds
|
;;; Folds
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
|
|
|
@ -1222,7 +1222,7 @@ between the two."
|
||||||
:m "[l" #'org-previous-link
|
:m "[l" #'org-previous-link
|
||||||
:m "]c" #'org-babel-next-src-block
|
:m "]c" #'org-babel-next-src-block
|
||||||
:m "[c" #'org-babel-previous-src-block
|
:m "[c" #'org-babel-previous-src-block
|
||||||
:n "gQ" #'org-fill-paragraph
|
:n "gQ" #'+org/reformat-at-point
|
||||||
;; sensible vim-esque folding keybinds
|
;; sensible vim-esque folding keybinds
|
||||||
:n "za" #'+org/toggle-fold
|
:n "za" #'+org/toggle-fold
|
||||||
:n "zA" #'org-shifttab
|
:n "zA" #'org-shifttab
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue