svn: r15565
This commit is contained in:
Robby Findler 2009-07-25 15:26:07 +00:00
parent 03f91ccbeb
commit b62d5d42d6

View File

@ -2044,10 +2044,12 @@ If the namespace does not, they are colored the unbound color.
id id
(syntax->datum req-stx)) (syntax->datum req-stx))
(when id (when id
(add-jump-to-definition (let ([filename (get-require-filename source-req-path user-namespace user-directory)])
var (when filename
source-id (add-jump-to-definition
(get-require-filename source-req-path user-namespace user-directory))) var
source-id
filename))))
(add-mouse-over var (add-mouse-over var
(fw:gui-utils:format-literal-label (fw:gui-utils:format-literal-label
(string-constant cs-mouse-over-import) (string-constant cs-mouse-over-import)
@ -2185,6 +2187,7 @@ If the namespace does not, they are colored the unbound color.
defs-text defs-text
(syntax-position stx) (syntax-position stx)
(syntax-span stx)) (syntax-span stx))
(printf "filename ~s\n" filename)
(let* ([pos-left (- (syntax-position stx) 1)] (let* ([pos-left (- (syntax-position stx) 1)]
[pos-right (+ pos-left (syntax-span stx))]) [pos-right (+ pos-left (syntax-span stx))])
(send defs-text syncheck:add-jump-to-definition (send defs-text syncheck:add-jump-to-definition
@ -2250,21 +2253,24 @@ If the namespace does not, they are colored the unbound color.
#f #f
(make-require-open-menu file))))))))))) (make-require-open-menu file)))))))))))
;; get-require-filename : sexp-or-module-path-index namespace string[directory] -> filename ;; get-require-filename : sexp-or-module-path-index namespace string[directory] -> filename or #f
;; finds the filename corresponding to the require in stx ;; finds the filename corresponding to the require in stx
(define (get-require-filename datum user-namespace user-directory) (define (get-require-filename datum user-namespace user-directory)
(parameterize ([current-namespace user-namespace] (parameterize ([current-namespace user-namespace]
[current-directory user-directory] [current-directory user-directory]
[current-load-relative-directory user-directory]) [current-load-relative-directory user-directory])
(with-handlers ([exn:fail? (λ (x) (let ([ans (with-handlers ([exn:fail? (λ (x)
(printf "fail ~s\n" (exn-message x)) (printf "fail ~s\n" (exn-message x))
#f)]) #f)])
(cond (cond
[(module-path-index? datum) [(module-path-index? datum)
(resolved-module-path-name (resolved-module-path-name
(module-path-index-resolve datum))] (module-path-index-resolve datum))]
[else [else
((current-module-name-resolver) datum #f #f)])))) (resolved-module-path-name
((current-module-name-resolver) datum #f #f))]))])
(and (path? ans)
ans))))
;; make-require-open-menu : path -> menu -> void ;; make-require-open-menu : path -> menu -> void
(define (make-require-open-menu file) (define (make-require-open-menu file)