summaryrefslogtreecommitdiff
path: root/elisp
diff options
context:
space:
mode:
authorJonas Bernoulli <jonas@bernoul.li>2022-07-14 16:06:12 +0200
committerJonas Bernoulli <jonas@bernoul.li>2024-07-06 17:37:23 +0200
commit67f727855895050aca3bcf37066e804dc8f307de (patch)
tree3259c69d275cdd20b4479eaa469414edf0d0b568 /elisp
parentde52f0e36f1709181c1ce4e787d79208fa2cb870 (diff)
downloadgeiser-67f727855895050aca3bcf37066e804dc8f307de.tar.gz
geiser-67f727855895050aca3bcf37066e804dc8f307de.tar.bz2
Define autoloads how that is normally done
- Avoid defining autoload definitions in a central location. Instead add autoload cookies to the forms/definitions that should be autoloaded, in the locations where the actual definitions are located. - Do this for `geiser-mode', `turn-on-geiser-mode', `geiser-mode--maybe-activate' (including adding that to `scheme-mode-hook'), `geiser', `geiser-connect', `geiser-connect-local' and `geiser-repl-switch'. - Also do this for `run-geiser', even though it is only an obsolete function alias for `geiser', which might make it desirable to drop the autoload altogether. Some unusual autoload definitions remain in "geiser.el", see below. - One issue with defining autoloads in a central location is that it is easy to forget to remove such autoloads when the real definition is removed. No longer autoload `geiser-version' because since [1: 847d2ad] there no longer exists a proper definition of that function. - No longer autoload `geiser-unload', `geiser-reload' and `turn-off-geiser-mode', because they are only useful if Geiser has already been loaded, at which point any autoloaded definitions are no longer relevant. However, - Keep autoloading `geiser-activate-implementation' and `geiser-implementation-extension', even though I doubt that this is actually useful. - Keep using `custom-add-load' to specify dependencies of Custom groups and keep autoloading that. I don't know if this is actually necessary, and while it seems really weird, it might served a legit purpose, that I am not aware of. 1: 2020-07-19 847d2ad4c6da462c26c50af1ef7d9cd697f3a5d2 scheme and autotools removals
Diffstat (limited to 'elisp')
-rw-r--r--elisp/geiser-impl.el6
-rw-r--r--elisp/geiser-mode.el6
-rw-r--r--elisp/geiser-reload.el1
-rw-r--r--elisp/geiser-repl.el5
-rw-r--r--elisp/geiser.el50
5 files changed, 15 insertions, 53 deletions
diff --git a/elisp/geiser-impl.el b/elisp/geiser-impl.el
index f95034a..e82c050 100644
--- a/elisp/geiser-impl.el
+++ b/elisp/geiser-impl.el
@@ -143,9 +143,9 @@ in order to determine its scheme flavour."
(push (cons impl file) geiser-impl--load-files)))
;;;###autoload
-(progn ;Copy the whole def to the autoloads file.
-(defun geiser-activate-implementation (impl)
- (add-to-list 'geiser-active-implementations impl)))
+(progn ; Copy the whole definition to the autoloads file.
+ (defun geiser-activate-implementation (impl)
+ (add-to-list 'geiser-active-implementations impl)))
(defsubst geiser-deactivate-implementation (impl)
(setq geiser-active-implementations
diff --git a/elisp/geiser-mode.el b/elisp/geiser-mode.el
index c8a9e0d..d5bfbfb 100644
--- a/elisp/geiser-mode.el
+++ b/elisp/geiser-mode.el
@@ -367,6 +367,7 @@ With prefix, try to enter the current buffer's module."
(or geiser-mode-string
(format " %s" (or (geiser-impl--impl-str) "G"))))
+;;;###autoload
(define-minor-mode geiser-mode
"Toggle Geiser's mode.
@@ -395,6 +396,7 @@ interacting with the Geiser REPL is at your disposal.
(not (geiser-repl--connection*)))
(save-window-excursion (geiser geiser-impl--implementation))))
+;;;###autoload
(defun turn-on-geiser-mode ()
"Enable `geiser-mode' (in a Scheme buffer)."
(interactive)
@@ -405,10 +407,14 @@ interacting with the Geiser REPL is at your disposal.
(interactive)
(geiser-mode -1))
+;;;###autoload
(defun geiser-mode--maybe-activate ()
(when (and geiser-mode-auto-p (eq major-mode 'scheme-mode))
(turn-on-geiser-mode)))
+;;;###autoload
+(add-hook 'scheme-mode-hook 'geiser-mode--maybe-activate)
+
;;; Reload support:
diff --git a/elisp/geiser-reload.el b/elisp/geiser-reload.el
index 25560c6..e3adbdc 100644
--- a/elisp/geiser-reload.el
+++ b/elisp/geiser-reload.el
@@ -47,6 +47,7 @@
geiser
))
+;;;###autoload
(defun geiser-unload ()
"Unload all Geiser modules."
(interactive)
diff --git a/elisp/geiser-repl.el b/elisp/geiser-repl.el
index 698a394..6f6cea7 100644
--- a/elisp/geiser-repl.el
+++ b/elisp/geiser-repl.el
@@ -1099,20 +1099,24 @@ buffer."
;;; User commands
+;;;###autoload
(define-obsolete-function-alias 'run-geiser 'geiser "Geiser 0.26")
+;;;###autoload
(defun geiser (impl)
"Start a new Geiser REPL."
(interactive
(list (geiser-repl--get-impl "Start Geiser for scheme implementation: ")))
(geiser-repl--start-repl impl nil))
+;;;###autoload
(defun geiser-connect (impl &optional host port)
"Start a new Geiser REPL connected to a remote Scheme process."
(interactive
(list (geiser-repl--get-impl "Connect to Scheme implementation: ")))
(geiser-repl--start-repl impl (geiser-repl--read-address host port)))
+;;;###autoload
(defun geiser-connect-local (impl socket)
"Start a new Geiser REPL connected to a remote Scheme process
over a Unix-domain socket."
@@ -1142,6 +1146,7 @@ over a Unix-domain socket."
(define-obsolete-function-alias 'switch-to-geiser 'geiser-repl-switch "0.26")
+;;;###autoload
(defun geiser-repl-switch (&optional ask impl buffer)
"Switch to running Geiser REPL.
diff --git a/elisp/geiser.el b/elisp/geiser.el
index abcdb94..2790a82 100644
--- a/elisp/geiser.el
+++ b/elisp/geiser.el
@@ -51,53 +51,12 @@
;;; Code:
-;;; Locations:
;;;###autoload
(defconst geiser-elisp-dir
(file-name-directory (or load-file-name buffer-file-name))
"Directory containing Geiser's Elisp files.")
-
-;;; Autoloads:
-
-;;;###autoload
-(autoload 'geiser-unload "geiser-reload" "Unload all Geiser code." t)
-
-;;;###autoload
-(autoload 'geiser-reload "geiser-reload" "Reload Geiser code." t)
-
-;;;###autoload
-(autoload 'geiser "geiser-repl" "Start a Geiser REPL." t)
-
-;;;###autoload
-(autoload 'run-geiser "geiser-repl" "Start a Geiser REPL." t)
-
-;;;###autoload
-(autoload 'geiser-connect "geiser-repl"
- "Start a Geiser REPL connected to a remote server." t)
-
-;;;###autoload
-(autoload 'geiser-connect-local "geiser-repl"
- "Start a Geiser REPL connected to a remote server over a Unix-domain socket."
- t)
-
-;;;###autoload
-(autoload 'geiser-repl-switch "geiser-repl"
- "Switch to a running one Geiser REPL." t)
-
-;;;###autoload
-(autoload 'geiser-mode "geiser-mode"
- "Minor mode adding Geiser REPL interaction to Scheme buffers." t)
-
-;;;###autoload
-(autoload 'turn-on-geiser-mode "geiser-mode"
- "Enable Geiser's mode (useful in Scheme buffers)." t)
-
-;;;###autoload
-(autoload 'turn-off-geiser-mode "geiser-mode"
- "Disable Geiser's mode (useful in Scheme buffers)." t)
-
(autoload 'geiser-activate-implementation "geiser-impl"
"Register the given implementation as active.")
@@ -120,14 +79,5 @@
geiser-implementation
geiser-xref))
-
-;;; Setup:
-
-;;;###autoload
-(autoload 'geiser-mode--maybe-activate "geiser-mode")
-
-;;;###autoload
-(add-hook 'scheme-mode-hook #'geiser-mode--maybe-activate)
-
(provide 'geiser)
;;; geiser.el ends here