emacs.d/elpa/racket-mode-20191123.1604/racket/example/indent.rkt.faceup

326 lines
9.6 KiB
Text
Raw Normal View History

2019-11-23 09:10:03 +01:00
«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.
»
«m:;;; »«x:Quoted list
»
'(a b
(a b
c))
'((«:racket-selfeval-face:1») «:racket-selfeval-face:2» «:racket-selfeval-face:3»
(«:racket-selfeval-face:3»)
«:racket-selfeval-face:4» «:racket-selfeval-face:5»)
«m:;;; »«x:Quasiquoted list (align with head) and unquote or unquote-splicing
»«m:;;; »«x:(use normal indent rules for the form).
»
`(Part ()
(PartNumber ()
,part)
(ETag ()
,etag))
`((,(x)
,y))
`(Delete
,@(«k:for/list» ([p («k:in-list» paths)])
`(«t:Object» ()
(Key () ,p))))
«m:;;; »«x:Syntax
»
#'(«k:for/list» ([x xs])
x)
#`(«k:for/list» ([x xs])
x)
#'(«k:#%app» («k:#%app» «b:hasheq» («k:quote» a) («k:quote» «:racket-selfeval-face:42»))
(«k:quote» a))
(«k:#%app» («k:#%app» «b:hasheq» («k:quote» a) («k:quote» «:racket-selfeval-face:42»))
(«k:quote» a))
#'(foo («k:#%app» «b:hasheq» («k:quote» a) («k:quote» «:racket-selfeval-face:42»))
(«k:quote» a))
«m:;;; »«x:Rackjure style dictionary (when racket-indent-curly-as-sequence is t).
»
{a b
c d}
{a b
c d
b '(a x
s (x y
x v))}
«m:;;; »«x:Vector
»
#(a b
c d)
«m:;;; »«x:List with a keyword as first member (e.g. in many contracts)
»
(«:racket-keyword-argument-face:#:x» y
«:racket-keyword-argument-face:#:y» x)
«m:;;; »«x:Normal function application.
»
(foobar x
y
z)
(foobar
x
y
z)
(«b:dict-set» a
b
c)
(«b:dict-set»
a
b
c)
(«b:call-with-values» («k:lambda» () («b:values» «:racket-selfeval-face:1» «:racket-selfeval-face:2»))
«b:+»)
(«b:call-with-values»
(«k:lambda» () («b:values» «:racket-selfeval-face:1» «:racket-selfeval-face:2»))
«b:+»)
«m:;;; »«x:Forms with special indentation
»
(«k:let» ([«v:x» «:racket-selfeval-face:0»])
x)
«m:;; »«x:indent 2
»
(«k:syntax-case» stx ()
[(«k:_» x) #«:racket-selfeval-face:'#f»]
[(«k:_» x y) #«:racket-selfeval-face:'#t»])
«m:;; »«x:indent 3
»
(«k:syntax-case*» stx () x
[(«k:_» x) #«:racket-selfeval-face:'#f»]
[(«k:_» x y) #«:racket-selfeval-face:'#t»])
(«k:syntax-case*»
stx
(«k:#%module-begin»
«k:module»
«k:define-values»
«k:define-syntaxes»
«k:define»
«b:define/contract»
«k:define-syntax»
«k:struct»
«k:define-struct»)
x
[(«k:_» x) #«:racket-selfeval-face:'#f»]
[(«k:_» x y) #«:racket-selfeval-face:'#t»])
«m:;; »«x:begin and cond have 0 style
»(«k:begin»
«:racket-selfeval-face:0»
«:racket-selfeval-face:0»)
(«k:begin» «:racket-selfeval-face:0»
«:racket-selfeval-face:0»)
(«k:cond» [«:racket-selfeval-face:1» «:racket-selfeval-face:2»]
[«:racket-selfeval-face:3» «:racket-selfeval-face:4»])
(«k:cond»
[«:racket-selfeval-face:1» «:racket-selfeval-face:2»]
[«:racket-selfeval-face:3» «:racket-selfeval-face:4»])
(«k:if» a
x
x)
«m:;; »«x:begin*
»
(begin-for-foo «:racket-selfeval-face:0»
«:racket-selfeval-face:0»)
(begin-for-foo
«:racket-selfeval-face:0»
«:racket-selfeval-face:0»)
(«k:with-handlers» ([x y])
a b c)
«m:;; »«x:def, with-, call-with- and other 'defun style
»
(«k:define» («f:x») x x
x)
(«k:struct» x x
())
(«b:match-define» («b:list» x y)
(«b:list» «:racket-selfeval-face:1» «:racket-selfeval-face:2»))
(«k:with-output-to-file» path «:racket-keyword-argument-face:#:mode» «:racket-selfeval-face:'text» «:racket-keyword-argument-face:#:exists» «:racket-selfeval-face:'replace»
(«k:λ» () («b:display» «s:"Hello, world."»)))
(«k:call-with-output-file» path «:racket-keyword-argument-face:#:mode» «:racket-selfeval-face:'text» «:racket-keyword-argument-face:#:exists» «:racket-selfeval-face:'replace»
(«k:λ» (out) («b:display» «s:"Hello, world."» out)))
«m:;;; »«x:Special forms: When the first non-distinguished form is on the
»«m:;;; »«x:same line as distinguished forms, disregard it for indent.
»
«m:;; »«x:module has indent 2
»
(«k:module» «:racket-selfeval-face:1»
«:racket-selfeval-face:2»
«:racket-selfeval-face:3»
«:racket-selfeval-face:4»
«:racket-selfeval-face:5»)
«m:;; »«x:Normal case
»(«k:module» «:racket-selfeval-face:1» «:racket-selfeval-face:2»
«:racket-selfeval-face:3»
«:racket-selfeval-face:4»
«:racket-selfeval-face:5»)
«m:;; »«x:Weird case -- but this is how scheme-mode indents it.
»(«k:module» «:racket-selfeval-face:1» «:racket-selfeval-face:2» «:racket-selfeval-face:3»
«:racket-selfeval-face:4»
«:racket-selfeval-face:5»)
«m:;; »«x:Weird case -- but this is how scheme-mode indents it.
»(«k:module» «:racket-selfeval-face:1» «:racket-selfeval-face:2» «:racket-selfeval-face:3» «:racket-selfeval-face:4»
«:racket-selfeval-face:5»)
«m:;;; »«x:for/fold
»
«m:;; »«x:for/fold untyped, accum on same line
»(«k:for/fold» ([a «:racket-selfeval-face:0»]
[b «:racket-selfeval-face:0»])
([x «:racket-selfeval-face:0»]
[y «:racket-selfeval-face:0»])
«:racket-selfeval-face:#t»)
«m:;; »«x:for/fold untyped, accum on different line
»(«k:for/fold»
([a «:racket-selfeval-face:0»]
[b «:racket-selfeval-face:0»])
([x «:racket-selfeval-face:0»]
[y «:racket-selfeval-face:0»])
«:racket-selfeval-face:#t»)
«m:;; »«x:for/fold typed, type on same line
»(«k:for/fold» «b::» T
([a «:racket-selfeval-face:0»]
[b «:racket-selfeval-face:0»])
([x «:racket-selfeval-face:0»]
[y «:racket-selfeval-face:0»])
«:racket-selfeval-face:#t»)
«m:;; »«x:for/fold typed, type on different line
»(«k:for/fold»
«b::» T
([a «:racket-selfeval-face:0»]
[b «:racket-selfeval-face:0»])
([x «:racket-selfeval-face:0»]
[y «:racket-selfeval-face:0»])
«:racket-selfeval-face:#t»)
«m:;;; »«x:Bug #50
»
'((x
y) A
z
(x
y) A
z)
(«b:match» args
[(«b:list» x) (x
y)] «k:...»
[(«b:list» x) (x y)] «k:...»
[(«b:list» x) (x y)] «k:...»)
(«k:define-syntax» («f:fstruct» stx)
(«b:syntax-parse» stx
[(«k:_» id:id (field:id «k:...»))
(«k:with-syntax» ([(accessor «k:...»)
(«k:for/list» ([fld («k:in-list» («b:syntax->list» #'(«b:field» «k:...»)))])
(«b:format-id» stx «s:"~a-~a"» («b:syntax->datum» #«:racket-selfeval-face:'id») fld))])
#'(serializable-struct
id («b:field» «k:...») «:racket-keyword-argument-face:#:transparent»
«:racket-keyword-argument-face:#:property» «b:prop:procedure»
(«k:lambda» (self . args)
(«b:match» args
[(«b:list» «:racket-selfeval-face:'field») (accessor self)] «k:...»
[(«b:list» («b:list» «:racket-selfeval-face:'field»)) (accessor self)] «k:...»
[(«b:list» (list-rest «:racket-selfeval-face:'field» fields)) ((accessor self) fields)] «k:...»
[(list-rest «:racket-selfeval-face:'field» f args)
(«k:struct-copy» id self
[«b:field» («k:apply» f (accessor self) args)])] «k:...»
[(list-rest («b:list» «:racket-selfeval-face:'field») f args) «m:;»«x:<-- THIS SEXPR IS INDENTED TOO FAR
» («k:struct-copy» id self
[«b:field» («k:apply» f (accessor self) args)])] «k:...»
[(list-rest (list-rest «:racket-selfeval-face:'field» fields) args)
(«k:struct-copy» id self
[«b:field» («k:apply» (accessor self) fields args)])] «k:...»))))]))
«m:;; »«x:Bug #123
»
#hash([a . (#hash()
«:racket-selfeval-face:0»)]
[b . (#hasheq()
«:racket-selfeval-face:0»)]
[c . (#fx(«:racket-selfeval-face:0» «:racket-selfeval-face:1» «:racket-selfeval-face:2»)
«:racket-selfeval-face:0»)]
[d . (#fx3(«:racket-selfeval-face:0» «:racket-selfeval-face:1» «:racket-selfeval-face:2»)
«:racket-selfeval-face:0»)]
[e . (#fl(«:racket-selfeval-face:0.0» «:racket-selfeval-face:1.0» «:racket-selfeval-face:2.0»)
«:racket-selfeval-face:0»)]
[f . (#fl3(«:racket-selfeval-face:0.0» «:racket-selfeval-face:1.0» «:racket-selfeval-face:2.0»)
«:racket-selfeval-face:0»)]
[g . (#s(foo x)
«:racket-selfeval-face:0»)]
[h . (#3(«:racket-selfeval-face:0» «:racket-selfeval-face:1» «:racket-selfeval-face:2»)
«:racket-selfeval-face:0»)])
«m:;; »«x:Bug #136
»
«m:#;»«x:(list 1
#;2
3)»
(«b:list» «:racket-selfeval-face:1»
«m:#;»«x:(list 1
(let ([x 2]
#;[y 3])
x)
3)»
«:racket-selfeval-face:2»
«:racket-selfeval-face:3»)
«m:;; »«x:Bug #243
»(«k:cond» [x y
z]
[(«b:=» a x) y
z])
«m:;; »«x:Bug #262
»(define-metafunction «v:λL»
«b::» (x «k:...») «k:...» «b:->» (x «k:...»)
[( any_ls «k:...»)
,(«k:apply» «b:append» (term (any_ls «k:...»)))])