summaryrefslogtreecommitdiff
path: root/elisp
diff options
context:
space:
mode:
authorjao <jao@gnu.org>2024-07-05 14:28:31 +0100
committerjao <jao@gnu.org>2024-07-05 14:28:31 +0100
commit2d3e4f9b3a83e4c42139e6b7b7ce84490c80d1eb (patch)
treeeeebaca5e5dbb3d9b4846ac18434c450c81e5807 /elisp
parentb6b4ac070d136345345c80ff649f0084e3c512a5 (diff)
downloadgeiser-2d3e4f9b3a83e4c42139e6b7b7ce84490c80d1eb.tar.gz
geiser-2d3e4f9b3a83e4c42139e6b7b7ce84490c80d1eb.tar.bz2
clarifications on geiser-custom--defcustom
In particular, removing a misleading FIXME comment that led to merge proposal !22, and adding comments explaining why those changes would alter geiser-reload's behaviour.
Diffstat (limited to 'elisp')
-rw-r--r--elisp/geiser-custom.el19
1 files changed, 13 insertions, 6 deletions
diff --git a/elisp/geiser-custom.el b/elisp/geiser-custom.el
index 4b42d91..7125f11 100644
--- a/elisp/geiser-custom.el
+++ b/elisp/geiser-custom.el
@@ -1,6 +1,6 @@
;;; geiser-custom.el -- customization utilities -*- lexical-binding: t; -*-
-;; Copyright (C) 2009, 2010, 2012 Jose Antonio Ortega Ruiz
+;; Copyright (C) 2009, 2010, 2012, 2024 Jose Antonio Ortega Ruiz
;; This program is free software; you can redistribute it and/or
;; modify it under the terms of the Modified BSD License. You should
@@ -31,6 +31,10 @@
:group 'faces)
(defmacro geiser-custom--defface (face def group doc)
+ "Utility macro to define geiser.
+This is a very simple macro ensuring all geiser faces follow a common
+naming pattern and are added to a common group besides the one provided
+in the macro arguments."
(declare (doc-string 4) (indent 1))
(let ((face (intern (format "geiser-font-lock-%s" face))))
`(defface ,face (face-default-spec ,def)
@@ -50,11 +54,14 @@
(defmacro geiser-custom--defcustom (name &rest body)
"Like `defcustom' but also put NAME on an internal list.
-That list is used by `geiser-reload' to preserve the values
-of the listed variables. It is not used for anything else."
- ;; FIXME Remembering the value like this is not actually
- ;; necessary. Evaluating `defcustom' always preserves the
- ;; existing value, if any.
+That list is used by `geiser-reload' to preserve the values of the
+listed variables. It is not used for anything else.
+
+Note that, even though defcustom preserves the existing value of a
+variable if it's already defined, geiser-reload unloads all geiser
+features and therefore undefines all defined variables: we keep this
+list of values around to be able to restore them after loading
+a (presumably) new version of geiser after that unloading."
(declare (doc-string 3) (debug (name body)) (indent 2))
`(progn
(geiser-custom--memoize ',name)