123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468 |
- " Vim syntax file
- " Language: Scheme (R7RS)
- " Last Change: 2021-01-03
- " Author: Evan Hanson <evhan@foldling.org>
- " Maintainer: Evan Hanson <evhan@foldling.org>
- " Previous Author: Dirk van Deun <dirk@igwe.vub.ac.be>
- " Previous Maintainer: Sergey Khorev <sergey.khorev@gmail.com>
- " Repository: https://git.foldling.org/vim-scheme.git
- " URL: https://foldling.org/vim/syntax/scheme.vim
- if exists('b:current_syntax')
- finish
- endif
- let s:cpo = &cpo
- set cpo&vim
- syn spell notoplevel
- syn match schemeParentheses "[^ '`\t\n()\[\]";]\+"
- syn match schemeParentheses "[)\]]"
- syn match schemeIdentifier /[^ '`\t\n()\[\]"|;][^ '`\t\n()\[\]"|;]*/
- syn region schemeQuote matchgroup=schemeData start=/'[`']*/ end=/[ \t\n()\[\]";]/me=e-1
- syn region schemeQuote matchgroup=schemeData start=/'['`]*"/ skip=/\\[\\"]/ end=/"/
- syn region schemeQuote matchgroup=schemeData start=/'['`]*|/ skip=/\\[\\|]/ end=/|/
- syn region schemeQuote matchgroup=schemeData start=/'['`]*#\?(/ end=/)/ contains=ALLBUT,schemeQuasiquote,schemeQuasiquoteForm,schemeUnquote,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster
- syn region schemeQuasiquote matchgroup=schemeData start=/`['`]*/ end=/[ \t\n()\[\]";]/me=e-1
- syn region schemeQuasiquote matchgroup=schemeData start=/`['`]*#\?(/ end=/)/ contains=ALLBUT,schemeQuote,schemeQuoteForm,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster
- syn region schemeUnquote matchgroup=schemeParentheses start=/,/ end=/[ `'\t\n\[\]()";]/me=e-1 contained contains=ALLBUT,schemeDatumCommentForm,@schemeImportCluster
- syn region schemeUnquote matchgroup=schemeParentheses start=/,@/ end=/[ `'\t\n\[\]()";]/me=e-1 contained contains=ALLBUT,schemeDatumCommentForm,@schemeImportCluster
- syn region schemeUnquote matchgroup=schemeParentheses start=/,(/ end=/)/ contained contains=ALLBUT,schemeDatumCommentForm,@schemeImportCluster
- syn region schemeUnquote matchgroup=schemeParentheses start=/,@(/ end=/)/ contained contains=ALLBUT,schemeDatumCommentForm,@schemeImportCluster
- syn region schemeQuoteForm matchgroup=schemeData start=/(/ end=/)/ contained contains=ALLBUT,schemeQuasiquote,schemeQuasiquoteForm,schemeUnquote,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster
- syn region schemeQuasiquoteForm matchgroup=schemeData start=/(/ end=/)/ contained contains=ALLBUT,schemeQuote,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster
- syn region schemeString start=/\(\\\)\@<!"/ skip=/\\[\\"]/ end=/"/ contains=@Spell
- syn region schemeSymbol start=/\(\\\)\@<!|/ skip=/\\[\\|]/ end=/|/
- syn match schemeNumber /\(#[dbeio]\)*[+\-]*\([0-9]\+\|inf.0\|nan.0\)\(\/\|\.\)\?[0-9+\-@\ilns]*\>/
- syn match schemeNumber /#x[+\-]*[0-9a-fA-F]\+\>/
- syn match schemeBoolean /#t\(rue\)\?/
- syn match schemeBoolean /#f\(alse\)\?/
- syn match schemeCharacter /#\\.[^ `'\t\n\[\]()]*/
- syn match schemeCharacter /#\\x[0-9a-fA-F]\+/
- syn match schemeComment /;.*$/ contains=@Spell
- syn region schemeMultilineComment start=/#|/ end=/|#/ contains=schemeMultilineComment,@Spell
- syn region schemeForm matchgroup=schemeParentheses start="(" end=")" contains=ALLBUT,schemeUnquote,schemeDatumCommentForm,@schemeImportCluster
- syn region schemeForm matchgroup=schemeParentheses start="\[" end="\]" contains=ALLBUT,schemeUnquote,schemeDatumCommentForm,@schemeImportCluster
- syn region schemeVector matchgroup=schemeData start="#(" end=")" contains=ALLBUT,schemeQuasiquote,schemeQuasiquoteForm,schemeUnquote,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster
- syn region schemeVector matchgroup=schemeData start="#[fsu]\d\+(" end=")" contains=schemeNumber,schemeComment,schemeDatumComment
- if exists('g:is_chicken') || exists('b:is_chicken')
- syn region schemeImport matchgroup=schemeImport start="\(([ \t\n]*\)\@<=\(import\|import-syntax\|use\|require-extension\)\(-for-syntax\)\?\>" end=")"me=e-1 contained contains=schemeImportForm,schemeIdentifier,schemeComment,schemeDatumComment
- else
- syn region schemeImport matchgroup=schemeImport start="\(([ \t\n]*\)\@<=\(import\)\>" end=")"me=e-1 contained contains=schemeImportForm,schemeIdentifier,schemeComment,schemeDatumComment
- endif
- syn match schemeImportKeyword "\(([ \t\n]*\)\@<=\(except\|only\|prefix\|rename\)\>"
- syn region schemeImportForm matchgroup=schemeParentheses start="(" end=")" contained contains=schemeIdentifier,schemeComment,schemeDatumComment,@schemeImportCluster
- syn cluster schemeImportCluster contains=schemeImportForm,schemeImportKeyword
- syn region schemeDatumComment matchgroup=schemeDatumComment start=/#;[ \t\n`']*/ end=/[ \t\n()\[\]";]/me=e-1
- syn region schemeDatumComment matchgroup=schemeDatumComment start=/#;[ \t\n`']*"/ skip=/\\[\\"]/ end=/"/
- syn region schemeDatumComment matchgroup=schemeDatumComment start=/#;[ \t\n`']*|/ skip=/\\[\\|]/ end=/|/
- syn region schemeDatumComment matchgroup=schemeDatumComment start=/#;[ \t\n`']*\(#\([usf]\d\+\)\?\)\?(/ end=/)/ contains=schemeDatumCommentForm
- syn region schemeDatumCommentForm start="(" end=")" contained contains=schemeDatumCommentForm
- syn cluster schemeSyntaxCluster contains=schemeFunction,schemeKeyword,schemeSyntax,schemeExtraSyntax,schemeLibrarySyntax,schemeSyntaxSyntax
- syn keyword schemeLibrarySyntax define-library
- syn keyword schemeLibrarySyntax export
- syn keyword schemeLibrarySyntax include
- syn keyword schemeLibrarySyntax include-ci
- syn keyword schemeLibrarySyntax include-library-declarations
- syn keyword schemeLibrarySyntax library
- syn keyword schemeLibrarySyntax cond-expand
- syn keyword schemeSyntaxSyntax define-syntax
- syn keyword schemeSyntaxSyntax let-syntax
- syn keyword schemeSyntaxSyntax letrec-syntax
- syn keyword schemeSyntaxSyntax syntax-rules
- syn keyword schemeSyntax =>
- syn keyword schemeSyntax and
- syn keyword schemeSyntax begin
- syn keyword schemeSyntax case
- syn keyword schemeSyntax case-lambda
- syn keyword schemeSyntax cond
- syn keyword schemeSyntax define
- syn keyword schemeSyntax define-record-type
- syn keyword schemeSyntax define-values
- syn keyword schemeSyntax delay
- syn keyword schemeSyntax delay-force
- syn keyword schemeSyntax do
- syn keyword schemeSyntax else
- syn keyword schemeSyntax guard
- syn keyword schemeSyntax if
- syn keyword schemeSyntax lambda
- syn keyword schemeSyntax let
- syn keyword schemeSyntax let*
- syn keyword schemeSyntax let*-values
- syn keyword schemeSyntax let-values
- syn keyword schemeSyntax letrec
- syn keyword schemeSyntax letrec*
- syn keyword schemeSyntax or
- syn keyword schemeSyntax parameterize
- syn keyword schemeSyntax quasiquote
- syn keyword schemeSyntax quote
- syn keyword schemeSyntax set!
- syn keyword schemeSyntax unless
- syn keyword schemeSyntax unquote
- syn keyword schemeSyntax unquote-splicing
- syn keyword schemeSyntax when
- syn keyword schemeFunction *
- syn keyword schemeFunction +
- syn keyword schemeFunction -
- syn keyword schemeFunction /
- syn keyword schemeFunction <
- syn keyword schemeFunction <=
- syn keyword schemeFunction =
- syn keyword schemeFunction >
- syn keyword schemeFunction >=
- syn keyword schemeFunction abs
- syn keyword schemeFunction acos
- syn keyword schemeFunction acos
- syn keyword schemeFunction angle
- syn keyword schemeFunction append
- syn keyword schemeFunction apply
- syn keyword schemeFunction asin
- syn keyword schemeFunction assoc
- syn keyword schemeFunction assq
- syn keyword schemeFunction assv
- syn keyword schemeFunction atan
- syn keyword schemeFunction binary-port?
- syn keyword schemeFunction boolean=?
- syn keyword schemeFunction boolean?
- syn keyword schemeFunction bytevector
- syn keyword schemeFunction bytevector-append
- syn keyword schemeFunction bytevector-append
- syn keyword schemeFunction bytevector-copy
- syn keyword schemeFunction bytevector-copy!
- syn keyword schemeFunction bytevector-length
- syn keyword schemeFunction bytevector-u8-ref
- syn keyword schemeFunction bytevector-u8-set!
- syn keyword schemeFunction bytevector?
- syn keyword schemeFunction caaaar
- syn keyword schemeFunction caaadr
- syn keyword schemeFunction caaar
- syn keyword schemeFunction caadar
- syn keyword schemeFunction caaddr
- syn keyword schemeFunction caadr
- syn keyword schemeFunction caar
- syn keyword schemeFunction cadaar
- syn keyword schemeFunction cadadr
- syn keyword schemeFunction cadar
- syn keyword schemeFunction caddar
- syn keyword schemeFunction cadddr
- syn keyword schemeFunction caddr
- syn keyword schemeFunction cadr
- syn keyword schemeFunction call-with-current-continuation
- syn keyword schemeFunction call-with-input-file
- syn keyword schemeFunction call-with-output-file
- syn keyword schemeFunction call-with-port
- syn keyword schemeFunction call-with-values
- syn keyword schemeFunction call/cc
- syn keyword schemeFunction car
- syn keyword schemeFunction cdaaar
- syn keyword schemeFunction cdaadr
- syn keyword schemeFunction cdaar
- syn keyword schemeFunction cdadar
- syn keyword schemeFunction cdaddr
- syn keyword schemeFunction cdadr
- syn keyword schemeFunction cdar
- syn keyword schemeFunction cddaar
- syn keyword schemeFunction cddadr
- syn keyword schemeFunction cddar
- syn keyword schemeFunction cdddar
- syn keyword schemeFunction cddddr
- syn keyword schemeFunction cdddr
- syn keyword schemeFunction cddr
- syn keyword schemeFunction cdr
- syn keyword schemeFunction ceiling
- syn keyword schemeFunction char->integer
- syn keyword schemeFunction char-alphabetic?
- syn keyword schemeFunction char-ci<=?
- syn keyword schemeFunction char-ci<?
- syn keyword schemeFunction char-ci=?
- syn keyword schemeFunction char-ci>=?
- syn keyword schemeFunction char-ci>?
- syn keyword schemeFunction char-downcase
- syn keyword schemeFunction char-foldcase
- syn keyword schemeFunction char-lower-case?
- syn keyword schemeFunction char-numeric?
- syn keyword schemeFunction char-ready?
- syn keyword schemeFunction char-upcase
- syn keyword schemeFunction char-upper-case?
- syn keyword schemeFunction char-whitespace?
- syn keyword schemeFunction char<=?
- syn keyword schemeFunction char<?
- syn keyword schemeFunction char=?
- syn keyword schemeFunction char>=?
- syn keyword schemeFunction char>?
- syn keyword schemeFunction char?
- syn keyword schemeFunction close-input-port
- syn keyword schemeFunction close-output-port
- syn keyword schemeFunction close-port
- syn keyword schemeFunction command-line
- syn keyword schemeFunction complex?
- syn keyword schemeFunction cons
- syn keyword schemeFunction cos
- syn keyword schemeFunction current-error-port
- syn keyword schemeFunction current-input-port
- syn keyword schemeFunction current-jiffy
- syn keyword schemeFunction current-output-port
- syn keyword schemeFunction current-second
- syn keyword schemeFunction delete-file
- syn keyword schemeFunction denominator
- syn keyword schemeFunction digit-value
- syn keyword schemeFunction display
- syn keyword schemeFunction dynamic-wind
- syn keyword schemeFunction emergency-exit
- syn keyword schemeFunction environment
- syn keyword schemeFunction eof-object
- syn keyword schemeFunction eof-object?
- syn keyword schemeFunction eq?
- syn keyword schemeFunction equal?
- syn keyword schemeFunction eqv?
- syn keyword schemeFunction error
- syn keyword schemeFunction error-object-irritants
- syn keyword schemeFunction error-object-message
- syn keyword schemeFunction error-object?
- syn keyword schemeFunction eval
- syn keyword schemeFunction even?
- syn keyword schemeFunction exact
- syn keyword schemeFunction exact->inexact
- syn keyword schemeFunction exact-integer-sqrt
- syn keyword schemeFunction exact-integer?
- syn keyword schemeFunction exact?
- syn keyword schemeFunction exit
- syn keyword schemeFunction exp
- syn keyword schemeFunction expt
- syn keyword schemeFunction features
- syn keyword schemeFunction file-error?
- syn keyword schemeFunction file-exists?
- syn keyword schemeFunction finite?
- syn keyword schemeFunction floor
- syn keyword schemeFunction floor-quotient
- syn keyword schemeFunction floor-remainder
- syn keyword schemeFunction floor/
- syn keyword schemeFunction flush-output-port
- syn keyword schemeFunction for-each
- syn keyword schemeFunction force
- syn keyword schemeFunction gcd
- syn keyword schemeFunction get-environment-variable
- syn keyword schemeFunction get-environment-variables
- syn keyword schemeFunction get-output-bytevector
- syn keyword schemeFunction get-output-string
- syn keyword schemeFunction imag-part
- syn keyword schemeFunction inexact
- syn keyword schemeFunction inexact->exact
- syn keyword schemeFunction inexact?
- syn keyword schemeFunction infinite?
- syn keyword schemeFunction input-port-open?
- syn keyword schemeFunction input-port?
- syn keyword schemeFunction integer->char
- syn keyword schemeFunction integer?
- syn keyword schemeFunction interaction-environment
- syn keyword schemeFunction jiffies-per-second
- syn keyword schemeFunction lcm
- syn keyword schemeFunction length
- syn keyword schemeFunction list
- syn keyword schemeFunction list->string
- syn keyword schemeFunction list->vector
- syn keyword schemeFunction list-copy
- syn keyword schemeFunction list-ref
- syn keyword schemeFunction list-set!
- syn keyword schemeFunction list-tail
- syn keyword schemeFunction list?
- syn keyword schemeFunction load
- syn keyword schemeFunction log
- syn keyword schemeFunction magnitude
- syn keyword schemeFunction make-bytevector
- syn keyword schemeFunction make-list
- syn keyword schemeFunction make-parameter
- syn keyword schemeFunction make-polar
- syn keyword schemeFunction make-promise
- syn keyword schemeFunction make-rectangular
- syn keyword schemeFunction make-string
- syn keyword schemeFunction make-vector
- syn keyword schemeFunction map
- syn keyword schemeFunction max
- syn keyword schemeFunction member
- syn keyword schemeFunction memq
- syn keyword schemeFunction memv
- syn keyword schemeFunction min
- syn keyword schemeFunction modulo
- syn keyword schemeFunction nan?
- syn keyword schemeFunction negative?
- syn keyword schemeFunction newline
- syn keyword schemeFunction not
- syn keyword schemeFunction null-environment
- syn keyword schemeFunction null?
- syn keyword schemeFunction number->string
- syn keyword schemeFunction number?
- syn keyword schemeFunction numerator
- syn keyword schemeFunction odd?
- syn keyword schemeFunction open-binary-input-file
- syn keyword schemeFunction open-binary-output-file
- syn keyword schemeFunction open-input-bytevector
- syn keyword schemeFunction open-input-file
- syn keyword schemeFunction open-input-string
- syn keyword schemeFunction open-output-bytevector
- syn keyword schemeFunction open-output-file
- syn keyword schemeFunction open-output-string
- syn keyword schemeFunction output-port-open?
- syn keyword schemeFunction output-port?
- syn keyword schemeFunction pair?
- syn keyword schemeFunction peek-char
- syn keyword schemeFunction peek-u8
- syn keyword schemeFunction port?
- syn keyword schemeFunction positive?
- syn keyword schemeFunction procedure?
- syn keyword schemeFunction promise?
- syn keyword schemeFunction quotient
- syn keyword schemeFunction raise
- syn keyword schemeFunction raise-continuable
- syn keyword schemeFunction rational?
- syn keyword schemeFunction rationalize
- syn keyword schemeFunction read
- syn keyword schemeFunction read-bytevector
- syn keyword schemeFunction read-bytevector!
- syn keyword schemeFunction read-char
- syn keyword schemeFunction read-error?
- syn keyword schemeFunction read-line
- syn keyword schemeFunction read-string
- syn keyword schemeFunction read-u8
- syn keyword schemeFunction real-part
- syn keyword schemeFunction real?
- syn keyword schemeFunction remainder
- syn keyword schemeFunction reverse
- syn keyword schemeFunction round
- syn keyword schemeFunction scheme-report-environment
- syn keyword schemeFunction set-car!
- syn keyword schemeFunction set-cdr!
- syn keyword schemeFunction sin
- syn keyword schemeFunction sqrt
- syn keyword schemeFunction square
- syn keyword schemeFunction string
- syn keyword schemeFunction string->list
- syn keyword schemeFunction string->number
- syn keyword schemeFunction string->symbol
- syn keyword schemeFunction string->utf8
- syn keyword schemeFunction string->vector
- syn keyword schemeFunction string-append
- syn keyword schemeFunction string-ci<=?
- syn keyword schemeFunction string-ci<?
- syn keyword schemeFunction string-ci=?
- syn keyword schemeFunction string-ci>=?
- syn keyword schemeFunction string-ci>?
- syn keyword schemeFunction string-copy
- syn keyword schemeFunction string-copy!
- syn keyword schemeFunction string-downcase
- syn keyword schemeFunction string-fill!
- syn keyword schemeFunction string-foldcase
- syn keyword schemeFunction string-for-each
- syn keyword schemeFunction string-length
- syn keyword schemeFunction string-map
- syn keyword schemeFunction string-ref
- syn keyword schemeFunction string-set!
- syn keyword schemeFunction string-upcase
- syn keyword schemeFunction string<=?
- syn keyword schemeFunction string<?
- syn keyword schemeFunction string=?
- syn keyword schemeFunction string>=?
- syn keyword schemeFunction string>?
- syn keyword schemeFunction string?
- syn keyword schemeFunction substring
- syn keyword schemeFunction symbol->string
- syn keyword schemeFunction symbol=?
- syn keyword schemeFunction symbol?
- syn keyword schemeFunction syntax-error
- syn keyword schemeFunction tan
- syn keyword schemeFunction textual-port?
- syn keyword schemeFunction transcript-off
- syn keyword schemeFunction transcript-on
- syn keyword schemeFunction truncate
- syn keyword schemeFunction truncate-quotient
- syn keyword schemeFunction truncate-remainder
- syn keyword schemeFunction truncate/
- syn keyword schemeFunction u8-ready?
- syn keyword schemeFunction utf8->string
- syn keyword schemeFunction values
- syn keyword schemeFunction vector
- syn keyword schemeFunction vector->list
- syn keyword schemeFunction vector->string
- syn keyword schemeFunction vector-append
- syn keyword schemeFunction vector-copy
- syn keyword schemeFunction vector-copy!
- syn keyword schemeFunction vector-fill!
- syn keyword schemeFunction vector-for-each
- syn keyword schemeFunction vector-length
- syn keyword schemeFunction vector-map
- syn keyword schemeFunction vector-ref
- syn keyword schemeFunction vector-set!
- syn keyword schemeFunction vector?
- syn keyword schemeFunction with-exception-handler
- syn keyword schemeFunction with-input-from-file
- syn keyword schemeFunction with-output-to-file
- syn keyword schemeFunction write
- syn keyword schemeFunction write-bytevector
- syn keyword schemeFunction write-char
- syn keyword schemeFunction write-shared
- syn keyword schemeFunction write-simple
- syn keyword schemeFunction write-string
- syn keyword schemeFunction write-u8
- syn keyword schemeFunction zero?
- hi def link schemeBoolean Boolean
- hi def link schemeCharacter Character
- hi def link schemeComment Comment
- hi def link schemeConstant Constant
- hi def link schemeData Delimiter
- hi def link schemeDatumComment Comment
- hi def link schemeDatumCommentForm Comment
- hi def link schemeDelimiter Delimiter
- hi def link schemeError Error
- hi def link schemeExtraSyntax Underlined
- hi def link schemeFunction Function
- hi def link schemeIdentifier Normal
- hi def link schemeImport PreProc
- hi def link schemeImportKeyword PreProc
- hi def link schemeKeyword Type
- hi def link schemeLibrarySyntax PreProc
- hi def link schemeMultilineComment Comment
- hi def link schemeNumber Number
- hi def link schemeParentheses Normal
- hi def link schemeQuasiquote Delimiter
- hi def link schemeQuote Delimiter
- hi def link schemeSpecialSyntax Special
- hi def link schemeString String
- hi def link schemeSymbol Normal
- hi def link schemeSyntax Statement
- hi def link schemeSyntaxSyntax PreProc
- hi def link schemeTypeSyntax Type
- let b:did_scheme_syntax = 1
- if exists('b:is_chicken') || exists('g:is_chicken')
- exe 'ru! syntax/chicken.vim'
- endif
- unlet b:did_scheme_syntax
- let b:current_syntax = 'scheme'
- let &cpo = s:cpo
- unlet s:cpo
|