fixes for `scribble/srcdoc'
Use the new `relative-in' form to make imports resolve correctly when they are shifted among modules. original commit: 0c95475f4ffbc343291e5529a6f4b32a91159ef1
This commit is contained in:
parent
24acfab0ad
commit
2cdcf15d24
|
@ -22,7 +22,8 @@
|
|||
#'(xwrap (... ...) id))
|
||||
;; delayed:
|
||||
(with-syntax ([(_ xwrap (... ...)) stx]
|
||||
[(reqs ((id d) (... ...))) (get-docs)])
|
||||
[(reqs ((id d) (... ...))) (syntax-local-introduce
|
||||
(datum->syntax #f (get-docs)))])
|
||||
#`(begin
|
||||
(require . reqs)
|
||||
(xwrap (... ...) (list (cons 'id d) (... ...)))))))
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
(require racket/contract/base
|
||||
(for-syntax racket/base
|
||||
racket/require-transform
|
||||
racket/provide-transform))
|
||||
racket/provide-transform
|
||||
syntax/private/modcollapse-noctc))
|
||||
|
||||
(provide for-doc require/doc
|
||||
provide/doc ; not needed anymore
|
||||
|
@ -21,9 +22,24 @@
|
|||
(define (add-requires!/decl specs)
|
||||
(unless delayed?
|
||||
(syntax-local-lift-module-end-declaration
|
||||
#`(begin-for-syntax (add-requires! (quote-syntax #,specs)))))
|
||||
#`(begin-for-syntax (add-relative-requires! (#%variable-reference)
|
||||
(quote-syntax #,specs)))))
|
||||
(add-requires! (syntax-local-introduce specs)))
|
||||
|
||||
(define (add-relative-requires! varref specs)
|
||||
(define mpi (variable-reference->module-path-index varref))
|
||||
(define-values (name base) (module-path-index-split mpi))
|
||||
(if name
|
||||
(add-requires!
|
||||
(with-syntax ([(spec ...) specs]
|
||||
[rel-to (collapse-module-path-index
|
||||
mpi
|
||||
(build-path (or (current-load-relative-directory)
|
||||
(current-directory))
|
||||
"here.rkt"))])
|
||||
#'((relative-in rel-to spec) ...)))
|
||||
(add-requires! specs)))
|
||||
|
||||
(define (add-requires! specs)
|
||||
(set! requires (cons specs requires)))
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user