branch: elpa/geiser-guile
commit 467aded542e8428b90549727dafbb4d6bcb07cd4
Author: Diogo F. S. Ramos <[email protected]>
Commit: Jose Antonio Ortega Ruiz <[email protected]>

    Highlight `define-once'
    
    Guile's `define-once' allows defining a variable only once, but its
    syntax is different from `define', so its highlight is different.
---
 elisp/geiser-guile.el | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/elisp/geiser-guile.el b/elisp/geiser-guile.el
index bc96973..5bfff4d 100644
--- a/elisp/geiser-guile.el
+++ b/elisp/geiser-guile.el
@@ -248,9 +248,13 @@ This function uses `geiser-guile-init-file' if it exists."
 ;;; Keywords and syntax
 
 (defun geiser-guile--keywords ()
-  (when geiser-guile-extra-keywords
-    `((,(format "[[(]%s\\>" (regexp-opt geiser-guile-extra-keywords 1))
-       . 1))))
+  (append
+   (when geiser-guile-extra-keywords
+     `((,(format "[[(]%s\\>" (regexp-opt geiser-guile-extra-keywords 1))
+         . 1)))
+   `((,(rx "(" (group "define-once") eow (* space) (? (group (+ word))))
+       (1 font-lock-keyword-face)
+       (2 font-lock-variable-name-face nil t)))))
 
 (geiser-syntax--scheme-indent
  (c-declare 0)

Reply via email to