MyTools Smalltalk Toolkit

MyTools is YAST (Yet Another Smalltalk Tool) - this is a collection of various tools and helpful snippets.  Why write yet another tool/extension?  Primarily because I haven't seen a toolkit that is open, portable, and extendible by the community.  Secondly, my intention is that if (when? the Java juggernaut beckons) I leave the Smalltalk community, that I find a good home for MyTools so it keeps getting updated.  This toolkit is freely distributable with all source code, with two caveats:  1) It is not distributed/included for profit (if you want to do this, contact me).  2) That any modifications/improvements/updates are sent to me for inclusion in a future version.  I'll be sure to add/withhold credit as requested.  See notes in help/documentation protocol of MyToolsBase for more information - especially before firing off questions/suggestions to me.  Enjoy.

 Environments tried in:
   * VW 2.5.2
   * VW 3.0
   * ENVY 3.01

Jason Steffler
jagwar@magma.ca

The current version is 0.3, and is available at the UIUC archives.

1 Functions/Description

[R] - indicates it's for the Refactoring Browser
[E] - indicates it's for ENVY

Menu Items
  * Find complete string
  * Looks for occurances of entire string within the image. (case sensitive, relatively fast)
  * Find substring
  * Allows you to scope the search by specifying class to start in.  Will search all subclasses.
  * Not case sensitive, relatively slow (why scoping is good) and runs in the foreground.
  * Find substring, background.
  * Same as find substring, but runs in background for those times when you can't reduce the scope.
  * Add extensions to Refactoring Browser
     * Only addes extensions to currently open refactoring browsers
  * Build MyTools
  * Make MyTools fileouts for the various platforms

Miscellaneous Protocol
 "An easier BOSS interface."
 MyTools bossOutObject: anObject on: 'aFilenameString'.
 MyTools bossInObjectFrom: 'aFilenameString'.

 "Various Customizations"
 MyTools addToLauncher.   "MyTools submenu is dropped on image save for some reason."
 MyTools setDefaultKeyBindings.
 MyTools setEmacsKeyBindings.
 MyTools setDeleteKey.
 MyTools setFileBrowserToShowAllFiles.
 MyTools setUiLookToMotif.
[R] MyTools extendRefactoringBrowserMenus  "A non-intrusive way to extend the RB menus."

 "Misc Envy stuff."
[E] MyTools loadConfigMapsWithRequired.
[E]  MyTools loadConfigMapsWithRequired: 'ENVY/Manager'.
[E] MyTools reportOnConfigMapDiffs.
[E] MyTools reportOnConfigMapDiffs: #('ConfigMap1' 'ConfigMap2').
[E] MyTools changeOwnershipsOfUser.  "Use this method with care!"

Examples
 "There's a number of examples of snippets of how to do things in the examples protocol on the class side of MyToolsBase"
 MyTools browseAllClassExamples.
 MyTools changeImageColours.  "Not the best choice in the world for the defaults ;-)"
 MyTools openWindowWithTextInIt.
 MyTools openWindowWithCapturedImage.

Your own extensions
 If your extensions are generic, please send them to me for future inclusion in the toolkit.  If your extensions are employer/situation-specific, then your best option is to subclass off of the MyTools proxy class, or if you prefer, you can subclass off of MyToolsBase or MyToolsEnvy, as the case may be.

Extensions to base
 *NOTE* These are the extensions to the base classes.
  They will show up in the category where the base class is defined.
[E]  They will show up in the default application.
 StandardSystemController>inspectView
 StandardSystemController class>initializeForAdditions
[R] SystemNavigator>findSubStringOverClasses
[R] SystemNavigator>inspectSelectedMethod
[R] SystemNavigator>sendSelectedMethod
[R] SystemNavigator>copyFullClassSpec
[E] EtApplicationsChangesBrowser>printChangesReportToTranscript

2 Installation notes

2.1 To install into a VW image:

  * Unzip source files to your image directory
  * Load the Refactoring Browser Goodie, if Refactoring extensions are desired
  * File in the MyTools-Vw-x.x.st file
  * It's normal to have a number of undeclared warnings on the filein, these haven't been cleaned up yet.

2.2 To install into a VW+ENVY image:

  * Unzip source files to your image directory
  * Load the Refactoring Browser Goodie, if Refactoring extensions are desired (put in RefactoringBrowserApp)
  * Make new app called MyToolsApp
  * Set it's prerequisites to be (note, if prerequisites are not set, then the extensions will not be filed in):
    * EtTools
    * RefactoringBrowserApp
  * File in the MyTools-VwEnvy-x.x.st file
  * It's normal to have a number of undeclared warnings on the filein, these haven't been cleaned up yet.

3 Change history:

0.3
  * Added some ENVY extensions
  * building in ENVY, finding string tweaks, Config map loading, config map diffing, change ownerships, copy class specification [R], storing workspaces in comments of methods
  * Decoupled Refactoring Browser extensions from the base installation

0.2
  * Added help text
  * Added notes in help/documentation protocol of MyToolsBase
  * Refactored design to make it more portable across versions/dialects of Smalltalk (put in proxy, bridge).  However, as noted in the help text, the primary platform for this toolkit is VWNC.  I do not have the spare time to regularly or ever try/test it on other platforms.
  * Added a packaging facility (file out).
  * Added naming convention to indicate that a method is bridged (implement*)
  * Added naming convention to indicate private methods (my*)
  * Added emacs keybindings
  * Added refactoring browser extensions

0.1
  * Initial implementation, purely for myself and a few friends on VWNC