collapsed-snipclass.rkt
1 #lang racket/base 2 (require racket/gui/base 3 racket/class 4 "private/collapsed-snipclass-helpers.rkt") 5 6 (provide snip-class) 7 8 (define simple-sexp-snip% 9 (class* snip% (readable-snip<%>) 10 (init-field left-bracket right-bracket saved-snips) 11 (define/public (read-special file line col pos) 12 (define text (make-object text%)) 13 (for ([s (in-list saved-snips)]) 14 (send text insert (send s copy) 15 (send text last-position) 16 (send text last-position))) 17 (datum->syntax 18 #f 19 (read (open-input-text-editor text)) 20 (list file line col pos 1))) 21 (define/override (copy) 22 (new simple-sexp-snip% 23 [left-bracket left-bracket] 24 [right-bracket right-bracket] 25 [saved-snips saved-snips])) 26 (super-new))) 27 28 (define sexp-snipclass% (make-sexp-snipclass% simple-sexp-snip%)) 29 30 (define snip-class (make-object sexp-snipclass%)) 31 (send snip-class set-classname (format "~s" '((lib "collapsed-snipclass.ss" "framework") 32 (lib "collapsed-snipclass-wxme.ss" "framework")))) 33 (send snip-class set-version 0) 34 (send (get-the-snip-class-list) add snip-class)