X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?p=elpher.git;a=blobdiff_plain;f=elpher.el;h=a18317f9899009d886d2f96916197d7316acf06c;hp=a7a3e541b8211973ba7abc7db6a503339f40eb45;hb=68f5ca8daafe10f14c241e586617e2f669cf9310;hpb=85f0cd00dee97c5c50614ca965c5b302ac04f515 diff --git a/elpher.el b/elpher.el index a7a3e54..a18317f 100644 --- a/elpher.el +++ b/elpher.el @@ -19,7 +19,7 @@ ;; Author: Tim Vaughan ;; Created: 11 April 2019 -;; Version: 2.11.0 +;; Version: 3.0.0 ;; Keywords: comm gopher ;; Homepage: https://thelambdalab.xyz/elpher ;; Package-Requires: ((emacs "27.1")) @@ -104,7 +104,7 @@ ;;; Global constants ;; -(defconst elpher-version "2.11.0" +(defconst elpher-version "3.0.0" "Current version of elpher.") (defconst elpher-margin-width 6 @@ -142,6 +142,18 @@ "List of headings on the page.") +;;; Declarations to avoid compiler warnings. +;; + +(eval-when-compile + (defvar bookmark-make-record-function) + (declare-function bookmark-store "bookmark") + (declare-function org-link-store-props "ol") + (declare-function org-link-set-parameters "ol") + (defvar thing-at-point-uri-schemes) + (defvar mu4e~view-beginning-of-url-regexp)) + + ;;; Customization group ;; @@ -1634,8 +1646,8 @@ The result is rendered using RENDERER." " - RET/mouse-1: open item under cursor\n" " - m/M: select an item on current page by name (autocompletes) or number\n" " - u/mouse-3/U: return to previous page or to the start page\n" - " - o/O: visit different selector or the root menu of the current server\n" " - g: go to a particular address (gopher, gemini, finger)\n" + " - o/O: open a different address selector or the root menu of the current server\n" " - d/D: download item under cursor or current page\n" " - i/I: info on item under cursor or current page\n" " - c/C: copy URL representation of item under cursor or current page\n" @@ -1818,11 +1830,6 @@ To bookmark the current page, use \\[bookmark-set-no-overwrite]." ;;; Org -;; Avoid byte compilation warnings. -(eval-when-compile - (declare-function org-link-store-props "ol") - (declare-function org-link-set-parameters "ol")) - (defun elpher-org-export-link (link description format protocol) "Export a LINK with DESCRIPTION for the given PROTOCOL and FORMAT. @@ -1866,7 +1873,8 @@ supports the old protocol elpher, where the link is self-contained." (format "%s:%s" protocol link)))) (elpher-go url))) -(with-eval-after-load 'org +(defun elpher-org-mode-integration () + "Set up `elpher' integration for `org-mode'." (org-link-set-parameters "elpher" :store #'elpher-org-store-link @@ -1889,11 +1897,9 @@ supports the old protocol elpher, where the link is self-contained." (elpher-org-export-link link description format "finger")) :follow (lambda (link _arg) (elpher-org-follow-link link "finger")))) -;;; Browse URL +(add-hook 'org-mode-hook #'elpher-org-mode-integration) -;; Avoid byte compilation warnings. -(eval-when-compile - (defvar thing-at-point-uri-schemes)) +;;; Browse URL ;;;###autoload (defun elpher-browse-url-elpher (url &rest _args) @@ -1927,13 +1933,9 @@ supports the old protocol elpher, where the link is self-contained." ;;; Mu4e: -(eval-when-compile - (defvar mu4e~view-beginning-of-url-regexp)) - -(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:")) +;; Make mu4e aware of the gemini world +(setq mu4e~view-beginning-of-url-regexp + "\\(?:https?\\|gopher\\|finger\\|gemini\\)://\\|mailto:") ;;; Interactive procedures ;; @@ -2155,9 +2157,9 @@ When run interactively HOST-OR-URL is read from the minibuffer." (define-key map (kbd "^") 'elpher-back) (define-key map [mouse-3] 'elpher-back) (define-key map (kbd "U") 'elpher-back-to-start) - (define-key map (kbd "O") 'elpher-root-dir) (define-key map (kbd "g") 'elpher-go) (define-key map (kbd "o") 'elpher-go-current) + (define-key map (kbd "O") 'elpher-root-dir) (define-key map (kbd "s") 'elpher-history) (define-key map (kbd "S") 'elpher-history-all) (define-key map (kbd "r") 'elpher-redraw) @@ -2188,8 +2190,9 @@ When run interactively HOST-OR-URL is read from the minibuffer." (kbd "^") 'elpher-back [mouse-3] 'elpher-back (kbd "U") 'elpher-back-to-start - (kbd "o") 'elpher-go - (kbd "O") 'elpher-go-current + (kbd "g") 'elpher-go + (kbd "o") 'elpher-go-current + (kbd "O") 'elpher-root-dir (kbd "r") 'elpher-redraw (kbd "R") 'elpher-reload (kbd "T") 'elpher-toggle-tls @@ -2221,7 +2224,7 @@ functions which initialize the client, namely (setq-local elpher-history nil) (setq-local elpher-buffer-name (buffer-name)) (setq-local bookmark-make-record-function #'elpher-bookmark-make-record) - (setq-local imenu-create-index-function #'elpher--gemini-page-headings)) + (setq-local imenu-create-index-function (lambda () elpher--gemini-page-headings))) (when (fboundp 'evil-set-initial-state) (evil-set-initial-state 'elpher-mode 'motion))