summaryrefslogtreecommitdiff
path: root/elisp/geiser-chicken.el
diff options
context:
space:
mode:
Diffstat (limited to 'elisp/geiser-chicken.el')
-rw-r--r--elisp/geiser-chicken.el109
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