326 lines
9.6 KiB
Text
326 lines
9.6 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.
|
|||
|
»
|
|||
|
«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:...»)))])
|