1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- " Vim syntax file
- " Language: Scheme (CHICKEN)
- " Last Change: 2021 Oct 01
- " Author: Evan Hanson <evhan@foldling.org>
- " Maintainer: Evan Hanson <evhan@foldling.org>
- " Repository: https://git.foldling.org/vim-scheme.git
- " URL: https://foldling.org/vim/syntax/chicken.vim
- " Notes: This is supplemental syntax, to be loaded after the core Scheme
- " syntax file (syntax/scheme.vim). Enable it by setting b:is_chicken=1
- " and filetype=scheme.
- " Only to be used on top of the Scheme syntax.
- if !exists('b:did_scheme_syntax')
- finish
- endif
- " Lighten parentheses.
- hi! def link schemeParentheses Comment
- " foo#bar
- syn match schemeExtraSyntax /[^ #'`\t\n()\[\]"|;]\+#[^ '`\t\n()\[\]"|;]\+/
- " ##foo#bar
- syn match schemeExtraSyntax /##[^ '`\t\n()\[\]"|;]\+/
- " Heredocs.
- syn region schemeString start=/#<[<#]\s*\z(.*\)/ end=/^\z1$/
- " Keywords.
- syn match schemeKeyword /#[!:][a-zA-Z0-9!$%&*+-./:<=>?@^_~#]\+/
- syn match schemeKeyword /[a-zA-Z0-9!$%&*+-./:<=>?@^_~#]\+:\>/
- " C/C++ syntax.
- let s:c = globpath(&rtp, 'syntax/cpp.vim', 0, 1)
- if len(s:c)
- exe 'syn include @c ' s:c[0]
- syn region c matchgroup=schemeComment start=/#>/ end=/<#/ contains=@c
- endif
- " SRFI 26
- syn match schemeSyntax /\(([ \t\n]*\)\@<=\(cut\|cute\)\>/
- syn keyword schemeSyntax and-let*
- syn keyword schemeSyntax define-record
- syn keyword schemeSyntax set!-values
- syn keyword schemeSyntax fluid-let
- syn keyword schemeSyntax let-optionals
- syn keyword schemeSyntax let-optionals*
- syn keyword schemeSyntax letrec-values
- syn keyword schemeSyntax nth-value
- syn keyword schemeSyntax receive
- syn keyword schemeLibrarySyntax declare
- syn keyword schemeLibrarySyntax define-interface
- syn keyword schemeLibrarySyntax functor
- syn keyword schemeLibrarySyntax include-relative
- syn keyword schemeLibrarySyntax module
- syn keyword schemeLibrarySyntax reexport
- syn keyword schemeLibrarySyntax require-library
- syn keyword schemeTypeSyntax -->
- syn keyword schemeTypeSyntax ->
- syn keyword schemeTypeSyntax :
- syn keyword schemeTypeSyntax assume
- syn keyword schemeTypeSyntax compiler-typecase
- syn keyword schemeTypeSyntax define-specialization
- syn keyword schemeTypeSyntax define-type
- syn keyword schemeTypeSyntax the
- syn keyword schemeExtraSyntax match
- syn keyword schemeExtraSyntax match-lambda
- syn keyword schemeExtraSyntax match-lambda*
- syn keyword schemeExtraSyntax match-let
- syn keyword schemeExtraSyntax match-let*
- syn keyword schemeExtraSyntax match-letrec
- syn keyword schemeSpecialSyntax define-compiler-syntax
- syn keyword schemeSpecialSyntax define-constant
- syn keyword schemeSpecialSyntax define-external
- syn keyword schemeSpecialSyntax define-inline
- syn keyword schemeSpecialSyntax foreign-code
- syn keyword schemeSpecialSyntax foreign-declare
- syn keyword schemeSpecialSyntax foreign-lambda
- syn keyword schemeSpecialSyntax foreign-lambda*
- syn keyword schemeSpecialSyntax foreign-primitive
- syn keyword schemeSpecialSyntax foreign-safe-lambda
- syn keyword schemeSpecialSyntax foreign-safe-lambda*
- syn keyword schemeSpecialSyntax foreign-value
- syn keyword schemeSyntaxSyntax begin-for-syntax
- syn keyword schemeSyntaxSyntax define-for-syntax
- syn keyword schemeSyntaxSyntax er-macro-transformer
- syn keyword schemeSyntaxSyntax ir-macro-transformer
- syn keyword schemeSyntaxSyntax require-library-for-syntax
|