xref: /vim-8.2.3635/runtime/syntax/chicken.vim (revision 6e649224)
17254067eSBram Moolenaar" Vim syntax file
27254067eSBram Moolenaar" Language: Scheme (CHICKEN)
3*6e649224SBram Moolenaar" Last Change: 2021 Oct 01
47254067eSBram Moolenaar" Author: Evan Hanson <[email protected]>
57254067eSBram Moolenaar" Maintainer: Evan Hanson <[email protected]>
66aa57295SBram Moolenaar" Repository: https://git.foldling.org/vim-scheme.git
77254067eSBram Moolenaar" URL: https://foldling.org/vim/syntax/chicken.vim
87254067eSBram Moolenaar" Notes: This is supplemental syntax, to be loaded after the core Scheme
97254067eSBram Moolenaar" syntax file (syntax/scheme.vim). Enable it by setting b:is_chicken=1
107254067eSBram Moolenaar" and filetype=scheme.
117254067eSBram Moolenaar
127254067eSBram Moolenaar" Only to be used on top of the Scheme syntax.
137254067eSBram Moolenaarif !exists('b:did_scheme_syntax')
147254067eSBram Moolenaar  finish
157254067eSBram Moolenaarendif
167254067eSBram Moolenaar
177254067eSBram Moolenaar" Lighten parentheses.
18b5b75624SBram Moolenaarhi! def link schemeParentheses Comment
197254067eSBram Moolenaar
207254067eSBram Moolenaar" foo#bar
217254067eSBram Moolenaarsyn match schemeExtraSyntax /[^ #'`\t\n()\[\]"|;]\+#[^ '`\t\n()\[\]"|;]\+/
227254067eSBram Moolenaar
237254067eSBram Moolenaar" ##foo#bar
247254067eSBram Moolenaarsyn match schemeExtraSyntax /##[^ '`\t\n()\[\]"|;]\+/
257254067eSBram Moolenaar
267254067eSBram Moolenaar" Heredocs.
277254067eSBram Moolenaarsyn region schemeString start=/#<[<#]\s*\z(.*\)/ end=/^\z1$/
287254067eSBram Moolenaar
297254067eSBram Moolenaar" Keywords.
307254067eSBram Moolenaarsyn match schemeKeyword /#[!:][a-zA-Z0-9!$%&*+-./:<=>?@^_~#]\+/
317254067eSBram Moolenaarsyn match schemeKeyword /[a-zA-Z0-9!$%&*+-./:<=>?@^_~#]\+:\>/
327254067eSBram Moolenaar
337254067eSBram Moolenaar" C/C++ syntax.
347254067eSBram Moolenaarlet s:c = globpath(&rtp, 'syntax/cpp.vim', 0, 1)
357254067eSBram Moolenaarif len(s:c)
367254067eSBram Moolenaar  exe 'syn include @c ' s:c[0]
377254067eSBram Moolenaar  syn region c matchgroup=schemeComment start=/#>/ end=/<#/ contains=@c
387254067eSBram Moolenaarendif
397254067eSBram Moolenaar
40*6e649224SBram Moolenaar" SRFI 26
416aa57295SBram Moolenaarsyn match schemeSyntax /\(([ \t\n]*\)\@<=\(cut\|cute\)\>/
426aa57295SBram Moolenaar
436aa57295SBram Moolenaarsyn keyword schemeSyntax and-let*
447254067eSBram Moolenaarsyn keyword schemeSyntax define-record
456aa57295SBram Moolenaarsyn keyword schemeSyntax set!-values
466aa57295SBram Moolenaarsyn keyword schemeSyntax fluid-let
476aa57295SBram Moolenaarsyn keyword schemeSyntax let-optionals
486aa57295SBram Moolenaarsyn keyword schemeSyntax let-optionals*
496aa57295SBram Moolenaarsyn keyword schemeSyntax letrec-values
506aa57295SBram Moolenaarsyn keyword schemeSyntax nth-value
516aa57295SBram Moolenaarsyn keyword schemeSyntax receive
527254067eSBram Moolenaar
537254067eSBram Moolenaarsyn keyword schemeLibrarySyntax declare
546aa57295SBram Moolenaarsyn keyword schemeLibrarySyntax define-interface
556aa57295SBram Moolenaarsyn keyword schemeLibrarySyntax functor
566aa57295SBram Moolenaarsyn keyword schemeLibrarySyntax include-relative
577254067eSBram Moolenaarsyn keyword schemeLibrarySyntax module
587254067eSBram Moolenaarsyn keyword schemeLibrarySyntax reexport
597254067eSBram Moolenaarsyn keyword schemeLibrarySyntax require-library
607254067eSBram Moolenaar
617254067eSBram Moolenaarsyn keyword schemeTypeSyntax -->
627254067eSBram Moolenaarsyn keyword schemeTypeSyntax ->
637254067eSBram Moolenaarsyn keyword schemeTypeSyntax :
647254067eSBram Moolenaarsyn keyword schemeTypeSyntax assume
657254067eSBram Moolenaarsyn keyword schemeTypeSyntax compiler-typecase
667254067eSBram Moolenaarsyn keyword schemeTypeSyntax define-specialization
677254067eSBram Moolenaarsyn keyword schemeTypeSyntax define-type
687254067eSBram Moolenaarsyn keyword schemeTypeSyntax the
697254067eSBram Moolenaar
707254067eSBram Moolenaarsyn keyword schemeExtraSyntax match
717254067eSBram Moolenaarsyn keyword schemeExtraSyntax match-lambda
727254067eSBram Moolenaarsyn keyword schemeExtraSyntax match-lambda*
736aa57295SBram Moolenaarsyn keyword schemeExtraSyntax match-let
746aa57295SBram Moolenaarsyn keyword schemeExtraSyntax match-let*
756aa57295SBram Moolenaarsyn keyword schemeExtraSyntax match-letrec
767254067eSBram Moolenaar
777254067eSBram Moolenaarsyn keyword schemeSpecialSyntax define-compiler-syntax
787254067eSBram Moolenaarsyn keyword schemeSpecialSyntax define-constant
797254067eSBram Moolenaarsyn keyword schemeSpecialSyntax define-external
807254067eSBram Moolenaarsyn keyword schemeSpecialSyntax define-inline
817254067eSBram Moolenaarsyn keyword schemeSpecialSyntax foreign-code
827254067eSBram Moolenaarsyn keyword schemeSpecialSyntax foreign-declare
837254067eSBram Moolenaarsyn keyword schemeSpecialSyntax foreign-lambda
847254067eSBram Moolenaarsyn keyword schemeSpecialSyntax foreign-lambda*
857254067eSBram Moolenaarsyn keyword schemeSpecialSyntax foreign-primitive
867254067eSBram Moolenaarsyn keyword schemeSpecialSyntax foreign-safe-lambda
877254067eSBram Moolenaarsyn keyword schemeSpecialSyntax foreign-safe-lambda*
887254067eSBram Moolenaarsyn keyword schemeSpecialSyntax foreign-value
897254067eSBram Moolenaar
907254067eSBram Moolenaarsyn keyword schemeSyntaxSyntax begin-for-syntax
917254067eSBram Moolenaarsyn keyword schemeSyntaxSyntax define-for-syntax
927254067eSBram Moolenaarsyn keyword schemeSyntaxSyntax er-macro-transformer
937254067eSBram Moolenaarsyn keyword schemeSyntaxSyntax ir-macro-transformer
947254067eSBram Moolenaarsyn keyword schemeSyntaxSyntax require-library-for-syntax
95