summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--elisp/geiser-eval.el3
-rw-r--r--elisp/geiser-mode.el6
2 files changed, 7 insertions, 2 deletions
diff --git a/elisp/geiser-eval.el b/elisp/geiser-eval.el
index b37b7ed..fd769db 100644
--- a/elisp/geiser-eval.el
+++ b/elisp/geiser-eval.el
@@ -52,6 +52,9 @@ include macroexpand, completions, module-completions, find-file,
symbol-location, module-location, symbol-documentation,
module-exports, autodoc, callers, callees and generic-methods.")
+(defun geiser-eval--supported-p (feat)
+ (not (memq feat geiser-eval--unsupported)))
+
(defsubst geiser-eval--form (proc)
(when (and geiser-eval--unsupported (memq proc geiser-eval--unsupported))
(error "Sorry, the %s scheme implementation does not support Geiser's %s"
diff --git a/elisp/geiser-mode.el b/elisp/geiser-mode.el
index dc154bc..e9e5563 100644
--- a/elisp/geiser-mode.el
+++ b/elisp/geiser-mode.el
@@ -259,8 +259,10 @@ interacting with the Geiser REPL is at your disposal.
geiser-completion--complete-module)
("Edit module" ("\C-c\C-e\C-m" "\C-c\C-em") geiser-edit-module)
--
- ("Callers" ((kbd "C-c <")) geiser-xref-callers)
- ("Callees" ((kbd "C-c >")) geiser-xref-callees)
+ ("Callers" ((kbd "C-c <")) geiser-xref-callers
+ :enable (and (geiser-eval--supported-p 'callers) (symbol-at-point)))
+ ("Callees" ((kbd "C-c >")) geiser-xref-callees
+ :enable (and (geiser-eval--supported-p 'callees) (symbol-at-point)))
--
(mode "Smart TAB mode" nil geiser-smart-tab-mode)
--