summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJose Antonio Ortega Ruiz <jao@gnu.org>2016-06-12 17:51:28 +0200
committerJose Antonio Ortega Ruiz <jao@gnu.org>2016-06-12 17:51:28 +0200
commit94210cde9788f9ae677767a531f96a873f5feaf0 (patch)
tree0769db49c53abe29d5c2800ea990d1dc900d8be5
parentbebd3944c130a75c5d39eb7d50439fe524b57d39 (diff)
downloadgeiser-guile-94210cde9788f9ae677767a531f96a873f5feaf0.tar.gz
geiser-guile-94210cde9788f9ae677767a531f96a873f5feaf0.tar.bz2
REPLs not started by the font-lock buffer
This one should fix github's issue #132. There's still the glitch that scheme strings are fontified without taking into account extra keywords.
-rw-r--r--elisp/geiser-mode.el1
-rw-r--r--elisp/geiser-syntax.el22
2 files changed, 14 insertions, 9 deletions
diff --git a/elisp/geiser-mode.el b/elisp/geiser-mode.el
index 640dbcc..5747f40 100644
--- a/elisp/geiser-mode.el
+++ b/elisp/geiser-mode.el
@@ -303,6 +303,7 @@ interacting with the Geiser REPL is at your disposal.
(geiser-syntax--add-kws)
(when (and geiser-mode
geiser-mode-start-repl-p
+ (not (geiser-syntax--font-lock-buffer-p))
(not (geiser-repl--connection*)))
(save-window-excursion (run-geiser geiser-impl--implementation))))
diff --git a/elisp/geiser-syntax.el b/elisp/geiser-syntax.el
index 79f899b..0abd03c 100644
--- a/elisp/geiser-syntax.el
+++ b/elisp/geiser-syntax.el
@@ -472,16 +472,20 @@ implementation-specific entries for font-lock-keywords.")
(geiser-syntax--mapconcat 'geiser-syntax--display a " ")))
(t (format "%s" a))))
+(defconst geiser-syntax--font-lock-buffer-name " *geiser font lock*")
+
+(defun geiser-syntax--font-lock-buffer-p (&optional buffer)
+ (equal (buffer-name buffer) geiser-syntax--font-lock-buffer-name))
+
(defun geiser-syntax--font-lock-buffer ()
- (let ((name " *geiser font lock*"))
- (or (get-buffer name)
- (let ((buffer (get-buffer-create name)))
- (set-buffer buffer)
- (let ((geiser-default-implementation
- (or geiser-default-implementation
- (car geiser-active-implementations))))
- (scheme-mode))
- buffer))))
+ (or (get-buffer geiser-syntax--font-lock-buffer-name)
+ (let ((buffer (get-buffer-create geiser-syntax--font-lock-buffer)))
+ (set-buffer buffer)
+ (let ((geiser-default-implementation
+ (or geiser-default-implementation
+ (car geiser-active-implementations))))
+ (scheme-mode)))
+ buffer))
(defun geiser-syntax--scheme-str (str)
(save-current-buffer