fixes for `scribble/srcdoc'
Use the new `relative-in' form to make imports resolve correctly when they are shifted among modules.
This commit is contained in:
parent
281d208e84
commit
0c95475f4f
|
@ -76,7 +76,7 @@ all of the names in the tools library, for use defining keybindings
|
||||||
[_
|
[_
|
||||||
(raise-syntax-error 'provide/dr/doc "unknown thing" case)])])
|
(raise-syntax-error 'provide/dr/doc "unknown thing" case)])])
|
||||||
(with-syntax ([mid (munge-id #'id)])
|
(with-syntax ([mid (munge-id #'id)])
|
||||||
#'(thing-doc mid ctc ("This is provided for backwards compatibility; new code should use " (racket id) " instead.")))))
|
#`(thing-doc mid ctc (@undefined-const "This is provided for backwards compatibility; new code should use " (racket id) " instead.")))))
|
||||||
(syntax->list #'(case ...)))])])
|
(syntax->list #'(case ...)))])])
|
||||||
(syntax-case stx ()
|
(syntax-case stx ()
|
||||||
[(_ rst ...)
|
[(_ rst ...)
|
||||||
|
|
|
@ -22,7 +22,8 @@
|
||||||
#'(xwrap (... ...) id))
|
#'(xwrap (... ...) id))
|
||||||
;; delayed:
|
;; delayed:
|
||||||
(with-syntax ([(_ xwrap (... ...)) stx]
|
(with-syntax ([(_ xwrap (... ...)) stx]
|
||||||
[(reqs ((id d) (... ...))) (get-docs)])
|
[(reqs ((id d) (... ...))) (syntax-local-introduce
|
||||||
|
(datum->syntax #f (get-docs)))])
|
||||||
#`(begin
|
#`(begin
|
||||||
(require . reqs)
|
(require . reqs)
|
||||||
(xwrap (... ...) (list (cons 'id d) (... ...)))))))
|
(xwrap (... ...) (list (cons 'id d) (... ...)))))))
|
||||||
|
|
|
@ -2,7 +2,8 @@
|
||||||
(require racket/contract/base
|
(require racket/contract/base
|
||||||
(for-syntax racket/base
|
(for-syntax racket/base
|
||||||
racket/require-transform
|
racket/require-transform
|
||||||
racket/provide-transform))
|
racket/provide-transform
|
||||||
|
syntax/private/modcollapse-noctc))
|
||||||
|
|
||||||
(provide for-doc require/doc
|
(provide for-doc require/doc
|
||||||
provide/doc ; not needed anymore
|
provide/doc ; not needed anymore
|
||||||
|
@ -21,9 +22,24 @@
|
||||||
(define (add-requires!/decl specs)
|
(define (add-requires!/decl specs)
|
||||||
(unless delayed?
|
(unless delayed?
|
||||||
(syntax-local-lift-module-end-declaration
|
(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)))
|
(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)
|
(define (add-requires! specs)
|
||||||
(set! requires (cons specs requires)))
|
(set! requires (cons specs requires)))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user