327 lines
11 KiB
Text
327 lines
11 KiB
Text
«m:;; »«x:-*- racket-indent-sequence-depth: 100; racket-indent-curly-as-sequence: t; -*-
|
|
»
|
|
«m:;;; »«x:NOTE: After changing this file you will need to M-x faceup-write-file
|
|
»«m:;;; »«x:to regenerate the .faceup test comparison file.
|
|
»«m:;;;»«x:
|
|
»«m:;;; »«x:NOTE: You may need to disable certain features -- for example
|
|
»«m:;;; »«x:global-paren-face-mode -- during the M-x faceup-write-file.
|
|
»
|
|
«k:#lang» «v:racket»
|
|
|
|
(«k:require» xml)
|
|
(«k:provide» valid-bucket-name?)
|
|
|
|
«m:;; »«x:Various def* forms are font-locked:
|
|
»
|
|
(«k:define» («f:function» foo)
|
|
«:racket-selfeval-face:#t»)
|
|
|
|
(«k:define» ((«f:curried-function» x) y)
|
|
(«b:list» x y))
|
|
|
|
(«k:define» «v:a-var» «:racket-selfeval-face:10»)
|
|
|
|
(«b:define/contract» («f:f2» x)
|
|
(«b:any/c» . «b:->» . «b:any»)
|
|
«:racket-selfeval-face:#t»)
|
|
|
|
(«k:define-values» («v:1st-var 2nd-var») («b:values» «:racket-selfeval-face:1» «:racket-selfeval-face:2»))
|
|
|
|
(define-thing «v:foo») «m:;»«x:bug 276
|
|
»
|
|
«m:;; »«x:let: font-lock identifiers
|
|
»
|
|
(«k:let» ([«v:foo» «:racket-selfeval-face:10»]
|
|
[«v:bar» «:racket-selfeval-face:20»])
|
|
foo)
|
|
|
|
(«k:let» «f:loop» ([«v:x» «:racket-selfeval-face:10»])
|
|
(«k:unless» («b:zero?» x)
|
|
(loop («b:sub1» x))))
|
|
|
|
(«k:let*» ([«v:foo» «:racket-selfeval-face:10»]
|
|
[«v:bar» «:racket-selfeval-face:20»])
|
|
foo)
|
|
|
|
(«k:let-values» ([(«v:a» «v:b») («b:values» «:racket-selfeval-face:1» «:racket-selfeval-face:2»)])
|
|
(«b:values» a b))
|
|
|
|
(«k:let*-values» ([(«v:a» «v:b») («b:values» «:racket-selfeval-face:1» «:racket-selfeval-face:2»)])
|
|
(«b:values» a b))
|
|
|
|
(«k:letrec-values» ([(«v:a» «v:b») («b:values» «:racket-selfeval-face:1» «:racket-selfeval-face:2»)])
|
|
(«b:values» a b))
|
|
|
|
(«k:let-syntax» ([«v:foo» #«:racket-selfeval-face:'foo»])
|
|
foo)
|
|
|
|
(«k:letrec-syntax» ([«v:foo» #«:racket-selfeval-face:'foo»])
|
|
foo)
|
|
|
|
(«k:let-syntaxes» ([(«v:foo») #«:racket-selfeval-face:'foo»])
|
|
foo)
|
|
|
|
(«k:letrec-syntaxes» ([(«v:foo») #«:racket-selfeval-face:'foo»])
|
|
foo)
|
|
|
|
(«k:letrec-syntaxes+values» ([(«v:foo») #«:racket-selfeval-face:'foo»])
|
|
([(a b) («b:values» «:racket-selfeval-face:1» «:racket-selfeval-face:2»)])
|
|
foo)
|
|
|
|
«m:;; »«x:for/fold is indented correctly:
|
|
»(«k:for/fold» ([str «s:""»])
|
|
([ss '(«s:"a"» «s:"b"» «s:"c"»)])
|
|
(«b:string-append» str ss))
|
|
|
|
«m:;; »«x:Auto-converts word `lambda` to `λ`:
|
|
»(«k:lambda» (x) «:racket-selfeval-face:#t»)
|
|
|
|
«m:;; »«x:Or use M-C-y to insert to insert `λ` char.
|
|
»
|
|
«m:;; »«x:Smart indentation for quoted lists:
|
|
»'(«:racket-selfeval-face:1» «:racket-selfeval-face:2»
|
|
«:racket-selfeval-face:3» «:racket-selfeval-face:4»)
|
|
|
|
«m:;; »«x:Smart indentation for vector literals:
|
|
»#(«:racket-selfeval-face:1» «:racket-selfeval-face:2»
|
|
«:racket-selfeval-face:3» «:racket-selfeval-face:4»)
|
|
|
|
«m:;; »«x:Smart indentation for Rackjure dict literals:
|
|
»(«k:module» «f:x» «v:rackjure»
|
|
{«:racket-selfeval-face:'a» «:racket-selfeval-face:0»
|
|
«:racket-selfeval-face:'b» «:racket-selfeval-face:2»})
|
|
|
|
«m:;; »«x:Silly test submodule example.
|
|
»«m:;; »«x:Try using C-c C-f to Fold (hide) it, and C-c C-u to Unfold it.
|
|
»(«k:module+» «f:test»
|
|
(«k:require» rackunit)
|
|
(check-true «:racket-selfeval-face:#t»))
|
|
|
|
«m:;; »«x:Single line comment
|
|
»
|
|
«x:#|
|
|
|
|
Multi-line
|
|
comment
|
|
|
|
|#»
|
|
|
|
«m:;; »«x:Issue 362
|
|
»
|
|
«x:#|aaa() |#»
|
|
|
|
«x:#|(hello)|#»
|
|
|
|
«m:#;»«x:(sexpr comment)»
|
|
|
|
«m:;; »«x:Nested sexpr comments
|
|
»
|
|
(«b:list» «:racket-selfeval-face:2»
|
|
«m:#;»«x:2»)
|
|
|
|
(«b:list» «:racket-selfeval-face:1»
|
|
«m:#;»«x:4»
|
|
«m:#;»«x:(3)»)
|
|
|
|
(«k:let» («m:#;»«x:[x #;1]»
|
|
[«v:y» «:racket-selfeval-face:2»])
|
|
y)
|
|
|
|
«m:;; »«x:Issue 388
|
|
»«:racket-selfeval-face:1» «m:; »«x:#;
|
|
»«:racket-selfeval-face:2»
|
|
|
|
«m:;; »«x:Issue 408
|
|
»
|
|
«s:"#;"»whatever
|
|
«s:"#;"»(whatever)
|
|
«s:"#;"»
|
|
(whatever)
|
|
|
|
(«k:define» «v:x» «:racket-here-string-face:#<<FOO
|
|
asdfasdf
|
|
asdfasdf
|
|
asdfasdf
|
|
FOO
|
|
» )
|
|
|
|
#;(«k:define» «v:x» «:racket-here-string-face:#<<BAR
|
|
asdfasdf
|
|
asdfasdf
|
|
asdfasdf
|
|
BAR
|
|
» )
|
|
|
|
|identifier with spaces|
|
|
|
|
|;no comment|
|
|
|
|
| #|no comment|# |
|
|
|
|
(«k:define» («f:a-function» x «:racket-keyword-argument-face:#:keyword» [y «:racket-selfeval-face:0»])
|
|
(«k:and» («b:append» («b:car» '(«:racket-selfeval-face:1» «:racket-selfeval-face:2» «:racket-selfeval-face:3»))))
|
|
(«b:regexp-match?» «:racket-selfeval-face:#rx»«s:"foobar"» «s:"foobar"»)
|
|
(«b:regexp-match?» «:racket-selfeval-face:#px»«s:"foobar"» «s:"foobar"»)
|
|
(«k:define» «v:a» «:racket-selfeval-face:1»)
|
|
(«k:let» ([«v:a» «s:"foo"»]
|
|
[«v:b» «s:"bar"»])
|
|
(«b:displayln» b))
|
|
(«k:let*» ([«v:a» «s:"foo"»]
|
|
[«v:b» «s:"bar"»])
|
|
(«b:displayln» b))
|
|
(«k:let-values» ([(«v:a» «v:b») («b:values» «:racket-selfeval-face:1» «:racket-selfeval-face:2»)])
|
|
«:racket-selfeval-face:#t»)
|
|
(«k:for/list» ([x («k:in-list» («b:list» «:racket-selfeval-face:1» «:racket-selfeval-face:2» («b:list» «:racket-selfeval-face:3» «:racket-selfeval-face:4»)))])
|
|
(«k:cond» [(«b:pair?» x) («b:car» x)]
|
|
[«k:else» x])))
|
|
|
|
«m:;; »«x:Issue 261
|
|
»«s:"@|widget-id|"» @|foo|
|
|
|
|
«m:;; »«x:Issue 298
|
|
»(«k:define» «v:x» («k:begin» «s:"|"» '\|))
|
|
|
|
«m:;; »«x:Issue 376
|
|
»(«k:define» «v:||» (|list|))
|
|
|
|
(«k:define» («f:foo»)
|
|
(«k:let» ([«v:x» «:racket-selfeval-face:10»])
|
|
«:racket-selfeval-face:#t»)
|
|
|
|
(«k:let» ([«v:x» «:racket-selfeval-face:1»]
|
|
[«v:y» «:racket-selfeval-face:2»])
|
|
«:racket-selfeval-face:#t»)
|
|
|
|
(«k:define» «v:1/2-the-way» «:racket-selfeval-face:0»)
|
|
(«k:define» «v:less-than-1/2» «:racket-selfeval-face:0»)
|
|
|
|
«m:;; »«x:Self-eval examples
|
|
» («b:values»
|
|
1/2-the-way «m:;»«x:should NOT be self-eval
|
|
» less-than-1/2 «m:;»«x:should NOT be self-eval
|
|
» «:racket-selfeval-face:+inf.0»
|
|
«:racket-selfeval-face:-inf.0»
|
|
«:racket-selfeval-face:+nan.0»
|
|
«:racket-selfeval-face:#t»
|
|
«:racket-selfeval-face:#f»
|
|
«:racket-selfeval-face:1»
|
|
«:racket-selfeval-face:1.0»
|
|
«:racket-selfeval-face:1/2»
|
|
«:racket-selfeval-face:-1/2»
|
|
«:racket-selfeval-face:#b100»
|
|
«:racket-selfeval-face:#o123»
|
|
«:racket-selfeval-face:#d123»
|
|
«:racket-selfeval-face:#x7f7f»
|
|
«:racket-selfeval-face:'symbol»
|
|
«:racket-selfeval-face:'|symbol with spaces|»
|
|
«:racket-selfeval-face:'|;no comment|»
|
|
«:racket-selfeval-face:'| #|no comment|# |»
|
|
«:racket-selfeval-face:'symbol-with-no-alpha/numeric-chars»
|
|
«:racket-selfeval-face:#\c»
|
|
«:racket-selfeval-face:#\space»
|
|
«:racket-selfeval-face:#\newline»
|
|
|
|
«m:;; »«x:Literal number examples
|
|
»
|
|
«m:;; »«x:#b
|
|
» «:racket-selfeval-face:#b1.1»
|
|
«:racket-selfeval-face:#b-1.1»
|
|
«:racket-selfeval-face:#b1e1»
|
|
«:racket-selfeval-face:#b0/1»
|
|
«:racket-selfeval-face:#b1/1»
|
|
«:racket-selfeval-face:#b1e-1»
|
|
«:racket-selfeval-face:#b101»
|
|
|
|
«m:;; »«x:#d
|
|
» «:racket-selfeval-face:#d-1.23»
|
|
«:racket-selfeval-face:#d1.123»
|
|
«:racket-selfeval-face:#d1e3»
|
|
«:racket-selfeval-face:#d1e-22»
|
|
«:racket-selfeval-face:#d1/2»
|
|
«:racket-selfeval-face:#d-1/2»
|
|
«:racket-selfeval-face:#d1»
|
|
«:racket-selfeval-face:#d-1»
|
|
|
|
«m:;; »«x:No # reader prefix -- same as #d
|
|
» «:racket-selfeval-face:-1.23»
|
|
«:racket-selfeval-face:1.123»
|
|
«:racket-selfeval-face:1e3»
|
|
«:racket-selfeval-face:1e-22»
|
|
«:racket-selfeval-face:1/2»
|
|
«:racket-selfeval-face:-1/2»
|
|
«:racket-selfeval-face:1»
|
|
«:racket-selfeval-face:-1»
|
|
|
|
«m:;; »«x:#e
|
|
» «:racket-selfeval-face:#e-1.23»
|
|
«:racket-selfeval-face:#e1.123»
|
|
«:racket-selfeval-face:#e1e3»
|
|
«:racket-selfeval-face:#e1e-22»
|
|
«:racket-selfeval-face:#e1»
|
|
«:racket-selfeval-face:#e-1»
|
|
«:racket-selfeval-face:#e1/2»
|
|
«:racket-selfeval-face:#e-1/2»
|
|
|
|
«m:;; »«x:#i always float
|
|
» «:racket-selfeval-face:#i-1.23»
|
|
«:racket-selfeval-face:#i1.123»
|
|
«:racket-selfeval-face:#i1e3»
|
|
«:racket-selfeval-face:#i1e-22»
|
|
«:racket-selfeval-face:#i1/2»
|
|
«:racket-selfeval-face:#i-1/2»
|
|
«:racket-selfeval-face:#i1»
|
|
«:racket-selfeval-face:#i-1»
|
|
|
|
«m:;; »«x:#o
|
|
» «:racket-selfeval-face:#o777.777»
|
|
«:racket-selfeval-face:#o-777.777»
|
|
«:racket-selfeval-face:#o777e777»
|
|
«:racket-selfeval-face:#o777e-777»
|
|
«:racket-selfeval-face:#o3/7»
|
|
«:racket-selfeval-face:#o-3/7»
|
|
«:racket-selfeval-face:#o777»
|
|
«:racket-selfeval-face:#o-777»
|
|
|
|
«m:;; »«x:#x
|
|
» «:racket-selfeval-face:#x-f.f»
|
|
«:racket-selfeval-face:#xf.f»
|
|
«:racket-selfeval-face:#x-f»
|
|
«:racket-selfeval-face:#xf»
|
|
))
|
|
|
|
(«b:define/contract» («f:valid-bucket-name?» s «:racket-keyword-argument-face:#:keyword» [dns-compliant? «:racket-selfeval-face:#t»])
|
|
((«b:string?») («:racket-keyword-argument-face:#:keyword» «b:boolean?») . «b:->*» . «b:boolean?»)
|
|
(«k:cond»
|
|
[dns-compliant?
|
|
(«k:and» («b:<=» «:racket-selfeval-face:3» («b:string-length» s)) («b:<=» («b:string-length» s) «:racket-selfeval-face:63»)
|
|
(«b:not» («b:regexp-match» «:racket-selfeval-face:#px»«s:"\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"» s))
|
|
(«k:for/and» ([s («b:regexp-split» «:racket-selfeval-face:#rx»«s:"\\."» s)])
|
|
(«k:define» («f:valid-first-or-last?» c)
|
|
(«k:or» («b:char-lower-case?» («b:string-ref» s «:racket-selfeval-face:0»))
|
|
(«b:char-numeric?» («b:string-ref» s «:racket-selfeval-face:0»))))
|
|
(«k:define» («f:valid-mid?» c)
|
|
(«k:or» (valid-first-or-last? c)
|
|
(«b:equal?» c «:racket-selfeval-face:#\-»)))
|
|
(«k:define» «v:len» («b:string-length» s))
|
|
(«k:and» («b:<» «:racket-selfeval-face:0» len)
|
|
(valid-first-or-last? («b:string-ref» s «:racket-selfeval-face:0»))
|
|
(valid-first-or-last? («b:string-ref» s («b:sub1» len)))
|
|
(«k:or» («b:<=» len «:racket-selfeval-face:2»)
|
|
(«k:for/and» ([c («b:substring» s «:racket-selfeval-face:1» («b:sub1» len))])
|
|
(valid-mid? c))))))]
|
|
[«k:else»
|
|
(«k:and» («b:<=» («b:string-length» s) «:racket-selfeval-face:255»)
|
|
(«k:for/and» ([c s])
|
|
(«k:or» («b:char-numeric?» c)
|
|
(«b:char-lower-case?» c)
|
|
(«b:char-upper-case?» c)
|
|
(«b:equal?» c «:racket-selfeval-face:#\.»)
|
|
(«b:equal?» c «:racket-selfeval-face:#\-»)
|
|
(«b:equal?» c «:racket-selfeval-face:#\_»))))]))
|
|
|
|
(«b:displayln» «s:"I'm running!"»)
|
|
|
|
«m:;; »«x:Issue 366
|
|
»#«s:"1"»
|
|
#«s:"22"»
|
|
#«s:"333"»
|