diff options
Diffstat (limited to 'elisp/geiser-guile.el')
-rw-r--r-- | elisp/geiser-guile.el | 36 |
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)) |