1" Vim syntax file 2" Language: Scheme (CHICKEN) 3" Last Change: 2018-02-05 4" Author: Evan Hanson <[email protected]> 5" Maintainer: Evan Hanson <[email protected]> 6" URL: https://foldling.org/vim/syntax/chicken.vim 7" Notes: This is supplemental syntax, to be loaded after the core Scheme 8" syntax file (syntax/scheme.vim). Enable it by setting b:is_chicken=1 9" and filetype=scheme. 10 11" Only to be used on top of the Scheme syntax. 12if !exists('b:did_scheme_syntax') 13 finish 14endif 15 16" Lighten parentheses. 17hi! def link schemeParentheses Comment 18 19" foo#bar 20syn match schemeExtraSyntax /[^ #'`\t\n()\[\]"|;]\+#[^ '`\t\n()\[\]"|;]\+/ 21 22" ##foo#bar 23syn match schemeExtraSyntax /##[^ '`\t\n()\[\]"|;]\+/ 24 25" Heredocs. 26syn region schemeString start=/#<[<#]\s*\z(.*\)/ end=/^\z1$/ 27 28" Keywords. 29syn match schemeKeyword /#[!:][a-zA-Z0-9!$%&*+-./:<=>?@^_~#]\+/ 30syn match schemeKeyword /[a-zA-Z0-9!$%&*+-./:<=>?@^_~#]\+:\>/ 31 32" C/C++ syntax. 33let s:c = globpath(&rtp, 'syntax/cpp.vim', 0, 1) 34if len(s:c) 35 exe 'syn include @c ' s:c[0] 36 syn region c matchgroup=schemeComment start=/#>/ end=/<#/ contains=@c 37endif 38 39syn keyword schemeSyntax define-record 40 41syn keyword schemeLibrarySyntax declare 42syn keyword schemeLibrarySyntax module 43syn keyword schemeLibrarySyntax reexport 44syn keyword schemeLibrarySyntax require-library 45 46syn keyword schemeTypeSyntax --> 47syn keyword schemeTypeSyntax -> 48syn keyword schemeTypeSyntax : 49syn keyword schemeTypeSyntax assume 50syn keyword schemeTypeSyntax compiler-typecase 51syn keyword schemeTypeSyntax define-specialization 52syn keyword schemeTypeSyntax define-type 53syn keyword schemeTypeSyntax the 54 55syn keyword schemeExtraSyntax and-let* 56syn keyword schemeExtraSyntax match 57syn keyword schemeExtraSyntax match-lambda 58syn keyword schemeExtraSyntax match-lambda* 59 60syn keyword schemeSpecialSyntax define-compiler-syntax 61syn keyword schemeSpecialSyntax define-constant 62syn keyword schemeSpecialSyntax define-external 63syn keyword schemeSpecialSyntax define-inline 64syn keyword schemeSpecialSyntax foreign-code 65syn keyword schemeSpecialSyntax foreign-declare 66syn keyword schemeSpecialSyntax foreign-lambda 67syn keyword schemeSpecialSyntax foreign-lambda* 68syn keyword schemeSpecialSyntax foreign-primitive 69syn keyword schemeSpecialSyntax foreign-safe-lambda 70syn keyword schemeSpecialSyntax foreign-safe-lambda* 71syn keyword schemeSpecialSyntax foreign-value 72 73syn keyword schemeSyntaxSyntax begin-for-syntax 74syn keyword schemeSyntaxSyntax define-for-syntax 75syn keyword schemeSyntaxSyntax er-macro-transformer 76syn keyword schemeSyntaxSyntax ir-macro-transformer 77syn keyword schemeSyntaxSyntax require-library-for-syntax 78