summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJose Antonio Ortega Ruiz <jao@gnu.org>2010-10-12 00:28:00 +0200
committerJose Antonio Ortega Ruiz <jao@gnu.org>2010-10-12 00:28:00 +0200
commitec03576e168be91d74ef38f15ceccddf2aa8c891 (patch)
tree0792443c4f3d8fe5fc47faf220bfe2c97066eb64
parent11bde7b13d2152d3d5ee6d70bee1b8743528b89d (diff)
downloadgeiser-ec03576e168be91d74ef38f15ceccddf2aa8c891.tar.gz
geiser-ec03576e168be91d74ef38f15ceccddf2aa8c891.tar.bz2
Menus: callers/callees active only if available
-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)
--