diff options
Diffstat (limited to 'elisp/geiser-chicken.el')
-rw-r--r-- | elisp/geiser-chicken.el | 109 |
1 files changed, 53 insertions, 56 deletions
diff --git a/elisp/geiser-chicken.el b/elisp/geiser-chicken.el index 973c4e7..2a8c082 100644 --- a/elisp/geiser-chicken.el +++ b/elisp/geiser-chicken.el @@ -27,17 +27,36 @@ (eval-when-compile (require 'cl)) (defconst geiser-chicken-builtin-keywords - '("and-let*" "assume" "compiler-typecase" "cond-expand" "condition-case" - "cut" "cute" "declare" "define-constant" "define-inline" "define-interface" - "define-record" "define-record-type" "define-specialization" - "define-syntax-rule" "define-type" "define-values" "dotimes" "ecase" - "fluid-let" "foreign-lambda" "foreign-lambda*" "foreign-primitive" - "foreign-safe-lambda" "foreign-safe-lambda*" "functor" "handle-exceptions" - "import" "let*-values" "let-location" "let-optionals" "let-optionals*" - "let-values" "letrec*" "letrec-values" "match-letrec" "module" - "parameterize" "regex-case" "require-extension" "select" "set!" - "unless" "use" "when" "with-input-from-pipe" "match" "match-lambda" - "match-lambda*" "match-let" "match-let*" "receive")) + '("assume" + "compiler-typecase" + "cond-expand" + "condition-case" + "declare" + "define-constant" + "define-inline" + "define-interface" + "define-record" + "define-specialization" + "define-type" + "dotimes" + "ecase" + "fluid-let" + "foreign-lambda" + "foreign-lambda*" + "foreign-primitive" + "foreign-safe-lambda" + "foreign-safe-lambda*" + "functor" + "handle-exceptions" + "let-location" + "let-optionals" + "let-optionals*" + "letrec-values" + "module" + "regex-case" + "select" + "use" + "with-input-from-pipe")) ;;; Customization: @@ -214,62 +233,40 @@ This function uses `geiser-chicken-init-file' if it exists." ;;; Keywords and syntax (defun geiser-chicken--keywords () - `((,(format "[[(]%s\\>" (regexp-opt geiser-chicken-builtin-keywords 1)) . 1))) + (append + (geiser-syntax--simple-keywords geiser-chicken-extra-keywords) + (geiser-syntax--simple-keywords geiser-chicken-builtin-keywords))) (geiser-syntax--scheme-indent - (receive 2) - (match 1) - (match-lambda 0) - (match-lambda* 0) - (match-let scheme-let-indent) - (match-let* 1) - (match-letrec 1) - (declare 0) + (assume 1) + (compiler-typecase 1) (cond-expand 0) - (let-values scheme-let-indent) - (let*-values scheme-let-indent) - (letrec-values 1) - (letrec* 1) - (parameterize scheme-let-indent) - (let-location 1) - (foreign-lambda 2) - (foreign-lambda* 2) - (foreign-primitive 2) - (foreign-safe-lambda 2) - (foreign-safe-lambda* 2) - (set! 1) - (let-optionals* 2) - (let-optionals 2) (condition-case 1) - (fluid-let 1) - (and-let* 1) - (assume 1) (cut 1) (cute 1) - (when 1) - (unless 1) + (declare 0) (dotimes 1) - (compiler-typecase 1) (ecase 1) - (use 0) - (require-extension 0) - (import 0) + (fluid-let 1) + (foreign-lambda 2) + (foreign-lambda* 2) + (foreign-primitive 2) + (foreign-safe-lambda 2) + (foreign-safe-lambda* 2) + (functor 3) (handle-exceptions 2) + (import 0) + (let-location 1) + (let-optionals 2) + (let-optionals* 2) + (letrec-values 1) + (module 2) (regex-case 1) - (define-inline 1) - (define-constant 1) - (define-syntax-rule 1) - (define-record-type 1) - (define-values 1) - (define-record 1) - (define-specialization 1) - (define-type 1) - (with-input-from-pipe 1) - (with-output-to-pipe 1) (select 1) - (functor 3) - (define-interface 1) - (module 2)) + (set! 1) + (use 0) + (with-input-from-pipe 1) + (with-output-to-pipe 1)) ;;; REPL startup |