The Camp Smalltalk Refactoring Browser Squeak Port project
  • Until we get some licensing issues ironed out, and until I can get the SourceForge project approved, this is where you can download the Refactoring Browser Squeak port.
  • This site is temporary. As soon as we get SourceForge going, it will disappear.

Status

  • The entire object model, not including UI, has been ported. The only things that don't seem to work, according to the SUnit test suite, are the "utility methods" and "variable not defined" lint rules.
  • The next obvious step is to develop the UI. I'm in the process of working with Mark Schwenk on this now. I see the UI as an area where outside contributions can be quite helpful. The version of the RB on which the port is based has very good model/view separation, so I think integration with multiple browsers makes a lot of sense. I'd like to see people contribute RB integrations with the standard Squeak system browsers, with their own browser add-ons, etc. If you've developed a custom browser, by all means, integrate the RB model with it. As far as the stand-alone browser goes, I'll let natural selection be the deciding factor. If you can come up with a more complete, more robust, easier to use interface than what we come up with, let us know and we'll steal, er, integrate it. :)

*UPDATE*
Since I wrote this, Mark Schwenk and I have made a first crack at a partial UI. File in the RBUI.*.cs file and evaluate RB openBrowser. RB is a subclass of the standard Browser, and adds some context menus to the panes. BEWARE! So far, this is very rudimentary, several things are stubbed out, and some things haven't been tested at all. But some of you may find it to be better than nothing, so have fun. I was hoping to get the UI done by the second Camp Smalltalk, but lately my day gigs have turned into day, night, and weekend gigs, so it will have to wait.

Acknowledgements

  • Of course, John Brant and Don Roberts deserve most of the credit, for creating the Refactoring Browser in the first place and for answering all of my lame questions. Lex Spoon contributed extensions to the parser and scanner to handle Squeak's weird {} construct. Sames Shuster did the Squeak SUnit port. Ralph Johnson conceived of and organized Camp Smalltalk, where I (Bob Hartwig) did the brunt of the porting and testing of the object model. Mark Schwenk is helping me with the UI.

Download

  • Now, without further Adieu, here are the change sets. The RBModel.x.cs file is the main change set. RBModelTests.x.cs contains the SUnit suite. Do not attempt to file in the SUnit suite until you first download the .ST files, which belong in your startup directory, and file in the Camp Smalltalk SUnit port from the download area of the Camp Smalltalk wiki. Look for the SUnit*sq*.st files.
  • These change sets are quickly evolving, and I will replace them without warning. If you'd like to receive a quick email informing you when I've changed something, drop me a note at bob@bobjectsinc.com . Of course, when we're hooked up with SourceForge, this process will be greatly improved.

Contributing
If you have something to contribute to the project, I'd like to hear from you. As I mentioned earlier, integration with existing system browsers and third-party browsers are especially welcome. Bug reports and fixes are also urgently seeked. I only ask that if you make an extension, please keep changes to the Squeak model code to a minimum, and whatever you do, don't make any SUnit suites break. Also, please do not mirror these change set files on other servers, link to this page instead, as I linked to Sames' SUnit port above.

Some external links