summaryrefslogtreecommitdiff
path: root/elisp/geiser-guile.el
diff options
context:
space:
mode:
Diffstat (limited to 'elisp/geiser-guile.el')
-rw-r--r--elisp/geiser-guile.el36
1 files changed, 32 insertions, 4 deletions
diff --git a/elisp/geiser-guile.el b/elisp/geiser-guile.el
index e8eb11a..f942930 100644
--- a/elisp/geiser-guile.el
+++ b/elisp/geiser-guile.el
@@ -245,11 +245,32 @@ This function uses `geiser-guile-init-file' if it exists."
;;; Keywords and syntax
+(defconst geiser-guile--builtin-keywords
+ '("call-with-input-file"
+ "call-with-output-file"
+ "call-with-input-string"
+ "call-with-output-string"
+ "define-accessor"
+ "define-class"
+ "define-enumeration"
+ "define-inlinable"
+ "lambda*"
+ "use-modules"
+ "with-error-to-file"
+ "with-error-to-port"
+ "with-error-to-string"
+ "with-fluid*"
+ "with-fluids"
+ "with-fluids*"
+ "with-input-from-port"
+ "with-input-from-string"
+ "with-output-to-port"
+ "with-output-to-string"))
+
(defun geiser-guile--keywords ()
(append
- (when geiser-guile-extra-keywords
- `((,(format "[[(]%s\\>" (regexp-opt geiser-guile-extra-keywords 1))
- . 1)))
+ (geiser-syntax--simple-keywords geiser-guile-extra-keywords)
+ (geiser-syntax--simple-keywords geiser-guile--builtin-keywords)
`((,(rx "(" (group "define-once") eow (* space) (? (group (+ word))))
(1 font-lock-keyword-face)
(2 font-lock-variable-name-face nil t))
@@ -260,14 +281,21 @@ This function uses `geiser-guile-init-file' if it exists."
(geiser-syntax--scheme-indent
(c-declare 0)
(c-lambda 2)
+ (call-with-input-string 1)
+ (call-with-output-string 0)
(lambda* 1)
(pmatch defun)
(sigaction 1)
+ (with-error-to-file 1)
+ (with-error-to-port 1)
+ (with-error-to-string 0)
(with-fluid* 1)
(with-fluids 1)
(with-fluids* 1)
+ (with-input-from-string 1)
(with-method 1)
- (with-mutex 1))
+ (with-mutex 1)
+ (with-output-to-string 0))