summaryrefslogtreecommitdiff
path: root/elisp
diff options
context:
space:
mode:
authorJose Antonio Ortega Ruiz <jao@gnu.org>2009-03-14 12:42:09 +0100
committerJose Antonio Ortega Ruiz <jao@gnu.org>2009-03-14 12:42:09 +0100
commit660fc8e0465e48812fc6f38f82d91d22b0664118 (patch)
tree74a7cb882cf4d2b5ed13dd35a553202c5136ba1a /elisp
parent137d2e0db5efe444f6f208aba8ebd57584f1ee52 (diff)
downloadgeiser-chez-660fc8e0465e48812fc6f38f82d91d22b0664118.tar.gz
geiser-chez-660fc8e0465e48812fc6f38f82d91d22b0664118.tar.bz2
Show implementation in geiser-mode's modeline.
Diffstat (limited to 'elisp')
-rw-r--r--elisp/geiser-impl.el7
-rw-r--r--elisp/geiser-mode.el8
-rw-r--r--elisp/geiser-repl.el8
3 files changed, 17 insertions, 6 deletions
diff --git a/elisp/geiser-impl.el b/elisp/geiser-impl.el
index 4f70b29..20b648e 100644
--- a/elisp/geiser-impl.el
+++ b/elisp/geiser-impl.el
@@ -60,6 +60,10 @@
geiser-impl-default-implementation
(car geiser-impl--impls)))
+(defsubst geiser-impl--impl-str (&optional impl)
+ (let ((impl (or impl geiser-impl--implementation)))
+ (and impl (capitalize (format "%s" impl)))))
+
;;; Installing Scheme implementations:
@@ -78,7 +82,6 @@
(geiser-impl--install-eval impl)
(geiser-impl--register impl)))
-
(defsubst geiser-impl--sym (imp name)
(intern (format "geiser-%s-%s" imp name)))
@@ -104,7 +107,7 @@
(geiser-impl--sym impl "get-module"))
(defsubst geiser-impl--geiser-procedure-function (impl)
- (geiser-impl--sym imp "geiser-procedure"))
+ (geiser-impl--sym impl "geiser-procedure"))
(defun geiser-impl--install-eval (impl)
(setq geiser-eval--get-module-function (geiser-impl--module-function impl))
diff --git a/elisp/geiser-mode.el b/elisp/geiser-mode.el
index cf43e00..57fb84e 100644
--- a/elisp/geiser-mode.el
+++ b/elisp/geiser-mode.el
@@ -135,9 +135,13 @@ With prefix, recursively macro-expand the resulting expression."
;;; Geiser mode:
(make-variable-buffer-local
- (defvar geiser-mode-string " G"
+ (defvar geiser-mode-string nil
"Modeline indicator for geiser-mode"))
+(defun geiser-mode--lighter ()
+ (or geiser-mode-string
+ (format " %s" (or (geiser-impl--impl-str) "G"))))
+
(defvar geiser-mode-map (make-sparse-keymap)
"Key map for geiser-mode")
@@ -151,7 +155,7 @@ When Geiser mode is enabled, a host of nice utilities for
interacting with the Geiser REPL is at your disposal.
\\{geiser-mode-map}"
:init-value nil
- :lighter geiser-mode-string
+ :lighter (:eval (geiser-mode--lighter))
:group 'geiser-mode
:keymap geiser-mode-map
(when geiser-mode (geiser-impl--set-buffer-implementation))
diff --git a/elisp/geiser-repl.el b/elisp/geiser-repl.el
index c362787..62fbcdf 100644
--- a/elisp/geiser-repl.el
+++ b/elisp/geiser-repl.el
@@ -103,10 +103,14 @@ REPL buffer."
(with-current-buffer repl
(add-to-list 'act geiser-impl--implementation)))))
+(defsubst geiser-repl--repl-name (impl)
+ (format "%s REPL" (geiser-impl--impl-str impl)))
+
(defun geiser-repl--to-repl-buffer (impl)
(unless (and (eq major-mode 'geiser-repl-mode)
(not (get-buffer-process (current-buffer))))
- (pop-to-buffer (generate-new-buffer (format "*Geiser REPL (%s)*" impl))))
+ (pop-to-buffer
+ (generate-new-buffer (format "* %s *" (geiser-repl--repl-name impl)))))
(geiser-impl--set-buffer-implementation impl)
(geiser-repl-mode))
@@ -116,7 +120,7 @@ REPL buffer."
(let ((binary (geiser-impl--binary impl))
(args (geiser-impl--parameters impl))
(prompt-rx (geiser-impl--prompt-regexp impl))
- (cname (format "Geiser REPL (%s)" impl)))
+ (cname (geiser-repl--repl-name impl)))
(unless (and binary prompt-rx)
(error "Sorry, I don't know how to start a REPL for %s" impl))
(set (make-local-variable 'comint-prompt-regexp) prompt-rx)