links to this page:    
View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide
Refactoring Browser (outdated notes)
Last updated at 5:07 pm UTC on 22 March 2004

New home and new release

[October 6, 2002] The current site for the Refactoring Browser is at the SqueakMap site. Loads clean into a 3.2 4956, tests green, and both browser and lint work. New packaging means just one file to filein, or you can download automatically using a SqueakMap compatible loader tool.
Daniel (btw, no longer looking for a new maintainer)

[May 23, 2002] The current site for the Refactoring Browser code is at the SCAN Repository. At this time it doesn't load into the lattest 3.2 gamma and 3.3 alpha images. Currently Daniel is looking for a new maintainer and waiting for the 3.2 final.

[May 22, 2002] Warning: The Refactoring Browser from SCAN does not load into a 3.3 image at this date.

Refactoring Browser port to Squeak goes beta

[September 19, 2001] The current site for the Refactoring Browser code is at the SCAN Repository. (SCAN Download Script)

[September 2, 2001] Mail from Daniel Vainsencher:

So, the Squeak RB port team reports:
Our goal was to advance the RB port as done by Bob Hartwig and the people at the previous CS from alpha state to beta.

At a high level, this means that we expect just about anyone should be able to load the Refactoring Browser and do all their daily work on it. Since the port creates a subclass of the regular browser, this should be a definite improvement on what's available now, even if not everything is perfect.

Specifics - the Refactoring Browser as we release it, loads cleanly on an updated image (4164 and up), lots of refactorings work (almost everything done over methods and variables), and the critical UI support code is there.

So - we urge everyone to take a look, especially people familiar with the refactoring browser (to find problems) and also people that aren't (because everyone have the tools to make code better).

Ok, so where's the code?

The code is on the squeak foundation ftp site, at - ftp://ftp.squeakfoundation.org/pub/packages/RefactoringBrowser/

What you need are 4 files, to be loaded in this order
  1. ClassBuilder.1.cs - a tiny patch to the ClassBuilder to avoid a problem loading one of the next files. I'm not sure this is a good permanent solution, but it's very meek and harmless.
  2. RBModel_26.cs - slightly modified version of the refactoring engine as appears on BobH's site. Note this file is pretty big and takes a while to load.
  3. RBUI_18.cs - exact copy of BobH's file
  4. RBPortBeta.6.cs - Our modifications.

and then, RefactoringBrowser openBrowser

Other files -
Bob Hartwig's site [http://www.bobjectsinc.com/squeakrbalpha/] includes a UI for the Lint tool (find bugs, code smells, and oddities automatically) which is uses the RB model. We haven't tested or modified it.

You might also be interested in downloading the latest SUnit framework and tests for the model classes (especially if you want to help improve the browser), this is also described on Bob Hartwig's site.

What isn't there (and why the code is beta, ie, not ready to go into the base image) -

You want 'em, say so.

we got all kinds of support, technical and moral, from other Campers:
Joseph Pelrine
Markus Denker
Hans Martin Mosner
Roger Whitney

The Squeak RB at CS3 team -
Markus Gaelli
Michael Pruemm
Frank (I didn't get his last name)
and Yours Squeakily, Daniel Vainsencher

PS - For those of you who have never been to CampSmalltalk (like until this time) - you should. It's great to meet the wider Smalltalk family, and generally work together.

[July 10, 2000] Bob Hartwig has set up a temporary website about the state of the Squeak port:
The Camp Smalltalk Refactoring Browser Squeak Port project


The Refactoring Browser is a Smalltalk browser which allows the programmer to perform various refactorings. There have been various porting efforts, including one by BobArning and by Lex Spoon. BobHartwig started a port of the current RB (March 2000 release) to Squeak as part of a Camp Smalltalk project. As of 5/3/2000, the port passes the RB regression test suite, but as of yet, has no GUI interface. BobHartwig and Mark Schwenk are planning to look at the GUI issue next, and welcome other interested contributors.

Version 2 of my port of the Refactoring Browser is now available. While it is far from production-quality, you can do some useful things with it. The requisite files are in

(older version: http://www.charm.net/~arning/Refactoring/)

Start with the ReadMe file.


Lex Spoon has been working on this as well: http://www.cc.gatech.edu/~lex/squeak/rb.html. The difference is that Lex is working from the bottom up towards the GUI, and Bob is working from the GUI down towards the bottom.

Related links:

Whisker Browser - A browser with a different UI which stacks methods and classes. It could be a front-end for the Refactoring Browser at some point.

Star Browser

See also the Refactoring Browser homepage at http://st-www.cs.uiuc.edu/~brant/RefactoringBrowser, maintained by the original authors, John Brant and Don Roberts.

SCAN Download Script

I had to modify the download script at the SCAN repository to download the Refactoring Browser successfully:

| itemsAndNames oldChangeSet itemFullName fileName urlString serverName |
itemsAndNames _ {{'/Squeak/Packages/Refactoring Browser/RB Addons to image'. 'RBBehaviorQueries.cs'}.
{'/Squeak/Packages/Refactoring Browser/RB Addons to image'. 'RBIfEmptyIfNotEmpty.cs'}.
{'/Squeak/Packages/Refactoring Browser/RB Addons to image'. 'RBUIScrollerHack.cs'}.
{'/Squeak/Packages/Refactoring Browser/RB Addons to image'. 'RBAddonsMaybeSuperflous.cs'}.
{'/Squeak/Packages/Refactoring Browser/RB Addons to image'. 'RBAddonsProblem.cs'}.
{'/Squeak/Packages/Refactoring Browser/RB Addons to image'. 'RBAddons.cs'}.
{'/Squeak/Packages/Refactoring Browser/RB Addons to image'. 'RBUIMenuMorphFix.cs'}.
{'/Squeak/Packages/Refactoring Browser/RB Addons to image'. 'RBAddonsReasonable.cs'}.
{'/Squeak/Packages/Refactoring Browser/RB Addons to image'. 'RBUIChooserMorph.cs'}.
{'/Squeak/Packages/Refactoring Browser/RB Model'. 'RBModel.cs'}.
{'/Squeak/Packages/Refactoring Browser/RB Model Tests'. 'RBModelTests.cs'}.
{'/Squeak/Packages/Refactoring Browser/RB UI'. 'RBUI.cs'}.
"Uncomment the following lines to set the RB as your default browser and add Lint to the Flaps."
{'/Squeak/Packages/Refactoring Browser/Optional Addons'. 'RBToolsInFlaps.cs'}.
{'/Squeak/Packages/Refactoring Browser/Optional Addons'. 'BrowserSelfReferences.cs'}.
{'/Squeak/Packages/Refactoring Browser/Optional Addons'. 'ExternalBrowserReferences.cs'}.
serverName _ 'squeak.heeg.de:8080'.
oldChangeSet _ Smalltalk changes.
itemsAndNames do: [:pair |
fileName _ pair second.
itemFullName _ pair first.
Smalltalk newChanges: (ChangeSorter newChangeSet: (fileName copyUpTo: $.)).
urlString _ serverName, itemFullName, '/', fileName.
(ReadStream on: urlString asUrl retrieveContents content) fileIn].
Smalltalk newChanges: oldChangeSet.

Christian (ce10 at gmx dot net)

Documentation (Redirection)