blob: 59b0cc5b188d9a6a4dc293fdc22be9b419355e3a [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
Evan Hanson17e0a192024-06-21 07:37:49 +02002" Language: Scheme (R7RS)
3" Last Change: 2024 Jun 21
4" Author: Evan Hanson <evhan@foldling.org>
5" Maintainer: Evan Hanson <evhan@foldling.org>
6" Previous Author: Dirk van Deun <dirk@igwe.vub.ac.be>
Bram Moolenaar72540672018-02-09 22:00:53 +01007" Previous Maintainer: Sergey Khorev <sergey.khorev@gmail.com>
Evan Hanson17e0a192024-06-21 07:37:49 +02008" Repository: https://git.foldling.org/vim-scheme.git
9" URL: https://foldling.org/vim/syntax/scheme.vim
Bram Moolenaar071d4272004-06-13 20:20:40 +000010
Bram Moolenaar72540672018-02-09 22:00:53 +010011if exists('b:current_syntax')
Bram Moolenaar071d4272004-06-13 20:20:40 +000012 finish
13endif
14
Bram Moolenaar72540672018-02-09 22:00:53 +010015let s:cpo = &cpo
Bram Moolenaar5dc62522012-02-13 00:05:22 +010016set cpo&vim
17
Bram Moolenaar6aa57292021-08-14 21:25:52 +020018syn spell notoplevel
19
Bram Moolenaar72540672018-02-09 22:00:53 +010020syn match schemeParentheses "[^ '`\t\n()\[\]";]\+"
21syn match schemeParentheses "[)\]]"
Bram Moolenaar071d4272004-06-13 20:20:40 +000022
Bram Moolenaar72540672018-02-09 22:00:53 +010023syn match schemeIdentifier /[^ '`\t\n()\[\]"|;][^ '`\t\n()\[\]"|;]*/
Bram Moolenaar071d4272004-06-13 20:20:40 +000024
Bram Moolenaar72540672018-02-09 22:00:53 +010025syn region schemeQuote matchgroup=schemeData start=/'[`']*/ end=/[ \t\n()\[\]";]/me=e-1
26syn region schemeQuote matchgroup=schemeData start=/'['`]*"/ skip=/\\[\\"]/ end=/"/
27syn region schemeQuote matchgroup=schemeData start=/'['`]*|/ skip=/\\[\\|]/ end=/|/
28syn region schemeQuote matchgroup=schemeData start=/'['`]*#\?(/ end=/)/ contains=ALLBUT,schemeQuasiquote,schemeQuasiquoteForm,schemeUnquote,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster
Bram Moolenaar071d4272004-06-13 20:20:40 +000029
Bram Moolenaar72540672018-02-09 22:00:53 +010030syn region schemeQuasiquote matchgroup=schemeData start=/`['`]*/ end=/[ \t\n()\[\]";]/me=e-1
31syn region schemeQuasiquote matchgroup=schemeData start=/`['`]*#\?(/ end=/)/ contains=ALLBUT,schemeQuote,schemeQuoteForm,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster
Bram Moolenaar071d4272004-06-13 20:20:40 +000032
Bram Moolenaar72540672018-02-09 22:00:53 +010033syn region schemeUnquote matchgroup=schemeParentheses start=/,/ end=/[ `'\t\n\[\]()";]/me=e-1 contained contains=ALLBUT,schemeDatumCommentForm,@schemeImportCluster
34syn region schemeUnquote matchgroup=schemeParentheses start=/,@/ end=/[ `'\t\n\[\]()";]/me=e-1 contained contains=ALLBUT,schemeDatumCommentForm,@schemeImportCluster
35syn region schemeUnquote matchgroup=schemeParentheses start=/,(/ end=/)/ contained contains=ALLBUT,schemeDatumCommentForm,@schemeImportCluster
36syn region schemeUnquote matchgroup=schemeParentheses start=/,@(/ end=/)/ contained contains=ALLBUT,schemeDatumCommentForm,@schemeImportCluster
Bram Moolenaar071d4272004-06-13 20:20:40 +000037
Bram Moolenaar72540672018-02-09 22:00:53 +010038syn region schemeQuoteForm matchgroup=schemeData start=/(/ end=/)/ contained contains=ALLBUT,schemeQuasiquote,schemeQuasiquoteForm,schemeUnquote,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster
39syn region schemeQuasiquoteForm matchgroup=schemeData start=/(/ end=/)/ contained contains=ALLBUT,schemeQuote,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster
Bram Moolenaar071d4272004-06-13 20:20:40 +000040
Bram Moolenaar6aa57292021-08-14 21:25:52 +020041syn region schemeString start=/\(\\\)\@<!"/ skip=/\\[\\"]/ end=/"/ contains=@Spell
Bram Moolenaar72540672018-02-09 22:00:53 +010042syn region schemeSymbol start=/\(\\\)\@<!|/ skip=/\\[\\|]/ end=/|/
Bram Moolenaar071d4272004-06-13 20:20:40 +000043
Bram Moolenaar72540672018-02-09 22:00:53 +010044syn match schemeNumber /\(#[dbeio]\)*[+\-]*\([0-9]\+\|inf.0\|nan.0\)\(\/\|\.\)\?[0-9+\-@\ilns]*\>/
45syn match schemeNumber /#x[+\-]*[0-9a-fA-F]\+\>/
Bram Moolenaar071d4272004-06-13 20:20:40 +000046
Bram Moolenaar72540672018-02-09 22:00:53 +010047syn match schemeBoolean /#t\(rue\)\?/
48syn match schemeBoolean /#f\(alse\)\?/
Bram Moolenaar21cf8232004-07-16 20:18:37 +000049
Bram Moolenaar72540672018-02-09 22:00:53 +010050syn match schemeCharacter /#\\.[^ `'\t\n\[\]()]*/
51syn match schemeCharacter /#\\x[0-9a-fA-F]\+/
Bram Moolenaar071d4272004-06-13 20:20:40 +000052
Evan Hanson17e0a192024-06-21 07:37:49 +020053syn match schemeComment /;.*$/ contains=schemeTodo,@Spell
Bram Moolenaar071d4272004-06-13 20:20:40 +000054
Evan Hanson17e0a192024-06-21 07:37:49 +020055syn region schemeMultilineComment start=/#|/ end=/|#/ contains=schemeTodo,schemeMultilineComment,@Spell
56
57syn match schemeTodo /\c\<\(todo\|xxx\|fixme\|note\):\?\>/ contained
Bram Moolenaar21cf8232004-07-16 20:18:37 +000058
Bram Moolenaar72540672018-02-09 22:00:53 +010059syn region schemeForm matchgroup=schemeParentheses start="(" end=")" contains=ALLBUT,schemeUnquote,schemeDatumCommentForm,@schemeImportCluster
60syn region schemeForm matchgroup=schemeParentheses start="\[" end="\]" contains=ALLBUT,schemeUnquote,schemeDatumCommentForm,@schemeImportCluster
Bram Moolenaar21cf8232004-07-16 20:18:37 +000061
Bram Moolenaar72540672018-02-09 22:00:53 +010062syn region schemeVector matchgroup=schemeData start="#(" end=")" contains=ALLBUT,schemeQuasiquote,schemeQuasiquoteForm,schemeUnquote,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster
63syn region schemeVector matchgroup=schemeData start="#[fsu]\d\+(" end=")" contains=schemeNumber,schemeComment,schemeDatumComment
Bram Moolenaar071d4272004-06-13 20:20:40 +000064
Bram Moolenaar72540672018-02-09 22:00:53 +010065if exists('g:is_chicken') || exists('b:is_chicken')
66 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
67else
68 syn region schemeImport matchgroup=schemeImport start="\(([ \t\n]*\)\@<=\(import\)\>" end=")"me=e-1 contained contains=schemeImportForm,schemeIdentifier,schemeComment,schemeDatumComment
Bram Moolenaar21cf8232004-07-16 20:18:37 +000069endif
70
Bram Moolenaar6aa57292021-08-14 21:25:52 +020071syn match schemeImportKeyword "\(([ \t\n]*\)\@<=\(except\|only\|prefix\|rename\)\>"
Bram Moolenaar72540672018-02-09 22:00:53 +010072syn region schemeImportForm matchgroup=schemeParentheses start="(" end=")" contained contains=schemeIdentifier,schemeComment,schemeDatumComment,@schemeImportCluster
73syn cluster schemeImportCluster contains=schemeImportForm,schemeImportKeyword
Bram Moolenaar3fdfa4a2004-10-07 21:02:47 +000074
Bram Moolenaar72540672018-02-09 22:00:53 +010075syn region schemeDatumComment matchgroup=schemeDatumComment start=/#;[ \t\n`']*/ end=/[ \t\n()\[\]";]/me=e-1
76syn region schemeDatumComment matchgroup=schemeDatumComment start=/#;[ \t\n`']*"/ skip=/\\[\\"]/ end=/"/
77syn region schemeDatumComment matchgroup=schemeDatumComment start=/#;[ \t\n`']*|/ skip=/\\[\\|]/ end=/|/
78syn region schemeDatumComment matchgroup=schemeDatumComment start=/#;[ \t\n`']*\(#\([usf]\d\+\)\?\)\?(/ end=/)/ contains=schemeDatumCommentForm
79syn region schemeDatumCommentForm start="(" end=")" contained contains=schemeDatumCommentForm
Bram Moolenaar293ee4d2004-12-09 21:34:53 +000080
Bram Moolenaar72540672018-02-09 22:00:53 +010081syn cluster schemeSyntaxCluster contains=schemeFunction,schemeKeyword,schemeSyntax,schemeExtraSyntax,schemeLibrarySyntax,schemeSyntaxSyntax
Bram Moolenaar3fdfa4a2004-10-07 21:02:47 +000082
Bram Moolenaar72540672018-02-09 22:00:53 +010083syn keyword schemeLibrarySyntax define-library
84syn keyword schemeLibrarySyntax export
85syn keyword schemeLibrarySyntax include
86syn keyword schemeLibrarySyntax include-ci
87syn keyword schemeLibrarySyntax include-library-declarations
88syn keyword schemeLibrarySyntax library
89syn keyword schemeLibrarySyntax cond-expand
Bram Moolenaar3fdfa4a2004-10-07 21:02:47 +000090
Bram Moolenaar72540672018-02-09 22:00:53 +010091syn keyword schemeSyntaxSyntax define-syntax
92syn keyword schemeSyntaxSyntax let-syntax
93syn keyword schemeSyntaxSyntax letrec-syntax
94syn keyword schemeSyntaxSyntax syntax-rules
Bram Moolenaar5dc62522012-02-13 00:05:22 +010095
Bram Moolenaar72540672018-02-09 22:00:53 +010096syn keyword schemeSyntax =>
97syn keyword schemeSyntax and
98syn keyword schemeSyntax begin
99syn keyword schemeSyntax case
100syn keyword schemeSyntax case-lambda
101syn keyword schemeSyntax cond
102syn keyword schemeSyntax define
103syn keyword schemeSyntax define-record-type
104syn keyword schemeSyntax define-values
105syn keyword schemeSyntax delay
106syn keyword schemeSyntax delay-force
107syn keyword schemeSyntax do
108syn keyword schemeSyntax else
109syn keyword schemeSyntax guard
110syn keyword schemeSyntax if
111syn keyword schemeSyntax lambda
112syn keyword schemeSyntax let
113syn keyword schemeSyntax let*
114syn keyword schemeSyntax let*-values
115syn keyword schemeSyntax let-values
116syn keyword schemeSyntax letrec
117syn keyword schemeSyntax letrec*
118syn keyword schemeSyntax or
119syn keyword schemeSyntax parameterize
120syn keyword schemeSyntax quasiquote
121syn keyword schemeSyntax quote
122syn keyword schemeSyntax set!
123syn keyword schemeSyntax unless
124syn keyword schemeSyntax unquote
125syn keyword schemeSyntax unquote-splicing
126syn keyword schemeSyntax when
Bram Moolenaar3fdfa4a2004-10-07 21:02:47 +0000127
Bram Moolenaar72540672018-02-09 22:00:53 +0100128syn keyword schemeFunction *
129syn keyword schemeFunction +
130syn keyword schemeFunction -
131syn keyword schemeFunction /
132syn keyword schemeFunction <
133syn keyword schemeFunction <=
134syn keyword schemeFunction =
135syn keyword schemeFunction >
136syn keyword schemeFunction >=
137syn keyword schemeFunction abs
138syn keyword schemeFunction acos
139syn keyword schemeFunction acos
140syn keyword schemeFunction angle
141syn keyword schemeFunction append
142syn keyword schemeFunction apply
143syn keyword schemeFunction asin
144syn keyword schemeFunction assoc
145syn keyword schemeFunction assq
146syn keyword schemeFunction assv
147syn keyword schemeFunction atan
148syn keyword schemeFunction binary-port?
149syn keyword schemeFunction boolean=?
150syn keyword schemeFunction boolean?
151syn keyword schemeFunction bytevector
152syn keyword schemeFunction bytevector-append
153syn keyword schemeFunction bytevector-append
154syn keyword schemeFunction bytevector-copy
155syn keyword schemeFunction bytevector-copy!
156syn keyword schemeFunction bytevector-length
157syn keyword schemeFunction bytevector-u8-ref
158syn keyword schemeFunction bytevector-u8-set!
159syn keyword schemeFunction bytevector?
160syn keyword schemeFunction caaaar
161syn keyword schemeFunction caaadr
162syn keyword schemeFunction caaar
163syn keyword schemeFunction caadar
164syn keyword schemeFunction caaddr
165syn keyword schemeFunction caadr
166syn keyword schemeFunction caar
167syn keyword schemeFunction cadaar
168syn keyword schemeFunction cadadr
169syn keyword schemeFunction cadar
170syn keyword schemeFunction caddar
171syn keyword schemeFunction cadddr
172syn keyword schemeFunction caddr
173syn keyword schemeFunction cadr
174syn keyword schemeFunction call-with-current-continuation
175syn keyword schemeFunction call-with-input-file
176syn keyword schemeFunction call-with-output-file
177syn keyword schemeFunction call-with-port
178syn keyword schemeFunction call-with-values
179syn keyword schemeFunction call/cc
180syn keyword schemeFunction car
181syn keyword schemeFunction cdaaar
182syn keyword schemeFunction cdaadr
183syn keyword schemeFunction cdaar
184syn keyword schemeFunction cdadar
185syn keyword schemeFunction cdaddr
186syn keyword schemeFunction cdadr
187syn keyword schemeFunction cdar
188syn keyword schemeFunction cddaar
189syn keyword schemeFunction cddadr
190syn keyword schemeFunction cddar
191syn keyword schemeFunction cdddar
192syn keyword schemeFunction cddddr
193syn keyword schemeFunction cdddr
194syn keyword schemeFunction cddr
195syn keyword schemeFunction cdr
196syn keyword schemeFunction ceiling
197syn keyword schemeFunction char->integer
198syn keyword schemeFunction char-alphabetic?
199syn keyword schemeFunction char-ci<=?
200syn keyword schemeFunction char-ci<?
201syn keyword schemeFunction char-ci=?
202syn keyword schemeFunction char-ci>=?
203syn keyword schemeFunction char-ci>?
204syn keyword schemeFunction char-downcase
205syn keyword schemeFunction char-foldcase
206syn keyword schemeFunction char-lower-case?
207syn keyword schemeFunction char-numeric?
208syn keyword schemeFunction char-ready?
209syn keyword schemeFunction char-upcase
210syn keyword schemeFunction char-upper-case?
211syn keyword schemeFunction char-whitespace?
212syn keyword schemeFunction char<=?
213syn keyword schemeFunction char<?
214syn keyword schemeFunction char=?
215syn keyword schemeFunction char>=?
216syn keyword schemeFunction char>?
217syn keyword schemeFunction char?
218syn keyword schemeFunction close-input-port
219syn keyword schemeFunction close-output-port
220syn keyword schemeFunction close-port
221syn keyword schemeFunction command-line
222syn keyword schemeFunction complex?
223syn keyword schemeFunction cons
224syn keyword schemeFunction cos
225syn keyword schemeFunction current-error-port
226syn keyword schemeFunction current-input-port
227syn keyword schemeFunction current-jiffy
228syn keyword schemeFunction current-output-port
229syn keyword schemeFunction current-second
230syn keyword schemeFunction delete-file
231syn keyword schemeFunction denominator
232syn keyword schemeFunction digit-value
233syn keyword schemeFunction display
234syn keyword schemeFunction dynamic-wind
235syn keyword schemeFunction emergency-exit
236syn keyword schemeFunction environment
237syn keyword schemeFunction eof-object
238syn keyword schemeFunction eof-object?
239syn keyword schemeFunction eq?
240syn keyword schemeFunction equal?
241syn keyword schemeFunction eqv?
242syn keyword schemeFunction error
243syn keyword schemeFunction error-object-irritants
244syn keyword schemeFunction error-object-message
245syn keyword schemeFunction error-object?
246syn keyword schemeFunction eval
247syn keyword schemeFunction even?
248syn keyword schemeFunction exact
249syn keyword schemeFunction exact->inexact
250syn keyword schemeFunction exact-integer-sqrt
251syn keyword schemeFunction exact-integer?
252syn keyword schemeFunction exact?
253syn keyword schemeFunction exit
254syn keyword schemeFunction exp
255syn keyword schemeFunction expt
256syn keyword schemeFunction features
257syn keyword schemeFunction file-error?
258syn keyword schemeFunction file-exists?
259syn keyword schemeFunction finite?
260syn keyword schemeFunction floor
261syn keyword schemeFunction floor-quotient
262syn keyword schemeFunction floor-remainder
263syn keyword schemeFunction floor/
264syn keyword schemeFunction flush-output-port
265syn keyword schemeFunction for-each
266syn keyword schemeFunction force
267syn keyword schemeFunction gcd
268syn keyword schemeFunction get-environment-variable
269syn keyword schemeFunction get-environment-variables
270syn keyword schemeFunction get-output-bytevector
271syn keyword schemeFunction get-output-string
272syn keyword schemeFunction imag-part
273syn keyword schemeFunction inexact
274syn keyword schemeFunction inexact->exact
275syn keyword schemeFunction inexact?
276syn keyword schemeFunction infinite?
277syn keyword schemeFunction input-port-open?
278syn keyword schemeFunction input-port?
279syn keyword schemeFunction integer->char
280syn keyword schemeFunction integer?
281syn keyword schemeFunction interaction-environment
282syn keyword schemeFunction jiffies-per-second
283syn keyword schemeFunction lcm
284syn keyword schemeFunction length
285syn keyword schemeFunction list
286syn keyword schemeFunction list->string
287syn keyword schemeFunction list->vector
288syn keyword schemeFunction list-copy
289syn keyword schemeFunction list-ref
290syn keyword schemeFunction list-set!
291syn keyword schemeFunction list-tail
292syn keyword schemeFunction list?
293syn keyword schemeFunction load
294syn keyword schemeFunction log
295syn keyword schemeFunction magnitude
296syn keyword schemeFunction make-bytevector
297syn keyword schemeFunction make-list
298syn keyword schemeFunction make-parameter
299syn keyword schemeFunction make-polar
300syn keyword schemeFunction make-promise
301syn keyword schemeFunction make-rectangular
302syn keyword schemeFunction make-string
303syn keyword schemeFunction make-vector
304syn keyword schemeFunction map
305syn keyword schemeFunction max
306syn keyword schemeFunction member
307syn keyword schemeFunction memq
308syn keyword schemeFunction memv
309syn keyword schemeFunction min
310syn keyword schemeFunction modulo
311syn keyword schemeFunction nan?
312syn keyword schemeFunction negative?
313syn keyword schemeFunction newline
314syn keyword schemeFunction not
315syn keyword schemeFunction null-environment
316syn keyword schemeFunction null?
317syn keyword schemeFunction number->string
318syn keyword schemeFunction number?
319syn keyword schemeFunction numerator
320syn keyword schemeFunction odd?
321syn keyword schemeFunction open-binary-input-file
322syn keyword schemeFunction open-binary-output-file
323syn keyword schemeFunction open-input-bytevector
324syn keyword schemeFunction open-input-file
325syn keyword schemeFunction open-input-string
326syn keyword schemeFunction open-output-bytevector
327syn keyword schemeFunction open-output-file
328syn keyword schemeFunction open-output-string
329syn keyword schemeFunction output-port-open?
330syn keyword schemeFunction output-port?
331syn keyword schemeFunction pair?
332syn keyword schemeFunction peek-char
333syn keyword schemeFunction peek-u8
334syn keyword schemeFunction port?
335syn keyword schemeFunction positive?
336syn keyword schemeFunction procedure?
337syn keyword schemeFunction promise?
338syn keyword schemeFunction quotient
339syn keyword schemeFunction raise
340syn keyword schemeFunction raise-continuable
341syn keyword schemeFunction rational?
342syn keyword schemeFunction rationalize
343syn keyword schemeFunction read
344syn keyword schemeFunction read-bytevector
345syn keyword schemeFunction read-bytevector!
346syn keyword schemeFunction read-char
347syn keyword schemeFunction read-error?
348syn keyword schemeFunction read-line
349syn keyword schemeFunction read-string
350syn keyword schemeFunction read-u8
351syn keyword schemeFunction real-part
352syn keyword schemeFunction real?
353syn keyword schemeFunction remainder
354syn keyword schemeFunction reverse
355syn keyword schemeFunction round
356syn keyword schemeFunction scheme-report-environment
357syn keyword schemeFunction set-car!
358syn keyword schemeFunction set-cdr!
359syn keyword schemeFunction sin
360syn keyword schemeFunction sqrt
361syn keyword schemeFunction square
362syn keyword schemeFunction string
363syn keyword schemeFunction string->list
364syn keyword schemeFunction string->number
365syn keyword schemeFunction string->symbol
366syn keyword schemeFunction string->utf8
367syn keyword schemeFunction string->vector
368syn keyword schemeFunction string-append
369syn keyword schemeFunction string-ci<=?
370syn keyword schemeFunction string-ci<?
371syn keyword schemeFunction string-ci=?
372syn keyword schemeFunction string-ci>=?
373syn keyword schemeFunction string-ci>?
374syn keyword schemeFunction string-copy
375syn keyword schemeFunction string-copy!
376syn keyword schemeFunction string-downcase
377syn keyword schemeFunction string-fill!
378syn keyword schemeFunction string-foldcase
379syn keyword schemeFunction string-for-each
380syn keyword schemeFunction string-length
381syn keyword schemeFunction string-map
382syn keyword schemeFunction string-ref
383syn keyword schemeFunction string-set!
384syn keyword schemeFunction string-upcase
385syn keyword schemeFunction string<=?
386syn keyword schemeFunction string<?
387syn keyword schemeFunction string=?
388syn keyword schemeFunction string>=?
389syn keyword schemeFunction string>?
390syn keyword schemeFunction string?
391syn keyword schemeFunction substring
392syn keyword schemeFunction symbol->string
393syn keyword schemeFunction symbol=?
394syn keyword schemeFunction symbol?
395syn keyword schemeFunction syntax-error
396syn keyword schemeFunction tan
397syn keyword schemeFunction textual-port?
398syn keyword schemeFunction transcript-off
399syn keyword schemeFunction transcript-on
400syn keyword schemeFunction truncate
401syn keyword schemeFunction truncate-quotient
402syn keyword schemeFunction truncate-remainder
403syn keyword schemeFunction truncate/
404syn keyword schemeFunction u8-ready?
405syn keyword schemeFunction utf8->string
406syn keyword schemeFunction values
407syn keyword schemeFunction vector
408syn keyword schemeFunction vector->list
409syn keyword schemeFunction vector->string
410syn keyword schemeFunction vector-append
411syn keyword schemeFunction vector-copy
412syn keyword schemeFunction vector-copy!
413syn keyword schemeFunction vector-fill!
414syn keyword schemeFunction vector-for-each
415syn keyword schemeFunction vector-length
416syn keyword schemeFunction vector-map
417syn keyword schemeFunction vector-ref
418syn keyword schemeFunction vector-set!
419syn keyword schemeFunction vector?
420syn keyword schemeFunction with-exception-handler
421syn keyword schemeFunction with-input-from-file
422syn keyword schemeFunction with-output-to-file
423syn keyword schemeFunction write
424syn keyword schemeFunction write-bytevector
425syn keyword schemeFunction write-char
426syn keyword schemeFunction write-shared
427syn keyword schemeFunction write-simple
428syn keyword schemeFunction write-string
429syn keyword schemeFunction write-u8
430syn keyword schemeFunction zero?
431
Evan Hanson17e0a192024-06-21 07:37:49 +0200432hi def link schemeTodo Todo
Bram Moolenaar72540672018-02-09 22:00:53 +0100433hi def link schemeBoolean Boolean
434hi def link schemeCharacter Character
435hi def link schemeComment Comment
436hi def link schemeConstant Constant
437hi def link schemeData Delimiter
438hi def link schemeDatumComment Comment
439hi def link schemeDatumCommentForm Comment
440hi def link schemeDelimiter Delimiter
441hi def link schemeError Error
442hi def link schemeExtraSyntax Underlined
443hi def link schemeFunction Function
444hi def link schemeIdentifier Normal
445hi def link schemeImport PreProc
446hi def link schemeImportKeyword PreProc
447hi def link schemeKeyword Type
448hi def link schemeLibrarySyntax PreProc
449hi def link schemeMultilineComment Comment
450hi def link schemeNumber Number
451hi def link schemeParentheses Normal
452hi def link schemeQuasiquote Delimiter
453hi def link schemeQuote Delimiter
454hi def link schemeSpecialSyntax Special
455hi def link schemeString String
456hi def link schemeSymbol Normal
457hi def link schemeSyntax Statement
458hi def link schemeSyntaxSyntax PreProc
459hi def link schemeTypeSyntax Type
460
461let b:did_scheme_syntax = 1
462
463if exists('b:is_chicken') || exists('g:is_chicken')
464 exe 'ru! syntax/chicken.vim'
Bram Moolenaar3fdfa4a2004-10-07 21:02:47 +0000465endif
466
Bram Moolenaar72540672018-02-09 22:00:53 +0100467unlet b:did_scheme_syntax
468let b:current_syntax = 'scheme'
469let &cpo = s:cpo
470unlet s:cpo