Class new title: CodePane subclassof: Window fields: 'pared class selector selectorPane scrollBar' declare: 'editmenu ' class: t1 selector: t2 para: t3 [class _ t1. selector _ t2] classInit [editmenu _ Menu new string: 'again copy cut paste doit compile undo cancel align'] close [pared unselect. pared _ nil. selectorPane _ pared. scrollBar close] compile: t1 [self compile: t1 in: class under: 'As yet unclassified'] compile: t1 in: t2 under: t3 [Generator new compile: t1 in: [class  nil  [t2] class] under: t3 notifying: self] contents [pared contents] dirty [pared formerly  [frame] false] doit | t1 t2 t3 [scrollBar hidewhile [t1 _ pared selectRange. [t1 empty  [pared unselect. pared fintype. pared complement. t1 _ pared selectRange]]. t2 _ selectorPane execute: pared selectionAsStream for: self. [t2  nil or t1  pared selectRange  [nil] t1 _ t1 stop + 1. t3 _ (String new: 100) asStream. t3 space. t3 print: t2. pared Scrap_ t3 contents asParagraph. pared selectRange: (t1 to: t1). pared paste]]] eachtime [user kbck  [self kbd] [frame has: user mp  [[user anybug  [user redbug  [self redbug] user yellowbug  [self yellowbug] user bluebug  [false]]]. user anykeys  [self keyset]]]. self outside] enter [scrollBar show] execute: t1 for: t2 [self execute: t1 in: false to: nil] execute: t1 in: t2 to: t3 [Generator new evaluate: t1 in: t2 to: t3 notifying: self] formerly: t1 [pared formerly: t1] frame_ t1 [frame _ t1. pared  nil  [] pared frame_ frame. scrollBar on: frame from: pared] from: t1 [selectorPane _ t1] hardcopy: t1 [pared hardcopy: t1] init interactive [true] kbd [pared typing] keyset [pared keyset] leave [scrollBar hide] notify: t1 at: t2 in: t3 [pared fintype. pared selectRange: (t2 to: t2). pared replace: ('' + t1 + '.') asParagraph. pared selectAndScroll. false] oldContents [pared formerly] outline [frame outline: 1] outside [scrollBar startup] picked [frame has: user mp] redbug [pared selecting] reflects: t1 [class  nil and t1 > 0] selectRange: t1 [pared selectRange: t1. pared selectAndScroll] show [frame outline. pared show] showing: t1 [pared _ TextImage new para: t1 asParagraph frame: nil. pared formerly: false. pared fixframe: frame. self windowenter. scrollBar _ [scrollBar  nil  [ScrollBar new] scrollBar] on: frame from: pared] windowenter [self outline. pared enter] windowleave [pared  nil  [] pared leave] yellowbug | t1 [t1 _ editmenu bug. t1 = 1  [pared again] t1 = 2  [pared copyselection] t1 = 3  [pared cut] t1 = 4  [pared paste] t1 = 5  [self doit] t1 = 6  [pared formerly  [scrollBar hidewhile [selectorPane compile: pared contents  [pared formerly: false] nil]] frame flash] t1 = 7  [pared undo] t1 = 8  [pared formerly  [self showing: pared formerly] frame flash] t1 = 9  [pared realign]]