Support elpher in mu4e
[elpher.git] / elpher.el
index ec7edcb..8a420e1 100644 (file)
--- a/elpher.el
+++ b/elpher.el
@@ -81,7 +81,6 @@
 (require 'nsm)
 (require 'gnutls)
 (require 'socks)
-(require 'ol)
 
 ;;; ANSI colors or XTerm colors
 
@@ -1805,9 +1804,10 @@ If ADDRESS is already bookmarked, update the label only."
          (string-match-p "^finger://.+" link))
     (elpher-go (string-remove-prefix "elpher:" link))))
 
-(org-link-set-parameters "elpher"
-                         :store #'elpher-org-link-store
-                         :follow #'elpher-org-link-follow)
+(with-eval-after-load 'org
+  (org-link-set-parameters "elpher"
+                           :store #'elpher-org-link-store
+                           :follow #'elpher-org-link-follow))
 
 ;;;###autoload
 (defun elpher-browse-url-elpher (url &rest _args)
@@ -1815,14 +1815,26 @@ If ADDRESS is already bookmarked, update the label only."
   (interactive (browse-url-interactive-arg "Elpher URL: "))
   (elpher-go url))
 
-(add-to-list
- 'browse-url-default-handlers
- '("^\\(gopher\\|finger\\|gemini\\)://" . elpher-browse-url-elpher))
+;; Use elpher to open gopher, finger and gemini links
+(with-eval-after-load 'browse-url
+  (add-to-list
+   'browse-url-default-handlers
+   '("^\\(gopher\\|finger\\|gemini\\)://" . elpher-browse-url-elpher)))
+
+;; Avoid byte compilation warnings.
+(eval-when-compile
+  (defvar thing-at-point-uri-schemes)
+  (defvar mu4e~view-beginning-of-url-regexp))
 
 ;; Register "gemini://" as a URI scheme so `browse-url' does the right thing
 (with-eval-after-load 'thingatpt
   (add-to-list 'thing-at-point-uri-schemes "gemini://"))
 
+(with-eval-after-load 'mu4e-view
+  ;; Make mu4e aware of the gemini world
+  (setq mu4e~view-beginning-of-url-regexp
+        "\\(?:https?\\|gopher\\|finger\\|gemini\\)://\\|mailto:"))
+
 ;;; Interactive procedures
 ;;