;;; +link-hint.el -*- lexical-binding: t; -*- ;;; Code: (require 'link-hint) (defgroup +link-hint nil "Extra customizations for `link-hint'." :group 'link-hint) (defcustom +link-hint-open-secondary-types '(gnus-w3m-image-url gnus-w3m-url markdown-link mu4e-attachment mu4e-url notmuch-hello nov-link org-link shr-url text-url w3m-link w3m-message-link) "Link types to define `:open-secondary' for.") (defun +link-hint-setup-open-secondary (&optional types) "Define the `:open-secondary' link-hint type for TYPES. If TYPES is nil, define it for `+link-hint-open-secondary-types'." (dolist (type (or types +link-hint-open-secondary-types)) (link-hint-define-type type :open-secondary browse-url-secondary-browser-function :open-secondary-multiple t))) (defun +link-hint-open-link (prefix) "Open a link. Without a PREFIX, open using `browse-url-browser-function'; with a PREFIX, use `browse-url-secondary-browser-function'." (interactive "P") (avy-with link-hint-open-link (link-hint--one (if prefix :open-secondary :open)))) (defun +link-hint-open-multiple-links (prefix) "Open multiple links. Without a PREFIX, open using `browse-url-browser-function'; with a PREFIX, use `browse-url-secondary-browser-function'." (interactive "P") (avy-with link-hint-open-multiple-links (link-hint--one (if prefix :open-secondary :open)))) (defun +link-hint-open-all-links (prefix) "Open all visible links. Without a PREFIX, open using `browse-url-browser-function'; with a PREFIX, use `browse-url-secondary-browser-function'." (interactive "P") (avy-with link-hint-open-all-links (link-hint--one (if prefix :open-secondary :open)))) (provide '+link-hint) ;;; +link-hint.el ends here