BrowseOverrides is a new contributed package designed to help users quickly review any methods in an image that have been overridden by extensions in other packages.
While working on the Senders of Deprecated browser, our customers have told me and other members of our Smalltalk Support team here at Cincom that they have difficulties in managing the overridden methods in their images. Because the existing Override Editors¹ are restrained by the limitations of the Change List Tool², most of our customers work with overridden methods within the confines of the standard Refactoring Browser.
When a method is overridden in the code browsers, we only show the code for that method in the package that contains the most recently loaded or edited version of the override. Some of our customers agree that this is the right thing to do, but others want the overridden version of the methods to also be shown in the package(s) where the original methods resided. Our Engineering team is in the process of finding a way to give our customers something that will accommodate all of those needs, but it may take a while before that work is ready to be released.
To provide some short-term help in this area, I’m introducing the BrowseOverrides Contributed Package for Cincom® ObjectStudio® 8.1 or Cincom® VisualWorks® 7.6 and above. Included are extensions to the VisualLauncher and Override classes that are designed to help you quickly review any methods in your image that have been overridden by extensions in other packages.
Loading the package will add an Overridden Methods submenu and submenu items to the “Browse” menu in the Launcher window:
Each of the submenu items will open a method list browser on a list of methods based on the following criteria:
- All -> Any methods that have an Override.
- Single -> Any methods that have only one (a single) Override.
- Multiple -> Any methods that have more than one Override.
Since a standard method list browser is used, the code editing pane will have an active red-colored “Overridden” tab for each of the methods in the list. This tab has the same functionality of the “Overridden” tab in the code editing panes of the standard Package/Class Refactoring browsers. Please note that the look and functionality of the “Overridden” tab will be somewhat different in versions of VisualWorks prior to 7.7.1.³
If you wish to explore how the extensions work, additional technical details can be found in the comments for the package, and in all of the added methods. I’ve done my best to explain my design decisions along with noting any compromises I felt I had to make along the way.
Starting on December 9, the current version of the BrowseOverrides package can be downloaded from the Contributed Components section of our website:
- Override Editors are described in “Chapter 3 – Override Editor” in our Tool Guide documentation.
- Change List Tools are described in “Chapter 5 – Change List” in our Tool Guide documentation.
- Please see the “Override Code Tool Gets a Facelift” section from the Release Notes for VisualWorks 7.8, Page 1-20, about the Override tab in the code browsers.