diff --git a/collects/drscheme/private/auto-language.ss b/collects/drscheme/private/auto-language.ss index 23b5307dfe..63aef3aa3c 100644 --- a/collects/drscheme/private/auto-language.ss +++ b/collects/drscheme/private/auto-language.ss @@ -6,7 +6,7 @@ (define reader-tag "#reader") - (define (pick-new-language text all-languages module-language) + (define (pick-new-language text all-languages module-language module-language-settings) (with-handlers ([exn:fail:read? (λ (x) (values #f #f))]) (let ([found-language? #f] [settings #f]) @@ -38,7 +38,7 @@ (pair? r1) (eq? (car r1) 'module)) (set! found-language? module-language) - (set! settings (send module-language default-settings)))))) + (set! settings module-language-settings))))) (values found-language? settings))))) diff --git a/collects/drscheme/private/unit.ss b/collects/drscheme/private/unit.ss index c511c3991c..7f1da3910e 100644 --- a/collects/drscheme/private/unit.ss +++ b/collects/drscheme/private/unit.ss @@ -475,12 +475,20 @@ module browser threading seems wrong. (λ (lang) (and (is-a? lang drscheme:module-language:module-language<%>) lang)) - (drscheme:language-configuration:get-languages)))]) + (drscheme:language-configuration:get-languages)))] + [module-language-settings + (let ([prefs-setting (preferences:get drscheme:language-configuration:settings-preferences-symbol)]) + (cond + [(eq? (drscheme:language-configuration:language-settings-language prefs-setting) + module-language) + (drscheme:language-configuration:language-settings-settings prefs-setting)] + [else (send module-language default-settings)]))]) (let-values ([(matching-language settings) (pick-new-language this (drscheme:language-configuration:get-languages) - module-language)]) + module-language + module-language-settings)]) (when matching-language (set-next-settings (drscheme:language-configuration:make-language-settings