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))  | 
