branch: externals/org
commit 664ffde1494fe07559c36bd219864b60074a689a
Author: Rudolf Adamkovič <[email protected]>
Commit: Ihor Radchenko <[email protected]>

    org-link: Improve UX of 'org-insert-link'
    
    * lisp/ol.el (org-insert-link): Shorten the text in the *Org Links*
    buffer to avoid unnecessary line breaks, reword it to better align
    with the rest of Emacs, and propertize its key bindings to improve
    readability.  Further, move the default link to the minibuffer, as
    seen elsewhere in Emacs, and make the *Org Links* buffer read-only.
---
 lisp/ol.el | 38 +++++++++++++++++++++++++++-----------
 1 file changed, 27 insertions(+), 11 deletions(-)

diff --git a/lisp/ol.el b/lisp/ol.el
index c38a303785..75fc478075 100644
--- a/lisp/ol.el
+++ b/lisp/ol.el
@@ -1868,16 +1868,32 @@ non-interactively, don't allow to edit the default 
description."
       (org-link--fontify-links-to-this-file)
       (org-switch-to-buffer-other-window "*Org Links*")
       (with-current-buffer "*Org Links*"
-       (erase-buffer)
-       (insert "Insert a link.
-Use TAB to complete link prefixes, then RET for type-specific completion 
support\n")
-       (when org-stored-links
-         (insert "\nStored links are available with <up>/<down> or M-p/n \
-\(most recent with RET):\n\n")
-         (insert (mapconcat #'org-link--prettify
-                            (reverse org-stored-links)
-                            "\n")))
-       (goto-char (point-min)))
+        (read-only-mode 1)
+        (let ((inhibit-read-only t)
+              ;; FIXME Duplicate: Also in 'ox.el'.
+              (propertize-help-key
+               (lambda (key)
+                 ;; Add `face' *and* `font-lock-face' to "work
+                 ;; reliably in any buffer", per a comment in
+                 ;; `help--key-description-fontified'.
+                 (propertize key
+                             'font-lock-face 'help-key-binding
+                             'face 'help-key-binding))))
+          (erase-buffer)
+          (insert
+           (apply #'format "Type %s to complete link type, then %s to complete 
destination.\n"
+                  (mapcar propertize-help-key
+                          (list "TAB" "RET"))))
+         (when org-stored-links
+            (insert (apply #'format "\nStored links accessible with %s/%s or 
%s/%s are:\n\n"
+                           (mapcar propertize-help-key
+                                   (list "<up>" "<down>"
+                                         "M-p" "M-n"
+                                         "RET"))))
+           (insert (mapconcat #'org-link--prettify
+                              (reverse org-stored-links)
+                              "\n"))))
+        (goto-char (point-min)))
       (when (get-buffer-window "*Org Links*" 'visible)
         (let ((cw (selected-window)))
          (select-window (get-buffer-window "*Org Links*" 'visible))
@@ -1892,7 +1908,7 @@ Use TAB to complete link prefixes, then RET for 
type-specific completion support
                         org-link--insert-history)))
            (setq link
                  (org-completing-read
-                  "Link: "
+                   (org-format-prompt "Insert link" (caar org-stored-links))
                   (append
                    (mapcar (lambda (x) (concat x ":")) all-prefixes)
                    (mapcar #'car org-stored-links)

Reply via email to