| 
									
										
										
										
											2018-02-09 22:00:53 +01:00
										 |  |  | " Vim syntax file | 
					
						
							| 
									
										
										
										
											2024-06-21 07:37:49 +02:00
										 |  |  | " Language:    Scheme (CHICKEN) | 
					
						
							|  |  |  | " Last Change: 2024 Jun 21 | 
					
						
							|  |  |  | " 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. | 
					
						
							| 
									
										
										
										
											2018-02-09 22:00:53 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | " Only to be used on top of the Scheme syntax. | 
					
						
							|  |  |  | if !exists('b:did_scheme_syntax') | 
					
						
							|  |  |  |   finish | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Lighten parentheses. | 
					
						
							| 
									
										
										
										
											2018-03-09 22:22:21 +01:00
										 |  |  | hi! def link schemeParentheses Comment | 
					
						
							| 
									
										
										
										
											2018-02-09 22:00:53 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | " 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 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-04 21:32:54 +01:00
										 |  |  | " SRFI 26 | 
					
						
							| 
									
										
										
										
											2021-08-14 21:25:52 +02:00
										 |  |  | syn match schemeSyntax /\(([ \t\n]*\)\@<=\(cut\|cute\)\>/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn keyword schemeSyntax and-let* | 
					
						
							| 
									
										
										
										
											2018-02-09 22:00:53 +01:00
										 |  |  | syn keyword schemeSyntax define-record | 
					
						
							| 
									
										
										
										
											2021-08-14 21:25:52 +02:00
										 |  |  | 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 | 
					
						
							| 
									
										
										
										
											2018-02-09 22:00:53 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | syn keyword schemeLibrarySyntax declare | 
					
						
							| 
									
										
										
										
											2021-08-14 21:25:52 +02:00
										 |  |  | syn keyword schemeLibrarySyntax define-interface | 
					
						
							|  |  |  | syn keyword schemeLibrarySyntax functor | 
					
						
							|  |  |  | syn keyword schemeLibrarySyntax include-relative | 
					
						
							| 
									
										
										
										
											2018-02-09 22:00:53 +01:00
										 |  |  | 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* | 
					
						
							| 
									
										
										
										
											2021-08-14 21:25:52 +02:00
										 |  |  | syn keyword schemeExtraSyntax match-let | 
					
						
							|  |  |  | syn keyword schemeExtraSyntax match-let* | 
					
						
							|  |  |  | syn keyword schemeExtraSyntax match-letrec | 
					
						
							| 
									
										
										
										
											2018-02-09 22:00:53 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 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 |