The Refactoring Browser is a variant on the class browser which automates common operations that people do (change the name of a variable) to modify the design of code (extract a portion of a longish method into it's own method) without changing it's behavior.
The same infrastructure classes and more also power the SmallLint tool, which finds common bugs, potential bugs, and other code smells in Smalltalk code.
A history of this port would take note of the original Refactoring Browser by John Brant and Ralph Johnson, of the original porting effort at CS3 (and earlier attempts too), further work by Bob Hartwig, GUI extensions and clean up at CS@ESUG/Essen, updates and fixes by the community up until and during CS@ESUG/Douai. It would also point at the various older archives. But I haven't done one yet.
Old Versions -
New to 0.93
From Ned -
- 3.4a compatibility fixes. (I couldn't use some because they broke 3.2 compatibility, will have to find a solution for these)
- Fix erronous reference to missing class in Lint.
Other stuff -
- As pointed out on the list, the Objecttesting method was making an external test fail. Removed it and modified all callers.
New to 0.92 (apparently, I forgot to update the release version)
This version adds the integration glue to the rest of the system so that the RefactoringBrowser will be used instead of the standard browser.
Also started compressing the source, to make downloading faster.
0.9 (5/10 initial SqueakMap Release, after ESUG 2002)
This version fixes the longstanding RBScanner initialization bug, and thus should work (which it hadn't for a while). It also integrates various contributions from the list members and people that worked on it at ESUG 2002:
* Raymond Assalin - if no class is selected when browsing instance variable, give a meaningful warning..
* Alexandre Bergle and Lukas Renggli @ ESUG
- fix selection in multi lists in Lint
- show progress in Lint
This release is just one file, for your convinience, and uses a method category convention to keep extensions to base classes separate. This change in packaging should help me keep releases simple, and therefore easy to do, and fix, and repeat.
I've tested loading this into a 4956 image and it tests green, so if you manage to find problems with it, I'll be happy if you let me know.