From 11bf0ac01c3d656965fb2c3396692ca60fa45961 Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Wed, 7 May 2025 00:17:41 +0000 Subject: [PATCH 01/13] Fix 1 occurrence of `define-lambda-to-define` The `define` form supports a shorthand for defining functions. --- scribble-lib/scribble/run.rkt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scribble-lib/scribble/run.rkt b/scribble-lib/scribble/run.rkt index 22eb7aeaa2..f49c9058d6 100644 --- a/scribble-lib/scribble/run.rkt +++ b/scribble-lib/scribble/run.rkt @@ -12,8 +12,8 @@ (module test racket/base) -(define multi-html:render-mixin - (lambda (%) (html:render-multi-mixin (html:render-mixin %)))) +(define (multi-html:render-mixin %) + (html:render-multi-mixin (html:render-mixin %))) (define current-render-mixin (make-parameter html:render-mixin)) (define current-html (make-parameter #t)) From db35126113e37b3477900df1d71db554da093daa Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Wed, 7 May 2025 00:17:41 +0000 Subject: [PATCH 02/13] Fix 4 occurrences of `let-to-define` Internal definitions are recommended instead of `let` expressions, to reduce nesting. --- scribble-lib/scribble/decode.rkt | 37 ++++++++++------------- scribble-lib/scribble/run.rkt | 23 +++++++------- scribble-test/tests/scribble/markdown.rkt | 16 +++++----- 3 files changed, 36 insertions(+), 40 deletions(-) diff --git a/scribble-lib/scribble/decode.rkt b/scribble-lib/scribble/decode.rkt index fa4ccd455d..86b4fabd95 100644 --- a/scribble-lib/scribble/decode.rkt +++ b/scribble-lib/scribble/decode.rkt @@ -359,24 +359,19 @@ (if (null? para-accum) null (list (make-paragraph plain (skip-whitespace (apply append (reverse para-accum))))))) - (let ([r (let loop ([l (skip-whitespace l)] - [para-accum null]) - (cond - [(null? l) - (finish-accum para-accum)] - [else - (let ([s (car l)]) - (cond - [(block? s) (append - (finish-accum para-accum) - (cons s (loop (skip-whitespace (cdr l)) null)))] - [(string? s) (loop (cdr l) - (cons (decode-string s) para-accum))] - [else (loop (cdr l) - (cons (list (car l)) para-accum))]))]))]) - (cond - [(null? r) - (make-paragraph plain null)] - [(null? (cdr r)) - (car r)] - [(make-compound-paragraph plain r)]))) + (define r + (let loop ([l (skip-whitespace l)] + [para-accum null]) + (cond + [(null? l) (finish-accum para-accum)] + [else + (let ([s (car l)]) + (cond + [(block? s) + (append (finish-accum para-accum) (cons s (loop (skip-whitespace (cdr l)) null)))] + [(string? s) (loop (cdr l) (cons (decode-string s) para-accum))] + [else (loop (cdr l) (cons (list (car l)) para-accum))]))]))) + (cond + [(null? r) (make-paragraph plain null)] + [(null? (cdr r)) (car r)] + [(make-compound-paragraph plain r)])) diff --git a/scribble-lib/scribble/run.rkt b/scribble-lib/scribble/run.rkt index f49c9058d6..200d1d5020 100644 --- a/scribble-lib/scribble/run.rkt +++ b/scribble-lib/scribble/run.rkt @@ -37,10 +37,9 @@ (define current-image-prefs (make-parameter null)) ; reverse order (define (read-one str) - (let ([i (open-input-string str)]) - (with-handlers ([exn:fail:read? (lambda (x) #f)]) - (let ([v (read i)]) - (and (eof-object? (read i)) v))))) + (define i (open-input-string str)) + (with-handlers ([exn:fail:read? (lambda (x) #f)]) + (let ([v (read i)]) (and (eof-object? (read i)) v)))) (define (run) (define doc-binding 'doc) @@ -212,13 +211,15 @@ #:quiet? (current-quiet) #:info-in-files (reverse (current-info-input-files)) #:xrefs (for/list ([mod+id (in-list (reverse (current-xref-input-modules)))]) - (let* ([get-xref (dynamic-require (car mod+id) (cdr mod+id))] - [xr (get-xref)]) - (unless (xref? xr) - (raise-user-error - 'scribble "result from `~s' of `~s' is not an xref: ~e" - (cdr mod+id) (car mod+id) xr)) - xr)) + (define get-xref (dynamic-require (car mod+id) (cdr mod+id))) + (define xr (get-xref)) + (unless (xref? xr) + (raise-user-error 'scribble + "result from `~s' of `~s' is not an xref: ~e" + (cdr mod+id) + (car mod+id) + xr)) + xr) #:info-out-file (current-info-output-file))) (run) diff --git a/scribble-test/tests/scribble/markdown.rkt b/scribble-test/tests/scribble/markdown.rkt index 8cc7dd7033..20833e4b22 100644 --- a/scribble-test/tests/scribble/markdown.rkt +++ b/scribble-test/tests/scribble/markdown.rkt @@ -10,14 +10,14 @@ "scribble-docs-tests")) (define (build-markdown-doc src-file dest-file) - (let* ([renderer (new (markdown:render-mixin render%) [dest-dir work-dir])] - [docs (list (dynamic-require src-file 'doc))] - [fns (list (build-path work-dir dest-file))] - [fp (send renderer traverse docs fns)] - [info (send renderer collect docs fns fp)] - [r-info (send renderer resolve docs fns info)]) - (send renderer render docs fns r-info) - (send renderer get-undefined r-info))) + (define renderer (new (markdown:render-mixin render%) [dest-dir work-dir])) + (define docs (list (dynamic-require src-file 'doc))) + (define fns (list (build-path work-dir dest-file))) + (define fp (send renderer traverse docs fns)) + (define info (send renderer collect docs fns fp)) + (define r-info (send renderer resolve docs fns info)) + (send renderer render docs fns r-info) + (send renderer get-undefined r-info)) (provide markdown-tests) (module+ main (markdown-tests)) From 529ee739cb8d7eeb00b89ab41700c200307e1e19 Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Wed, 7 May 2025 00:17:41 +0000 Subject: [PATCH 03/13] Fix 2 occurrences of `map-to-for` This `map` operation can be replaced with a `for/list` loop. --- scribble-lib/scribble/run.rkt | 35 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/scribble-lib/scribble/run.rkt b/scribble-lib/scribble/run.rkt index 200d1d5020..a68fe07da9 100644 --- a/scribble-lib/scribble/run.rkt +++ b/scribble-lib/scribble/run.rkt @@ -170,21 +170,19 @@ (make-compilation-manager-load/use-compiled-handler))]) (parameterize ([current-command-line-arguments (list->vector (reverse (doc-command-line-arguments)))]) - (build-docs (map (lambda (file) - (define (go) - (let ([mp (if (current-lib-mode) - `(lib ,file) - `(file ,file))]) - ;; Try `doc' submodule, first: - (if (module-declared? `(submod ,mp ,doc-binding) #t) - (dynamic-require `(submod ,mp ,doc-binding) - doc-binding) - (dynamic-require mp doc-binding)))) - (if maker - (parameterize ([current-load/use-compiled maker]) - (go)) - (go))) - files) + (build-docs (for/list ([file (in-list files)]) + (define (go) + (let ([mp (if (current-lib-mode) + `(lib ,file) + `(file ,file))]) + ;; Try `doc' submodule, first: + (if (module-declared? `(submod ,mp ,doc-binding) #t) + (dynamic-require `(submod ,mp ,doc-binding) doc-binding) + (dynamic-require mp doc-binding)))) + (if maker + (parameterize ([current-load/use-compiled maker]) + (go)) + (go))) files))))) (define (build-docs docs files) @@ -192,10 +190,9 @@ ((length files) . > . 1)) (raise-user-error 'scribble "cannot supply a destination name with multiple inputs")) (render docs - (map (lambda (fn) - (let-values ([(base name dir?) (split-path fn)]) - (or (current-dest-name) name))) - files) + (for/list ([fn (in-list files)]) + (define-values (base name dir?) (split-path fn)) + (or (current-dest-name) name)) #:dest-dir (current-dest-directory) #:render-mixin (current-render-mixin) #:image-preferences (reverse (current-image-prefs)) From ab634cad461edf5f24552b6f575182b37a59aae2 Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Wed, 7 May 2025 00:17:41 +0000 Subject: [PATCH 04/13] Fix 2 occurrences of `if-begin-to-cond` Using `cond` instead of `if` here makes `begin` unnecessary --- scribble-text-lib/scribble/text/output.rkt | 11 ++++++----- scribble-text-lib/scribble/text/syntax-utils.rkt | 12 ++++++------ 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/scribble-text-lib/scribble/text/output.rkt b/scribble-text-lib/scribble/text/output.rkt index 027034b023..65bd3a244c 100644 --- a/scribble-text-lib/scribble/text/output.rkt +++ b/scribble-text-lib/scribble/text/output.rkt @@ -112,11 +112,12 @@ (cond [(pair? nls) (define nl (car nls)) - (if (regexp-match? #rx"^ *$" x start (car nl)) - (newline p) ; only spaces before the end of the line - (begin - (output-pfx col pfx lpfx) - (write x p start (cdr nl)))) + (cond + [(regexp-match? #rx"^ *$" x start (car nl)) + (newline p)] ; only spaces before the end of the line + [else + (output-pfx col pfx lpfx) + (write x p start (cdr nl))]) (loop (cdr nl) (cdr nls) 0 0)] ;; last substring from here (always set lpfx state when done) [(start . = . len) (set-mcdr! pfxs lpfx)] diff --git a/scribble-text-lib/scribble/text/syntax-utils.rkt b/scribble-text-lib/scribble/text/syntax-utils.rkt index 0577c13783..5778b5c5f8 100644 --- a/scribble-text-lib/scribble/text/syntax-utils.rkt +++ b/scribble-text-lib/scribble/text/syntax-utils.rkt @@ -156,12 +156,12 @@ (values (reverse ds) (reverse es) exprs))] [(define-values (id ...) rhs) (andmap identifier? (syntax->list #'(id ...))) - (if (null? es) - (begin - (syntax-local-bind-syntaxes (syntax->list #'(id ...)) #f (car ctx)) - (loop (cdr exprs) (cons (rebuild-bindings) ds) es)) - ;; same note here - (values (reverse ds) (reverse es) exprs))] + (cond + [(null? es) + (syntax-local-bind-syntaxes (syntax->list #'(id ...)) #f (car ctx)) + (loop (cdr exprs) (cons (rebuild-bindings) ds) es)] + ;; same note here + [else (values (reverse ds) (reverse es) exprs)])] [_ (loop (cdr exprs) ds (cons expr* es))])]))) (define-syntax (begin/collect* stx) ; helper, has a boolean flag first (define-values [exprs always-list?] From cf0884993438fb5863dc34a36bcdef9f0e0548fc Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Wed, 7 May 2025 00:17:41 +0000 Subject: [PATCH 05/13] Fix 1 occurrence of `or-hash-ref-set!-to-hash-ref!` This expression can be replaced with a simpler, equivalent `hash-ref!` expression. --- scribble-text-lib/scribble/text/output.rkt | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/scribble-text-lib/scribble/text/output.rkt b/scribble-text-lib/scribble/text/output.rkt index 65bd3a244c..d2480f4034 100644 --- a/scribble-text-lib/scribble/text/output.rkt +++ b/scribble-text-lib/scribble/text/output.rkt @@ -280,10 +280,7 @@ [(eq? p (car last)) (cdr last)] [else (define s - (or (hash-ref t p #f) - (let ([s (mcons 0 0)]) - (hash-set! t p s) - s))) + (hash-ref! t p (λ () (mcons 0 0)))) (set! last (cons p s)) s])))) From dfe9d125a06e546709fc8c2c7e70aed0814574d7 Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Wed, 7 May 2025 00:17:41 +0000 Subject: [PATCH 06/13] Fix 1 occurrence of `inline-unnecessary-begin` This `begin` form can be flattened into the surrounding definition context. --- scribble-test/tests/scribble/text-lang.rkt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scribble-test/tests/scribble/text-lang.rkt b/scribble-test/tests/scribble/text-lang.rkt index 364821b279..1f886cb469 100644 --- a/scribble-test/tests/scribble/text-lang.rkt +++ b/scribble-test/tests/scribble/text-lang.rkt @@ -67,4 +67,4 @@ (call-with-trusted-sandbox-configuration (lambda () (for ([t (in-list (doc:tests))]) - (begin (apply text-test t)))))) + (apply text-test t))))) From b8f810929418f8640f08c52b50dd2b948d89237e Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Wed, 7 May 2025 00:17:41 +0000 Subject: [PATCH 07/13] Fix 2 occurrences of `if-let-to-cond` `cond` with internal definitions is preferred over `if` with `let`, to reduce nesting --- scribble-lib/scribble/decode.rkt | 41 +++++++++++-------- .../scribble/text/syntax-utils.rkt | 19 +++++---- 2 files changed, 34 insertions(+), 26 deletions(-) diff --git a/scribble-lib/scribble/decode.rkt b/scribble-lib/scribble/decode.rkt index 86b4fabd95..262eb2d493 100644 --- a/scribble-lib/scribble/decode.rkt +++ b/scribble-lib/scribble/decode.rkt @@ -292,23 +292,30 @@ (loop (cons (car l) (append ((if (splice? (cadr l)) splice-run values) (cadr l)) (cddr l))) next? keys colls accum title tag-prefix tags vers style index-desc)] [(line-break? (car l)) - (if next? - (loop (cdr l) #t keys colls accum title tag-prefix tags vers style index-desc) - (let ([m (match-newline-whitespace (cdr l))]) - (if m - (let ([part (loop m #t keys colls null title tag-prefix tags vers - style index-desc)]) - (make-part - (part-tag-prefix part) - (part-tags part) - (part-title-content part) - (part-style part) - (part-to-collect part) - (append (decode-accum-para accum) - (part-blocks part)) - (part-parts part))) - (loop (cdr l) #f keys colls (cons (car l) accum) title tag-prefix - tags vers style index-desc))))] + (cond + [next? (loop (cdr l) #t keys colls accum title tag-prefix tags vers style index-desc)] + [else + (define m (match-newline-whitespace (cdr l))) + (if m + (let ([part (loop m #t keys colls null title tag-prefix tags vers style index-desc)]) + (make-part (part-tag-prefix part) + (part-tags part) + (part-title-content part) + (part-style part) + (part-to-collect part) + (append (decode-accum-para accum) (part-blocks part)) + (part-parts part))) + (loop (cdr l) + #f + keys + colls + (cons (car l) accum) + title + tag-prefix + tags + vers + style + index-desc))])] [else (loop (cdr l) #f keys colls (cons (car l) accum) title tag-prefix tags vers style index-desc)]))) diff --git a/scribble-text-lib/scribble/text/syntax-utils.rkt b/scribble-text-lib/scribble/text/syntax-utils.rkt index 5778b5c5f8..955ff8c1f7 100644 --- a/scribble-text-lib/scribble/text/syntax-utils.rkt +++ b/scribble-text-lib/scribble/text/syntax-utils.rkt @@ -145,15 +145,16 @@ (loop (append (syntax->list #'(x ...)) (cdr exprs)) ds es)] [(define-syntaxes (id ...) rhs) (andmap identifier? (syntax->list #'(id ...))) - (if (null? es) - (let ([ids (syntax->list #'(id ...))]) - (syntax-local-bind-syntaxes ids - (local-transformer-expand #'rhs 'expression '()) - (car ctx)) - (loop (cdr exprs) (cons (rebuild-bindings) ds) es)) - ;; return the unexpanded expr, to be re-expanded later, in the - ;; right contexts - (values (reverse ds) (reverse es) exprs))] + (cond + [(null? es) + (define ids (syntax->list #'(id ...))) + (syntax-local-bind-syntaxes ids + (local-transformer-expand #'rhs 'expression '()) + (car ctx)) + (loop (cdr exprs) (cons (rebuild-bindings) ds) es)] + ;; return the unexpanded expr, to be re-expanded later, in the + ;; right contexts + [else (values (reverse ds) (reverse es) exprs)])] [(define-values (id ...) rhs) (andmap identifier? (syntax->list #'(id ...))) (cond From 46841e737c26a45024b051dc00843a0e17a7f6cc Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Wed, 7 May 2025 00:17:41 +0000 Subject: [PATCH 08/13] Fix 1 occurrence of `quasiquote-to-append` This quasiquotation is equialent to calling `append`. --- scribble-lib/scribble/lp/lang/common.rkt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scribble-lib/scribble/lp/lang/common.rkt b/scribble-lib/scribble/lp/lang/common.rkt index 266e5c3589..396655a97b 100644 --- a/scribble-lib/scribble/lp/lang/common.rkt +++ b/scribble-lib/scribble/lp/lang/common.rkt @@ -24,7 +24,7 @@ (cons id (mapping-get chunk-groups id))) (free-identifier-mapping-put! chunks id - `(,@(mapping-get chunks id) ,@exprs)))) + (append (mapping-get chunks id) exprs)))) (define-syntax (tangle stx) (define chunk-mentions '()) From b950ede06c111aa0e0dc490d629ec1161cf75cbf Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Wed, 7 May 2025 00:17:41 +0000 Subject: [PATCH 09/13] Fix 1 occurrence of `always-throwing-if-to-when` Using `when` and `unless` is simpler than a conditional with an always-throwing branch. --- scribble-test/tests/scribble/reader.rkt | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/scribble-test/tests/scribble/reader.rkt b/scribble-test/tests/scribble/reader.rkt index 1fa756db15..ed0627b692 100644 --- a/scribble-test/tests/scribble/reader.rkt +++ b/scribble-test/tests/scribble/reader.rkt @@ -947,14 +947,14 @@ END-OF-TESTS (define m (or (regexp-match #px"^(.*)\n\\s*(-\\S+->)\\s*\n(.*)$" t) (regexp-match #px"^(.*\\S)\\s+(-\\S+->)\\s+(\\S.*)$" t))) - (if (not (and m (= 4 (length m)))) - (error 'bad-test "~a" t) - (let-values ([(x y) ((string->tester (caddr m)) (cadr m) (cadddr m))]) - (test #:failure-message (format "bad result in\n ~a\n results:\n ~s != ~s" - (regexp-replace* #rx"\n" t "\n ") - x - y) - (matching? x y))))))) + (unless (and m (= 4 (length m))) + (error 'bad-test "~a" t)) + (let-values ([(x y) ((string->tester (caddr m)) (cadr m) (cadddr m))]) + (test #:failure-message (format "bad result in\n ~a\n results:\n ~s != ~s" + (regexp-replace* #rx"\n" t "\n ") + x + y) + (matching? x y)))))) ;; Check static versus dynamic readtable for command (dynamic when "c" in the ;; name) and datum (dynamic when "d" in the name) parts: From 4fb14745bbc28e16600f8d66572ffb3b4239a3ac Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Wed, 7 May 2025 00:17:41 +0000 Subject: [PATCH 10/13] Fix 2 occurrences of `provide/contract-to-contract-out` The `provide/contract` form is a legacy form made obsolete by `contract-out`. --- scribble-lib/scribble/decode.rkt | 40 ++++++++++++++------------------ 1 file changed, 17 insertions(+), 23 deletions(-) diff --git a/scribble-lib/scribble/decode.rkt b/scribble-lib/scribble/decode.rkt index 262eb2d493..85d0c4e0de 100644 --- a/scribble-lib/scribble/decode.rkt +++ b/scribble-lib/scribble/decode.rkt @@ -64,27 +64,22 @@ pre-flow? pre-part?) -(provide/contract - [decode (-> (listof pre-part?) - part?)] - [decode-part (-> (listof pre-part?) - (listof string?) - (or/c #f content?) - exact-nonnegative-integer? - part?)] - [decode-flow (-> (listof pre-flow?) - (listof block?))] - [decode-paragraph (-> (listof pre-content?) - paragraph?)] - [decode-compound-paragraph (-> (listof pre-flow?) - block?)] - [decode-content (-> (listof pre-content?) - content?)] - [rename decode-content decode-elements - (-> (listof pre-content?) - content?)] - [decode-string (-> string? content?)] - [clean-up-index-string (-> string? string?)]) +(provide (contract-out [decode (-> (listof pre-part?) part?)] + [decode-part + (-> (listof pre-part?) + (listof string?) + (or/c #f content?) + exact-nonnegative-integer? + part?)] + [decode-flow (-> (listof pre-flow?) (listof block?))] + [decode-paragraph (-> (listof pre-content?) paragraph?)] + [decode-compound-paragraph (-> (listof pre-flow?) block?)] + [decode-content (-> (listof pre-content?) content?)] + (rename decode-content + decode-elements + (-> (listof pre-content?) content?)) + [decode-string (-> string? content?)] + [clean-up-index-string (-> string? string?)])) (define (spliceof c) (define name `(spliceof ,(contract-name c))) @@ -93,8 +88,7 @@ #:first-order (lambda (x) (and (splice? x) (andmap p (splice-run x)))))) -(provide/contract - [spliceof (flat-contract? . -> . flat-contract?)]) +(provide (contract-out [spliceof (flat-contract? . -> . flat-contract?)])) (define the-part-index-desc (index-desc (hash 'kind "part" 'part? #t))) From b8dbd32a54a4d057e94c05014da46728c6ceefc2 Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Wed, 7 May 2025 00:17:41 +0000 Subject: [PATCH 11/13] Fix 1 occurrence of `always-throwing-cond-to-when` Using `when` and `unless` is simpler than a conditional with an always-throwing branch. --- scribble-lib/scribble/decode.rkt | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/scribble-lib/scribble/decode.rkt b/scribble-lib/scribble/decode.rkt index 85d0c4e0de..9a7a653bb2 100644 --- a/scribble-lib/scribble/decode.rkt +++ b/scribble-lib/scribble/decode.rkt @@ -186,18 +186,21 @@ (loop (cdr l) next? keys colls accum title tag-prefix tags vers style index-desc)] [(title-decl? (car l)) (let ([t (car l)]) - (cond - [(not part-depth) (error 'decode "misplaced title: ~e" t)] - [title (error 'decode "found extra title: ~v" t)] - [else (loop (cdr l) next? keys colls accum - (title-decl-content t) - (title-decl-tag-prefix t) - (title-decl-tags t) - (title-decl-version t) - (title-decl-style t) - (or (and (title-decl*? t) - (title-decl*-index-desc t)) - index-desc))]))] + (unless part-depth + (error 'decode "misplaced title: ~e" t)) + (when title + (error 'decode "found extra title: ~v" t)) + (loop (cdr l) + next? + keys + colls + accum + (title-decl-content t) + (title-decl-tag-prefix t) + (title-decl-tags t) + (title-decl-version t) + (title-decl-style t) + (or (and (title-decl*? t) (title-decl*-index-desc t)) index-desc)))] #; ;; Blocks are now handled by decode-accum-para [(block? (car l)) From 430f3569269787581fcafc1d1c2ee47733fbf385 Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Wed, 7 May 2025 00:17:41 +0000 Subject: [PATCH 12/13] Fix 1 occurrence of `cond-let-to-cond-define` Internal definitions are recommended instead of `let` expressions, to reduce nesting. --- scribble-lib/scribble/decode.rkt | 33 ++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/scribble-lib/scribble/decode.rkt b/scribble-lib/scribble/decode.rkt index 9a7a653bb2..cc003635db 100644 --- a/scribble-lib/scribble/decode.rkt +++ b/scribble-lib/scribble/decode.rkt @@ -234,12 +234,12 @@ (error 'decode "misplaced part (the part is more than one layer deeper than its container); title: ~s" (part-start-title (car l)))) - (let ([s (car l)]) - (let loop ([l (cdr l)] [s-accum null]) - (if (or (null? l) - (and (part-start? (car l)) - ((part-start-depth (car l)) . <= . part-depth)) - (part? (car l))) + (define s (car l)) + (let loop ([l (cdr l)] + [s-accum null]) + (if (or (null? l) + (and (part-start? (car l)) ((part-start-depth (car l)) . <= . part-depth)) + (part? (car l))) (let ([para (decode-accum-para accum)] [s (decode-styled-part (reverse s-accum) (part-start-tag-prefix s) @@ -247,8 +247,16 @@ (part-start-style s) (part-start-title s) (add1 part-depth))] - [part (decode-flow* l keys colls tag-prefix tags vers style - title (and (part-start*? s) (part-start*-index-desc s)) part-depth)]) + [part (decode-flow* l + keys + colls + tag-prefix + tags + vers + style + title + (and (part-start*? s) (part-start*-index-desc s)) + part-depth)]) (make-part (part-tag-prefix part) (part-tags part) (part-title-content part) @@ -257,12 +265,9 @@ para (cons s (part-parts part)))) (cond - [(splice? (car l)) - (loop (append (splice-run (car l)) (cdr l)) s-accum)] - [(list? (car l)) - (loop (append (car l) (cdr l)) s-accum)] - [else - (loop (cdr l) (cons (car l) s-accum))]))))] + [(splice? (car l)) (loop (append (splice-run (car l)) (cdr l)) s-accum)] + [(list? (car l)) (loop (append (car l) (cdr l)) s-accum)] + [else (loop (cdr l) (cons (car l) s-accum))])))] [(splice? (car l)) (loop (append (splice-run (car l)) (cdr l)) next? keys colls accum title tag-prefix tags vers style index-desc)] From 3e295d0702c2f278696def95c559ff06cc0d3d40 Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Wed, 7 May 2025 00:17:41 +0000 Subject: [PATCH 13/13] Fix 1 occurrence of `when-expression-in-for-loop-to-when-keyword` Use the `#:when` keyword instead of `when` to reduce loop body indentation. --- scribble-test/tests/scribble/markdown.rkt | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/scribble-test/tests/scribble/markdown.rkt b/scribble-test/tests/scribble/markdown.rkt index 20833e4b22..cb16eb657a 100644 --- a/scribble-test/tests/scribble/markdown.rkt +++ b/scribble-test/tests/scribble/markdown.rkt @@ -40,11 +40,9 @@ (define (contents file) (regexp-replace #rx"\n+$" (file->string file) "")) (define undefineds (build-markdown-doc src-file "gen.md")) - (for ([u (in-list undefineds)]) - (when (eq? 'tech (car u)) - (test #:failure-message - (format "undefined tech: ~e" u) - #f))) + (for ([u (in-list undefineds)] + #:when (eq? 'tech (car u))) + (test #:failure-message (format "undefined tech: ~e" u) #f)) (test #:failure-message (format "mismatch for: \"~a\", expected text in: \"~a\", got:\n~a"