branch: externals/org-real
commit 735ce86586a49f24452f2ba7a24d82e19158af36
Author: Tyler Grinn <[email protected]>
Commit: Tyler Grinn <[email protected]>
Cleaned up hooks
---
org-real.el | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/org-real.el b/org-real.el
index bcefb29..f56c022 100644
--- a/org-real.el
+++ b/org-real.el
@@ -425,6 +425,8 @@ matching the one returned from `completing-read'."
existing-containers
`((:name ,result)))))
+;;; Hooks
+
(defun org-real--read-string-advice (orig prompt link &rest args)
"Advise `read-string' during `org-insert-link' to use custom completion.
@@ -434,24 +436,20 @@ passed to it."
(org-real-complete link)
(apply orig prompt link args)))
-(defun org-real--insert-link-before (&rest args)
+(defun org-real--maybe-edit-link (orig &rest args)
"Advise `org-insert-link' to advise `read-string' during editing of a link.
ARGS are the arguments passed to `org-insert-link'."
- (advice-add 'read-string :around #'org-real--read-string-advice))
-
-(defun org-real--insert-link-after (&rest args)
- "Advise `org-insert-link' to advise `read-string' during editing of a link.
+ (advice-add 'read-string :around #'org-real--read-string-advice)
+ (unwind-protect
+ (if (called-interactively-p)
+ (call-interactively orig)
+ (apply orig args))
+ (advice-remove 'read-string #'org-real--read-string-advice)))
-ARGS are the arguments passed to `org-insert-link'."
- (advice-remove 'read-string #'org-real--read-string-advice)
- (org-real--apply))
+(advice-add 'org-insert-link :around #'org-real--maybe-edit-link)
-
-(advice-add 'org-insert-link :before #'org-real--insert-link-before)
-(advice-add 'org-insert-link :after #'org-real--insert-link-after)
-
-(defun org-real--apply ()
+(defun org-real--apply (&rest args)
"Apply any changes to the current buffer from the last inserted real link."
(let (new-link new-desc replace-all)
(cond
@@ -523,6 +521,8 @@ ARGS are the arguments passed to `org-insert-link'."
(pop new-containers)))))
(message nil))
+(advice-add 'org-insert-link :after #'org-real--apply)
+
;;;; Pretty printing
(defun org-real--pp (box &optional containers)