diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS index 9858df045..6c81221c1 100644 --- a/etc/ORG-NEWS +++ b/etc/ORG-NEWS @@ -729,6 +729,12 @@ respected. Images dropped also respect the value of ~org-yank-image-save-method~ when ~org-yank-dnd-method~ is =attach=. +*** Add completion for links to man pages + +Completion is enabled for links to man pages added using ~org-insert-link~: +=C-c C-l man RET emacscl TAB= to get =emacsclient=. Of course, the ~ol-man~ +library should be loaded first. + ** New functions and changes in function arguments *** ~org-fold-hide-drawer-all~ is now interactive diff --git a/lisp/ol-man.el b/lisp/ol-man.el index b0701c689..f5533c5a5 100644 --- a/lisp/ol-man.el +++ b/lisp/ol-man.el @@ -34,6 +34,7 @@ (require 'ol) (org-link-set-parameters "man" + :complete #'org-man-complete :follow #'org-man-open :export #'org-man-export :store #'org-man-store-link) @@ -99,6 +100,17 @@ BACKEND is the current export backend." ((eq backend 'md) (format "[%s](%s)" desc path)) (t path)))) +(defun org-man-complete (&optional _arg) + "Complete man pages for `org-insert-link'." + (require 'man) + (concat + "man:" + (let ((completion-ignore-case t) ; See `man' comments. + (Man-completion-cache)) ; See `man' implementation. + (completing-read + "Manual entry: " + 'Man-completion-table)))) + (provide 'ol-man) ;;; ol-man.el ends here