racket.vim (34996B)
1 " Vim syntax file 2 " Language: Racket 3 " Maintainer: D. Ben Knoble <ben.knoble+github@gmail.com> 4 " Previous Maintainer: Will Langstroth <will@langstroth.com> 5 " URL: https://github.com/benknoble/vim-racket 6 " Description: Contains all of the keywords in #lang racket 7 " Last Change: 2026 Jan 07 8 9 " Initializing: 10 if exists("b:current_syntax") 11 finish 12 endif 13 14 " Highlight unmatched parens 15 syntax match racketError ,[]})], 16 17 if version < 800 18 set iskeyword=33,35-39,42-58,60-90,94,95,97-122,126,_ 19 else 20 " syntax iskeyword 33,35-39,42-58,60-90,94,95,97-122,126,_ 21 " converted from decimal to char 22 " :s/\d\+/\=submatch(0)->str2nr()->nr2char()/g 23 " but corrected to remove duplicate _, move ^ to end 24 syntax iskeyword @,!,#-',*-:,<-Z,a-z,~,_,^ 25 " expanded 26 " syntax iskeyword !,#,$,%,&,',*,+,,,-,.,/,0-9,:,<,=,>,?,@,A-Z,_,a-z,~,^ 27 endif 28 29 " Forms in order of appearance at 30 " http://docs.racket-lang.org/reference/index.html 31 " 32 syntax keyword racketSyntax module module* module+ require provide quote 33 syntax keyword racketSyntax #%module-begin #%datum #%expression #%top #%variable-reference #%app 34 syntax keyword racketSyntax lambda case-lambda let let* letrec 35 syntax keyword racketSyntax let-values let*-values let-syntax letrec-syntax 36 syntax keyword racketSyntax let-syntaxes letrec-syntaxes letrec-syntaxes+values 37 syntax keyword racketSyntax local shared 38 syntax keyword racketSyntax if cond and or case define else => 39 syntax keyword racketSyntax define define-values define-syntax define-syntaxes 40 syntax keyword racketSyntax define-for-syntax define-require-syntax define-provide-syntax 41 syntax keyword racketSyntax define-syntax-rule 42 syntax keyword racketSyntax define-record-type 43 syntax keyword racketSyntax begin begin0 44 syntax keyword racketSyntax begin-for-syntax 45 syntax keyword racketSyntax when unless 46 syntax keyword racketSyntax set! set!-values 47 syntax keyword racketSyntax for for/list for/vector for/hash for/hasheq for/hasheqv 48 syntax keyword racketSyntax for/and for/or for/lists for/first 49 syntax keyword racketSyntax for/last for/fold 50 syntax keyword racketSyntax for* for*/list for*/vector for*/hash for*/hasheq for*/hasheqv 51 syntax keyword racketSyntax for*/and for*/or for*/lists for*/first 52 syntax keyword racketSyntax for*/last for*/fold 53 syntax keyword racketSyntax for/fold/derived for*/fold/derived 54 syntax keyword racketSyntax define-sequence-syntax :do-in do 55 syntax keyword racketSyntax with-continuation-mark 56 syntax keyword racketSyntax quasiquote unquote unquote-splicing quote-syntax 57 syntax keyword racketSyntax #%top-interaction 58 syntax keyword racketSyntax define-package open-package package-begin 59 syntax keyword racketSyntax define* define*-values define*-syntax define*-syntaxes open*-package 60 syntax keyword racketSyntax package? package-exported-identifiers package-original-identifiers 61 syntax keyword racketSyntax block #%stratified-body 62 63 " 8 Contracts 64 " 8.2 Function contracts 65 syntax keyword racketSyntax -> ->* ->i ->d case-> dynamic->* unconstrained-domain-> 66 67 " 8.6.1 Nested Contract Boundaries 68 syntax keyword racketSyntax with-contract define/contract define-struct/contract 69 syntax keyword racketSyntax invariant-assertion current-contract-region 70 71 " 9 Pattern Matching 72 syntax keyword racketSyntax match match* match/values define/match 73 syntax keyword racketSyntax match-lambda match-lambda* match-lambda** 74 syntax keyword racketSyntax match-let match-let* match-let-values match-let*-values 75 syntax keyword racketSyntax match-letrec match-define match-define-values 76 77 " 10.2.3 Handling Exceptions 78 syntax keyword racketSyntax with-handlers with-handlers* 79 80 " 10.4 Continuations 81 syntax keyword racketSyntax let/cc let/ec 82 83 " 10.4.1 Additional Control Operators 84 syntax keyword racketSyntax % prompt control prompt-at control-at reset shift 85 syntax keyword racketSyntax reset-at shift-at prompt0 reset0 control0 shift0 86 syntax keyword racketSyntax prompt0-at reset0-at control0-at shift0-at 87 syntax keyword racketSyntax set cupto 88 89 " 11.3.2 Parameters 90 syntax keyword racketSyntax parameterize parameterize* 91 92 " 12.5 Writing 93 syntax keyword racketSyntax write display displayln print 94 syntax keyword racketSyntax fprintf printf eprintf format 95 syntax keyword racketSyntax print-pair-curly-braces print-mpair-curly-braces print-unreadable 96 syntax keyword racketSyntax print-graph print-struct print-box print-vector-length print-hash-table 97 syntax keyword racketSyntax print-boolean-long-form print-reader-abbreviations print-as-expression print-syntax-width 98 syntax keyword racketSyntax current-write-relative-directory port-write-handler port-display-handler 99 syntax keyword racketSyntax port-print-handler global-port-print-handler 100 101 " 13.7 Custodians 102 syntax keyword racketSyntax custodian? custodian-memory-accounting-available? custodian-box? 103 syntax keyword racketSyntax make-custodian custodian-shutdown-all current-custodian custodian-managed-list 104 syntax keyword racketSyntax custodian-require-memory custodian-limit-memory 105 syntax keyword racketSyntax make-custodian-box custodian-box-value 106 107 " lambda sign 108 syntax match racketSyntax /\<[\u03bb]\>/ 109 110 111 " Functions ================================================================== 112 113 syntax keyword racketFunc boolean? not equal? eqv? eq? equal?/recur immutable? 114 syntax keyword racketFunc true false symbol=? boolean=? false? 115 syntax keyword racketFunc number? complex? real? rational? integer? 116 syntax keyword racketFunc exact-integer? exact-nonnegative-integer? 117 syntax keyword racketFunc exact-positive-integer? inexact-real? 118 syntax keyword racketFunc fixnum? flonum? zero? positive? negative? 119 syntax keyword racketFunc even? odd? exact? inexact? 120 syntax keyword racketFunc inexact->exact exact->inexact 121 122 " 3.2.2 General Arithmetic 123 124 " 3.2.2.1 Arithmetic 125 syntax keyword racketFunc + - * / quotient remainder quotient/remainder modulo 126 syntax keyword racketFunc add1 sub1 abs max min gcd lcm round exact-round floor 127 syntax keyword racketFunc ceiling truncate numerator denominator rationalize 128 129 " 3.2.2.2 Number Comparison 130 syntax keyword racketFunc = < <= > >= 131 132 " 3.2.2.3 Powers and Roots 133 syntax keyword racketFunc sqrt integer-sqrt integer-sqrt/remainder 134 syntax keyword racketFunc expt exp log 135 136 " 3.2.2.3 Trigonometric Functions 137 syntax keyword racketFunc sin cos tan asin acos atan 138 139 " 3.2.2.4 Complex Numbers 140 syntax keyword racketFunc make-rectangular make-polar 141 syntax keyword racketFunc real-part imag-part magnitude angle 142 syntax keyword racketFunc bitwise-ior bitwise-and bitwise-xor bitwise-not 143 syntax keyword racketFunc bitwise-bit-set? bitwise-bit-field arithmetic-shift 144 syntax keyword racketFunc integer-length 145 146 " 3.2.2.5 Random Numbers 147 syntax keyword racketFunc random random-seed 148 syntax keyword racketFunc make-pseudo-random-generator pseudo-random-generator? 149 syntax keyword racketFunc current-pseudo-random-generator pseudo-random-generator->vector 150 syntax keyword racketFunc vector->pseudo-random-generator vector->pseudo-random-generator! 151 152 " 3.2.2.8 Number-String Conversions 153 syntax keyword racketFunc number->string string->number real->decimal-string 154 syntax keyword racketFunc integer->integer-bytes 155 syntax keyword racketFunc floating-point-bytes->real real->floating-point-bytes 156 syntax keyword racketFunc system-big-endian? 157 158 " 3.2.2.9 Extra Constants and Functions 159 syntax keyword racketFunc pi sqr sgn conjugate sinh cosh tanh order-of-magnitude 160 161 " 3.2.3 Flonums 162 163 " 3.2.3.1 Flonum Arithmetic 164 syntax keyword racketFunc fl+ fl- fl* fl/ flabs 165 syntax keyword racketFunc fl= fl< fl> fl<= fl>= flmin flmax 166 syntax keyword racketFunc flround flfloor flceiling fltruncate 167 syntax keyword racketFunc flsin flcos fltan flasin flacos flatan 168 syntax keyword racketFunc fllog flexp flsqrt 169 syntax keyword racketFunc ->fl fl->exact-integer make-flrectangular 170 syntax keyword racketFunc flreal-part flimag-part 171 172 " 3.2.3.2 Flonum Vectors 173 syntax keyword racketFunc flvector? flvector make-flvector flvector-length 174 syntax keyword racketFunc flvector-ref flvector-set! flvector-copy in-flvector 175 syntax keyword racketFunc shared-flvector make-shared-flvector 176 syntax keyword racketSyntax for/flvector for*/flvector 177 178 " 3.2.4 Fixnums 179 syntax keyword racketFunc fx+ fx- fx* fxquotient fxremainder fxmodulo fxabs 180 syntax keyword racketFunc fxand fxior fxxor fxnot fxlshift fxrshift 181 syntax keyword racketFunc fx= fx< fx> fx<= fx>= fxmin fxmax fx->fl fl->fx 182 183 " 3.2.4.2 Fixnum Vectors 184 syntax keyword racketFunc fxvector? fxvector make-fxvector fxvector-length 185 syntax keyword racketFunc fxvector-ref fxvector-set! fxvector-copy in-fxvector 186 syntax keyword racketFunc for/fxvector for*/fxvector 187 syntax keyword racketFunc shared-fxvector make-shared-fxvector 188 189 " 3.3 Strings 190 syntax keyword racketFunc string? make-string string string->immutable-string string-length 191 syntax keyword racketFunc string-ref string-set! substring string-copy string-copy! 192 syntax keyword racketFunc string-fill! string-append string->list list->string 193 syntax keyword racketFunc build-string string=? string<? string<=? string>? string>=? 194 syntax keyword racketFunc string-ci=? string-ci<? string-ci<=? string-ci>? string-ci>=? 195 syntax keyword racketFunc string-upcase string-downcase string-titlecase string-foldcase 196 syntax keyword racketFunc string-normalize-nfd string-normalize-nfc string-normalize-nfkc 197 syntax keyword racketFunc string-normalize-spaces string-trim 198 syntax keyword racketFunc string-locale=? string-locale>? string-locale<? 199 syntax keyword racketFunc string-locale-ci=? string-locale<=? 200 syntax keyword racketFunc string-locale-upcase string-locale-downcase 201 syntax keyword racketFunc string-append* string-join 202 203 " 3.4 Bytestrings 204 syntax keyword racketFunc bytes? make-bytes bytes bytes->immutable-bytes byte? 205 syntax keyword racketFunc bytes-length bytes-ref bytes-set! subbytes bytes-copy 206 syntax keyword racketFunc bytes-copy! bytes-fill! bytes-append bytes->list list->bytes 207 syntax keyword racketFunc make-shared-bytes shared-bytes 208 syntax keyword racketFunc bytes=? bytes<? bytes>? 209 syntax keyword racketFunc bytes->string/utf-8 bytes->string/latin-1 210 syntax keyword racketFunc string->bytes/locale string->bytes/latin-1 string->bytes/utf-8 211 syntax keyword racketFunc string-utf-8-length bytes-utf8-ref bytes-utf-8-index 212 syntax keyword racketFunc bytes-open-converter bytes-close-converter 213 syntax keyword racketFunc bytes-convert bytes-convert-end bytes-converter? 214 syntax keyword racketFunc locale-string-encoding 215 216 " 3.5 Characters 217 syntax keyword racketFunc char? char->integer integer->char 218 syntax keyword racketFunc char=? char<? char<=? char>? char>=? 219 syntax keyword racketFunc char-ci=? char-ci<? char-ci<=? char-ci>? char-ci>=? 220 syntax keyword racketFunc char-alphabetic? char-lower-case? char-upper-case? char-title-case? 221 syntax keyword racketFunc char-numeric? char-symbolic? char-punctuation? char-graphic? 222 syntax keyword racketFunc char-whitespace? char-blank? 223 syntax keyword racketFunc char-iso-control? char-general-category 224 syntax keyword racketFunc make-known-char-range-list 225 syntax keyword racketFunc char-upcase char-downcase char-titlecase char-foldcase 226 227 " 3.6 Symbols 228 syntax keyword racketFunc symbol? symbol-interned? symbol-unreadable? 229 syntax keyword racketFunc symbol->string string->symbol 230 syntax keyword racketFunc string->uninterned-symbol string->unreadable-symbol 231 syntax keyword racketFunc gensym 232 233 " 3.7 Regular Expressions 234 syntax keyword racketFunc regexp? pregexp? byte-regexp? byte-pregexp? 235 syntax keyword racketFunc regexp pregexp byte-regexp byte-pregexp 236 syntax keyword racketFunc regexp-quote regexp-match regexp-match* 237 syntax keyword racketFunc regexp-try-match regexp-match-positions 238 syntax keyword racketFunc regexp-match-positions* regexp-match? 239 syntax keyword racketFunc regexp-match-peek-positions regexp-match-peek-immediate 240 syntax keyword racketFunc regexp-match-peek regexp-match-peek-positions* 241 syntax keyword racketFunc regexp-match/end regexp-match-positions/end 242 syntax keyword racketFunc regexp-match-peek-positions-immediat/end 243 syntax keyword racketFunc regexp-split regexp-replace regexp-replace* 244 syntax keyword racketFunc regexp-replace-quote 245 246 " 3.8 Keywords 247 syntax keyword racketFunc keyword? keyword->string string->keyword keyword<? 248 249 " 3.9 Pairs and Lists 250 syntax keyword racketFunc pair? null? cons car cdr null 251 syntax keyword racketFunc list? list list* build-list length 252 syntax keyword racketFunc list-ref list-tail append reverse map andmap ormap 253 syntax keyword racketFunc for-each foldl foldr filter remove remq remv remove* 254 syntax keyword racketFunc remq* remv* sort member memv memq memf 255 syntax keyword racketFunc findf assoc assv assq assf 256 syntax keyword racketFunc caar cadr cdar cddr caaar caadr cadar caddr cdaar 257 syntax keyword racketFunc cddar cdddr caaaar caaadr caadar caaddr cadadr caddar 258 syntax keyword racketFunc cadddr cdaaar cdaadr cdadar cddaar cdddar cddddr 259 260 " 3.9.7 Additional List Functions and Synonyms 261 " (require racket/list) 262 syntax keyword racketFunc empty cons? empty? first rest 263 syntax keyword racketFunc second third fourth fifth sixth seventh eighth ninth tenth 264 syntax keyword racketFunc last last-pair make-list take drop split-at 265 syntax keyword racketFunc take-right drop-right split-at-right add-between 266 syntax keyword racketFunc append* flatten remove-duplicates filter-map 267 syntax keyword racketFunc count partition append-map filter-not shuffle 268 syntax keyword racketFunc argmin argmax make-reader-graph placeholder? make-placeholder 269 syntax keyword racketFunc placeholder-set! placeholder-get hash-placeholder? 270 syntax keyword racketFunc make-hash-placeholder make-hasheq-placeholder 271 syntax keyword racketFunc make-hasheqv-placeholder make-immutable-hasheqv 272 273 " 3.10 Mutable Pairs and Lists 274 syntax keyword racketFunc mpair? mcons mcar mcdr 275 276 " 3.11 Vectors 277 syntax keyword racketFunc vector? make-vector vector vector-immutable vector-length 278 syntax keyword racketFunc vector-ref vector-set! vector->list list->vector 279 syntax keyword racketFunc vector->immutable-vector vector-fill! vector-copy! 280 syntax keyword racketFunc vector->values build-vector vector-set*! vector-map 281 syntax keyword racketFunc vector-map! vector-append vector-take vector-take-right 282 syntax keyword racketFunc vector-drop vector-drop-right vector-split-at 283 syntax keyword racketFunc vector-split-at-right vector-copy vector-filter 284 syntax keyword racketFunc vector-filter-not vector-count vector-argmin vector-argmax 285 syntax keyword racketFunc vector-member vector-memv vector-memq 286 287 " 3.12 Boxes 288 syntax keyword racketFunc box? box box-immutable unbox set-box! 289 290 " 3.13 Hash Tables 291 syntax keyword racketFunc hash? hash-equal? hash-eqv? hash-eq? hash-weak? hash 292 syntax keyword racketFunc hasheq hasheqv 293 syntax keyword racketFunc make-hash make-hasheqv make-hasheq make-weak-hash make-weak-hasheqv 294 syntax keyword racketFunc make-weak-hasheq make-immutable-hash make-immutable-hasheqv 295 syntax keyword racketFunc make-immutable-hasheq 296 syntax keyword racketFunc hash-set! hash-set*! hash-set hash-set* hash-ref hash-ref! 297 syntax keyword racketFunc hash-has-key? hash-update! hash-update hash-remove! 298 syntax keyword racketFunc hash-remove hash-map hash-keys hash-values 299 syntax keyword racketFunc hash->list hash-for-each hash-count 300 syntax keyword racketFunc hash-iterate-first hash-iterate-next hash-iterate-key 301 syntax keyword racketFunc hash-iterate-value hash-copy eq-hash-code eqv-hash-code 302 syntax keyword racketFunc equal-hash-code equal-secondary-hash-code 303 304 " 3.15 Dictionaries 305 syntax keyword racketFunc dict? dict-mutable? dict-can-remove-keys? dict-can-functional-set? 306 syntax keyword racketFunc dict-set! dict-set*! dict-set dict-set* dict-has-key? dict-ref 307 syntax keyword racketFunc dict-ref! dict-update! dict-update dict-remove! dict-remove 308 syntax keyword racketFunc dict-map dict-for-each dict-count dict-iterate-first dict-iterate-next 309 syntax keyword racketFunc dict-iterate-key dict-iterate-value in-dict in-dict-keys 310 syntax keyword racketFunc in-dict-values in-dict-pairs dict-keys dict-values 311 syntax keyword racketFunc dict->list prop: dict prop: dict/contract dict-key-contract 312 syntax keyword racketFunc dict-value-contract dict-iter-contract make-custom-hash 313 syntax keyword racketFunc make-immutable-custom-hash make-weak-custom-hash 314 315 " 3.16 Sets 316 syntax keyword racketFunc set seteqv seteq set-empty? set-count set-member? 317 syntax keyword racketFunc set-add set-remove set-union set-intersect set-subtract 318 syntax keyword racketFunc set-symmetric-difference set=? subset? proper-subset? 319 syntax keyword racketFunc set-map set-for-each set? set-equal? set-eqv? set-eq? 320 syntax keyword racketFunc set/c in-set for/set for/seteq for/seteqv for*/set 321 syntax keyword racketFunc for*/seteq for*/seteqv list->set list->seteq 322 syntax keyword racketFunc list->seteqv set->list 323 324 " 3.17 Procedures 325 syntax keyword racketFunc procedure? apply compose compose1 procedure-rename procedure->method 326 syntax keyword racketFunc keyword-apply procedure-arity procedure-arity? 327 syntax keyword racketFunc procedure-arity-includes? procedure-reduce-arity 328 syntax keyword racketFunc procedure-keywords make-keyword-procedure 329 syntax keyword racketFunc procedure-reduce-keyword-arity procedure-struct-type? 330 syntax keyword racketFunc procedure-extract-target checked-procedure-check-and-extract 331 syntax keyword racketFunc primitive? primitive-closure? primitive-result-arity 332 syntax keyword racketFunc identity const thunk thunk* negate curry curryr 333 334 " 3.18 Void 335 syntax keyword racketFunc void void? 336 337 " 4.1 Defining Structure Types 338 syntax keyword racketFunc struct struct-field-index define-struct define-struct define-struct/derived 339 340 " 4.2 Creating Structure Types 341 syntax keyword racketFunc make-struct-type make-struct-field-accessor make-struct-field-mutator 342 343 " 4.3 Structure Type Properties 344 syntax keyword racketFunc make-struct-type-property struct-type-property? struct-type-property-accessor-procedure? 345 346 " 4.4 Copying and Updating Structures 347 syntax keyword racketFunc struct-copy 348 349 " 4.5 Structure Utilities 350 syntax keyword racketFunc struct->vector struct? struct-type? 351 syntax keyword racketFunc struct-constructor-procedure? struct-predicate-procedure? struct-accessor-procedure? struct-mutator-procedure? 352 syntax keyword racketFunc prefab-struct-key make-prefab-struct prefab-key->struct-type 353 354 " 4.6 Structure Type Transformer Binding 355 syntax keyword racketFunc struct-info? check-struct-info? make-struct-info extract-struct-info 356 syntax keyword racketFunc struct-auto-info? struct-auto-info-lists 357 358 " 5.1 Creating Interfaces 359 syntax keyword racketFunc interface interface* 360 361 " 5.2 Creating Classes 362 syntax keyword racketFunc class* class inspect 363 syntax keyword racketFunc init init-field field inherit field init-rest 364 syntax keyword racketFunc public public* pubment pubment* public-final public-final* 365 syntax keyword racketFunc override override* overment overment* override-final override-final* 366 syntax keyword racketFunc augride augride* augment augment* augment-final augment-final* 367 syntax keyword racketFunc abstract inherit inherit/super inherit/inner 368 syntax keyword racketFunc rename-inner rename-super 369 syntax keyword racketFunc define/public define/pubment define/public-final 370 syntax keyword racketFunc define/override define/overment define/override-final 371 syntax keyword racketFunc define/augride define/augment define/augment-final 372 syntax keyword racketFunc private* define/private 373 374 " 5.2.3 Methods 375 syntax keyword racketFunc class/derived 376 syntax keyword racketFunc super inner define-local-member-name define-member-name 377 syntax keyword racketFunc member-name-key generate-member-key member-name-key? 378 syntax keyword racketFunc member-name-key=? member-name-key-hash-code 379 380 " 5.3 Creating Objects 381 syntax keyword racketFunc make-object instantiate new 382 syntax keyword racketFunc super-make-object super-instantiate super-new 383 384 "5.4 Field and Method Access 385 syntax keyword racketFunc method-id send send/apply send/keyword-apply dynamic-send send* 386 syntax keyword racketFunc get-field set-field! field-bound? 387 syntax keyword racketFunc class-field-accessor class-field-mutator 388 389 "5.4.3 Generics 390 syntax keyword racketFunc generic send-generic make-generic 391 392 " 8.1 Data-strucure contracts 393 syntax keyword racketFunc flat-contract-with-explanation flat-named-contract 394 " TODO where do any/c and none/c `value`s go? 395 syntax keyword racketFunc or/c first-or/c and/c not/c =/c </c >/c <=/c >=/c 396 syntax keyword racketFunc between/c real-in integer-in char-in natural-number/c 397 syntax keyword racketFunc string-len/c printable/c one-of/c symbols vectorof 398 syntax keyword racketFunc vector-immutableof vector/c box/c box-immutable/c listof 399 syntax keyword racketFunc non-empty-listof list*of cons/c cons/dc list/c *list/c 400 syntax keyword racketFunc syntax/c struct/c struct/dc parameter/c 401 syntax keyword racketFunc procedure-arity-includes/c hash/c hash/dc channel/c 402 syntax keyword racketFunc prompt-tag/c continuation-mark-key/c evt/c promise/c 403 syntax keyword racketFunc flat-contract flat-contract-predicate suggest/c 404 405 " 9.1 Multiple Values 406 syntax keyword racketFunc values call-with-values 407 408 " 10.2.2 Raising Exceptions 409 syntax keyword racketFunc raise error raise-user-error raise-argument-error 410 syntax keyword racketFunc raise-result-error raise-argument-error raise-range-error 411 syntax keyword racketFunc raise-type-error raise-mismatch-error raise-arity-error 412 syntax keyword racketFunc raise-syntax-error 413 414 " 10.2.3 Handling Exceptions 415 syntax keyword racketFunc call-with-exception-handler uncaught-exception-handler 416 417 " 10.2.4 Configuring Default Handlers 418 syntax keyword racketFunc error-escape-handler error-display-handler error-print-width 419 syntax keyword racketFunc error-print-context-length error-values->string-handler 420 syntax keyword racketFunc error-print-source-location 421 422 " 10.2.5 Built-in Exception Types 423 syntax keyword racketFunc exn exn:fail exn:fail:contract exn:fail:contract:arity 424 syntax keyword racketFunc exn:fail:contract:divide-by-zero exn:fail:contract:non-fixnum-result 425 syntax keyword racketFunc exn:fail:contract:continuation exn:fail:contract:variable 426 syntax keyword racketFunc exn:fail:syntax exn:fail:syntax:unbound exn:fail:syntax:missing-module 427 syntax keyword racketFunc exn:fail:read exn:fail:read:eof exn:fail:read:non-char 428 syntax keyword racketFunc exn:fail:filesystem exn:fail:filesystem:exists 429 syntax keyword racketFunc exn:fail:filesystem:version exn:fail:filesystem:errno 430 syntax keyword racketFunc exn:fail:filesystem:missing-module 431 syntax keyword racketFunc exn:fail:network exn:fail:network:errno exn:fail:out-of-memory 432 syntax keyword racketFunc exn:fail:unsupported exn:fail:user 433 syntax keyword racketFunc exn:break exn:break:hang-up exn:break:terminate 434 435 " 10.3 Delayed Evaluation 436 syntax keyword racketFunc promise? delay lazy force promise-forced? promise-running? 437 438 " 10.3.1 Additional Promise Kinds 439 syntax keyword racketFunc delay/name promise/name delay/strict delay/sync delay/thread delay/idle 440 441 " 10.4 Continuations 442 syntax keyword racketFunc call-with-continuation-prompt abort-current-continuation make-continuation-prompt-tag 443 syntax keyword racketFunc default-continuation-prompt-tag call-with-current-continuation call/cc 444 syntax keyword racketFunc call-with-composable-continuation call-with-escape-continuation call/ec 445 syntax keyword racketFunc call-with-continuation-barrier continuation-prompt-available 446 syntax keyword racketFunc continuation? continuation-prompt-tag dynamic-wind 447 448 " 10.4.1 Additional Control Operators 449 syntax keyword racketFunc call/prompt abort/cc call/comp abort fcontrol spawn splitter new-prompt 450 451 " 11.3.2 Parameters 452 syntax keyword racketFunc make-parameter make-derived-parameter parameter? 453 syntax keyword racketFunc parameter-procedure=? current-parameterization 454 syntax keyword racketFunc call-with-parameterization parameterization? 455 456 " 14.1.1 Manipulating Paths 457 syntax keyword racketFunc path? path-string? path-for-some-system? string->path path->string path->bytes 458 syntax keyword racketFunc string->path-element bytes->path-element path-element->string path-element->bytes 459 syntax keyword racketFunc path-convention-type system-path-convention-type build-type 460 syntax keyword racketFunc build-type/convention-type 461 syntax keyword racketFunc absolute-path? relative-path? complete-path? 462 syntax keyword racketFunc path->complete-path path->directory-path 463 syntax keyword racketFunc resolve-path cleanse-path expand-user-path simplify-path normal-case-path split-path 464 syntax keyword racketFunc path-replace-suffix path-add-suffix 465 466 " 14.1.2 More Path Utilities 467 syntax keyword racketFunc explode-path file-name-from-path filename-extension find-relative-path normalize-path 468 syntax keyword racketFunc path-element? path-only simple-form-path some-simple-path->string string->some-system-path 469 470 " 15.6 Time 471 syntax keyword racketFunc current-seconds current-inexact-milliseconds 472 syntax keyword racketFunc seconds->date current-milliseconds 473 474 475 syntax match racketDelimiter !\<\.\>! 476 477 syntax cluster racketTop contains=racketSyntax,racketFunc,racketDelimiter 478 479 syntax match racketConstant ,\<\*\k\+\*\>, 480 syntax match racketConstant ,\<<\k\+>\>, 481 482 " Non-quoted lists, and strings 483 syntax region racketStruc matchgroup=racketParen start="("rs=s+1 end=")"re=e-1 contains=@racketTop 484 syntax region racketStruc matchgroup=racketParen start="#("rs=s+2 end=")"re=e-1 contains=@racketTop 485 syntax region racketStruc matchgroup=racketParen start="{"rs=s+1 end="}"re=e-1 contains=@racketTop 486 syntax region racketStruc matchgroup=racketParen start="#{"rs=s+2 end="}"re=e-1 contains=@racketTop 487 syntax region racketStruc matchgroup=racketParen start="\["rs=s+1 end="\]"re=e-1 contains=@racketTop 488 syntax region racketStruc matchgroup=racketParen start="#\["rs=s+2 end="\]"re=e-1 contains=@racketTop 489 490 for lit in ['hash', 'hasheq', 'hasheqv'] 491 execute printf('syntax match racketLit "\<%s\>" nextgroup=@racketParen containedin=ALLBUT,.*String,.*Comment', '#'.lit) 492 endfor 493 494 for lit in ['rx', 'rx#', 'px', 'px#'] 495 execute printf('syntax match racketRe "\<%s\>" nextgroup=@racketString containedin=ALLBUT,.*String,.*Comment,', '#'.lit) 496 endfor 497 498 unlet lit 499 500 " Simple literals 501 502 " Strings 503 504 syntax match racketStringEscapeError "\\." contained display 505 506 syntax match racketStringEscape "\\[abtnvfre'"\\]" contained display 507 syntax match racketStringEscape "\\$" contained display 508 syntax match racketStringEscape "\\\o\{1,3}\|\\x\x\{1,2}" contained display 509 510 syntax match racketUStringEscape "\\u\x\{1,4}\|\\U\x\{1,8}" contained display 511 syntax match racketUStringEscape "\\u\x\{4}\\u\x\{4}" contained display 512 513 syntax region racketString start=/\%(\\\)\@<!"/ skip=/\\[\\"]/ end=/"/ contains=racketStringEscapeError,racketStringEscape,racketUStringEscape 514 syntax region racketString start=/#"/ skip=/\\[\\"]/ end=/"/ contains=racketStringEscapeError,racketStringEscape 515 516 if exists("racket_no_string_fold") 517 syn region racketHereString start=/#<<\z(.*\)$/ end=/^\z1$/ 518 else 519 syn region racketHereString start=/#<<\z(.*\)$/ end=/^\z1$/ fold 520 endif 521 522 523 syntax cluster racketTop add=racketError,racketConstant,racketStruc,racketString,racketHereString 524 525 " Numbers 526 527 " anything which doesn't match the below rules, but starts with a #d, #b, #o, 528 " #x, #i, or #e, is an error 529 syntax match racketNumberError "\<#[xdobie]\k*" 530 531 syntax match racketContainedNumberError "\<#o\k*[^-+0-7delfinas#./@]\>" 532 syntax match racketContainedNumberError "\<#b\k*[^-+01delfinas#./@]\>" 533 syntax match racketContainedNumberError "\<#[ei]#[ei]" 534 syntax match racketContainedNumberError "\<#[xdob]#[xdob]" 535 536 " start with the simpler sorts 537 syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdleft][-+]\?\d\+#*\)\?\>" contains=racketContainedNumberError 538 syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\?\d\+/\d\+\>" contains=racketContainedNumberError 539 syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\?\d\+/\d\+[-+]\d\+\(/\d\+\)\?i\>" contains=racketContainedNumberError 540 541 " different possible ways of expressing complex values 542 syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdleft][-+]\?\d\+#*\)\?i\>" contains=racketContainedNumberError 543 syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdleft][-+]\?\d\+#*\)\?[-+]\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdlef][-+]\?\d\+#*\)\?i\>" contains=racketContainedNumberError 544 syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\(inf\|nan\)\.[0f][-+]\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdleft][-+]\?\d\+#*\)\?i\>" contains=racketContainedNumberError 545 syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdleft][-+]\?\d\+#*\)\?[-+]\(inf\|nan\)\.[0f]i\>" contains=racketContainedNumberError 546 syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdleft][-+]\?\d\+#*\)\?@[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdlef][-+]\?\d\+#*\)\?\>" contains=racketContainedNumberError 547 syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\(inf\|nan\)\.[0f]@[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdleft][-+]\?\d\+#*\)\?\>" contains=racketContainedNumberError 548 syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdleft][-+]\?\d\+#*\)\?@[-+]\(inf\|nan\)\.[0f]\>" contains=racketContainedNumberError 549 550 " hex versions of the above (separate because of the different possible exponent markers) 551 syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\?\(\x\+\|\x\+#*\.\|\x*\.\x\+\)#*\(/\x\+#*\)\?\([slt][-+]\?\x\+#*\)\?\>" 552 syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\?\x\+/\x\+\>" 553 syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\?\x\+/\x\+[-+]\x\+\(/\x\+\)\?i\>" 554 555 syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\(\x\+\|\x\+#*\.\|\x*\.\x\+\)#*\(/\x\+#*\)\?\([sl][-+]\?\x\+#*\)\?i\>" 556 syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\?\(\x\+\|\x\+#*\.\|\x*\.\x\+\)#*\(/\x\+#*\)\?\([sl][-+]\?\x\+#*\)\?[-+]\(\x\+\|\x\+#*\.\|\x*\.\x\+\)#*\(/\x\+#*\)\?\([sl][-+]\?\x\+#*\)\?i\>" 557 syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\(inf\|nan\)\.[0f][-+]\(\x\+\|\x\+#*\.\|\x*\.\x\+\)#*\(/\x\+#*\)\?\([sl][-+]\?\x\+#*\)\?i\>" 558 syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\?\(\x\+\|\x\+#*\.\|\x*\.\x\+\)#*\(/\x\+#*\)\?\([sl][-+]\?\x\+#*\)\?[-+]\(inf\|nan\)\.[0f]i\>" 559 syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\?\(\x\+\|\x\+#*\.\|\x*\.\x\+\)#*\(/\x\+#*\)\?\([sl][-+]\?\x\+#*\)\?@[-+]\?\(\x\+\|\x\+#*\.\|\x*\.\x\+\)#*\(/\x\+#*\)\?\([sl][-+]\?\x\+#*\)\?\>" 560 syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\(inf\|nan\)\.[0f]@[-+]\?\(\x\+\|\x\+#*\.\|\x*\.\x\+\)#*\(/\x\+#*\)\?\([sl][-+]\?\x\+#*\)\?\>" 561 syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\?\(\x\+\|\x\+#*\.\|\x*\.\x\+\)#*\(/\x\+#*\)\?\([sl][-+]\?\x\+#*\)\?@[-+]\(inf\|nan\)\.[0f]\>" 562 563 " these work for any radix 564 syntax match racketNumber "\<\(#[xdobie]\)\{0,2}[-+]\(inf\|nan\)\.[0ft]i\?\>" contains=racketContainedNumberError 565 syntax match racketNumber "\<\(#[xdobie]\)\{0,2}[-+]\(inf\|nan\)\.[0ft][-+]\(inf\|nan\)\.[0f]i\>" contains=racketContainedNumberError 566 syntax match racketNumber "\<\(#[xdobie]\)\{0,2}[-+]\(inf\|nan\)\.[0ft]@[-+]\(inf\|nan\)\.[0f]\>" contains=racketContainedNumberError 567 568 syntax keyword racketBoolean #t #f #true #false #T #F 569 570 syntax match racketError "\<#\\\k*\>" 571 572 syntax match racketChar "\<#\\.\w\@!" 573 syntax match racketChar "\<#\\space\>" 574 syntax match racketChar "\<#\\newline\>" 575 syntax match racketChar "\<#\\return\>" 576 syntax match racketChar "\<#\\null\?\>" 577 syntax match racketChar "\<#\\backspace\>" 578 syntax match racketChar "\<#\\tab\>" 579 syntax match racketChar "\<#\\linefeed\>" 580 syntax match racketChar "\<#\\vtab\>" 581 syntax match racketChar "\<#\\page\>" 582 syntax match racketChar "\<#\\rubout\>" 583 syntax match racketChar "\<#\\\o\{1,3}\>" 584 syntax match racketChar "\<#\\x\x\{1,2}\>" 585 syntax match racketChar "\<#\\u\x\{1,6}\>" 586 587 syntax cluster racketTop add=racketNumber,racketBoolean,racketChar 588 589 " Command-line parsing 590 syntax keyword racketExtFunc command-line current-command-line-arguments once-any help-labels multi once-each 591 592 syntax match racketSyntax "#lang " 593 syntax match racketExtSyntax "#:\k\+" 594 595 syntax cluster racketTop add=racketExtFunc,racketExtSyntax 596 597 " syntax quoting, unquoting and quasiquotation 598 syntax match racketQuote "#\?['`]" 599 600 syntax match racketUnquote "#," 601 syntax match racketUnquote "#,@" 602 syntax match racketUnquote "," 603 syntax match racketUnquote ",@" 604 605 " Comments 606 syntax match racketSharpBang "\%^#![ /].*" display 607 syntax match racketComment /;.*$/ contains=racketTodo,racketNote,@Spell 608 syntax match racketFormComment "#;" nextgroup=@racketTop 609 syntax cluster racketTop add=racketFormComment 610 611 if exists("racket_no_comment_fold") 612 syntax region racketBlockComment start=/#|/ end=/|#/ contains=racketBlockComment,racketTodo,racketNote,@Spell 613 else 614 syntax region racketBlockComment start=/#|/ end=/|#/ contains=racketBlockComment,racketTodo,racketNote,@Spell fold 615 syntax region racketMultilineComment start="^\s*;" end="^\%(\s*;\)\@!" contains=racketComment transparent keepend fold 616 endif 617 618 syntax match racketTodo /\C\<\(FIXME\|TODO\|XXX\)\ze:\?\>/ contained 619 syntax match racketNote /\CNOTE\ze:\?/ contained 620 621 syntax cluster racketComments contains=racketComment,racketBlockComment,racketMultilineComment 622 syntax cluster racketTop add=racketQuote,racketUnquote,@racketComments 623 624 " Synchronization and the wrapping up... 625 syntax sync match matchPlace grouphere NONE "^[^ \t]" 626 " ... i.e. synchronize on a line that starts at the left margin 627 628 " Define the default highlighting. 629 highlight default link racketSyntax Statement 630 highlight default link racketFunc Function 631 632 highlight default link racketString String 633 highlight default link racketStringEscape Special 634 highlight default link racketHereString String 635 highlight default link racketUStringEscape Special 636 highlight default link racketStringEscapeError Error 637 highlight default link racketChar Character 638 highlight default link racketBoolean Boolean 639 640 highlight default link racketNumber Number 641 highlight default link racketNumberError Error 642 highlight default link racketContainedNumberError Error 643 644 highlight default link racketQuote SpecialChar 645 highlight default link racketUnquote SpecialChar 646 647 highlight default link racketDelimiter Delimiter 648 highlight default link racketParen Delimiter 649 highlight default link racketConstant Constant 650 651 highlight default link racketLit Type 652 highlight default link racketRe Type 653 654 highlight default link racketComment Comment 655 highlight default link racketBlockComment Comment 656 highlight default link racketFormComment SpecialChar 657 highlight default link racketSharpBang Comment 658 highlight default link racketTodo Todo 659 highlight default link racketNote SpecialComment 660 highlight default link racketError Error 661 662 highlight default link racketExtSyntax Type 663 highlight default link racketExtFunc PreProc 664 665 let b:current_syntax = "racket"