emacs.d/elpa/racket-mode-20200115.2148/racket/example/indent.rkt.faceup
2020-01-29 18:18:31 +01:00

325 lines
9.6 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

«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:...»)))])