diff --git a/collects/framework/private/racket.rkt b/collects/framework/private/racket.rkt index 186dbdc4f1..dc5e36c124 100644 --- a/collects/framework/private/racket.rkt +++ b/collects/framework/private/racket.rkt @@ -142,16 +142,22 @@ (set-box/f! spaceb a) (set-box/f! lspaceb 0) (set-box/f! rspaceb 0))) - (super-instantiate ()) + (super-new) (inherit set-snipclass) - (set-snipclass lib-snip-class))) + (set-snipclass 2lib-snip-class))) (define sexp-snipclass% (make-sexp-snipclass% sexp-snip%)) ;; old snips (from old versions of drracket) use this snipclass -(define lib-snip-class (make-object sexp-snipclass%)) -(send lib-snip-class set-classname (format "~s" '((lib "collapsed-snipclass.ss" "framework") +(define 2lib-snip-class (make-object sexp-snipclass%)) +(send 2lib-snip-class set-classname (format "~s" '((lib "collapsed-snipclass.ss" "framework") (lib "collapsed-snipclass-wxme.ss" "framework")))) +(send 2lib-snip-class set-version 0) +(send (get-the-snip-class-list) add 2lib-snip-class) + +;; old snips (from old versions of drracket) use this snipclass +(define lib-snip-class (make-object sexp-snipclass%)) +(send lib-snip-class set-classname (format "~s" '(lib "collapsed-snipclass.ss" "framework"))) (send lib-snip-class set-version 0) (send (get-the-snip-class-list) add lib-snip-class) diff --git a/collects/tests/drracket/snips.rkt b/collects/tests/drracket/snips.rkt new file mode 100644 index 0000000000..dec0365fe6 --- /dev/null +++ b/collects/tests/drracket/snips.rkt @@ -0,0 +1,29 @@ +#lang racket/base +(require "private/drracket-test-util.rkt" + racket/class + racket/runtime-path + racket/file + racket/gui/base) +(define-runtime-path snip "snip") + +(fire-up-drracket-and-run-tests + (λ () + + (define drs (wait-for-drracket-frame)) + (define tmpdir (make-temporary-file "drracketsniptest~a" 'directory)) + (define defs (queue-callback/res (λ () (send drs get-definitions-text)))) + (for ([rfile (in-list (directory-list snip))]) + (define file (build-path snip rfile)) + (when (file-exists? file) ;; skip subdirectories + (printf " trying ~a\n" rfile) + (queue-callback/res + (λ () (send defs load-file file))) + (save-drracket-window-as (build-path tmpdir rfile)) + (define drs2 (wait-for-drracket-frame)) + (unless (eq? drs drs2) + (error 'snips.rkt "lost drracket frame while saving ~s" rfile)))) + + (delete-directory/files tmpdir))) + + +