diff --git a/info.rkt b/info.rkt index bcd13cb..3e07371 100644 --- a/info.rkt +++ b/info.rkt @@ -7,5 +7,6 @@ (define scribblings '(("scribblings/pollen.scrbl" (multi-page)))) (define raco-commands '(("pollen" (submod pollen/command raco) "issue Pollen command" #f))) (define compile-omit-paths '("test" "tools" "server-extras" "scribblings/third-tutorial-files")) -(define test-omit-paths '("test/data" "tools" "server-extras" "scribblings/third-tutorial-files")) +;; it's redundant to test "pollen.scrbl" because it incorporates the other scribble sources by reference +(define test-omit-paths '("test/data" "tools" "server-extras" "scribblings/third-tutorial-files" "scribblings/pollen.scrbl")) (define module-suffixes '(#"pp" #"pm" #"pmd" #"ptree")) diff --git a/reader-base.rkt b/reader-base.rkt index 61343c4..1e9c8d2 100644 --- a/reader-base.rkt +++ b/reader-base.rkt @@ -1,6 +1,6 @@ #lang racket/base -(require racket/syntax syntax/strip-context) -(require (only-in scribble/reader make-at-reader) pollen/world pollen/project racket/list) +(require racket/syntax syntax/strip-context racket/class) +(require (only-in scribble/reader make-at-reader) pollen/file pollen/world pollen/project racket/list) (provide define+provide-reader-in-mode (all-from-out pollen/world)) @@ -58,7 +58,6 @@ 'module-language `#(pollen/language-info get-language-info ,reader-here-path)))) ; reader-here-path acts as "top" runtime config - (define-syntax-rule (define+provide-reader-in-mode mode) (begin (define reader-mode mode) @@ -68,10 +67,17 @@ (λ (key default) (case key [(color-lexer) - (define make-scribble-inside-lexer2 + (define my-make-scribble-inside-lexer (dynamic-require 'syntax-color/scribble-lexer 'make-scribble-inside-lexer (λ () #f))) - (cond [make-scribble-inside-lexer2 - (make-scribble-inside-lexer2 #:command-char #\◊)] + (cond [my-make-scribble-inside-lexer + (define definitions-frame (object-name in)) + (define maybe-source-path (with-handlers ([exn:fail? (λ(exn) #f)]) + (send definitions-frame get-filename))) ; will be #f if unsaved file + (define my-command-char (if maybe-source-path + (parameterize ([current-directory (dirname maybe-source-path)]) + (world:current-command-char)) + world:command-char)) + (my-make-scribble-inside-lexer #:command-char my-command-char)] [else default])] [else default]))) (provide (rename-out [custom-read read] [custom-read-syntax read-syntax]) get-info))) \ No newline at end of file