codekingpro/portable-devtools
115k
1" Vim syntax file2" Language: Racket3" Maintainer: D. Ben Knoble <ben.knoble+github@gmail.com>4" Previous Maintainer: Will Langstroth <will@langstroth.com>5" URL: https://github.com/benknoble/vim-racket6" Description: Contains all of the keywords in #lang racket7" Last Change: 2026 Jan 078 9" Initializing:10if exists("b:current_syntax")11 finish12endif13 14" Highlight unmatched parens15syntax match racketError ,[]})],16 17if version < 80018 set iskeyword=33,35-39,42-58,60-90,94,95,97-122,126,_19else20 " syntax iskeyword 33,35-39,42-58,60-90,94,95,97-122,126,_21 " converted from decimal to char22 " :s/\d\+/\=submatch(0)->str2nr()->nr2char()/g23 " but corrected to remove duplicate _, move ^ to end24 syntax iskeyword @,!,#-',*-:,<-Z,a-z,~,_,^25 " expanded26 " syntax iskeyword !,#,$,%,&,',*,+,,,-,.,/,0-9,:,<,=,>,?,@,A-Z,_,a-z,~,^27endif28 29" Forms in order of appearance at30" http://docs.racket-lang.org/reference/index.html31"32syntax keyword racketSyntax module module* module+ require provide quote33syntax keyword racketSyntax #%module-begin #%datum #%expression #%top #%variable-reference #%app34syntax keyword racketSyntax lambda case-lambda let let* letrec35syntax keyword racketSyntax let-values let*-values let-syntax letrec-syntax36syntax keyword racketSyntax let-syntaxes letrec-syntaxes letrec-syntaxes+values37syntax keyword racketSyntax local shared38syntax keyword racketSyntax if cond and or case define else =>39syntax keyword racketSyntax define define-values define-syntax define-syntaxes40syntax keyword racketSyntax define-for-syntax define-require-syntax define-provide-syntax41syntax keyword racketSyntax define-syntax-rule42syntax keyword racketSyntax define-record-type43syntax keyword racketSyntax begin begin044syntax keyword racketSyntax begin-for-syntax45syntax keyword racketSyntax when unless46syntax keyword racketSyntax set! set!-values47syntax keyword racketSyntax for for/list for/vector for/hash for/hasheq for/hasheqv48syntax keyword racketSyntax for/and for/or for/lists for/first49syntax keyword racketSyntax for/last for/fold50syntax keyword racketSyntax for* for*/list for*/vector for*/hash for*/hasheq for*/hasheqv51syntax keyword racketSyntax for*/and for*/or for*/lists for*/first52syntax keyword racketSyntax for*/last for*/fold53syntax keyword racketSyntax for/fold/derived for*/fold/derived54syntax keyword racketSyntax define-sequence-syntax :do-in do55syntax keyword racketSyntax with-continuation-mark56syntax keyword racketSyntax quasiquote unquote unquote-splicing quote-syntax57syntax keyword racketSyntax #%top-interaction58syntax keyword racketSyntax define-package open-package package-begin59syntax keyword racketSyntax define* define*-values define*-syntax define*-syntaxes open*-package60syntax keyword racketSyntax package? package-exported-identifiers package-original-identifiers61syntax keyword racketSyntax block #%stratified-body62 63" 8 Contracts64" 8.2 Function contracts65syntax keyword racketSyntax -> ->* ->i ->d case-> dynamic->* unconstrained-domain->66 67" 8.6.1 Nested Contract Boundaries68syntax keyword racketSyntax with-contract define/contract define-struct/contract69syntax keyword racketSyntax invariant-assertion current-contract-region70 71" 9 Pattern Matching72syntax keyword racketSyntax match match* match/values define/match73syntax keyword racketSyntax match-lambda match-lambda* match-lambda**74syntax keyword racketSyntax match-let match-let* match-let-values match-let*-values75syntax keyword racketSyntax match-letrec match-define match-define-values76 77" 10.2.3 Handling Exceptions78syntax keyword racketSyntax with-handlers with-handlers*79 80" 10.4 Continuations81syntax keyword racketSyntax let/cc let/ec82 83" 10.4.1 Additional Control Operators84syntax keyword racketSyntax % prompt control prompt-at control-at reset shift85syntax keyword racketSyntax reset-at shift-at prompt0 reset0 control0 shift086syntax keyword racketSyntax prompt0-at reset0-at control0-at shift0-at87syntax keyword racketSyntax set cupto88 89" 11.3.2 Parameters90syntax keyword racketSyntax parameterize parameterize*91 92" 12.5 Writing93syntax keyword racketSyntax write display displayln print94syntax keyword racketSyntax fprintf printf eprintf format95syntax keyword racketSyntax print-pair-curly-braces print-mpair-curly-braces print-unreadable96syntax keyword racketSyntax print-graph print-struct print-box print-vector-length print-hash-table97syntax keyword racketSyntax print-boolean-long-form print-reader-abbreviations print-as-expression print-syntax-width98syntax keyword racketSyntax current-write-relative-directory port-write-handler port-display-handler99syntax keyword racketSyntax port-print-handler global-port-print-handler100 101" 13.7 Custodians102syntax keyword racketSyntax custodian? custodian-memory-accounting-available? custodian-box?103syntax keyword racketSyntax make-custodian custodian-shutdown-all current-custodian custodian-managed-list104syntax keyword racketSyntax custodian-require-memory custodian-limit-memory105syntax keyword racketSyntax make-custodian-box custodian-box-value106 107" lambda sign108syntax match racketSyntax /\<[\u03bb]\>/109 110 111" Functions ==================================================================112 113syntax keyword racketFunc boolean? not equal? eqv? eq? equal?/recur immutable?114syntax keyword racketFunc true false symbol=? boolean=? false?115syntax keyword racketFunc number? complex? real? rational? integer?116syntax keyword racketFunc exact-integer? exact-nonnegative-integer?117syntax keyword racketFunc exact-positive-integer? inexact-real?118syntax keyword racketFunc fixnum? flonum? zero? positive? negative?119syntax keyword racketFunc even? odd? exact? inexact?120syntax keyword racketFunc inexact->exact exact->inexact121 122" 3.2.2 General Arithmetic123 124" 3.2.2.1 Arithmetic125syntax keyword racketFunc + - * / quotient remainder quotient/remainder modulo126syntax keyword racketFunc add1 sub1 abs max min gcd lcm round exact-round floor127syntax keyword racketFunc ceiling truncate numerator denominator rationalize128 129" 3.2.2.2 Number Comparison130syntax keyword racketFunc = < <= > >=131 132" 3.2.2.3 Powers and Roots133syntax keyword racketFunc sqrt integer-sqrt integer-sqrt/remainder134syntax keyword racketFunc expt exp log135 136" 3.2.2.3 Trigonometric Functions137syntax keyword racketFunc sin cos tan asin acos atan138 139" 3.2.2.4 Complex Numbers140syntax keyword racketFunc make-rectangular make-polar141syntax keyword racketFunc real-part imag-part magnitude angle142syntax keyword racketFunc bitwise-ior bitwise-and bitwise-xor bitwise-not143syntax keyword racketFunc bitwise-bit-set? bitwise-bit-field arithmetic-shift144syntax keyword racketFunc integer-length145 146" 3.2.2.5 Random Numbers147syntax keyword racketFunc random random-seed148syntax keyword racketFunc make-pseudo-random-generator pseudo-random-generator?149syntax keyword racketFunc current-pseudo-random-generator pseudo-random-generator->vector150syntax keyword racketFunc vector->pseudo-random-generator vector->pseudo-random-generator!151 152" 3.2.2.8 Number-String Conversions153syntax keyword racketFunc number->string string->number real->decimal-string154syntax keyword racketFunc integer->integer-bytes155syntax keyword racketFunc floating-point-bytes->real real->floating-point-bytes156syntax keyword racketFunc system-big-endian?157 158" 3.2.2.9 Extra Constants and Functions159syntax keyword racketFunc pi sqr sgn conjugate sinh cosh tanh order-of-magnitude160 161" 3.2.3 Flonums162 163" 3.2.3.1 Flonum Arithmetic164syntax keyword racketFunc fl+ fl- fl* fl/ flabs165syntax keyword racketFunc fl= fl< fl> fl<= fl>= flmin flmax166syntax keyword racketFunc flround flfloor flceiling fltruncate167syntax keyword racketFunc flsin flcos fltan flasin flacos flatan168syntax keyword racketFunc fllog flexp flsqrt169syntax keyword racketFunc ->fl fl->exact-integer make-flrectangular170syntax keyword racketFunc flreal-part flimag-part171 172" 3.2.3.2 Flonum Vectors173syntax keyword racketFunc flvector? flvector make-flvector flvector-length174syntax keyword racketFunc flvector-ref flvector-set! flvector-copy in-flvector175syntax keyword racketFunc shared-flvector make-shared-flvector176syntax keyword racketSyntax for/flvector for*/flvector177 178" 3.2.4 Fixnums179syntax keyword racketFunc fx+ fx- fx* fxquotient fxremainder fxmodulo fxabs180syntax keyword racketFunc fxand fxior fxxor fxnot fxlshift fxrshift181syntax keyword racketFunc fx= fx< fx> fx<= fx>= fxmin fxmax fx->fl fl->fx182 183" 3.2.4.2 Fixnum Vectors184syntax keyword racketFunc fxvector? fxvector make-fxvector fxvector-length185syntax keyword racketFunc fxvector-ref fxvector-set! fxvector-copy in-fxvector186syntax keyword racketFunc for/fxvector for*/fxvector187syntax keyword racketFunc shared-fxvector make-shared-fxvector188 189" 3.3 Strings190syntax keyword racketFunc string? make-string string string->immutable-string string-length191syntax keyword racketFunc string-ref string-set! substring string-copy string-copy!192syntax keyword racketFunc string-fill! string-append string->list list->string193syntax keyword racketFunc build-string string=? string<? string<=? string>? string>=?194syntax keyword racketFunc string-ci=? string-ci<? string-ci<=? string-ci>? string-ci>=?195syntax keyword racketFunc string-upcase string-downcase string-titlecase string-foldcase196syntax keyword racketFunc string-normalize-nfd string-normalize-nfc string-normalize-nfkc197syntax keyword racketFunc string-normalize-spaces string-trim198syntax keyword racketFunc string-locale=? string-locale>? string-locale<?199syntax keyword racketFunc string-locale-ci=? string-locale<=?200syntax keyword racketFunc string-locale-upcase string-locale-downcase201syntax keyword racketFunc string-append* string-join202 203" 3.4 Bytestrings204syntax keyword racketFunc bytes? make-bytes bytes bytes->immutable-bytes byte?205syntax keyword racketFunc bytes-length bytes-ref bytes-set! subbytes bytes-copy206syntax keyword racketFunc bytes-copy! bytes-fill! bytes-append bytes->list list->bytes207syntax keyword racketFunc make-shared-bytes shared-bytes208syntax keyword racketFunc bytes=? bytes<? bytes>?209syntax keyword racketFunc bytes->string/utf-8 bytes->string/latin-1210syntax keyword racketFunc string->bytes/locale string->bytes/latin-1 string->bytes/utf-8211syntax keyword racketFunc string-utf-8-length bytes-utf8-ref bytes-utf-8-index212syntax keyword racketFunc bytes-open-converter bytes-close-converter213syntax keyword racketFunc bytes-convert bytes-convert-end bytes-converter?214syntax keyword racketFunc locale-string-encoding215 216" 3.5 Characters217syntax keyword racketFunc char? char->integer integer->char218syntax keyword racketFunc char=? char<? char<=? char>? char>=?219syntax keyword racketFunc char-ci=? char-ci<? char-ci<=? char-ci>? char-ci>=?220syntax keyword racketFunc char-alphabetic? char-lower-case? char-upper-case? char-title-case?221syntax keyword racketFunc char-numeric? char-symbolic? char-punctuation? char-graphic?222syntax keyword racketFunc char-whitespace? char-blank?223syntax keyword racketFunc char-iso-control? char-general-category224syntax keyword racketFunc make-known-char-range-list225syntax keyword racketFunc char-upcase char-downcase char-titlecase char-foldcase226 227" 3.6 Symbols228syntax keyword racketFunc symbol? symbol-interned? symbol-unreadable?229syntax keyword racketFunc symbol->string string->symbol230syntax keyword racketFunc string->uninterned-symbol string->unreadable-symbol231syntax keyword racketFunc gensym232 233" 3.7 Regular Expressions234syntax keyword racketFunc regexp? pregexp? byte-regexp? byte-pregexp?235syntax keyword racketFunc regexp pregexp byte-regexp byte-pregexp236syntax keyword racketFunc regexp-quote regexp-match regexp-match*237syntax keyword racketFunc regexp-try-match regexp-match-positions238syntax keyword racketFunc regexp-match-positions* regexp-match?239syntax keyword racketFunc regexp-match-peek-positions regexp-match-peek-immediate240syntax keyword racketFunc regexp-match-peek regexp-match-peek-positions*241syntax keyword racketFunc regexp-match/end regexp-match-positions/end242syntax keyword racketFunc regexp-match-peek-positions-immediat/end243syntax keyword racketFunc regexp-split regexp-replace regexp-replace*244syntax keyword racketFunc regexp-replace-quote245 246" 3.8 Keywords247syntax keyword racketFunc keyword? keyword->string string->keyword keyword<?248 249" 3.9 Pairs and Lists250syntax keyword racketFunc pair? null? cons car cdr null251syntax keyword racketFunc list? list list* build-list length252syntax keyword racketFunc list-ref list-tail append reverse map andmap ormap253syntax keyword racketFunc for-each foldl foldr filter remove remq remv remove*254syntax keyword racketFunc remq* remv* sort member memv memq memf255syntax keyword racketFunc findf assoc assv assq assf256syntax keyword racketFunc caar cadr cdar cddr caaar caadr cadar caddr cdaar257syntax keyword racketFunc cddar cdddr caaaar caaadr caadar caaddr cadadr caddar258syntax keyword racketFunc cadddr cdaaar cdaadr cdadar cddaar cdddar cddddr259 260" 3.9.7 Additional List Functions and Synonyms261" (require racket/list)262syntax keyword racketFunc empty cons? empty? first rest263syntax keyword racketFunc second third fourth fifth sixth seventh eighth ninth tenth264syntax keyword racketFunc last last-pair make-list take drop split-at265syntax keyword racketFunc take-right drop-right split-at-right add-between266syntax keyword racketFunc append* flatten remove-duplicates filter-map267syntax keyword racketFunc count partition append-map filter-not shuffle268syntax keyword racketFunc argmin argmax make-reader-graph placeholder? make-placeholder269syntax keyword racketFunc placeholder-set! placeholder-get hash-placeholder?270syntax keyword racketFunc make-hash-placeholder make-hasheq-placeholder271syntax keyword racketFunc make-hasheqv-placeholder make-immutable-hasheqv272 273" 3.10 Mutable Pairs and Lists274syntax keyword racketFunc mpair? mcons mcar mcdr275 276" 3.11 Vectors277syntax keyword racketFunc vector? make-vector vector vector-immutable vector-length278syntax keyword racketFunc vector-ref vector-set! vector->list list->vector279syntax keyword racketFunc vector->immutable-vector vector-fill! vector-copy!280syntax keyword racketFunc vector->values build-vector vector-set*! vector-map281syntax keyword racketFunc vector-map! vector-append vector-take vector-take-right282syntax keyword racketFunc vector-drop vector-drop-right vector-split-at283syntax keyword racketFunc vector-split-at-right vector-copy vector-filter284syntax keyword racketFunc vector-filter-not vector-count vector-argmin vector-argmax285syntax keyword racketFunc vector-member vector-memv vector-memq286 287" 3.12 Boxes288syntax keyword racketFunc box? box box-immutable unbox set-box!289 290" 3.13 Hash Tables291syntax keyword racketFunc hash? hash-equal? hash-eqv? hash-eq? hash-weak? hash292syntax keyword racketFunc hasheq hasheqv293syntax keyword racketFunc make-hash make-hasheqv make-hasheq make-weak-hash make-weak-hasheqv294syntax keyword racketFunc make-weak-hasheq make-immutable-hash make-immutable-hasheqv295syntax keyword racketFunc make-immutable-hasheq296syntax keyword racketFunc hash-set! hash-set*! hash-set hash-set* hash-ref hash-ref!297syntax keyword racketFunc hash-has-key? hash-update! hash-update hash-remove!298syntax keyword racketFunc hash-remove hash-map hash-keys hash-values299syntax keyword racketFunc hash->list hash-for-each hash-count300syntax keyword racketFunc hash-iterate-first hash-iterate-next hash-iterate-key301syntax keyword racketFunc hash-iterate-value hash-copy eq-hash-code eqv-hash-code302syntax keyword racketFunc equal-hash-code equal-secondary-hash-code303 304" 3.15 Dictionaries305syntax keyword racketFunc dict? dict-mutable? dict-can-remove-keys? dict-can-functional-set?306syntax keyword racketFunc dict-set! dict-set*! dict-set dict-set* dict-has-key? dict-ref307syntax keyword racketFunc dict-ref! dict-update! dict-update dict-remove! dict-remove308syntax keyword racketFunc dict-map dict-for-each dict-count dict-iterate-first dict-iterate-next309syntax keyword racketFunc dict-iterate-key dict-iterate-value in-dict in-dict-keys310syntax keyword racketFunc in-dict-values in-dict-pairs dict-keys dict-values311syntax keyword racketFunc dict->list prop: dict prop: dict/contract dict-key-contract312syntax keyword racketFunc dict-value-contract dict-iter-contract make-custom-hash313syntax keyword racketFunc make-immutable-custom-hash make-weak-custom-hash314 315" 3.16 Sets316syntax keyword racketFunc set seteqv seteq set-empty? set-count set-member?317syntax keyword racketFunc set-add set-remove set-union set-intersect set-subtract318syntax keyword racketFunc set-symmetric-difference set=? subset? proper-subset?319syntax keyword racketFunc set-map set-for-each set? set-equal? set-eqv? set-eq?320syntax keyword racketFunc set/c in-set for/set for/seteq for/seteqv for*/set321syntax keyword racketFunc for*/seteq for*/seteqv list->set list->seteq322syntax keyword racketFunc list->seteqv set->list323 324" 3.17 Procedures325syntax keyword racketFunc procedure? apply compose compose1 procedure-rename procedure->method326syntax keyword racketFunc keyword-apply procedure-arity procedure-arity?327syntax keyword racketFunc procedure-arity-includes? procedure-reduce-arity328syntax keyword racketFunc procedure-keywords make-keyword-procedure329syntax keyword racketFunc procedure-reduce-keyword-arity procedure-struct-type?330syntax keyword racketFunc procedure-extract-target checked-procedure-check-and-extract331syntax keyword racketFunc primitive? primitive-closure? primitive-result-arity332syntax keyword racketFunc identity const thunk thunk* negate curry curryr333 334" 3.18 Void335syntax keyword racketFunc void void?336 337" 4.1 Defining Structure Types338syntax keyword racketFunc struct struct-field-index define-struct define-struct define-struct/derived339 340" 4.2 Creating Structure Types341syntax keyword racketFunc make-struct-type make-struct-field-accessor make-struct-field-mutator342 343" 4.3 Structure Type Properties344syntax keyword racketFunc make-struct-type-property struct-type-property? struct-type-property-accessor-procedure?345 346" 4.4 Copying and Updating Structures347syntax keyword racketFunc struct-copy348 349" 4.5 Structure Utilities350syntax keyword racketFunc struct->vector struct? struct-type?351syntax keyword racketFunc struct-constructor-procedure? struct-predicate-procedure? struct-accessor-procedure? struct-mutator-procedure?352syntax keyword racketFunc prefab-struct-key make-prefab-struct prefab-key->struct-type353 354" 4.6 Structure Type Transformer Binding355syntax keyword racketFunc struct-info? check-struct-info? make-struct-info extract-struct-info356syntax keyword racketFunc struct-auto-info? struct-auto-info-lists357 358" 5.1 Creating Interfaces359syntax keyword racketFunc interface interface*360 361" 5.2 Creating Classes362syntax keyword racketFunc class* class inspect363syntax keyword racketFunc init init-field field inherit field init-rest364syntax keyword racketFunc public public* pubment pubment* public-final public-final*365syntax keyword racketFunc override override* overment overment* override-final override-final*366syntax keyword racketFunc augride augride* augment augment* augment-final augment-final*367syntax keyword racketFunc abstract inherit inherit/super inherit/inner368syntax keyword racketFunc rename-inner rename-super369syntax keyword racketFunc define/public define/pubment define/public-final370syntax keyword racketFunc define/override define/overment define/override-final371syntax keyword racketFunc define/augride define/augment define/augment-final372syntax keyword racketFunc private* define/private373 374" 5.2.3 Methods375syntax keyword racketFunc class/derived376syntax keyword racketFunc super inner define-local-member-name define-member-name377syntax keyword racketFunc member-name-key generate-member-key member-name-key?378syntax keyword racketFunc member-name-key=? member-name-key-hash-code379 380" 5.3 Creating Objects381syntax keyword racketFunc make-object instantiate new382syntax keyword racketFunc super-make-object super-instantiate super-new383 384"5.4 Field and Method Access385syntax keyword racketFunc method-id send send/apply send/keyword-apply dynamic-send send*386syntax keyword racketFunc get-field set-field! field-bound?387syntax keyword racketFunc class-field-accessor class-field-mutator388 389"5.4.3 Generics390syntax keyword racketFunc generic send-generic make-generic391 392" 8.1 Data-strucure contracts393syntax keyword racketFunc flat-contract-with-explanation flat-named-contract394" TODO where do any/c and none/c `value`s go?395syntax keyword racketFunc or/c first-or/c and/c not/c =/c </c >/c <=/c >=/c396syntax keyword racketFunc between/c real-in integer-in char-in natural-number/c397syntax keyword racketFunc string-len/c printable/c one-of/c symbols vectorof398syntax keyword racketFunc vector-immutableof vector/c box/c box-immutable/c listof399syntax keyword racketFunc non-empty-listof list*of cons/c cons/dc list/c *list/c400syntax keyword racketFunc syntax/c struct/c struct/dc parameter/c401syntax keyword racketFunc procedure-arity-includes/c hash/c hash/dc channel/c402syntax keyword racketFunc prompt-tag/c continuation-mark-key/c evt/c promise/c403syntax keyword racketFunc flat-contract flat-contract-predicate suggest/c404 405" 9.1 Multiple Values406syntax keyword racketFunc values call-with-values407 408" 10.2.2 Raising Exceptions409syntax keyword racketFunc raise error raise-user-error raise-argument-error410syntax keyword racketFunc raise-result-error raise-argument-error raise-range-error411syntax keyword racketFunc raise-type-error raise-mismatch-error raise-arity-error412syntax keyword racketFunc raise-syntax-error413 414" 10.2.3 Handling Exceptions415syntax keyword racketFunc call-with-exception-handler uncaught-exception-handler416 417" 10.2.4 Configuring Default Handlers418syntax keyword racketFunc error-escape-handler error-display-handler error-print-width419syntax keyword racketFunc error-print-context-length error-values->string-handler420syntax keyword racketFunc error-print-source-location421 422" 10.2.5 Built-in Exception Types423syntax keyword racketFunc exn exn:fail exn:fail:contract exn:fail:contract:arity424syntax keyword racketFunc exn:fail:contract:divide-by-zero exn:fail:contract:non-fixnum-result425syntax keyword racketFunc exn:fail:contract:continuation exn:fail:contract:variable426syntax keyword racketFunc exn:fail:syntax exn:fail:syntax:unbound exn:fail:syntax:missing-module427syntax keyword racketFunc exn:fail:read exn:fail:read:eof exn:fail:read:non-char428syntax keyword racketFunc exn:fail:filesystem exn:fail:filesystem:exists429syntax keyword racketFunc exn:fail:filesystem:version exn:fail:filesystem:errno430syntax keyword racketFunc exn:fail:filesystem:missing-module431syntax keyword racketFunc exn:fail:network exn:fail:network:errno exn:fail:out-of-memory432syntax keyword racketFunc exn:fail:unsupported exn:fail:user433syntax keyword racketFunc exn:break exn:break:hang-up exn:break:terminate434 435" 10.3 Delayed Evaluation436syntax keyword racketFunc promise? delay lazy force promise-forced? promise-running?437 438" 10.3.1 Additional Promise Kinds439syntax keyword racketFunc delay/name promise/name delay/strict delay/sync delay/thread delay/idle440 441" 10.4 Continuations442syntax keyword racketFunc call-with-continuation-prompt abort-current-continuation make-continuation-prompt-tag443syntax keyword racketFunc default-continuation-prompt-tag call-with-current-continuation call/cc444syntax keyword racketFunc call-with-composable-continuation call-with-escape-continuation call/ec445syntax keyword racketFunc call-with-continuation-barrier continuation-prompt-available446syntax keyword racketFunc continuation? continuation-prompt-tag dynamic-wind447 448" 10.4.1 Additional Control Operators449syntax keyword racketFunc call/prompt abort/cc call/comp abort fcontrol spawn splitter new-prompt450 451" 11.3.2 Parameters452syntax keyword racketFunc make-parameter make-derived-parameter parameter?453syntax keyword racketFunc parameter-procedure=? current-parameterization454syntax keyword racketFunc call-with-parameterization parameterization?455 456" 14.1.1 Manipulating Paths457syntax keyword racketFunc path? path-string? path-for-some-system? string->path path->string path->bytes458syntax keyword racketFunc string->path-element bytes->path-element path-element->string path-element->bytes459syntax keyword racketFunc path-convention-type system-path-convention-type build-type460syntax keyword racketFunc build-type/convention-type461syntax keyword racketFunc absolute-path? relative-path? complete-path?462syntax keyword racketFunc path->complete-path path->directory-path463syntax keyword racketFunc resolve-path cleanse-path expand-user-path simplify-path normal-case-path split-path464syntax keyword racketFunc path-replace-suffix path-add-suffix465 466" 14.1.2 More Path Utilities467syntax keyword racketFunc explode-path file-name-from-path filename-extension find-relative-path normalize-path468syntax keyword racketFunc path-element? path-only simple-form-path some-simple-path->string string->some-system-path469 470" 15.6 Time471syntax keyword racketFunc current-seconds current-inexact-milliseconds472syntax keyword racketFunc seconds->date current-milliseconds473 474 475syntax match racketDelimiter !\<\.\>!476 477syntax cluster racketTop contains=racketSyntax,racketFunc,racketDelimiter478 479syntax match racketConstant ,\<\*\k\+\*\>,480syntax match racketConstant ,\<<\k\+>\>,481 482" Non-quoted lists, and strings483syntax region racketStruc matchgroup=racketParen start="("rs=s+1 end=")"re=e-1 contains=@racketTop484syntax region racketStruc matchgroup=racketParen start="#("rs=s+2 end=")"re=e-1 contains=@racketTop485syntax region racketStruc matchgroup=racketParen start="{"rs=s+1 end="}"re=e-1 contains=@racketTop486syntax region racketStruc matchgroup=racketParen start="#{"rs=s+2 end="}"re=e-1 contains=@racketTop487syntax region racketStruc matchgroup=racketParen start="\["rs=s+1 end="\]"re=e-1 contains=@racketTop488syntax region racketStruc matchgroup=racketParen start="#\["rs=s+2 end="\]"re=e-1 contains=@racketTop489 490for lit in ['hash', 'hasheq', 'hasheqv']491 execute printf('syntax match racketLit "\<%s\>" nextgroup=@racketParen containedin=ALLBUT,.*String,.*Comment', '#'.lit)492endfor493 494for lit in ['rx', 'rx#', 'px', 'px#']495 execute printf('syntax match racketRe "\<%s\>" nextgroup=@racketString containedin=ALLBUT,.*String,.*Comment,', '#'.lit)496endfor497 498unlet lit499 500" Simple literals501 502" Strings503 504syntax match racketStringEscapeError "\\." contained display505 506syntax match racketStringEscape "\\[abtnvfre'"\\]" contained display507syntax match racketStringEscape "\\$" contained display508syntax match racketStringEscape "\\\o\{1,3}\|\\x\x\{1,2}" contained display509 510syntax match racketUStringEscape "\\u\x\{1,4}\|\\U\x\{1,8}" contained display511syntax match racketUStringEscape "\\u\x\{4}\\u\x\{4}" contained display512 513syntax region racketString start=/\%(\\\)\@<!"/ skip=/\\[\\"]/ end=/"/ contains=racketStringEscapeError,racketStringEscape,racketUStringEscape514syntax region racketString start=/#"/ skip=/\\[\\"]/ end=/"/ contains=racketStringEscapeError,racketStringEscape515 516if exists("racket_no_string_fold")517 syn region racketHereString start=/#<<\z(.*\)$/ end=/^\z1$/518else519 syn region racketHereString start=/#<<\z(.*\)$/ end=/^\z1$/ fold520endif521 522 523syntax cluster racketTop add=racketError,racketConstant,racketStruc,racketString,racketHereString524 525" Numbers526 527" anything which doesn't match the below rules, but starts with a #d, #b, #o,528" #x, #i, or #e, is an error529syntax match racketNumberError "\<#[xdobie]\k*"530 531syntax match racketContainedNumberError "\<#o\k*[^-+0-7delfinas#./@]\>"532syntax match racketContainedNumberError "\<#b\k*[^-+01delfinas#./@]\>"533syntax match racketContainedNumberError "\<#[ei]#[ei]"534syntax match racketContainedNumberError "\<#[xdob]#[xdob]"535 536" start with the simpler sorts537syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdleft][-+]\?\d\+#*\)\?\>" contains=racketContainedNumberError538syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\?\d\+/\d\+\>" contains=racketContainedNumberError539syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\?\d\+/\d\+[-+]\d\+\(/\d\+\)\?i\>" contains=racketContainedNumberError540 541" different possible ways of expressing complex values542syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdleft][-+]\?\d\+#*\)\?i\>" contains=racketContainedNumberError543syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdleft][-+]\?\d\+#*\)\?[-+]\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdlef][-+]\?\d\+#*\)\?i\>" contains=racketContainedNumberError544syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\(inf\|nan\)\.[0f][-+]\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdleft][-+]\?\d\+#*\)\?i\>" contains=racketContainedNumberError545syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdleft][-+]\?\d\+#*\)\?[-+]\(inf\|nan\)\.[0f]i\>" contains=racketContainedNumberError546syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdleft][-+]\?\d\+#*\)\?@[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdlef][-+]\?\d\+#*\)\?\>" contains=racketContainedNumberError547syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\(inf\|nan\)\.[0f]@[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdleft][-+]\?\d\+#*\)\?\>" contains=racketContainedNumberError548syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdleft][-+]\?\d\+#*\)\?@[-+]\(inf\|nan\)\.[0f]\>" contains=racketContainedNumberError549 550" hex versions of the above (separate because of the different possible exponent markers)551syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\?\(\x\+\|\x\+#*\.\|\x*\.\x\+\)#*\(/\x\+#*\)\?\([slt][-+]\?\x\+#*\)\?\>"552syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\?\x\+/\x\+\>"553syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\?\x\+/\x\+[-+]\x\+\(/\x\+\)\?i\>"554 555syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\(\x\+\|\x\+#*\.\|\x*\.\x\+\)#*\(/\x\+#*\)\?\([sl][-+]\?\x\+#*\)\?i\>"556syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\?\(\x\+\|\x\+#*\.\|\x*\.\x\+\)#*\(/\x\+#*\)\?\([sl][-+]\?\x\+#*\)\?[-+]\(\x\+\|\x\+#*\.\|\x*\.\x\+\)#*\(/\x\+#*\)\?\([sl][-+]\?\x\+#*\)\?i\>"557syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\(inf\|nan\)\.[0f][-+]\(\x\+\|\x\+#*\.\|\x*\.\x\+\)#*\(/\x\+#*\)\?\([sl][-+]\?\x\+#*\)\?i\>"558syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\?\(\x\+\|\x\+#*\.\|\x*\.\x\+\)#*\(/\x\+#*\)\?\([sl][-+]\?\x\+#*\)\?[-+]\(inf\|nan\)\.[0f]i\>"559syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\?\(\x\+\|\x\+#*\.\|\x*\.\x\+\)#*\(/\x\+#*\)\?\([sl][-+]\?\x\+#*\)\?@[-+]\?\(\x\+\|\x\+#*\.\|\x*\.\x\+\)#*\(/\x\+#*\)\?\([sl][-+]\?\x\+#*\)\?\>"560syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\(inf\|nan\)\.[0f]@[-+]\?\(\x\+\|\x\+#*\.\|\x*\.\x\+\)#*\(/\x\+#*\)\?\([sl][-+]\?\x\+#*\)\?\>"561syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\?\(\x\+\|\x\+#*\.\|\x*\.\x\+\)#*\(/\x\+#*\)\?\([sl][-+]\?\x\+#*\)\?@[-+]\(inf\|nan\)\.[0f]\>"562 563" these work for any radix564syntax match racketNumber "\<\(#[xdobie]\)\{0,2}[-+]\(inf\|nan\)\.[0ft]i\?\>" contains=racketContainedNumberError565syntax match racketNumber "\<\(#[xdobie]\)\{0,2}[-+]\(inf\|nan\)\.[0ft][-+]\(inf\|nan\)\.[0f]i\>" contains=racketContainedNumberError566syntax match racketNumber "\<\(#[xdobie]\)\{0,2}[-+]\(inf\|nan\)\.[0ft]@[-+]\(inf\|nan\)\.[0f]\>" contains=racketContainedNumberError567 568syntax keyword racketBoolean #t #f #true #false #T #F569 570syntax match racketError "\<#\\\k*\>"571 572syntax match racketChar "\<#\\.\w\@!"573syntax match racketChar "\<#\\space\>"574syntax match racketChar "\<#\\newline\>"575syntax match racketChar "\<#\\return\>"576syntax match racketChar "\<#\\null\?\>"577syntax match racketChar "\<#\\backspace\>"578syntax match racketChar "\<#\\tab\>"579syntax match racketChar "\<#\\linefeed\>"580syntax match racketChar "\<#\\vtab\>"581syntax match racketChar "\<#\\page\>"582syntax match racketChar "\<#\\rubout\>"583syntax match racketChar "\<#\\\o\{1,3}\>"584syntax match racketChar "\<#\\x\x\{1,2}\>"585syntax match racketChar "\<#\\u\x\{1,6}\>"586 587syntax cluster racketTop add=racketNumber,racketBoolean,racketChar588 589" Command-line parsing590syntax keyword racketExtFunc command-line current-command-line-arguments once-any help-labels multi once-each591 592syntax match racketSyntax "#lang "593syntax match racketExtSyntax "#:\k\+"594 595syntax cluster racketTop add=racketExtFunc,racketExtSyntax596 597" syntax quoting, unquoting and quasiquotation598syntax match racketQuote "#\?['`]"599 600syntax match racketUnquote "#,"601syntax match racketUnquote "#,@"602syntax match racketUnquote ","603syntax match racketUnquote ",@"604 605" Comments606syntax match racketSharpBang "\%^#![ /].*" display607syntax match racketComment /;.*$/ contains=racketTodo,racketNote,@Spell608syntax match racketFormComment "#;" nextgroup=@racketTop609syntax cluster racketTop add=racketFormComment610 611if exists("racket_no_comment_fold")612 syntax region racketBlockComment start=/#|/ end=/|#/ contains=racketBlockComment,racketTodo,racketNote,@Spell613else614 syntax region racketBlockComment start=/#|/ end=/|#/ contains=racketBlockComment,racketTodo,racketNote,@Spell fold615 syntax region racketMultilineComment start="^\s*;" end="^\%(\s*;\)\@!" contains=racketComment transparent keepend fold616endif617 618syntax match racketTodo /\C\<\(FIXME\|TODO\|XXX\)\ze:\?\>/ contained619syntax match racketNote /\CNOTE\ze:\?/ contained620 621syntax cluster racketComments contains=racketComment,racketBlockComment,racketMultilineComment622syntax cluster racketTop add=racketQuote,racketUnquote,@racketComments623 624" Synchronization and the wrapping up...625syntax sync match matchPlace grouphere NONE "^[^ \t]"626" ... i.e. synchronize on a line that starts at the left margin627 628" Define the default highlighting.629highlight default link racketSyntax Statement630highlight default link racketFunc Function631 632highlight default link racketString String633highlight default link racketStringEscape Special634highlight default link racketHereString String635highlight default link racketUStringEscape Special636highlight default link racketStringEscapeError Error637highlight default link racketChar Character638highlight default link racketBoolean Boolean639 640highlight default link racketNumber Number641highlight default link racketNumberError Error642highlight default link racketContainedNumberError Error643 644highlight default link racketQuote SpecialChar645highlight default link racketUnquote SpecialChar646 647highlight default link racketDelimiter Delimiter648highlight default link racketParen Delimiter649highlight default link racketConstant Constant650 651highlight default link racketLit Type652highlight default link racketRe Type653 654highlight default link racketComment Comment655highlight default link racketBlockComment Comment656highlight default link racketFormComment SpecialChar657highlight default link racketSharpBang Comment658highlight default link racketTodo Todo659highlight default link racketNote SpecialComment660highlight default link racketError Error661 662highlight default link racketExtSyntax Type663highlight default link racketExtFunc PreProc664 665let b:current_syntax = "racket"666 