forked from mirrors/org-mode
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.
This commit is contained in:
parent
b77f991c02
commit
664ffde149
28
lisp/ol.el
28
lisp/ol.el
|
@ -1868,15 +1868,31 @@ non-interactively, don't allow to edit the default description."
|
||||||
(org-link--fontify-links-to-this-file)
|
(org-link--fontify-links-to-this-file)
|
||||||
(org-switch-to-buffer-other-window "*Org Links*")
|
(org-switch-to-buffer-other-window "*Org Links*")
|
||||||
(with-current-buffer "*Org Links*"
|
(with-current-buffer "*Org Links*"
|
||||||
|
(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)
|
(erase-buffer)
|
||||||
(insert "Insert a link.
|
(insert
|
||||||
Use TAB to complete link prefixes, then RET for type-specific completion support\n")
|
(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
|
(when org-stored-links
|
||||||
(insert "\nStored links are available with <up>/<down> or M-p/n \
|
(insert (apply #'format "\nStored links accessible with %s/%s or %s/%s are:\n\n"
|
||||||
\(most recent with RET):\n\n")
|
(mapcar propertize-help-key
|
||||||
|
(list "<up>" "<down>"
|
||||||
|
"M-p" "M-n"
|
||||||
|
"RET"))))
|
||||||
(insert (mapconcat #'org-link--prettify
|
(insert (mapconcat #'org-link--prettify
|
||||||
(reverse org-stored-links)
|
(reverse org-stored-links)
|
||||||
"\n")))
|
"\n"))))
|
||||||
(goto-char (point-min)))
|
(goto-char (point-min)))
|
||||||
(when (get-buffer-window "*Org Links*" 'visible)
|
(when (get-buffer-window "*Org Links*" 'visible)
|
||||||
(let ((cw (selected-window)))
|
(let ((cw (selected-window)))
|
||||||
|
@ -1892,7 +1908,7 @@ Use TAB to complete link prefixes, then RET for type-specific completion support
|
||||||
org-link--insert-history)))
|
org-link--insert-history)))
|
||||||
(setq link
|
(setq link
|
||||||
(org-completing-read
|
(org-completing-read
|
||||||
"Link: "
|
(org-format-prompt "Insert link" (caar org-stored-links))
|
||||||
(append
|
(append
|
||||||
(mapcar (lambda (x) (concat x ":")) all-prefixes)
|
(mapcar (lambda (x) (concat x ":")) all-prefixes)
|
||||||
(mapcar #'car org-stored-links)
|
(mapcar #'car org-stored-links)
|
||||||
|
|
Loading…
Reference in New Issue