diff options
author | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2016-06-12 17:51:28 +0200 |
---|---|---|
committer | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2016-06-12 17:51:28 +0200 |
commit | 94210cde9788f9ae677767a531f96a873f5feaf0 (patch) | |
tree | 0769db49c53abe29d5c2800ea990d1dc900d8be5 /elisp | |
parent | bebd3944c130a75c5d39eb7d50439fe524b57d39 (diff) | |
download | geiser-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.
Diffstat (limited to 'elisp')
-rw-r--r-- | elisp/geiser-mode.el | 1 | ||||
-rw-r--r-- | elisp/geiser-syntax.el | 22 |
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 |