Tools__NewSystemBrowser.st
branchjv
changeset 15566 184cea584be5
parent 13752 25c2a13f00c5
parent 15564 463ce88788ca
child 15568 815c4fbec1f0
--- a/Tools__NewSystemBrowser.st	Sun Jan 12 23:30:25 2014 +0000
+++ b/Tools__NewSystemBrowser.st	Wed Apr 01 10:38:01 2015 +0100
@@ -1,6 +1,6 @@
 "
  COPYRIGHT (c) 2000 by eXept Software AG
-	      All Rights Reserved
+              All Rights Reserved
 
  This software is furnished under a license and may be used
  only in accordance with the terms of that license and with the
@@ -14,20 +14,21 @@
 "{ NameSpace: Tools }"
 
 SystemBrowser subclass:#NewSystemBrowser
-	instanceVariableNames:'environment navigationState bufferNameList selectedBuffer buffers
-		bufferUsageOrder browserCanvas immediateUpdate showClassPackages
-		lastMethodCategory lastMethodMoveClass browserCanvasType
+	instanceVariableNames:'environmentHolder environment navigationState bufferNameList
+		selectedBuffer buffers bufferUsageOrder browserCanvas
+		immediateUpdate showClassPackages lastMethodCategory
+		lastMethodMoveClass browserCanvasType
 		syntaxColoringProcessRunning syntaxColoringProcess
 		methodInfoProcess browsletShowHideLabelHolder browserPageCanvas
-		isEmbedded'
+		isEmbedded hasNonEmptyEnvironmentSelectedHolder
+		smalllintRulesOrAllHolder smalllintRulesOrDefaultHolder'
 	classVariableNames:'LastNewProtocols LastProtocolRenames LastCategoryRenames
 		LastCategoryRenameOld LastCategoryRenameNew LastProjectMoves
 		LastNameSpaceMove LastMethodMoveOrCopyTargetClass
 		LastClassFilterBlockString LastMethodFilterBlockString
 		LastBreakPointConditionString LastIndividualChecks
 		LastAcceptPackage LastVariableRenames LastVisitorClassName
-		LastTemporaryVariableName FindHistory
-		CheckForInstancesWhenRemovingClasses SynchronousUpdate
+		LastTemporaryVariableName FindHistory SynchronousUpdate
 		DoubleClickIsOpenBrowser ShowMethodTemplateWhenProtocolIsSelected
 		DefaultShowMethodInheritance DefaultEmphasizeUnloadedClasses
 		DefaultImmediateSyntaxColoring DefaultImmediateExplaining
@@ -36,16 +37,19 @@
 		DefaultHideUnloadedClasses DefaultMarkApplications
 		DefaultAutoFormat DefaultShowMethodComplexity
 		DefaultShowMethodTypeIcon DefaultShowSpecialResourceEditors
-		SharedMethodCategoryCache LastMethodProcessingBlockString
-		LastLoadedPackages DefaultShortAllClassesInNameSpaceOrganisation
-		LastBaseVersionTag DefaultShowPseudoProtocols
-		DefaultShowMultitabMode LastRenamedOld LastRenamedNew
-		LastImportedPackage LastLintRules NewNavigationHistory
+		DefaultShowSyntheticMethods SharedMethodCategoryCache
+		LastMethodProcessingBlockString LastLoadedPackages
+		DefaultShortAllClassesInNameSpaceOrganisation LastBaseVersionTag
+		LastTag DefaultShowPseudoProtocols DefaultShowMultitabMode
+		LastRenamedOld LastRenamedNew LastImportedPackage
+		LastLintRulesHolder NewNavigationHistory
 		LastLiteralReplacementType LastLiteralReplacementNewName
 		LastLiteralReplacementOldLiteral LastNewProjectType
 		LastClassProcessingBlockString RecentlyClosedList
 		LastClassSearchBoxShowedFullName CachedTagToRevisionMapping
-		CachedMethodsImplemented LastCypressDirectory'
+		CachedMethodsImplemented LastCypressDirectory
+		LastClassSearchBoxShowedJavaOnly LastRemoteRepository
+		LastClassDocDirectory'
 	poolDictionaries:''
 	category:'Interface-Browsers-New'
 !
@@ -74,7 +78,7 @@
 copyright
 "
  COPYRIGHT (c) 2000 by eXept Software AG
-	      All Rights Reserved
+              All Rights Reserved
 
  This software is furnished under a license and may be used
  only in accordance with the terms of that license and with the
@@ -89,21 +93,21 @@
 "
     A new, much improved, system browser,
     providing:
-	multiple buffers
-	multi-select in most selectionLists
-	view-selection (by namespace, by project, by category ...)
-	embedded repository diff
-	more search operations
-	code checker (not yet complete)
-	some refactoryBrowser functionality
-	completely built using GUI painter and reusable components.
+        multiple buffers
+        multi-select in most selectionLists
+        view-selection (by namespace, by project, by category ...)
+        embedded repository diff
+        more search operations
+        code checker (not yet complete)
+        some refactoryBrowser functionality
+        completely built using GUI painter and reusable components.
 
     [author:]
-	cg@exept.de
+        cg@exept.de
 
     [see also:]
-	SystemBrowser BrowserView
-	VersionDiffBrowser
+        SystemBrowser BrowserView
+        VersionDiffBrowser
 "
 !
 
@@ -153,24 +157,24 @@
 "/        space:true.
 
     menuItem := MenuItem new
-		    value: action;
-		    isButton: true;
-		    translateLabel: true;
-		    icon:icon;
-		    nameKey: #newSystemBrowser;
-		    activeHelpKey: #newSystemBrowser;
-		    submenuChannel: #menuClassHistoryNew;
-		    showBusyCursorWhilePerforming:true.
+                    value: action;
+                    isButton: true;
+                    translateLabel: true;
+                    icon:icon;
+                    nameKey: #newSystemBrowser;
+                    activeHelpKey: #newSystemBrowser;
+                    submenuChannel: #menuClassHistoryNew;
+                    showBusyCursorWhilePerforming:true.
 
     NewLauncher
-	addMenuItem:menuItem
-	from:self
-	in:'toolbar'
-	position:#(before systemBrowser)
-	space:false.
+        addMenuItem:menuItem
+        from:self
+        in:'toolbar'
+        position:#(before systemBrowser)
+        space:false.
     currentLauncher := NewLauncher current.
     currentLauncher notNil ifTrue:[
-	currentLauncher systemBrowserItemVisible value:false.
+        currentLauncher systemBrowserItemVisible value:false.
     ]
 
     "
@@ -188,7 +192,7 @@
 
     "/ could be autoloaded
     RefactoryChangeManager notNil ifTrue:[
-	RefactoryChangeManager autoload.
+        RefactoryChangeManager autoload.
     ]
 !
 
@@ -217,7 +221,7 @@
     NewLauncher removeUserTool:#newSystemBrowser.
     currentLauncher := NewLauncher current.
     currentLauncher notNil ifTrue:[
-	currentLauncher systemBrowserItemVisible value:true
+        currentLauncher systemBrowserItemVisible value:true
     ]
 
     "
@@ -234,10 +238,10 @@
 
 update:something with:aParameter from:changedObject
     something == #initialized ifTrue:[
-	changedObject == ObjectMemory ifTrue:[
-	    self installInLauncher.
-	    ObjectMemory removeDependent:self.
-	]
+        changedObject == ObjectMemory ifTrue:[
+            self installInLauncher.
+            ObjectMemory removeDependent:self.
+        ]
     ].
 ! !
 
@@ -247,34 +251,22 @@
     |newEntry|
 
     (newEntry := self bookmarkForClass:aClass selector:aSelectorOrNil) notNil ifTrue:[
-	(self bookmarks includes:newEntry) ifFalse:[
-	    self bookmarks add:newEntry
-	]
+        (self bookmarks includes:newEntry) ifFalse:[
+            self bookmarks add:newEntry
+        ]
     ].
 
     "Modified: / 02-06-2011 / 12:01:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
-addToFindHistory:class selector:selector
-    FindHistory := self updateHistory:FindHistory forClass:class selector:selector
-
-    "Created: / 02-07-2011 / 18:12:31 / cg"
-!
-
-addToRecentlyClosedHistory:class selector:selector
-    RecentlyClosedList := self updateHistory:RecentlyClosedList forClass:class selector:selector
-
-    "Created: / 08-09-2012 / 21:07:22 / cg"
-!
-
 bookmarkForClass:aClass selector:aSelectorOrNil
 
-    ^aSelectorOrNil
-	ifNil:[Bookmark forClass: aClass ]
-	ifNotNil:[Bookmark forClass: aClass selector: aSelectorOrNil ]
+    ^aSelectorOrNil isNil
+        ifTrue:[Bookmark forClass: aClass ]
+        ifFalse:[Bookmark forClass: aClass selector: aSelectorOrNil ]
 
     "Created: / 05-05-2011 / 23:36:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 02-06-2011 / 23:21:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 02-05-2014 / 17:34:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 bookmarks
@@ -287,8 +279,8 @@
 
 classHistory
     NewNavigationHistory isNil ifTrue:[
-	NewNavigationHistory := NavigationHistory new.
-	NewNavigationHistory beGlobalHistory.
+        NewNavigationHistory := NavigationHistory new.
+        NewNavigationHistory beGlobalHistory.
     ].
     ^ NewNavigationHistory
 
@@ -296,30 +288,31 @@
 !
 
 updateHistory:historyOrNil forClass:class selector:selector
-    |newEntry history|
+    |newEntry history historyToRemove |
 
     newEntry := self historyEntryForClass:class selector:selector.
     newEntry isNil ifTrue:[^ historyOrNil].
 
     (history := historyOrNil) isNil ifTrue:[
-	history := OrderedCollection new.
-    ].
-
-    history := history
-		select:[:entry |
-		    entry className ~= newEntry className
-		    or:[entry selector ~= newEntry selector
-		    or:[entry meta ~= newEntry meta]]
-		].
+        history := OrderedCollection new.
+    ].
+
+    historyToRemove := history
+                reject:[:entry |
+                    entry className ~= newEntry className
+                    or:[entry selector ~= newEntry selector
+                    or:[entry meta ~= newEntry meta]]
+                ].
+    history removeAll: historyToRemove.
 
     history addFirst:newEntry.
     history size > 30 ifTrue:[
-	history removeLast.
+        history removeLast.
     ].
     ^ history
 
     "Created: / 08-09-2012 / 21:09:19 / cg"
-    "Modified: / 13-09-2012 / 18:14:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 02-05-2014 / 17:45:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !NewSystemBrowser class methodsFor:'defaults'!
@@ -351,13 +344,13 @@
 'Manage bookmarks'
 
 #goBack
-'Go back in local visited history'
+'Go back in local visited history.\This remembers the locally visited methods'
 
 #goBackInGlobalHistory
-'Go back in global visited history'
+'Go back in global visited history.\This remembers the last visited method on a per class base'
 
 #goForward
-'Go forward in local visited history'
+'Go forward in local visited history.\This remembers the locally visited methods'
 
 #recentChanges
 'Recent changes'
@@ -378,7 +371,7 @@
 'The editing mode ("Insert" vs. "Overwrite"). Right-click to change'
 
 #packageInfoLabel
-'Package and revision info (for class or method)'
+'Package and revision info (for class or method).\Colorized if manager is different from default manager'
 
 #addBreakPoint
 'Add breakpoint on method'
@@ -447,7 +440,7 @@
 'Format code (PrettyPrint)'
 
 #showCodeCoverage
-'Show code coverage (red=uncovered; green=covered; orange=partially covered).\Enabled after a recompile with instrumentation.'
+'Show code coverage (red=uncovered; green=covered; orange=partially covered).\Enabled after a recompile with instrumentation'
 
 #hideToolBar
 'Hide toolbar. Show again via the "View"-Menu'
@@ -464,43 +457,19 @@
 ).
 
     (RefactoryChangeManager notNil and:[ RefactoryChangeManager isLoaded ]) ifTrue:[
-	manager := RefactoryChangeManager instance.
-	manager hasUndoableOperations
-	ifTrue:[
-	    spec at:#undoOperation put:(self resources string:'Undo (%1)' with:manager undoChange name).
-	].
-	manager hasRedoableOperations
-	ifTrue:[
-	    spec at:#redoOperation put:(self resources string:'Redo (%1)' with:manager redoChange name).
-	].
+        manager := RefactoryChangeManager instance.
+        manager hasUndoableOperations
+        ifTrue:[
+            spec at:#undoOperation put:(self resources string:'Undo (%1)' with:manager undoChange name).
+        ].
+        manager hasRedoableOperations
+        ifTrue:[
+            spec at:#redoOperation put:(self resources string:'Redo (%1)' with:manager redoChange name).
+        ].
     ].
     ^ spec.
 
     "Modified: / 09-08-2012 / 09:37:10 / cg"
-!
-
-helpSpec
-    "This resource specification was automatically generated
-     by the UIHelpTool of ST/X."
-
-    "Do not manually edit this!! If it is corrupted,
-     the UIHelpTool may not be able to read the specification."
-
-    "
-     UIHelpTool openOnClass:Tools::NewSystemBrowser
-    "
-
-    <resource: #help>
-
-    ^ super helpSpec addPairsFrom:#(
-
-#runTestCases
-''
-
-#runTestCasesWithDebug
-''
-
-)
 ! !
 
 !NewSystemBrowser class methodsFor:'image specs'!
@@ -514,53 +483,78 @@
 !
 
 defaultIcon1
+    <resource: #image>
     "This resource specification was automatically generated
      by the ImageEditor of ST/X."
-
     "Do not manually edit this!! If it is corrupted,
      the ImageEditor may not be able to read the specification."
-
     "
      self defaultIcon1 inspect
      ImageEditor openOnClass:self andSelector:#defaultIcon1
-     Icon flushCachedIcons
-    "
-
-    <resource: #image>
-
-    ^Icon
-	constantNamed:#'Tools::NewSystemBrowser class defaultIcon1'
-	ifAbsentPut:[(Depth4Image new) width: 28; height: 28; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+     Icon flushCachedIcons"
+
+    ^ Icon constantNamed:#'Tools::NewSystemBrowser class defaultIcon1'
+        ifAbsentPut:[
+            (Depth4Image new)
+                width:28;
+                height:28;
+                photometric:(#palette);
+                bitsPerSample:(#( 4 ));
+                samplesPerPixel:(1);
+                bits:(ByteArray
+                            fromPackedString:'
 @@@@@@@@@@@@@@@@@@@FY&Y&Y&X0@@@@@FY @@YDQDQDQB@@@@@FXFX@A$QDQDQDH@@@@FY Y&@CH"H"H"H @@@@X@@@X@@@@@@@@@@@@@A&XFY @@@@H@@@
 @@@@@@Y Y @@@@@ @@@@@@@@@FY @@@@@B@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@@@@@@@@A&Y&Y&Y#@@@@@F@"H"HFDQDQDQH@@@@@@@@@@@L"H"H"
 H @@@@@ @@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@@@@@@@@A&Y&Y&Y#@@@@@F@"H"HFUUUUUUH@@@@@@@@@@@L"H"H"H @@@@@@
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@B@B@ @B@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-@@@@@@@@@@@@@@@@@@@@@@@@H@@@@ @@@@H@@ @@@@Hb') ; colorMapFromArray:#[0 0 0 0 255 0 127 127 127 170 170 170 255 0 0 255 255 0 255 255 255]; mask:((Depth1Image new) width: 28; height: 28; photometric:(#blackIs0); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+@@@@@@@@@@@@@@@@@@@@@@@@H@@@@ @@@@H@@ @@@@Hb');
+                colorMapFromArray:#[ 0 0 0 0 255 0 127 127 127 170 170 170 255 0 0 255 255 0 255 255 255 ];
+                mask:((ImageMask new)
+                            width:28;
+                            height:28;
+                            bits:(ByteArray
+                                        fromPackedString:'
 ??0C O?<A<C??@? ??0_<O?<G?C??A?0@ @O8@H@A<@B@@N@@ O?8@\C?>@G??? A0O?8@HC?>@B@@@@@ O?8@\C?>@G??? A0O?8@@C?>@@@@@@9O]7\IRT
-QDBD%DQ@!!OH''HHRQEABT$QPP99]7\@@a') ; yourself); yourself]
+QDBD%DQ@!!OH''HHRQEABT$QPP99]7\@@a');
+                            yourself);
+                yourself
+        ]
 !
 
 doNotShowInheritedMethodsIcon
+    <resource: #image>
     "This resource specification was automatically generated
      by the ImageEditor of ST/X."
-
     "Do not manually edit this!! If it is corrupted,
      the ImageEditor may not be able to read the specification."
-
     "
      self doNotShowInheritedMethodsIcon inspect
      ImageEditor openOnClass:self andSelector:#doNotShowInheritedMethodsIcon
-     Icon flushCachedIcons
-    "
-
-    <resource: #image>
-
-    ^Icon
-	constantNamed:#'Tools::NewSystemBrowser class doNotShowInheritedMethodsIcon'
-	ifAbsentPut:[(Depth2Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(2 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'UUUUUUUUUUU@@@@EUDP@AT@@@@AT@@@EP@Q@AUUUUTU@@@@APUQDDTP@@@E@@@@EUUU@AUUUUPUT@@@UU@@EUP@a') ; colorMapFromArray:#[0 0 0 255 255 255 255 255 127 127 127 127]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+     Icon flushCachedIcons"
+
+    ^ Icon
+        constantNamed:#'Tools::NewSystemBrowser class doNotShowInheritedMethodsIcon'
+        ifAbsentPut:[
+            (Depth2Image new)
+                width:16;
+                height:16;
+                photometric:(#palette);
+                bitsPerSample:(#( 2 ));
+                samplesPerPixel:(1);
+                bits:(ByteArray
+                            fromPackedString:'UUUUUUUUUUU@@@@EUDP@AT@@@@AT@@@EP@Q@AUUUUTU@@@@APUQDDTP@@@E@@@@EUUU@AUUUUPUT@@@UU@@EUP@a');
+                colorMapFromArray:#[ 0 0 0 255 255 255 255 255 127 127 127 127 ];
+                mask:((ImageMask new)
+                            width:16;
+                            height:16;
+                            bits:(ByteArray
+                                        fromPackedString:'
 @@@@@@@@G0@@@@@@A<@@@@@@@_@@@@@@@G0@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a') ; yourself); yourself]
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a');
+                            yourself);
+                yourself
+        ]
 !
 
 hideToolBarIcon
@@ -573,33 +567,46 @@
 !
 
 initializeClass20x20Icon
+    <resource: #image>
     "This resource specification was automatically generated
      by the ImageEditor of ST/X."
-
     "Do not manually edit this!! If it is corrupted,
      the ImageEditor may not be able to read the specification."
-
     "
      self initializeClass20x20Icon inspect
      ImageEditor openOnClass:self andSelector:#initializeClass20x20Icon
-     Icon flushCachedIcons
-    "
-
-    <resource: #image>
-
-    ^Icon
-	constantNamed:'Tools::NewSystemBrowser class initializeClass20x20Icon'
-	ifAbsentPut:[(Depth8Image new) width: 20; height: 20; photometric:(#palette); bitsPerSample:(#[8]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+     Icon flushCachedIcons"
+
+    ^ Icon
+        constantNamed:'Tools::NewSystemBrowser class initializeClass20x20Icon'
+        ifAbsentPut:[
+            (Depth8Image new)
+                width:20;
+                height:20;
+                photometric:(#palette);
+                bitsPerSample:(#[ 8 ]);
+                samplesPerPixel:(1);
+                bits:(ByteArray
+                            fromPackedString:'
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BP$@@@@@@@@@@@@@@@@@@@@@@@$HB@$@@@@@@@@@@@@@@@@@@@@@BP HBP@@@@@@@@@@@@@@@@@@
 @@$HB@ HBP@@@@@@@@@@@@@@@@@@BP HB@ I@@@@@@@DA@PDA@PDA@PIB@ HB@$C@@@@@@PA@PDA@PDA@P$HB@ HBPD@@@@@A@DA@PDA@PDABP HB@ I@P@@
 @@@D@PDA@PDA@PDABP HBPDA@@@@@@PA@PDA@PDA@PDABP$A@PD@@@@@A@DA@PDA@PDA@P$HB@$A@P@@@@@D@PDA@PDA@PDABP HBPDA@@@@@@LB@ HB@ HB
 @ HBBP$B@ H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a') ; colorMapFromArray:#[0 0 0 32 223 32 127 127 127 170 170 170 255 255 255 0 0 0 248 252 128 208 220 0 255 251 176 226 167 74]; mask:((Depth1Image new) width: 20; height: 20; photometric:(#blackIs0); bitsPerSample:(#[1]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a');
+                colorMapFromArray:#[ 0 0 0 32 223 32 127 127 127 170 170 170 255 255 255 0 0 0 248 252 128 208 220 0 255 251 176 226 167 74 ];
+                mask:((ImageMask new)
+                            width:20;
+                            height:20;
+                            bits:(ByteArray
+                                        fromPackedString:'
 @@@@@@X@@@<@@@<@@A>@_?? _?? _?? _?? _?? _?? _?? _?? _?? _?? @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a') ; yourself); yourself]
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a');
+                            yourself);
+                yourself
+        ]
 !
 
 initializeSharedPool20x20Icon
@@ -609,134 +616,198 @@
 !
 
 initializeSharedPool20x20Icon1
+    <resource: #image>
     "This resource specification was automatically generated
      by the ImageEditor of ST/X."
-
     "Do not manually edit this!! If it is corrupted,
      the ImageEditor may not be able to read the specification."
-
     "
      self initializeSharedPool20x20Icon inspect
      ImageEditor openOnClass:self andSelector:#initializeSharedPool20x20Icon
-     Icon flushCachedIcons
-    "
-
-    <resource: #image>
-
-    ^Icon
-	constantNamed:'Tools::NewSystemBrowser class initializeSharedPool20x20Icon'
-	ifAbsentPut:[(Depth8Image new) width: 20; height: 20; photometric:(#palette); bitsPerSample:(#[8]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+     Icon flushCachedIcons"
+
+    ^ Icon
+        constantNamed:'Tools::NewSystemBrowser class initializeSharedPool20x20Icon'
+        ifAbsentPut:[
+            (Depth8Image new)
+                width:20;
+                height:20;
+                photometric:(#palette);
+                bitsPerSample:(#[ 8 ]);
+                samplesPerPixel:(1);
+                bits:(ByteArray
+                            fromPackedString:'
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BP$@@@@@@@@@@@@@@@@@@@@@@@$HB@$@@@@@@@@@@@@@@@@@@@@@BP HBP@@@@@@@@@@@@@@@@@@
 @@$HB@ HBP@@@@@@@@@@@@@@@@@@BP HB@ I@@@@@@@DA@PDA@PDA@PIB@ HB@$C@@@@@@PA@PDA@PDA@P$HB@ HBPD@@@@@A@DA@PDA@PDABP HB@ I@P@@
 @@@D@PDA@PDA@PDABP HBPDA@@@@@@PA@PDA@PDA@PDABP$A@PD@@@@@A@DA@PDA@PDA@P$HB@$A@P@@@@@D@PDA@PDA@PDABP HBPDA@@@@@@LB@ HB@ HB
 @ HBBP$B@ H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a') ; colorMapFromArray:#[0 0 0 0 127 255 127 127 127 170 170 170 255 255 255 0 0 0 248 252 128 208 220 0 255 251 176 226 167 74]; mask:((Depth1Image new) width: 20; height: 20; photometric:(#blackIs0); bitsPerSample:(#[1]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a');
+                colorMapFromArray:#[ 0 0 0 0 127 255 127 127 127 170 170 170 255 255 255 0 0 0 248 252 128 208 220 0 255 251 176 226 167 74 ];
+                mask:((ImageMask new)
+                            width:20;
+                            height:20;
+                            bits:(ByteArray
+                                        fromPackedString:'
 @@@@@@X@@@<@@@<@@A>@_?? _?? _?? _?? _?? _?? _?? _?? _?? _?? @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a') ; yourself); yourself]
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a');
+                            yourself);
+                yourself
+        ]
 
     "Created: / 01-06-2012 / 15:53:14 / cg"
 !
 
 initializeSharedPool20x20Icon2
+    <resource: #image>
     "This resource specification was automatically generated
      by the ImageEditor of ST/X."
-
     "Do not manually edit this!! If it is corrupted,
      the ImageEditor may not be able to read the specification."
-
     "
      self initializeSharedPool20x20Icon2 inspect
      ImageEditor openOnClass:self andSelector:#initializeSharedPool20x20Icon2
-     Icon flushCachedIcons
-    "
-
-    <resource: #image>
-
-    ^Icon
-	constantNamed:'Tools::NewSystemBrowser initializeSharedPool20x20Icon2'
-	ifAbsentPut:[(Depth8Image new) width: 20; height: 20; photometric:(#palette); bitsPerSample:(#[8]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+     Icon flushCachedIcons"
+
+    ^ Icon
+        constantNamed:'Tools::NewSystemBrowser initializeSharedPool20x20Icon2'
+        ifAbsentPut:[
+            (Depth8Image new)
+                width:20;
+                height:20;
+                photometric:(#palette);
+                bitsPerSample:(#[ 8 ]);
+                samplesPerPixel:(1);
+                bits:(ByteArray
+                            fromPackedString:'
 @@@@@@@@@@@@@@@@@@@M@@@@@@@@@@@@@@@@@@@@@@@@CP8M@@@@@@@@@@@@@@@@@@@MCP@MC04@CP4@@@@@@@@@@@@@CQ@QCQDRDP4QD@4@@@@@@@@@@@@@
 CQLTEQXUEALM@@@@@@@@@@@@@@@@CQDVB1XQCP@@@@@DA@PDA@PDA@PMDQXKE!!DM@@@@@@PA@PDA@PDACQLTEQXUEALM@@@@A@DA@PDA@P4PDP4QD!!DMDQ@M
 @@@D@PDA@PDA@P4M@P4OCPDMCP@@@@PA@PDA@PDA@PDACP8M@PD@@@@@A@DA@PDA@PDA@PDACPDA@P@@@@@D@PDA@PDA@PDA@PDA@PDA@@@@@@LB@ HB@ HB
 @ HB@ HB@ H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a') ; colorMapFromArray:#[0 0 0 0 127 255 127 127 127 170 170 170 255 255 255 0 0 0 248 252 128 208 220 0 255 251 176 226 167 74 87 87 87 255 248 248 240 240 240 240 144 24 255 248 48 255 248 96 255 248 24 240 208 24 255 248 152 255 248 88 255 248 136 255 248 176 255 248 200]; mask:((Depth1Image new) width: 20; height: 20; photometric:(#blackIs0); bitsPerSample:(#[1]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a');
+                colorMapFromArray:#[ 0 0 0 0 127 255 127 127 127 170 170 170 255 255 255 0 0 0 248 252 128 208 220 0 255 251 176 226 167 74 87 87 87 255 248 248 240 240 240 240 144 24 255 248 48 255 248 96 255 248 24 240 208 24 255 248 152 255 248 88 255 248 136 255 248 176 255 248 200 ];
+                mask:((ImageMask new)
+                            width:20;
+                            height:20;
+                            bits:(ByteArray
+                                        fromPackedString:'
 @@H@@@\@@C] @G?0@C? _?? _?? _?? _??0_?? _?? _?? _?? _?? _?? @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a') ; yourself); yourself]
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a');
+                            yourself);
+                yourself
+        ]
 !
 
 showCategoriesIcon
+    <resource: #image>
     "This resource specification was automatically generated
      by the ImageEditor of ST/X."
-
     "Do not manually edit this!! If it is corrupted,
      the ImageEditor may not be able to read the specification."
-
     "
      self showCategoriesIcon inspect
      ImageEditor openOnClass:self andSelector:#showCategoriesIcon
-     Icon flushCachedIcons
-    "
-
-    <resource: #image>
-
-    ^Icon
-	constantNamed:#'Tools::NewSystemBrowser class showCategoriesIcon'
-	ifAbsentPut:[(Depth1Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'?????8@C??.@@N@C @O?>8@A''?6 @X@C??/?<>@G8C<b') ; colorMapFromArray:#[0 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+     Icon flushCachedIcons"
+
+    ^ Icon constantNamed:#'Tools::NewSystemBrowser class showCategoriesIcon'
+        ifAbsentPut:[
+            (Depth1Image new)
+                width:16;
+                height:16;
+                photometric:(#palette);
+                bitsPerSample:(#( 1 ));
+                samplesPerPixel:(1);
+                bits:(ByteArray
+                            fromPackedString:'?????8@C??.@@N@C @O?>8@A''?6 @X@C??/?<>@G8C<b');
+                colorMapFromArray:#[ 0 0 0 255 255 255 ];
+                mask:((ImageMask new)
+                            width:16;
+                            height:16;
+                            bits:(ByteArray
+                                        fromPackedString:'
 @@@@@A?8@@@@@A?8@@@@@A?8@@@@@A?8@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a') ; yourself); yourself]
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a');
+                            yourself);
+                yourself
+        ]
 !
 
 showClassHierarchyIcon
+    <resource: #image>
     "This resource specification was automatically generated
      by the ImageEditor of ST/X."
-
     "Do not manually edit this!! If it is corrupted,
      the ImageEditor may not be able to read the specification."
-
     "
      self showClassHierarchyIcon inspect
      ImageEditor openOnClass:self andSelector:#showClassHierarchyIcon
-     Icon flushCachedIcons
-    "
-
-    <resource: #image>
-
-    ^Icon
-	constantNamed:#'Tools::NewSystemBrowser class showClassHierarchyIcon'
-	ifAbsentPut:[(Depth1Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'?????8@C O.@@N@C @O?>8@A&@6 @X@C? O?<>@G8C<b') ; colorMapFromArray:#[0 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+     Icon flushCachedIcons"
+
+    ^ Icon
+        constantNamed:#'Tools::NewSystemBrowser class showClassHierarchyIcon'
+        ifAbsentPut:[
+            (Depth1Image new)
+                width:16;
+                height:16;
+                photometric:(#palette);
+                bitsPerSample:(#( 1 ));
+                samplesPerPixel:(1);
+                bits:(ByteArray
+                            fromPackedString:'?????8@C O.@@N@C @O?>8@A&@6 @X@C? O?<>@G8C<b');
+                colorMapFromArray:#[ 0 0 0 255 255 255 ];
+                mask:((ImageMask new)
+                            width:16;
+                            height:16;
+                            bits:(ByteArray
+                                        fromPackedString:'
 @@@@@@@@O0@@@@@@C<@@@@@@@?@@@@@@@O0@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a') ; yourself); yourself]
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a');
+                            yourself);
+                yourself
+        ]
 !
 
 showInheritedMethodsIcon
+    <resource: #image>
     "This resource specification was automatically generated
      by the ImageEditor of ST/X."
-
     "Do not manually edit this!! If it is corrupted,
      the ImageEditor may not be able to read the specification."
-
     "
      self showInheritedMethodsIcon inspect
      ImageEditor openOnClass:self andSelector:#showInheritedMethodsIcon
-     Icon flushCachedIcons
-    "
-
-    <resource: #image>
-
-    ^Icon
-	constantNamed:#'Tools::NewSystemBrowser class showInheritedMethodsIcon'
-	ifAbsentPut:[(Depth2Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(2 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'UUUQUUUUTWU@@@CMT@A@HT@@@2MT@@B(P@@@@EUUUTU@@@@APU@@@TP@@@E@@@@EUUP@AUUUUPUT@@@UU@@EUP@a') ; colorMapFromArray:#[0 0 0 255 255 255 255 255 127 127 127 127]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+     Icon flushCachedIcons"
+
+    ^ Icon
+        constantNamed:#'Tools::NewSystemBrowser class showInheritedMethodsIcon'
+        ifAbsentPut:[
+            (Depth2Image new)
+                width:16;
+                height:16;
+                photometric:(#palette);
+                bitsPerSample:(#( 2 ));
+                samplesPerPixel:(1);
+                bits:(ByteArray
+                            fromPackedString:'UUUQUUUUTWU@@@CMT@A@HT@@@2MT@@B(P@@@@EUUUTU@@@@APU@@@TP@@@E@@@@EUUP@AUUUUPUT@@@UU@@EUP@a');
+                colorMapFromArray:#[ 0 0 0 255 255 255 255 255 127 127 127 127 ];
+                mask:((ImageMask new)
+                            width:16;
+                            height:16;
+                            bits:(ByteArray
+                                        fromPackedString:'
 @@@@A@@NO08@G0@_C9<@@@@@@>@@@@@@@O @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a') ; yourself); yourself]
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a');
+                            yourself);
+                yourself
+        ]
 !
 
 startNewSystemBrowserIcon
@@ -763,110 +834,111 @@
 
     ^
      #(FullSpec
-	name: browserPageSpec
-	window:
+        name: browserPageSpec
+        window:
        (WindowSpec
-	  label: 'NewSystemBrowser'
-	  name: 'NewSystemBrowser'
-	  min: (Point 0 0)
-	  bounds: (Rectangle 0 0 800 700)
-	  menu: mainMenu
-	  icon: defaultIcon
-	)
-	component:
+          label: 'NewSystemBrowser'
+          name: 'NewSystemBrowser'
+          min: (Point 0 0)
+          bounds: (Rectangle 0 0 800 700)
+          menu: mainMenu
+          icon: defaultIcon
+        )
+        component:
        (SpecCollection
-	  collection: (
-	   (NoteBookViewSpec
-	      name: 'BrowserPageContents'
-	      layout: (LayoutFrame 0 0 0 0 0 1 0 1)
-	      canvas: browserCanvas
-	      keepCanvasAlive: true
-	    )
-	   (ViewSpec
-	      name: 'ToolBar'
-	      layout: (LayoutFrame 0 0 0 0 0 1 40 0)
-	      level: 0
-	      visibilityChannel: toolBarVisibleHolder
-	      component:
-	     (SpecCollection
-		collection: (
-		 (ActionButtonSpec
-		    label: 'hideToolBarIcon'
-		    name: 'HideToolBarButton'
-		    layout: (LayoutFrame 0 0 0 0 13 0 0 1)
-		    activeHelpKey: hideToolBar
-		    level: 0
-		    hasCharacterOrientedLabel: false
-		    translateLabel: true
-		    model: hideToolbar
-		    postBuildCallback: hideToolBarButtonCreated:
-		  )
-		 (MenuPanelSpec
-		    name: 'ToolBarMenu'
-		    layout: (LayoutFrame 13 0.0 0 0.0 -250 1.0 0 1.0)
-		    level: 0
-		    visibilityChannel: toolBarVisibleHolder
-		    menu: toolBarMenu
-		    textDefault: true
-		  )
-		 (UISubSpecification
-		    name: 'SubSpecification1'
-		    layout: (LayoutFrame -250 1 0 0 0 1 0 1)
-		    level: 0
-		    minorKey: #'searchSpec_live_level0'
-		  )
-		 )
-
-	      )
-	    )
-	   (ViewSpec
-	      name: 'BookmarkBar'
-	      layout: (LayoutFrame 0 0 40 0 0 1 67 0)
-	      visibilityChannel: bookmarkBarVisibleHolder
-	      component:
-	     (SpecCollection
-		collection: (
-		 (ActionButtonSpec
-		    label: 'hideToolBarIcon'
-		    name: 'Button1'
-		    layout: (LayoutFrame 0 0 0 0 13 0 0 1)
-		    activeHelpKey: hideToolBar
-		    level: 0
-		    hasCharacterOrientedLabel: false
-		    translateLabel: true
-		    model: hideBookmarkBar
-		    postBuildCallback: hideToolBarButtonCreated:
-		  )
-		 (SubCanvasSpec
-		    name: 'Bookmarks'
-		    layout: (LayoutFrame 13 0 2 0 0 1 -1 1)
-		    level: 0
-		    hasHorizontalScrollBar: false
-		    hasVerticalScrollBar: false
-		    miniScrollerHorizontal: false
-		    majorKey: BookmarkBar
-		    subAspectHolders:
-		   (Array
-
-		     (SubChannelInfoSpec
-			subAspect: bookmarkHolder
-			aspect: bookmarkHolder
-		      )
-		     (SubChannelInfoSpec
-			subAspect: bookmarksHolder
-			aspect: bookmarkListHolder
-		      )
-		    )
-		    createNewApplication: true
-		    createNewBuilder: true
-		  )
-		 )
-
-	      )
-	    )
-	   )
-
-	)
+          collection: (
+           (NoteBookViewSpec
+              name: 'BrowserPageContents'
+              layout: (LayoutFrame 0 0 0 0 0 1 0 1)
+              canvas: browserCanvas
+              keepCanvasAlive: true
+              translateLabel: false
+            )
+           (ViewSpec
+              name: 'ToolBar'
+              layout: (LayoutFrame 0 0 0 0 0 1 40 0)
+              level: 0
+              visibilityChannel: toolBarVisibleHolder
+              component:
+             (SpecCollection
+                collection: (
+                 (ActionButtonSpec
+                    label: 'hideToolBarIcon'
+                    name: 'HideToolBarButton'
+                    layout: (LayoutFrame 0 0 0 0 13 0 0 1)
+                    activeHelpKey: hideToolBar
+                    level: 0
+                    hasCharacterOrientedLabel: false
+                    translateLabel: true
+                    model: hideToolbar
+                    postBuildCallback: hideToolBarButtonCreated:
+                  )
+                 (MenuPanelSpec
+                    name: 'ToolBarMenu'
+                    layout: (LayoutFrame 13 0.0 0 0.0 -250 1.0 0 1.0)
+                    level: 0
+                    visibilityChannel: toolBarVisibleHolder
+                    menu: toolBarMenu
+                    textDefault: true
+                  )
+                 (UISubSpecification
+                    name: 'SubSpecification1'
+                    layout: (LayoutFrame -250 1 0 0 0 1 0 1)
+                    level: 0
+                    minorKey: #'searchSpec_live_level0'
+                  )
+                 )
+
+              )
+            )
+           (ViewSpec
+              name: 'BookmarkBar'
+              layout: (LayoutFrame 0 0 40 0 0 1 67 0)
+              visibilityChannel: bookmarkBarVisibleHolder
+              component:
+             (SpecCollection
+                collection: (
+                 (ActionButtonSpec
+                    label: 'hideToolBarIcon'
+                    name: 'Button1'
+                    layout: (LayoutFrame 0 0 0 0 13 0 0 1)
+                    activeHelpKey: hideToolBar
+                    level: 0
+                    hasCharacterOrientedLabel: false
+                    translateLabel: true
+                    model: hideBookmarkBar
+                    postBuildCallback: hideToolBarButtonCreated:
+                  )
+                 (SubCanvasSpec
+                    name: 'Bookmarks'
+                    layout: (LayoutFrame 13 0 2 0 0 1 -1 1)
+                    level: 0
+                    hasHorizontalScrollBar: false
+                    hasVerticalScrollBar: false
+                    miniScrollerHorizontal: false
+                    majorKey: BookmarkBar
+                    subAspectHolders:
+                   (Array
+
+                     (SubChannelInfoSpec
+                        subAspect: bookmarkHolder
+                        aspect: bookmarkHolder
+                      )
+                     (SubChannelInfoSpec
+                        subAspect: bookmarksHolder
+                        aspect: bookmarkListHolder
+                      )
+                    )
+                    createNewApplication: true
+                    createNewBuilder: true
+                  )
+                 )
+
+              )
+            )
+           )
+
+        )
       )
 !
 
@@ -878,333 +950,367 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:NewSystemBrowser andSelector:#chainBrowserSpec
-     NewSystemBrowser new openInterface:#chainBrowserSpec
+     UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#chainBrowserSpec
+     Tools::NewSystemBrowser new openInterface:#chainBrowserSpec
     "
 
     <resource: #canvas>
 
     ^
-     #(#FullSpec
-	#name: #chainBrowserSpec
-	#window:
-       #(#WindowSpec
-	  #label: 'MethodBrowser'
-	  #name: 'MethodBrowser'
-	  #min: #(#Point 0 0)
-	  #bounds: #(#Rectangle 185 379 647 679)
-	)
-	#component:
-       #(#SpecCollection
-	  #collection: #(
-	    (SubCanvasSpec
-	      name: 'MessagePane'
-	      layout: (LayoutFrame 0 0 0 0 0 1 40 0)
-	      initiallyInvisible: true
-	      hasHorizontalScrollBar: false
-	      hasVerticalScrollBar: false
-	      specHolder: messageSpecHolder
-	      createNewBuilder: false
-	      postBuildCallback: postBuildMessagePane:
-	    )
-	   #(#VariableVerticalPanelSpec
-	      #name: 'VariableVerticalPanel1'
-	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-	      #showHandle: false
-	      #snapMode: #both
-	      #handlePosition: #left
-	      #component:
-	     #(#SpecCollection
-		#collection: #(
-		 #(#VariableHorizontalPanelSpec
-		    #name: 'VariableHorizontalPanel1'
-		    #showHandle: false
-		    #barWidth: 2
-		    #component:
-		   #(#SpecCollection
-		      #collection: #(
-		       #(#SubCanvasSpec
-			  #name: 'MethodList1'
-			  #majorKey: #'MethodList'
-			  #subAspectHolders:
-			 #(#Array
-
-		     #(#SubChannelInfoSpec
-			#subAspect: #showCoverageInformation
-			#aspect: #showCoverageInformation
-		      )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #doubleClickChannel
-			      #callBack: #methodDoubleClicked1
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #immediateUpdate
-			      #aspect: #immediateUpdate
-			    )
-
-			   #(#SubChannelInfoSpec
-			      #subAspect: #inGeneratorHolder
-			      #aspect: #selectorListGenerator1
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #menuHolder
-			      #aspect: #selectorPopUpMenu
-			    )
-
-			   #(#SubChannelInfoSpec
-			      #subAspect: #packageFilter
-			      #aspect: #packageFilter
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #selectedMethods
-			      #aspect: #selectedMethods1
-			      #callBack: #methodsSelectionChanged1
-			    )
-
-			   #(#SubChannelInfoSpec
-			      #subAspect: #selectionChangeCondition
-			      #aspect: #selectionChangeConditionHolder
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #sortBy
-			      #aspect: #sortBy
-			    )
-		     #(#SubChannelInfoSpec
-			#subAspect: #showMethodInheritance
-			#aspect: #showMethodInheritance
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #showMethodComplexity
-			#aspect: #showMethodComplexity
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #showMethodTypeIcon
-			#aspect: #showMethodTypeIcon
-		      )
-			  )
-			  #createNewApplication: true
-			  #createNewBuilder: true
-			)
-		       #(#SubCanvasSpec
-			  #name: 'MethodList2'
-			  #majorKey: #'MethodList'
-			  #subAspectHolders:
-			 #(#Array
-
-		     #(#SubChannelInfoSpec
-			#subAspect: #showCoverageInformation
-			#aspect: #showCoverageInformation
-		      )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #doubleClickChannel
-			      #callBack: #methodDoubleClicked2
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #immediateUpdate
-			      #aspect: #immediateUpdate
-			    )
-
-			   #(#SubChannelInfoSpec
-			      #subAspect: #inGeneratorHolder
-			      #aspect: #selectorListGenerator2
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #menuHolder
-			      #aspect: #selectorPopUpMenu
-			    )
-
-			   #(#SubChannelInfoSpec
-			      #subAspect: #packageFilter
-			      #aspect: #packageFilter
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #selectedMethods
-			      #aspect: #selectedMethods2
-			      #callBack: #methodsSelectionChanged2
-			    )
-
-			   #(#SubChannelInfoSpec
-			      #subAspect: #selectionChangeCondition
-			      #aspect: #selectionChangeConditionHolder
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #sortBy
-			      #aspect: #sortBy
-			    )
-		     #(#SubChannelInfoSpec
-			#subAspect: #showMethodInheritance
-			#aspect: #showMethodInheritance
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #showMethodComplexity
-			#aspect: #showMethodComplexity
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #showMethodTypeIcon
-			#aspect: #showMethodTypeIcon
-		      )
-			  )
-			  #createNewApplication: true
-			  #createNewBuilder: true
-			)
-		       #(#SubCanvasSpec
-			  #name: 'MethodList3'
-			  #majorKey: #'MethodList'
-			  #subAspectHolders:
-			 #(#Array
-
-		     #(#SubChannelInfoSpec
-			#subAspect: #showCoverageInformation
-			#aspect: #showCoverageInformation
-		      )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #doubleClickChannel
-			      #callBack: #methodDoubleClicked3
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #immediateUpdate
-			      #aspect: #immediateUpdate
-			    )
-
-			   #(#SubChannelInfoSpec
-			      #subAspect: #inGeneratorHolder
-			      #aspect: #selectorListGenerator3
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #menuHolder
-			      #aspect: #selectorPopUpMenu
-			    )
-
-			   #(#SubChannelInfoSpec
-			      #subAspect: #packageFilter
-			      #aspect: #packageFilter
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #selectedMethods
-			      #aspect: #selectedMethods3
-			      #callBack: #methodsSelectionChanged3
-			    )
-
-			   #(#SubChannelInfoSpec
-			      #subAspect: #selectionChangeCondition
-			      #aspect: #selectionChangeConditionHolder
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #sortBy
-			      #aspect: #sortBy
-			    )
-		     #(#SubChannelInfoSpec
-			#subAspect: #showMethodInheritance
-			#aspect: #showMethodInheritance
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #showMethodComplexity
-			#aspect: #showMethodComplexity
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #showMethodTypeIcon
-			#aspect: #showMethodTypeIcon
-		      )
-			  )
-			  #createNewApplication: true
-			  #createNewBuilder: true
-			)
-		       #(#SubCanvasSpec
-			  #name: 'MethodList4'
-			  #majorKey: #'MethodList'
-			  #subAspectHolders:
-			 #(#Array
-
-		     #(#SubChannelInfoSpec
-			#subAspect: #showCoverageInformation
-			#aspect: #showCoverageInformation
-		      )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #doubleClickChannel
-			      #callBack: #methodDoubleClicked4
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #immediateUpdate
-			      #aspect: #immediateUpdate
-			    )
-
-			   #(#SubChannelInfoSpec
-			      #subAspect: #inGeneratorHolder
-			      #aspect: #selectorListGenerator4
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #menuHolder
-			      #aspect: #selectorPopUpMenu
-			    )
-
-			   #(#SubChannelInfoSpec
-			      #subAspect: #packageFilter
-			      #aspect: #packageFilter
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #selectedMethods
-			      #aspect: #selectedMethods4
-			      #callBack: #methodsSelectionChanged4
-			    )
-
-			   #(#SubChannelInfoSpec
-			      #subAspect: #selectionChangeCondition
-			      #aspect: #selectionChangeConditionHolder
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #sortBy
-			      #aspect: #sortBy
-			    )
-		     #(#SubChannelInfoSpec
-			#subAspect: #showMethodInheritance
-			#aspect: #showMethodInheritance
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #showMethodComplexity
-			#aspect: #showMethodComplexity
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #showMethodTypeIcon
-			#aspect: #showMethodTypeIcon
-		      )
-			  )
-			  #createNewApplication: true
-			  #createNewBuilder: true
-			)
-		       )
-
-		    )
-		    #handles: #(#Any 0.25 0.5 0.75 1.0)
-		  )
-		 #(#SubCanvasSpec
-		    #name: 'CodePane'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NewSystemBrowser'
-		    #minorKey: #codePaneSpec
-		  )
-"/                 #(#CodeViewSpec
-"/                    #name: 'CodeView'
-"/                    #model: #codeHolder
-"/                    #hasHorizontalScrollBar: true
-"/                    #hasVerticalScrollBar: true
-"/                    #miniScrollerHorizontal: true
-"/              #postBuildCallback: #postBuildCodeView:
-"/              #modifiedChannel: #codeModifiedHolder
-"/                  )
-		 )
-
-	      )
-	      #handles: #(#Any 0.5 1.0)
-	      postBuildCallback: postBuildTabContentView:
-
-	    )
-	   )
-
-	)
-      )
-
-    "Modified: / 27-04-2010 / 16:29:54 / cg"
-    "Modified: / 28-08-2010 / 11:59:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    #(FullSpec
+       name: chainBrowserSpec
+       window:
+      (WindowSpec
+         label: 'MethodBrowser'
+         name: 'MethodBrowser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 462 300)
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (SubCanvasSpec
+             name: 'MessagePane'
+             layout: (LayoutFrame 0 0 0 0 0 1 40 0)
+             initiallyInvisible: true
+             hasHorizontalScrollBar: false
+             hasVerticalScrollBar: false
+             clientKey: inlineMessageApp
+             createNewBuilder: false
+             postBuildCallback: postBuildMessagePane:
+           )
+          (VariableVerticalPanelSpec
+             name: 'VariableVerticalPanel1'
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+             showHandle: false
+             snapMode: both
+             handlePosition: left
+             component:
+            (SpecCollection
+               collection: (
+                (VariableHorizontalPanelSpec
+                   name: 'VariableHorizontalPanel1'
+                   barWidth: 2
+                   showHandle: false
+                   component:
+                  (SpecCollection
+                     collection: (
+                      (SubCanvasSpec
+                         name: 'MethodList1'
+                         majorKey: MethodList
+                         subAspectHolders:
+                        (Array
+
+                          (SubChannelInfoSpec
+                             subAspect: doubleClickChannel
+                             callBack: methodDoubleClicked1
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: environmentHolder
+                             aspect: environmentHolder
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: immediateUpdate
+                             aspect: immediateUpdate
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: inGeneratorHolder
+                             aspect: selectorListGenerator1
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: menuHolder
+                             aspect: selectorPopUpMenu
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: packageFilter
+                             aspect: packageFilter
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: selectedMethods
+                             aspect: selectedMethods1
+                             callBack: methodsSelectionChanged1
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: selectionChangeCondition
+                             aspect: selectionChangeConditionHolder
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: showCoverageInformation
+                             aspect: showCoverageInformation
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: showMethodComplexity
+                             aspect: showMethodComplexity
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: showMethodInheritance
+                             aspect: showMethodInheritance
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: showMethodTypeIcon
+                             aspect: showMethodTypeIcon
+                           )
+              (SubChannelInfoSpec
+                 subAspect: showSyntheticMethods
+                 aspect: showSyntheticMethods
+               ) 
+
+                          (SubChannelInfoSpec
+                             subAspect: sortBy
+                             aspect: sortBy
+                           )
+                         )
+                         createNewApplication: true
+                         createNewBuilder: true
+                       )
+                      (SubCanvasSpec
+                         name: 'MethodList2'
+                         majorKey: MethodList
+                         subAspectHolders:
+                        (Array
+
+                          (SubChannelInfoSpec
+                             subAspect: doubleClickChannel
+                             callBack: methodDoubleClicked2
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: environmentHolder
+                             aspect: environmentHolder
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: immediateUpdate
+                             aspect: immediateUpdate
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: inGeneratorHolder
+                             aspect: selectorListGenerator2
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: menuHolder
+                             aspect: selectorPopUpMenu
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: packageFilter
+                             aspect: packageFilter
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: selectedMethods
+                             aspect: selectedMethods2
+                             callBack: methodsSelectionChanged2
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: selectionChangeCondition
+                             aspect: selectionChangeConditionHolder
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: showCoverageInformation
+                             aspect: showCoverageInformation
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: showMethodComplexity
+                             aspect: showMethodComplexity
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: showMethodInheritance
+                             aspect: showMethodInheritance
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: showMethodTypeIcon
+                             aspect: showMethodTypeIcon
+                           )
+              (SubChannelInfoSpec
+                 subAspect: showSyntheticMethods
+                 aspect: showSyntheticMethods
+               ) 
+
+                          (SubChannelInfoSpec
+                             subAspect: sortBy
+                             aspect: sortBy
+                           )
+                         )
+                         createNewApplication: true
+                         createNewBuilder: true
+                       )
+                      (SubCanvasSpec
+                         name: 'MethodList3'
+                         majorKey: MethodList
+                         subAspectHolders:
+                        (Array
+
+                          (SubChannelInfoSpec
+                             subAspect: doubleClickChannel
+                             callBack: methodDoubleClicked3
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: environmentHolder
+                             aspect: environmentHolder
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: immediateUpdate
+                             aspect: immediateUpdate
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: inGeneratorHolder
+                             aspect: selectorListGenerator3
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: menuHolder
+                             aspect: selectorPopUpMenu
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: packageFilter
+                             aspect: packageFilter
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: selectedMethods
+                             aspect: selectedMethods3
+                             callBack: methodsSelectionChanged3
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: selectionChangeCondition
+                             aspect: selectionChangeConditionHolder
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: showCoverageInformation
+                             aspect: showCoverageInformation
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: showMethodComplexity
+                             aspect: showMethodComplexity
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: showMethodInheritance
+                             aspect: showMethodInheritance
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: showMethodTypeIcon
+                             aspect: showMethodTypeIcon
+                           )
+              (SubChannelInfoSpec
+                 subAspect: showSyntheticMethods
+                 aspect: showSyntheticMethods
+               ) 
+
+                          (SubChannelInfoSpec
+                             subAspect: sortBy
+                             aspect: sortBy
+                           )
+                         )
+                         createNewApplication: true
+                         createNewBuilder: true
+                       )
+                      (SubCanvasSpec
+                         name: 'MethodList4'
+                         majorKey: MethodList
+                         subAspectHolders:
+                        (Array
+
+                          (SubChannelInfoSpec
+                             subAspect: doubleClickChannel
+                             callBack: methodDoubleClicked4
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: environmentHolder
+                             aspect: environmentHolder
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: immediateUpdate
+                             aspect: immediateUpdate
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: inGeneratorHolder
+                             aspect: selectorListGenerator4
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: menuHolder
+                             aspect: selectorPopUpMenu
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: packageFilter
+                             aspect: packageFilter
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: selectedMethods
+                             aspect: selectedMethods4
+                             callBack: methodsSelectionChanged4
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: selectionChangeCondition
+                             aspect: selectionChangeConditionHolder
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: showCoverageInformation
+                             aspect: showCoverageInformation
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: showMethodComplexity
+                             aspect: showMethodComplexity
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: showMethodInheritance
+                             aspect: showMethodInheritance
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: showMethodTypeIcon
+                             aspect: showMethodTypeIcon
+                           )
+              (SubChannelInfoSpec
+                 subAspect: showSyntheticMethods
+                 aspect: showSyntheticMethods
+               ) 
+
+                          (SubChannelInfoSpec
+                             subAspect: sortBy
+                             aspect: sortBy
+                           )
+                         )
+                         createNewApplication: true
+                         createNewBuilder: true
+                       )
+                      )
+
+                   )
+                   handles: (Any 0.25 0.5 0.75 1.0)
+                 )
+                (SubCanvasSpec
+                   name: 'CodePane'
+                   autoHideScrollBars: false
+                   majorKey: NewSystemBrowser
+                   minorKey: codePaneSpec
+                   createNewBuilder: false
+                 )
+                )
+
+             )
+             handles: (Any 0.5 1.0)
+             postBuildCallback: postBuildTabContentView:
+           )
+          )
+
+       )
+     )
+
+    "Modified: / 25-03-2014 / 18:00:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 classDocumentationBrowserSpec
@@ -1215,54 +1321,63 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:NewSystemBrowser andSelector:#classDocumentationBrowserSpec
-     NewSystemBrowser new openInterface:#classDocumentationBrowserSpec
+     UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#classDocumentationBrowserSpec
+     Tools::NewSystemBrowser new openInterface:#classDocumentationBrowserSpec
     "
 
     <resource: #canvas>
 
     ^
-     #(#FullSpec
-	#name: #classDocumentationBrowserSpec
-	#window:
-       #(#WindowSpec
-	  #label: 'Full Class Browser'
-	  #name: 'Full Class Browser'
-	  #min: #(#Point 0 0)
-	  #bounds: #(#Rectangle 12 22 474 322)
-	)
-	#component:
-       #(#SpecCollection
-	  #collection: #(
-	   #(#VariableVerticalPanelSpec
-	      #name: 'VariableVerticalPanel1'
-	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-	      #showHandle: false
-	      #snapMode: #both
-	      #handlePosition: #left
-	      #component:
-	     #(#SpecCollection
-		#collection: #(
-		 #(#SubCanvasSpec
-		    #name: 'Navigator'
-		    #majorKey: #'NavigatorCanvas'
-		    #minorKey: #categoryAndSingleClassOnlySpec
-		  )
-		 #(#HTMLViewSpec
-		    #name: 'HTMLBrowser1'
-		    #htmlText: #classDocumentationHolder
-		    #hasHorizontalScrollBar: true
-		    #hasVerticalScrollBar: true
-		  )
-		 )
-
-	      )
-	      #handles: #(#Any 0.5 1.0)
-	    )
-	   )
-
-	)
-      )
+    #(FullSpec
+       name: classDocumentationBrowserSpec
+       window:
+      (WindowSpec
+         label: 'Full Class Browser'
+         name: 'Full Class Browser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 462 300)
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (VariableVerticalPanelSpec
+             name: 'VariableVerticalPanel1'
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+             showHandle: false
+             snapMode: both
+             handlePosition: left
+             component:
+            (SpecCollection
+               collection: (
+                (SubCanvasSpec
+                   name: 'Navigator'
+                   majorKey: NavigatorCanvas
+                   minorKey: categoryAndSingleClassOnlySpec
+                   subAspectHolders:
+                  (Array
+
+                    (SubChannelInfoSpec
+                       subAspect: environmentHolder
+                       aspect: environmentHolder
+                     )
+                   )
+                   createNewBuilder: false
+                 )
+                (HTMLViewSpec
+                   name: 'HTMLBrowser1'
+                   hasHorizontalScrollBar: true
+                   hasVerticalScrollBar: true
+                   htmlText: classDocumentationHolder
+                 )
+                )
+
+             )
+             handles: (Any 0.5 1.0)
+           )
+          )
+
+       )
+     )
 !
 
 codePaneSpec
@@ -1281,162 +1396,162 @@
 
     ^
      #(FullSpec
-	name: codePaneSpec
-	window:
+        name: codePaneSpec
+        window:
        (WindowSpec
-	  label: 'SystemBrowser'
-	  name: 'SystemBrowser'
-	  min: (Point 0 0)
-	  bounds: (Rectangle 0 0 998 535)
-	  icon: defaultIcon
-	)
-	component:
+          label: 'SystemBrowser'
+          name: 'SystemBrowser'
+          min: (Point 0 0)
+          bounds: (Rectangle 0 0 998 535)
+          icon: defaultIcon
+        )
+        component:
        (SpecCollection
-	  collection: (
-	   (VariableHorizontalPanelSpec
-	      name: 'EditorAndBrowsletBox'
-	      layout: (LayoutFrame 0 0 0 0 0 1 0 1)
-	      component:
-	     (SpecCollection
-		collection: (
-		 (ViewSpec
-		    name: 'EditorBox'
-		    component:
-		   (SpecCollection
-		      collection: (
-		       (NoteBookViewSpec
-			  name: 'EditorNoteBook'
-			  layout: (LayoutFrame 0 0 0 0 0 1 -26 1)
-			  level: 0
-			  model: selectedEditorNoteBookTabIndexHolder
-			  menu: editorNoteBookListHolder
-			  useIndex: true
-			  canvas: editorNoteBookCanvasHolder
-			  keepCanvasAlive: true
-			  postBuildCallback: postBuildEditorNoteBook:
-			)
-		       (SubCanvasSpec
-			  name: 'StringSearchToolCanvas'
-			  layout: (LayoutFrame 0 0 -24 1 0 1 0 1)
-			  visibilityChannel: stringSearchToolVisibleHolder
-			  hasHorizontalScrollBar: false
-			  hasVerticalScrollBar: false
-			  majorKey: StringSearchToolForTextView
-			  createNewApplication: true
-			  createNewBuilder: false
-			  postBuildCallback: postBuildStringSearchTool:
-			)
-		       )
-
-		    )
-		  )
-		 )
-
-	      )
-	      handles: (Any 1.0)
-	      postBuildCallback: postBuildCodePaneAndPluginView:
-	    )
-	   (ViewSpec
-	      name: 'InfoBox'
-	      layout: (LayoutFrame 0 0 -24 1 0 1 0 1)
-	      visibilityChannel: codeInfoVisible
-	      component:
-	     (SpecCollection
-		collection: (
-		 (VariableHorizontalPanelSpec
-		    name: 'InfoBoxPanel'
-		    layout: (LayoutFrame 0 0.0 0 0.0 -60 1.0 0 1.0)
-		    showHandle: false
-		    component:
-		   (SpecCollection
-		      collection: (
-		       (LabelSpec
-			  label: 'Info'
-			  name: 'InfoLabel'
-			  level: -1
-			  translateLabel: true
-			  labelChannel: infoLabelHolder
-			  adjust: left
-			)
-		       (HorizontalPanelViewSpec
-			  name: 'PackageInfoPanel'
-			  level: -1
-			  horizontalLayout: rightSpaceFit
-			  verticalLayout: fitSpace
-			  horizontalSpace: 0
-			  verticalSpace: 0
-			  elementsChangeSize: true
-			  component:
-			 (SpecCollection
-			    collection: (
-			     (LabelSpec
-				label: 'Package'
-				name: 'PackageLabel'
-				activeHelpKey: packageInfoLabel
-				level: 0
-				borderWidth: -1
-				backgroundChannel: packageInfoBackgroundColorHolder
-				translateLabel: true
-				labelChannel: packageLabelHolder
-				adjust: left
-				useDefaultExtent: true
-			      )
-			     (ActionButtonSpec
-				label: 'Info'
-				name: 'PackageInfoButton'
-				level: 0
-				initiallyInvisible: true
-				backgroundChannel: packageInfoBackgroundColorHolder
-				foregroundColor: (Color 0.0 0.0 100.0)
-				translateLabel: true
-				resizeForLabel: true
-				extent: (Point 36 23)
-				postBuildCallback: postBuildPackageInfoButton:
-			      )
-			     )
-
-			  )
-			)
-		       )
-
-		    )
-		    handles: (Any 0.66 1.0)
-		  )
-		 (LabelSpec
-		    name: 'ModeLabel'
-		    layout: (LayoutFrame -60 1 0 0.0 -50 1 0 1.0)
-		    activeHelpKey: modeLabel
-		    level: -1
-		    translateLabel: true
-		    labelChannel: modeLabelHolder
-		    postBuildCallback: postBuildEditModeInfoLabel:
-		  )
-		 (LabelSpec
-		    name: 'CursorLineLabel'
-		    layout: (LayoutFrame -50 1 0 0.0 -20 1 0 1.0)
-		    activeHelpKey: lineLabel
-		    level: -1
-		    translateLabel: true
-		    labelChannel: cursorLineLabelHolder
-		    adjust: right
-		  )
-		 (LabelSpec
-		    name: 'CursorColLabel'
-		    layout: (LayoutFrame -20 1 0 0.0 0 1.0 0 1.0)
-		    activeHelpKey: columnLabel
-		    level: -1
-		    translateLabel: true
-		    labelChannel: cursorColLabelHolder
-		    adjust: right
-		  )
-		 )
-
-	      )
-	      keepSpaceForOSXResizeHandleH: true
-	    )
-	   )
-
-	)
+          collection: (
+           (VariableHorizontalPanelSpec
+              name: 'EditorAndBrowsletBox'
+              layout: (LayoutFrame 0 0 0 0 0 1 0 1)
+              component:
+             (SpecCollection
+                collection: (
+                 (ViewSpec
+                    name: 'EditorBox'
+                    component:
+                   (SpecCollection
+                      collection: (
+                       (NoteBookViewSpec
+                          name: 'EditorNoteBook'
+                          layout: (LayoutFrame 0 0 0 0 0 1 -26 1)
+                          level: 0
+                          model: selectedEditorNoteBookTabIndexHolder
+                          menu: editorNoteBookListHolder
+                          useIndex: true
+                          canvas: editorNoteBookCanvasHolder
+                          keepCanvasAlive: true
+                          postBuildCallback: postBuildEditorNoteBook:
+              translateLabel: false
+                        )
+                       (SubCanvasSpec
+                          name: 'StringSearchToolCanvas'
+                          layout: (LayoutFrame 0 0 -24 1 0 1 0 1)
+                          visibilityChannel: stringSearchToolVisibleHolder
+                          hasHorizontalScrollBar: false
+                          hasVerticalScrollBar: false
+                          majorKey: StringSearchToolForTextView
+                          createNewApplication: true
+                          createNewBuilder: false
+                          postBuildCallback: postBuildStringSearchTool:
+                        )
+                       )
+
+                    )
+                  )
+                 )
+
+              )
+              handles: (Any 1.0)
+              postBuildCallback: postBuildCodePaneAndPluginView:
+            )
+           (ViewSpec
+              name: 'InfoBox'
+              layout: (LayoutFrame 0 0 -24 1 0 1 0 1)
+              visibilityChannel: codeInfoVisible
+              component:
+             (SpecCollection
+                collection: (
+                 (VariableHorizontalPanelSpec
+                    name: 'InfoBoxPanel'
+                    layout: (LayoutFrame 0 0.0 0 0.0 -60 1.0 0 1.0)
+                    showHandle: false
+                    component:
+                   (SpecCollection
+                      collection: (
+                       (LabelSpec
+                          label: 'Info'
+                          name: 'InfoLabel'
+                          level: -1
+                          translateLabel: true
+                          labelChannel: infoLabelHolder
+                          adjust: left
+                        )
+                       (HorizontalPanelViewSpec
+                          name: 'PackageInfoPanel'
+                          level: -1
+                          horizontalLayout: rightSpaceFit
+                          verticalLayout: fitSpace
+                          horizontalSpace: 0
+                          verticalSpace: 0
+                          elementsChangeSize: true
+                          component:
+                         (SpecCollection
+                            collection: (
+                             (LabelSpec
+                                label: 'Package'
+                                name: 'PackageLabel'
+                                activeHelpKey: packageInfoLabel
+                                level: 0
+                                backgroundChannel: packageInfoBackgroundColorHolder
+                                translateLabel: true
+                                labelChannel: packageLabelHolder
+                                adjust: left
+                                useDefaultExtent: true
+                              )
+                             (ActionButtonSpec
+                                label: 'Info'
+                                name: 'PackageInfoButton'
+                                level: 0
+                                initiallyInvisible: true
+                                backgroundChannel: packageInfoBackgroundColorHolder
+                                foregroundColor: (Color 0.0 0.0 100.0)
+                                translateLabel: true
+                                resizeForLabel: true
+                                extent: (Point 36 23)
+                                postBuildCallback: postBuildPackageInfoButton:
+                              )
+                             )
+
+                          )
+                        )
+                       )
+
+                    )
+                    handles: (Any 0.66 1.0)
+                  )
+                 (LabelSpec
+                    name: 'ModeLabel'
+                    layout: (LayoutFrame -60 1 0 0.0 -50 1 0 1.0)
+                    activeHelpKey: modeLabel
+                    level: -1
+                    translateLabel: true
+                    labelChannel: modeLabelHolder
+                    postBuildCallback: postBuildEditModeInfoLabel:
+                  )
+                 (LabelSpec
+                    name: 'CursorLineLabel'
+                    layout: (LayoutFrame -50 1 0 0.0 -20 1 0 1.0)
+                    activeHelpKey: lineLabel
+                    level: -1
+                    translateLabel: true
+                    labelChannel: cursorLineLabelHolder
+                    adjust: right
+                  )
+                 (LabelSpec
+                    name: 'CursorColLabel'
+                    layout: (LayoutFrame -20 1 0 0.0 0 1.0 0 1.0)
+                    activeHelpKey: columnLabel
+                    level: -1
+                    translateLabel: true
+                    labelChannel: cursorColLabelHolder
+                    adjust: right
+                  )
+                 )
+
+              )
+              keepSpaceForOSXResizeHandleH: true
+            )
+           )
+
+        )
       )
 !
 
@@ -1455,63 +1570,73 @@
     <resource: #canvas>
 
     ^
-     #(FullSpec
-	name: fullBrowserSpec
-	window:
-       (WindowSpec
-	  label: 'SystemBrowser'
-	  name: 'SystemBrowser'
-	  min: (Point 0 0)
-	  bounds: (Rectangle 0 0 462 300)
-	  icon: defaultIcon
-	)
-	component:
-       (SpecCollection
-	  collection: (
-	   (SubCanvasSpec
-	      name: 'MessagePane'
-	      layout: (LayoutFrame 0 0 0 0 0 1 40 0)
-	      initiallyInvisible: true
-	      hasHorizontalScrollBar: false
-	      hasVerticalScrollBar: false
-	      specHolder: messageSpecHolder
-	      createNewBuilder: false
-	      postBuildCallback: postBuildMessagePane:
-	    )
-	   (VariableVerticalPanelSpec
-	      name: 'VariableVerticalPanel1'
-	      layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-	      barWidth: 2
-	      showHandle: false
-	      snapMode: both
-	      handlePosition: left
-	      component:
-	     (SpecCollection
-		collection: (
-		 (SubCanvasSpec
-		    name: 'Navigator'
-		    autoHideScrollBars: false
-		    majorKey: NavigatorCanvas
-		    minorKey: windowSpec
-		    createNewBuilder: false
-		  )
-		 (SubCanvasSpec
-		    name: 'CodePane'
-		    autoHideScrollBars: false
-		    majorKey: NewSystemBrowser
-		    minorKey: codePaneSpec
-		    createNewBuilder: false
-		  )
-		 )
-
-	      )
-	      handles: (Any 0.5 1.0)
-	      postBuildCallback: postBuildTabContentView:
-	    )
-	   )
-
-	)
-      )
+    #(FullSpec
+       name: fullBrowserSpec
+       window:
+      (WindowSpec
+         label: 'SystemBrowser'
+         name: 'SystemBrowser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 462 300)
+         icon: defaultIcon
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (SubCanvasSpec
+             name: 'MessagePane'
+             layout: (LayoutFrame 0 0 0 0 0 1 40 0)
+             initiallyInvisible: true
+             hasHorizontalScrollBar: false
+             hasVerticalScrollBar: false
+             clientKey: inlineMessageApp
+             createNewBuilder: false
+             postBuildCallback: postBuildMessagePane:
+           )
+          (VariableVerticalPanelSpec
+             name: 'VariableVerticalPanel1'
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+             barWidth: 2
+             showHandle: false
+             snapMode: both
+             handlePosition: left
+             component:
+            (SpecCollection
+               collection: (
+                (SubCanvasSpec
+                   name: 'Navigator'
+                   autoHideScrollBars: false
+                   majorKey: NavigatorCanvas
+                   minorKey: windowSpec
+                   subAspectHolders:
+                  (Array
+
+                    (SubChannelInfoSpec
+                       subAspect: environmentHolder
+                       aspect: environmentHolder
+                     )
+                   )
+                   createNewBuilder: false
+                 )
+                (SubCanvasSpec
+                   name: 'CodePane'
+                   autoHideScrollBars: false
+                   majorKey: NewSystemBrowser
+                   minorKey: codePaneSpec
+                   createNewBuilder: false
+                 )
+                )
+
+             )
+             handles: (Any 0.5 1.0)
+             postBuildCallback: postBuildTabContentView:
+           )
+          )
+
+       )
+     )
+
+    "Modified: / 25-03-2014 / 18:01:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 fullClassSourceBrowserSpec
@@ -1522,80 +1647,78 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:NewSystemBrowser andSelector:#fullClassBrowserSpec
-     NewSystemBrowser new openInterface:#fullClassBrowserSpec
+     UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#fullClassSourceBrowserSpec
+     Tools::NewSystemBrowser new openInterface:#fullClassSourceBrowserSpec
     "
 
     <resource: #canvas>
 
     ^
-     #(#FullSpec
-	#name: #fullClassSourceBrowserSpec
-	#window:
-       #(#WindowSpec
-	  #label: 'Full Class Browser'
-	  #name: 'NewBrowser'
-	  #min: #(#Point 0 0)
-	  #bounds: #(#Rectangle 13 23 475 323)
-	)
-	#component:
-       #(#SpecCollection
-	  #collection: #(
-	    (SubCanvasSpec
-	      name: 'MessagePane'
-	      layout: (LayoutFrame 0 0 0 0 0 1 40 0)
-	      initiallyInvisible: true
-	      hasHorizontalScrollBar: false
-	      hasVerticalScrollBar: false
-	      specHolder: messageSpecHolder
-	      createNewBuilder: false
-	      postBuildCallback: postBuildMessagePane:
-	    )
-
-	   #(#VariableVerticalPanelSpec
-	      #name: 'VariableVerticalPanel1'
-	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-	      #barWidth: 2
-	      #showHandle: false
-	      #handlePosition: #left
-	      #snapMode: #both
-	      #component:
-	     #(#SpecCollection
-		#collection: #(
-		 #(#SubCanvasSpec
-		    #name: 'Navigator'
-		    #majorKey: #'NavigatorCanvas'
-		    #minorKey: #categoryAndSingleClassOnlySpec
-		  )
-		 #(#SubCanvasSpec
-		    #name: 'CodePane'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NewSystemBrowser'
-		    #minorKey: #codePaneSpec
-		  )
-"/                 #(#CodeViewSpec
-"/                    #name: 'CodeView'
-"/                    #model: #codeHolder
-"/                    #hasHorizontalScrollBar: true
-"/                    #hasVerticalScrollBar: true
-"/                    #miniScrollerHorizontal: true
-"/              #postBuildCallback: #postBuildCodeView:
-"/              #modifiedChannel: #codeModifiedHolder
-"/                  )
-		 )
-
-	      )
-	      #handles: #(#Any 0.3 1.0)
-	      postBuildCallback: postBuildTabContentView:
-
-	    )
-	   )
-
-	)
-      )
-
-    "Modified: / 24-02-2000 / 23:35:03 / cg"
-    "Modified: / 28-08-2010 / 11:59:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    #(FullSpec
+       name: fullClassSourceBrowserSpec
+       window:
+      (WindowSpec
+         label: 'Full Class Browser'
+         name: 'Full Class Browser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 462 300)
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (SubCanvasSpec
+             name: 'MessagePane'
+             layout: (LayoutFrame 0 0 0 0 0 1 40 0)
+             initiallyInvisible: true
+             hasHorizontalScrollBar: false
+             hasVerticalScrollBar: false
+             clientKey: inlineMessageApp
+             createNewBuilder: false
+             postBuildCallback: postBuildMessagePane:
+           )
+          (VariableVerticalPanelSpec
+             name: 'VariableVerticalPanel1'
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+             barWidth: 2
+             showHandle: false
+             snapMode: both
+             handlePosition: left
+             component:
+            (SpecCollection
+               collection: (
+                (SubCanvasSpec
+                   name: 'Navigator'
+                   majorKey: NavigatorCanvas
+                   minorKey: categoryAndSingleClassOnlySpec
+                   subAspectHolders:
+                  (Array
+
+                    (SubChannelInfoSpec
+                       subAspect: environmentHolder
+                       aspect: environmentHolder
+                     )
+                   )
+                   createNewBuilder: false
+                 )
+                (SubCanvasSpec
+                   name: 'CodePane'
+                   autoHideScrollBars: false
+                   majorKey: NewSystemBrowser
+                   minorKey: codePaneSpec
+                   createNewBuilder: false
+                 )
+                )
+
+             )
+             handles: (Any 0.3 1.0)
+             postBuildCallback: postBuildTabContentView:
+           )
+          )
+
+       )
+     )
+
+    "Modified: / 25-03-2014 / 18:01:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 methodListBrowserSpec
@@ -1606,133 +1729,185 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:NewSystemBrowser andSelector:#methodListBrowserSpec
-     NewSystemBrowser new openInterface:#methodListBrowserSpec
+     UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#methodListBrowserSpec
+     Tools::NewSystemBrowser new openInterface:#methodListBrowserSpec
     "
 
     <resource: #canvas>
 
-    ^
-     #(#FullSpec
-	#name: #methodListBrowserSpec
-	#window:
-       #(#WindowSpec
-	  #label: 'MethodListBrowser'
-	  #name: 'NewBrowser'
-	  #min: #(#Point 0 0)
-	  #bounds: #(#Rectangle 13 23 475 323)
-	)
-	#component:
-       #(#SpecCollection
-	  #collection: #(
-	    (SubCanvasSpec
-	      name: 'MessagePane'
-	      layout: (LayoutFrame 0 0 0 0 0 1 40 0)
-	      initiallyInvisible: true
-	      hasHorizontalScrollBar: false
-	      hasVerticalScrollBar: false
-	      specHolder: messageSpecHolder
-	      createNewBuilder: false
-	      postBuildCallback: postBuildMessagePane:
-	    )
-
-	   #(#VariableVerticalPanelSpec
-	      #name: 'VariableVerticalPanel1'
-	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-	      #snapMode: #both
-	      #handlePosition: #left
-	      #showHandle: false
-	      #component:
-	     #(#SpecCollection
-		#collection: #(
-		 #(#SubCanvasSpec
-			  #name: 'MethodList'
-			  #majorKey: #'MethodList'
-			  #subAspectHolders:
-			 #(#Array
-
-		     #(#SubChannelInfoSpec
-			#subAspect: #showCoverageInformation
-			#aspect: #showCoverageInformation
-		      )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #doubleClickChannel
-			      #callBack: #methodDoubleClicked
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #immediateUpdate
-			      #aspect: #immediateUpdate
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #inGeneratorHolder
-			      #aspect: #selectorListGenerator
-			    )
-
-			   #(#SubChannelInfoSpec
-			      #subAspect: #menuHolder
-			      #aspect: #methodListPopUpMenu
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #packageFilter
-			      #aspect: #packageFilter
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #sortBy
-			      #aspect: #sortBy
-			    )
-		     #(#SubChannelInfoSpec
-			#subAspect: #showMethodInheritance
-			#aspect: #showMethodInheritance
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #showMethodComplexity
-			#aspect: #showMethodComplexity
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #showMethodTypeIcon
-			#aspect: #showMethodTypeIcon
-		      )
-
-			   #(#SubChannelInfoSpec
-			      #subAspect: #selectedMethods
-			      #aspect: #selectedMethods
-			      #callBack: #methodsSelectionChanged
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #selectionChangeCondition
-			      #aspect: #selectionChangeConditionHolder
-			    )
-			  )
-			  #createNewApplication: true
-			  #createNewBuilder: true
-			)
-		 #(#SubCanvasSpec
-		    #name: 'CodePane'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NewSystemBrowser'
-		    #minorKey: #codePaneSpec
-		  )
-"/                 #(#CodeViewSpec
-"/                    #name: 'CodeView'
-"/                    #model: #codeHolder
-"/                    #hasHorizontalScrollBar: true
-"/                    #hasVerticalScrollBar: true
-"/                    #miniScrollerHorizontal: true
-"/                  )
-		 )
-
-	      )
-	      #handles: #(#Any 0.3 1.0)
-	      postBuildCallback: postBuildTabContentView:
-
-	    )
-	   )
-
-	)
-      )
-
-    "Modified: / 27-04-2010 / 16:30:00 / cg"
-    "Modified: / 28-08-2010 / 12:00:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    ^ 
+    #(FullSpec
+       name: methodListBrowserSpec
+       window: 
+      (WindowSpec
+         label: 'MethodListBrowser'
+         name: 'MethodListBrowser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 462 300)
+       )
+       component: 
+      (SpecCollection
+         collection: (
+          (SubCanvasSpec
+             name: 'MessagePane'
+             layout: (LayoutFrame 0 0 0 0 0 1 40 0)
+             initiallyInvisible: true
+             hasHorizontalScrollBar: false
+             hasVerticalScrollBar: false
+             clientKey: inlineMessageApp
+             createNewBuilder: false
+             postBuildCallback: postBuildMessagePane:
+           )
+          (VariableVerticalPanelSpec
+             name: 'VariableVerticalPanel1'
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+             showHandle: false
+             snapMode: both
+             handlePosition: left
+             component: 
+            (SpecCollection
+               collection: (
+                (VerticalPanelViewSpec
+                   name: 'VerticalPanel1'
+                   horizontalLayout: fit
+                   verticalLayout: bottomFit
+                   horizontalSpace: 3
+                   verticalSpace: 3
+                   component: 
+                  (SpecCollection
+                     collection: (
+                      (SubCanvasSpec
+                         name: 'MethodList'
+                         majorKey: MethodList
+                         subAspectHolders: 
+                        (Array
+                           
+                          (SubChannelInfoSpec
+                             subAspect: doubleClickChannel
+                             callBack: methodDoubleClicked
+                           ) 
+                          (SubChannelInfoSpec
+                             subAspect: environmentHolder
+                             aspect: environmentHolder
+                           )
+                           
+                          (SubChannelInfoSpec
+                             subAspect: immediateUpdate
+                             aspect: immediateUpdate
+                           ) 
+                          (SubChannelInfoSpec
+                             subAspect: inGeneratorHolder
+                             aspect: selectorListGenerator
+                           )
+                           
+                          (SubChannelInfoSpec
+                             subAspect: menuHolder
+                             aspect: methodListPopUpMenu
+                           ) 
+                          (SubChannelInfoSpec
+                             subAspect: packageFilter
+                             aspect: packageFilter
+                           )
+                           
+                          (SubChannelInfoSpec
+                             subAspect: selectedMethods
+                             aspect: selectedMethods
+                             callBack: methodsSelectionChanged
+                           ) 
+                          (SubChannelInfoSpec
+                             subAspect: selectionChangeCondition
+                             aspect: selectionChangeConditionHolder
+                           )
+                           
+                          (SubChannelInfoSpec
+                             subAspect: showCoverageInformation
+                             aspect: showCoverageInformation
+                           ) 
+                          (SubChannelInfoSpec
+                             subAspect: showMethodComplexity
+                             aspect: showMethodComplexity
+                           )
+                           
+                          (SubChannelInfoSpec
+                             subAspect: showSyntheticMethods
+                             aspect: showSyntheticMethods
+                           ) 
+                          (SubChannelInfoSpec
+                             subAspect: showMethodInheritance
+                             aspect: showMethodInheritance
+                           )
+                           
+                          (SubChannelInfoSpec
+                             subAspect: showMethodTypeIcon
+                             aspect: showMethodTypeIcon
+                           ) 
+                          (SubChannelInfoSpec
+                             subAspect: sortBy
+                             aspect: sortBy
+                           )
+                         )
+                         createNewApplication: true
+                         createNewBuilder: true
+                         extent: (Point 462 93)
+                       )
+                      (SubCanvasSpec
+                         name: 'TestRunnerEmbedded'
+                         initiallyInvisible: true
+                         visibilityChannel: testRunnerVisibleHolder
+                         hasHorizontalScrollBar: false
+                         hasVerticalScrollBar: false
+                         majorKey: #'Tools::TestRunnerEmbedded'
+                         subAspectHolders: 
+                        (Array
+                           
+                          (SubChannelInfoSpec
+                             subAspect: infoHolder
+                             aspect: infoLabelHolder
+                           ) 
+                          (SubChannelInfoSpec
+                             subAspect: methodGeneratorHolder
+                             aspect: selectorListGenerator
+                           )
+                           
+                          (SubChannelInfoSpec
+                             subAspect: selectedClassesHolder
+                             aspect: selectedClasses
+                           ) 
+                          (SubChannelInfoSpec
+                             subAspect: selectedMethodsHolder
+                             aspect: selectedMethods
+                           )
+                           
+                          (SubChannelInfoSpec
+                             subAspect: selectedProtocolsHolder
+                             aspect: selectedProtocols
+                           )
+                         )
+                         createNewApplication: true
+                         createNewBuilder: true
+                         extent: (Point 462 50)
+                       )
+                      )
+                    
+                   )
+                 )
+                (SubCanvasSpec
+                   name: 'CodePane'
+                   autoHideScrollBars: false
+                   majorKey: NewSystemBrowser
+                   minorKey: codePaneSpec
+                   createNewBuilder: false
+                 )
+                )
+              
+             )
+             handles: (Any 0.5 1.0)
+             postBuildCallback: postBuildTabContentView:
+           )
+          )
+        
+       )
+     )
 !
 
 multipleCategoryBrowserSpec
@@ -1743,79 +1918,78 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:NewSystemBrowser andSelector:#multipleCategoryBrowserSpec
-     NewSystemBrowser new openInterface:#multipleCategoryBrowserSpec
+     UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#multipleCategoryBrowserSpec
+     Tools::NewSystemBrowser new openInterface:#multipleCategoryBrowserSpec
     "
 
     <resource: #canvas>
 
     ^
-     #(#FullSpec
-	#name: #multipleCategoryBrowserSpec
-	#window:
-       #(#WindowSpec
-	  #label: 'CategoryBrowser'
-	  #name: 'NewBrowser'
-	  #min: #(#Point 0 0)
-	  #bounds: #(#Rectangle 12 22 474 322)
-	)
-	#component:
-       #(#SpecCollection
-	  #collection: #(
-	    (SubCanvasSpec
-	      name: 'MessagePane'
-	      layout: (LayoutFrame 0 0 0 0 0 1 40 0)
-	      initiallyInvisible: true
-	      hasHorizontalScrollBar: false
-	      hasVerticalScrollBar: false
-	      specHolder: messageSpecHolder
-	      createNewBuilder: false
-	      postBuildCallback: postBuildMessagePane:
-	    )
-
-	   #(#VariableVerticalPanelSpec
-	      #name: 'VariableVerticalPanel1'
-	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-	      #showHandle: false
-	      #snapMode: #both
-	      #handlePosition: #left
-	      #component:
-	     #(#SpecCollection
-		#collection: #(
-		 #(#SubCanvasSpec
-		    #name: 'Navigator'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NavigatorCanvas'
-		    #minorKey: #'multipleCategoryBrowserSpec'
-		  )
-		 #(#SubCanvasSpec
-		    #name: 'CodePane'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NewSystemBrowser'
-		    #minorKey: #codePaneSpec
-		  )
-"/                 #(#CodeViewSpec
-"/                    #name: 'CodeView'
-"/                    #model: #codeHolder
-"/                    #hasHorizontalScrollBar: true
-"/                    #hasVerticalScrollBar: true
-"/                    #miniScrollerHorizontal: true
-"/              #postBuildCallback: #postBuildCodeView:
-"/              #modifiedChannel: #codeModifiedHolder
-"/                  )
-		 )
-
-	      )
-	      #handles: #(#Any 0.3 1.0)
-	      postBuildCallback: postBuildTabContentView:
-
-	    )
-	   )
-
-	)
-      )
-
-    "Modified: / 28-08-2010 / 12:00:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    #(FullSpec
+       name: multipleCategoryBrowserSpec
+       window:
+      (WindowSpec
+         label: 'CategoryBrowser'
+         name: 'CategoryBrowser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 462 300)
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (SubCanvasSpec
+             name: 'MessagePane'
+             layout: (LayoutFrame 0 0 0 0 0 1 40 0)
+             initiallyInvisible: true
+             hasHorizontalScrollBar: false
+             hasVerticalScrollBar: false
+             clientKey: inlineMessageApp
+             createNewBuilder: false
+             postBuildCallback: postBuildMessagePane:
+           )
+          (VariableVerticalPanelSpec
+             name: 'VariableVerticalPanel1'
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+             showHandle: false
+             snapMode: both
+             handlePosition: left
+             component:
+            (SpecCollection
+               collection: (
+                (SubCanvasSpec
+                   name: 'Navigator'
+                   autoHideScrollBars: false
+                   majorKey: NavigatorCanvas
+                   minorKey: multipleCategoryBrowserSpec
+                   subAspectHolders:
+                  (Array
+
+                    (SubChannelInfoSpec
+                       subAspect: environmentHolder
+                       aspect: environmentHolder
+                     )
+                   )
+                   createNewBuilder: false
+                 )
+                (SubCanvasSpec
+                   name: 'CodePane'
+                   autoHideScrollBars: false
+                   majorKey: NewSystemBrowser
+                   minorKey: codePaneSpec
+                   createNewBuilder: false
+                 )
+                )
+
+             )
+             handles: (Any 0.3 1.0)
+             postBuildCallback: postBuildTabContentView:
+           )
+          )
+
+       )
+     )
+
+    "Modified: / 25-03-2014 / 18:01:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 multipleClassBrowserSpec
@@ -1826,80 +2000,78 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:NewSystemBrowser andSelector:#multipleClassBrowserSpec
-     NewSystemBrowser new openInterface:#multipleClassBrowserSpec
+     UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#multipleClassBrowserSpec
+     Tools::NewSystemBrowser new openInterface:#multipleClassBrowserSpec
     "
 
     <resource: #canvas>
 
     ^
-     #(#FullSpec
-	#name: #multipleClassBrowserSpec
-	#window:
-       #(#WindowSpec
-	  #label: 'ClassBrowser'
-	  #name: 'NewBrowser'
-	  #min: #(#Point 0 0)
-	  #bounds: #(#Rectangle 13 23 475 323)
-	)
-	#component:
-       #(#SpecCollection
-	  #collection: #(
-	    (SubCanvasSpec
-	      name: 'MessagePane'
-	      layout: (LayoutFrame 0 0 0 0 0 1 40 0)
-	      initiallyInvisible: true
-	      hasHorizontalScrollBar: false
-	      hasVerticalScrollBar: false
-	      specHolder: messageSpecHolder
-	      createNewBuilder: false
-	      postBuildCallback: postBuildMessagePane:
-	    )
-
-	   #(#VariableVerticalPanelSpec
-	      #name: 'VariableVerticalPanel1'
-	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-	      #showHandle: false
-	      #snapMode: #both
-	      #handlePosition: #left
-	      #component:
-	     #(#SpecCollection
-		#collection: #(
-		 #(#SubCanvasSpec
-		    #name: 'Navigator'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NavigatorCanvas'
-		    #minorKey: #'multipleClassBrowserSpec'
-		  )
-		 #(#SubCanvasSpec
-		    #name: 'CodePane'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NewSystemBrowser'
-		    #minorKey: #codePaneSpec
-		  )
-"/                 #(#CodeViewSpec
-"/                    #name: 'CodeView'
-"/                    #model: #codeHolder
-"/                    #hasHorizontalScrollBar: true
-"/                    #hasVerticalScrollBar: true
-"/                    #miniScrollerHorizontal: true
-"/              #postBuildCallback: #postBuildCodeView:
-"/              #modifiedChannel: #codeModifiedHolder
-"/                  )
-		 )
-
-	      )
-	      #handles: #(#Any 0.5 1.0)
-	      postBuildCallback: postBuildTabContentView:
-
-	    )
-	   )
-
-	)
-      )
-
-    "Modified: / 25-02-2000 / 02:08:21 / cg"
-    "Modified: / 28-08-2010 / 12:00:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    #(FullSpec
+       name: multipleClassBrowserSpec
+       window:
+      (WindowSpec
+         label: 'ClassBrowser'
+         name: 'ClassBrowser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 462 300)
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (SubCanvasSpec
+             name: 'MessagePane'
+             layout: (LayoutFrame 0 0 0 0 0 1 40 0)
+             initiallyInvisible: true
+             hasHorizontalScrollBar: false
+             hasVerticalScrollBar: false
+             clientKey: inlineMessageApp
+             createNewBuilder: false
+             postBuildCallback: postBuildMessagePane:
+           )
+          (VariableVerticalPanelSpec
+             name: 'VariableVerticalPanel1'
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+             showHandle: false
+             snapMode: both
+             handlePosition: left
+             component:
+            (SpecCollection
+               collection: (
+                (SubCanvasSpec
+                   name: 'Navigator'
+                   autoHideScrollBars: false
+                   majorKey: NavigatorCanvas
+                   minorKey: multipleClassBrowserSpec
+                   subAspectHolders:
+                  (Array
+
+                    (SubChannelInfoSpec
+                       subAspect: environmentHolder
+                       aspect: environmentHolder
+                     )
+                   )
+                   createNewBuilder: false
+                 )
+                (SubCanvasSpec
+                   name: 'CodePane'
+                   autoHideScrollBars: false
+                   majorKey: NewSystemBrowser
+                   minorKey: codePaneSpec
+                   createNewBuilder: false
+                 )
+                )
+
+             )
+             handles: (Any 0.5 1.0)
+             postBuildCallback: postBuildTabContentView:
+           )
+          )
+
+       )
+     )
+
+    "Modified: / 25-03-2014 / 18:01:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 multipleClassExtensionBrowserSpec
@@ -1910,80 +2082,78 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:NewSystemBrowser andSelector:#multipleClassBrowserSpec
-     NewSystemBrowser new openInterface:#multipleClassBrowserSpec
+     UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#multipleClassExtensionBrowserSpec
+     Tools::NewSystemBrowser new openInterface:#multipleClassExtensionBrowserSpec
     "
 
     <resource: #canvas>
 
     ^
-     #(#FullSpec
-	#name: #multipleClassExtensionBrowserSpec
-	#window:
-       #(#WindowSpec
-	  #label: 'ClassExtensionBrowser'
-	  #name: 'NewBrowser'
-	  #min: #(#Point 0 0)
-	  #bounds: #(#Rectangle 13 23 475 323)
-	)
-	#component:
-       #(#SpecCollection
-	  #collection: #(
-	    (SubCanvasSpec
-	      name: 'MessagePane'
-	      layout: (LayoutFrame 0 0 0 0 0 1 40 0)
-	      initiallyInvisible: true
-	      hasHorizontalScrollBar: false
-	      hasVerticalScrollBar: false
-	      specHolder: messageSpecHolder
-	      createNewBuilder: false
-	      postBuildCallback: postBuildMessagePane:
-	    )
-
-	   #(#VariableVerticalPanelSpec
-	      #name: 'VariableVerticalPanel1'
-	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-	      #showHandle: false
-	      #snapMode: #both
-	      #handlePosition: #left
-	      #component:
-	     #(#SpecCollection
-		#collection: #(
-		 #(#SubCanvasSpec
-		    #name: 'Navigator'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NavigatorCanvas'
-		    #minorKey: #'multipleClassExtensionBrowserSpec'
-		  )
-		 #(#SubCanvasSpec
-		    #name: 'CodePane'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NewSystemBrowser'
-		    #minorKey: #codePaneSpec
-		  )
-"/                 #(#CodeViewSpec
-"/                    #name: 'CodeView'
-"/                    #model: #codeHolder
-"/                    #hasHorizontalScrollBar: true
-"/                    #hasVerticalScrollBar: true
-"/                    #miniScrollerHorizontal: true
-"/              #postBuildCallback: #postBuildCodeView:
-"/              #modifiedChannel: #codeModifiedHolder
-"/                  )
-		 )
-
-	      )
-	      #handles: #(#Any 0.3 1.0)
-	      postBuildCallback: postBuildTabContentView:
-
-	    )
-	   )
-
-	)
-      )
-
-    "Modified: / 25-02-2000 / 02:08:21 / cg"
-    "Modified: / 28-08-2010 / 12:00:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    #(FullSpec
+       name: multipleClassExtensionBrowserSpec
+       window:
+      (WindowSpec
+         label: 'ClassExtensionBrowser'
+         name: 'ClassExtensionBrowser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 462 300)
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (SubCanvasSpec
+             name: 'MessagePane'
+             layout: (LayoutFrame 0 0 0 0 0 1 40 0)
+             initiallyInvisible: true
+             hasHorizontalScrollBar: false
+             hasVerticalScrollBar: false
+             clientKey: inlineMessageApp
+             createNewBuilder: false
+             postBuildCallback: postBuildMessagePane:
+           )
+          (VariableVerticalPanelSpec
+             name: 'VariableVerticalPanel1'
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+             showHandle: false
+             snapMode: both
+             handlePosition: left
+             component:
+            (SpecCollection
+               collection: (
+                (SubCanvasSpec
+                   name: 'Navigator'
+                   autoHideScrollBars: false
+                   majorKey: NavigatorCanvas
+                   minorKey: multipleClassExtensionBrowserSpec
+                   subAspectHolders:
+                  (Array
+
+                    (SubChannelInfoSpec
+                       subAspect: environmentHolder
+                       aspect: environmentHolder
+                     )
+                   )
+                   createNewBuilder: false
+                 )
+                (SubCanvasSpec
+                   name: 'CodePane'
+                   autoHideScrollBars: false
+                   majorKey: NewSystemBrowser
+                   minorKey: codePaneSpec
+                   createNewBuilder: false
+                 )
+                )
+
+             )
+             handles: (Any 0.3 1.0)
+             postBuildCallback: postBuildTabContentView:
+           )
+          )
+
+       )
+     )
+
+    "Modified: / 25-03-2014 / 18:01:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 multipleClassRepositoryDiffBrowserSpec
@@ -1994,59 +2164,68 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:NewSystemBrowser andSelector:#multipleClassRepositoryDiffBrowserSpec
-     NewSystemBrowser new openInterface:#multipleClassRepositoryDiffBrowserSpec
+     UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#multipleClassRepositoryDiffBrowserSpec
+     Tools::NewSystemBrowser new openInterface:#multipleClassRepositoryDiffBrowserSpec
     "
 
     <resource: #canvas>
 
     ^
-     #(#FullSpec
-	#name: #multipleClassRepositoryDiffBrowserSpec
-	#window:
-       #(#WindowSpec
-	  #label: 'ClassBrowser'
-	  #name: 'ClassBrowser'
-	  #min: #(#Point 0 0)
-	  #bounds: #(#Rectangle 661 213 1123 513)
-	)
-	#component:
-       #(#SpecCollection
-	  #collection: #(
-	   #(#VariableVerticalPanelSpec
-	      #name: 'VariableVerticalPanel1'
-	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-	      #showHandle: false
-	      #snapMode: #both
-	      #handlePosition: #left
-	      #component:
-	     #(#SpecCollection
-		#collection: #(
-		 #(#SubCanvasSpec
-		    #name: 'Navigator'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NavigatorCanvas'
-		    #minorKey: #multipleClassDiffBrowserSpec
-		  )
-		 #(#SubCanvasSpec
-		    #name: 'DiffView'
-		    #hasHorizontalScrollBar: false
-		    #hasVerticalScrollBar: false
-		    #majorKey: #VersionDiffBrowser
-		    #minorKey: #windowSpec
-		    #createNewApplication: true
-		    #createNewBuilder: true
-		    #postBuildCallback: #versionDiffViewerCreated:
-		  )
-		 )
-
-	      )
-	      #handles: #(#Any 0.3 1.0)
-	    )
-	   )
-
-	)
-      )
+    #(FullSpec
+       name: multipleClassRepositoryDiffBrowserSpec
+       window:
+      (WindowSpec
+         label: 'ClassBrowser'
+         name: 'ClassBrowser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 462 300)
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (VariableVerticalPanelSpec
+             name: 'VariableVerticalPanel1'
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+             showHandle: false
+             snapMode: both
+             handlePosition: left
+             component:
+            (SpecCollection
+               collection: (
+                (SubCanvasSpec
+                   name: 'Navigator'
+                   autoHideScrollBars: false
+                   majorKey: NavigatorCanvas
+                   minorKey: multipleClassDiffBrowserSpec
+                   subAspectHolders:
+                  (Array
+
+                    (SubChannelInfoSpec
+                       subAspect: environmentHolder
+                       aspect: environmentHolder
+                     )
+                   )
+                   createNewBuilder: false
+                 )
+                (SubCanvasSpec
+                   name: 'DiffView'
+                   hasHorizontalScrollBar: false
+                   hasVerticalScrollBar: false
+                   majorKey: VersionDiffBrowser
+                   minorKey: windowSpec
+                   createNewApplication: true
+                   createNewBuilder: true
+                   postBuildCallback: versionDiffViewerCreated:
+                 )
+                )
+
+             )
+             handles: (Any 0.3 1.0)
+           )
+          )
+
+       )
+     )
 !
 
 multipleClassWithInfoAndMethodWithInfoBrowserSpec
@@ -2057,184 +2236,178 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:NewSystemBrowser andSelector:#multipleMethodWithInfoBrowserSpec
-     NewSystemBrowser new openInterface:#multipleMethodWithInfoBrowserSpec
+     UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#multipleClassWithInfoAndMethodWithInfoBrowserSpec
+     Tools::NewSystemBrowser new openInterface:#multipleClassWithInfoAndMethodWithInfoBrowserSpec
     "
 
     <resource: #canvas>
 
     ^
-     #(#FullSpec
-	#name: #multipleClassWithInfoAndMethodWithInfoBrowserSpec
-	#window:
-       #(#WindowSpec
-	  #label: 'MethodBrowser'
-	  #name: 'MethodBrowser'
-	  #min: #(#Point 0 0)
-	  #bounds: #(#Rectangle 18 51 480 351)
-	)
-	#component:
-       #(#SpecCollection
-	  #collection: #(
-	    (SubCanvasSpec
-	      name: 'MessagePane'
-	      layout: (LayoutFrame 0 0 0 0 0 1 40 0)
-	      initiallyInvisible: true
-	      hasHorizontalScrollBar: false
-	      hasVerticalScrollBar: false
-	      specHolder: messageSpecHolder
-	      createNewBuilder: false
-	      postBuildCallback: postBuildMessagePane:
-	    )
-
-	   #(#VariableVerticalPanelSpec
-	      #name: 'VariableVerticalPanel1'
-	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-	      #showHandle: false
-	      #snapMode: #both
-	      #handlePosition: #left
-	      #component:
-	     #(#SpecCollection
-		#collection: #(
-		 #(#SubCanvasSpec
-		    #attributes:
-		   #(#vpext
-		      #(#Point 1.0 0.243333)
-		    )
-		    #name: 'ClassList'
-		    #majorKey: #'ClassList'
-		    #subAspectHolders:
-		   #(#Array
-
-		     #(#SubChannelInfoSpec
-			#subAspect: #showCoverageInformation
-			#aspect: #showCoverageInformation
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #doubleClickChannel
-			#callBack: #classDoubleClicked
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #immediateUpdate
-			#aspect: #immediateUpdate
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #meta
-			#aspect: #meta
-		      )
-
-		     #(#SubChannelInfoSpec
-			#subAspect: #inGeneratorHolder
-			#aspect: #classListGenerator
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #menuHolder
-			#aspect: #classMenu
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #selectedClasses
-			#aspect: #selectedClasses
-			#callBack: #classSelectionChanged
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #selectionChangeCondition
-			#aspect: #selectionChangeConditionHolder
-		      )
-		    )
-		    #createNewApplication: true
-		    #createNewBuilder: true
-		  )
-		 #(#SubCanvasSpec
-		    #attributes:
-		   #(#vpext
-		      #(#Point 1.0 0.243333)
-		    )
-		    #name: 'MethodList'
-		    #majorKey: #'MethodList'
-		    #subAspectHolders:
-		   #(#Array
-
-		     #(#SubChannelInfoSpec
-			#subAspect: #showCoverageInformation
-			#aspect: #showCoverageInformation
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #doubleClickChannel
-			#callBack: #methodDoubleClicked
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #immediateUpdate
-			#aspect: #immediateUpdate
-		      )
-
-		     #(#SubChannelInfoSpec
-			#subAspect: #inGeneratorHolder
-			#aspect: #selectorListGenerator
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #menuHolder
-			#aspect: #methodListPopUpMenu
-		      )
-
-		     #(#SubChannelInfoSpec
-			#subAspect: #packageFilter
-			#aspect: #packageFilter
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #selectedMethods
-			#aspect: #selectedMethods
-			#callBack: #methodsSelectionChanged
-		      )
-
-		     #(#SubChannelInfoSpec
-			#subAspect: #selectionChangeCondition
-			#aspect: #selectionChangeConditionHolder
-		      )
-		    )
-		    #createNewApplication: true
-		    #createNewBuilder: true
-		  )
-		 #(#TextEditorSpec
-		    #attributes:
-		   #(#vpext
-		      #(#Point 1.0 0.53)
-		    )
-		    #name: 'MethodInfoView'
-		    #model: #methodInfo
-		    #hasHorizontalScrollBar: true
-		    #hasVerticalScrollBar: true
-		    #autoHideScrollBars: true
-		    #isReadOnly: true
-		  )
-		 #(#SubCanvasSpec
-		    #name: 'CodePane'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NewSystemBrowser'
-		    #minorKey: #codePaneSpec
-		  )
-"/                 #(#CodeViewSpec
-"/                    #name: 'CodeView'
-"/                    #model: #codeHolder
-"/                    #hasHorizontalScrollBar: true
-"/                    #hasVerticalScrollBar: true
-"/                    #miniScrollerHorizontal: true
-"/              #postBuildCallback: #postBuildCodeView:
-"/              #modifiedChannel: #codeModifiedHolder
-"/                  )
-		 )
-
-	      )
-	      #handles: #(#Any 0.1 0.25 0.5 1.0)
-	      postBuildCallback: postBuildTabContentView:
-
-	    )
-	   )
-
-	)
-      )
-
-    "Modified: / 27-04-2010 / 16:30:07 / cg"
-    "Modified: / 28-08-2010 / 12:00:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    #(FullSpec
+       name: multipleClassWithInfoAndMethodWithInfoBrowserSpec
+       window:
+      (WindowSpec
+         label: 'MethodBrowser'
+         name: 'MethodBrowser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 462 300)
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (SubCanvasSpec
+             name: 'MessagePane'
+             layout: (LayoutFrame 0 0 0 0 0 1 40 0)
+             initiallyInvisible: true
+             hasHorizontalScrollBar: false
+             hasVerticalScrollBar: false
+             clientKey: inlineMessageApp
+             createNewBuilder: false
+             postBuildCallback: postBuildMessagePane:
+           )
+          (VariableVerticalPanelSpec
+             name: 'VariableVerticalPanel1'
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+             showHandle: false
+             snapMode: both
+             handlePosition: left
+             component:
+            (SpecCollection
+               collection: (
+                (SubCanvasSpec
+                   name: 'ClassList'
+                   majorKey: ClassList
+                   subAspectHolders:
+                  (Array
+
+                    (SubChannelInfoSpec
+                       subAspect: doubleClickChannel
+                       callBack: classDoubleClicked
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: environmentHolder
+                       aspect: environmentHolder
+                     )
+
+                    (SubChannelInfoSpec
+                       subAspect: immediateUpdate
+                       aspect: immediateUpdate
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: inGeneratorHolder
+                       aspect: classListGenerator
+                     )
+
+                    (SubChannelInfoSpec
+                       subAspect: menuHolder
+                       aspect: classMenu
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: meta
+                       aspect: meta
+                     )
+
+                    (SubChannelInfoSpec
+                       subAspect: selectedClasses
+                       aspect: selectedClasses
+                       callBack: classSelectionChanged
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: selectionChangeCondition
+                       aspect: selectionChangeConditionHolder
+                     )
+
+                    (SubChannelInfoSpec
+                       subAspect: showCoverageInformation
+                       aspect: showCoverageInformation
+                     )
+                   )
+                   createNewApplication: true
+                   createNewBuilder: true
+                 )
+                (SubCanvasSpec
+                   name: 'MethodList'
+                   majorKey: MethodList
+                   subAspectHolders:
+                  (Array
+
+                    (SubChannelInfoSpec
+                       subAspect: doubleClickChannel
+                       callBack: methodDoubleClicked
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: environmentHolder
+                       aspect: environmentHolder
+                     )
+
+                    (SubChannelInfoSpec
+                       subAspect: immediateUpdate
+                       aspect: immediateUpdate
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: inGeneratorHolder
+                       aspect: selectorListGenerator
+                     )
+
+                    (SubChannelInfoSpec
+                       subAspect: menuHolder
+                       aspect: methodListPopUpMenu
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: packageFilter
+                       aspect: packageFilter
+                     )
+
+                    (SubChannelInfoSpec
+                       subAspect: selectedMethods
+                       aspect: selectedMethods
+                       callBack: methodsSelectionChanged
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: selectionChangeCondition
+                       aspect: selectionChangeConditionHolder
+                     )
+              (SubChannelInfoSpec
+                 subAspect: showSyntheticMethods
+                 aspect: showSyntheticMethods
+               ) 
+
+                    (SubChannelInfoSpec
+                       subAspect: showCoverageInformation
+                       aspect: showCoverageInformation
+                     )
+                   )
+                   createNewApplication: true
+                   createNewBuilder: true
+                 )
+                (TextEditorSpec
+                   name: 'MethodInfoView'
+                   model: methodInfo
+                   hasHorizontalScrollBar: true
+                   hasVerticalScrollBar: true
+                   autoHideScrollBars: true
+                   isReadOnly: true
+                   hasKeyboardFocusInitially: false
+                 )
+                (SubCanvasSpec
+                   name: 'CodePane'
+                   autoHideScrollBars: false
+                   majorKey: NewSystemBrowser
+                   minorKey: codePaneSpec
+                   createNewBuilder: false
+                 )
+                )
+
+             )
+             handles: (Any 0.1 0.25 0.5 1.0)
+             postBuildCallback: postBuildTabContentView:
+           )
+          )
+
+       )
+     )
+
+    "Modified: / 25-03-2014 / 18:01:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 multipleClassWithInfoBrowserSpec
@@ -2245,129 +2418,118 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:NewSystemBrowser andSelector:#multipleMethodWithInfoBrowserSpec
-     NewSystemBrowser new openInterface:#multipleMethodWithInfoBrowserSpec
+     UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#multipleClassWithInfoBrowserSpec
+     Tools::NewSystemBrowser new openInterface:#multipleClassWithInfoBrowserSpec
     "
 
     <resource: #canvas>
 
     ^
-     #(#FullSpec
-	#name: #multipleClassWithInfoSpec
-	#window:
-       #(#WindowSpec
-	  #label: 'MethodBrowser'
-	  #name: 'MethodBrowser'
-	  #min: #(#Point 0 0)
-	  #bounds: #(#Rectangle 18 51 480 351)
-	)
-	#component:
-       #(#SpecCollection
-	  #collection: #(
-	    (SubCanvasSpec
-	      name: 'MessagePane'
-	      layout: (LayoutFrame 0 0 0 0 0 1 40 0)
-	      initiallyInvisible: true
-	      hasHorizontalScrollBar: false
-	      hasVerticalScrollBar: false
-	      specHolder: messageSpecHolder
-	      createNewBuilder: false
-	      postBuildCallback: postBuildMessagePane:
-	    )
-
-	   #(#VariableVerticalPanelSpec
-	      #name: 'VariableVerticalPanel1'
-	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-	      #showHandle: false
-	      #snapMode: #both
-	      #handlePosition: #left
-	      #component:
-	     #(#SpecCollection
-		#collection: #(
-		 #(#SubCanvasSpec
-		    #attributes:
-		   #(#vpext
-		      #(#Point 1.0 0.243333)
-		    )
-		    #name: 'ClassList'
-		    #majorKey: #'ClassList'
-		    #subAspectHolders:
-		   #(#Array
-
-		     #(#SubChannelInfoSpec
-			#subAspect: #doubleClickChannel
-			#callBack: #classDoubleClicked
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #immediateUpdate
-			#aspect: #immediateUpdate
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #meta
-			#aspect: #meta
-		      )
-
-		     #(#SubChannelInfoSpec
-			#subAspect: #inGeneratorHolder
-			#aspect: #classListGenerator
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #menuHolder
-			#aspect: #classMenu
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #selectedClasses
-			#aspect: #selectedClasses
-			#callBack: #classSelectionChanged
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #selectionChangeCondition
-			#aspect: #selectionChangeConditionHolder
-		      )
-		    )
-		    #createNewApplication: true
-		    #createNewBuilder: true
-		  )
-		 #(#TextEditorSpec
-		    #attributes:
-		   #(#vpext
-		      #(#Point 1.0 0.53)
-		    )
-		    #name: 'MethodInfoView'
-		    #model: #methodInfo
-		    #hasHorizontalScrollBar: true
-		    #hasVerticalScrollBar: true
-		    #autoHideScrollBars: true
-		    #isReadOnly: true
-		  )
-		 #(#SubCanvasSpec
-		    #name: 'CodePane'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NewSystemBrowser'
-		    #minorKey: #codePaneSpec
-		  )
-"/                 #(#CodeViewSpec
-"/                    #name: 'CodeView'
-"/                    #model: #codeHolder
-"/                    #hasHorizontalScrollBar: true
-"/                    #hasVerticalScrollBar: true
-"/                    #miniScrollerHorizontal: true
-"/              #postBuildCallback: #postBuildCodeView:
-"/              #modifiedChannel: #codeModifiedHolder
-"/                  )
-		 )
-
-	      )
-	      #handles: #(#Any 0.25 0.5 1.0)
-	      postBuildCallback: postBuildTabContentView:
-
-	    )
-	   )
-
-	)
-      )
-
-    "Modified: / 28-08-2010 / 12:00:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    #(FullSpec
+       name: multipleClassWithInfoBrowserSpec
+       window:
+      (WindowSpec
+         label: 'MethodBrowser'
+         name: 'MethodBrowser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 462 300)
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (SubCanvasSpec
+             name: 'MessagePane'
+             layout: (LayoutFrame 0 0 0 0 0 1 40 0)
+             initiallyInvisible: true
+             hasHorizontalScrollBar: false
+             hasVerticalScrollBar: false
+             clientKey: inlineMessageApp
+             createNewBuilder: false
+             postBuildCallback: postBuildMessagePane:
+           )
+          (VariableVerticalPanelSpec
+             name: 'VariableVerticalPanel1'
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+             showHandle: false
+             snapMode: both
+             handlePosition: left
+             component:
+            (SpecCollection
+               collection: (
+                (SubCanvasSpec
+                   name: 'ClassList'
+                   majorKey: ClassList
+                   subAspectHolders:
+                  (Array
+
+                    (SubChannelInfoSpec
+                       subAspect: doubleClickChannel
+                       callBack: classDoubleClicked
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: environmentHolder
+                       aspect: environmentHolder
+                     )
+
+                    (SubChannelInfoSpec
+                       subAspect: immediateUpdate
+                       aspect: immediateUpdate
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: inGeneratorHolder
+                       aspect: classListGenerator
+                     )
+
+                    (SubChannelInfoSpec
+                       subAspect: menuHolder
+                       aspect: classMenu
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: meta
+                       aspect: meta
+                     )
+
+                    (SubChannelInfoSpec
+                       subAspect: selectedClasses
+                       aspect: selectedClasses
+                       callBack: classSelectionChanged
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: selectionChangeCondition
+                       aspect: selectionChangeConditionHolder
+                     )
+                   )
+                   createNewApplication: true
+                   createNewBuilder: true
+                 )
+                (TextEditorSpec
+                   name: 'MethodInfoView'
+                   model: methodInfo
+                   hasHorizontalScrollBar: true
+                   hasVerticalScrollBar: true
+                   autoHideScrollBars: true
+                   isReadOnly: true
+                   hasKeyboardFocusInitially: false
+                 )
+                (SubCanvasSpec
+                   name: 'CodePane'
+                   autoHideScrollBars: false
+                   majorKey: NewSystemBrowser
+                   minorKey: codePaneSpec
+                   createNewBuilder: false
+                 )
+                )
+
+             )
+             handles: (Any 0.25 0.5 1.0)
+             postBuildCallback: postBuildTabContentView:
+           )
+          )
+
+       )
+     )
+
+    "Modified: / 25-03-2014 / 18:02:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 multipleFullProtocolBrowserSpec
@@ -2378,80 +2540,78 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:NewSystemBrowser andSelector:#multipleProtocolBrowserSpec
-     NewSystemBrowser new openInterface:#multipleProtocolBrowserSpec
+     UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#multipleFullProtocolBrowserSpec
+     Tools::NewSystemBrowser new openInterface:#multipleFullProtocolBrowserSpec
     "
 
     <resource: #canvas>
 
     ^
-     #(#FullSpec
-	#name: #multipleFullProtocolBrowserSpec
-	#window:
-       #(#WindowSpec
-	  #label: 'ProtocolBrowser'
-	  #name: 'NewBrowser'
-	  #min: #(#Point 0 0)
-	  #bounds: #(#Rectangle 12 22 474 322)
-	)
-	#component:
-       #(#SpecCollection
-	  #collection: #(
-	    (SubCanvasSpec
-	      name: 'MessagePane'
-	      layout: (LayoutFrame 0 0 0 0 0 1 40 0)
-	      initiallyInvisible: true
-	      hasHorizontalScrollBar: false
-	      hasVerticalScrollBar: false
-	      specHolder: messageSpecHolder
-	      createNewBuilder: false
-	      postBuildCallback: postBuildMessagePane:
-	    )
-
-	   #(#VariableVerticalPanelSpec
-	      #name: 'VariableVerticalPanel1'
-	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-	      #showHandle: false
-	      #snapMode: #both
-	      #handlePosition: #left
-	      #component:
-	     #(#SpecCollection
-		#collection: #(
-		 #(#SubCanvasSpec
-		    #name: 'Navigator'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NavigatorCanvas'
-		    #minorKey: #'multipleFullProtocolBrowserSpec'
-		  )
-		 #(#SubCanvasSpec
-		    #name: 'CodePane'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NewSystemBrowser'
-		    #minorKey: #codePaneSpec
-		  )
-"/                 #(#CodeViewSpec
-"/                    #name: 'CodeView'
-"/                    #model: #codeHolder
-"/                    #hasHorizontalScrollBar: true
-"/                    #hasVerticalScrollBar: true
-"/                    #miniScrollerHorizontal: true
-"/              #postBuildCallback: #postBuildCodeView:
-"/              #modifiedChannel: #codeModifiedHolder
-"/                  )
-		 )
-
-	      )
-	      #handles: #(#Any 0.3 1.0)
-	      postBuildCallback: postBuildTabContentView:
-
-	    )
-	   )
-
-	)
-      )
-
-    "Modified: / 01-03-2000 / 20:45:30 / cg"
-    "Modified: / 28-08-2010 / 12:00:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    #(FullSpec
+       name: multipleFullProtocolBrowserSpec
+       window:
+      (WindowSpec
+         label: 'ProtocolBrowser'
+         name: 'ProtocolBrowser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 462 300)
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (SubCanvasSpec
+             name: 'MessagePane'
+             layout: (LayoutFrame 0 0 0 0 0 1 40 0)
+             initiallyInvisible: true
+             hasHorizontalScrollBar: false
+             hasVerticalScrollBar: false
+             clientKey: inlineMessageApp
+             createNewBuilder: false
+             postBuildCallback: postBuildMessagePane:
+           )
+          (VariableVerticalPanelSpec
+             name: 'VariableVerticalPanel1'
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+             showHandle: false
+             snapMode: both
+             handlePosition: left
+             component:
+            (SpecCollection
+               collection: (
+                (SubCanvasSpec
+                   name: 'Navigator'
+                   autoHideScrollBars: false
+                   majorKey: NavigatorCanvas
+                   minorKey: multipleFullProtocolBrowserSpec
+                   subAspectHolders:
+                  (Array
+
+                    (SubChannelInfoSpec
+                       subAspect: environmentHolder
+                       aspect: environmentHolder
+                     )
+                   )
+                   createNewBuilder: false
+                 )
+                (SubCanvasSpec
+                   name: 'CodePane'
+                   autoHideScrollBars: false
+                   majorKey: NewSystemBrowser
+                   minorKey: codePaneSpec
+                   createNewBuilder: false
+                 )
+                )
+
+             )
+             handles: (Any 0.3 1.0)
+             postBuildCallback: postBuildTabContentView:
+           )
+          )
+
+       )
+     )
+
+    "Modified: / 25-03-2014 / 18:02:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 multipleMethodBrowserSpec
@@ -2462,140 +2622,190 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:NewSystemBrowser andSelector:#multipleMethodBrowserSpec
-     NewSystemBrowser new openInterface:#multipleMethodBrowserSpec
+     UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#multipleMethodBrowserSpec
+     Tools::NewSystemBrowser new openInterface:#multipleMethodBrowserSpec
     "
 
     <resource: #canvas>
 
-    ^
-     #(#FullSpec
-	#name: #multipleMethodBrowserSpec
-	#window:
-       #(#WindowSpec
-	  #label: 'MethodBrowser'
-	  #name: 'NewBrowser'
-	  #min: #(#Point 0 0)
-	  #bounds: #(#Rectangle 13 23 475 323)
-	)
-	#component:
-       #(#SpecCollection
-	  #collection: #(
-	    (SubCanvasSpec
-	      name: 'MessagePane'
-	      layout: (LayoutFrame 0 0 0 0 0 1 40 0)
-	      initiallyInvisible: true
-	      hasHorizontalScrollBar: false
-	      hasVerticalScrollBar: false
-	      specHolder: messageSpecHolder
-	      createNewBuilder: false
-	      postBuildCallback: postBuildMessagePane:
-	    )
-
-	   #(#VariableVerticalPanelSpec
-	      #name: 'VariableVerticalPanel1'
-	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-	      #showHandle: false
-	      #snapMode: #both
-	      #handlePosition: #left
-	      #component:
-	     #(#SpecCollection
-		#collection: #(
-		 #(#SubCanvasSpec
-			  #name: 'MethodList'
-			  #majorKey: #'MethodList'
-			  #subAspectHolders:
-			 #(#Array
-
-		     #(#SubChannelInfoSpec
-			#subAspect: #showCoverageInformation
-			#aspect: #showCoverageInformation
-		      )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #doubleClickChannel
-			      #callBack: #methodDoubleClicked
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #immediateUpdate
-			      #aspect: #immediateUpdate
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #inGeneratorHolder
-			      #aspect: #selectorListGenerator
-			    )
-
-		     #(#SubChannelInfoSpec
-			#subAspect: #showMethodInheritance
-			#aspect: #showMethodInheritance
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #showMethodComplexity
-			#aspect: #showMethodComplexity
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #showMethodTypeIcon
-			#aspect: #showMethodTypeIcon
-		      )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #menuHolder
-			      #aspect: #selectorPopUpMenu
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #packageFilter
-			      #aspect: #packageFilter
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #variableFilter
-			      #aspect: #variableFilter
-			    )
-
-			   #(#SubChannelInfoSpec
-			      #subAspect: #selectedMethods
-			      #aspect: #selectedMethods
-			      #callBack: #methodsSelectionChanged
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #sortBy
-			      #aspect: #sortBy
-			    )
-
-			   #(#SubChannelInfoSpec
-			      #subAspect: #selectionChangeCondition
-			      #aspect: #selectionChangeConditionHolder
-			    )
-			  )
-			  #createNewApplication: true
-			  #createNewBuilder: true
-			)
-		 #(#SubCanvasSpec
-		    #name: 'CodePane'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NewSystemBrowser'
-		    #minorKey: #codePaneSpec
-		  )
-"/                 #(#CodeViewSpec
-"/                    #name: 'CodeView'
-"/                    #model: #codeHolder
-"/                    #hasHorizontalScrollBar: true
-"/                    #hasVerticalScrollBar: true
-"/                    #miniScrollerHorizontal: true
-"/              #postBuildCallback: #postBuildCodeView:
-"/              #modifiedChannel: #codeModifiedHolder
-"/                  )
-		 )
-
-	      )
-	      #handles: #(#Any 0.3 1.0)
-	      postBuildCallback: postBuildTabContentView:
-
-	    )
-	   )
-
-	)
-      )
-
-    "Modified: / 27-04-2010 / 16:30:12 / cg"
-    "Modified: / 28-08-2010 / 12:00:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    ^ 
+    #(FullSpec
+       name: multipleMethodBrowserSpec
+       window: 
+      (WindowSpec
+         label: 'MethodBrowser'
+         name: 'MethodBrowser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 462 300)
+       )
+       component: 
+      (SpecCollection
+         collection: (
+          (SubCanvasSpec
+             name: 'MessagePane'
+             layout: (LayoutFrame 0 0 0 0 0 1 40 0)
+             initiallyInvisible: true
+             hasHorizontalScrollBar: false
+             hasVerticalScrollBar: false
+             clientKey: inlineMessageApp
+             createNewBuilder: false
+             postBuildCallback: postBuildMessagePane:
+           )
+          (VariableVerticalPanelSpec
+             name: 'VariableVerticalPanel1'
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+             showHandle: false
+             snapMode: both
+             handlePosition: left
+             component: 
+            (SpecCollection
+               collection: (
+                (VerticalPanelViewSpec
+                   name: 'VerticalPanel1'
+                   horizontalLayout: fit
+                   verticalLayout: bottomFit
+                   horizontalSpace: 3
+                   verticalSpace: 3
+                   component: 
+                  (SpecCollection
+                     collection: (
+                      (SubCanvasSpec
+                         name: 'MethodList'
+                         majorKey: MethodList
+                         subAspectHolders: 
+                        (Array
+                           
+                          (SubChannelInfoSpec
+                             subAspect: doubleClickChannel
+                             callBack: methodDoubleClicked
+                           ) 
+                          (SubChannelInfoSpec
+                             subAspect: environmentHolder
+                             aspect: environmentHolder
+                           )
+                           
+                          (SubChannelInfoSpec
+                             subAspect: immediateUpdate
+                             aspect: immediateUpdate
+                           ) 
+                          (SubChannelInfoSpec
+                             subAspect: inGeneratorHolder
+                             aspect: selectorListGenerator
+                           )
+                           
+                          (SubChannelInfoSpec
+                             subAspect: menuHolder
+                             aspect: selectorPopUpMenu
+                           ) 
+                          (SubChannelInfoSpec
+                             subAspect: packageFilter
+                             aspect: packageFilter
+                           )
+                           
+                          (SubChannelInfoSpec
+                             subAspect: selectedMethods
+                             aspect: selectedMethods
+                             callBack: methodsSelectionChanged
+                           ) 
+                          (SubChannelInfoSpec
+                             subAspect: selectionChangeCondition
+                             aspect: selectionChangeConditionHolder
+                           )
+                           
+                          (SubChannelInfoSpec
+                             subAspect: showCoverageInformation
+                             aspect: showCoverageInformation
+                           ) 
+                          (SubChannelInfoSpec
+                             subAspect: showMethodComplexity
+                             aspect: showMethodComplexity
+                           )
+                           
+                          (SubChannelInfoSpec
+                             subAspect: showMethodInheritance
+                             aspect: showMethodInheritance
+                           ) 
+                          (SubChannelInfoSpec
+                             subAspect: showMethodTypeIcon
+                             aspect: showMethodTypeIcon
+                           )
+                           
+                          (SubChannelInfoSpec
+                             subAspect: showSyntheticMethods
+                             aspect: showSyntheticMethods
+                           ) 
+                          (SubChannelInfoSpec
+                             subAspect: sortBy
+                             aspect: sortBy
+                           )
+                           
+                          (SubChannelInfoSpec
+                             subAspect: variableFilter
+                             aspect: variableFilter
+                           )
+                         )
+                         createNewApplication: true
+                         createNewBuilder: true
+                         extent: (Point 462 93)
+                       )
+                      (SubCanvasSpec
+                         name: 'TestRunnerEmbedded'
+                         initiallyInvisible: true
+                         visibilityChannel: testRunnerVisibleHolder
+                         hasHorizontalScrollBar: false
+                         hasVerticalScrollBar: false
+                         majorKey: #'Tools::TestRunnerEmbedded'
+                         subAspectHolders: 
+                        (Array
+                           
+                          (SubChannelInfoSpec
+                             subAspect: infoHolder
+                             aspect: infoLabelHolder
+                           ) 
+                          (SubChannelInfoSpec
+                             subAspect: methodGeneratorHolder
+                             aspect: selectorListGenerator
+                           )
+                           
+                          (SubChannelInfoSpec
+                             subAspect: selectedClassesHolder
+                             aspect: selectedClasses
+                           ) 
+                          (SubChannelInfoSpec
+                             subAspect: selectedMethodsHolder
+                             aspect: selectedMethods
+                           )
+                           
+                          (SubChannelInfoSpec
+                             subAspect: selectedProtocolsHolder
+                             aspect: selectedProtocols
+                           )
+                         )
+                         createNewApplication: true
+                         createNewBuilder: true
+                         extent: (Point 462 50)
+                       )
+                      )
+                    
+                   )
+                 )
+                (SubCanvasSpec
+                   name: 'CodePane'
+                   autoHideScrollBars: false
+                   majorKey: NewSystemBrowser
+                   minorKey: codePaneSpec
+                   createNewBuilder: false
+                 )
+                )
+              
+             )
+             handles: (Any 0.5 1.0)
+             postBuildCallback: postBuildTabContentView:
+           )
+          )
+        
+       )
+     )
 !
 
 multipleMethodWithInfoBrowserSpec
@@ -2606,148 +2816,140 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:NewSystemBrowser andSelector:#multipleMethodWithInfoBrowserSpec
-     NewSystemBrowser new openInterface:#multipleMethodWithInfoBrowserSpec
+     UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#multipleMethodWithInfoBrowserSpec
+     Tools::NewSystemBrowser new openInterface:#multipleMethodWithInfoBrowserSpec
     "
 
     <resource: #canvas>
 
     ^
-     #(#FullSpec
-	#name: #multipleMethodWithInfoBrowserSpec
-	#window:
-       #(#WindowSpec
-	  #label: 'MethodBrowser'
-	  #name: 'MethodBrowser'
-	  #min: #(#Point 0 0)
-	  #bounds: #(#Rectangle 18 51 480 351)
-	)
-	#component:
-       #(#SpecCollection
-	  #collection: #(
-	    (SubCanvasSpec
-	      name: 'MessagePane'
-	      layout: (LayoutFrame 0 0 0 0 0 1 40 0)
-	      initiallyInvisible: true
-	      hasHorizontalScrollBar: false
-	      hasVerticalScrollBar: false
-	      specHolder: messageSpecHolder
-	      createNewBuilder: false
-	      postBuildCallback: postBuildMessagePane:
-	    )
-
-	   #(#VariableVerticalPanelSpec
-	      #name: 'VariableVerticalPanel1'
-	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-	      #showHandle: false
-	      #snapMode: #both
-	      #handlePosition: #left
-	      #component:
-	     #(#SpecCollection
-		#collection: #(
-		 #(#SubCanvasSpec
-		    #attributes:
-		   #(#vpext
-		      #(#Point 1.0 0.243333)
-		    )
-		    #name: 'MethodList'
-		    #majorKey: #'MethodList'
-		    #subAspectHolders:
-		   #(#Array
-
-		     #(#SubChannelInfoSpec
-			#subAspect: #showCoverageInformation
-			#aspect: #showCoverageInformation
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #doubleClickChannel
-			#callBack: #methodDoubleClicked
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #immediateUpdate
-			#aspect: #immediateUpdate
-		      )
-
-		     #(#SubChannelInfoSpec
-			#subAspect: #inGeneratorHolder
-			#aspect: #selectorListGenerator
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #menuHolder
-			#aspect: #methodListPopUpMenu
-		      )
-
-		     #(#SubChannelInfoSpec
-			#subAspect: #showMethodInheritance
-			#aspect: #showMethodInheritance
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #showMethodComplexity
-			#aspect: #showMethodComplexity
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #showMethodTypeIcon
-			#aspect: #showMethodTypeIcon
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #packageFilter
-			#aspect: #packageFilter
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #selectedMethods
-			#aspect: #selectedMethods
-			#callBack: #methodsSelectionChanged
-		      )
-
-		     #(#SubChannelInfoSpec
-			#subAspect: #selectionChangeCondition
-			#aspect: #selectionChangeConditionHolder
-		      )
-		    )
-		    #createNewApplication: true
-		    #createNewBuilder: true
-		  )
-		 #(#TextEditorSpec
-		    #attributes:
-		   #(#vpext
-		      #(#Point 1.0 0.53)
-		    )
-		    #name: 'MethodInfoView'
-		    #model: #methodInfo
-		    #hasHorizontalScrollBar: true
-		    #hasVerticalScrollBar: true
-		    #autoHideScrollBars: true
-		    #isReadOnly: true
-		  )
-		 #(#SubCanvasSpec
-		    #name: 'CodePane'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NewSystemBrowser'
-		    #minorKey: #codePaneSpec
-		  )
-"/                 #(#CodeViewSpec
-"/                    #name: 'CodeView'
-"/                    #model: #codeHolder
-"/                    #hasHorizontalScrollBar: true
-"/                    #hasVerticalScrollBar: true
-"/                    #miniScrollerHorizontal: true
-"/              #postBuildCallback: #postBuildCodeView:
-"/              #modifiedChannel: #codeModifiedHolder
-"/                  )
-		 )
-
-	      )
-	      #handles: #(#Any 0.25 0.5 1.0)
-	      postBuildCallback: postBuildTabContentView:
-
-	    )
-	   )
-
-	)
-      )
-
-    "Modified: / 27-04-2010 / 16:30:16 / cg"
-    "Modified: / 28-08-2010 / 12:00:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    #(FullSpec
+       name: multipleMethodWithInfoBrowserSpec
+       window:
+      (WindowSpec
+         label: 'MethodBrowser'
+         name: 'MethodBrowser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 462 300)
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (SubCanvasSpec
+             name: 'MessagePane'
+             layout: (LayoutFrame 0 0 0 0 0 1 40 0)
+             initiallyInvisible: true
+             hasHorizontalScrollBar: false
+             hasVerticalScrollBar: false
+             clientKey: inlineMessageApp
+             createNewBuilder: false
+             postBuildCallback: postBuildMessagePane:
+           )
+          (VariableVerticalPanelSpec
+             name: 'VariableVerticalPanel1'
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+             showHandle: false
+             snapMode: both
+             handlePosition: left
+             component:
+            (SpecCollection
+               collection: (
+                (SubCanvasSpec
+                   name: 'MethodList'
+                   majorKey: MethodList
+                   subAspectHolders:
+                  (Array
+
+                    (SubChannelInfoSpec
+                       subAspect: doubleClickChannel
+                       callBack: methodDoubleClicked
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: environmentHolder
+                       aspect: environmentHolder
+                     )
+
+                    (SubChannelInfoSpec
+                       subAspect: immediateUpdate
+                       aspect: immediateUpdate
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: inGeneratorHolder
+                       aspect: selectorListGenerator
+                     )
+
+                    (SubChannelInfoSpec
+                       subAspect: menuHolder
+                       aspect: methodListPopUpMenu
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: packageFilter
+                       aspect: packageFilter
+                     )
+
+                    (SubChannelInfoSpec
+                       subAspect: selectedMethods
+                       aspect: selectedMethods
+                       callBack: methodsSelectionChanged
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: selectionChangeCondition
+                       aspect: selectionChangeConditionHolder
+                     )
+
+                    (SubChannelInfoSpec
+                       subAspect: showCoverageInformation
+                       aspect: showCoverageInformation
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: showMethodComplexity
+                       aspect: showMethodComplexity
+                     )
+              (SubChannelInfoSpec
+                 subAspect: showSyntheticMethods
+                 aspect: showSyntheticMethods
+               ) 
+
+                    (SubChannelInfoSpec
+                       subAspect: showMethodInheritance
+                       aspect: showMethodInheritance
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: showMethodTypeIcon
+                       aspect: showMethodTypeIcon
+                     )
+                   )
+                   createNewApplication: true
+                   createNewBuilder: true
+                 )
+                (TextEditorSpec
+                   name: 'MethodInfoView'
+                   model: methodInfo
+                   hasHorizontalScrollBar: true
+                   hasVerticalScrollBar: true
+                   autoHideScrollBars: true
+                   isReadOnly: true
+                   hasKeyboardFocusInitially: false
+                 )
+                (SubCanvasSpec
+                   name: 'CodePane'
+                   autoHideScrollBars: false
+                   majorKey: NewSystemBrowser
+                   minorKey: codePaneSpec
+                   createNewBuilder: false
+                 )
+                )
+
+             )
+             handles: (Any 0.25 0.5 1.0)
+             postBuildCallback: postBuildTabContentView:
+           )
+          )
+
+       )
+     )
+
+    "Modified: / 25-03-2014 / 18:02:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 multipleNameSpaceBrowserSpec
@@ -2758,80 +2960,78 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:NewSystemBrowser andSelector:#multipleNameSpaceBrowserSpec
-     NewSystemBrowser new openInterface:#multipleNameSpaceBrowserSpec
+     UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#multipleNameSpaceBrowserSpec
+     Tools::NewSystemBrowser new openInterface:#multipleNameSpaceBrowserSpec
     "
 
     <resource: #canvas>
 
     ^
-     #(#FullSpec
-	#name: #multipleNameSpaceBrowserSpec
-	#window:
-       #(#WindowSpec
-	  #label: 'NameSpaceBrowser'
-	  #name: 'NewBrowser'
-	  #min: #(#Point 0 0)
-	  #bounds: #(#Rectangle 12 22 474 322)
-	)
-	#component:
-       #(#SpecCollection
-	  #collection: #(
-	    (SubCanvasSpec
-	      name: 'MessagePane'
-	      layout: (LayoutFrame 0 0 0 0 0 1 40 0)
-	      initiallyInvisible: true
-	      hasHorizontalScrollBar: false
-	      hasVerticalScrollBar: false
-	      specHolder: messageSpecHolder
-	      createNewBuilder: false
-	      postBuildCallback: postBuildMessagePane:
-	    )
-
-	   #(#VariableVerticalPanelSpec
-	      #name: 'VariableVerticalPanel1'
-	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-	      #showHandle: false
-	      #snapMode: #both
-	      #handlePosition: #left
-	      #component:
-	     #(#SpecCollection
-		#collection: #(
-		 #(#SubCanvasSpec
-		    #name: 'Navigator'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NavigatorCanvas'
-		    #minorKey: #'multipleNameSpaceBrowserSpec'
-		  )
-		 #(#SubCanvasSpec
-		    #name: 'CodePane'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NewSystemBrowser'
-		    #minorKey: #codePaneSpec
-		  )
-"/                 #(#CodeViewSpec
-"/                    #name: 'CodeView'
-"/                    #model: #codeHolder
-"/                    #hasHorizontalScrollBar: true
-"/                    #hasVerticalScrollBar: true
-"/                    #miniScrollerHorizontal: true
-"/              #postBuildCallback: #postBuildCodeView:
-"/              #modifiedChannel: #codeModifiedHolder
-"/                  )
-		 )
-
-	      )
-	      #handles: #(#Any 0.3 1.0)
-	      postBuildCallback: postBuildTabContentView:
-
-	    )
-	   )
-
-	)
-      )
-
-    "Modified: / 18-08-2000 / 15:01:15 / cg"
-    "Modified: / 28-08-2010 / 12:01:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    #(FullSpec
+       name: multipleNameSpaceBrowserSpec
+       window:
+      (WindowSpec
+         label: 'NameSpaceBrowser'
+         name: 'NameSpaceBrowser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 462 300)
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (SubCanvasSpec
+             name: 'MessagePane'
+             layout: (LayoutFrame 0 0 0 0 0 1 40 0)
+             initiallyInvisible: true
+             hasHorizontalScrollBar: false
+             hasVerticalScrollBar: false
+             clientKey: inlineMessageApp
+             createNewBuilder: false
+             postBuildCallback: postBuildMessagePane:
+           )
+          (VariableVerticalPanelSpec
+             name: 'VariableVerticalPanel1'
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+             showHandle: false
+             snapMode: both
+             handlePosition: left
+             component:
+            (SpecCollection
+               collection: (
+                (SubCanvasSpec
+                   name: 'Navigator'
+                   autoHideScrollBars: false
+                   majorKey: NavigatorCanvas
+                   minorKey: multipleNameSpaceBrowserSpec
+                   subAspectHolders:
+                  (Array
+
+                    (SubChannelInfoSpec
+                       subAspect: environmentHolder
+                       aspect: environmentHolder
+                     )
+                   )
+                   createNewBuilder: false
+                 )
+                (SubCanvasSpec
+                   name: 'CodePane'
+                   autoHideScrollBars: false
+                   majorKey: NewSystemBrowser
+                   minorKey: codePaneSpec
+                   createNewBuilder: false
+                 )
+                )
+
+             )
+             handles: (Any 0.3 1.0)
+             postBuildCallback: postBuildTabContentView:
+           )
+          )
+
+       )
+     )
+
+    "Modified: / 25-03-2014 / 18:02:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 multipleNameSpaceFullBrowserSpec
@@ -2842,80 +3042,78 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:NewSystemBrowser andSelector:#multipleNameSpaceBrowserSpec
-     NewSystemBrowser new openInterface:#multipleNameSpaceBrowserSpec
+     UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#multipleNameSpaceFullBrowserSpec
+     Tools::NewSystemBrowser new openInterface:#multipleNameSpaceFullBrowserSpec
     "
 
     <resource: #canvas>
 
     ^
-     #(#FullSpec
-	#name: #multipleNameSpaceBrowserSpec
-	#window:
-       #(#WindowSpec
-	  #label: 'NameSpaceBrowser'
-	  #name: 'NewBrowser'
-	  #min: #(#Point 0 0)
-	  #bounds: #(#Rectangle 12 22 474 322)
-	)
-	#component:
-       #(#SpecCollection
-	  #collection: #(
-	    (SubCanvasSpec
-	      name: 'MessagePane'
-	      layout: (LayoutFrame 0 0 0 0 0 1 40 0)
-	      initiallyInvisible: true
-	      hasHorizontalScrollBar: false
-	      hasVerticalScrollBar: false
-	      specHolder: messageSpecHolder
-	      createNewBuilder: false
-	      postBuildCallback: postBuildMessagePane:
-	    )
-
-	   #(#VariableVerticalPanelSpec
-	      #name: 'VariableVerticalPanel1'
-	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-	      #showHandle: false
-	      #snapMode: #both
-	      #handlePosition: #left
-	      #component:
-	     #(#SpecCollection
-		#collection: #(
-		 #(#SubCanvasSpec
-		    #name: 'Navigator'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NavigatorCanvas'
-		    #minorKey: #'multipleNameSpaceFullBrowserSpec'
-		  )
-		 #(#SubCanvasSpec
-		    #name: 'CodePane'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NewSystemBrowser'
-		    #minorKey: #codePaneSpec
-		  )
-"/                 #(#CodeViewSpec
-"/                    #name: 'CodeView'
-"/                    #model: #codeHolder
-"/                    #hasHorizontalScrollBar: true
-"/                    #hasVerticalScrollBar: true
-"/                    #miniScrollerHorizontal: true
-"/              #postBuildCallback: #postBuildCodeView:
-"/              #modifiedChannel: #codeModifiedHolder
-"/                  )
-		 )
-
-	      )
-	      #handles: #(#Any 0.3 1.0)
-	      postBuildCallback: postBuildTabContentView:
-
-	    )
-	   )
-
-	)
-      )
-
-    "Created: / 18-08-2000 / 15:01:00 / cg"
-    "Modified: / 28-08-2010 / 12:01:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    #(FullSpec
+       name: multipleNameSpaceFullBrowserSpec
+       window:
+      (WindowSpec
+         label: 'NameSpaceBrowser'
+         name: 'NameSpaceBrowser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 462 300)
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (SubCanvasSpec
+             name: 'MessagePane'
+             layout: (LayoutFrame 0 0 0 0 0 1 40 0)
+             initiallyInvisible: true
+             hasHorizontalScrollBar: false
+             hasVerticalScrollBar: false
+             clientKey: inlineMessageApp
+             createNewBuilder: false
+             postBuildCallback: postBuildMessagePane:
+           )
+          (VariableVerticalPanelSpec
+             name: 'VariableVerticalPanel1'
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+             showHandle: false
+             snapMode: both
+             handlePosition: left
+             component:
+            (SpecCollection
+               collection: (
+                (SubCanvasSpec
+                   name: 'Navigator'
+                   autoHideScrollBars: false
+                   majorKey: NavigatorCanvas
+                   minorKey: multipleNameSpaceFullBrowserSpec
+                   subAspectHolders:
+                  (Array
+
+                    (SubChannelInfoSpec
+                       subAspect: environmentHolder
+                       aspect: environmentHolder
+                     )
+                   )
+                   createNewBuilder: false
+                 )
+                (SubCanvasSpec
+                   name: 'CodePane'
+                   autoHideScrollBars: false
+                   majorKey: NewSystemBrowser
+                   minorKey: codePaneSpec
+                   createNewBuilder: false
+                 )
+                )
+
+             )
+             handles: (Any 0.3 1.0)
+             postBuildCallback: postBuildTabContentView:
+           )
+          )
+
+       )
+     )
+
+    "Modified: / 25-03-2014 / 18:02:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 multipleProjectBrowserSpec
@@ -2926,79 +3124,78 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:NewSystemBrowser andSelector:#multipleProjectBrowserSpec
-     NewSystemBrowser new openInterface:#multipleProjectBrowserSpec
+     UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#multipleProjectBrowserSpec
+     Tools::NewSystemBrowser new openInterface:#multipleProjectBrowserSpec
     "
 
     <resource: #canvas>
 
     ^
-     #(#FullSpec
-	#name: #multipleProjectBrowserSpec
-	#window:
-       #(#WindowSpec
-	  #label: 'ProjectBrowser'
-	  #name: 'NewBrowser'
-	  #min: #(#Point 0 0)
-	  #bounds: #(#Rectangle 12 22 474 322)
-	)
-	#component:
-       #(#SpecCollection
-	  #collection: #(
-	    (SubCanvasSpec
-	      name: 'MessagePane'
-	      layout: (LayoutFrame 0 0 0 0 0 1 40 0)
-	      initiallyInvisible: true
-	      hasHorizontalScrollBar: false
-	      hasVerticalScrollBar: false
-	      specHolder: messageSpecHolder
-	      createNewBuilder: false
-	      postBuildCallback: postBuildMessagePane:
-	    )
-
-	   #(#VariableVerticalPanelSpec
-	      #name: 'VariableVerticalPanel1'
-	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-	      #showHandle: false
-	      #snapMode: #both
-	      #handlePosition: #left
-	      #component:
-	     #(#SpecCollection
-		#collection: #(
-		 #(#SubCanvasSpec
-		    #name: 'Navigator'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NavigatorCanvas'
-		    #minorKey: #'multipleProjectBrowserSpec'
-		  )
-		 #(#SubCanvasSpec
-		    #name: 'CodePane'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NewSystemBrowser'
-		    #minorKey: #codePaneSpec
-		  )
-"/                 #(#CodeViewSpec
-"/                    #name: 'CodeView'
-"/                    #model: #codeHolder
-"/                    #hasHorizontalScrollBar: true
-"/                    #hasVerticalScrollBar: true
-"/                    #miniScrollerHorizontal: true
-"/              #postBuildCallback: #postBuildCodeView:
-"/              #modifiedChannel: #codeModifiedHolder
-"/                  )
-		 )
-
-	      )
-	      #handles: #(#Any 0.3 1.0)
-	      postBuildCallback: postBuildTabContentView:
-
-	    )
-	   )
-
-	)
-      )
-
-    "Modified: / 28-08-2010 / 12:01:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    #(FullSpec
+       name: multipleProjectBrowserSpec
+       window:
+      (WindowSpec
+         label: 'ProjectBrowser'
+         name: 'ProjectBrowser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 462 300)
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (SubCanvasSpec
+             name: 'MessagePane'
+             layout: (LayoutFrame 0 0 0 0 0 1 40 0)
+             initiallyInvisible: true
+             hasHorizontalScrollBar: false
+             hasVerticalScrollBar: false
+             clientKey: inlineMessageApp
+             createNewBuilder: false
+             postBuildCallback: postBuildMessagePane:
+           )
+          (VariableVerticalPanelSpec
+             name: 'VariableVerticalPanel1'
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+             showHandle: false
+             snapMode: both
+             handlePosition: left
+             component:
+            (SpecCollection
+               collection: (
+                (SubCanvasSpec
+                   name: 'Navigator'
+                   autoHideScrollBars: false
+                   majorKey: NavigatorCanvas
+                   minorKey: multipleProjectBrowserSpec
+                   subAspectHolders:
+                  (Array
+
+                    (SubChannelInfoSpec
+                       subAspect: environmentHolder
+                       aspect: environmentHolder
+                     )
+                   )
+                   createNewBuilder: false
+                 )
+                (SubCanvasSpec
+                   name: 'CodePane'
+                   autoHideScrollBars: false
+                   majorKey: NewSystemBrowser
+                   minorKey: codePaneSpec
+                   createNewBuilder: false
+                 )
+                )
+
+             )
+             handles: (Any 0.3 1.0)
+             postBuildCallback: postBuildTabContentView:
+           )
+          )
+
+       )
+     )
+
+    "Modified: / 25-03-2014 / 18:02:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 multipleProjectFullBrowserSpec
@@ -3009,80 +3206,78 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:NewSystemBrowser andSelector:#multipleProjectBrowserSpec
-     NewSystemBrowser new openInterface:#multipleProjectBrowserSpec
+     UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#multipleProjectFullBrowserSpec
+     Tools::NewSystemBrowser new openInterface:#multipleProjectFullBrowserSpec
     "
 
     <resource: #canvas>
 
     ^
-     #(#FullSpec
-	#name: #multipleProjectFullBrowserSpec
-	#window:
-       #(#WindowSpec
-	  #label: 'ProjectBrowser'
-	  #name: 'NewBrowser'
-	  #min: #(#Point 0 0)
-	  #bounds: #(#Rectangle 12 22 474 322)
-	)
-	#component:
-       #(#SpecCollection
-	  #collection: #(
-	    (SubCanvasSpec
-	      name: 'MessagePane'
-	      layout: (LayoutFrame 0 0 0 0 0 1 40 0)
-	      initiallyInvisible: true
-	      hasHorizontalScrollBar: false
-	      hasVerticalScrollBar: false
-	      specHolder: messageSpecHolder
-	      createNewBuilder: false
-	      postBuildCallback: postBuildMessagePane:
-	    )
-
-	   #(#VariableVerticalPanelSpec
-	      #name: 'VariableVerticalPanel1'
-	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-	      #showHandle: false
-	      #snapMode: #both
-	      #handlePosition: #left
-	      #component:
-	     #(#SpecCollection
-		#collection: #(
-		 #(#SubCanvasSpec
-		    #name: 'Navigator'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NavigatorCanvas'
-		    #minorKey: #'multipleProjectFullBrowserSpec'
-		  )
-		 #(#SubCanvasSpec
-		    #name: 'CodePane'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NewSystemBrowser'
-		    #minorKey: #codePaneSpec
-		  )
-"/                 #(#CodeViewSpec
-"/                    #name: 'CodeView'
-"/                    #model: #codeHolder
-"/                    #hasHorizontalScrollBar: true
-"/                    #hasVerticalScrollBar: true
-"/                    #miniScrollerHorizontal: true
-"/              #postBuildCallback: #postBuildCodeView:
-"/              #modifiedChannel: #codeModifiedHolder
-"/                  )
-		 )
-
-	      )
-	      #handles: #(#Any 0.3 1.0)
-	      postBuildCallback: postBuildTabContentView:
-
-	    )
-	   )
-
-	)
-      )
-
-    "Created: / 18-08-2000 / 18:42:38 / cg"
-    "Modified: / 28-08-2010 / 12:01:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    #(FullSpec
+       name: multipleProjectFullBrowserSpec
+       window:
+      (WindowSpec
+         label: 'ProjectBrowser'
+         name: 'ProjectBrowser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 462 300)
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (SubCanvasSpec
+             name: 'MessagePane'
+             layout: (LayoutFrame 0 0 0 0 0 1 40 0)
+             initiallyInvisible: true
+             hasHorizontalScrollBar: false
+             hasVerticalScrollBar: false
+             clientKey: inlineMessageApp
+             createNewBuilder: false
+             postBuildCallback: postBuildMessagePane:
+           )
+          (VariableVerticalPanelSpec
+             name: 'VariableVerticalPanel1'
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+             showHandle: false
+             snapMode: both
+             handlePosition: left
+             component:
+            (SpecCollection
+               collection: (
+                (SubCanvasSpec
+                   name: 'Navigator'
+                   autoHideScrollBars: false
+                   majorKey: NavigatorCanvas
+                   minorKey: multipleProjectFullBrowserSpec
+                   subAspectHolders:
+                  (Array
+
+                    (SubChannelInfoSpec
+                       subAspect: environmentHolder
+                       aspect: environmentHolder
+                     )
+                   )
+                   createNewBuilder: false
+                 )
+                (SubCanvasSpec
+                   name: 'CodePane'
+                   autoHideScrollBars: false
+                   majorKey: NewSystemBrowser
+                   minorKey: codePaneSpec
+                   createNewBuilder: false
+                 )
+                )
+
+             )
+             handles: (Any 0.3 1.0)
+             postBuildCallback: postBuildTabContentView:
+           )
+          )
+
+       )
+     )
+
+    "Modified: / 25-03-2014 / 18:02:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 multipleProtocolBrowserSpec
@@ -3093,80 +3288,78 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:NewSystemBrowser andSelector:#multipleProtocolBrowserSpec
-     NewSystemBrowser new openInterface:#multipleProtocolBrowserSpec
+     UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#multipleProtocolBrowserSpec
+     Tools::NewSystemBrowser new openInterface:#multipleProtocolBrowserSpec
     "
 
     <resource: #canvas>
 
     ^
-     #(#FullSpec
-	#name: #multipleProtocolBrowserSpec
-	#window:
-       #(#WindowSpec
-	  #label: 'ProtocolBrowser'
-	  #name: 'NewBrowser'
-	  #min: #(#Point 0 0)
-	  #bounds: #(#Rectangle 12 22 474 322)
-	)
-	#component:
-       #(#SpecCollection
-	  #collection: #(
-	    (SubCanvasSpec
-	      name: 'MessagePane'
-	      layout: (LayoutFrame 0 0 0 0 0 1 40 0)
-	      initiallyInvisible: true
-	      hasHorizontalScrollBar: false
-	      hasVerticalScrollBar: false
-	      specHolder: messageSpecHolder
-	      createNewBuilder: false
-	      postBuildCallback: postBuildMessagePane:
-	    )
-
-	   #(#VariableVerticalPanelSpec
-	      #name: 'VariableVerticalPanel1'
-	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-	      #showHandle: false
-	      #snapMode: #both
-	      #handlePosition: #left
-	      #component:
-	     #(#SpecCollection
-		#collection: #(
-		 #(#SubCanvasSpec
-		    #name: 'Navigator'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NavigatorCanvas'
-		    #minorKey: #'multipleProtocolBrowserSpec'
-		  )
-		 #(#SubCanvasSpec
-		    #name: 'CodePane'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NewSystemBrowser'
-		    #minorKey: #codePaneSpec
-		  )
-"/                 #(#CodeViewSpec
-"/                    #name: 'CodeView'
-"/                    #model: #codeHolder
-"/                    #hasHorizontalScrollBar: true
-"/                    #hasVerticalScrollBar: true
-"/                    #miniScrollerHorizontal: true
-"/              #postBuildCallback: #postBuildCodeView:
-"/              #modifiedChannel: #codeModifiedHolder
-"/                  )
-		 )
-
-	      )
-	      #handles: #(#Any 0.3 1.0)
-	      postBuildCallback: postBuildTabContentView:
-
-	    )
-	   )
-
-	)
-      )
-
-    "Modified: / 01-03-2000 / 20:45:30 / cg"
-    "Modified: / 28-08-2010 / 12:01:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    #(FullSpec
+       name: multipleProtocolBrowserSpec
+       window:
+      (WindowSpec
+         label: 'ProtocolBrowser'
+         name: 'ProtocolBrowser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 462 300)
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (SubCanvasSpec
+             name: 'MessagePane'
+             layout: (LayoutFrame 0 0 0 0 0 1 40 0)
+             initiallyInvisible: true
+             hasHorizontalScrollBar: false
+             hasVerticalScrollBar: false
+             clientKey: inlineMessageApp
+             createNewBuilder: false
+             postBuildCallback: postBuildMessagePane:
+           )
+          (VariableVerticalPanelSpec
+             name: 'VariableVerticalPanel1'
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+             showHandle: false
+             snapMode: both
+             handlePosition: left
+             component:
+            (SpecCollection
+               collection: (
+                (SubCanvasSpec
+                   name: 'Navigator'
+                   autoHideScrollBars: false
+                   majorKey: NavigatorCanvas
+                   minorKey: multipleProtocolBrowserSpec
+                   subAspectHolders:
+                  (Array
+
+                    (SubChannelInfoSpec
+                       subAspect: environmentHolder
+                       aspect: environmentHolder
+                     )
+                   )
+                   createNewBuilder: false
+                 )
+                (SubCanvasSpec
+                   name: 'CodePane'
+                   autoHideScrollBars: false
+                   majorKey: NewSystemBrowser
+                   minorKey: codePaneSpec
+                   createNewBuilder: false
+                 )
+                )
+
+             )
+             handles: (Any 0.3 1.0)
+             postBuildCallback: postBuildTabContentView:
+           )
+          )
+
+       )
+     )
+
+    "Modified: / 25-03-2014 / 18:02:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 noteBookWindowSpec
@@ -3185,134 +3378,169 @@
 
     ^
      #(FullSpec
-	name: noteBookWindowSpec
-	window:
+        name: noteBookWindowSpec
+        window:
        (WindowSpec
-	  label: 'NewSystemBrowser'
-	  name: 'NewSystemBrowser'
-	  min: (Point 0 0)
-	  bounds: (Rectangle 0 0 800 700)
-	  menu: mainMenu
-	  icon: defaultIcon
-	)
-	component:
+          label: 'NewSystemBrowser'
+          name: 'NewSystemBrowser'
+          min: (Point 0 0)
+          bounds: (Rectangle 0 0 800 700)
+          menu: mainMenu
+          icon: defaultIcon
+        )
+        component:
        (SpecCollection
-	  collection: (
-	   (NoteBookViewSpec
-	      name: 'NoteBook'
-	      layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-	      level: 0
-	      model: selectedBuffer
-	      menu: bufferNameList
-	      useIndex: true
-	      valueChangeSelector: bufferSelectionChanged
-	      accessTabMenuAction: tabMenu:
-	      hasScrollButtons: true
-	      destroyTabAction: destroyTab:
-	      canvas: browserCanvas
-	      canvasInset: 0
-	      keepCanvasAlive: true
-	      tabLevel: 1
-	    )
-	   (ViewSpec
-	      name: 'ToolBar'
-	      layout: (LayoutFrame 0 0 0 0 0 1 40 0)
-	      visibilityChannel: toolBarVisibleHolder
-	      component:
-	     (SpecCollection
-		collection: (
-		 (ActionButtonSpec
-		    label: 'hideToolBarIcon'
-		    name: 'HideToolBarButton'
-		    layout: (LayoutFrame 0 0 0 0 13 0 0 1)
-		    activeHelpKey: hideToolBar
-		    hasCharacterOrientedLabel: false
-		    translateLabel: true
-		    model: hideToolbar
-		    postBuildCallback: hideToolBarButtonCreated:
-		  )
-		 (MenuPanelSpec
-		    name: 'ToolBarMenu'
-		    layout: (LayoutFrame 13 0.0 0 0.0 -250 1.0 0 1.0)
-		    visibilityChannel: toolBarVisibleHolder
-		    menu: toolBarMenu
-		    textDefault: true
-		  )
-		 (UISubSpecification
-		    name: 'SubSpecification1'
-		    layout: (LayoutFrame -250 1 0 0 0 1 0 1)
-		    minorKey: searchSpec
-		  )
-		 )
-
-	      )
-	    )
-	   (ViewSpec
-	      name: 'BookmarkBar'
-	      layout: (LayoutFrame 0 0 40 0 0 1 67 0)
-	      visibilityChannel: bookmarkBarVisibleHolder
-	      component:
-	     (SpecCollection
-		collection: (
-		 (ActionButtonSpec
-		    label: 'hideToolBarIcon'
-		    name: 'Button1'
-		    layout: (LayoutFrame 0 0 0 0 12 0 0 1)
-		    activeHelpKey: hideToolBar
-		    hasCharacterOrientedLabel: false
-		    translateLabel: true
-		    model: hideBookmarkBar
-		    postBuildCallback: hideToolBarButtonCreated:
-		  )
-		 (SubCanvasSpec
-		    name: 'Bookmarks'
-		    layout: (LayoutFrame 13 0 2 0 0 1 -1 1)
-		    level: 0
-		    hasHorizontalScrollBar: false
-		    hasVerticalScrollBar: false
-		    miniScrollerHorizontal: false
-		    majorKey: BookmarkBar
-		    subAspectHolders:
-		   (Array
-
-		     (SubChannelInfoSpec
-			subAspect: bookmarkHolder
-			aspect: bookmarkHolder
-		      )
-		     (SubChannelInfoSpec
-			subAspect: bookmarksHolder
-			aspect: bookmarkListHolder
-		      )
-		    )
-		    createNewApplication: true
-		    createNewBuilder: true
-		  )
-		 )
-
-	      )
-	    )
-	   )
-
-	)
+          collection: (
+           (NoteBookViewSpec
+              name: 'NoteBook'
+              layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+              level: 0
+              model: selectedBuffer
+              menu: bufferNameList
+              useIndex: true
+              valueChangeSelector: bufferSelectionChanged
+              accessTabMenuAction: tabMenu:
+              hasScrollButtons: true
+              destroyTabAction: destroyTab:
+              canvas: browserCanvas
+              canvasInset: 0
+              keepCanvasAlive: true
+              tabLevel: 1
+              translateLabel: false
+            )
+           (ViewSpec
+              name: 'ToolBar'
+              layout: (LayoutFrame 0 0 0 0 0 1 40 0)
+              visibilityChannel: toolBarVisibleHolder
+              component:
+             (SpecCollection
+                collection: (
+                 (ActionButtonSpec
+                    label: 'hideToolBarIcon'
+                    name: 'HideToolBarButton'
+                    layout: (LayoutFrame 0 0 0 0 13 0 0 1)
+                    activeHelpKey: hideToolBar
+                    hasCharacterOrientedLabel: false
+                    translateLabel: true
+                    model: hideToolbar
+                    postBuildCallback: hideToolBarButtonCreated:
+                  )
+                 (MenuPanelSpec
+                    name: 'ToolBarMenu'
+                    layout: (LayoutFrame 13 0.0 0 0.0 -250 1.0 0 1.0)
+                    visibilityChannel: toolBarVisibleHolder
+                    menu: toolBarMenu
+                    textDefault: true
+                  )
+                 (UISubSpecification
+                    name: 'SubSpecification1'
+                    layout: (LayoutFrame -250 1 0 0 0 1 0 1)
+                    minorKey: searchSpec
+                  )
+                 )
+
+              )
+            )
+           (ViewSpec
+              name: 'BookmarkBar'
+              layout: (LayoutFrame 0 0 40 0 0 1 67 0)
+              visibilityChannel: bookmarkBarVisibleHolder
+              component:
+             (SpecCollection
+                collection: (
+                 (ActionButtonSpec
+                    label: 'hideToolBarIcon'
+                    name: 'Button1'
+                    layout: (LayoutFrame 0 0 0 0 13 0 0 1)
+                    activeHelpKey: hideBookmarkBar
+                    hasCharacterOrientedLabel: false
+                    translateLabel: true
+                    model: hideBookmarkBar
+                    postBuildCallback: hideToolBarButtonCreated:
+                  )
+                 (SubCanvasSpec
+                    name: 'Bookmarks'
+                    layout: (LayoutFrame 13 0 2 0 0 1 -1 1)
+                    level: 0
+                    hasHorizontalScrollBar: false
+                    hasVerticalScrollBar: false
+                    miniScrollerHorizontal: false
+                    majorKey: BookmarkBar
+                    subAspectHolders:
+                   (Array
+
+                     (SubChannelInfoSpec
+                        subAspect: bookmarkHolder
+                        aspect: bookmarkHolder
+                      )
+                     (SubChannelInfoSpec
+                        subAspect: bookmarksHolder
+                        aspect: bookmarkListHolder
+                      )
+                    )
+                    createNewApplication: true
+                    createNewBuilder: true
+                  )
+                 )
+
+              )
+            )
+           )
+
+        )
       )
 !
 
 pagedWindowSpec
-    <resource: #canvas>
     "This resource specification was automatically generated
      by the UIPainter of ST/X."
+
     "Do not manually edit this!! If it is corrupted,
      the UIPainter may not be able to read the specification."
-    "
-     UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#webBrowserLayoutWindowSpec
-     Tools::NewSystemBrowser new openInterface:#webBrowserLayoutWindowSpec"
-
-    ^ #( #FullSpec
-  #name: #pagedWindowSpec
-  #window:
- #(WindowSpec label: 'NewSystemBrowser' name: 'NewSystemBrowser' min: (Point 0 0) bounds: (Rectangle 0 0 800 700) menu: mainMenu icon: defaultIcon)
-  #component:
- #(SpecCollection collection: ((NoteBookViewSpec name: 'NoteBook' layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0) level: 0 model: selectedBuffer menu: bufferNameList useIndex: true valueChangeSelector: bufferSelectionChanged accessTabMenuAction: tabMenu: hasScrollButtons: true destroyTabAction: destroyTab: canvas: browserPageCanvas canvasInset: 0 keepCanvasAlive: true tabLevel: 1))) )
+
+    "
+     UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#pagedWindowSpec
+     Tools::NewSystemBrowser new openInterface:#pagedWindowSpec
+    "
+
+    <resource: #canvas>
+
+    ^
+    #(FullSpec
+       name: pagedWindowSpec
+       window:
+      (WindowSpec
+         label: 'NewSystemBrowser'
+         name: 'NewSystemBrowser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 800 700)
+         menu: mainMenu
+         icon: defaultIcon
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (NoteBookViewSpec
+             name: 'NoteBook'
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+             level: 0
+             model: selectedBuffer
+             menu: bufferNameList
+             useIndex: true
+             valueChangeSelector: bufferSelectionChanged
+             accessTabMenuAction: tabMenu:
+             translateLabel: false
+             hasScrollButtons: true
+             destroyTabAction: destroyTab:
+             canvas: browserPageCanvas
+             canvasInset: 0
+             keepCanvasAlive: true
+             tabLevel: 1
+           )
+          )
+
+       )
+     )
 !
 
 protocolAndMethodListSpec_Both
@@ -3330,186 +3558,195 @@
     <resource: #canvas>
 
     ^
-     #(FullSpec
-	name: #'protocolAndMethodListSpec_Both'
-	window:
-       (WindowSpec
-	  label: 'Protocol and Method List'
-	  name: 'Protocol and Method List'
-	  min: (Point 0 0)
-	  bounds: (Rectangle 0 0 498 456)
-	  icon: defaultIcon
-	)
-	component:
-       (SpecCollection
-	  collection: (
-	   (VariableHorizontalPanelSpec
-	      name: 'Lists'
-	      layout: (LayoutFrame 0 0 0 0 0 1 0 1)
-	      barWidth: 2
-	      showHandle: false
-	      component:
-	     (SpecCollection
-		collection: (
-		 (SubCanvasSpec
-		    name: 'MethodCategoryList'
-		    majorKey: MethodCategoryList
-		    subAspectHolders:
-		   (Array
-
-		     (SubChannelInfoSpec
-			subAspect: showCoverageInformation
-			aspect: showCoverageInformation
-		      )
-		     (SubChannelInfoSpec
-			subAspect: showPseudoProtocols
-			aspect: showPseudoProtocols
-		      )
-
-		     (SubChannelInfoSpec
-			subAspect: immediateUpdate
-			aspect: immediateUpdate
-		      )
-		     (SubChannelInfoSpec
-			subAspect: inGeneratorHolder
-			aspect: protocolListGenerator
-		      )
-
-		     (SubChannelInfoSpec
-			subAspect: doubleClickChannel
-			callBack: protocolDoubleClicked
-		      )
-		     (SubChannelInfoSpec
-			subAspect: menuHolder
-			aspect: protocolMenu
-		      )
-
-		     (SubChannelInfoSpec
-			subAspect: outGeneratorHolder
-			aspect: selectorListGenerator
-		      )
-		     (SubChannelInfoSpec
-			subAspect: packageFilter
-			aspect: packageFilter
-		      )
-
-		     (SubChannelInfoSpec
-			subAspect: selectedProtocols
-			aspect: selectedProtocols
-			callBack: protocolSelectionChanged
-		      )
-		     (SubChannelInfoSpec
-			subAspect: selectionChangeCondition
-			aspect: selectionChangeConditionHolder
-		      )
-
-		     (SubChannelInfoSpec
-			subAspect: variableFilter
-			aspect: variableFilter
-			callBack: variableSelectionChanged
-		      )
-		     (SubChannelInfoSpec
-			subAspect: filterClassVars
-			aspect: filterClassVars
-		      )
-
-		     (SubChannelInfoSpec
-			subAspect: methodVisibilityHolder
-			aspect: methodVisibilityHolder
-		      )
-		    )
-		    createNewApplication: true
-		    createNewBuilder: true
-		    postBuildCallback: methodCategoryList:
-		  )
-		 (SubCanvasSpec
-		    name: 'MethodList'
-		    majorKey: MethodList
-		    subAspectHolders:
-		   (Array
-
-		     (SubChannelInfoSpec
-			subAspect: showCoverageInformation
-			aspect: showCoverageInformation
-		      )
-		     (SubChannelInfoSpec
-			subAspect: doubleClickChannel
-			callBack: methodDoubleClicked
-		      )
-
-		     (SubChannelInfoSpec
-			subAspect: immediateUpdate
-			aspect: immediateUpdate
-		      )
-		     (SubChannelInfoSpec
-			subAspect: inGeneratorHolder
-			aspect: selectorListGenerator
-		      )
-
-		     (SubChannelInfoSpec
-			subAspect: menuHolder
-			aspect: selectorPopUpMenu
-		      )
-		     (SubChannelInfoSpec
-			subAspect: packageFilter
-			aspect: packageFilter
-		      )
-
-		     (SubChannelInfoSpec
-			subAspect: selectedMethods
-			aspect: selectedMethods
-			callBack: methodsSelectionChanged
-		      )
-		     (SubChannelInfoSpec
-			subAspect: selectionChangeCondition
-			aspect: selectionChangeConditionHolder
-		      )
-
-		     (SubChannelInfoSpec
-			subAspect: variableFilter
-			aspect: variableFilter
-			callBack: variableSelectionChanged
-		      )
-		     (SubChannelInfoSpec
-			subAspect: showMethodInheritance
-			aspect: showMethodInheritance
-		      )
-
-		     (SubChannelInfoSpec
-			subAspect: showMethodComplexity
-			aspect: showMethodComplexity
-		      )
-		     (SubChannelInfoSpec
-			subAspect: showMethodTypeIcon
-			aspect: showMethodTypeIcon
-		      )
-		     (SubChannelInfoSpec
-			subAspect: showSyntheticMethods
-			aspect: showSyntheticMethods
-		      )
-
-
-		     (SubChannelInfoSpec
-			subAspect: filterClassVars
-			aspect: filterClassVars
-		      )
-		    )
-		    createNewApplication: true
-		    createNewBuilder: true
-		    postBuildCallback: methodList:
-		  )
-		 )
-
-	      )
-	      handles: (Any 0.5 1.0)
-	    )
-	   )
-
-	)
-      )
-
-    "Modified: / 17-08-2011 / 13:57:39 / cg"
-    "Modified: / 13-04-2012 / 16:13:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    #(FullSpec
+       name: #'protocolAndMethodListSpec_Both'
+       window:
+      (WindowSpec
+         label: 'Protocol and Method List'
+         name: 'Protocol and Method List'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 498 456)
+         icon: defaultIcon
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (VariableHorizontalPanelSpec
+             name: 'Lists'
+             layout: (LayoutFrame 0 0 0 0 0 1 0 1)
+             barWidth: 2
+             showHandle: false
+             component:
+            (SpecCollection
+               collection: (
+                (SubCanvasSpec
+                   name: 'MethodCategoryList'
+                   majorKey: MethodCategoryList
+                   subAspectHolders:
+                  (Array
+
+                    (SubChannelInfoSpec
+                       subAspect: doubleClickChannel
+                       callBack: protocolDoubleClicked
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: environmentHolder
+                       aspect: environmentHolder
+                     )
+
+                    (SubChannelInfoSpec
+                       subAspect: filterClassVars
+                       aspect: filterClassVars
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: immediateUpdate
+                       aspect: immediateUpdate
+                     )
+
+                    (SubChannelInfoSpec
+                       subAspect: inGeneratorHolder
+                       aspect: protocolListGenerator
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: menuHolder
+                       aspect: protocolMenu
+                     )
+
+                    (SubChannelInfoSpec
+                       subAspect: methodVisibilityHolder
+                       aspect: methodVisibilityHolder
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: outGeneratorHolder
+                       aspect: selectorListGenerator
+                     )
+
+                    (SubChannelInfoSpec
+                       subAspect: packageFilter
+                       aspect: packageFilter
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: selectedProtocols
+                       aspect: selectedProtocols
+                       callBack: protocolSelectionChanged
+                     )
+
+                    (SubChannelInfoSpec
+                       subAspect: selectionChangeCondition
+                       aspect: selectionChangeConditionHolder
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: showCoverageInformation
+                       aspect: showCoverageInformation
+                     )
+              (SubChannelInfoSpec
+                 subAspect: showSyntheticMethods
+                 aspect: showSyntheticMethods
+               ) 
+
+                    (SubChannelInfoSpec
+                       subAspect: showPseudoProtocols
+                       aspect: showPseudoProtocols
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: variableFilter
+                       aspect: variableFilter
+                       callBack: variableSelectionChanged
+                     )
+                   )
+                   createNewApplication: true
+                   createNewBuilder: true
+                   postBuildCallback: methodCategoryList:
+                 )
+                (SubCanvasSpec
+                   name: 'MethodList'
+                   majorKey: MethodList
+                   subAspectHolders:
+                  (Array
+
+                    (SubChannelInfoSpec
+                       subAspect: doubleClickChannel
+                       callBack: methodDoubleClicked
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: environmentHolder
+                       aspect: environmentHolder
+                     )
+
+                    (SubChannelInfoSpec
+                       subAspect: filterClassVars
+                       aspect: filterClassVars
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: immediateUpdate
+                       aspect: immediateUpdate
+                     )
+
+                    (SubChannelInfoSpec
+                       subAspect: inGeneratorHolder
+                       aspect: selectorListGenerator
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: menuHolder
+                       aspect: selectorPopUpMenu
+                     )
+
+                    (SubChannelInfoSpec
+                       subAspect: packageFilter
+                       aspect: packageFilter
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: selectedMethods
+                       aspect: selectedMethods
+                       callBack: methodsSelectionChanged
+                     )
+
+                    (SubChannelInfoSpec
+                       subAspect: selectionChangeCondition
+                       aspect: selectionChangeConditionHolder
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: showCoverageInformation
+                       aspect: showCoverageInformation
+                     )
+
+                    (SubChannelInfoSpec
+                       subAspect: showMethodComplexity
+                       aspect: showMethodComplexity
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: showMethodInheritance
+                       aspect: showMethodInheritance
+                     )
+
+                    (SubChannelInfoSpec
+                       subAspect: showMethodTypeIcon
+                       aspect: showMethodTypeIcon
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: showSyntheticMethods
+                       aspect: showSyntheticMethods
+                     )
+
+                    (SubChannelInfoSpec
+                       subAspect: variableFilter
+                       aspect: variableFilter
+                       callBack: variableSelectionChanged
+                     )
+                   )
+                   createNewApplication: true
+                   createNewBuilder: true
+                   postBuildCallback: methodList:
+                 )
+                )
+
+             )
+             handles: (Any 0.5 1.0)
+           )
+          )
+
+       )
+     )
 !
 
 protocolAndMethodListSpec_JustMethodList
@@ -3527,102 +3764,104 @@
     <resource: #canvas>
 
     ^
-     #(FullSpec
-	name: #'protocolAndMethodListSpec_JustMethodList'
-	window:
-       (WindowSpec
-	  label: 'Protocol and Method List'
-	  name: 'Protocol and Method List'
-	  min: (Point 0 0)
-	  bounds: (Rectangle 0 0 498 456)
-	  icon: defaultIcon
-	)
-	component:
-       (SpecCollection
-	  collection: (
-	   (SubCanvasSpec
-	      name: 'MethodList'
-	      layout: (LayoutFrame 0 0 0 0 0 1 0 1)
-	      majorKey: MethodList
-	      subAspectHolders:
-	     (Array
-
-	       (SubChannelInfoSpec
-		  subAspect: showCoverageInformation
-		  aspect: showCoverageInformation
-		)
-	       (SubChannelInfoSpec
-		  subAspect: doubleClickChannel
-		  callBack: methodDoubleClicked
-		)
-
-	       (SubChannelInfoSpec
-		  subAspect: immediateUpdate
-		  aspect: immediateUpdate
-		)
-	       (SubChannelInfoSpec
-		  subAspect: inGeneratorHolder
-		  aspect: selectorListGenerator5
-		)
-
-	       (SubChannelInfoSpec
-		  subAspect: menuHolder
-		  aspect: selectorPopUpMenu
-		)
-	       (SubChannelInfoSpec
-		  subAspect: packageFilter
-		  aspect: packageFilter
-		)
-
-	       (SubChannelInfoSpec
-		  subAspect: selectedMethods
-		  aspect: selectedMethods
-		  callBack: methodsSelectionChanged
-		)
-	       (SubChannelInfoSpec
-		  subAspect: selectionChangeCondition
-		  aspect: selectionChangeConditionHolder
-		)
-
-	       (SubChannelInfoSpec
-		  subAspect: variableFilter
-		  aspect: variableFilter
-		  callBack: variableSelectionChanged
-		)
-	       (SubChannelInfoSpec
-		  subAspect: showMethodInheritance
-		  aspect: showMethodInheritance
-		)
-
-	       (SubChannelInfoSpec
-		  subAspect: showMethodComplexity
-		  aspect: showMethodComplexity
-		)
-	       (SubChannelInfoSpec
-		    subAspect: showSyntheticMethods
-		    aspect: showSyntheticMethods
-		  )
-	       (SubChannelInfoSpec
-		  subAspect: showMethodTypeIcon
-		  aspect: showMethodTypeIcon
-		)
-
-	       (SubChannelInfoSpec
-		  subAspect: filterClassVars
-		  aspect: filterClassVars
-		)
-	      )
-	      createNewApplication: true
-	      createNewBuilder: true
-	      postBuildCallback: methodList:
-	    )
-	   )
-
-	)
-      )
-
-    "Modified: / 17-08-2011 / 13:57:59 / cg"
-    "Modified (format): / 13-04-2012 / 18:00:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    #(FullSpec
+       name: #'protocolAndMethodListSpec_JustMethodList'
+       window:
+      (WindowSpec
+         label: 'Protocol and Method List'
+         name: 'Protocol and Method List'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 498 456)
+         icon: defaultIcon
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (SubCanvasSpec
+             name: 'MethodList'
+             layout: (LayoutFrame 0 0 0 0 0 1 0 1)
+             majorKey: MethodList
+             subAspectHolders:
+            (Array
+
+              (SubChannelInfoSpec
+                 subAspect: doubleClickChannel
+                 callBack: methodDoubleClicked
+               )
+              (SubChannelInfoSpec
+                 subAspect: environmentHolder
+                 aspect: environmentHolder
+               )
+
+              (SubChannelInfoSpec
+                 subAspect: filterClassVars
+                 aspect: filterClassVars
+               )
+              (SubChannelInfoSpec
+                 subAspect: immediateUpdate
+                 aspect: immediateUpdate
+               )
+
+              (SubChannelInfoSpec
+                 subAspect: inGeneratorHolder
+                 aspect: selectorListGenerator5
+               )
+              (SubChannelInfoSpec
+                 subAspect: menuHolder
+                 aspect: selectorPopUpMenu
+               )
+
+              (SubChannelInfoSpec
+                 subAspect: packageFilter
+                 aspect: packageFilter
+               )
+              (SubChannelInfoSpec
+                 subAspect: selectedMethods
+                 aspect: selectedMethods
+                 callBack: methodsSelectionChanged
+               )
+
+              (SubChannelInfoSpec
+                 subAspect: selectionChangeCondition
+                 aspect: selectionChangeConditionHolder
+               )
+              (SubChannelInfoSpec
+                 subAspect: showCoverageInformation
+                 aspect: showCoverageInformation
+               )
+
+              (SubChannelInfoSpec
+                 subAspect: showMethodComplexity
+                 aspect: showMethodComplexity
+               )
+              (SubChannelInfoSpec
+                 subAspect: showMethodInheritance
+                 aspect: showMethodInheritance
+               )
+
+              (SubChannelInfoSpec
+                 subAspect: showMethodTypeIcon
+                 aspect: showMethodTypeIcon
+               )
+              (SubChannelInfoSpec
+                 subAspect: showSyntheticMethods
+                 aspect: showSyntheticMethods
+               )
+
+              (SubChannelInfoSpec
+                 subAspect: variableFilter
+                 aspect: variableFilter
+                 callBack: variableSelectionChanged
+               )
+             )
+             createNewApplication: true
+             createNewBuilder: true
+             postBuildCallback: methodList:
+           )
+          )
+
+       )
+     )
 !
 
 searchSpec
@@ -3648,48 +3887,48 @@
 
     ^
      #(FullSpec
-	name: #'searchSpec_classic'
-	window:
+        name: #'searchSpec_classic'
+        window:
        (WindowSpec
-	  label: 'Search Spec (classic)'
-	  name: 'Search Spec (classic)'
-	  min: (Point 10 10)
-	  bounds: (Rectangle 0 0 300 40)
-	)
-	component:
+          label: 'Search Spec (classic)'
+          name: 'Search Spec (classic)'
+          min: (Point 10 10)
+          bounds: (Rectangle 0 0 300 40)
+        )
+        component:
        (SpecCollection
-	  collection: (
-	   (HorizontalPanelViewSpec
-	      name: 'HorizontalPanel1'
-	      layout: (LayoutFrame 0 0 0 0 0 1 0 1)
-	      level: 1
-	      horizontalLayout: fitSpace
-	      verticalLayout: center
-	      horizontalSpace: 2
-	      verticalSpace: 2
-	      component:
-	     (SpecCollection
-		collection: (
-		 (ComboBoxSpec
-		    name: 'SearchedClassNameComboBox'
-		    activeHelpKey: gotoClassEntryField
-		    model: searchedClassNameOrSelectorHolder
-		    acceptOnLeave: false
-		    acceptOnReturn: true
-		    acceptOnPointerLeave: false
-		    acceptIfUnchanged: true
-		    comboList: visitedClassesHistory
-		    extent: (Point 294 24)
-		    postBuildCallback: searchFieldCreated:
-		  )
-		 )
-
-	      )
-	      postBuildCallback: searchFieldPanelCreated:
-	    )
-	   )
-
-	)
+          collection: (
+           (HorizontalPanelViewSpec
+              name: 'HorizontalPanel1'
+              layout: (LayoutFrame 0 0 0 0 0 1 0 1)
+              level: 1
+              horizontalLayout: fitSpace
+              verticalLayout: center
+              horizontalSpace: 2
+              verticalSpace: 2
+              component:
+             (SpecCollection
+                collection: (
+                 (ComboBoxSpec
+                    name: 'SearchedClassNameComboBox'
+                    activeHelpKey: gotoClassEntryField
+                    model: searchedClassNameOrSelectorHolder
+                    acceptOnLeave: false
+                    acceptOnReturn: true
+                    acceptOnPointerLeave: false
+                    acceptIfUnchanged: true
+                    comboList: visitedClassesHistory
+                    extent: (Point 294 24)
+                    postBuildCallback: searchFieldCreated:
+                  )
+                 )
+
+              )
+              postBuildCallback: searchFieldPanelCreated:
+            )
+           )
+
+        )
       )
 !
 
@@ -3707,51 +3946,52 @@
 
     <resource: #canvas>
 
-    ^
-     #(FullSpec
-	name: #'searchSpec_live'
-	window:
-       (WindowSpec
-	  label: 'Search Spec (live)'
-	  name: 'Search Spec (live)'
-	  min: (Point 10 10)
-	  bounds: (Rectangle 0 0 300 40)
-	)
-	component:
-       (SpecCollection
-	  collection: (
-	   (HorizontalPanelViewSpec
-	      name: 'HorizontalPanel1'
-	      layout: (LayoutFrame 0 0 0 0 0 1 0 1)
-	      level: 1
-	      horizontalLayout: fitSpace
-	      verticalLayout: center
-	      horizontalSpace: 2
-	      verticalSpace: 2
-	      component:
-	     (SpecCollection
-		collection: (
-		 (EditFieldWithCompletionSpec
-		    name: 'SearchedClassNameComboBox'
-		    activeHelpKey: gotoClassEntryField
-		    model: searchedClassNameOrSelectorHolder
-		    acceptOnLeave: false
-		    acceptOnReturn: true
-		    acceptOnPointerLeave: false
-		    acceptIfUnchanged: true
-		    entryCompletionBlock: searchCompletionBlock
-		    extent: (Point 294 24)
-		    postBuildCallback: searchFieldCreated:
-		  )
-		 )
-
-	      )
-	      postBuildCallback: searchFieldPanelCreated:
-	    )
-	   )
-
-	)
-      )
+    ^ 
+    #(FullSpec
+       name: #'searchSpec_live'
+       window: 
+      (WindowSpec
+         label: 'Search Spec (live)'
+         name: 'Search Spec (live)'
+         min: (Point 10 10)
+         bounds: (Rectangle 0 0 300 40)
+       )
+       component: 
+      (SpecCollection
+         collection: (
+          (HorizontalPanelViewSpec
+             name: 'HorizontalPanel1'
+             layout: (LayoutFrame 0 0 0 0 0 1 0 1)
+             level: 1
+             horizontalLayout: fitSpace
+             verticalLayout: center
+             horizontalSpace: 2
+             verticalSpace: 2
+             component: 
+            (SpecCollection
+               collection: (
+                (EditFieldWithCompletionSpec
+                   name: 'SearchedClassNameComboBox'
+                   activeHelpKey: gotoClassEntryField
+                   model: searchedClassNameOrSelectorHolder
+                   acceptOnLeave: false
+                   acceptOnReturn: true
+                   acceptOnLostFocus: false
+                   acceptOnPointerLeave: false
+                   acceptIfUnchanged: true
+                   entryCompletionBlock: searchCompletionBlock
+                   extent: (Point 292 24)
+                   postBuildCallback: searchFieldCreated:
+                 )
+                )
+              
+             )
+             postBuildCallback: searchFieldPanelCreated:
+           )
+          )
+        
+       )
+     )
 !
 
 searchSpec_live_level0
@@ -3768,52 +4008,53 @@
 
     <resource: #canvas>
 
-    ^
-     #(FullSpec
-	name: #'searchSpec_live_level0'
-	window:
-       (WindowSpec
-	  label: 'Search Spec (live)'
-	  name: 'Search Spec (live)'
-	  min: (Point 10 10)
-	  bounds: (Rectangle 0 0 300 40)
-	)
-	component:
-       (SpecCollection
-	  collection: (
-	   (HorizontalPanelViewSpec
-	      name: 'HorizontalPanel1'
-	      layout: (LayoutFrame 0 0 0 0 0 1 0 1)
-	      level: 0
-	      horizontalLayout: fitSpace
-	      verticalLayout: center
-	      horizontalSpace: 2
-	      verticalSpace: 2
-	      component:
-	     (SpecCollection
-		collection: (
-		 (EditFieldWithCompletionSpec
-		    name: 'SearchedClassNameComboBox'
-		    activeHelpKey: gotoClassEntryField
-		    level: -1
-		    model: searchedClassNameOrSelectorHolder
-		    acceptOnLeave: false
-		    acceptOnReturn: true
-		    acceptOnPointerLeave: false
-		    acceptIfUnchanged: true
-		    entryCompletionBlock: searchCompletionBlock
-		    extent: (Point 296 24)
-		    postBuildCallback: searchFieldCreated:
-		  )
-		 )
-
-	      )
-	      postBuildCallback: searchFieldPanelCreated:
-	    )
-	   )
-
-	)
-      )
+    ^ 
+    #(FullSpec
+       name: #'searchSpec_live_level0'
+       window: 
+      (WindowSpec
+         label: 'Search Spec (live)'
+         name: 'Search Spec (live)'
+         min: (Point 10 10)
+         bounds: (Rectangle 0 0 300 40)
+       )
+       component: 
+      (SpecCollection
+         collection: (
+          (HorizontalPanelViewSpec
+             name: 'HorizontalPanel1'
+             layout: (LayoutFrame 0 0 0 0 0 1 0 1)
+             level: 0
+             horizontalLayout: fitSpace
+             verticalLayout: center
+             horizontalSpace: 2
+             verticalSpace: 2
+             component: 
+            (SpecCollection
+               collection: (
+                (EditFieldWithCompletionSpec
+                   name: 'SearchedClassNameComboBox'
+                   activeHelpKey: gotoClassEntryField
+                   level: -1
+                   model: searchedClassNameOrSelectorHolder
+                   acceptOnLeave: false
+                   acceptOnReturn: true
+                   acceptOnLostFocus: false
+                   acceptOnPointerLeave: false
+                   acceptIfUnchanged: true
+                   entryCompletionBlock: searchCompletionBlock
+                   extent: (Point 294 24)
+                   postBuildCallback: searchFieldCreated:
+                 )
+                )
+              
+             )
+             postBuildCallback: searchFieldPanelCreated:
+           )
+          )
+        
+       )
+     )
 !
 
 selectorBrowserSpec
@@ -3824,80 +4065,78 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:NewSystemBrowser andSelector:#selectorBrowserSpec
-     NewSystemBrowser new openInterface:#selectorBrowserSpec
+     UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#selectorBrowserSpec
+     Tools::NewSystemBrowser new openInterface:#selectorBrowserSpec
     "
 
     <resource: #canvas>
 
     ^
-     #(#FullSpec
-	#name: #selectorBrowserSpec
-	#window:
-       #(#WindowSpec
-	  #label: 'SelectorBrowser'
-	  #name: 'NewBrowser'
-	  #min: #(#Point 0 0)
-	  #bounds: #(#Rectangle 18 51 480 351)
-	)
-	#component:
-       #(#SpecCollection
-	  #collection: #(
-	    (SubCanvasSpec
-	      name: 'MessagePane'
-	      layout: (LayoutFrame 0 0 0 0 0 1 40 0)
-	      initiallyInvisible: true
-	      hasHorizontalScrollBar: false
-	      hasVerticalScrollBar: false
-	      specHolder: messageSpecHolder
-	      createNewBuilder: false
-	      postBuildCallback: postBuildMessagePane:
-	    )
-
-	   #(#VariableVerticalPanelSpec
-	      #name: 'VariableVerticalPanel1'
-	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-	      #showHandle: false
-	      #snapMode: #both
-	      #handlePosition: #left
-	      #component:
-	     #(#SpecCollection
-		#collection: #(
-		 #(#SubCanvasSpec
-		    #name: 'Navigator'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NavigatorCanvas'
-		    #minorKey: #'selectorBrowserSpec'
-		  )
-		 #(#SubCanvasSpec
-		    #name: 'CodePane'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NewSystemBrowser'
-		    #minorKey: #codePaneSpec
-		  )
-"/                 #(#CodeViewSpec
-"/                    #name: 'CodeView'
-"/                    #model: #codeHolder
-"/                    #hasHorizontalScrollBar: true
-"/                    #hasVerticalScrollBar: true
-"/                    #miniScrollerHorizontal: true
-"/                    #modifiedChannel: #codeModifiedHolder
-"/              #postBuildCallback: #postBuildCodeView:
-"/              #modifiedChannel: #codeModifiedHolder
-"/                  )
-		 )
-
-	      )
-	      #handles: #(#Any 0.3 1.0)
-	      postBuildCallback: postBuildTabContentView:
-
-	    )
-	   )
-
-	)
-      )
-
-    "Modified: / 28-08-2010 / 12:01:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    #(FullSpec
+       name: selectorBrowserSpec
+       window:
+      (WindowSpec
+         label: 'SelectorBrowser'
+         name: 'SelectorBrowser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 462 300)
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (SubCanvasSpec
+             name: 'MessagePane'
+             layout: (LayoutFrame 0 0 0 0 0 1 40 0)
+             initiallyInvisible: true
+             hasHorizontalScrollBar: false
+             hasVerticalScrollBar: false
+             clientKey: inlineMessageApp
+             createNewBuilder: false
+             postBuildCallback: postBuildMessagePane:
+           )
+          (VariableVerticalPanelSpec
+             name: 'VariableVerticalPanel1'
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+             showHandle: false
+             snapMode: both
+             handlePosition: left
+             component:
+            (SpecCollection
+               collection: (
+                (SubCanvasSpec
+                   name: 'Navigator'
+                   autoHideScrollBars: false
+                   majorKey: NavigatorCanvas
+                   minorKey: selectorBrowserSpec
+                   subAspectHolders:
+                  (Array
+
+                    (SubChannelInfoSpec
+                       subAspect: environmentHolder
+                       aspect: environmentHolder
+                     )
+                   )
+                   createNewBuilder: false
+                 )
+                (SubCanvasSpec
+                   name: 'CodePane'
+                   autoHideScrollBars: false
+                   majorKey: NewSystemBrowser
+                   minorKey: codePaneSpec
+                   createNewBuilder: false
+                 )
+                )
+
+             )
+             handles: (Any 0.3 1.0)
+             postBuildCallback: postBuildTabContentView:
+           )
+          )
+
+       )
+     )
+
+    "Modified: / 25-03-2014 / 18:03:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 senderChainBrowserSpec
@@ -3908,318 +4147,347 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:NewSystemBrowser andSelector:#senderChainBrowserSpec
-     NewSystemBrowser new openInterface:#senderChainBrowserSpec
+     UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#senderChainBrowserSpec
+     Tools::NewSystemBrowser new openInterface:#senderChainBrowserSpec
     "
 
     <resource: #canvas>
 
     ^
-     #(#FullSpec
-	#name: #senderChainBrowserSpec
-	#window:
-       #(#WindowSpec
-	  #label: 'MethodBrowser'
-	  #name: 'MethodBrowser'
-	  #min: #(#Point 0 0)
-	  #bounds: #(#Rectangle 185 379 647 679)
-	)
-	#component:
-       #(#SpecCollection
-	  #collection: #(
-	    (SubCanvasSpec
-	      name: 'MessagePane'
-	      layout: (LayoutFrame 0 0 0 0 0 1 40 0)
-	      initiallyInvisible: true
-	      hasHorizontalScrollBar: false
-	      hasVerticalScrollBar: false
-	      specHolder: messageSpecHolder
-	      createNewBuilder: false
-	      postBuildCallback: postBuildMessagePane:
-	    )
-
-	   #(#VariableVerticalPanelSpec
-	      #name: 'VariableVerticalPanel1'
-	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-	      #showHandle: false
-	      #snapMode: #both
-	      #handlePosition: #left
-	      #component:
-	     #(#SpecCollection
-		#collection: #(
-		 #(#VariableHorizontalPanelSpec
-		    #name: 'VariableHorizontalPanel1'
-		    #showHandle: false
-		    #barWidth: 2
-		    #component:
-		   #(#SpecCollection
-		      #collection: #(
-		       #(#SubCanvasSpec
-			  #name: 'MethodList1'
-			  #majorKey: #'MethodList'
-			  #subAspectHolders:
-			 #(#Array
-
-		     #(#SubChannelInfoSpec
-			#subAspect: #showCoverageInformation
-			#aspect: #showCoverageInformation
-		      )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #doubleClickChannel
-			      #callBack: #methodDoubleClicked1
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #immediateUpdate
-			      #aspect: #immediateUpdate
-			    )
-
-			   #(#SubChannelInfoSpec
-			      #subAspect: #inGeneratorHolder
-			      #aspect: #selectorListGenerator1
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #menuHolder
-			      #aspect: #selectorPopUpMenu
-			    )
-		     #(#SubChannelInfoSpec
-			#subAspect: #showMethodInheritance
-			#aspect: #showMethodInheritance
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #showMethodComplexity
-			#aspect: #showMethodComplexity
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #showMethodTypeIcon
-			#aspect: #showMethodTypeIcon
-		      )
-
-			   #(#SubChannelInfoSpec
-			      #subAspect: #packageFilter
-			      #aspect: #packageFilter
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #selectedMethods
-			      #aspect: #selectedMethods1
-			      #callBack: #methodsSelectionChanged1
-			    )
-
-			   #(#SubChannelInfoSpec
-			      #subAspect: #selectionChangeCondition
-			      #aspect: #selectionChangeConditionHolder
-			    )
-			  )
-			  #createNewApplication: true
-			  #createNewBuilder: true
-			)
-		       #(#SubCanvasSpec
-			  #name: 'MethodList2'
-			  #majorKey: #'MethodList'
-			  #subAspectHolders:
-			 #(#Array
-
-		     #(#SubChannelInfoSpec
-			#subAspect: #showCoverageInformation
-			#aspect: #showCoverageInformation
-		      )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #doubleClickChannel
-			      #callBack: #methodDoubleClicked2
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #immediateUpdate
-			      #aspect: #immediateUpdate
-			    )
-		     #(#SubChannelInfoSpec
-			#subAspect: #showMethodInheritance
-			#aspect: #showMethodInheritance
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #showMethodComplexity
-			#aspect: #showMethodComplexity
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #showMethodTypeIcon
-			#aspect: #showMethodTypeIcon
-		      )
-
-			   #(#SubChannelInfoSpec
-			      #subAspect: #inGeneratorHolder
-			      #aspect: #selectorListGenerator2
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #menuHolder
-			      #aspect: #selectorPopUpMenu
-			    )
-
-			   #(#SubChannelInfoSpec
-			      #subAspect: #packageFilter
-			      #aspect: #packageFilter
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #selectedMethods
-			      #aspect: #selectedMethods2
-			      #callBack: #methodsSelectionChanged2
-			    )
-
-			   #(#SubChannelInfoSpec
-			      #subAspect: #selectionChangeCondition
-			      #aspect: #selectionChangeConditionHolder
-			    )
-			  )
-			  #createNewApplication: true
-			  #createNewBuilder: true
-			)
-		       #(#SubCanvasSpec
-			  #name: 'MethodList3'
-			  #majorKey: #'MethodList'
-			  #subAspectHolders:
-			 #(#Array
-
-		     #(#SubChannelInfoSpec
-			#subAspect: #showCoverageInformation
-			#aspect: #showCoverageInformation
-		      )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #doubleClickChannel
-			      #callBack: #methodDoubleClicked3
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #immediateUpdate
-			      #aspect: #immediateUpdate
-			    )
-		     #(#SubChannelInfoSpec
-			#subAspect: #showMethodInheritance
-			#aspect: #showMethodInheritance
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #showMethodComplexity
-			#aspect: #showMethodComplexity
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #showMethodTypeIcon
-			#aspect: #showMethodTypeIcon
-		      )
-
-			   #(#SubChannelInfoSpec
-			      #subAspect: #inGeneratorHolder
-			      #aspect: #selectorListGenerator3
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #menuHolder
-			      #aspect: #selectorPopUpMenu
-			    )
-
-			   #(#SubChannelInfoSpec
-			      #subAspect: #packageFilter
-			      #aspect: #packageFilter
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #selectedMethods
-			      #aspect: #selectedMethods3
-			      #callBack: #methodsSelectionChanged3
-			    )
-
-			   #(#SubChannelInfoSpec
-			      #subAspect: #selectionChangeCondition
-			      #aspect: #selectionChangeConditionHolder
-			    )
-			  )
-			  #createNewApplication: true
-			  #createNewBuilder: true
-			)
-		       #(#SubCanvasSpec
-			  #name: 'MethodList4'
-			  #majorKey: #'MethodList'
-			  #subAspectHolders:
-			 #(#Array
-
-		     #(#SubChannelInfoSpec
-			#subAspect: #showCoverageInformation
-			#aspect: #showCoverageInformation
-		      )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #doubleClickChannel
-			      #callBack: #methodDoubleClicked4
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #immediateUpdate
-			      #aspect: #immediateUpdate
-			    )
-		     #(#SubChannelInfoSpec
-			#subAspect: #showMethodInheritance
-			#aspect: #showMethodInheritance
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #showMethodComplexity
-			#aspect: #showMethodComplexity
-		      )
-		     #(#SubChannelInfoSpec
-			#subAspect: #showMethodTypeIcon
-			#aspect: #showMethodTypeIcon
-		      )
-
-			   #(#SubChannelInfoSpec
-			      #subAspect: #inGeneratorHolder
-			      #aspect: #selectorListGenerator4
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #menuHolder
-			      #aspect: #selectorPopUpMenu
-			    )
-
-			   #(#SubChannelInfoSpec
-			      #subAspect: #packageFilter
-			      #aspect: #packageFilter
-			    )
-			   #(#SubChannelInfoSpec
-			      #subAspect: #selectedMethods
-			      #aspect: #selectedMethods4
-			      #callBack: #methodsSelectionChanged4
-			    )
-
-			   #(#SubChannelInfoSpec
-			      #subAspect: #selectionChangeCondition
-			      #aspect: #selectionChangeConditionHolder
-			    )
-			  )
-			  #createNewApplication: true
-			  #createNewBuilder: true
-			)
-		       )
-
-		    )
-		    #handles: #(#Any 0.25 0.5 0.75 1.0)
-		  )
-		 #(#SubCanvasSpec
-		    #name: 'CodePane'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NewSystemBrowser'
-		    #minorKey: #codePaneSpec
-		  )
-"/                 #(#CodeViewSpec
-"/                    #name: 'CodeView'
-"/                    #model: #codeHolder
-"/                    #hasHorizontalScrollBar: true
-"/                    #hasVerticalScrollBar: true
-"/                    #miniScrollerHorizontal: true
-"/              #postBuildCallback: #postBuildCodeView:
-"/              #modifiedChannel: #codeModifiedHolder
-"/                  )
-		 )
-
-	      )
-	      #handles: #(#Any 0.5 1.0)
-	      postBuildCallback: postBuildTabContentView:
-
-	    )
-	   )
-
-	)
-      )
-
-    "Modified: / 27-04-2010 / 16:30:26 / cg"
-    "Modified: / 28-08-2010 / 12:01:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    #(FullSpec
+       name: senderChainBrowserSpec
+       window:
+      (WindowSpec
+         label: 'MethodBrowser'
+         name: 'MethodBrowser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 462 300)
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (SubCanvasSpec
+             name: 'MessagePane'
+             layout: (LayoutFrame 0 0 0 0 0 1 40 0)
+             initiallyInvisible: true
+             hasHorizontalScrollBar: false
+             hasVerticalScrollBar: false
+             clientKey: inlineMessageApp
+             createNewBuilder: false
+             postBuildCallback: postBuildMessagePane:
+           )
+          (VariableVerticalPanelSpec
+             name: 'VariableVerticalPanel1'
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+             showHandle: false
+             snapMode: both
+             handlePosition: left
+             component:
+            (SpecCollection
+               collection: (
+                (VariableHorizontalPanelSpec
+                   name: 'VariableHorizontalPanel1'
+                   barWidth: 2
+                   showHandle: false
+                   component:
+                  (SpecCollection
+                     collection: (
+                      (SubCanvasSpec
+                         name: 'MethodList1'
+                         majorKey: MethodList
+                         subAspectHolders:
+                        (Array
+
+                          (SubChannelInfoSpec
+                             subAspect: doubleClickChannel
+                             callBack: methodDoubleClicked1
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: environmentHolder
+                             aspect: environmentHolder
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: immediateUpdate
+                             aspect: immediateUpdate
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: inGeneratorHolder
+                             aspect: selectorListGenerator1
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: menuHolder
+                             aspect: selectorPopUpMenu
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: packageFilter
+                             aspect: packageFilter
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: selectedMethods
+                             aspect: selectedMethods1
+                             callBack: methodsSelectionChanged1
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: selectionChangeCondition
+                             aspect: selectionChangeConditionHolder
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: showCoverageInformation
+                             aspect: showCoverageInformation
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: showMethodComplexity
+                             aspect: showMethodComplexity
+                           )
+              (SubChannelInfoSpec
+                 subAspect: showSyntheticMethods
+                 aspect: showSyntheticMethods
+               ) 
+
+                          (SubChannelInfoSpec
+                             subAspect: showMethodInheritance
+                             aspect: showMethodInheritance
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: showMethodTypeIcon
+                             aspect: showMethodTypeIcon
+                           )
+                         )
+                         createNewApplication: true
+                         createNewBuilder: true
+                       )
+                      (SubCanvasSpec
+                         name: 'MethodList2'
+                         majorKey: MethodList
+                         subAspectHolders:
+                        (Array
+
+                          (SubChannelInfoSpec
+                             subAspect: doubleClickChannel
+                             callBack: methodDoubleClicked2
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: environmentHolder
+                             aspect: environmentHolder
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: immediateUpdate
+                             aspect: immediateUpdate
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: inGeneratorHolder
+                             aspect: selectorListGenerator2
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: menuHolder
+                             aspect: selectorPopUpMenu
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: packageFilter
+                             aspect: packageFilter
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: selectedMethods
+                             aspect: selectedMethods2
+                             callBack: methodsSelectionChanged2
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: selectionChangeCondition
+                             aspect: selectionChangeConditionHolder
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: showCoverageInformation
+                             aspect: showCoverageInformation
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: showMethodComplexity
+                             aspect: showMethodComplexity
+                           )
+              (SubChannelInfoSpec
+                 subAspect: showSyntheticMethods
+                 aspect: showSyntheticMethods
+               ) 
+
+                          (SubChannelInfoSpec
+                             subAspect: showMethodInheritance
+                             aspect: showMethodInheritance
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: showMethodTypeIcon
+                             aspect: showMethodTypeIcon
+                           )
+                         )
+                         createNewApplication: true
+                         createNewBuilder: true
+                       )
+                      (SubCanvasSpec
+                         name: 'MethodList3'
+                         majorKey: MethodList
+                         subAspectHolders:
+                        (Array
+
+                          (SubChannelInfoSpec
+                             subAspect: doubleClickChannel
+                             callBack: methodDoubleClicked3
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: environmentHolder
+                             aspect: environmentHolder
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: immediateUpdate
+                             aspect: immediateUpdate
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: inGeneratorHolder
+                             aspect: selectorListGenerator3
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: menuHolder
+                             aspect: selectorPopUpMenu
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: packageFilter
+                             aspect: packageFilter
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: selectedMethods
+                             aspect: selectedMethods3
+                             callBack: methodsSelectionChanged3
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: selectionChangeCondition
+                             aspect: selectionChangeConditionHolder
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: showCoverageInformation
+                             aspect: showCoverageInformation
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: showMethodComplexity
+                             aspect: showMethodComplexity
+                           )
+              (SubChannelInfoSpec
+                 subAspect: showSyntheticMethods
+                 aspect: showSyntheticMethods
+               ) 
+
+                          (SubChannelInfoSpec
+                             subAspect: showMethodInheritance
+                             aspect: showMethodInheritance
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: showMethodTypeIcon
+                             aspect: showMethodTypeIcon
+                           )
+                         )
+                         createNewApplication: true
+                         createNewBuilder: true
+                       )
+                      (SubCanvasSpec
+                         name: 'MethodList4'
+                         majorKey: MethodList
+                         subAspectHolders:
+                        (Array
+
+                          (SubChannelInfoSpec
+                             subAspect: doubleClickChannel
+                             callBack: methodDoubleClicked4
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: environmentHolder
+                             aspect: environmentHolder
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: immediateUpdate
+                             aspect: immediateUpdate
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: inGeneratorHolder
+                             aspect: selectorListGenerator4
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: menuHolder
+                             aspect: selectorPopUpMenu
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: packageFilter
+                             aspect: packageFilter
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: selectedMethods
+                             aspect: selectedMethods4
+                             callBack: methodsSelectionChanged4
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: selectionChangeCondition
+                             aspect: selectionChangeConditionHolder
+                           )
+
+                          (SubChannelInfoSpec
+                             subAspect: showCoverageInformation
+                             aspect: showCoverageInformation
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: showMethodComplexity
+                             aspect: showMethodComplexity
+                           )
+              (SubChannelInfoSpec
+                 subAspect: showSyntheticMethods
+                 aspect: showSyntheticMethods
+               ) 
+
+                          (SubChannelInfoSpec
+                             subAspect: showMethodInheritance
+                             aspect: showMethodInheritance
+                           )
+                          (SubChannelInfoSpec
+                             subAspect: showMethodTypeIcon
+                             aspect: showMethodTypeIcon
+                           )
+                         )
+                         createNewApplication: true
+                         createNewBuilder: true
+                       )
+                      )
+
+                   )
+                   handles: (Any 0.25 0.5 0.75 1.0)
+                 )
+                (SubCanvasSpec
+                   name: 'CodePane'
+                   autoHideScrollBars: false
+                   majorKey: NewSystemBrowser
+                   minorKey: codePaneSpec
+                   createNewBuilder: false
+                 )
+                )
+
+             )
+             handles: (Any 0.5 1.0)
+             postBuildCallback: postBuildTabContentView:
+           )
+          )
+
+       )
+     )
+
+    "Modified: / 25-03-2014 / 18:03:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 singleCategoryBrowserSpec
@@ -4230,79 +4498,78 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:NewSystemBrowser andSelector:#singleCategoryBrowserSpec
-     NewSystemBrowser new openInterface:#singleCategoryBrowserSpec
+     UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#singleCategoryBrowserSpec
+     Tools::NewSystemBrowser new openInterface:#singleCategoryBrowserSpec
     "
 
     <resource: #canvas>
 
     ^
-     #(#FullSpec
-	#name: #singleCategoryBrowserSpec
-	#window:
-       #(#WindowSpec
-	  #label: 'CategoryBrowser'
-	  #name: 'SingleCategoryBrowser'
-	  #min: #(#Point 0 0)
-	  #bounds: #(#Rectangle 12 22 474 322)
-	)
-	#component:
-       #(#SpecCollection
-	  #collection: #(
-	    (SubCanvasSpec
-	      name: 'MessagePane'
-	      layout: (LayoutFrame 0 0 0 0 0 1 40 0)
-	      initiallyInvisible: true
-	      hasHorizontalScrollBar: false
-	      hasVerticalScrollBar: false
-	      specHolder: messageSpecHolder
-	      createNewBuilder: false
-	      postBuildCallback: postBuildMessagePane:
-	    )
-
-	   #(#VariableVerticalPanelSpec
-	      #name: 'VariableVerticalPanel1'
-	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-	      #showHandle: false
-	      #snapMode: #both
-	      #handlePosition: #left
-	      #component:
-	     #(#SpecCollection
-		#collection: #(
-		 #(#SubCanvasSpec
-		    #name: 'Navigator'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NavigatorCanvas'
-		    #minorKey: #'singleCategoryBrowserSpec'
-		  )
-		 #(#SubCanvasSpec
-		    #name: 'CodePane'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NewSystemBrowser'
-		    #minorKey: #codePaneSpec
-		  )
-"/                 #(#CodeViewSpec
-"/                    #name: 'CodeView'
-"/                    #model: #codeHolder
-"/                    #hasHorizontalScrollBar: true
-"/                    #hasVerticalScrollBar: true
-"/                    #miniScrollerHorizontal: true
-"/              #postBuildCallback: #postBuildCodeView:
-"/              #modifiedChannel: #codeModifiedHolder
-"/                  )
-		 )
-
-	      )
-	      #handles: #(#Any 0.3 1.0)
-	      postBuildCallback: postBuildTabContentView:
-
-	    )
-	   )
-
-	)
-      )
-
-    "Modified: / 28-08-2010 / 12:01:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    #(FullSpec
+       name: singleCategoryBrowserSpec
+       window:
+      (WindowSpec
+         label: 'CategoryBrowser'
+         name: 'CategoryBrowser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 462 300)
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (SubCanvasSpec
+             name: 'MessagePane'
+             layout: (LayoutFrame 0 0 0 0 0 1 40 0)
+             initiallyInvisible: true
+             hasHorizontalScrollBar: false
+             hasVerticalScrollBar: false
+             clientKey: inlineMessageApp
+             createNewBuilder: false
+             postBuildCallback: postBuildMessagePane:
+           )
+          (VariableVerticalPanelSpec
+             name: 'VariableVerticalPanel1'
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+             showHandle: false
+             snapMode: both
+             handlePosition: left
+             component:
+            (SpecCollection
+               collection: (
+                (SubCanvasSpec
+                   name: 'Navigator'
+                   autoHideScrollBars: false
+                   majorKey: NavigatorCanvas
+                   minorKey: singleCategoryBrowserSpec
+                   subAspectHolders:
+                  (Array
+
+                    (SubChannelInfoSpec
+                       subAspect: environmentHolder
+                       aspect: environmentHolder
+                     )
+                   )
+                   createNewBuilder: false
+                 )
+                (SubCanvasSpec
+                   name: 'CodePane'
+                   autoHideScrollBars: false
+                   majorKey: NewSystemBrowser
+                   minorKey: codePaneSpec
+                   createNewBuilder: false
+                 )
+                )
+
+             )
+             handles: (Any 0.3 1.0)
+             postBuildCallback: postBuildTabContentView:
+           )
+          )
+
+       )
+     )
+
+    "Modified: / 25-03-2014 / 18:03:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 singleClassBrowserSpec
@@ -4313,79 +4580,78 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:NewSystemBrowser andSelector:#singleClassBrowserSpec
-     NewSystemBrowser new openInterface:#singleClassBrowserSpec
+     UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#singleClassBrowserSpec
+     Tools::NewSystemBrowser new openInterface:#singleClassBrowserSpec
     "
 
     <resource: #canvas>
 
     ^
-     #(#FullSpec
-	#name: #singleClassBrowserSpec
-	#window:
-       #(#WindowSpec
-	  #label: 'ClassBrowser'
-	  #name: 'NewBrowser'
-	  #min: #(#Point 0 0)
-	  #bounds: #(#Rectangle 12 22 474 322)
-	)
-	#component:
-       #(#SpecCollection
-	  #collection: #(
-	    (SubCanvasSpec
-	      name: 'MessagePane'
-	      layout: (LayoutFrame 0 0 0 0 0 1 40 0)
-	      initiallyInvisible: true
-	      hasHorizontalScrollBar: false
-	      hasVerticalScrollBar: false
-	      specHolder: messageSpecHolder
-	      createNewBuilder: false
-	      postBuildCallback: postBuildMessagePane:
-	    )
-
-	   #(#VariableVerticalPanelSpec
-	      #name: 'VariableVerticalPanel1'
-	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-	      #showHandle: false
-	      #snapMode: #both
-	      #handlePosition: #left
-	      #component:
-	     #(#SpecCollection
-		#collection: #(
-		 #(#SubCanvasSpec
-		    #name: 'Navigator'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NavigatorCanvas'
-		    #minorKey: #'singleClassBrowserSpec'
-		  )
-		 #(#SubCanvasSpec
-		    #name: 'CodePane'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NewSystemBrowser'
-		    #minorKey: #codePaneSpec
-		  )
-"/                 #(#CodeViewSpec
-"/                    #name: 'CodeView'
-"/                    #model: #codeHolder
-"/                    #hasHorizontalScrollBar: true
-"/                    #hasVerticalScrollBar: true
-"/                    #miniScrollerHorizontal: true
-"/              #postBuildCallback: #postBuildCodeView:
-"/              #modifiedChannel: #codeModifiedHolder
-"/                  )
-		 )
-
-	      )
-	      #handles: #(#Any 0.4 1.0)
-	      postBuildCallback: postBuildTabContentView:
-
-	    )
-	   )
-
-	)
-      )
-
-    "Modified: / 28-08-2010 / 12:01:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    #(FullSpec
+       name: singleClassBrowserSpec
+       window:
+      (WindowSpec
+         label: 'ClassBrowser'
+         name: 'ClassBrowser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 462 300)
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (SubCanvasSpec
+             name: 'MessagePane'
+             layout: (LayoutFrame 0 0 0 0 0 1 40 0)
+             initiallyInvisible: true
+             hasHorizontalScrollBar: false
+             hasVerticalScrollBar: false
+             clientKey: inlineMessageApp
+             createNewBuilder: false
+             postBuildCallback: postBuildMessagePane:
+           )
+          (VariableVerticalPanelSpec
+             name: 'VariableVerticalPanel1'
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+             showHandle: false
+             snapMode: both
+             handlePosition: left
+             component:
+            (SpecCollection
+               collection: (
+                (SubCanvasSpec
+                   name: 'Navigator'
+                   autoHideScrollBars: false
+                   majorKey: NavigatorCanvas
+                   minorKey: singleClassBrowserSpec
+                   subAspectHolders:
+                  (Array
+
+                    (SubChannelInfoSpec
+                       subAspect: environmentHolder
+                       aspect: environmentHolder
+                     )
+                   )
+                   createNewBuilder: false
+                 )
+                (SubCanvasSpec
+                   name: 'CodePane'
+                   autoHideScrollBars: false
+                   majorKey: NewSystemBrowser
+                   minorKey: codePaneSpec
+                   createNewBuilder: false
+                 )
+                )
+
+             )
+             handles: (Any 0.4 1.0)
+             postBuildCallback: postBuildTabContentView:
+           )
+          )
+
+       )
+     )
+
+    "Modified: / 25-03-2014 / 18:03:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 singleFullProtocolBrowserSpec
@@ -4396,80 +4662,78 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:NewSystemBrowser andSelector:#singleProtocolBrowserSpec
-     NewSystemBrowser new openInterface:#singleProtocolBrowserSpec
+     UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#singleFullProtocolBrowserSpec
+     Tools::NewSystemBrowser new openInterface:#singleFullProtocolBrowserSpec
     "
 
     <resource: #canvas>
 
     ^
-     #(#FullSpec
-	#name: #singleFullProtocolBrowserSpec
-	#window:
-       #(#WindowSpec
-	  #label: 'ProtocolBrowser'
-	  #name: 'NewBrowser'
-	  #min: #(#Point 0 0)
-	  #bounds: #(#Rectangle 13 23 475 323)
-	)
-	#component:
-       #(#SpecCollection
-	  #collection: #(
-	    (SubCanvasSpec
-	      name: 'MessagePane'
-	      layout: (LayoutFrame 0 0 0 0 0 1 40 0)
-	      initiallyInvisible: true
-	      hasHorizontalScrollBar: false
-	      hasVerticalScrollBar: false
-	      specHolder: messageSpecHolder
-	      createNewBuilder: false
-	      postBuildCallback: postBuildMessagePane:
-	    )
-
-	   #(#VariableVerticalPanelSpec
-	      #name: 'VariableVerticalPanel1'
-	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-	      #showHandle: false
-	      #snapMode: #both
-	      #handlePosition: #left
-	      #component:
-	     #(#SpecCollection
-		#collection: #(
-		 #(#SubCanvasSpec
-		    #name: 'Navigator'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NavigatorCanvas'
-		    #minorKey: #'singleFullProtocolBrowserSpec'
-		  )
-		 #(#SubCanvasSpec
-		    #name: 'CodePane'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NewSystemBrowser'
-		    #minorKey: #codePaneSpec
-		  )
-"/                 #(#CodeViewSpec
-"/                    #name: 'CodeView'
-"/                    #model: #codeHolder
-"/                    #hasHorizontalScrollBar: true
-"/                    #hasVerticalScrollBar: true
-"/                    #miniScrollerHorizontal: true
-"/              #postBuildCallback: #postBuildCodeView:
-"/              #modifiedChannel: #codeModifiedHolder
-"/                  )
-		 )
-
-	      )
-	      #handles: #(#Any 0.3 1.0)
-	      postBuildCallback: postBuildTabContentView:
-
-	    )
-	   )
-
-	)
-      )
-
-    "Modified: / 01-03-2000 / 11:59:28 / cg"
-    "Modified: / 28-08-2010 / 12:01:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    #(FullSpec
+       name: singleFullProtocolBrowserSpec
+       window:
+      (WindowSpec
+         label: 'ProtocolBrowser'
+         name: 'ProtocolBrowser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 462 300)
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (SubCanvasSpec
+             name: 'MessagePane'
+             layout: (LayoutFrame 0 0 0 0 0 1 40 0)
+             initiallyInvisible: true
+             hasHorizontalScrollBar: false
+             hasVerticalScrollBar: false
+             clientKey: inlineMessageApp
+             createNewBuilder: false
+             postBuildCallback: postBuildMessagePane:
+           )
+          (VariableVerticalPanelSpec
+             name: 'VariableVerticalPanel1'
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+             showHandle: false
+             snapMode: both
+             handlePosition: left
+             component:
+            (SpecCollection
+               collection: (
+                (SubCanvasSpec
+                   name: 'Navigator'
+                   autoHideScrollBars: false
+                   majorKey: NavigatorCanvas
+                   minorKey: singleFullProtocolBrowserSpec
+                   subAspectHolders:
+                  (Array
+
+                    (SubChannelInfoSpec
+                       subAspect: environmentHolder
+                       aspect: environmentHolder
+                     )
+                   )
+                   createNewBuilder: false
+                 )
+                (SubCanvasSpec
+                   name: 'CodePane'
+                   autoHideScrollBars: false
+                   majorKey: NewSystemBrowser
+                   minorKey: codePaneSpec
+                   createNewBuilder: false
+                 )
+                )
+
+             )
+             handles: (Any 0.3 1.0)
+             postBuildCallback: postBuildTabContentView:
+           )
+          )
+
+       )
+     )
+
+    "Modified: / 25-03-2014 / 18:03:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 singleMethodBrowserSpec
@@ -4487,88 +4751,91 @@
     <resource: #canvas>
 
     ^
-     #(FullSpec
-	name: singleMethodBrowserSpec
-	window:
-       (WindowSpec
-	  label: 'MethodBrowser'
-	  name: 'MethodBrowser'
-	  min: (Point 0 0)
-	  bounds: (Rectangle 0 0 462 300)
-	)
-	component:
-       (SpecCollection
-	  collection: (
-	   (SubCanvasSpec
-	      name: 'MessagePane'
-	      layout: (LayoutFrame 0 0 0 0 0 1 40 0)
-	      initiallyInvisible: true
-	      hasHorizontalScrollBar: false
-	      hasVerticalScrollBar: false
-	      specHolder: messageSpecHolder
-	      createNewBuilder: false
-	      postBuildCallback: postBuildMessagePane:
-	    )
-	   (TransparentBoxSpec
-	      name: 'Box1'
-	      layout: (LayoutFrame 0 0 0 0 0 1 0 1)
-	      postBuildCallback: postBuildTabContentView:
-
-	      component:
-	     (SpecCollection
-		collection: (
-		 (SubCanvasSpec
-		    name: 'PseudoMethodList'
-		    layout: (LayoutFrame 0 0.0 0 0 0 1.0 25 0)
-		    majorKey: MethodList
-		    minorKey: singleMethodWindowSpec
-		    subAspectHolders:
-		   (Array
-
-		     (SubChannelInfoSpec
-			subAspect: immediateUpdate
-			aspect: immediateUpdate
-		      )
-		     (SubChannelInfoSpec
-			subAspect: inGeneratorHolder
-			aspect: selectorListGenerator
-		      )
-
-		     (SubChannelInfoSpec
-			subAspect: packageFilter
-			aspect: packageFilter
-		      )
-		     (SubChannelInfoSpec
-			subAspect: selectedMethods
-			aspect: selectedProtocolMethods
-		      )
-
-		     (SubChannelInfoSpec
-			subAspect: menuHolder
-			aspect: selectorPopUpMenu
-		      )
-		    )
-		    createNewApplication: true
-		    createNewBuilder: true
-		  )
-		 (SubCanvasSpec
-		    name: 'CodePane'
-		    layout: (LayoutFrame 0 0.0 25 0.0 0 1.0 0 1.0)
-		    autoHideScrollBars: false
-		    majorKey: NewSystemBrowser
-		    minorKey: codePaneSpec
-		    createNewBuilder: false
-		  )
-		 )
-
-	      )
-	    )
-	   )
-
-	)
-      )
-
-    "Modified: / 28-08-2010 / 12:01:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    #(FullSpec
+       name: singleMethodBrowserSpec
+       window:
+      (WindowSpec
+         label: 'MethodBrowser'
+         name: 'MethodBrowser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 462 300)
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (SubCanvasSpec
+             name: 'MessagePane'
+             layout: (LayoutFrame 0 0 0 0 0 1 40 0)
+             initiallyInvisible: true
+             hasHorizontalScrollBar: false
+             hasVerticalScrollBar: false
+             clientKey: inlineMessageApp
+             createNewBuilder: false
+             postBuildCallback: postBuildMessagePane:
+           )
+          (TransparentBoxSpec
+             name: 'Box1'
+             layout: (LayoutFrame 0 0 0 0 0 1 0 1)
+             component:
+            (SpecCollection
+               collection: (
+                (SubCanvasSpec
+                   name: 'PseudoMethodList'
+                   layout: (LayoutFrame 0 0.0 0 0 0 1.0 25 0)
+                   majorKey: MethodList
+                   minorKey: singleMethodWindowSpec
+                   subAspectHolders:
+                  (Array
+
+                    (SubChannelInfoSpec
+                       subAspect: environmentHolder
+                       aspect: environmentHolder
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: immediateUpdate
+                       aspect: immediateUpdate
+                     )
+
+                    (SubChannelInfoSpec
+                       subAspect: inGeneratorHolder
+                       aspect: selectorListGenerator
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: menuHolder
+                       aspect: selectorPopUpMenu
+                     )
+
+                    (SubChannelInfoSpec
+                       subAspect: packageFilter
+                       aspect: packageFilter
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: selectedMethods
+                       aspect: selectedProtocolMethods
+                     )
+                   )
+                   createNewApplication: true
+                   createNewBuilder: true
+                 )
+                (SubCanvasSpec
+                   name: 'CodePane'
+                   layout: (LayoutFrame 0 0.0 25 0.0 0 1.0 0 1.0)
+                   autoHideScrollBars: false
+                   majorKey: NewSystemBrowser
+                   minorKey: codePaneSpec
+                   createNewBuilder: false
+                 )
+                )
+
+             )
+             postBuildCallback: postBuildTabContentView:
+           )
+          )
+
+       )
+     )
+
+    "Modified: / 25-03-2014 / 18:03:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 singleMethodWithInfoBrowserSpec
@@ -4586,111 +4853,113 @@
     <resource: #canvas>
 
     ^
-     #(FullSpec
-	name: singleMethodWithInfoBrowserSpec
-	window:
-       (WindowSpec
-	  label: 'MethodBrowser'
-	  name: 'MethodBrowser'
-	  min: (Point 0 0)
-	  bounds: (Rectangle 0 0 462 300)
-	)
-	component:
-       (SpecCollection
-	  collection: (
-	    (SubCanvasSpec
-	      name: 'MessagePane'
-	      layout: (LayoutFrame 0 0 0 0 0 1 40 0)
-	      initiallyInvisible: true
-	      hasHorizontalScrollBar: false
-	      hasVerticalScrollBar: false
-	      specHolder: messageSpecHolder
-	      createNewBuilder: false
-	      postBuildCallback: postBuildMessagePane:
-	    )
-
-	   (TransparentBoxSpec
-	      name: 'Box'
-	      layout: (LayoutFrame 0 0 0 0 0 1 0 1)
-	      postBuildCallback: postBuildTabContentView:
-
-	      component:
-	     (SpecCollection
-		collection: (
-		 (SubCanvasSpec
-		    name: 'SubCanvas1'
-		    layout: (LayoutFrame 0 0.0 0 0 0 1.0 25 0)
-		    majorKey: MethodList
-		    minorKey: singleMethodWindowSpec
-		    subAspectHolders:
-		   (Array
-
-		     (SubChannelInfoSpec
-			subAspect: immediateUpdate
-			aspect: immediateUpdate
-		      )
-		     (SubChannelInfoSpec
-			subAspect: inGeneratorHolder
-			aspect: selectorListGenerator
-		      )
-
-		     (SubChannelInfoSpec
-			subAspect: packageFilter
-			aspect: packageFilter
-		      )
-		     (SubChannelInfoSpec
-			subAspect: selectedMethods
-			aspect: selectedProtocolMethods
-		      )
-
-		     (SubChannelInfoSpec
-			subAspect: menuHolder
-			aspect: methodListPopUpMenu
-		      )
-		    )
-		    createNewApplication: true
-		    createNewBuilder: true
-		  )
-		 (VariableVerticalPanelSpec
-		    name: 'VariableVerticalPanel2'
-		    layout: (LayoutFrame 0 0.0 25 0 0 1.0 0 1.0)
-		    showHandle: false
-		    snapMode: both
-		    handlePosition: left
-		    component:
-		   (SpecCollection
-		      collection: (
-		       (TextEditorSpec
-			  name: 'TextEditor1'
-			  model: methodInfo
-			  hasHorizontalScrollBar: true
-			  hasVerticalScrollBar: true
-			  autoHideScrollBars: true
-			  isReadOnly: true
-			  hasKeyboardFocusInitially: false
-			)
-		       (SubCanvasSpec
-			  name: 'SubCanvas2'
-			  autoHideScrollBars: false
-			  majorKey: NewSystemBrowser
-			  minorKey: codePaneSpec
-			  createNewBuilder: false
-			)
-		       )
-
-		    )
-		    handles: (Any 0.5 1.0)
-		  )
-		 )
-
-	      )
-	    )
-	   )
-
-	)
-      )
-
-    "Modified: / 28-08-2010 / 12:02:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    #(FullSpec
+       name: singleMethodWithInfoBrowserSpec
+       window:
+      (WindowSpec
+         label: 'MethodBrowser'
+         name: 'MethodBrowser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 462 300)
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (SubCanvasSpec
+             name: 'MessagePane'
+             layout: (LayoutFrame 0 0 0 0 0 1 40 0)
+             initiallyInvisible: true
+             hasHorizontalScrollBar: false
+             hasVerticalScrollBar: false
+             clientKey: inlineMessageApp
+             createNewBuilder: false
+             postBuildCallback: postBuildMessagePane:
+           )
+          (TransparentBoxSpec
+             name: 'Box'
+             layout: (LayoutFrame 0 0 0 0 0 1 0 1)
+             component:
+            (SpecCollection
+               collection: (
+                (SubCanvasSpec
+                   name: 'SubCanvas1'
+                   layout: (LayoutFrame 0 0.0 0 0 0 1.0 25 0)
+                   majorKey: MethodList
+                   minorKey: singleMethodWindowSpec
+                   subAspectHolders:
+                  (Array
+
+                    (SubChannelInfoSpec
+                       subAspect: environmentHolder
+                       aspect: environmentHolder
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: immediateUpdate
+                       aspect: immediateUpdate
+                     )
+
+                    (SubChannelInfoSpec
+                       subAspect: inGeneratorHolder
+                       aspect: selectorListGenerator
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: menuHolder
+                       aspect: methodListPopUpMenu
+                     )
+
+                    (SubChannelInfoSpec
+                       subAspect: packageFilter
+                       aspect: packageFilter
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: selectedMethods
+                       aspect: selectedProtocolMethods
+                     )
+                   )
+                   createNewApplication: true
+                   createNewBuilder: true
+                 )
+                (VariableVerticalPanelSpec
+                   name: 'VariableVerticalPanel2'
+                   layout: (LayoutFrame 0 0.0 25 0 0 1.0 0 1.0)
+                   showHandle: false
+                   snapMode: both
+                   handlePosition: left
+                   component:
+                  (SpecCollection
+                     collection: (
+                      (TextEditorSpec
+                         name: 'TextEditor1'
+                         model: methodInfo
+                         hasHorizontalScrollBar: true
+                         hasVerticalScrollBar: true
+                         autoHideScrollBars: true
+                         isReadOnly: true
+                         hasKeyboardFocusInitially: false
+                       )
+                      (SubCanvasSpec
+                         name: 'SubCanvas2'
+                         autoHideScrollBars: false
+                         majorKey: NewSystemBrowser
+                         minorKey: codePaneSpec
+                         createNewBuilder: false
+                       )
+                      )
+
+                   )
+                   handles: (Any 0.5 1.0)
+                 )
+                )
+
+             )
+             postBuildCallback: postBuildTabContentView:
+           )
+          )
+
+       )
+     )
+
+    "Modified: / 25-03-2014 / 18:03:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 singleNameSpaceBrowserSpec
@@ -4701,80 +4970,78 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:NewSystemBrowser andSelector:#singleNameSpaceBrowserSpec
-     NewSystemBrowser new openInterface:#singleNameSpaceBrowserSpec
+     UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#singleNameSpaceBrowserSpec
+     Tools::NewSystemBrowser new openInterface:#singleNameSpaceBrowserSpec
     "
 
     <resource: #canvas>
 
     ^
-     #(#FullSpec
-	#name: #singleNameSpaceBrowserSpec
-	#window:
-       #(#WindowSpec
-	  #label: 'NameSpaceBrowser'
-	  #name: 'NameSpaceBrowser'
-	  #min: #(#Point 0 0)
-	  #bounds: #(#Rectangle 518 71 1205 712)
-	)
-	#component:
-       #(#SpecCollection
-	  #collection: #(
-	    (SubCanvasSpec
-	      name: 'MessagePane'
-	      layout: (LayoutFrame 0 0 0 0 0 1 40 0)
-	      initiallyInvisible: true
-	      hasHorizontalScrollBar: false
-	      hasVerticalScrollBar: false
-	      specHolder: messageSpecHolder
-	      createNewBuilder: false
-	      postBuildCallback: postBuildMessagePane:
-	    )
-
-	   #(#VariableVerticalPanelSpec
-	      #name: 'VariableVerticalPanel1'
-	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-	      #showHandle: false
-	      #snapMode: #both
-	      #handlePosition: #left
-	      #component:
-	     #(#SpecCollection
-		#collection: #(
-		 #(#SubCanvasSpec
-		    #name: 'Navigator'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NavigatorCanvas'
-		    #minorKey: #singleNameSpaceBrowserSpec
-		  )
-		 #(#SubCanvasSpec
-		    #name: 'CodePane'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NewSystemBrowser'
-		    #minorKey: #codePaneSpec
-		  )
-"/                 #(#CodeViewSpec
-"/                    #name: 'CodeView'
-"/                    #model: #codeHolder
-"/                    #hasHorizontalScrollBar: true
-"/                    #hasVerticalScrollBar: true
-"/                    #miniScrollerHorizontal: true
-"/              #postBuildCallback: #postBuildCodeView:
-"/              #modifiedChannel: #codeModifiedHolder
-"/                  )
-		 )
-
-	      )
-	      #handles: #(#Any 0.3 1.0)
-	      postBuildCallback: postBuildTabContentView:
-
-	    )
-	   )
-
-	)
-      )
-
-    "Modified: / 18-08-2000 / 15:01:10 / cg"
-    "Modified: / 28-08-2010 / 12:02:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    #(FullSpec
+       name: singleNameSpaceBrowserSpec
+       window:
+      (WindowSpec
+         label: 'NameSpaceBrowser'
+         name: 'NameSpaceBrowser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 687 641)
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (SubCanvasSpec
+             name: 'MessagePane'
+             layout: (LayoutFrame 0 0 0 0 0 1 40 0)
+             initiallyInvisible: true
+             hasHorizontalScrollBar: false
+             hasVerticalScrollBar: false
+             clientKey: inlineMessageApp
+             createNewBuilder: false
+             postBuildCallback: postBuildMessagePane:
+           )
+          (VariableVerticalPanelSpec
+             name: 'VariableVerticalPanel1'
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+             showHandle: false
+             snapMode: both
+             handlePosition: left
+             component:
+            (SpecCollection
+               collection: (
+                (SubCanvasSpec
+                   name: 'Navigator'
+                   autoHideScrollBars: false
+                   majorKey: NavigatorCanvas
+                   minorKey: singleNameSpaceBrowserSpec
+                   subAspectHolders:
+                  (Array
+
+                    (SubChannelInfoSpec
+                       subAspect: environmentHolder
+                       aspect: environmentHolder
+                     )
+                   )
+                   createNewBuilder: false
+                 )
+                (SubCanvasSpec
+                   name: 'CodePane'
+                   autoHideScrollBars: false
+                   majorKey: NewSystemBrowser
+                   minorKey: codePaneSpec
+                   createNewBuilder: false
+                 )
+                )
+
+             )
+             handles: (Any 0.3 1.0)
+             postBuildCallback: postBuildTabContentView:
+           )
+          )
+
+       )
+     )
+
+    "Modified: / 25-03-2014 / 18:03:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 singleNameSpaceFullBrowserSpec
@@ -4785,80 +5052,78 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:NewSystemBrowser andSelector:#singleNameSpaceBrowserSpec
-     NewSystemBrowser new openInterface:#singleNameSpaceBrowserSpec
+     UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#singleNameSpaceFullBrowserSpec
+     Tools::NewSystemBrowser new openInterface:#singleNameSpaceFullBrowserSpec
     "
 
     <resource: #canvas>
 
     ^
-     #(#FullSpec
-	#name: #singleNameSpaceBrowserSpec
-	#window:
-       #(#WindowSpec
-	  #label: 'NameSpaceBrowser'
-	  #name: 'NameSpaceBrowser'
-	  #min: #(#Point 0 0)
-	  #bounds: #(#Rectangle 518 71 1205 712)
-	)
-	#component:
-       #(#SpecCollection
-	  #collection: #(
-	    (SubCanvasSpec
-	      name: 'MessagePane'
-	      layout: (LayoutFrame 0 0 0 0 0 1 40 0)
-	      initiallyInvisible: true
-	      hasHorizontalScrollBar: false
-	      hasVerticalScrollBar: false
-	      specHolder: messageSpecHolder
-	      createNewBuilder: false
-	      postBuildCallback: postBuildMessagePane:
-	    )
-
-	   #(#VariableVerticalPanelSpec
-	      #name: 'VariableVerticalPanel1'
-	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-	      #showHandle: false
-	      #snapMode: #both
-	      #handlePosition: #left
-	      #component:
-	     #(#SpecCollection
-		#collection: #(
-		 #(#SubCanvasSpec
-		    #name: 'Navigator'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NavigatorCanvas'
-		    #minorKey: #singleNameSpaceFullBrowserSpec
-		  )
-		 #(#SubCanvasSpec
-		    #name: 'CodePane'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NewSystemBrowser'
-		    #minorKey: #codePaneSpec
-		  )
-"/                 #(#CodeViewSpec
-"/                    #name: 'CodeView'
-"/                    #model: #codeHolder
-"/                    #hasHorizontalScrollBar: true
-"/                    #hasVerticalScrollBar: true
-"/                    #miniScrollerHorizontal: true
-"/              #postBuildCallback: #postBuildCodeView:
-"/              #modifiedChannel: #codeModifiedHolder
-"/                  )
-		 )
-
-	      )
-	      #handles: #(#Any 0.3 1.0)
-	      postBuildCallback: postBuildTabContentView:
-
-	    )
-	   )
-
-	)
-      )
-
-    "Created: / 18-08-2000 / 15:01:07 / cg"
-    "Modified: / 28-08-2010 / 12:02:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    #(FullSpec
+       name: singleNameSpaceFullBrowserSpec
+       window:
+      (WindowSpec
+         label: 'NameSpaceBrowser'
+         name: 'NameSpaceBrowser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 687 641)
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (SubCanvasSpec
+             name: 'MessagePane'
+             layout: (LayoutFrame 0 0 0 0 0 1 40 0)
+             initiallyInvisible: true
+             hasHorizontalScrollBar: false
+             hasVerticalScrollBar: false
+             clientKey: inlineMessageApp
+             createNewBuilder: false
+             postBuildCallback: postBuildMessagePane:
+           )
+          (VariableVerticalPanelSpec
+             name: 'VariableVerticalPanel1'
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+             showHandle: false
+             snapMode: both
+             handlePosition: left
+             component:
+            (SpecCollection
+               collection: (
+                (SubCanvasSpec
+                   name: 'Navigator'
+                   autoHideScrollBars: false
+                   majorKey: NavigatorCanvas
+                   minorKey: singleNameSpaceFullBrowserSpec
+                   subAspectHolders:
+                  (Array
+
+                    (SubChannelInfoSpec
+                       subAspect: environmentHolder
+                       aspect: environmentHolder
+                     )
+                   )
+                   createNewBuilder: false
+                 )
+                (SubCanvasSpec
+                   name: 'CodePane'
+                   autoHideScrollBars: false
+                   majorKey: NewSystemBrowser
+                   minorKey: codePaneSpec
+                   createNewBuilder: false
+                 )
+                )
+
+             )
+             handles: (Any 0.3 1.0)
+             postBuildCallback: postBuildTabContentView:
+           )
+          )
+
+       )
+     )
+
+    "Modified: / 25-03-2014 / 18:04:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 singleProjectBrowserSpec
@@ -4869,80 +5134,78 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:NewSystemBrowser andSelector:#singleProjectBrowserSpec
-     NewSystemBrowser new openInterface:#singleProjectBrowserSpec
+     UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#singleProjectBrowserSpec
+     Tools::NewSystemBrowser new openInterface:#singleProjectBrowserSpec
     "
 
     <resource: #canvas>
 
     ^
-     #(#FullSpec
-	#name: #singleProjectBrowserSpec
-	#window:
-       #(#WindowSpec
-	  #label: 'ProjectBrowser'
-	  #name: 'NewBrowser'
-	  #min: #(#Point 0 0)
-	  #bounds: #(#Rectangle 13 23 475 323)
-	)
-	#component:
-       #(#SpecCollection
-	  #collection: #(
-	    (SubCanvasSpec
-	      name: 'MessagePane'
-	      layout: (LayoutFrame 0 0 0 0 0 1 40 0)
-	      initiallyInvisible: true
-	      hasHorizontalScrollBar: false
-	      hasVerticalScrollBar: false
-	      specHolder: messageSpecHolder
-	      createNewBuilder: false
-	      postBuildCallback: postBuildMessagePane:
-	    )
-
-	   #(#VariableVerticalPanelSpec
-	      #name: 'VariableVerticalPanel1'
-	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-	      #showHandle: false
-	      #snapMode: #both
-	      #handlePosition: #left
-	      #component:
-	     #(#SpecCollection
-		#collection: #(
-		 #(#SubCanvasSpec
-		    #name: 'Navigator'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NavigatorCanvas'
-		    #minorKey: #'singleProjectBrowserSpec'
-		  )
-		 #(#SubCanvasSpec
-		    #name: 'CodePane'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NewSystemBrowser'
-		    #minorKey: #codePaneSpec
-		  )
-"/                 #(#CodeViewSpec
-"/                    #name: 'CodeView'
-"/                    #model: #codeHolder
-"/                    #hasHorizontalScrollBar: true
-"/                    #hasVerticalScrollBar: true
-"/                    #miniScrollerHorizontal: true
-"/              #postBuildCallback: #postBuildCodeView:
-"/              #modifiedChannel: #codeModifiedHolder
-"/                  )
-		 )
-
-	      )
-	      #handles: #(#Any 0.3 1.0)
-	      postBuildCallback: postBuildTabContentView:
-
-	    )
-	   )
-
-	)
-      )
-
-    "Created: / 25-02-2000 / 02:33:53 / cg"
-    "Modified: / 28-08-2010 / 12:02:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    #(FullSpec
+       name: singleProjectBrowserSpec
+       window:
+      (WindowSpec
+         label: 'ProjectBrowser'
+         name: 'ProjectBrowser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 462 300)
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (SubCanvasSpec
+             name: 'MessagePane'
+             layout: (LayoutFrame 0 0 0 0 0 1 40 0)
+             initiallyInvisible: true
+             hasHorizontalScrollBar: false
+             hasVerticalScrollBar: false
+             clientKey: inlineMessageApp
+             createNewBuilder: false
+             postBuildCallback: postBuildMessagePane:
+           )
+          (VariableVerticalPanelSpec
+             name: 'VariableVerticalPanel1'
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+             showHandle: false
+             snapMode: both
+             handlePosition: left
+             component:
+            (SpecCollection
+               collection: (
+                (SubCanvasSpec
+                   name: 'Navigator'
+                   autoHideScrollBars: false
+                   majorKey: NavigatorCanvas
+                   minorKey: singleProjectBrowserSpec
+                   subAspectHolders:
+                  (Array
+
+                    (SubChannelInfoSpec
+                       subAspect: environmentHolder
+                       aspect: environmentHolder
+                     )
+                   )
+                   createNewBuilder: false
+                 )
+                (SubCanvasSpec
+                   name: 'CodePane'
+                   autoHideScrollBars: false
+                   majorKey: NewSystemBrowser
+                   minorKey: codePaneSpec
+                   createNewBuilder: false
+                 )
+                )
+
+             )
+             handles: (Any 0.3 1.0)
+             postBuildCallback: postBuildTabContentView:
+           )
+          )
+
+       )
+     )
+
+    "Modified: / 25-03-2014 / 18:04:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 singleProjectFullBrowserSpec
@@ -4953,80 +5216,78 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:NewSystemBrowser andSelector:#singleProjectBrowserSpec
-     NewSystemBrowser new openInterface:#singleProjectBrowserSpec
+     UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#singleProjectFullBrowserSpec
+     Tools::NewSystemBrowser new openInterface:#singleProjectFullBrowserSpec
     "
 
     <resource: #canvas>
 
     ^
-     #(#FullSpec
-	#name: #singleProjectFullBrowserSpec
-	#window:
-       #(#WindowSpec
-	  #label: 'ProjectBrowser'
-	  #name: 'NewBrowser'
-	  #min: #(#Point 0 0)
-	  #bounds: #(#Rectangle 13 23 475 323)
-	)
-	#component:
-       #(#SpecCollection
-	  #collection: #(
-	    (SubCanvasSpec
-	      name: 'MessagePane'
-	      layout: (LayoutFrame 0 0 0 0 0 1 40 0)
-	      initiallyInvisible: true
-	      hasHorizontalScrollBar: false
-	      hasVerticalScrollBar: false
-	      specHolder: messageSpecHolder
-	      createNewBuilder: false
-	      postBuildCallback: postBuildMessagePane:
-	    )
-
-	   #(#VariableVerticalPanelSpec
-	      #name: 'VariableVerticalPanel1'
-	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-	      #showHandle: false
-	      #snapMode: #both
-	      #handlePosition: #left
-	      #component:
-	     #(#SpecCollection
-		#collection: #(
-		 #(#SubCanvasSpec
-		    #name: 'Navigator'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NavigatorCanvas'
-		    #minorKey: #'singleProjectFullBrowserSpec'
-		  )
-		 #(#SubCanvasSpec
-		    #name: 'CodePane'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NewSystemBrowser'
-		    #minorKey: #codePaneSpec
-		  )
-"/                 #(#CodeViewSpec
-"/                    #name: 'CodeView'
-"/                    #model: #codeHolder
-"/                    #hasHorizontalScrollBar: true
-"/                    #hasVerticalScrollBar: true
-"/                    #miniScrollerHorizontal: true
-"/              #postBuildCallback: #postBuildCodeView:
-"/              #modifiedChannel: #codeModifiedHolder
-"/                  )
-		 )
-
-	      )
-	      #handles: #(#Any 0.3 1.0)
-	      postBuildCallback: postBuildTabContentView:
-
-	    )
-	   )
-
-	)
-      )
-
-    "Created: / 18-08-2000 / 18:42:51 / cg"
-    "Modified: / 28-08-2010 / 12:02:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    #(FullSpec
+       name: singleProjectFullBrowserSpec
+       window:
+      (WindowSpec
+         label: 'ProjectBrowser'
+         name: 'ProjectBrowser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 462 300)
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (SubCanvasSpec
+             name: 'MessagePane'
+             layout: (LayoutFrame 0 0 0 0 0 1 40 0)
+             initiallyInvisible: true
+             hasHorizontalScrollBar: false
+             hasVerticalScrollBar: false
+             clientKey: inlineMessageApp
+             createNewBuilder: false
+             postBuildCallback: postBuildMessagePane:
+           )
+          (VariableVerticalPanelSpec
+             name: 'VariableVerticalPanel1'
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+             showHandle: false
+             snapMode: both
+             handlePosition: left
+             component:
+            (SpecCollection
+               collection: (
+                (SubCanvasSpec
+                   name: 'Navigator'
+                   autoHideScrollBars: false
+                   majorKey: NavigatorCanvas
+                   minorKey: singleProjectFullBrowserSpec
+                   subAspectHolders:
+                  (Array
+
+                    (SubChannelInfoSpec
+                       subAspect: environmentHolder
+                       aspect: environmentHolder
+                     )
+                   )
+                   createNewBuilder: false
+                 )
+                (SubCanvasSpec
+                   name: 'CodePane'
+                   autoHideScrollBars: false
+                   majorKey: NewSystemBrowser
+                   minorKey: codePaneSpec
+                   createNewBuilder: false
+                 )
+                )
+
+             )
+             handles: (Any 0.3 1.0)
+             postBuildCallback: postBuildTabContentView:
+           )
+          )
+
+       )
+     )
+
+    "Modified: / 25-03-2014 / 18:04:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 singleProtocolBrowserSpec
@@ -5037,80 +5298,78 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:NewSystemBrowser andSelector:#singleProtocolBrowserSpec
-     NewSystemBrowser new openInterface:#singleProtocolBrowserSpec
+     UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#singleProtocolBrowserSpec
+     Tools::NewSystemBrowser new openInterface:#singleProtocolBrowserSpec
     "
 
     <resource: #canvas>
 
     ^
-     #(#FullSpec
-	#name: #singleProtocolBrowserSpec
-	#window:
-       #(#WindowSpec
-	  #label: 'ProtocolBrowser'
-	  #name: 'NewBrowser'
-	  #min: #(#Point 0 0)
-	  #bounds: #(#Rectangle 13 23 475 323)
-	)
-	#component:
-       #(#SpecCollection
-	  #collection: #(
-	    (SubCanvasSpec
-	      name: 'MessagePane'
-	      layout: (LayoutFrame 0 0 0 0 0 1 40 0)
-	      initiallyInvisible: true
-	      hasHorizontalScrollBar: false
-	      hasVerticalScrollBar: false
-	      specHolder: messageSpecHolder
-	      createNewBuilder: false
-	      postBuildCallback: postBuildMessagePane:
-	    )
-
-	   #(#VariableVerticalPanelSpec
-	      #name: 'VariableVerticalPanel1'
-	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-	      #showHandle: false
-	      #snapMode: #both
-	      #handlePosition: #left
-	      #component:
-	     #(#SpecCollection
-		#collection: #(
-		 #(#SubCanvasSpec
-		    #name: 'Navigator'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NavigatorCanvas'
-		    #minorKey: #'singleProtocolBrowserSpec'
-		  )
-		 #(#SubCanvasSpec
-		    #name: 'CodePane'
-		    #autoHideScrollBars: false
-		    #majorKey: #'NewSystemBrowser'
-		    #minorKey: #codePaneSpec
-		  )
-"/                 #(#CodeViewSpec
-"/                    #name: 'CodeView'
-"/                    #model: #codeHolder
-"/                    #hasHorizontalScrollBar: true
-"/                    #hasVerticalScrollBar: true
-"/                    #miniScrollerHorizontal: true
-"/              #postBuildCallback: #postBuildCodeView:
-"/              #modifiedChannel: #codeModifiedHolder
-"/                  )
-		 )
-
-	      )
-	      #handles: #(#Any 0.3 1.0)
-	      postBuildCallback: postBuildTabContentView:
-
-	    )
-	   )
-
-	)
-      )
-
-    "Modified: / 01-03-2000 / 11:59:28 / cg"
-    "Modified: / 28-08-2010 / 12:02:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    #(FullSpec
+       name: singleProtocolBrowserSpec
+       window:
+      (WindowSpec
+         label: 'ProtocolBrowser'
+         name: 'ProtocolBrowser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 462 300)
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (SubCanvasSpec
+             name: 'MessagePane'
+             layout: (LayoutFrame 0 0 0 0 0 1 40 0)
+             initiallyInvisible: true
+             hasHorizontalScrollBar: false
+             hasVerticalScrollBar: false
+             clientKey: inlineMessageApp
+             createNewBuilder: false
+             postBuildCallback: postBuildMessagePane:
+           )
+          (VariableVerticalPanelSpec
+             name: 'VariableVerticalPanel1'
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+             showHandle: false
+             snapMode: both
+             handlePosition: left
+             component:
+            (SpecCollection
+               collection: (
+                (SubCanvasSpec
+                   name: 'Navigator'
+                   autoHideScrollBars: false
+                   majorKey: NavigatorCanvas
+                   minorKey: singleProtocolBrowserSpec
+                   subAspectHolders:
+                  (Array
+
+                    (SubChannelInfoSpec
+                       subAspect: environmentHolder
+                       aspect: environmentHolder
+                     )
+                   )
+                   createNewBuilder: false
+                 )
+                (SubCanvasSpec
+                   name: 'CodePane'
+                   autoHideScrollBars: false
+                   majorKey: NewSystemBrowser
+                   minorKey: codePaneSpec
+                   createNewBuilder: false
+                 )
+                )
+
+             )
+             handles: (Any 0.3 1.0)
+             postBuildCallback: postBuildTabContentView:
+           )
+          )
+
+       )
+     )
+
+    "Modified: / 25-03-2014 / 18:04:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 smallLintByRuleResultBrowserSpec
@@ -5128,226 +5387,242 @@
     <resource: #canvas>
 
     ^
-     #(FullSpec
-	name: smallLintByRuleResultBrowserSpec
-	window:
-       (WindowSpec
-	  label: 'SmallLintByClassResultBrowser'
-	  name: 'SmallLintByClassResultBrowser'
-	  min: (Point 0 0)
-	  bounds: (Rectangle 0 0 775 579)
-	)
-	component:
-       (SpecCollection
-	  collection: (
-	   (SubCanvasSpec
-	      name: 'MessagePane'
-	      layout: (LayoutFrame 0 0 0 0 0 1 40 0)
-	      initiallyInvisible: true
-	      hasHorizontalScrollBar: false
-	      hasVerticalScrollBar: false
-	      specHolder: messageSpecHolder
-	      createNewBuilder: false
-	      postBuildCallback: postBuildMessagePane:
-	    )
-	   (VariableVerticalPanelSpec
-	      name: 'NavigatorAndCodePane'
-	      layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-	      showHandle: false
-	      snapMode: both
-	      handlePosition: left
-	      component:
-	     (SpecCollection
-		collection: (
-		 (ViewSpec
-		    name: 'NavigatorAndDetail'
-		    component:
-		   (SpecCollection
-		      collection: (
-		       (VariableHorizontalPanelSpec
-			  name: 'Lists'
-			  layout: (LayoutFrame 0 0 0 0 0 1 0 1)
-			  component:
-			 (SpecCollection
-			    collection: (
-			     (VariableVerticalPanelSpec
-				name: 'RuleListPanel'
-				component:
-			       (SpecCollection
-				  collection: (
-				   (SubCanvasSpec
-				      name: 'RuleList'
-				      majorKey: #'Tools::LintRuleList'
-				      subAspectHolders:
-				     (Array
-
-				       (SubChannelInfoSpec
-					  subAspect: inGeneratorHolder
-					  aspect: lintRuleListGenerator
-					)
-				       (SubChannelInfoSpec
-					  subAspect: outGeneratorHolder
-					  aspect: classListGenerator
-					)
-
-				       (SubChannelInfoSpec
-					  subAspect: selectionHolder
-					  aspect: selectedLintRules
-					)
-				      )
-				      createNewApplication: true
-				      createNewBuilder: true
-				    )
-				   )
-
-				)
-				handles: (Any 1.0)
-			      )
-			     (TransparentBoxSpec
-				name: 'ClassListBox'
-				component:
-			       (SpecCollection
-				  collection: (
-				   (SubCanvasSpec
-				      name: 'ClassList'
-				      layout: (LayoutFrame 0 0 0 0 0 1 -25 1)
-				      majorKey: ClassList
-				      subAspectHolders:
-				     (Array
-
-				       (SubChannelInfoSpec
-					  subAspect: doubleClickChannel
-					  callBack: classDoubleClicked
-					)
-				       (SubChannelInfoSpec
-					  subAspect: immediateUpdate
-					  aspect: immediateUpdate
-					)
-
-				       (SubChannelInfoSpec
-					  subAspect: meta
-					  aspect: meta
-					)
-				       (SubChannelInfoSpec
-					  subAspect: inGeneratorHolder
-					  aspect: classListGenerator
-					)
-
-				       (SubChannelInfoSpec
-					  subAspect: menuHolder
-					  aspect: classMenu
-					)
-				       (SubChannelInfoSpec
-					  subAspect: selectedClasses
-					  aspect: selectedClasses
-					  callBack: classSelectionChanged
-					)
-
-				       (SubChannelInfoSpec
-					  subAspect: selectionChangeCondition
-					  aspect: selectionChangeConditionHolder
-					)
-				      )
-				      createNewApplication: true
-				      createNewBuilder: true
-				    )
-				   (SubCanvasSpec
-				      name: 'MetaToggles'
-				      layout: (LayoutFrame 5 0 -25 1 -5 1 0 1)
-				      hasHorizontalScrollBar: false
-				      hasVerticalScrollBar: false
-				      majorKey: #'Tools::ClassList'
-				      minorKey: metaSpec
-				      createNewBuilder: false
-				    )
-				   )
-
-				)
-			      )
-			     (SubCanvasSpec
-				name: 'MethodList'
-				majorKey: MethodList
-				subAspectHolders:
-			       (Array
-
-				 (SubChannelInfoSpec
-				    subAspect: doubleClickChannel
-				    callBack: methodDoubleClicked
-				  )
-				 (SubChannelInfoSpec
-				    subAspect: immediateUpdate
-				    aspect: immediateUpdate
-				  )
-
-				 (SubChannelInfoSpec
-				    subAspect: inGeneratorHolder
-				    aspect: selectorListGenerator
-				  )
-				 (SubChannelInfoSpec
-				    subAspect: menuHolder
-				    aspect: methodListPopUpMenu
-				  )
-
-				 (SubChannelInfoSpec
-				    subAspect: packageFilter
-				    aspect: packageFilter
-				  )
-				 (SubChannelInfoSpec
-				    subAspect: selectedMethods
-				    aspect: selectedMethods
-				    callBack: methodsSelectionChanged
-				  )
-
-				 (SubChannelInfoSpec
-				    subAspect: selectionChangeCondition
-				    aspect: selectionChangeConditionHolder
-				  )
-				)
-				createNewApplication: true
-				createNewBuilder: true
-			      )
-			     )
-
-			  )
-			  handles: (Any 0.33 0.67 1.0)
-			)
-		       )
-
-		    )
-		  )
-		 (SubCanvasSpec
-		    name: 'RuleDesc'
-		    hasHorizontalScrollBar: false
-		    hasVerticalScrollBar: false
-		    majorKey: #'Tools::LintRuleDetail'
-		    subAspectHolders:
-		   (Array
-
-		     (SubChannelInfoSpec
-			subAspect: ruleHolder
-			aspect: theSingleSelectedLintRuleHolder
-		      )
-		    )
-		    createNewApplication: true
-		    createNewBuilder: true
-		  )
-		 (SubCanvasSpec
-		    name: 'CodePane'
-		    autoHideScrollBars: false
-		    majorKey: NewSystemBrowser
-		    minorKey: codePaneSpec
-		    createNewBuilder: false
-		  )
-		 )
-
-	      )
-	      handles: (Any 0.333333333333333 0.455958549222798 1.0)
-	      postBuildCallback: postBuildTabContentView:
-	    )
-	   )
-
-	)
-      )
+    #(FullSpec
+       name: smallLintByRuleResultBrowserSpec
+       window:
+      (WindowSpec
+         label: 'SmallLintByClassResultBrowser'
+         name: 'SmallLintByClassResultBrowser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 775 579)
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (SubCanvasSpec
+             name: 'MessagePane'
+             layout: (LayoutFrame 0 0 0 0 0 1 40 0)
+             initiallyInvisible: true
+             hasHorizontalScrollBar: false
+             hasVerticalScrollBar: false
+             clientKey: inlineMessageApp
+             createNewBuilder: false
+             postBuildCallback: postBuildMessagePane:
+           )
+          (VariableVerticalPanelSpec
+             name: 'NavigatorAndCodePane'
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+             showHandle: false
+             snapMode: both
+             handlePosition: left
+             component:
+            (SpecCollection
+               collection: (
+                (ViewSpec
+                   name: 'NavigatorAndDetail'
+                   component:
+                  (SpecCollection
+                     collection: (
+                      (VariableHorizontalPanelSpec
+                         name: 'Lists'
+                         layout: (LayoutFrame 0 0 0 0 0 1 0 1)
+                         component:
+                        (SpecCollection
+                           collection: (
+                            (VariableVerticalPanelSpec
+                               name: 'RuleListPanel'
+                               component:
+                              (SpecCollection
+                                 collection: (
+                                  (SubCanvasSpec
+                                     name: 'RuleList'
+                                     majorKey: #'Tools::LintRuleList'
+                                     subAspectHolders:
+                                    (Array
+
+                                      (SubChannelInfoSpec
+                                         subAspect: environmentHolder
+                                         aspect: environmentHolder
+                                       )
+                                      (SubChannelInfoSpec
+                                         subAspect: inGeneratorHolder
+                                         aspect: lintRuleListGenerator
+                                       )
+
+                                      (SubChannelInfoSpec
+                                         subAspect: outGeneratorHolder
+                                         aspect: classListGenerator
+                                       )
+                                      (SubChannelInfoSpec
+                                         subAspect: selectionHolder
+                                         aspect: selectedLintRules
+                                       )
+                                     )
+                                     createNewApplication: true
+                                     createNewBuilder: true
+                                   )
+                                  )
+
+                               )
+                               handles: (Any 1.0)
+                             )
+                            (TransparentBoxSpec
+                               name: 'ClassListBox'
+                               component:
+                              (SpecCollection
+                                 collection: (
+                                  (SubCanvasSpec
+                                     name: 'ClassList'
+                                     layout: (LayoutFrame 0 0 0 0 0 1 -25 1)
+                                     majorKey: ClassList
+                                     subAspectHolders:
+                                    (Array
+
+                                      (SubChannelInfoSpec
+                                         subAspect: doubleClickChannel
+                                         callBack: classDoubleClicked
+                                       )
+                                      (SubChannelInfoSpec
+                                         subAspect: environmentHolder
+                                         aspect: environmentHolder
+                                       )
+
+                                      (SubChannelInfoSpec
+                                         subAspect: immediateUpdate
+                                         aspect: immediateUpdate
+                                       )
+                                      (SubChannelInfoSpec
+                                         subAspect: inGeneratorHolder
+                                         aspect: classListGenerator
+                                       )
+
+                                      (SubChannelInfoSpec
+                                         subAspect: menuHolder
+                                         aspect: classMenu
+                                       )
+                                      (SubChannelInfoSpec
+                                         subAspect: meta
+                                         aspect: meta
+                                       )
+
+                                      (SubChannelInfoSpec
+                                         subAspect: selectedClasses
+                                         aspect: selectedClasses
+                                         callBack: classSelectionChanged
+                                       )
+                                      (SubChannelInfoSpec
+                                         subAspect: selectionChangeCondition
+                                         aspect: selectionChangeConditionHolder
+                                       )
+                                     )
+                                     createNewApplication: true
+                                     createNewBuilder: true
+                                   )
+                                  (SubCanvasSpec
+                                     name: 'MetaToggles'
+                                     layout: (LayoutFrame 5 0 -25 1 -5 1 0 1)
+                                     hasHorizontalScrollBar: false
+                                     hasVerticalScrollBar: false
+                                     majorKey: #'Tools::ClassList'
+                                     minorKey: metaSpec
+                                     createNewBuilder: false
+                                   )
+                                  )
+
+                               )
+                             )
+                            (SubCanvasSpec
+                               name: 'MethodList'
+                               majorKey: MethodList
+                               subAspectHolders:
+                              (Array
+
+                                (SubChannelInfoSpec
+                                   subAspect: doubleClickChannel
+                                   callBack: methodDoubleClicked
+                                 )
+                                (SubChannelInfoSpec
+                                   subAspect: environmentHolder
+                                   aspect: environmentHolder
+                                 )
+
+                                (SubChannelInfoSpec
+                                   subAspect: immediateUpdate
+                                   aspect: immediateUpdate
+                                 )
+                                (SubChannelInfoSpec
+                                   subAspect: inGeneratorHolder
+                                   aspect: selectorListGenerator
+                                 )
+
+                                (SubChannelInfoSpec
+                                   subAspect: menuHolder
+                                   aspect: methodListPopUpMenu
+                                 )
+                                (SubChannelInfoSpec
+                                   subAspect: packageFilter
+                                   aspect: packageFilter
+                                 )
+
+                                (SubChannelInfoSpec
+                                   subAspect: selectedMethods
+                                   aspect: selectedMethods
+                                   callBack: methodsSelectionChanged
+                                 )
+                                (SubChannelInfoSpec
+                                   subAspect: selectionChangeCondition
+                                   aspect: selectionChangeConditionHolder
+                                 )
+                               )
+                               createNewApplication: true
+                               createNewBuilder: true
+                             )
+                            )
+
+                         )
+                         handles: (Any 0.33000000000000007 0.67000000000000015 1.0)
+                       )
+                      )
+
+                   )
+                 )
+                (SubCanvasSpec
+                   name: 'RuleDesc'
+                   hasHorizontalScrollBar: false
+                   hasVerticalScrollBar: false
+                   majorKey: #'Tools::LintRuleDetail'
+                   subAspectHolders:
+                  (Array
+
+                    (SubChannelInfoSpec
+                       subAspect: ruleHolder
+                       aspect: theSingleSelectedLintRuleHolder
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: selectedMethodsHolder
+                       aspect: selectedMethods
+                     )
+                   )
+                   createNewApplication: true
+                   createNewBuilder: true
+                 )
+                (SubCanvasSpec
+                   name: 'CodePane'
+                   autoHideScrollBars: false
+                   majorKey: NewSystemBrowser
+                   minorKey: codePaneSpec
+                   createNewBuilder: false
+                 )
+                )
+
+             )
+             handles: (Any 0.33333333333333304 0.45595854922279805 1.0)
+             postBuildCallback: postBuildTabContentView:
+           )
+          )
+
+       )
+     )
 !
 
 visualProfilerSpec
@@ -5365,93 +5640,95 @@
     <resource: #canvas>
 
     ^
-     #(FullSpec
-	name: visualProfilerSpec
-	window:
-       (WindowSpec
-	  label: 'SystemBrowser'
-	  name: 'SystemBrowser'
-	  min: (Point 0 0)
-	  bounds: (Rectangle 0 0 462 300)
-	  icon: defaultIcon
-	)
-	component:
-       (SpecCollection
-	  collection: (
-	    (SubCanvasSpec
-	      name: 'MessagePane'
-	      layout: (LayoutFrame 0 0 0 0 0 1 40 0)
-	      initiallyInvisible: true
-	      hasHorizontalScrollBar: false
-	      hasVerticalScrollBar: false
-	      specHolder: messageSpecHolder
-	      createNewBuilder: false
-	      postBuildCallback: postBuildMessagePane:
-	    )
-
-	   (VariableVerticalPanelSpec
-	      name: 'VariableVerticalPanel1'
-	      layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
-	      barWidth: 2
-	      showHandle: false
-	      snapMode: both
-	      handlePosition: left
-	      component:
-	     (SpecCollection
-		collection: (
-		 (SubCanvasSpec
-		    name: 'VisualProfiler'
-		    autoHideScrollBars: false
-		    majorKey: #'Tools::VisualProfilerCanvas'
-		    minorKey: windowSpec
-		    subAspectHolders:
-		   (Array
-
-		     (SubChannelInfoSpec
-			subAspect: packageFilter
-			aspect: packageFilter
-		      )
-		     (SubChannelInfoSpec
-			subAspect: profilerStatistics
-			aspect: profilerStatistics
-		      )
-
-		     (SubChannelInfoSpec
-			subAspect: selectedMethods
-			aspect: selectedMethods
-		      )
-		    )
-		    createNewApplication: true
-		    createNewBuilder: true
-		  )
-		 (SubCanvasSpec
-		    name: 'CodePane'
-		    autoHideScrollBars: false
-		    majorKey: NewSystemBrowser
-		    minorKey: codePaneSpec
-		  )
-		 )
-
-	      )
-	      handles: (Any 0.5 1.0)
-	      postBuildCallback: postBuildTabContentView:
-
-	    )
-	   )
-
-	)
-      )
-
-    "Modified: / 09-10-2007 / 21:54:57 / janfrog"
-    "Modified: / 28-08-2010 / 12:02:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    #(FullSpec
+       name: visualProfilerSpec
+       window:
+      (WindowSpec
+         label: 'SystemBrowser'
+         name: 'SystemBrowser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 462 300)
+         icon: defaultIcon
+       )
+       component:
+      (SpecCollection
+         collection: (
+          (SubCanvasSpec
+             name: 'MessagePane'
+             layout: (LayoutFrame 0 0 0 0 0 1 40 0)
+             initiallyInvisible: true
+             hasHorizontalScrollBar: false
+             hasVerticalScrollBar: false
+             clientKey: inlineMessageApp
+             createNewBuilder: false
+             postBuildCallback: postBuildMessagePane:
+           )
+          (VariableVerticalPanelSpec
+             name: 'VariableVerticalPanel1'
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+             barWidth: 2
+             showHandle: false
+             snapMode: both
+             handlePosition: left
+             component:
+            (SpecCollection
+               collection: (
+                (SubCanvasSpec
+                   name: 'VisualProfiler'
+                   autoHideScrollBars: false
+                   majorKey: #'Tools::VisualProfilerCanvas'
+                   minorKey: windowSpec
+                   subAspectHolders:
+                  (Array
+
+                    (SubChannelInfoSpec
+                       subAspect: environmentHolder
+                       aspect: environmentHolder
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: packageFilter
+                       aspect: packageFilter
+                     )
+
+                    (SubChannelInfoSpec
+                       subAspect: profilerStatistics
+                       aspect: profilerStatistics
+                     )
+                    (SubChannelInfoSpec
+                       subAspect: selectedMethods
+                       aspect: selectedMethods
+                     )
+                   )
+                   createNewApplication: true
+                   createNewBuilder: true
+                 )
+                (SubCanvasSpec
+                   name: 'CodePane'
+                   autoHideScrollBars: false
+                   majorKey: NewSystemBrowser
+                   minorKey: codePaneSpec
+                   createNewBuilder: false
+                 )
+                )
+
+             )
+             handles: (Any 0.5 1.0)
+             postBuildCallback: postBuildTabContentView:
+           )
+          )
+
+       )
+     )
+
+    "Modified: / 25-03-2014 / 18:04:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 windowSpec
     "/    ^ self browserWindowSpec
 
     ^ UserPreferences current webBrowserLikeLayout
-	ifTrue:[ self pagedWindowSpec ]
-	ifFalse:[ self noteBookWindowSpec ]
+        ifTrue:[ self pagedWindowSpec ]
+        ifFalse:[ self noteBookWindowSpec ]
 
     "Modified: / 05-02-2000 / 12:23:55 / cg"
     "Modified: / 07-06-2011 / 14:39:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -5475,354 +5752,242 @@
 
     ^
      #(#FullSpec
-	#name: #repositoryConsistencyDialogSpec
-	#window:
+        #name: #repositoryConsistencyDialogSpec
+        #window:
        #(#WindowSpec
-	  #label: 'Repository Consistency Check'
-	  #name: 'Repository Consistency Check'
-	  #min: #(#Point 10 10)
-	  #max: #(#Point 1280 1024)
-	  #bounds: #(#Rectangle 16 46 316 492)
-	)
-	#component:
+          #label: 'Repository Consistency Check'
+          #name: 'Repository Consistency Check'
+          #min: #(#Point 10 10)
+          #max: #(#Point 1280 1024)
+          #bounds: #(#Rectangle 16 46 316 492)
+        )
+        #component:
        #(#SpecCollection
-	  #collection: #(
-	   #(#LabelSpec
-	      #label: 'Repository Consistency Check Report:'
-	      #name: 'Label1'
-	      #layout: #(#LayoutFrame 0 0 0 0 0 1 33 0)
-	      #translateLabel: true
-	    )
-	   #(#VerticalPanelViewSpec
-	      #name: 'VerticalPanel1'
-	      #layout: #(#LayoutFrame 0 0.0 34 0.0 0 1.0 -31 1.0)
-	      #horizontalLayout: #fit
-	      #verticalLayout: #fit
-	      #horizontalSpace: 3
-	      #verticalSpace: 3
-	      #component:
-	     #(#SpecCollection
-		#collection: #(
-		 #(#ViewSpec
-		    #name: 'Box1'
-		    #visibilityChannel: #classesWithoutContainerBoxVisible
-		    #component:
-		   #(#SpecCollection
-		      #collection: #(
-		       #(#DividerSpec
-			  #name: 'Separator1'
-			  #layout: #(#LayoutFrame 0 0.0 0 0 0 1.0 4 0)
-			)
-		       #(#LabelSpec
-			  #label: 'Classes without Repository Container:'
-			  #name: 'Label2'
-			  #layout: #(#LayoutFrame 0 0.0 5 0 0 1.0 27 0)
-			  #translateLabel: true
-			  #adjust: #left
-			  #menu: #classesWithMissingContainerPopupMenu
-			  #performer: #dialogMenuPerformer
-			)
-		       #(#SequenceViewSpec
-			  #name: 'List1'
-			  #layout: #(#LayoutFrame 0 0.0 28 0 0 1.0 0 1)
-			  #model: #selectedClassesWithMissingContainer
-			  #menu: #classesWithMissingContainerPopupMenu
-			  #performer: #dialogMenuPerformer
-			  #hasHorizontalScrollBar: true
-			  #hasVerticalScrollBar: true
-			  #isMultiSelect: true
-			  #useIndex: true
-			  #sequenceList: #listOfClassesWithMissingContainer
-			)
-		       )
-
-		    )
-		    #extent: #(#Point 300 74)
-		  )
-		 #(#ViewSpec
-		    #name: 'Box2'
-		    #visibilityChannel: #classesWithInvalidInfoBoxVisible
-		    #component:
-		   #(#SpecCollection
-		      #collection: #(
-		       #(#DividerSpec
-			  #name: 'Separator2'
-			  #layout: #(#LayoutFrame 0 0.0 0 0 0 1.0 4 0)
-			)
-		       #(#LabelSpec
-			  #label: 'Classes with Invalid Repository Info:'
-			  #name: 'Label3'
-			  #layout: #(#LayoutFrame 0 0.0 5 0 0 1.0 27 0)
-			  #translateLabel: true
-			  #adjust: #left
-			  #menu: #classesWithInvalidInfoPopupMenu
-			  #performer: #dialogMenuPerformer
-			)
-		       #(#SequenceViewSpec
-			  #name: 'List2'
-			  #layout: #(#LayoutFrame 0 0.0 28 0 0 1.0 0 1)
-			  #model: #selectedClassesWithRepositoryMismatches
-			  #menu: #classesWithInvalidInfoPopupMenu
-			  #performer: #dialogMenuPerformer
-			  #hasHorizontalScrollBar: true
-			  #hasVerticalScrollBar: true
-			  #isMultiSelect: true
-			  #useIndex: true
-			  #sequenceList: #listOfClassesWithRepositoryMismatches
-			)
-		       )
-
-		    )
-		    #extent: #(#Point 300 74)
-		  )
-		 #(#ViewSpec
-		    #name: 'Box3'
-		    #visibilityChannel: #obsoleteContainersBoxVisible
-		    #component:
-		   #(#SpecCollection
-		      #collection: #(
-		       #(#DividerSpec
-			  #name: 'Separator3'
-			  #layout: #(#LayoutFrame 0 0.0 0 0 0 1.0 4 0)
-			)
-		       #(#LabelSpec
-			  #label: 'Containers without class: (need checkOut ?)'
-			  #name: 'Label4'
-			  #layout: #(#LayoutFrame 0 0.0 5 0 0 1.0 27 0)
-			  #translateLabel: true
-			  #adjust: #left
-			  #menu: #obsoleteContainersPopupMenu
-			  #performer: #dialogMenuPerformer
-			)
-		       #(#SequenceViewSpec
-			  #name: 'List3'
-			  #layout: #(#LayoutFrame 0 0.0 28 0 0 1.0 0 1)
-			  #model: #selectedObsoleteContainers
-			  #menu: #obsoleteContainersPopupMenu
-			  #performer: #dialogMenuPerformer
-			  #hasHorizontalScrollBar: true
-			  #hasVerticalScrollBar: true
-			  #isMultiSelect: true
-			  #useIndex: true
-			  #sequenceList: #listOfObsoleteContainers
-			)
-		       )
-
-		    )
-		    #extent: #(#Point 300 73)
-		  )
-		 #(#ViewSpec
-		    #name: 'Box4'
-		    #visibilityChannel: #classesWhichHaveBeenModifiedBoxVisible
-		    #component:
-		   #(#SpecCollection
-		      #collection: #(
-		       #(#DividerSpec
-			  #name: 'Separator4'
-			  #layout: #(#LayoutFrame 0 0.0 0 0 0 1.0 4 0)
-			)
-		       #(#LabelSpec
-			  #label: 'Modified Classes (need checkIn ?):'
-			  #name: 'Label5'
-			  #layout: #(#LayoutFrame 0 0.0 5 0 0 1.0 27 0)
-			  #translateLabel: true
-			  #adjust: #left
-			  #menu: #classesWhichHaveBeenModifiedPopupMenu
-			  #performer: #dialogMenuPerformer
-			)
-		       #(#SequenceViewSpec
-			  #name: 'List4'
-			  #layout: #(#LayoutFrame 0 0.0 28 0 0 1.0 0 1)
-			  #model: #selectedClassesWhichHaveBeenModified
-			  #menu: #classesWhichHaveBeenModifiedPopupMenu
-			  #performer: #dialogMenuPerformer
-			  #hasHorizontalScrollBar: true
-			  #hasVerticalScrollBar: true
-			  #isMultiSelect: true
-			  #useIndex: true
-			  #sequenceList: #listOfClassesWhichHaveBeenModified
-			)
-		       )
-
-		    )
-		    #extent: #(#Point 300 74)
-		  )
-		 #(#ViewSpec
-		    #name: 'Box5'
-		    #visibilityChannel: #classesWithNewerVersionInRepositoryBoxVisible
-		    #component:
-		   #(#SpecCollection
-		      #collection: #(
-		       #(#DividerSpec
-			  #name: 'Separator5'
-			  #layout: #(#LayoutFrame 0 0.0 0 0 0 1.0 4 0)
-			)
-		       #(#LabelSpec
-			  #label: 'New Version in Repository (need checkOut ?):'
-			  #name: 'Label6'
-			  #layout: #(#LayoutFrame 0 0.0 5 0 0 1.0 27 0)
-			  #translateLabel: true
-			  #adjust: #left
-			  #menu: #classesWithNewerVersionInRepositoryPopupMenu
-			  #performer: #dialogMenuPerformer
-			)
-		       #(#SequenceViewSpec
-			  #name: 'List5'
-			  #layout: #(#LayoutFrame 0 0.0 28 0 0 1.0 0 1)
-			  #model: #selectedClassesWithNewerVersionInRepository
-			  #menu: #classesWithNewerVersionInRepositoryPopupMenu
-			  #performer: #dialogMenuPerformer
-			  #hasHorizontalScrollBar: true
-			  #hasVerticalScrollBar: true
-			  #isMultiSelect: true
-			  #useIndex: true
-			  #sequenceList: #listOfClassesWithNewerVersionInRepository
-			)
-		       )
-
-		    )
-		    #extent: #(#Point 300 74)
-		  )
-		 )
-
-	      )
-	    )
-	   #(#HorizontalPanelViewSpec
-	      #name: 'HorizontalPanel1'
-	      #layout: #(#LayoutFrame 0 0 -30 1 0 1 0 1)
-	      #horizontalLayout: #center
-	      #verticalLayout: #center
-	      #horizontalSpace: 3
-	      #verticalSpace: 3
-	      #component:
-	     #(#SpecCollection
-		#collection: #(
-		 #(#ActionButtonSpec
-		    #label: 'Close'
-		    #name: 'Button1'
-		    #translateLabel: true
-		    #model: #closeRequest
-		    #extent: #(#Point 125 22)
-		  )
-		 )
-
-	      )
-	    )
-	   )
-
-	)
-      )
-! !
-
-!NewSystemBrowser class methodsFor:'interface specs-message pane'!
-
-messageInfoSpec
-    "This resource specification was automatically generated
-     by the UIPainter of ST/X."
-
-    "Do not manually edit this!! If it is corrupted,
-     the UIPainter may not be able to read the specification."
-
-    "
-     UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#messageInfoSpec
-     Tools::NewSystemBrowser new openInterface:#messageInfoSpec
-    "
-
-    <resource: #canvas>
-
-    ^
-     #(FullSpec
-	name: messageInfoSpec
-	window:
-       (WindowSpec
-	  label: 'MessageInfo'
-	  name: 'MessageInfo'
-	  min: (Point 10 10)
-	  bounds: (Rectangle 0 0 800 40)
-	  backgroundColor: (Color 100.0 78.0392156862745 22.7450980392157)
-	  forceRecursiveBackgroundOfDefaultBackground: true
-	)
-	component:
-       (SpecCollection
-	  collection: (
-	   (LabelSpec
-	      label: 'Label'
-	      name: 'Message'
-	      layout: (LayoutFrame 10 0 -10 0.5 -90 1 10 0.5)
-	      backgroundColor: (Color 100.0 78.0392156862745 22.7450980392157)
-	      translateLabel: true
-	      labelChannel: messageHolder
-	      adjust: left
-	    )
-	   (ActionButtonSpec
-	      label: 'OK'
-	      name: 'OK'
-	      layout: (LayoutFrame -80 1 -12 0.5 -12 1 12 0.5)
-	      translateLabel: true
-	      model: hideMessagePane
-	    )
-	   )
-
-	)
-      )
-!
-
-progressInfoSpec
-    "This resource specification was automatically generated
-     by the UIPainter of ST/X."
-
-    "Do not manually edit this!! If it is corrupted,
-     the UIPainter may not be able to read the specification."
-
-    "
-     UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#progressInfoSpec
-     Tools::NewSystemBrowser new openInterface:#progressInfoSpec
-    "
-
-    <resource: #canvas>
-
-    ^
-     #(FullSpec
-	name: progressInfoSpec
-	window:
-       (WindowSpec
-	  label: 'ProgressInfo'
-	  name: 'ProgressInfo'
-	  min: (Point 10 10)
-	  bounds: (Rectangle 0 0 800 40)
-	  backgroundColor: (Color 100.0 78.0392156862745 22.7450980392157)
-	  forceRecursiveBackgroundOfDefaultBackground: true
-	)
-	component:
-       (SpecCollection
-	  collection: (
-	   (LabelSpec
-	      label: 'Label'
-	      name: 'Message'
-	      layout: (LayoutFrame 10 0 0 0 -90 1 20 0)
-	      backgroundColor: (Color 100.0 78.0392156862745 22.7450980392157)
-	      translateLabel: true
-	      labelChannel: messageHolder
-	      adjust: left
-	    )
-	   (ProgressIndicatorSpec
-	      name: 'ProgressIndicator'
-	      layout: (LayoutFrame 10 0 -20 1 -133 1 -3 1)
-	      model: progressHolder
-	      foregroundColor: (Color 52.156862745098 37.2549019607843 0.0)
-	      backgroundColor: (Color 100.0 91.3725490196078 70.1960784313726)
-	    )
-	   (ActionButtonSpec
-	      label: 'Abort'
-	      name: 'Abort'
-	      layout: (AlignmentOrigin -12 1 0 0.5 1 0.5)
-	      translateLabel: true
-	      resizeForLabel: true
-	      model: hideMessagePaneAndAbort
-	    )
-	   )
-
-	)
+          #collection: #(
+           #(#LabelSpec
+              #label: 'Repository Consistency Check Report:'
+              #name: 'Label1'
+              #layout: #(#LayoutFrame 0 0 0 0 0 1 33 0)
+              #translateLabel: true
+            )
+           #(#VerticalPanelViewSpec
+              #name: 'VerticalPanel1'
+              #layout: #(#LayoutFrame 0 0.0 34 0.0 0 1.0 -31 1.0)
+              #horizontalLayout: #fit
+              #verticalLayout: #fit
+              #horizontalSpace: 3
+              #verticalSpace: 3
+              #component:
+             #(#SpecCollection
+                #collection: #(
+                 #(#ViewSpec
+                    #name: 'Box1'
+                    #visibilityChannel: #classesWithoutContainerBoxVisible
+                    #component:
+                   #(#SpecCollection
+                      #collection: #(
+                       #(#DividerSpec
+                          #name: 'Separator1'
+                          #layout: #(#LayoutFrame 0 0.0 0 0 0 1.0 4 0)
+                        )
+                       #(#LabelSpec
+                          #label: 'Classes without Repository Container:'
+                          #name: 'Label2'
+                          #layout: #(#LayoutFrame 0 0.0 5 0 0 1.0 27 0)
+                          #translateLabel: true
+                          #adjust: #left
+                          #menu: #classesWithMissingContainerPopupMenu
+                          #performer: #dialogMenuPerformer
+                        )
+                       #(#SequenceViewSpec
+                          #name: 'List1'
+                          #layout: #(#LayoutFrame 0 0.0 28 0 0 1.0 0 1)
+                          #model: #selectedClassesWithMissingContainer
+                          #menu: #classesWithMissingContainerPopupMenu
+                          #performer: #dialogMenuPerformer
+                          #hasHorizontalScrollBar: true
+                          #hasVerticalScrollBar: true
+                          #isMultiSelect: true
+                          #useIndex: true
+                          #sequenceList: #listOfClassesWithMissingContainer
+                        )
+                       )
+
+                    )
+                    #extent: #(#Point 300 74)
+                  )
+                 #(#ViewSpec
+                    #name: 'Box2'
+                    #visibilityChannel: #classesWithInvalidInfoBoxVisible
+                    #component:
+                   #(#SpecCollection
+                      #collection: #(
+                       #(#DividerSpec
+                          #name: 'Separator2'
+                          #layout: #(#LayoutFrame 0 0.0 0 0 0 1.0 4 0)
+                        )
+                       #(#LabelSpec
+                          #label: 'Classes with Invalid Repository Info:'
+                          #name: 'Label3'
+                          #layout: #(#LayoutFrame 0 0.0 5 0 0 1.0 27 0)
+                          #translateLabel: true
+                          #adjust: #left
+                          #menu: #classesWithInvalidInfoPopupMenu
+                          #performer: #dialogMenuPerformer
+                        )
+                       #(#SequenceViewSpec
+                          #name: 'List2'
+                          #layout: #(#LayoutFrame 0 0.0 28 0 0 1.0 0 1)
+                          #model: #selectedClassesWithRepositoryMismatches
+                          #menu: #classesWithInvalidInfoPopupMenu
+                          #performer: #dialogMenuPerformer
+                          #hasHorizontalScrollBar: true
+                          #hasVerticalScrollBar: true
+                          #isMultiSelect: true
+                          #useIndex: true
+                          #sequenceList: #listOfClassesWithRepositoryMismatches
+                        )
+                       )
+
+                    )
+                    #extent: #(#Point 300 74)
+                  )
+                 #(#ViewSpec
+                    #name: 'Box3'
+                    #visibilityChannel: #obsoleteContainersBoxVisible
+                    #component:
+                   #(#SpecCollection
+                      #collection: #(
+                       #(#DividerSpec
+                          #name: 'Separator3'
+                          #layout: #(#LayoutFrame 0 0.0 0 0 0 1.0 4 0)
+                        )
+                       #(#LabelSpec
+                          #label: 'Containers without class: (need checkOut ?)'
+                          #name: 'Label4'
+                          #layout: #(#LayoutFrame 0 0.0 5 0 0 1.0 27 0)
+                          #translateLabel: true
+                          #adjust: #left
+                          #menu: #obsoleteContainersPopupMenu
+                          #performer: #dialogMenuPerformer
+                        )
+                       #(#SequenceViewSpec
+                          #name: 'List3'
+                          #layout: #(#LayoutFrame 0 0.0 28 0 0 1.0 0 1)
+                          #model: #selectedObsoleteContainers
+                          #menu: #obsoleteContainersPopupMenu
+                          #performer: #dialogMenuPerformer
+                          #hasHorizontalScrollBar: true
+                          #hasVerticalScrollBar: true
+                          #isMultiSelect: true
+                          #useIndex: true
+                          #sequenceList: #listOfObsoleteContainers
+                        )
+                       )
+
+                    )
+                    #extent: #(#Point 300 73)
+                  )
+                 #(#ViewSpec
+                    #name: 'Box4'
+                    #visibilityChannel: #classesWhichHaveBeenModifiedBoxVisible
+                    #component:
+                   #(#SpecCollection
+                      #collection: #(
+                       #(#DividerSpec
+                          #name: 'Separator4'
+                          #layout: #(#LayoutFrame 0 0.0 0 0 0 1.0 4 0)
+                        )
+                       #(#LabelSpec
+                          #label: 'Modified Classes (need checkIn ?):'
+                          #name: 'Label5'
+                          #layout: #(#LayoutFrame 0 0.0 5 0 0 1.0 27 0)
+                          #translateLabel: true
+                          #adjust: #left
+                          #menu: #classesWhichHaveBeenModifiedPopupMenu
+                          #performer: #dialogMenuPerformer
+                        )
+                       #(#SequenceViewSpec
+                          #name: 'List4'
+                          #layout: #(#LayoutFrame 0 0.0 28 0 0 1.0 0 1)
+                          #model: #selectedClassesWhichHaveBeenModified
+                          #menu: #classesWhichHaveBeenModifiedPopupMenu
+                          #performer: #dialogMenuPerformer
+                          #hasHorizontalScrollBar: true
+                          #hasVerticalScrollBar: true
+                          #isMultiSelect: true
+                          #useIndex: true
+                          #sequenceList: #listOfClassesWhichHaveBeenModified
+                        )
+                       )
+
+                    )
+                    #extent: #(#Point 300 74)
+                  )
+                 #(#ViewSpec
+                    #name: 'Box5'
+                    #visibilityChannel: #classesWithNewerVersionInRepositoryBoxVisible
+                    #component:
+                   #(#SpecCollection
+                      #collection: #(
+                       #(#DividerSpec
+                          #name: 'Separator5'
+                          #layout: #(#LayoutFrame 0 0.0 0 0 0 1.0 4 0)
+                        )
+                       #(#LabelSpec
+                          #label: 'New Version in Repository (need checkOut ?):'
+                          #name: 'Label6'
+                          #layout: #(#LayoutFrame 0 0.0 5 0 0 1.0 27 0)
+                          #translateLabel: true
+                          #adjust: #left
+                          #menu: #classesWithNewerVersionInRepositoryPopupMenu
+                          #performer: #dialogMenuPerformer
+                        )
+                       #(#SequenceViewSpec
+                          #name: 'List5'
+                          #layout: #(#LayoutFrame 0 0.0 28 0 0 1.0 0 1)
+                          #model: #selectedClassesWithNewerVersionInRepository
+                          #menu: #classesWithNewerVersionInRepositoryPopupMenu
+                          #performer: #dialogMenuPerformer
+                          #hasHorizontalScrollBar: true
+                          #hasVerticalScrollBar: true
+                          #isMultiSelect: true
+                          #useIndex: true
+                          #sequenceList: #listOfClassesWithNewerVersionInRepository
+                        )
+                       )
+
+                    )
+                    #extent: #(#Point 300 74)
+                  )
+                 )
+
+              )
+            )
+           #(#HorizontalPanelViewSpec
+              #name: 'HorizontalPanel1'
+              #layout: #(#LayoutFrame 0 0 -30 1 0 1 0 1)
+              #horizontalLayout: #center
+              #verticalLayout: #center
+              #horizontalSpace: 3
+              #verticalSpace: 3
+              #component:
+             #(#SpecCollection
+                #collection: #(
+                 #(#ActionButtonSpec
+                    #label: 'Close'
+                    #name: 'Button1'
+                    #translateLabel: true
+                    #model: #closeRequest
+                    #extent: #(#Point 125 22)
+                  )
+                 )
+
+              )
+            )
+           )
+
+        )
       )
 ! !
 
@@ -5845,378 +6010,384 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'Clone'
-	    itemValue: browseMenuClone
-	    isVisible: shiftNotPressedHolder
-	    shortcutKey: Ctrln
-	  )
-	 (MenuItem
-	    label: 'Old SystemBrowser on Class'
-	    itemValue: browseMenuClone
-	    isVisible: shiftPressedHolder
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: false
-	  )
-	 (MenuItem
-	    label: 'Class...'
-	    itemValue: browseMenuOpenInClass
-	  )
-	 (MenuItem
-	    label: 'Classes'
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  label: 'With Name Matching...'
-		  itemValue: browseMenuClassesWithNameMatching
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'In Current ChangeSet'
-		  itemValue: browseMenuClassesInCurrentChangeSet
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'In All ChangeSets'
-		  itemValue: browseMenuClassesInAllChangeSets
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'Which were Autoloaded'
-		  itemValue: browseMenuAutoloadedClasses
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'With Extensions'
-		  itemValue: browseMenuClassExtensionsBuffer
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'With Shadowed Methods (Package Conflicts)'
-		  itemValue: browseMenuClassesWithShadowedMethods
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'Recently Opened Applications'
-		  itemValue: browseMenuClassesOfRecentlyOpenedApplications
-		)
-	       (MenuItem
-		  label: 'With Instrumentation'
-		  itemValue: browseMenuClassesWithInstrumentation
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'All Subclasses of...'
-		  itemValue: browseMenuAllSubclassesOf
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'All Applications'
-		  itemValue: browseMenuApplicationClasses
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'All Web Services'
-		  itemValue: browseMenuHTTPServiceClasses
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'All TestCases'
-		  itemValue: browseMenuTestCaseClasses
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'All Shared Pools'
-		  itemValue: browseMenuSharedPoolClasses
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'Without Documentation'
-		  itemValue: browseMenuClassesWithoutDocumentation
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'Without Copyright'
-		  itemValue: browseMenuClassesWithoutCopyright
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'Without Examples'
-		  itemValue: browseMenuClassesWithoutExamples
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'Without CVS Repository Container'
-		  itemValue: browseMenuClassesWithoutCVSRepositoryContainer
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'Without SVN Repository Container'
-		  itemValue: browseMenuClassesWithoutSVNRepositoryContainer
-		  isVisible: hasSubversionSupport
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'Defining Variable...'
-		  itemValue: browseMenuClassesDefiningVariable
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'Referring to Pool...'
-		  itemValue: browseMenuClassesReferringToPool
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'With String in Comment/Documentation...'
-		  itemValue: browseMenuClassesWithStringInCommentOrDocumentation
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'With External Function Calls (FFI)'
-		  itemValue: browseMenuClassesWithExternalFunctionCalls
-		  isVisible: false
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'With Primitive Code'
-		  itemValue: browseMenuClassesWithPrimitiveCode
-		  isVisible: false
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'For which...'
-		  itemValue: browseMenuClassesWithUserFilter
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'Special'
-		  submenuChannel: specialBrowseMenu
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Implementors of...'
-	    itemValue: browseMenuImplementorsOf
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: 'Senders of...'
-	    itemValue: browseSendersOf
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'References to Class or Global...'
-	    itemValue: browseMenuReferencesToGlobal
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: 'References to Symbol...'
-	    itemValue: browseMenuReferencesToSymbol
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: 'Writes to Global...'
-	    itemValue: browseMenuWritesToGlobal
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Recently Changed Methods'
-	    itemValue: browseMenuRecentChanges
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: 'Class Extensions'
-	    itemValue: browseMenuClassExtensionsBuffer
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: 'Methods'
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  label: 'Changed Methods'
-		  itemValue: browseMenuMethodsInCurrentChangeSet
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'Unassigned Extensions'
-		  itemValue: browseMenuUnassignedMethods:
-		  argument: newBuffer
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'Overwritten Methods (Package Conflicts)'
-		  itemValue: browseMenuOverwrittenMethods:
-		  argument: newBuffer
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'With Break- or Tracepoint'
-		  itemValue: browseMenuMethodsWithWrap
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'With Instrumentation'
-		  itemValue: browseMenuMethodsWithInstrumentation
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'With String...'
-		  itemValue: browseMenuMethodsWithString
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'With String in Help Spec...'
-		  itemValue: browseMenuMethodsWithStringInHelpSpec
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'With String in Menu Spec...'
-		  itemValue: browseMenuMethodsWithStringInMenuSpec
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'With String-Literal Matching...'
-		  itemValue: browseMenuMethodsWithStringLiteral
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'With Window Spec...'
-		  itemValue: browseMenuMethodsWithWindowSpec
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'With Menu Spec...'
-		  itemValue: browseMenuMethodsWithMenuSpec
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'With Image Spec...'
-		  itemValue: browseMenuMethodsWithImageSpec
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'With Table Spec...'
-		  itemValue: browseMenuMethodsWithTableSpec
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'With Help Spec...'
-		  itemValue: browseMenuMethodsWithHelpSpec
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'With any Resource...'
-		  itemValue: browseMenuMethodsWithResource
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'With Annotation'
-		  itemValue: browseMenuMethodsWithAnnotation
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'Without Comment...'
-		  itemValue: browseMenuMethodsWithoutComment
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'With Ugly Coding Style...'
-		  itemValue: browseMenuMethodsWithUglyCodingStyle
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'With Possible Leftover Debug Code...'
-		  itemValue: browseMenuMethodsWithLeftoverDebugCode
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'Deprecated'
-		  itemValue: browseMenuDeprecatedMethods
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'With Exception Handlers'
-		  itemValue: browseMenuMethodsWithExceptionHandlers
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'With Exception Raisers'
-		  itemValue: browseMenuMethodsWithExceptionRaisers
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'With Primitive Code'
-		  itemValue: browseMenuMethodsWithPrimitiveCode
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: 'With External Function Call (FFI)'
-		  itemValue: browseMenuMethodsWithExternalFunctionCalls
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'For which...'
-		  itemValue: browseMenuMethodsWithUserFilter
-		  showBusyCursorWhilePerforming: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: 'Clone'
+            itemValue: browseMenuClone
+            isVisible: shiftNotPressedHolder
+            shortcutKey: Ctrln
+          )
+         (MenuItem
+            label: 'Old SystemBrowser on Class'
+            itemValue: browseMenuClone
+            isVisible: shiftPressedHolder
+          )
+         (MenuItem
+            label: 'Other Browsers'
+            submenuChannel: otherBrowsersMenu
+          )
+         (MenuItem
+            label: '-'
+            isVisible: false
+          )
+         (MenuItem
+            label: 'Class...'
+            itemValue: browseMenuOpenInClass
+            shortcutKey: Find
+            ignoreShortcutKeys: true
+          )
+         (MenuItem
+            label: 'Classes'
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  label: 'With Name Matching...'
+                  itemValue: browseMenuClassesWithNameMatching
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'In Current ChangeSet'
+                  itemValue: browseMenuClassesInCurrentChangeSet
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'In all ChangeSets'
+                  itemValue: browseMenuClassesInAllChangeSets
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'Which were Autoloaded'
+                  itemValue: browseMenuAutoloadedClasses
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'With Extensions'
+                  itemValue: browseMenuClassExtensionsBuffer
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'With Shadowed Methods (Package Conflicts)'
+                  itemValue: browseMenuClassesWithShadowedMethods
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'Recently Opened Applications'
+                  itemValue: browseMenuClassesOfRecentlyOpenedApplications
+                )
+               (MenuItem
+                  label: 'With Instrumentation'
+                  itemValue: browseMenuClassesWithInstrumentation
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'All Subclasses of...'
+                  itemValue: browseMenuAllSubclassesOf
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'All Applications'
+                  itemValue: browseMenuApplicationClasses
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'All Web Services'
+                  itemValue: browseMenuHTTPServiceClasses
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'All TestCases'
+                  itemValue: browseMenuTestCaseClasses
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'All Shared Pools'
+                  itemValue: browseMenuSharedPoolClasses
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'Without Documentation'
+                  itemValue: browseMenuClassesWithoutDocumentation
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'Without Copyright'
+                  itemValue: browseMenuClassesWithoutCopyright
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'Without Examples'
+                  itemValue: browseMenuClassesWithoutExamples
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'Without CVS Repository Container'
+                  itemValue: browseMenuClassesWithoutCVSRepositoryContainer
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'Without SVN Repository Container'
+                  itemValue: browseMenuClassesWithoutSVNRepositoryContainer
+                  isVisible: hasSubversionSupport
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'Defining Variable...'
+                  itemValue: browseMenuClassesDefiningVariable
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'Referring to Pool...'
+                  itemValue: browseMenuClassesReferringToPool
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'With String in Comment/Documentation...'
+                  itemValue: browseMenuClassesWithStringInCommentOrDocumentation
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'With External Function Calls (FFI)'
+                  itemValue: browseMenuClassesWithExternalFunctionCalls
+                  isVisible: false
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'With Primitive Code'
+                  itemValue: browseMenuClassesWithPrimitiveCode
+                  isVisible: false
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'For which...'
+                  itemValue: browseMenuClassesWithUserFilter
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'Special'
+                  submenuChannel: specialBrowseMenu
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Implementors of...'
+            itemValue: browseMenuImplementorsOf
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: 'Senders of...'
+            itemValue: browseSendersOf
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'References to Class or Global...'
+            itemValue: browseMenuReferencesToGlobal
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: 'References to Symbol...'
+            itemValue: browseMenuReferencesToSymbol
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: 'Writes to Global...'
+            itemValue: browseMenuWritesToGlobal
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Recently Changed Methods'
+            itemValue: browseMenuRecentChanges
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: 'Class Extensions'
+            itemValue: browseMenuClassExtensionsBuffer
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: 'Methods'
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  label: 'Changed Methods'
+                  itemValue: browseMenuMethodsInCurrentChangeSet
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'Unassigned Extensions'
+                  itemValue: browseMenuUnassignedMethods:
+                  argument: newBuffer
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'Overwritten Methods (Package Conflicts)'
+                  itemValue: browseMenuOverwrittenMethods:
+                  argument: newBuffer
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'With Break- or Tracepoint'
+                  itemValue: browseMenuMethodsWithWrap
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'With Instrumentation'
+                  itemValue: browseMenuMethodsWithInstrumentation
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'With String...'
+                  itemValue: browseMenuMethodsWithString
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'With String in Help Spec...'
+                  itemValue: browseMenuMethodsWithStringInHelpSpec
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'With String in Menu Spec...'
+                  itemValue: browseMenuMethodsWithStringInMenuSpec
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'With String-Literal Matching...'
+                  itemValue: browseMenuMethodsWithStringLiteral
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'With Window Spec...'
+                  itemValue: browseMenuMethodsWithWindowSpec
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'With Menu Spec...'
+                  itemValue: browseMenuMethodsWithMenuSpec
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'With Image Spec...'
+                  itemValue: browseMenuMethodsWithImageSpec
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'With Table Spec...'
+                  itemValue: browseMenuMethodsWithTableSpec
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'With Help Spec...'
+                  itemValue: browseMenuMethodsWithHelpSpec
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'With any Resource...'
+                  itemValue: browseMenuMethodsWithResource
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'With Annotation...'
+                  itemValue: browseMenuMethodsWithAnnotation
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'Without Comment...'
+                  itemValue: browseMenuMethodsWithoutComment
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'With Ugly Coding Style...'
+                  itemValue: browseMenuMethodsWithUglyCodingStyle
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'With Possible Leftover Debug Code...'
+                  itemValue: browseMenuMethodsWithLeftoverDebugCode
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'Deprecated'
+                  itemValue: browseMenuDeprecatedMethods
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'With Exception Handlers'
+                  itemValue: browseMenuMethodsWithExceptionHandlers
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'With Exception Raisers'
+                  itemValue: browseMenuMethodsWithExceptionRaisers
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'With Primitive Code'
+                  itemValue: browseMenuMethodsWithPrimitiveCode
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: 'With External Function Call (FFI)'
+                  itemValue: browseMenuMethodsWithExternalFunctionCalls
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'For which...'
+                  itemValue: browseMenuMethodsWithUserFilter
+                  showBusyCursorWhilePerforming: true
+                )
+               )
+              nil
+              nil
+            )
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -6236,23 +6407,23 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'Add Page'
-	    itemValue: bufferMenuCreateBuffer
-	    nameKey: CreateBuffer
-	    translateLabel: true
-	    shortcutKey: Ctrlt
-	  )
-	 (MenuItem
-	    label: 'Remove Page'
-	    itemValue: bufferMenuRemoveCurrentBuffer
-	    nameKey: RemoveBuffer
-	    translateLabel: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: 'Add Page'
+            itemValue: bufferMenuCreateBuffer
+            nameKey: CreateBuffer
+            translateLabel: true
+            shortcutKey: Ctrlt
+          )
+         (MenuItem
+            label: 'Remove Page'
+            itemValue: bufferMenuRemoveCurrentBuffer
+            nameKey: RemoveBuffer
+            translateLabel: true
+          )
+         )
+        nil
+        nil
       )
 
     "Modified: / 03-08-2004 / 14:28:02 / stefan"
@@ -6274,33 +6445,20 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'Repeat Previously Selected Checks'
-	    itemValue: categoryMenuSmalllintCheck:
-	    translateLabel: true
-	    argument: smalllintRules
-	  )
-	 (MenuItem
-	    label: 'Run all Checks'
-	    itemValue: categoryMenuSmalllintCheck:
-	    translateLabel: true
-	    argument: smalllintRulesAll
-	  )
-	 (MenuItem
-	    label: 'Run Selected Checks...'
-	    itemValue: categoryMenuSmalllintCheck:
-	    translateLabel: true
-	    argument: smalllintRulesFromUser
-	  )
-
-	 )
-	nil
-	nil
-      )
-
-    "Modified: / 17-04-2010 / 11:14:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+        (
+         (MenuItem
+            label: 'SmallLint Menu'
+            submenuChannel: smalllintCheckMenuForCategory
+            isMenuSlice: true
+          )
+
+         )
+        nil
+        nil
+      )
+
     "Modified: / 05-05-2012 / 10:18:13 / cg"
+    "Modified: / 27-11-2014 / 06:56:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 categoryMenu
@@ -6325,46 +6483,46 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasCategorySelectedHolder
-	    label: 'Documentation'
-	    translateLabel: true
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasCategorySelectedHolder
-		  label: 'PrintOut'
-		  itemValue: categoryMenuPrintOut
-		  translateLabel: true
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasCategorySelectedHolder
-		  label: 'PrintOut Protocol'
-		  itemValue: categoryMenuPrintOutProtocol
-		  translateLabel: true
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasCategorySelectedHolder
-		  label: 'Save HTML Documentation In...'
-		  itemValue: categoryMenuSaveDocumentationIn
-		  translateLabel: true
-		  showBusyCursorWhilePerforming: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasCategorySelectedHolder
+            label: 'Documentation'
+            translateLabel: true
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasCategorySelectedHolder
+                  label: 'PrintOut'
+                  itemValue: categoryMenuPrintOut
+                  translateLabel: true
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasCategorySelectedHolder
+                  label: 'PrintOut Protocol'
+                  itemValue: categoryMenuPrintOutProtocol
+                  translateLabel: true
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasCategorySelectedHolder
+                  label: 'Save HTML Documentation In...'
+                  itemValue: categoryMenuSaveDocumentationIn
+                  translateLabel: true
+                  showBusyCursorWhilePerforming: true
+                )
+               )
+              nil
+              nil
+            )
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -6385,85 +6543,110 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasCategorySelectedHolder
-	    label: 'FileOut'
-	    translateLabel: true
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasCategorySelectedHolder
-		  label: 'as...'
-		  itemValue: categoryMenuFileOutAs
-		  translateLabel: true
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasCategorySelectedAndCanFileOutXMLHolder
-		  label: 'XML as...'
-		  itemValue: categoryMenuFileOutXMLAs
-		  translateLabel: true
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasCategorySelectedAndCanFileOutSIFHolder
-		  label: 'SIF as...'
-		  itemValue: categoryMenuFileOutSIFAs
-		  translateLabel: true
-		)
-	       (MenuItem
-		  enabled: hasCategorySelectedAndCanFileOutCypressHolder
-		  label: 'Cypress as...'
-		  itemValue: categoryMenuFileOutCypressAs
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasCategorySelectedHolder
-		  label: 'Each in...'
-		  itemValue: categoryMenuFileOutEachIn
-		  translateLabel: true
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasCategorySelectedAndCanFileOutXMLHolder
-		  label: 'Each XML in...'
-		  itemValue: categoryMenuFileOutEachXMLIn
-		  translateLabel: true
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasCategorySelectedAndCanFileOutSIFHolder
-		  label: 'Each SIF in...'
-		  itemValue: categoryMenuFileOutEachSIFIn
-		  translateLabel: true
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasCategorySelectedHolder
-		  label: 'Each Binary in...'
-		  itemValue: categoryMenuFileOutEachBinaryIn
-		  translateLabel: true
-		  showBusyCursorWhilePerforming: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    label: 'Repository'
-	    translateLabel: true
-	    submenuChannel: categoryMenuSCMSlice
-	    isMenuSlice: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasCategorySelectedHolder
+            label: 'FileOut'
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasCategorySelectedHolder
+                  label: 'As...'
+                  itemValue: categoryMenuFileOutAs
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasCategorySelectedHolder
+                  label: 'Each in...'
+                  itemValue: categoryMenuFileOutEachIn
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasCategorySelectedHolder
+                  label: 'Special Formats'
+                  submenu:
+                 (Menu
+                    (
+                     (MenuItem
+                        enabled: hasCategorySelectedAndCanFileOutXMLHolder
+                        label: 'XML as...'
+                        itemValue: categoryMenuFileOutXMLAs
+                        showBusyCursorWhilePerforming: true
+                      )
+                     (MenuItem
+                        enabled: hasCategorySelectedAndCanFileOutXMLHolder
+                        label: 'XML each in...'
+                        itemValue: categoryMenuFileOutEachXMLIn
+                        showBusyCursorWhilePerforming: true
+                      )
+                     (MenuItem
+                        label: '-'
+                      )
+                     (MenuItem
+                        enabled: hasCategorySelectedAndCanFileOutSIFHolder
+                        label: 'SIF as...'
+                        itemValue: categoryMenuFileOutSIFAs
+                      )
+                     (MenuItem
+                        enabled: hasCategorySelectedAndCanFileOutSIFHolder
+                        label: 'SIF each in...'
+                        itemValue: categoryMenuFileOutEachSIFIn
+                        showBusyCursorWhilePerforming: true
+                      )
+                     (MenuItem
+                        label: '-'
+                      )
+                     (MenuItem
+                        enabled: hasCategorySelectedAndCanFileOutVSEHolder
+                        label: 'VSE Fileout Format as...'
+                        itemValue: categoryMenuFileOutVSEAs
+                      )
+                     (MenuItem
+                        enabled: hasCategorySelectedAndCanFileOutVSEHolder
+                        label: 'VSE Fileout Format each in...'
+                        itemValue: categoryMenuFileOutEachVSEIn
+                        showBusyCursorWhilePerforming: true
+                      )
+                     (MenuItem
+                        label: '-'
+                      )
+                     (MenuItem
+                        enabled: hasCategorySelectedAndCanFileOutCypressHolder
+                        label: 'Cypress as...'
+                        itemValue: categoryMenuFileOutCypressAs
+                        showBusyCursorWhilePerforming: true
+                      )
+                     (MenuItem
+                        label: '-'
+                      )
+                     (MenuItem
+                        enabled: hasCategorySelectedHolder
+                        label: 'Binary each in...'
+                        itemValue: categoryMenuFileOutEachBinaryIn
+                        showBusyCursorWhilePerforming: true
+                      )
+                     )
+                    nil
+                    nil
+                  )
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            label: 'Repository'
+            submenuChannel: categoryMenuSCMSlice
+            isMenuSlice: true
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -6483,30 +6666,30 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'New...'
-	    itemValue: categoryMenuNewCategory
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    enabled: hasCategorySelectedHolder
-	    label: 'Rename...'
-	    itemValue: categoryMenuRename
-	    translateLabel: true
-	    shortcutKey: Rename
-	    ignoreShortcutKeys: true
-	  )
-	 (MenuItem
-	    enabled: hasCategorySelectedHolder
-	    label: 'Remove...'
-	    itemValue: categoryMenuRemove
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary erase16x16Icon 'Remove...')
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: 'New...'
+            itemValue: categoryMenuNewCategory
+            translateLabel: true
+          )
+         (MenuItem
+            enabled: hasCategorySelectedHolder
+            label: 'Rename...'
+            itemValue: categoryMenuRename
+            translateLabel: true
+            shortcutKey: Rename
+            ignoreShortcutKeys: true
+          )
+         (MenuItem
+            enabled: hasCategorySelectedHolder
+            label: 'Remove...'
+            itemValue: categoryMenuRemove
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary erase16x16Icon 'Remove...')
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -6526,47 +6709,47 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasCategorySelectedHolder
-	    label: 'Spawn'
-	    translateLabel: true
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasCategorySelectedHolder
-		  label: 'Buffer'
-		  itemValue: categoryMenuSpawnBuffer
-		  translateLabel: true
-		)
-	       (MenuItem
-		  label: 'Buffer with Categories Matching...'
-		  itemValue: categoryMenuSpawnMatchingCategoriesBuffer
-		  translateLabel: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasCategorySelectedHolder
-		  label: 'Browser'
-		  itemValue: categoryMenuSpawnBrowser
-		  translateLabel: true
-		)
-	       (MenuItem
-		  label: 'Browser on Categories Matching...'
-		  itemValue: categoryMenuSpawnMatchingCategoriesBrowser
-		  translateLabel: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasCategorySelectedHolder
+            label: 'Spawn'
+            translateLabel: true
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasCategorySelectedHolder
+                  label: 'Buffer'
+                  itemValue: categoryMenuSpawnBuffer
+                  translateLabel: true
+                )
+               (MenuItem
+                  label: 'Buffer with Categories Matching...'
+                  itemValue: categoryMenuSpawnMatchingCategoriesBuffer
+                  translateLabel: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasCategorySelectedHolder
+                  label: 'Browser'
+                  itemValue: categoryMenuSpawnBrowser
+                  translateLabel: true
+                )
+               (MenuItem
+                  label: 'Browser on Categories Matching...'
+                  itemValue: categoryMenuSpawnMatchingCategoriesBrowser
+                  translateLabel: true
+                )
+               )
+              nil
+              nil
+            )
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -6587,87 +6770,87 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'FileOutAndRepositorySlice'
-	    submenuChannel: categoryMenuFileOutAndRepositorySlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'DocumentationSlice'
-	    submenuChannel: categoryMenuDocumentationSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'SpawnSlice'
-	    submenuChannel: categoryMenuSpawnSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: 'Find'
-	    submenuChannel: searchMenu
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'NewAndRenameSlice'
-	    submenuChannel: categoryMenuNewAndRenameSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Static Analysis (Lint)'
-	    submenuChannel: categoryCheckMenu
-	    labelImage: (ResourceRetriever ToolbarIconLibrary lint16x16Icon 'Static Analysis (Lint)')
-	  )
-	 (MenuItem
-	    label: 'Debug'
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasCategorySelectedHolder
-		  label: 'Recompile all Classes (without Instrumentation)'
-		  itemValue: categoryMenuRecompile
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasCategorySelectedAndInstrumentingCompilerExistsHolder
-		  label: 'Recompile all Classes with Instrumentation'
-		  itemValue: categoryMenuRecompileInstrumented
-		  showBusyCursorWhilePerforming: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    label: 'Special'
-	    submenuChannel: categorySpecialMenu
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Update'
-	    itemValue: categoryMenuUpdate
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: 'FileOutAndRepositorySlice'
+            submenuChannel: categoryMenuFileOutAndRepositorySlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'DocumentationSlice'
+            submenuChannel: categoryMenuDocumentationSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'SpawnSlice'
+            submenuChannel: categoryMenuSpawnSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: 'Find'
+            submenuChannel: searchMenu
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'NewAndRenameSlice'
+            submenuChannel: categoryMenuNewAndRenameSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Static Analysis (Lint)'
+            submenuChannel: categoryCheckMenu
+            labelImage: (ResourceRetriever ToolbarIconLibrary lint16x16Icon 'Static Analysis (Lint)')
+          )
+         (MenuItem
+            label: 'Debug'
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasCategorySelectedHolder
+                  label: 'Recompile all Classes (without Instrumentation)'
+                  itemValue: categoryMenuRecompile
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasCategorySelectedAndInstrumentingCompilerExistsHolder
+                  label: 'Recompile all Classes with Instrumentation'
+                  itemValue: categoryMenuRecompileInstrumented
+                  showBusyCursorWhilePerforming: true
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            label: 'Special'
+            submenuChannel: categorySpecialMenu
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Update'
+            itemValue: categoryMenuUpdate
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -6688,84 +6871,84 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'FileOutAndRepositorySlice'
-	    submenuChannel: categoryMenuFileOutAndRepositorySlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'DocumentationSlice'
-	    submenuChannel: categoryMenuDocumentationSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'SpawnSlice'
-	    submenuChannel: categoryMenuSpawnSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'NewAndRenameSlice'
-	    nameKey: NewAndRenameSlice
-	    submenuChannel: categoryMenuNewAndRenameSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Static Analysis (Lint)'
-	    submenuChannel: categoryCheckMenu
-	    labelImage: (ResourceRetriever ToolbarIconLibrary lint16x16Icon 'Static Analysis (Lint)')
-	  )
-	 (MenuItem
-	    label: 'Debug'
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasCategorySelectedAndInstrumentingCompilerExistsHolder
-		  label: 'Recompile all Classes (without Instrumentation)'
-		  itemValue: categoryMenuRecompile
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasCategorySelectedAndInstrumentingCompilerExistsHolder
-		  label: 'Recompile all Classes with Instrumentation'
-		  itemValue: categoryMenuRecompileInstrumented
-		  showBusyCursorWhilePerforming: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    label: 'Special'
-	    submenuChannel: categorySpecialMenu
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Update'
-	    itemValue: categoryMenuUpdate
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: 'FileOutAndRepositorySlice'
+            submenuChannel: categoryMenuFileOutAndRepositorySlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'DocumentationSlice'
+            submenuChannel: categoryMenuDocumentationSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'SpawnSlice'
+            submenuChannel: categoryMenuSpawnSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'NewAndRenameSlice'
+            nameKey: NewAndRenameSlice
+            submenuChannel: categoryMenuNewAndRenameSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Static Analysis (Lint)'
+            submenuChannel: categoryCheckMenu
+            labelImage: (ResourceRetriever ToolbarIconLibrary lint16x16Icon 'Static Analysis (Lint)')
+          )
+         (MenuItem
+            label: 'Debug'
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasCategorySelectedAndInstrumentingCompilerExistsHolder
+                  label: 'Recompile all Classes (without Instrumentation)'
+                  itemValue: categoryMenuRecompile
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasCategorySelectedAndInstrumentingCompilerExistsHolder
+                  label: 'Recompile all Classes with Instrumentation'
+                  itemValue: categoryMenuRecompileInstrumented
+                  showBusyCursorWhilePerforming: true
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            label: 'Special'
+            submenuChannel: categorySpecialMenu
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Update'
+            itemValue: categoryMenuUpdate
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -6785,33 +6968,33 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasAnyCategoryWithAnyUnLoadedClassSelectedHolder
-	    label: 'Load'
-	    itemValue: categoryMenuLoad
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasAnyCategoryWithAnyAutoLoadedClassSelectedHolder
-	    label: 'Unload'
-	    itemValue: categoryMenuUnload
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasCategorySelectedHolder
-	    label: 'Remove all from ChangeSet'
-	    itemValue: categoryMenuCleanUpChangeSet
-	    translateLabel: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasAnyCategoryWithAnyUnLoadedClassSelectedHolder
+            label: 'Load'
+            itemValue: categoryMenuLoad
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasAnyCategoryWithAnyAutoLoadedClassSelectedHolder
+            label: 'Unload'
+            itemValue: categoryMenuUnload
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasCategorySelectedHolder
+            label: 'Remove all from ChangeSet'
+            itemValue: categoryMenuCleanUpChangeSet
+            translateLabel: true
+          )
+         )
+        nil
+        nil
       )
 
     "Modified: / 31-01-2011 / 11:11:18 / cg"
@@ -6834,28 +7017,28 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'Lint'
-	    translateLabel: true
-	    submenuChannel: lintMenu
-	    keepLinkedMenu: true
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: false
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedAndInstrumentingCompilerExistsHolder
-	    label: 'Recompile all Methods with Instrumentation'
-	    itemValue: classMenuRecompileInstrumented
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	    isVisible: false
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: 'Lint'
+            translateLabel: true
+            submenuChannel: lintMenu
+            keepLinkedMenu: true
+          )
+         (MenuItem
+            label: '-'
+            isVisible: false
+          )
+         (MenuItem
+            enabled: hasClassSelectedAndInstrumentingCompilerExistsHolder
+            label: 'Recompile all Methods with Instrumentation'
+            itemValue: classMenuRecompileInstrumented
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+            isVisible: false
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -6875,55 +7058,42 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'Repeat Previously Selected Checks'
-	    itemValue: classCheckMenuSmalllintCheck:
-	    translateLabel: true
-	    argument: smalllintRules
-	  )
-	 (MenuItem
-	    label: 'Run all Checks'
-	    itemValue: classCheckMenuSmalllintCheck:
-	    translateLabel: true
-	    argument: smalllintRulesAll
-	  )
-	 (MenuItem
-	    label: 'Run Selected Checks...'
-	    itemValue: classCheckMenuSmalllintCheck:
-	    translateLabel: true
-	    argument: smalllintRulesFromUser
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Smalltalk/X Checks'
-	    translateLabel: true
-	    submenuChannel: lintMenu
-	    keepLinkedMenu: true
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Check Compilability'
-	    itemValue: classMenuCheckCompilability
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedAndInstrumentingCompilerExistsHolder
-	    label: 'Recompile all Methods with Instrumentation'
-	    itemValue: classMenuRecompileInstrumented
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	    isVisible: false
-	  )
-	 )
-	nil
-	nil
-      )
-
-    "Modified: / 17-04-2010 / 11:17:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+        (
+         (MenuItem
+            label: 'SmallLint Menu'
+            submenuChannel: smalllintCheckMenuForClass
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Smalltalk/X Checks'
+            translateLabel: true
+            submenuChannel: lintMenu
+            keepLinkedMenu: true
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Check Compilability'
+            itemValue: classMenuCheckCompilability
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasClassSelectedAndInstrumentingCompilerExistsHolder
+            label: 'Recompile all Methods with Instrumentation'
+            itemValue: classMenuRecompileInstrumented
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+            isVisible: false
+          )
+         )
+        nil
+        nil
+      )
+
+    "Modified: / 27-11-2014 / 06:57:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 classClassVariablesMenu
@@ -6942,86 +7112,94 @@
 
     ^
      #(#Menu
-	#(
-	 #(#MenuItem
-	    #label: 'References...'
-	    #translateLabel: true
-	    #value: #variablesMenuBrowseAllClassVarRefs
-	    #enabled: #hasClassSelectedHolder
-	    #showBusyCursorWhilePerforming: true
-	  )
-	 #(#MenuItem
-	    #label: 'Readers...'
-	    #translateLabel: true
-	    #value: #variablesMenuBrowseAllClassVarReads
-	    #enabled: #hasClassSelectedHolder
-	    #showBusyCursorWhilePerforming: true
-	  )
-	 #(#MenuItem
-	    #label: 'Writers...'
-	    #translateLabel: true
-	    #value: #variablesMenuBrowseAllClassVarMods
-	    #enabled: #hasClassSelectedHolder
-	    #showBusyCursorWhilePerforming: true
-	  )
-	 #(#MenuItem
-	    #label: '-'
-	  )
-	 #(#MenuItem
-	    #label: 'Add...'
-	    #translateLabel: true
-	    #value: #variablesMenuAddClassVariable
-	    #enabled: #hasSingleClassSelectedAndCanUseRefactoringSupportHolder
-	    #showBusyCursorWhilePerforming: true
-	  )
-	 #(#MenuItem
-	    #label: 'Rename...'
-	    #translateLabel: true
-	    #value: #variablesMenuRenameClassVariable
-	    #enabled: #hasSingleClassAndClassVariableSelectedAndCanUseRefactoringSupportHolder
-	    #showBusyCursorWhilePerforming: true
-	  )
-	 #(#MenuItem
-	    #label: 'Remove'
-	    #translateLabel: true
-	    #value: #variablesMenuRemoveClassVariable
-	    #enabled: #hasSingleClassAndClassVariableSelectedAndCanUseRefactoringSupportHolder
-	    #showBusyCursorWhilePerforming: true
-	  )
-	 #(#MenuItem
-	    #label: '-'
-	  )
-	 #(#MenuItem
-	    #label: 'Pull Up'
-	    #translateLabel: true
-	    #value: #codeMenuPullUpClassVariable
-	    #enabled: #hasClassVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
-	    #showBusyCursorWhilePerforming: true
-	  )
-	 #(#MenuItem
-	    #label: 'Push Down'
-	    #translateLabel: true
-	    #value: #codeMenuPushDownClassVariable
-	    #enabled: #hasClassVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
-	    #showBusyCursorWhilePerforming: true
-	  )
-	 #(#MenuItem
-	    #label: '-'
-	  )
-	 #(#MenuItem
-	    #label: 'Make Abstract (Access only via Getters/Setters)'
-	    #translateLabel: true
-	    #value: #codeMenuMakeAbstractVariable
-	    #enabled: #hasClassVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
-	    #showBusyCursorWhilePerforming: true
-	  )
-	 #(#MenuItem
-	    #label: 'Make Concrete (Protect from Access via Getters/Setters)'
-	    #translateLabel: true
-	    #value: #codeMenuProtectInstanceVariable
-	    #enabled: #hasClassVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
-	    #showBusyCursorWhilePerforming: true
-	  )
+        #(
+         #(#MenuItem
+            #label: 'References...'
+            #translateLabel: true
+            #value: #variablesMenuBrowseAllClassVarRefs
+            #enabled: #hasClassSelectedHolder
+            #showBusyCursorWhilePerforming: true
+          )
+         #(#MenuItem
+            #label: 'Readers...'
+            #translateLabel: true
+            #value: #variablesMenuBrowseAllClassVarReads
+            #enabled: #hasClassSelectedHolder
+            #showBusyCursorWhilePerforming: true
+          )
+         #(#MenuItem
+            #label: 'Writers...'
+            #translateLabel: true
+            #value: #variablesMenuBrowseAllClassVarMods
+            #enabled: #hasClassSelectedHolder
+            #showBusyCursorWhilePerforming: true
+          )
+         #(#MenuItem
+            #label: '-'
+          )
+         #(#MenuItem
+            #label: 'Add...'
+            #translateLabel: true
+            #value: #variablesMenuAddClassVariable
+            #enabled: #hasSingleClassSelectedAndCanUseRefactoringSupportHolder
+            #showBusyCursorWhilePerforming: true
+          )
+         #(#MenuItem
+            #label: 'Rename...'
+            #translateLabel: true
+            #value: #variablesMenuRenameClassVariable
+            #enabled: #hasSingleClassAndClassVariableSelectedAndCanUseRefactoringSupportHolder
+            #showBusyCursorWhilePerforming: true
+          )
+         #(#MenuItem
+            #label: 'Remove'
+            #translateLabel: true
+            #value: #variablesMenuRemoveClassVariable
+            #enabled: #hasSingleClassAndClassVariableSelectedAndCanUseRefactoringSupportHolder
+            #showBusyCursorWhilePerforming: true
+          )
+         #(#MenuItem
+            #label: '-'
+          )
+         #(#MenuItem
+            #label: 'Pull Up'
+            #translateLabel: true
+            #value: #codeMenuPullUpClassVariable
+            #enabled: #hasClassVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
+            #showBusyCursorWhilePerforming: true
+          )
+         #(#MenuItem
+            #label: 'Push Down'
+            #translateLabel: true
+            #value: #codeMenuPushDownClassVariable
+            #enabled: #hasClassVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
+            #showBusyCursorWhilePerforming: true
+          )
+         #(#MenuItem
+            #label: '-'
+          )
+         #(#MenuItem
+            #label: 'Make Abstract (Access only via Getters/Setters)'
+            #translateLabel: true
+            #value: #codeMenuMakeAbstractVariable
+            #enabled: #hasClassVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
+            #showBusyCursorWhilePerforming: true
+          )
+         #(#MenuItem
+            #label: 'Make Concrete (Protect from Access via Getters/Setters)'
+            #translateLabel: true
+            #value: #codeMenuProtectInstanceVariable
+            #enabled: #hasClassVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
+            #showBusyCursorWhilePerforming: true
+          )
+           (MenuItem
+              label: '-'
+            )
+           (MenuItem
+              enabled: hasClassVariableSelectedHolder
+              label: 'Clear (Set ClassVariable(s) to nil)'
+              itemValue: variablesMenuClear
+            )
 "/         #(#MenuItem
 "/            #label: 'Type info...'
 "/            #translateLabel: true
@@ -7029,9 +7207,9 @@
 "/            #enabled: #hasSingleVariableSelectedHolder
 "/            #showBusyCursorWhilePerforming: true
 "/          )
-	 )
-	nil
-	nil
+         )
+        nil
+        nil
       )
 !
 
@@ -7052,84 +7230,89 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Inspect Class'
-	    itemValue: classMenuInspectClass
-	    isVisible: hasNotMultipleClassesSelectedHolder
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Inspect Classes'
-	    itemValue: classMenuInspectClass
-	    isVisible: hasMultipleClassesSelectedHolder
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Inspect Subclasses'
-	    itemValue: classMenuInspectSubclasses
-	    isVisible: hasNotMultipleClassesSelectedHolder
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Inspect Instances'
-	    itemValue: classMenuInspectInstances
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Inspect Derived Instances'
-	    itemValue: classMenuInspectDerivedInstances
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Inspect References to Instances'
-	    itemValue: classMenuInspectReferencesToInstances
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Lint'
-	    isVisible: false
-	    submenuChannel: lintMenu
-	    keepLinkedMenu: true
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Recompile all Methods (without Instrumentation)'
-	    itemValue: classMenuRecompile
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Recompile all Methods here and in Subclasses (without Instrumentation)'
-	    itemValue: classMenuRecompileAll
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedAndInstrumentingCompilerExistsHolder
-	    label: 'Recompile all Methods with Instrumentation'
-	    itemValue: classMenuRecompileInstrumented
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasClassWithInstrumentedMethodsSelected
-	    label: 'Clear Coverage Info (Classwide)'
-	    itemValue: classMenuClearCoverageInfo
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedAndInstrumentingCompilerExistsAndOOMPackageLoadedHolder
-	    label: 'Call Graph'
-	    itemValue: debugMenuOpenCallGraphForClasses
-	    showBusyCursorWhilePerforming: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Inspect Class'
+            itemValue: classMenuInspectClass
+            isVisible: hasNotMultipleClassesSelectedHolder
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Inspect Classes'
+            itemValue: classMenuInspectClass
+            isVisible: hasMultipleClassesSelectedHolder
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Inspect Subclasses'
+            itemValue: classMenuInspectSubclasses
+            isVisible: hasNotMultipleClassesSelectedHolder
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Inspect Instances'
+            itemValue: classMenuInspectInstances
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Inspect Derived Instances'
+            itemValue: classMenuInspectDerivedInstances
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Inspect References to Instances'
+            itemValue: classMenuInspectReferencesToInstances
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Inspect a New Instance'
+            itemValue: classMenuInspectNewInstance
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Lint'
+            isVisible: false
+            submenuChannel: lintMenu
+            keepLinkedMenu: true
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Recompile all Methods (without Instrumentation)'
+            itemValue: classMenuRecompile
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Recompile all Methods here and in Subclasses (without Instrumentation)'
+            itemValue: classMenuRecompileAll
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasClassSelectedAndInstrumentingCompilerExistsHolder
+            label: 'Recompile all Methods with Instrumentation'
+            itemValue: classMenuRecompileInstrumented
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasClassWithInstrumentedMethodsSelected
+            label: 'Clear Coverage Info (Classwide)'
+            itemValue: classMenuClearCoverageInfo
+          )
+         (MenuItem
+            enabled: hasClassSelectedAndInstrumentingCompilerExistsAndOOMPackageLoadedHolder
+            label: 'Call Graph'
+            itemValue: debugMenuOpenCallGraphForClasses
+            showBusyCursorWhilePerforming: true
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -7150,65 +7333,65 @@
 
     ^
      #(Menu
-	      (
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'PrintOut'
-		  itemValue: classMenuPrintOut
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'PrintOut Protocol'
-		  itemValue: classMenuPrintOutProtocol
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'HTML Documentation'
-		  itemValue: classMenuDocumentation
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'Save HTML Documentation As...'
-		  itemValue: classMenuSaveDocumentationAs
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'Show Comment'
-		  itemValue: classMenuComment
-		)
-	       (MenuItem
-		  label: 'Show Hierarchy'
-		  itemValue: classMenuHierarchy
-		)
-	       (MenuItem
-		  label: 'Show Definition'
-		  itemValue: classMenuDefinition
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasOOMPackageLoadedHolder
-		  label: 'Metrics Report'
-		  itemValue: classMenuMetrics
-		)
-	       (MenuItem
-		  label: 'Ownership Graph'
-		  itemValue: classMenuOwnershipGraph
-		)
-	       )
-	      nil
-	      nil
-	    )
+              (
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'PrintOut'
+                  itemValue: classMenuPrintOut
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'PrintOut Protocol'
+                  itemValue: classMenuPrintOutProtocol
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'HTML Documentation'
+                  itemValue: classMenuDocumentation
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Save HTML Documentation As...'
+                  itemValue: classMenuSaveDocumentationAs
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'Show Comment'
+                  itemValue: classMenuComment
+                )
+               (MenuItem
+                  label: 'Show Hierarchy'
+                  itemValue: classMenuHierarchy
+                )
+               (MenuItem
+                  label: 'Show Definition'
+                  itemValue: classMenuDefinition
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasOOMPackageLoadedHolder
+                  label: 'Metrics Report'
+                  itemValue: classMenuMetrics
+                )
+               (MenuItem
+                  label: 'Development Ownership Graph'
+                  itemValue: classMenuOwnershipGraph
+                )
+               )
+              nil
+              nil
+            )
 !
 
 classGenerateMenu
@@ -7227,136 +7410,136 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'AccessMethodsSlice'
-	    translateLabel: true
-	    submenuChannel: classGenerateMenuAccessMethodsSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: 'CommonInstMethodsSlice'
-	    translateLabel: true
-	    submenuChannel: classGenerateMenuCommonInstMethodsSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    enabled: hasLoadedClassSelectedHolder
-	    label: 'Documentation Stubs'
-	    itemValue: classMenuGenerateDocumentationStubs
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleLoadedClassWithCommentSelectedHolder
-	    label: 'Documentation Method from Comment'
-	    itemValue: classMenuGenerateDocumentationMethodFromComment
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    enabled: hasLoadedClassSelectedHolder
-	    label: 'Copyright Method'
-	    itemValue: classMenuGenerateCopyrightMethod
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: hasClassSelectedHolder
-	  )
-	 (MenuItem
-	    label: 'Project Definitions'
-	    itemValue: classMenuGenerateProjectDefinitions
-	    translateLabel: true
-	    isVisible: hasProjectDefinitionSelectedHolder
-	  )
-	 (MenuItem
-	    label: 'Update Project Contents Definitions'
-	    itemValue: classMenuUpdateProjectContentsDefinitions
-	    translateLabel: true
-	    isVisible: hasProjectDefinitionSelectedHolder
-	  )
-	 (MenuItem
-	    label: 'Regenerate Project Contents Definitions'
-	    itemValue: classMenuRegenerateProjectContentsDefinitions
-	    translateLabel: true
-	    isVisible: hasProjectDefinitionSelectedHolder
-	  )
-	 (MenuItem
-	    enabled: hasSingleLoadedClassSelectedHolder
-	    label: 'Initialized Instance Creation'
-	    itemValue: classMenuGenerateInitializedInstanceCreationMethods
-	    translateLabel: true
-	    isVisible: hasNonProjectDefinitionSelectedHolder
-	  )
-	 (MenuItem
-	    enabled: hasSingleLoadedClassSelectedHolder
-	    label: 'Parametrized Instance Creation'
-	    itemValue: classMenuGenerateParametrizedInstanceCreationMethods
-	    translateLabel: true
-	    isVisible: hasNonProjectDefinitionSelectedHolder
-	  )
-	 (MenuItem
-	    enabled: hasSingleLoadedClassSelectedHolder
-	    label: 'Redefined Instance Creation'
-	    itemValue: classMenuGenerateRedefinedInstanceCreationMethods
-	    translateLabel: true
-	    isVisible: hasNonProjectDefinitionSelectedHolder
-	  )
-	 (MenuItem
-	    enabled: hasLoadedClassSelectedHolder
-	    label: 'Singleton Pattern'
-	    itemValue: classMenuGenerateSingletonPatternInstanceCreationMethods
-	    translateLabel: true
-	    isVisible: hasNonProjectDefinitionSelectedHolder
-	  )
-	 (MenuItem
-	    enabled: hasLoadedClassSelectedHolder
-	    label: 'Make Abstract'
-	    itemValue: classMenuGenerateIsAbstractMethod
-	    translateLabel: true
-	    isVisible: hasNonProjectDefinitionSelectedHolder
-	  )
-	 (MenuItem
-	    enabled: hasEnumTypeClassSelectedHolder
-	    label: 'EnumType Code'
-	    itemValue: classMenuGenerateEnumTypeCode
-	    translateLabel: true
-	    isVisible: hasNonProjectDefinitionSelectedHolder
-	  )
-	 (MenuItem
-	    enabled: hasSharedPoolSelectedHolder
-	    label: 'SharedPool Initialization Code'
-	    itemValue: classMenuGeneratePoolInitializationCode
-	    translateLabel: true
-	    isVisible: hasNonProjectDefinitionSelectedHolder
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: hasNonProjectDefinitionSelectedHolder
-	  )
-	 (MenuItem
-	    enabled: hasApplicationOrHTTPServiceClassSelectedHolder
-	    label: 'Application Code'
-	    itemValue: classMenuGenerateApplicationCode
-	    translateLabel: true
-	    isVisible: hasNonProjectDefinitionSelectedHolder
-	  )
-	 (MenuItem
-	    enabled: hasLoadedClassSelectedHolder
-	    label: 'Class Initialization Code'
-	    itemValue: classMenuGenerateClassInitializationCode
-	    translateLabel: true
-	    isVisible: hasNonProjectDefinitionSelectedHolder
-	  )
-	 (MenuItem
-	    enabled: hasLoadedClassSelectedHolder
-	    label: 'Required Protocol'
-	    itemValue: classMenuGenerateRequiredProtocol
-	    translateLabel: true
-	    isVisible: hasNonProjectDefinitionSelectedHolder
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: 'AccessMethodsSlice'
+            translateLabel: true
+            submenuChannel: classGenerateMenuAccessMethodsSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: 'CommonInstMethodsSlice'
+            translateLabel: true
+            submenuChannel: classGenerateMenuCommonInstMethodsSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            enabled: hasLoadedClassSelectedHolder
+            label: 'Documentation Stubs'
+            itemValue: classMenuGenerateDocumentationStubs
+            translateLabel: true
+          )
+         (MenuItem
+            enabled: hasSingleLoadedClassWithCommentSelectedHolder
+            label: 'Documentation Method from Comment'
+            itemValue: classMenuGenerateDocumentationMethodFromComment
+            translateLabel: true
+          )
+         (MenuItem
+            enabled: hasLoadedClassSelectedHolder
+            label: 'Copyright Method'
+            itemValue: classMenuGenerateCopyrightMethod
+            translateLabel: true
+          )
+         (MenuItem
+            label: '-'
+            isVisible: hasClassSelectedHolder
+          )
+         (MenuItem
+            label: 'Project Definitions'
+            itemValue: classMenuGenerateProjectDefinitions
+            translateLabel: true
+            isVisible: hasProjectDefinitionSelectedHolder
+          )
+         (MenuItem
+            label: 'Update Project Contents Definitions'
+            itemValue: classMenuUpdateProjectContentsDefinitions
+            translateLabel: true
+            isVisible: hasProjectDefinitionSelectedHolder
+          )
+         (MenuItem
+            label: 'Regenerate Project Contents Definitions'
+            itemValue: classMenuRegenerateProjectContentsDefinitions
+            translateLabel: true
+            isVisible: hasProjectDefinitionSelectedHolder
+          )
+         (MenuItem
+            enabled: hasSingleLoadedClassSelectedHolder
+            label: 'Initialized Instance Creation'
+            itemValue: classMenuGenerateInitializedInstanceCreationMethods
+            translateLabel: true
+            isVisible: hasNonProjectDefinitionSelectedHolder
+          )
+         (MenuItem
+            enabled: hasSingleLoadedClassSelectedHolder
+            label: 'Parametrized Instance Creation'
+            itemValue: classMenuGenerateParametrizedInstanceCreationMethods
+            translateLabel: true
+            isVisible: hasNonProjectDefinitionSelectedHolder
+          )
+         (MenuItem
+            enabled: hasSingleLoadedClassSelectedHolder
+            label: 'Redefined Instance Creation'
+            itemValue: classMenuGenerateRedefinedInstanceCreationMethods
+            translateLabel: true
+            isVisible: hasNonProjectDefinitionSelectedHolder
+          )
+         (MenuItem
+            enabled: hasLoadedClassSelectedHolder
+            label: 'Singleton Pattern'
+            itemValue: classMenuGenerateSingletonPatternInstanceCreationMethods
+            translateLabel: true
+            isVisible: hasNonProjectDefinitionSelectedHolder
+          )
+         (MenuItem
+            enabled: hasLoadedClassSelectedHolder
+            label: 'Make Abstract'
+            itemValue: classMenuGenerateIsAbstractMethod
+            translateLabel: true
+            isVisible: hasNonProjectDefinitionSelectedHolder
+          )
+         (MenuItem
+            enabled: hasEnumTypeClassSelectedHolder
+            label: 'EnumType Code'
+            itemValue: classMenuGenerateEnumTypeCode
+            translateLabel: true
+            isVisible: hasNonProjectDefinitionSelectedHolder
+          )
+         (MenuItem
+            enabled: hasSharedPoolSelectedHolder
+            label: 'SharedPool Initialization Code'
+            itemValue: classMenuGeneratePoolInitializationCode
+            translateLabel: true
+            isVisible: hasNonProjectDefinitionSelectedHolder
+          )
+         (MenuItem
+            label: '-'
+            isVisible: hasNonProjectDefinitionSelectedHolder
+          )
+         (MenuItem
+            enabled: hasApplicationOrHTTPServiceClassSelectedHolder
+            label: 'Application Code'
+            itemValue: classMenuGenerateApplicationCode
+            translateLabel: true
+            isVisible: hasNonProjectDefinitionSelectedHolder
+          )
+         (MenuItem
+            enabled: hasLoadedClassSelectedHolder
+            label: 'Class Initialization Code'
+            itemValue: classMenuGenerateClassInitializationCode
+            translateLabel: true
+            isVisible: hasNonProjectDefinitionSelectedHolder
+          )
+         (MenuItem
+            enabled: hasLoadedClassSelectedHolder
+            label: 'Required Protocol'
+            itemValue: classMenuGenerateRequiredProtocol
+            translateLabel: true
+            isVisible: hasNonProjectDefinitionSelectedHolder
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -7376,69 +7559,69 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasSingleLoadedClassSelectedHolder
-	    label: 'Access Methods'
-	    itemValue: classMenuGenerateAccessMethods
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleLoadedClassSelectedHolder
-	    label: 'Getter Method(s)'
-	    itemValue: classMenuGenerateGetterMethods
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleLoadedClassSelectedHolder
-	    label: 'Setter Method(s)'
-	    itemValue: classMenuGenerateSetterMethods
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleLoadedClassSelectedAndMultipleVariablesSelectedHolder
-	    label: 'Multi-Setter Method'
-	    itemValue: classMenuGenerateMultiSetterMethod
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasSingleLoadedClassSelectedHolder
-	    label: 'Access Methods with Lazy Initialization in Getter'
-	    itemValue: classMenuGenerateAccessMethodsWithLazyInitialization
-	    translateLabel: true
-	    isVisible: hasNonMetaSelectedHolder
-	  )
-	 (MenuItem
-	    enabled: hasSingleLoadedClassSelectedHolder
-	    label: 'Access Methods with Change Notification'
-	    itemValue: classMenuGenerateAccessMethodsWithChange
-	    translateLabel: true
-	    isVisible: hasNonMetaSelectedHolder
-	  )
-	 (MenuItem
-	    enabled: hasSingleLoadedClassSelectedHolder
-	    label: 'Access Methods for ValueHolder'
-	    itemValue: classMenuGenerateAccessMethodsForValueHolder
-	    translateLabel: true
-	    isVisible: hasNonMetaSelectedHolder
-	  )
-	 (MenuItem
-	    enabled: hasSingleLoadedClassSelectedHolder
-	    label: 'Access Methods for ValueHolder with Change Notification'
-	    itemValue: classMenuGenerateAccessMethodsForValueHolderWithChange
-	    translateLabel: true
-	    isVisible: hasNonMetaSelectedHolder
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: hasNonMetaSelectedHolder
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasSingleLoadedClassSelectedHolder
+            label: 'Access Methods'
+            itemValue: classMenuGenerateAccessMethods
+            translateLabel: true
+          )
+         (MenuItem
+            enabled: hasSingleLoadedClassSelectedHolder
+            label: 'Getter Method(s)'
+            itemValue: classMenuGenerateGetterMethods
+            translateLabel: true
+          )
+         (MenuItem
+            enabled: hasSingleLoadedClassSelectedHolder
+            label: 'Setter Method(s)'
+            itemValue: classMenuGenerateSetterMethods
+            translateLabel: true
+          )
+         (MenuItem
+            enabled: hasSingleLoadedClassSelectedAndMultipleVariablesSelectedHolder
+            label: 'Multi-Setter Method'
+            itemValue: classMenuGenerateMultiSetterMethod
+            translateLabel: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasSingleLoadedClassSelectedHolder
+            label: 'Access Methods with Lazy Initialization in Getter'
+            itemValue: classMenuGenerateAccessMethodsWithLazyInitialization
+            translateLabel: true
+            isVisible: hasNonMetaSelectedHolder
+          )
+         (MenuItem
+            enabled: hasSingleLoadedClassSelectedHolder
+            label: 'Access Methods with Change Notification'
+            itemValue: classMenuGenerateAccessMethodsWithChange
+            translateLabel: true
+            isVisible: hasNonMetaSelectedHolder
+          )
+         (MenuItem
+            enabled: hasSingleLoadedClassSelectedHolder
+            label: 'Access Methods for ValueHolder'
+            itemValue: classMenuGenerateAccessMethodsForValueHolder
+            translateLabel: true
+            isVisible: hasNonMetaSelectedHolder
+          )
+         (MenuItem
+            enabled: hasSingleLoadedClassSelectedHolder
+            label: 'Access Methods for ValueHolder with Change Notification'
+            itemValue: classMenuGenerateAccessMethodsForValueHolderWithChange
+            translateLabel: true
+            isVisible: hasNonMetaSelectedHolder
+          )
+         (MenuItem
+            label: '-'
+            isVisible: hasNonMetaSelectedHolder
+          )
+         )
+        nil
+        nil
       )
 
     "Created: / 10-08-2006 / 16:11:12 / cg"
@@ -7460,72 +7643,72 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: '"initialize"-Method'
-	    itemValue: classMenuGenerateInitializationMethod
-	    translateLabel: true
-	    isVisible: hasNonMetaSelectedHolder
-	    sendToOriginator: true
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: '"printOn:"-Method'
-	    itemValue: classMenuGenerateStandardPrintOnMethod
-	    translateLabel: true
-	    isVisible: hasNonMetaSelectedHolder
-	    sendToOriginator: true
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Update Method Template'
-	    itemValue: classMenuGenerateUpdateMethod
-	    translateLabel: true
-	    isVisible: hasNonMetaSelectedHolder
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Visitor Method'
-	    itemValue: classMenuGenerateAcceptVisitor
-	    translateLabel: true
-	    isVisible: hasNonMetaSelectedHolder
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Visitor and Visited Methods'
-	    itemValue: classMenuGenerateVisitorMethods
-	    translateLabel: true
-	    isVisible: hasNonMetaSelectedHolder
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Visitor and Visited Methods (with visitSuper:)'
-	    itemValue: classMenuGenerateVisitorMethods2
-	    translateLabel: true
-	    isVisible: hasNonMetaSelectedHolder
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Classtype Test Methods for this Class (isXXX)'
-	    itemValue: classMenuGenerateClassTypeTestMethodsForThisClass
-	    translateLabel: true
-	    isVisible: hasNonMetaSelectedHolder
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Classtype Test Methods for all Subclass(es) (isXXX)'
-	    itemValue: classMenuGenerateClassTypeTestMethods
-	    translateLabel: true
-	    isVisible: hasNonMetaSelectedHolder
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: hasNonMetaSelectedHolder
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: '"initialize"-Method'
+            itemValue: classMenuGenerateInitializationMethod
+            translateLabel: true
+            isVisible: hasNonMetaSelectedHolder
+            sendToOriginator: true
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: '"printOn:"-Method'
+            itemValue: classMenuGenerateStandardPrintOnMethod
+            translateLabel: true
+            isVisible: hasNonMetaSelectedHolder
+            sendToOriginator: true
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Update Method Template'
+            itemValue: classMenuGenerateUpdateMethod
+            translateLabel: true
+            isVisible: hasNonMetaSelectedHolder
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Visitor Method'
+            itemValue: classMenuGenerateAcceptVisitor
+            translateLabel: true
+            isVisible: hasNonMetaSelectedHolder
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Visitor and Visited Methods'
+            itemValue: classMenuGenerateVisitorMethods
+            translateLabel: true
+            isVisible: hasNonMetaSelectedHolder
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Visitor and Visited Methods (with visitSuper:)'
+            itemValue: classMenuGenerateVisitorMethods2
+            translateLabel: true
+            isVisible: hasNonMetaSelectedHolder
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Classtype Test Methods for this Class (isXXX)'
+            itemValue: classMenuGenerateClassTypeTestMethodsForThisClass
+            translateLabel: true
+            isVisible: hasNonMetaSelectedHolder
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Classtype Test Methods for all Subclass(es) (isXXX)'
+            itemValue: classMenuGenerateClassTypeTestMethods
+            translateLabel: true
+            isVisible: hasNonMetaSelectedHolder
+          )
+         (MenuItem
+            label: '-'
+            isVisible: hasNonMetaSelectedHolder
+          )
+         )
+        nil
+        nil
       )
 
     "Modified: / 23-03-2012 / 11:58:16 / cg"
@@ -7547,37 +7730,37 @@
 
     ^
      #(#Menu
-	#(
-	 #(#MenuItem
-	    #label: 'Select Class with Superclasses'
-	    #translateLabel: true
-	    #value: #classHierarchyMenuSelectWithSuperclasses
-	    #enabled: #hasAtMostOneClassesSelectedHolder
-	  )
-	 #(#MenuItem
-	    #label: 'Select Class with Subclasses'
-	    #translateLabel: true
-	    #value: #classHierarchyMenuSelectWithSubclasses
-	    #enabled: #hasAtMostOneClassesSelectedHolder
-	  )
-	 #(#MenuItem
-	    #label: 'Select Class with All Subclasses'
-	    #translateLabel: true
-	    #value: #classHierarchyMenuSelectWithAllSubclasses
-	    #enabled: #hasAtMostOneClassesSelectedHolder
-	  )
-	 #(#MenuItem
-	    #label: '-'
-	  )
-	 #(#MenuItem
-	    #label: 'Update'
-	    #translateLabel: true
-	    #value: #classHierarchyMenuUpdate
-	    #enabled: #hasSingleClassSelected
-	  )
-	 )
-	nil
-	nil
+        #(
+         #(#MenuItem
+            #label: 'Select Class with Superclasses'
+            #translateLabel: true
+            #value: #classHierarchyMenuSelectWithSuperclasses
+            #enabled: #hasAtMostOneClassesSelectedHolder
+          )
+         #(#MenuItem
+            #label: 'Select Class with Subclasses'
+            #translateLabel: true
+            #value: #classHierarchyMenuSelectWithSubclasses
+            #enabled: #hasAtMostOneClassesSelectedHolder
+          )
+         #(#MenuItem
+            #label: 'Select Class with all Subclasses'
+            #translateLabel: true
+            #value: #classHierarchyMenuSelectWithAllSubclasses
+            #enabled: #hasAtMostOneClassesSelectedHolder
+          )
+         #(#MenuItem
+            #label: '-'
+          )
+         #(#MenuItem
+            #label: 'Update'
+            #translateLabel: true
+            #value: #classHierarchyMenuUpdate
+            #enabled: #hasSingleClassSelected
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -7597,93 +7780,93 @@
 
     ^
      #(#Menu
-	#(
-	 #(#MenuItem
-	    #label: 'References...'
-	    #translateLabel: true
-	    #value: #variablesMenuBrowseAllInstVarOrClassInstVarRefs
-	    #enabled: #hasClassSelectedHolder
-	    #showBusyCursorWhilePerforming: true
-	  )
-	 #(#MenuItem
-	    #label: 'Readers...'
-	    #translateLabel: true
-	    #value: #variablesMenuBrowseAllInstVarOrClassInstVarReads
-	    #enabled: #hasClassSelectedHolder
-	    #showBusyCursorWhilePerforming: true
-	  )
-	 #(#MenuItem
-	    #label: 'Writers...'
-	    #translateLabel: true
-	    #value: #variablesMenuBrowseAllInstVarOrClassInstVarMods
-	    #enabled: #hasClassSelectedHolder
-	    #showBusyCursorWhilePerforming: true
-	  )
-	 #(#MenuItem
-	    #label: '-'
-	  )
-	 #(#MenuItem
-	    #label: 'Add...'
-	    #translateLabel: true
-	    #value: #variablesMenuAddInstanceVariable
-	    #enabled: #hasSingleClassSelectedAndCanUseRefactoringSupportHolder
-	    #showBusyCursorWhilePerforming: true
-	  )
-	 #(#MenuItem
-	    #label: 'Rename...'
-	    #translateLabel: true
-	    #value: #variablesMenuRenameInstanceVariable
-	    #enabled: #hasSingleClassAndSingleVariableSelectedAndCanUseRefactoringSupportHolder
-	    #showBusyCursorWhilePerforming: true
-	  )
-	 #(#MenuItem
-	    #label: 'Remove'
-	    #translateLabel: true
-	    #value: #variablesMenuRemoveInstanceVariable
-	    #enabled: #hasSingleClassAndSingleVariableSelectedAndCanUseRefactoringSupportHolder
-	    #showBusyCursorWhilePerforming: true
-	  )
-	 #(#MenuItem
-	    #label: '-'
-	  )
-	 #(#MenuItem
-	    #label: 'Pull Up'
-	    #translateLabel: true
-	    #value: #codeMenuPullUpInstanceVariable
-	    #enabled: #hasInstanceVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
-	    #showBusyCursorWhilePerforming: true
-	  )
-	 #(#MenuItem
-	    #label: 'Push Down'
-	    #translateLabel: true
-	    #value: #codeMenuPushDownInstanceVariable
-	    #enabled: #hasInstanceVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
-	    #showBusyCursorWhilePerforming: true
-	  )
-	 #(#MenuItem
-	    #label: '-'
-	  )
-	 #(#MenuItem
-	    #label: 'Convert to ValueHolder'
-	    #translateLabel: true
-	    #value: #codeMenuConvertToValueHolder
-	    #enabled: #hasInstanceVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
-	    #showBusyCursorWhilePerforming: true
-	  )
-	 #(#MenuItem
-	    #label: 'Make Abstract (Access only via Getters/Setters)'
-	    #translateLabel: true
-	    #value: #codeMenuMakeAbstractVariable
-	    #enabled: #hasSingleVariableSelectedInCodeViewOrVariableListHolder
-	    #showBusyCursorWhilePerforming: true
-	  )
-	 #(#MenuItem
-	    #label: 'Make Concrete (Protect from Access via Getters/Setters)'
-	    #translateLabel: true
-	    #value: #codeMenuProtectInstanceVariable
-	    #enabled: #hasSingleVariableSelectedInCodeViewOrVariableListHolder
-	    #showBusyCursorWhilePerforming: true
-	  )
+        #(
+         #(#MenuItem
+            #label: 'References...'
+            #translateLabel: true
+            #value: #variablesMenuBrowseAllInstVarOrClassInstVarRefs
+            #enabled: #hasClassSelectedHolder
+            #showBusyCursorWhilePerforming: true
+          )
+         #(#MenuItem
+            #label: 'Readers...'
+            #translateLabel: true
+            #value: #variablesMenuBrowseAllInstVarOrClassInstVarReads
+            #enabled: #hasClassSelectedHolder
+            #showBusyCursorWhilePerforming: true
+          )
+         #(#MenuItem
+            #label: 'Writers...'
+            #translateLabel: true
+            #value: #variablesMenuBrowseAllInstVarOrClassInstVarMods
+            #enabled: #hasClassSelectedHolder
+            #showBusyCursorWhilePerforming: true
+          )
+         #(#MenuItem
+            #label: '-'
+          )
+         #(#MenuItem
+            #label: 'Add...'
+            #translateLabel: true
+            #value: #variablesMenuAddInstanceVariable
+            #enabled: #hasSingleClassSelectedAndCanUseRefactoringSupportHolder
+            #showBusyCursorWhilePerforming: true
+          )
+         #(#MenuItem
+            #label: 'Rename...'
+            #translateLabel: true
+            #value: #variablesMenuRenameInstanceVariable
+            #enabled: #hasSingleClassAndSingleVariableSelectedAndCanUseRefactoringSupportHolder
+            #showBusyCursorWhilePerforming: true
+          )
+         #(#MenuItem
+            #label: 'Remove'
+            #translateLabel: true
+            #value: #variablesMenuRemoveInstanceVariable
+            #enabled: #hasSingleClassAndSingleVariableSelectedAndCanUseRefactoringSupportHolder
+            #showBusyCursorWhilePerforming: true
+          )
+         #(#MenuItem
+            #label: '-'
+          )
+         #(#MenuItem
+            #label: 'Pull Up'
+            #translateLabel: true
+            #value: #codeMenuPullUpInstanceVariable
+            #enabled: #hasInstanceVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
+            #showBusyCursorWhilePerforming: true
+          )
+         #(#MenuItem
+            #label: 'Push Down'
+            #translateLabel: true
+            #value: #codeMenuPushDownInstanceVariable
+            #enabled: #hasInstanceVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
+            #showBusyCursorWhilePerforming: true
+          )
+         #(#MenuItem
+            #label: '-'
+          )
+         #(#MenuItem
+            #label: 'Convert to ValueHolder'
+            #translateLabel: true
+            #value: #codeMenuConvertToValueHolder
+            #enabled: #hasInstanceVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
+            #showBusyCursorWhilePerforming: true
+          )
+         #(#MenuItem
+            #label: 'Make Abstract (Access only via Getters/Setters)'
+            #translateLabel: true
+            #value: #codeMenuMakeAbstractVariable
+            #enabled: #hasSingleVariableSelectedInCodeViewOrVariableListHolder
+            #showBusyCursorWhilePerforming: true
+          )
+         #(#MenuItem
+            #label: 'Make Concrete (Protect from Access via Getters/Setters)'
+            #translateLabel: true
+            #value: #codeMenuProtectInstanceVariable
+            #enabled: #hasSingleVariableSelectedInCodeViewOrVariableListHolder
+            #showBusyCursorWhilePerforming: true
+          )
 "/         #(#MenuItem
 "/            #label: 'Type info...'
 "/            #translateLabel: true
@@ -7691,9 +7874,9 @@
 "/            #enabled: #hasSingleVariableSelectedHolder
 "/            #showBusyCursorWhilePerforming: true
 "/          )
-	 )
-	nil
-	nil
+         )
+        nil
+        nil
       )
 !
 
@@ -7714,480 +7897,559 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'FileOut'
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'as...'
-		  itemValue: classMenuFileOutAs
-		  isVisible: hasSingleClassSelectedHolder
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedAndCanFileOutXMLHolder
-		  label: 'XML as...'
-		  itemValue: classMenuFileOutXMLAs
-		  isVisible: hasSingleClassSelectedHolder
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedAndCanFileOutSIFHolder
-		  label: 'SIF as...'
-		  itemValue: classMenuFileOutSIFAs
-		  isVisible: hasSingleClassSelectedHolder
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedAndCanFileOutBinaryHolder
-		  label: 'Binary as...'
-		  itemValue: classMenuFileOutBinaryAs
-		  isVisible: hasSingleClassSelectedHolder
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'Each in...'
-		  itemValue: classMenuFileOutEachIn
-		  isVisible: hasMultipleClassesSelectedHolder
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasProjectDefinitionSelectedHolder
-		  label: 'Build Support Files in...'
-		  itemValue: classMenuFileOutBuildSupportFiles
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedAndCanFileOutXMLHolder
-		  label: 'Each XML in...'
-		  itemValue: classMenuFileOutEachXMLIn
-		  isVisible: hasMultipleClassesSelectedHolder
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedAndCanFileOutSIFHolder
-		  label: 'Each SIF in...'
-		  itemValue: classMenuFileOutEachSIFIn
-		  isVisible: hasMultipleClassesSelectedHolder
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'Each Binary in...'
-		  itemValue: classMenuFileOutEachBinaryIn
-		  isVisible: hasMultipleClassesSelectedHolder
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedAndCanSendMailHolder
-		  label: 'Mail To...'
-		  itemValue: classMenuMailTo
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'Copy Source to Clipboard'
-		  itemValue: classMenuCopySourceToClipboard
-		  showBusyCursorWhilePerforming: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    label: 'Repository Slice'
-	    submenuChannel: classMenuSCMSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Documentation'
-	    submenuChannel: classDocumentationMenu
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Spawn'
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'Buffer with Class(es)'
-		  itemValue: classMenuSpawnClassesBuffer
-		  isVisible: #'isLintResultBrowserHolder_and_isNotEmbeddedBrowserHolder'
-		)
-	       (MenuItem
-		  enabled: hasSharedPoolSelectedHolder
-		  label: 'Buffer with References to Pool Variable'
-		  itemValue: classMenuSpawnBufferWithPoolVariableReferences
-		  isVisible: #'hasSharedPoolSelectedHolder_and_isNotEmbeddedBrowserHolder'
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'Buffer with References to Class'
-		  itemValue: classMenuSpawnBufferWithClassReferences
-		  isVisible: isNotEmbeddedBrowserHolder
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'Buffer with References to Class or Subclass'
-		  itemValue: classMenuSpawnBufferWithClassOrSubclassReferences
-		  isVisible: isNotEmbeddedBrowserHolder
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'Buffer with Subclasses'
-		  itemValue: classMenuSpawnBufferWithAllSubclasses
-		  isVisible: isNotEmbeddedBrowserHolder
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'Buffer with Superclasses'
-		  itemValue: classMenuSpawnBufferWithAllSuperclasses
-		  isVisible: isNotEmbeddedBrowserHolder
-		)
-	       (MenuItem
-		  enabled: hasMultipleClassesSelectedHolder
-		  label: 'Buffer with Common Superclass'
-		  itemValue: classMenuSpawnBufferWithCommonSuperclass
-		  isVisible: isNotEmbeddedBrowserHolder
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'Buffer with Project(s)'
-		  itemValue: classMenuSpawnBufferWithClassProjects
-		  isVisible: isNotEmbeddedBrowserHolder
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'Buffer'
-		  itemValue: classMenuSpawnClassBuffer
-		  isVisible: false
-		)
-	       (MenuItem
-		  label: '-'
-		  isVisible: isNotEmbeddedBrowserHolder
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'Browser on Class(es)'
-		  itemValue: classMenuSpawnClassesBuffer
-		  isVisible: isLintResultBrowserHolder
-		)
-	       (MenuItem
-		  enabled: hasSharedPoolSelectedHolder
-		  label: 'Browser with References to Pool Variable'
-		  itemValue: classMenuSpawnPoolVariableReferences
-		  isVisible: hasSharedPoolSelectedHolder
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'Browser on References to Class'
-		  itemValue: classMenuSpawnClassReferences
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'Browser on References to Class or Subclass'
-		  itemValue: classMenuSpawnClassOrSubclassReferences
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'Browser on Subclasses'
-		  itemValue: classMenuSpawnWithAllSubclasses
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'Browser on Superclasses'
-		  itemValue: classMenuSpawnWithAllSuperclasses
-		)
-	       (MenuItem
-		  enabled: hasMultipleClassesSelectedHolder
-		  label: 'Browser on Common Superclass'
-		  itemValue: classMenuSpawnWithCommonSuperclass
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'Browser on Project(s)'
-		  itemValue: classMenuSpawnClassProjects
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'Browser'
-		  itemValue: classMenuSpawnClass
-		  isVisible: false
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Find'
-	    isVisible: false
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'String...'
-		  itemValue: classMenuFindString
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Instance Variables'
-	    isVisible: hasNonMetaSelectedHolder
-	    submenuChannel: classInstanceVariablesMenu
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Class Instance Variables'
-	    isVisible: hasMetaSelectedHolder
-	    submenuChannel: classInstanceVariablesMenu
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Class Variables'
-	    submenuChannel: classClassVariablesMenu
-	  )
-	 (MenuItem
-	    enabled: hasSharedPoolSelectedHolder
-	    label: 'Pool Variables'
-	    submenuChannel: classPoolVariablesMenu
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'New'
-	    isVisible: isNotEmbeddedBrowserHolder
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  label: 'classNewSlice'
-		  submenuChannel: classNewSlice
-		  isMenuSlice: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedHolder
-	    label: 'Copy...'
-	    itemValue: classMenuCopyAs
-	    isVisible: isNotEmbeddedBrowserHolder
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Move'
-	    isVisible: isNotEmbeddedBrowserHolder
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasNonPrivateClassSelected
-		  label: 'To Category...'
-		  itemValue: classMenuMoveToCategory
-		)
-	       (MenuItem
-		  enabled: hasNonPrivateClassSelected
-		  label: 'To Namespace...'
-		  itemValue: classMenuMoveToNamespace
-		)
-	       (MenuItem
-		  enabled: hasNonPrivateClassSelected
-		  label: 'To Package...'
-		  itemValue: classMenuMoveToProject
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'Make Private in...'
-		  itemValue: classMenuMakePrivateIn
-		)
-	       (MenuItem
-		  enabled: canMakePublicClass
-		  label: 'Make Public'
-		  itemValue: classMenuMakePublic
-		)
-	       (MenuItem
-		  enabled: canMakePublicClass
-		  label: 'Make Public in...'
-		  itemValue: classMenuMakePublicIn
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: canConvertToSiblingsHolder
-		  label: 'New Common Superclass with Children (Convert to Siblings)...'
-		  itemValue: classMenuChildrenToSiblings
-		  nameKey: convertToSibling
-		)
-	       (MenuItem
-		  enabled: canInsertSuperclassHolder
-		  label: 'New Common Superclass (Insert Superclass)...'
-		  itemValue: classMenuInsertNewSuperclass
-		  nameKey: insertSuperclass
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedHolder
-	    label: 'Rename...'
-	    itemValue: classMenuRename
-	    isVisible: isNotEmbeddedBrowserHolder
-	    shortcutKey: Rename
-	    ignoreShortcutKeys: true
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Safe Remove...'
-	    itemValue: classMenuSaveRemove
-	    isVisible: isNotEmbeddedBrowserHolder
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Remove...'
-	    itemValue: classMenuRemove
-	    isVisible: isNotEmbeddedBrowserHolder
-	    shortcutKey: Delete
-	    labelImage: (ResourceRetriever ToolbarIconLibrary erase16x16Icon 'Remove...')
-	    ignoreShortcutKeys: true
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: isNotEmbeddedBrowserHolder
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Compare'
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasClassSelectedAndSourceCodeManagerHolder
-		  label: 'With Newest in Repository...'
-		  itemValue: classMenuCompareAgainstNewestInRepository
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-		  label: 'With Original in Repository...'
-		  itemValue: classMenuCompareAgainstOriginalInRepository
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-		  label: 'With Repository...'
-		  itemValue: classMenuCompareWithRepository
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasSingleClassSelected
-		  label: 'With File...'
-		  itemValue: classMenuCompareWithFile
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		  isVisible: smallTeamAvailable
-		)
-	       (MenuItem
-		  label: 'With SmallTeam Version on Host'
-		  isVisible: smallTeamAvailable
-		  submenuChannel: compareClassWithSmallTeamVersionMenu
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasSingleClassSelectedHolder
-		  label: 'With Class...'
-		  itemValue: classMenuCompareWithClass
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasExactlyTwoClassesSelectedHolder
-		  label: 'With each other'
-		  itemValue: classMenuCompareTwoSelectedClasses
-		  showBusyCursorWhilePerforming: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    label: 'Generate'
-	    submenuChannel: classGenerateMenu
-	    keepLinkedMenu: true
-	  )
-	 (MenuItem
-	    label: 'Static Analysis (Lint)'
-	    submenuChannel: classCheckMenu
-	    labelImage: (ResourceRetriever ToolbarIconLibrary lint16x16Icon 'Static Analysis (Lint)')
-	  )
-	 (MenuItem
-	    label: 'Debug'
-	    submenuChannel: classDebugMenu
-	    keepLinkedMenu: true
-	  )
-	 (MenuItem
-	    label: 'Special'
-	    submenuChannel: classSpecialMenu
-	    keepLinkedMenu: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Search && Rewrite...'
-	    itemValue: classMenuRewrite
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: false
-	  )
-	 (MenuItem
-	    label: 'Update'
-	    itemValue: classMenuUpdate
-	    isVisible: false
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'FileOut'
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'As...'
+                  itemValue: classMenuFileOutAs
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Each in...'
+                  itemValue: classMenuFileOutEachIn
+                  isVisible: hasMultipleClassesSelectedHolder
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Special Formats'
+                  submenu:
+                 (Menu
+                    (
+                     (MenuItem
+                        enabled: hasClassSelectedAndCanFileOutXMLHolder
+                        label: 'XML as...'
+                        itemValue: classMenuFileOutXMLAs
+                        isVisible: hasSingleClassSelectedHolder
+                        showBusyCursorWhilePerforming: true
+                      )
+                     (MenuItem
+                        enabled: hasClassSelectedAndCanFileOutXMLHolder
+                        label: 'XML each in...'
+                        itemValue: classMenuFileOutEachXMLIn
+                        isVisible: hasMultipleClassesSelectedHolder
+                        showBusyCursorWhilePerforming: true
+                      )
+                     (MenuItem
+                        label: '-'
+                      )
+                     (MenuItem
+                        enabled: hasClassSelectedAndCanFileOutSIFHolder
+                        label: 'SIF as...'
+                        itemValue: classMenuFileOutSIFAs
+                        isVisible: hasSingleClassSelectedHolder
+                        showBusyCursorWhilePerforming: true
+                      )
+                     (MenuItem
+                        enabled: hasClassSelectedAndCanFileOutSIFHolder
+                        label: 'SIF each in...'
+                        itemValue: classMenuFileOutEachSIFIn
+                        isVisible: hasMultipleClassesSelectedHolder
+                        showBusyCursorWhilePerforming: true
+                      )
+                     (MenuItem
+                        label: '-'
+                      )
+                     (MenuItem
+                        enabled: hasClassSelectedAndCanFileOutVSEHolder
+                        label: 'VSE Fileout Format as...'
+                        itemValue: classMenuFileOutVSEAs
+                        isVisible: hasSingleClassSelectedHolder
+                        showBusyCursorWhilePerforming: true
+                      )
+                     (MenuItem
+                        enabled: hasClassSelectedAndCanFileOutVSEHolder
+                        label: 'VSE Fileout Format each in...'
+                        itemValue: classMenuFileOutEachVSEIn
+                        isVisible: hasMultipleClassesSelectedHolder
+                        showBusyCursorWhilePerforming: true
+                      )
+                     (MenuItem
+                        label: '-'
+                      )
+                     (MenuItem
+                        enabled: hasClassSelectedAndCanFileOutBinaryHolder
+                        label: 'Binary as...'
+                        itemValue: classMenuFileOutBinaryAs
+                        showBusyCursorWhilePerforming: true
+                      )
+                     (MenuItem
+                        enabled: hasClassSelectedHolder
+                        label: 'Binary each in...'
+                        itemValue: classMenuFileOutEachBinaryIn
+                        isVisible: hasMultipleClassesSelectedHolder
+                        showBusyCursorWhilePerforming: true
+                      )
+                     )
+                    nil
+                    nil
+                  )
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasProjectDefinitionSelectedHolder
+                  label: 'Build Support Files in...'
+                  itemValue: classMenuFileOutBuildSupportFiles
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasClassSelectedAndCanSendMailHolder
+                  label: 'Mail To...'
+                  itemValue: classMenuMailTo
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Copy Source to Clipboard'
+                  itemValue: classMenuCopySourceToClipboard
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Copy Selected Class Names to Clipboard'
+                  itemValue: classMenuCopyClassNamesToClipboard
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            label: 'Repository Slice'
+            submenuChannel: classMenuSCMSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Documentation'
+            submenuChannel: classDocumentationMenu
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Spawn'
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Buffer with Class(es)'
+                  itemValue: classMenuSpawnClassesBuffer
+                  isVisible: #'isLintResultBrowserHolder_and_isNotEmbeddedBrowserHolder'
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Buffer with References to Class'
+                  itemValue: classMenuSpawnBufferWithClassReferences
+                  isVisible: isNotEmbeddedBrowserHolder
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Buffer with References to Class or Subclass'
+                  itemValue: classMenuSpawnBufferWithClassOrSubclassReferences
+                  isVisible: isNotEmbeddedBrowserHolder
+                )
+               (MenuItem
+                  enabled: hasSharedPoolSelectedHolder
+                  label: 'Buffer with References to Pool Variable'
+                  itemValue: classMenuSpawnBufferWithPoolVariableReferences
+                  isVisible: #'hasSharedPoolSelectedHolder_and_isNotEmbeddedBrowserHolder'
+                )
+               (MenuItem
+                  enabled: hasProjectDefinitionSelectedHolder
+                  label: 'Buffer with References to Package'
+                  itemValue: classMenuSpawnBufferWithProjectReferences
+                  isVisible: #'hasProjectDefinitionSelectedHolder_and_isNotEmbeddedBrowserHolder'
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Buffer with Subclasses'
+                  itemValue: classMenuSpawnBufferWithAllSubclasses
+                  isVisible: isNotEmbeddedBrowserHolder
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Buffer with Superclasses'
+                  itemValue: classMenuSpawnBufferWithAllSuperclasses
+                  isVisible: isNotEmbeddedBrowserHolder
+                )
+               (MenuItem
+                  enabled: hasMultipleClassesSelectedHolder
+                  label: 'Buffer with Common Superclass'
+                  itemValue: classMenuSpawnBufferWithCommonSuperclass
+                  isVisible: isNotEmbeddedBrowserHolder
+                )
+               (MenuItem
+                  enabled: hasTestCaseClassesSelectedHolder
+                  label: 'Buffer with Classes Covered by Testcase'
+                  itemValue: classMenuSpawnBufferWithClassesCoveredByTestcase
+                  isVisible: isNotEmbeddedBrowserHolder
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Buffer with Project(s)'
+                  itemValue: classMenuSpawnBufferWithClassProjects
+                  isVisible: isNotEmbeddedBrowserHolder
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Buffer'
+                  itemValue: classMenuSpawnClassBuffer
+                  isVisible: false
+                )
+               (MenuItem
+                  label: '-'
+                  isVisible: isNotEmbeddedBrowserHolder
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Browser on Class(es)'
+                  itemValue: classMenuSpawnClassesBuffer
+                  isVisible: isLintResultBrowserHolder
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Browser on References to Class'
+                  itemValue: classMenuSpawnClassReferences
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Browser on References to Class or Subclass'
+                  itemValue: classMenuSpawnClassOrSubclassReferences
+                )
+               (MenuItem
+                  enabled: hasSharedPoolSelectedHolder
+                  label: 'Browser with References to Pool Variable'
+                  itemValue: classMenuSpawnPoolVariableReferences
+                  isVisible: hasSharedPoolSelectedHolder
+                )
+               (MenuItem
+                  enabled: hasProjectDefinitionSelectedHolder
+                  label: 'Browser with References to Package'
+                  itemValue: classMenuSpawnProjectReferences
+                  isVisible: hasProjectDefinitionSelectedHolder
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Browser on Subclasses'
+                  itemValue: classMenuSpawnWithAllSubclasses
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Browser on Superclasses'
+                  itemValue: classMenuSpawnWithAllSuperclasses
+                )
+               (MenuItem
+                  enabled: hasMultipleClassesSelectedHolder
+                  label: 'Browser on Common Superclass'
+                  itemValue: classMenuSpawnWithCommonSuperclass
+                )
+               (MenuItem
+                  enabled: hasTestCaseClassesSelectedHolder
+                  label: 'Browser on Classes Covered by Testcase'
+                  itemValue: classMenuSpawnWithClassesCoveredByTestcase
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Browser on Project(s)'
+                  itemValue: classMenuSpawnClassProjects
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Browser'
+                  itemValue: classMenuSpawnClass
+                  isVisible: false
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasTestCaseClassesSelected
+                  label: 'SUnit Test Runner'
+                  itemValue: classMenuOpenTestRunner
+                )
+               (MenuItem
+                  enabled: hasSingleClassSelectedHolder
+                  label: 'Browse Classes Package Directory'
+                  itemValue: classMenuBrowseClassesPackageDirectory
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Find'
+            isVisible: false
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'String...'
+                  itemValue: classMenuFindString
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Instance Variables'
+            isVisible: hasNonMetaSelectedHolder
+            submenuChannel: classInstanceVariablesMenu
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Class Instance Variables'
+            isVisible: hasMetaSelectedHolder
+            submenuChannel: classInstanceVariablesMenu
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Class Variables'
+            submenuChannel: classClassVariablesMenu
+          )
+         (MenuItem
+            enabled: hasSharedPoolSelectedHolder
+            label: 'Pool Variables'
+            submenuChannel: classPoolVariablesMenu
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'New'
+            isVisible: isNotEmbeddedBrowserHolder
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  label: 'classNewSlice'
+                  submenuChannel: classNewSlice
+                  isMenuSlice: true
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedHolder
+            label: 'Copy...'
+            itemValue: classMenuCopyAs
+            isVisible: isNotEmbeddedBrowserHolder
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Move'
+            isVisible: isNotEmbeddedBrowserHolder
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasNonPrivateClassSelected
+                  label: 'To Category...'
+                  itemValue: classMenuMoveToCategory
+                )
+               (MenuItem
+                  enabled: hasNonPrivateClassSelected
+                  label: 'To Namespace...'
+                  itemValue: classMenuMoveToNamespace
+                )
+               (MenuItem
+                  enabled: hasNonPrivateClassSelected
+                  label: 'To Package...'
+                  itemValue: classMenuMoveToProject
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Make Private in...'
+                  itemValue: classMenuMakePrivateIn
+                )
+               (MenuItem
+                  enabled: canMakePublicClass
+                  label: 'Make Public'
+                  itemValue: classMenuMakePublic
+                )
+               (MenuItem
+                  enabled: canMakePublicClass
+                  label: 'Make Public in...'
+                  itemValue: classMenuMakePublicIn
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: canConvertToSiblingsHolder
+                  label: 'New Common Superclass with Children (Convert to Siblings)...'
+                  itemValue: classMenuChildrenToSiblings
+                  nameKey: convertToSibling
+                )
+               (MenuItem
+                  enabled: canInsertSuperclassHolder
+                  label: 'New Common Superclass (Insert Superclass)...'
+                  itemValue: classMenuInsertNewSuperclass
+                  nameKey: insertSuperclass
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedHolder
+            label: 'Rename...'
+            itemValue: classMenuRename
+            isVisible: isNotEmbeddedBrowserHolder
+            shortcutKey: Rename
+            ignoreShortcutKeys: true
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Safe Remove...'
+            itemValue: classMenuSaveRemove
+            isVisible: isNotEmbeddedBrowserHolder
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Remove...'
+            itemValue: classMenuRemove
+            isVisible: isNotEmbeddedBrowserHolder
+            shortcutKey: Delete
+            labelImage: (ResourceRetriever ToolbarIconLibrary erase16x16Icon 'Remove...')
+            ignoreShortcutKeys: true
+          )
+         (MenuItem
+            label: '-'
+            isVisible: isNotEmbeddedBrowserHolder
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Compare'
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasClassSelectedAndSourceCodeManagerHolder
+                  label: 'With Newest in Repository...'
+                  itemValue: classMenuCompareAgainstNewestInRepository
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+                  label: 'With Original in Repository...'
+                  itemValue: classMenuCompareAgainstOriginalInRepository
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+                  label: 'With Repository...'
+                  itemValue: classMenuCompareWithRepository
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasSingleClassSelected
+                  label: 'With File...'
+                  itemValue: classMenuCompareWithFile
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                  isVisible: smallTeamAvailable
+                )
+               (MenuItem
+                  label: 'With SmallTeam Version on Host'
+                  isVisible: smallTeamAvailable
+                  submenuChannel: compareClassWithSmallTeamVersionMenu
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasSingleClassSelectedHolder
+                  label: 'With Class...'
+                  itemValue: classMenuCompareWithClass
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasExactlyTwoClassesSelectedHolder
+                  label: 'With each other'
+                  itemValue: classMenuCompareTwoSelectedClasses
+                  showBusyCursorWhilePerforming: true
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            label: 'Generate'
+            submenuChannel: classGenerateMenu
+            keepLinkedMenu: true
+          )
+         (MenuItem
+            label: 'Static Analysis (Lint)'
+            submenuChannel: classCheckMenu
+            labelImage: (ResourceRetriever ToolbarIconLibrary lint16x16Icon 'Static Analysis (Lint)')
+          )
+         (MenuItem
+            label: 'Debug'
+            submenuChannel: classDebugMenu
+            keepLinkedMenu: true
+          )
+         (MenuItem
+            label: 'Special'
+            submenuChannel: classSpecialMenu
+            keepLinkedMenu: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Search && Rewrite...'
+            itemValue: classMenuRewrite
+          )
+         (MenuItem
+            label: '-'
+            isVisible: false
+          )
+         (MenuItem
+            label: 'Update'
+            itemValue: classMenuUpdate
+            isVisible: false
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -8208,20 +8470,20 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: '-'
-	    isVisible: hasGroovySupport
-	  )
-	 (MenuItem
-	    label: 'Groovy Class'
-	    itemValue: classMenuNewGroovyClass
-	    translateLabel: true
-	    isVisible: hasGroovySupport
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: '-'
+            isVisible: hasGroovySupport
+          )
+         (MenuItem
+            label: 'Groovy Class'
+            itemValue: classMenuNewGroovyClass
+            translateLabel: true
+            isVisible: hasGroovySupport
+          )
+         )
+        nil
+        nil
       )
 
     "Created: / 18-02-2012 / 17:01:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -8243,21 +8505,21 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: '-'
-	    isVisible: isHaskellModulePresent
-	  )
-	 (MenuItem
-	    enabled: isHaskellModulePresent
-	    label: 'Haskell Module'
-	    itemValue: classMenuNewHaskellModule
-	    translateLabel: true
-	    isVisible: isHaskellModulePresent
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: '-'
+            isVisible: isHaskellModulePresent
+          )
+         (MenuItem
+            enabled: isHaskellModulePresent
+            label: 'Haskell Module'
+            itemValue: classMenuNewHaskellModule
+            translateLabel: true
+            isVisible: isHaskellModulePresent
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -8277,20 +8539,20 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: '-'
-	    isVisible: isJavaScriptMetaclassPresent
-	  )
-	 (MenuItem
-	    enabled: isJavaScriptMetaclassPresent
-	    label: 'JavaScript Class'
-	    itemValue: classMenuNewJavaScriptClass
-	    translateLabel: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: '-'
+            isVisible: isJavaScriptMetaclassPresent
+          )
+         (MenuItem
+            enabled: isJavaScriptMetaclassPresent
+            label: 'JavaScript Class'
+            itemValue: classMenuNewJavaScriptClass
+            translateLabel: true
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -8310,26 +8572,26 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: '-'
-	    isVisible: isLispMetaclassPresent
-	  )
-	 (MenuItem
-	    label: 'Scheme Namespace'
-	    itemValue: classMenuNewLispNamespace
-	    isVisible: isLispMetaclassPresent
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    label: 'Scheme Class'
-	    itemValue: classMenuNewLispClass
-	    isVisible: isLispMetaclassPresent
-	    translateLabel: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: '-'
+            isVisible: isLispMetaclassPresent
+          )
+         (MenuItem
+            label: 'Scheme Namespace'
+            itemValue: classMenuNewLispNamespace
+            isVisible: isLispMetaclassPresent
+            translateLabel: true
+          )
+         (MenuItem
+            label: 'Scheme Class'
+            itemValue: classMenuNewLispClass
+            isVisible: isLispMetaclassPresent
+            translateLabel: true
+          )
+         )
+        nil
+        nil
       )
 
     "Created: / 13-05-2012 / 12:51:10 / cg"
@@ -8351,16 +8613,16 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'PLSQL ObjectType'
-	    itemValue: classMenuNewPLSQLObjectType
-	    translateLabel: true
-	    isVisible: isPlsqlMetaclassPresent
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: 'PLSQL ObjectType'
+            itemValue: classMenuNewPLSQLObjectType
+            translateLabel: true
+            isVisible: isPlsqlMetaclassPresent
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -8380,39 +8642,39 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: '-'
-	    isVisible: isRubyMetaclassPresent
-	  )
-	 (MenuItem
-	    label: 'Ruby class'
-	    itemValue: classMenuNewRubyClass
-	    translateLabel: true
-	    isVisible: isRubyMetaclassPresent
-	    labelImage: (ResourceRetriever ToolbarIconLibrary rubyClassBrowserIcon 'Ruby class')
-	  )
-	 (MenuItem
-	    label: 'Ruby...'
-	    translateLabel: true
-	    isVisible: isRubyMetaclassPresent
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  label: 'Module'
-		  itemValue: classMenuNewRubyModule
-		  translateLabel: true
-		  isVisible: isRubyMetaclassPresent
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: '-'
+            isVisible: isRubyMetaclassPresent
+          )
+         (MenuItem
+            label: 'Ruby class'
+            itemValue: classMenuNewRubyClass
+            translateLabel: true
+            isVisible: isRubyMetaclassPresent
+            labelImage: (ResourceRetriever ToolbarIconLibrary rubyClassBrowserIcon 'Ruby class')
+          )
+         (MenuItem
+            label: 'Ruby...'
+            translateLabel: true
+            isVisible: isRubyMetaclassPresent
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  label: 'Module'
+                  itemValue: classMenuNewRubyModule
+                  translateLabel: true
+                  isVisible: isRubyMetaclassPresent
+                )
+               )
+              nil
+              nil
+            )
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -8433,80 +8695,80 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'Class'
-	    itemValue: classMenuNewClass
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedHolder
-	    label: 'Subclass'
-	    itemValue: classMenuNewSubclass
-	  )
-	 (MenuItem
-	    label: 'Application'
-	    itemValue: classMenuNewApplication
-	  )
-	 (MenuItem
-	    label: 'TestCase'
-	    itemValue: classMenuNewTestCase
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Smalltalk Class Slice'
-	    nameKey: classNewSmalltalkSlice
-	    submenuChannel: classNewSmalltalkSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: 'Ruby Class Slice'
-	    nameKey: classNewRubyClassSlice
-	    submenuChannel: classNewRubyClassSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: 'JavaScript Class Slice'
-	    nameKey: classNewJavaScriptClassSlice
-	    submenuChannel: classNewJavaScriptClassSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: 'Lisp Class Slice'
-	    nameKey: classNewLispClassSlice
-	    submenuChannel: classNewLispClassSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: 'Haskell Class Slice'
-	    nameKey: classNewHaskellClassSlice
-	    submenuChannel: classNewHaskellClassSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: 'PLSQL Class Slice'
-	    nameKey: classNewPLSQLClassSlice
-	    submenuChannel: classNewPLSQLClassSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: 'Other New Class Slice'
-	    nameKey: classOtherClassNewSlice
-	    submenuChannel: classOtherClassNewSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Class Wizard...'
-	    itemValue: classMenuOpenClassCreationWizard
-	    labelImage: (ResourceRetriever ToolbarIconLibrary newClassWizardIcon 'Class Wizard...')
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: 'Class'
+            itemValue: classMenuNewClass
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedHolder
+            label: 'Subclass'
+            itemValue: classMenuNewSubclass
+          )
+         (MenuItem
+            label: 'Application'
+            itemValue: classMenuNewApplication
+          )
+         (MenuItem
+            label: 'TestCase'
+            itemValue: classMenuNewTestCase
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Smalltalk Class Slice'
+            nameKey: classNewSmalltalkSlice
+            submenuChannel: classNewSmalltalkSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: 'Ruby Class Slice'
+            nameKey: classNewRubyClassSlice
+            submenuChannel: classNewRubyClassSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: 'JavaScript Class Slice'
+            nameKey: classNewJavaScriptClassSlice
+            submenuChannel: classNewJavaScriptClassSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: 'Lisp Class Slice'
+            nameKey: classNewLispClassSlice
+            submenuChannel: classNewLispClassSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: 'Haskell Class Slice'
+            nameKey: classNewHaskellClassSlice
+            submenuChannel: classNewHaskellClassSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: 'PLSQL Class Slice'
+            nameKey: classNewPLSQLClassSlice
+            submenuChannel: classNewPLSQLClassSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: 'Other New Class Slice'
+            nameKey: classOtherClassNewSlice
+            submenuChannel: classOtherClassNewSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Class Wizard...'
+            itemValue: classMenuOpenClassCreationWizard
+            labelImage: (ResourceRetriever ToolbarIconLibrary newClassWizardIcon 'Class Wizard...')
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -8527,68 +8789,68 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'Smalltalk Class'
-	    itemValue: classMenuNewSmalltalkClass
-	  )
-	 (MenuItem
-	    label: 'Smalltalk...'
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasSingleLoadedNonJavascriptClassSelectedHolder
-		  label: 'Private Class'
-		  itemValue: classMenuNewPrivateClass
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'Dialog'
-		  itemValue: classMenuNewDialog
-		)
-	       (MenuItem
-		  label: 'WebService'
-		  itemValue: classMenuNewWebService
-		)
-	       (MenuItem
-		  label: 'WebApplication'
-		  itemValue: classMenuNewWebApplication
-		  isVisible: false
-		)
-	       (MenuItem
-		  label: 'Widget (View)'
-		  itemValue: classMenuNewWidgetClass
-		)
-	       (MenuItem
-		  label: 'Standalone Startup'
-		  itemValue: classMenuNewStandaloneStartupClass
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'Error'
-		  itemValue: classMenuNewError
-		)
-	       (MenuItem
-		  label: 'Notification'
-		  itemValue: classMenuNewNotification
-		)
-	       (MenuItem
-		  label: 'Shared Pool'
-		  itemValue: classMenuNewSharedPool
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: 'Smalltalk Class'
+            itemValue: classMenuNewSmalltalkClass
+          )
+         (MenuItem
+            label: 'Smalltalk...'
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasSingleLoadedNonJavascriptClassSelectedHolder
+                  label: 'Private Class'
+                  itemValue: classMenuNewPrivateClass
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'Dialog'
+                  itemValue: classMenuNewDialog
+                )
+               (MenuItem
+                  label: 'WebService'
+                  itemValue: classMenuNewWebService
+                )
+               (MenuItem
+                  label: 'WebApplication'
+                  itemValue: classMenuNewWebApplication
+                  isVisible: false
+                )
+               (MenuItem
+                  label: 'Widget (View)'
+                  itemValue: classMenuNewWidgetClass
+                )
+               (MenuItem
+                  label: 'Standalone Startup'
+                  itemValue: classMenuNewStandaloneStartupClass
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'Error'
+                  itemValue: classMenuNewError
+                )
+               (MenuItem
+                  label: 'Notification'
+                  itemValue: classMenuNewNotification
+                )
+               (MenuItem
+                  label: 'Shared Pool'
+                  itemValue: classMenuNewSharedPool
+                )
+               )
+              nil
+              nil
+            )
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -8609,28 +8871,28 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasSharedPoolSelectedHolder
-	    label: 'References...'
-	    itemValue: variablesMenuBrowseAllPoolVarRefs
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSharedPoolSelectedHolder
-	    label: 'Readers...'
-	    itemValue: variablesMenuBrowseAllPoolVarReads
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSharedPoolSelectedHolder
-	    label: 'Writers...'
-	    itemValue: variablesMenuBrowseAllPoolVarMods
-	    showBusyCursorWhilePerforming: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasSharedPoolSelectedHolder
+            label: 'References...'
+            itemValue: variablesMenuBrowseAllPoolVarRefs
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSharedPoolSelectedHolder
+            label: 'Readers...'
+            itemValue: variablesMenuBrowseAllPoolVarReads
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSharedPoolSelectedHolder
+            label: 'Writers...'
+            itemValue: variablesMenuBrowseAllPoolVarMods
+            showBusyCursorWhilePerforming: true
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -8650,16 +8912,16 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'Compare with Version On Host'
-	    translateLabel: true
-	    submenuChannel: compareClassWithSmallTeamVersionMenu
-	    keepLinkedMenu: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: 'Compare with Version On Host'
+            translateLabel: true
+            submenuChannel: compareClassWithSmallTeamVersionMenu
+            keepLinkedMenu: true
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -8680,129 +8942,129 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Remove from ChangeSet'
-	    itemValue: classMenuCleanUpChangeSet
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Entries in ChangeSet'
-	    itemValue: classMenuShowEntriesInChangeSet
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasAnyUnloadedClassSelectedHolder
-	    label: 'Load'
-	    itemValue: classMenuLoad
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectDefinitionWithAnyUnloadedClassSelectedHolder
-	    label: 'Load Project'
-	    itemValue: classMenuLoadProject
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Unload'
-	    itemValue: classMenuUnload
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Initialize Class(es)'
-	    itemValue: classMenuInitialize
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Compile Lazy Methods'
-	    itemValue: classMenuCompileLazyMethods
-	    isVisible: false
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Load Sources'
-	    itemValue: classMenuLoadSources
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Reload'
-	    itemValue: classMenuReload
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedWhichCanBeIncludedInProjectHolder
-	    label: 'Include in Project as Compiled Class'
-	    itemValue: classMenuIncludeInProject
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedWhichCanBeMadeAutoloadedInProject
-	    label: 'Include in Project as Autoloaded Class'
-	    itemValue: classMenuMakeAutoloadedInProject
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedWhichCanBeExcludedFromProject
-	    label: 'Exclude from Project'
-	    itemValue: classMenuExcludeFromProject
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasSingleLoadedClassSelectedHolder
-	    label: 'Primitive Definitions'
-	    itemValue: classMenuPrimitiveDefinitions
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleLoadedClassSelectedHolder
-	    label: 'Primitive Functions'
-	    itemValue: classMenuPrimitiveFunctions
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleLoadedClassSelectedHolder
-	    label: 'Primitive Variables'
-	    itemValue: classMenuPrimitiveVariables
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasSingleLoadedClassSelectedHolder
-	    label: 'Edit Resource File(s)...'
-	    itemValue: classMenuEditResourceFiles
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Do...'
-	    itemValue: classMenuDoUserProvidedAction
-	  )
-	 (MenuItem
-	    label: 'Special ClassOPS'
-	    submenuChannel: classOperationsMenu
-	    isMenuSlice: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Remove from ChangeSet'
+            itemValue: classMenuCleanUpChangeSet
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Entries in ChangeSet'
+            itemValue: classMenuShowEntriesInChangeSet
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasAnyUnloadedClassSelectedHolder
+            label: 'Load'
+            itemValue: classMenuLoad
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasProjectDefinitionWithAnyUnloadedClassSelectedHolder
+            label: 'Load Project'
+            itemValue: classMenuLoadProject
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Unload'
+            itemValue: classMenuUnload
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Initialize Class(es)'
+            itemValue: classMenuInitialize
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Compile Lazy Methods'
+            itemValue: classMenuCompileLazyMethods
+            isVisible: false
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Load Sources'
+            itemValue: classMenuLoadSources
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Reload'
+            itemValue: classMenuReload
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasClassSelectedWhichCanBeIncludedInProjectHolder
+            label: 'Include in Project as Compiled Class'
+            itemValue: classMenuIncludeInProject
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasClassSelectedWhichCanBeMadeAutoloadedInProject
+            label: 'Include in Project as Autoloaded Class'
+            itemValue: classMenuMakeAutoloadedInProject
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasClassSelectedWhichCanBeExcludedFromProject
+            label: 'Exclude from Project'
+            itemValue: classMenuExcludeFromProject
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasSingleLoadedClassSelectedHolder
+            label: 'Primitive Definitions'
+            itemValue: classMenuPrimitiveDefinitions
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleLoadedClassSelectedHolder
+            label: 'Primitive Functions'
+            itemValue: classMenuPrimitiveFunctions
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleLoadedClassSelectedHolder
+            label: 'Primitive Variables'
+            itemValue: classMenuPrimitiveVariables
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasSingleLoadedClassSelectedHolder
+            label: 'Edit Resource File(s)...'
+            itemValue: classMenuEditResourceFiles
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Do...'
+            itemValue: classMenuDoUserProvidedAction
+          )
+         (MenuItem
+            label: 'Special ClassOPS'
+            submenuChannel: classOperationsMenu
+            isMenuSlice: true
+          )
+         )
+        nil
+        nil
       )
 
     "Modified: / 26-07-2012 / 11:48:32 / cg"
@@ -8824,149 +9086,161 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: canUseRefactoringSupport
-	    label: 'Variables'
-	    translateLabel: true
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasTemporaryVariableSelectedInCodeViewHolder
-		  label: 'Rename Local Variable...'
-		  itemValue: codeMenuRenameTemporary
-		  translateLabel: true
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasTemporaryVariableSelectedInCodeViewHolder
-		  label: 'Move to Inner Scope...'
-		  itemValue: codeMenuMoveVariableToInnerScope
-		  translateLabel: true
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasTemporaryVariableSelectedInCodeViewHolder
-		  label: 'Make Instance Variable'
-		  itemValue: codeMenuMakeInstanceVariable
-		  translateLabel: true
-		  isVisible: hasNotMultipleTemporaryVariablesSelectedInCodeViewHolder
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasMultipleTemporaryVariablesSelectedInCodeViewHolder
-		  label: 'Make Instance Variables'
-		  itemValue: codeMenuMakeInstanceVariable
-		  translateLabel: true
-		  isVisible: hasMultipleTemporaryVariablesSelectedInCodeViewHolder
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasUndefinedUppercaseIdentifierSelectedInCodeViewHolder
-		  label: 'Declare as Class Variable'
-		  itemValue: codeMenuDeclareSelectionAsClassVariable
-		  translateLabel: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    enabled: hasLiteralConstantSelectedInCodeViewHolder
-	    label: 'Eliminate Constant...'
-	    itemValue: codeMenuEliminateConstant
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasSingleMethodSelectedAndSelectionInCodeViewAndCanUseRefactoringSupportHolder
-	    label: 'Inline Message'
-	    itemValue: codeMenuInlineMessage
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleMethodSelectedAndSelectionInCodeViewAndCanUseRefactoringSupportHolder
-	    label: 'Extract Selection to Temporary...'
-	    itemValue: codeMenuExtractSelectionToTemporary
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleMethodSelectedAndSelectionInCodeViewAndCanUseRefactoringSupportHolder
-	    label: 'Extract Method...'
-	    itemValue: codeMenuExtractMethod
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleMethodSelectedAndSelectionInCodeViewAndCanUseRefactoringSupportHolder
-	    label: 'Extract Method to Component...'
-	    itemValue: codeMenuExtractMethodToComponent
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasSingleMethodSelectedAndCanUseRefactoringSupportHolder
-	    label: 'Add Parameter to Method...'
-	    itemValue: codeMenuAddParameter
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleMethodSelectedAndSelectionInCodeViewAndSingleSelectedMethodHasParameterAndCanUseRefactoringSupportHolder
-	    label: 'Inline Parameter of Method'
-	    itemValue: codeMenuInlineParameter
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleMethodSelectedAndSelectionInCodeViewAndSingleSelectedMethodHasParameterAndCanUseRefactoringSupportHolder
-	    label: 'Remove Parameter from Method'
-	    itemValue: codeMenuRemoveParameter
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasSingleMethodSelectedAndCanUseRefactoringSupportHolder
-	    label: 'Format'
-	    itemValue: codeMenuFormat
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: canLoadRefactoringSupport
-	  )
-	 (MenuItem
-	    label: 'Load Refactoring and Undo Features'
-	    itemValue: doLoadRefactoringSupport
-	    translateLabel: true
-	    isVisible: canLoadRefactoringSupport
-	    showBusyCursorWhilePerforming: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: canUseRefactoringSupport
+            label: 'Variables'
+            translateLabel: true
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasTemporaryVariableSelectedInCodeViewHolder
+                  label: 'Rename Local Variable...'
+                  itemValue: codeMenuRenameTemporary
+                  translateLabel: true
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasTemporaryVariableSelectedInCodeViewHolder
+                  label: 'Move to Inner Scope...'
+                  itemValue: codeMenuMoveVariableToInnerScope
+                  translateLabel: true
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasTemporaryVariableSelectedInCodeViewHolder
+                  label: 'Make Instance Variable'
+                  itemValue: codeMenuMakeInstanceVariable
+                  translateLabel: true
+                  isVisible: hasNotMultipleTemporaryVariablesSelectedInCodeViewHolder
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasMultipleTemporaryVariablesSelectedInCodeViewHolder
+                  label: 'Make Instance Variables'
+                  itemValue: codeMenuMakeInstanceVariable
+                  translateLabel: true
+                  isVisible: hasMultipleTemporaryVariablesSelectedInCodeViewHolder
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasUndefinedUppercaseIdentifierSelectedInCodeViewHolder
+                  label: 'Declare as Class Variable'
+                  itemValue: codeMenuDeclareSelectionAsClassVariable
+                  translateLabel: true
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            enabled: hasLiteralConstantSelectedInCodeViewHolder
+            label: 'Eliminate Constant...'
+            itemValue: codeMenuEliminateConstant
+            translateLabel: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasSingleMethodSelectedAndSelectionInCodeViewAndCanUseRefactoringSupportHolder
+            label: 'Inline Message'
+            itemValue: codeMenuInlineMessage
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleMethodSelectedAndSelectionInCodeViewAndCanUseRefactoringSupportHolder
+            label: 'Extract Selection to Temporary...'
+            itemValue: codeMenuExtractSelectionToTemporary
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleMethodSelectedAndSelectionInCodeViewAndCanUseRefactoringSupportHolder
+            label: 'Extract Method...'
+            itemValue: codeMenuExtractMethod
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleMethodSelectedAndSelectionInCodeViewAndCanUseRefactoringSupportHolder
+            label: 'Extract Method to Component...'
+            itemValue: codeMenuExtractMethodToComponent
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasSingleMethodSelectedAndCanUseRefactoringSupportHolder
+            label: 'Add Parameter to Method...'
+            itemValue: codeMenuAddParameter
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleMethodSelectedAndSelectionInCodeViewAndSingleSelectedMethodHasParameterAndCanUseRefactoringSupportHolder
+            label: 'Inline Parameter of Method'
+            itemValue: codeMenuInlineParameter
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleMethodSelectedAndSelectionInCodeViewAndSingleSelectedMethodHasParameterAndCanUseRefactoringSupportHolder
+            label: 'Remove Parameter from Method'
+            itemValue: codeMenuRemoveParameter
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasSingleMethodSelectedAndCanUseRefactoringSupportHolder
+            label: 'Format'
+            itemValue: codeMenuFormat
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: 'Search && Rewrite...'
+            itemValue: selectorMenuRewrite
+            translateLabel: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Remember a Code Smell'
+            submenuChannel: smellsMenu
+          )
+         (MenuItem
+            label: '-'
+            isVisible: canLoadRefactoringSupport
+          )
+         (MenuItem
+            label: 'Load Refactoring and Undo Features'
+            itemValue: doLoadRefactoringSupport
+            translateLabel: true
+            isVisible: canLoadRefactoringSupport
+            showBusyCursorWhilePerforming: true
+          )
+         )
+        nil
+        nil
       )
 
     "Modified: / 04-07-2011 / 17:51:17 / cg"
@@ -8988,121 +9262,121 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasSingleProjectOrProjectDefinitionSelected
-	    label: 'bc.mak'
-	    itemValue: projectMenuShowGeneratedBuildFile:
-	    translateLabel: true
-	    argument: 'bc.mak'
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleProjectOrProjectDefinitionSelected
-	    label: 'Make.proto'
-	    itemValue: projectMenuShowGeneratedBuildFile:
-	    translateLabel: true
-	    argument: 'Make.proto'
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleProjectOrProjectDefinitionSelected
-	    label: 'Make.spec'
-	    itemValue: projectMenuShowGeneratedBuildFile:
-	    translateLabel: true
-	    argument: 'Make.spec'
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasSingleProjectOrProjectDefinitionSelected
-	    label: 'app.nsi'
-	    itemValue: projectMenuShowGeneratedBuildFile:
-	    translateLabel: true
-	    argument: 'app.nsi'
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleProjectOrProjectDefinitionSelected
-	    label: 'abbrev.stc'
-	    itemValue: projectMenuShowGeneratedBuildFile:
-	    translateLabel: true
-	    argument: 'abbrev.stc'
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleProjectOrProjectDefinitionSelected
-	    label: 'libInit.cc'
-	    itemValue: projectMenuShowGeneratedBuildFile:
-	    translateLabel: true
-	    argument: 'libInit.cc'
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleProjectOrProjectDefinitionSelected
-	    label: 'lib.rc / app.rc'
-	    itemValue: projectMenuShowGeneratedBuildFile:
-	    translateLabel: true
-	    argument: 'lib.rc'
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleProjectOrProjectDefinitionSelected
-	    label: 'loadAll'
-	    itemValue: projectMenuShowGeneratedBuildFile:
-	    translateLabel: true
-	    argument: 'loadAll'
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleProjectOrProjectDefinitionSelected
-	    label: 'modules.stx'
-	    itemValue: projectMenuShowGeneratedBuildFile:
-	    translateLabel: true
-	    argument: 'modules.stx'
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasSingleProjectOrProjectDefinitionSelected
-	    label: 'bmake.bat'
-	    itemValue: projectMenuShowGeneratedBuildFile:
-	    translateLabel: true
-	    argument: 'bmake.bat'
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleProjectOrProjectDefinitionSelected
-	    isVisible: false
-	    label: 'tccmake.bat'
-	    itemValue: projectMenuShowGeneratedBuildFile:
-	    translateLabel: true
-	    argument: 'tccmake.bat'
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleProjectOrProjectDefinitionSelected
-	    label: 'vcmake.bat'
-	    itemValue: projectMenuShowGeneratedBuildFile:
-	    translateLabel: true
-	    argument: 'vcmake.bat'
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleProjectOrProjectDefinitionSelected
-	    label: 'mingwmake.bat'
-	    itemValue: projectMenuShowGeneratedBuildFile:
-	    translateLabel: true
-	    argument: 'mingwmake.bat'
-	    showBusyCursorWhilePerforming: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasSingleProjectOrProjectDefinitionSelected
+            label: 'bc.mak'
+            itemValue: projectMenuShowGeneratedBuildFile:
+            translateLabel: true
+            argument: 'bc.mak'
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleProjectOrProjectDefinitionSelected
+            label: 'Make.proto'
+            itemValue: projectMenuShowGeneratedBuildFile:
+            translateLabel: true
+            argument: 'Make.proto'
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleProjectOrProjectDefinitionSelected
+            label: 'Make.spec'
+            itemValue: projectMenuShowGeneratedBuildFile:
+            translateLabel: true
+            argument: 'Make.spec'
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasSingleProjectOrProjectDefinitionSelected
+            label: 'app.nsi'
+            itemValue: projectMenuShowGeneratedBuildFile:
+            translateLabel: true
+            argument: 'app.nsi'
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleProjectOrProjectDefinitionSelected
+            label: 'abbrev.stc'
+            itemValue: projectMenuShowGeneratedBuildFile:
+            translateLabel: true
+            argument: 'abbrev.stc'
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleProjectOrProjectDefinitionSelected
+            label: 'libInit.cc'
+            itemValue: projectMenuShowGeneratedBuildFile:
+            translateLabel: true
+            argument: 'libInit.cc'
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleProjectOrProjectDefinitionSelected
+            label: 'lib.rc / app.rc'
+            itemValue: projectMenuShowGeneratedBuildFile:
+            translateLabel: true
+            argument: 'lib.rc'
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleProjectOrProjectDefinitionSelected
+            label: 'loadAll'
+            itemValue: projectMenuShowGeneratedBuildFile:
+            translateLabel: true
+            argument: 'loadAll'
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleProjectOrProjectDefinitionSelected
+            label: 'modules.stx'
+            itemValue: projectMenuShowGeneratedBuildFile:
+            translateLabel: true
+            argument: 'modules.stx'
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasSingleProjectOrProjectDefinitionSelected
+            label: 'bmake.bat'
+            itemValue: projectMenuShowGeneratedBuildFile:
+            translateLabel: true
+            argument: 'bmake.bat'
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleProjectOrProjectDefinitionSelected
+            isVisible: false
+            label: 'tccmake.bat'
+            itemValue: projectMenuShowGeneratedBuildFile:
+            translateLabel: true
+            argument: 'tccmake.bat'
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleProjectOrProjectDefinitionSelected
+            label: 'vcmake.bat'
+            itemValue: projectMenuShowGeneratedBuildFile:
+            translateLabel: true
+            argument: 'vcmake.bat'
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleProjectOrProjectDefinitionSelected
+            label: 'mingwmake.bat'
+            itemValue: projectMenuShowGeneratedBuildFile:
+            translateLabel: true
+            argument: 'mingwmake.bat'
+            showBusyCursorWhilePerforming: true
+          )
+         )
+        nil
+        nil
       )
 
     "Modified: / 04-09-2012 / 13:13:55 / cg"
@@ -9124,33 +9398,33 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'Insert'
-	    itemValue: editModeInsert
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    label: 'Overwrite'
-	    itemValue: editModeOverwrite
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    label: 'Insert Selecting'
-	    itemValue: editModeInsertAndSelect
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Learn Macro'
-	    itemValue: toggleLearnMode
-	    translateLabel: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: 'Insert'
+            itemValue: editModeInsert
+            translateLabel: true
+          )
+         (MenuItem
+            label: 'Overwrite'
+            itemValue: editModeOverwrite
+            translateLabel: true
+          )
+         (MenuItem
+            label: 'Insert Selecting'
+            itemValue: editModeInsertAndSelect
+            translateLabel: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Learn Macro'
+            itemValue: toggleLearnMode
+            translateLabel: true
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -9170,23 +9444,23 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'Navigate to Selected Class'
-	    itemValue: inheritanceMenuNavigateToClass
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Update'
-	    itemValue: inheritanceMenuUpdate
-	    translateLabel: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: 'Navigate to Selected Class'
+            itemValue: inheritanceMenuNavigateToClass
+            translateLabel: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Update'
+            itemValue: inheritanceMenuUpdate
+            translateLabel: true
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -9206,41 +9480,41 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'All'
-	    itemValue: classMenuCheckAll
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Errors'
-	    itemValue: classMenuCheckErrors
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    label: 'Possible Errors'
-	    itemValue: classMenuCheckWarnings
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    label: 'Style'
-	    itemValue: classMenuCheckStyle
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Individual Checks...'
-	    itemValue: classMenuCheckIndividual
-	    translateLabel: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: 'All'
+            itemValue: classMenuCheckAll
+            translateLabel: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Errors'
+            itemValue: classMenuCheckErrors
+            translateLabel: true
+          )
+         (MenuItem
+            label: 'Possible Errors'
+            itemValue: classMenuCheckWarnings
+            translateLabel: true
+          )
+         (MenuItem
+            label: 'Style'
+            itemValue: classMenuCheckStyle
+            translateLabel: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Individual Checks...'
+            itemValue: classMenuCheckIndividual
+            translateLabel: true
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -9261,135 +9535,135 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'B&uffers'
-	    submenuChannel: bufferMenu
-	  )
-	 (MenuItem
-	    label: 'Browse'
-	    submenuChannel: browseMenu
-	  )
-	 (MenuItem
-	    label: 'Find'
-	    isVisible: searchMenuVisible
-	    submenuChannel: searchMenu
-	  )
-	 (MenuItem
-	    label: 'Find'
-	    isVisible: searchMenuInMethodListVisible
-	    submenuChannel: searchMenuInMethodList
-	  )
-	 (MenuItem
-	    label: 'View'
-	    isVisible: viewMenuVisible
-	    submenuChannel: viewMenu
-	    keepLinkedMenu: true
-	  )
-	 (MenuItem
-	    label: 'View'
-	    isVisible: viewMenuForMethodListVisible
-	    submenuChannel: viewMenuForMethodList
-	    keepLinkedMenu: true
-	  )
-	 (MenuItem
-	    label: 'Package'
-	    isVisible: projectMenuVisible
-	    submenuChannel: projectMenu
-	  )
-	 (MenuItem
-	    label: 'Namespace'
-	    isVisible: nameSpaceMenuVisible
-	    submenuChannel: nameSpaceMenu
-	  )
-	 (MenuItem
-	    label: 'Category'
-	    isVisible: categoryMenuVisible
-	    submenuChannel: categoryMenu
-	  )
-	 (MenuItem
-	    label: 'Hierarchy'
-	    isVisible: classHierarchyMenuVisible
-	    submenuChannel: classHierarchyMenu
-	  )
-	 (MenuItem
-	    label: 'Class'
-	    isVisible: classMenuVisible
-	    submenuChannel: classMenu
-	  )
-	 (MenuItem
-	    label: 'Variable'
-	    isVisible: variablesMenuVisible
-	    submenuChannel: variablesMenu
-	  )
-	 (MenuItem
-	    label: 'Protocol'
-	    isVisible: protocolMenuVisible
-	    submenuChannel: protocolMenu
-	  )
-	 (MenuItem
-	    label: 'Selector'
-	    isVisible: selectorMenuVisible
-	    submenuChannel: selectorMenu
-	  )
-	 (MenuItem
-	    label: 'Code'
-	    isVisible: codeMenuVisible
-	    submenuChannel: codeMenu
-	  )
-	 (MenuItem
-	    label: 'Debug'
-	    isVisible: selectorMenuVisible
-	    submenuChannel: methodDebugMenu
-	  )
-	 (MenuItem
-	    label: 'Operations'
-	    submenuChannel: operationsMenu
-	  )
-	 (MenuItem
-	    label: 'MENU_Help'
-	    startGroup: conditionalRight
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  label: 'Browser Documentation'
-		  itemValue: openDocumentation
-		)
-	       (MenuItem
-		  label: 'Refactorings'
-		  itemValue: openRefactoringDocumentation
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'Class Documentation'
-		  itemValue: openClassDocumentation
-		)
-	       (MenuItem
-		  label: 'ST/X Documentation'
-		  itemValue: openSTXDocumentation
-		)
-	       (MenuItem
-		  label: 'Keyword Index'
-		  itemValue: openKeywordIndexDocumentation
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'About SystemBrowser...'
-		  itemValue: openAboutThisApplication
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: 'B&uffers'
+            submenuChannel: bufferMenu
+          )
+         (MenuItem
+            label: 'Browse'
+            submenuChannel: browseMenu
+          )
+         (MenuItem
+            label: 'Find'
+            isVisible: searchMenuVisible
+            submenuChannel: searchMenu
+          )
+         (MenuItem
+            label: 'Find'
+            isVisible: searchMenuInMethodListVisible
+            submenuChannel: searchMenuInMethodList
+          )
+         (MenuItem
+            label: 'View'
+            isVisible: viewMenuVisible
+            submenuChannel: viewMenu
+            keepLinkedMenu: true
+          )
+         (MenuItem
+            label: 'View'
+            isVisible: viewMenuForMethodListVisible
+            submenuChannel: viewMenuForMethodList
+            keepLinkedMenu: true
+          )
+         (MenuItem
+            label: 'Package'
+            isVisible: projectMenuVisible
+            submenuChannel: projectMenu
+          )
+         (MenuItem
+            label: 'Namespace'
+            isVisible: nameSpaceMenuVisible
+            submenuChannel: nameSpaceMenu
+          )
+         (MenuItem
+            label: 'Category'
+            isVisible: categoryMenuVisible
+            submenuChannel: categoryMenu
+          )
+         (MenuItem
+            label: 'Hierarchy'
+            isVisible: classHierarchyMenuVisible
+            submenuChannel: classHierarchyMenu
+          )
+         (MenuItem
+            label: 'Class'
+            isVisible: classMenuVisible
+            submenuChannel: classMenu
+          )
+         (MenuItem
+            label: 'Variable'
+            isVisible: variablesMenuVisible
+            submenuChannel: variablesMenu
+          )
+         (MenuItem
+            label: 'Protocol'
+            isVisible: protocolMenuVisible
+            submenuChannel: protocolMenu
+          )
+         (MenuItem
+            label: 'Selector'
+            isVisible: selectorMenuVisible
+            submenuChannel: selectorMenu
+          )
+         (MenuItem
+            label: 'Code'
+            isVisible: codeMenuVisible
+            submenuChannel: codeMenu
+          )
+         (MenuItem
+            label: 'Debug'
+            isVisible: selectorMenuVisible
+            submenuChannel: methodDebugMenu
+          )
+         (MenuItem
+            label: 'Operations'
+            submenuChannel: operationsMenu
+          )
+         (MenuItem
+            label: 'MENU_Help'
+            startGroup: conditionalRight
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  label: 'Browser Documentation'
+                  itemValue: openDocumentation
+                )
+               (MenuItem
+                  label: 'Refactorings'
+                  itemValue: openRefactoringDocumentation
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'Class Documentation'
+                  itemValue: openClassDocumentation
+                )
+               (MenuItem
+                  label: 'ST/X Documentation'
+                  itemValue: openSTXDocumentation
+                )
+               (MenuItem
+                  label: 'Keyword Index'
+                  itemValue: openKeywordIndexDocumentation
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'About SystemBrowser...'
+                  itemValue: openAboutThisApplication
+                )
+               )
+              nil
+              nil
+            )
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -9410,206 +9684,206 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasMethodWithWrapSelectedHolder
-	    label: 'Remove Break/Trace'
-	    itemValue: debugMenuRemoveBreakOrTrace
-	    isVisible: hasNoMethodOrMixedWrapsSelectedHolder
-	  )
-	 (MenuItem
-	    enabled: hasMethodWithBreakPointSelectedHolder
-	    label: 'Remove Break'
-	    itemValue: debugMenuRemoveBreakOrTrace
-	    isVisible: hasOnlyMethodsWithBreakPointSelected
-	  )
-	 (MenuItem
-	    enabled: hasMethodWithTracePointSelectedHolder
-	    label: 'Remove Trace'
-	    itemValue: debugMenuRemoveBreakOrTrace
-	    isVisible: hasOnlyMethodsWithTracePointSelected
-	  )
-	 (MenuItem
-	    enabled: anyBreakOrTracePointsAreSetHolder
-	    label: 'Remove all Break- && Tracepoints'
-	    itemValue: debugMenuRemoveAllBreakpoints
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasMethodSelectedHolder
-	    label: 'Breakpoint'
-	    itemValue: debugMenuBreakPoint
-	  )
-	 (MenuItem
-	    enabled: hasMethodSelectedHolder
-	    label: 'Breakpoint in Process...'
-	    itemValue: debugMenuBreakPointIn
-	  )
-	 (MenuItem
-	    enabled: hasMethodSelectedHolder
-	    label: 'Breakpoint for Instances Of...'
-	    itemValue: debugMenuBreakPointFor
-	  )
-	 (MenuItem
-	    enabled: hasMethodSelectedHolder
-	    label: 'Breakpoint After...'
-	    itemValue: debugMenuBreakPointAfter
-	  )
-	 (MenuItem
-	    enabled: hasMethodSelectedHolder
-	    label: 'Breakpoint If...'
-	    itemValue: debugMenuBreakPointIf
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasMethodSelectedHolder
-	    label: 'Trace'
-	    itemValue: debugMenuTrace
-	  )
-	 (MenuItem
-	    enabled: hasMethodSelectedHolder
-	    label: 'Trace Sender'
-	    itemValue: debugMenuTraceSender
-	  )
-	 (MenuItem
-	    enabled: hasMethodSelectedHolder
-	    label: 'Trace Full Walkback'
-	    itemValue: debugMenuTraceFullWalkback
-	  )
-	 (MenuItem
-	    enabled: hasUpdateMethodSelectedHolder
-	    label: 'Trace Change->Update Reason'
-	    itemValue: debugMenuTraceChangeUpdate
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasMethodSelectedHolder
-	    label: 'Tracelog'
-	    itemValue: debugMenuTracelog
-	  )
-	 (MenuItem
-	    enabled: hasMethodSelectedHolder
-	    label: 'Tracelog Sender'
-	    itemValue: debugMenuTracelogSender
-	  )
-	 (MenuItem
-	    enabled: hasMethodSelectedHolder
-	    label: 'Tracelog Full Walkback'
-	    itemValue: debugMenuTracelogFullWalkback
-	  )
-	 (MenuItem
-	    enabled: hasUpdateMethodSelectedHolder
-	    label: 'Tracelog Change->Update Reason'
-	    itemValue: debugMenuTracelogChangeUpdate
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasMethodSelectedHolder
-	    label: 'Start Message Tally'
-	    itemValue: debugMenuStartMessageTally
-	    isVisible: false
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: false
-	  )
-	 (MenuItem
-	    enabled: hasMethodSelectedHolder
-	    label: 'Start Timing'
-	    itemValue: debugMenuStartTiming
-	  )
-	 (MenuItem
-	    enabled: hasMethodSelectedHolder
-	    label: 'Start Counting'
-	    itemValue: debugMenuStartCounting
-	  )
-	 (MenuItem
-	    enabled: hasMethodSelectedHolder
-	    label: 'Start Memory Usage'
-	    itemValue: debugMenuStartMemoryUsage
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasAnyTestCaseSelectedHolder
-	    label: 'Run Tests'
-	    itemValue: runTestCases
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasAnyTestCaseSelectedHolder
-	    label: 'Debug Tests'
-	    itemValue: runTestCasesWithDebug
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasAnyTestCaseSelectedHolder
-	    label: 'Run Tests for Coverage'
-	    itemValue: runTestCasesForCoverage
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasMethodSelectedAndInstrumentingCompilerExistsHolder
-	    label: 'Recompile Method(s) without Instrumentation'
-	    itemValue: selectorMenuRecompile
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasMethodSelectedAndInstrumentingCompilerExistsHolder
-	    label: 'Recompile Method(s) with Instrumentation'
-	    itemValue: debugMenuRecompileMethodsInstrumented
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedAndInstrumentingCompilerExistsHolder
-	    label: 'Recompile Class(es) with Instrumentation'
-	    itemValue: classMenuRecompileInstrumented
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndInstrumentingCompilerExistsHolder
-	    label: 'Recompile Project(s) with Instrumentation'
-	    itemValue: projectMenuRecompileInstrumented
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasMethodSelectedAndInstrumentingCompilerExistsAndOOMPackageLoadedHolder
-	    label: 'Call Graph'
-	    itemValue: debugMenuOpenCallGraphForMethods
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: 'Clear all Coverage Info (Systemwide)'
-	    itemValue: debugMenuClearCoverageInfo
-	  )
-	 (MenuItem
-	    label: 'Enable Global Coverage Recording (in all Processes)'
-	    itemValue: debugMenuEnableGlobalCoverageRecording
-	    isVisible: globalCoverageRecordingIsDisabled
-	  )
-	 (MenuItem
-	    label: 'Disable Global Coverage Recording (in all Processes)'
-	    itemValue: debugMenuDisableGlobalCoverageRecording
-	    isVisible: globalCoverageRecordingIsEnabled
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasMethodWithWrapSelectedHolder
+            label: 'Remove Break/Trace'
+            itemValue: debugMenuRemoveBreakOrTrace
+            isVisible: hasNoMethodOrMixedWrapsSelectedHolder
+          )
+         (MenuItem
+            enabled: hasMethodWithBreakPointSelectedHolder
+            label: 'Remove Break'
+            itemValue: debugMenuRemoveBreakOrTrace
+            isVisible: hasOnlyMethodsWithBreakPointSelected
+          )
+         (MenuItem
+            enabled: hasMethodWithTracePointSelectedHolder
+            label: 'Remove Trace'
+            itemValue: debugMenuRemoveBreakOrTrace
+            isVisible: hasOnlyMethodsWithTracePointSelected
+          )
+         (MenuItem
+            enabled: anyBreakOrTracePointsAreSetHolder
+            label: 'Remove all Break- && Tracepoints'
+            itemValue: debugMenuRemoveAllBreakpoints
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasMethodSelectedHolder
+            label: 'Breakpoint'
+            itemValue: debugMenuBreakPoint
+          )
+         (MenuItem
+            enabled: hasMethodSelectedHolder
+            label: 'Breakpoint in Process...'
+            itemValue: debugMenuBreakPointIn
+          )
+         (MenuItem
+            enabled: hasMethodSelectedHolder
+            label: 'Breakpoint for Instances Of...'
+            itemValue: debugMenuBreakPointFor
+          )
+         (MenuItem
+            enabled: hasMethodSelectedHolder
+            label: 'Breakpoint After...'
+            itemValue: debugMenuBreakPointAfter
+          )
+         (MenuItem
+            enabled: hasMethodSelectedHolder
+            label: 'Breakpoint If...'
+            itemValue: debugMenuBreakPointIf
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasMethodSelectedHolder
+            label: 'Trace'
+            itemValue: debugMenuTrace
+          )
+         (MenuItem
+            enabled: hasMethodSelectedHolder
+            label: 'Trace Sender'
+            itemValue: debugMenuTraceSender
+          )
+         (MenuItem
+            enabled: hasMethodSelectedHolder
+            label: 'Trace Full Walkback'
+            itemValue: debugMenuTraceFullWalkback
+          )
+         (MenuItem
+            enabled: hasUpdateMethodSelectedHolder
+            label: 'Trace Change->Update Reason'
+            itemValue: debugMenuTraceChangeUpdate
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasMethodSelectedHolder
+            label: 'Tracelog'
+            itemValue: debugMenuTracelog
+          )
+         (MenuItem
+            enabled: hasMethodSelectedHolder
+            label: 'Tracelog Sender'
+            itemValue: debugMenuTracelogSender
+          )
+         (MenuItem
+            enabled: hasMethodSelectedHolder
+            label: 'Tracelog Full Walkback'
+            itemValue: debugMenuTracelogFullWalkback
+          )
+         (MenuItem
+            enabled: hasUpdateMethodSelectedHolder
+            label: 'Tracelog Change->Update Reason'
+            itemValue: debugMenuTracelogChangeUpdate
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasMethodSelectedHolder
+            label: 'Start Message Tally'
+            itemValue: debugMenuStartMessageTally
+            isVisible: false
+          )
+         (MenuItem
+            label: '-'
+            isVisible: false
+          )
+         (MenuItem
+            enabled: hasMethodSelectedHolder
+            label: 'Start Timing'
+            itemValue: debugMenuStartTiming
+          )
+         (MenuItem
+            enabled: hasMethodSelectedHolder
+            label: 'Start Counting'
+            itemValue: debugMenuStartCounting
+          )
+         (MenuItem
+            enabled: hasMethodSelectedHolder
+            label: 'Start Memory Usage'
+            itemValue: debugMenuStartMemoryUsage
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasAnyTestCaseSelectedHolder
+            label: 'Run Tests'
+            itemValue: runTestCases
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasAnyTestCaseSelectedHolder
+            label: 'Debug Tests'
+            itemValue: runTestCasesWithDebug
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasAnyTestCaseSelectedHolder
+            label: 'Run Tests for Coverage'
+            itemValue: runTestCasesForCoverage
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasMethodSelectedAndInstrumentingCompilerExistsHolder
+            label: 'Recompile Method(s) without Instrumentation'
+            itemValue: selectorMenuRecompile
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasMethodSelectedAndInstrumentingCompilerExistsHolder
+            label: 'Recompile Method(s) with Instrumentation'
+            itemValue: debugMenuRecompileMethodsInstrumented
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasClassSelectedAndInstrumentingCompilerExistsHolder
+            label: 'Recompile Class(es) with Instrumentation'
+            itemValue: classMenuRecompileInstrumented
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndInstrumentingCompilerExistsHolder
+            label: 'Recompile Project(s) with Instrumentation'
+            itemValue: projectMenuRecompileInstrumented
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasMethodSelectedAndInstrumentingCompilerExistsAndOOMPackageLoadedHolder
+            label: 'Call Graph'
+            itemValue: debugMenuOpenCallGraphForMethods
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: 'Clear all Coverage Info (Systemwide)'
+            itemValue: debugMenuClearCoverageInfo
+          )
+         (MenuItem
+            label: 'Enable Global Coverage Recording (in all Processes)'
+            itemValue: debugMenuEnableGlobalCoverageRecording
+            isVisible: globalCoverageRecordingIsDisabled
+          )
+         (MenuItem
+            label: 'Disable Global Coverage Recording (in all Processes)'
+            itemValue: debugMenuDisableGlobalCoverageRecording
+            isVisible: globalCoverageRecordingIsEnabled
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -9629,60 +9903,60 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'FileOutPrintOutSlice'
-	    translateLabel: true
-	    submenuChannel: selectorMenuFileOutPrintOutSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'SpawnSlice'
-	    translateLabel: true
-	    submenuChannel: selectorMenuSpawnSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'SearchSlice'
-	    translateLabel: true
-	    submenuChannel: selectorMenuSearchSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'CopyMoveRemoveSlice'
-	    translateLabel: true
-	    submenuChannel: selectorMenuCopyMoveRemoveSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'CompareGenerateDebugSlice'
-	    translateLabel: true
-	    submenuChannel: selectorMenuCompareGenerateDebugSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Update'
-	    itemValue: methodListMenuUpdate
-	    translateLabel: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: 'FileOutPrintOutSlice'
+            translateLabel: true
+            submenuChannel: selectorMenuFileOutPrintOutSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'SpawnSlice'
+            translateLabel: true
+            submenuChannel: selectorMenuSpawnSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'SearchSlice'
+            translateLabel: true
+            submenuChannel: selectorMenuSearchSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'CopyMoveRemoveSlice'
+            translateLabel: true
+            submenuChannel: selectorMenuCopyMoveRemoveSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'CompareGenerateDebugSlice'
+            translateLabel: true
+            submenuChannel: selectorMenuCompareGenerateDebugSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Update'
+            itemValue: methodListMenuUpdate
+            translateLabel: true
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -9702,48 +9976,48 @@
 
     ^
      #(#Menu
-	#(
-	 #(#MenuItem
-	    #label: 'Add Parameter to Method...'
-	    #enabled: #hasSingleMethodSelectedAndCanUseRefactoringSupportHolder
-	    #translateLabel: true
-	    #value: #selectorMenuAddParameter
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: 'Inline Parameter of Method...'
-	    enabled: hasSingleMethodSelectedAndSingleSelectedMethodHasParameterAndCanUseRefactoringSupportHolder
-	    itemValue: selectorMenuInlineParameter
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 #(#MenuItem
-	    label: 'Remove Parameter from Method...'
-	    enabled: hasSingleMethodSelectedAndSingleSelectedMethodHasParameterAndCanUseRefactoringSupportHolder
-	    translateLabel: true
-	    value: #selectorMenuRemoveParameter
-	    showBusyCursorWhilePerforming: true
-	  )
-	       #(#MenuItem
-		  #label: '-'
-		)
-	 #(#MenuItem
-	    #label: 'Inline all self-Sends'
-	    #translateLabel: true
-	    #value: #selectorMenuInlineSelfSends
-	    #enabled: #hasSingleMethodSelectedAndCanUseRefactoringSupportHolder
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Search && Rewrite...'
-	    itemValue: selectorMenuRewrite
-	    translateLabel: true
-	  )
-	 )
-	nil
-	nil
+        #(
+         #(#MenuItem
+            #label: 'Add Parameter to Method...'
+            #enabled: #hasSingleMethodSelectedAndCanUseRefactoringSupportHolder
+            #translateLabel: true
+            #value: #selectorMenuAddParameter
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: 'Inline Parameter of Method...'
+            enabled: hasSingleMethodSelectedAndSingleSelectedMethodHasParameterAndCanUseRefactoringSupportHolder
+            itemValue: selectorMenuInlineParameter
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         #(#MenuItem
+            label: 'Remove Parameter from Method...'
+            enabled: hasSingleMethodSelectedAndSingleSelectedMethodHasParameterAndCanUseRefactoringSupportHolder
+            translateLabel: true
+            value: #selectorMenuRemoveParameter
+            showBusyCursorWhilePerforming: true
+          )
+               #(#MenuItem
+                  #label: '-'
+                )
+         #(#MenuItem
+            #label: 'Inline all self-Sends'
+            #translateLabel: true
+            #value: #selectorMenuInlineSelfSends
+            #enabled: #hasSingleMethodSelectedAndCanUseRefactoringSupportHolder
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Search && Rewrite...'
+            itemValue: selectorMenuRewrite
+            translateLabel: true
+          )
+         )
+        nil
+        nil
       )
 
     "Created: / 11-09-2007 / 11:43:37 / cg"
@@ -9765,116 +10039,116 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasNameSpaceSelectedAndSourceCodeManagerHolder
-	    label: 'CVS'
-	    translateLabel: true
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasNameSpaceSelectedAndSourceCodeManagerHolder
-		  label: 'CheckIn All...'
-		  itemValue: nameSpaceMenuCheckInAll
-		  translateLabel: true
-		  labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn All...')
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasNameSpaceSelectedAndSourceCodeManagerHolder
-		  label: 'CheckOut Newest All'
-		  itemValue: nameSpaceMenuCheckOutNewest
-		  translateLabel: true
-		  labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest All')
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasNameSpaceSelectedAndSourceCodeManagerHolder
-		  label: 'CheckOut Previous Version All...'
-		  itemValue: nameSpaceMenuCheckOut
-		  translateLabel: true
-		  showBusyCursorWhilePerforming: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasNameSpaceSelectedHolder
-	    label: 'Spawn'
-	    translateLabel: true
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasNameSpaceSelectedHolder
-		  label: 'Buffer'
-		  itemValue: nameSpaceMenuSpawnBuffer
-		  translateLabel: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasNameSpaceSelectedHolder
-		  label: 'Browser'
-		  itemValue: nameSpaceMenuSpawn
-		  translateLabel: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    label: 'Find'
-	    translateLabel: true
-	    submenuChannel: searchMenu
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'New...'
-	    itemValue: nameSpaceMenuNew
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: canRenameNameSpaceHolder
-	    label: 'Rename'
-	    itemValue: nameSpaceMenuRename
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    enabled: canRemoveNameSpaceHolder
-	    label: 'Remove'
-	    itemValue: nameSpaceMenuRemove
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Update'
-	    itemValue: nameSpaceMenuUpdate
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasNameSpaceSelectedAndSourceCodeManagerHolder
+            label: 'CVS'
+            translateLabel: true
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasNameSpaceSelectedAndSourceCodeManagerHolder
+                  label: 'CheckIn All...'
+                  itemValue: nameSpaceMenuCheckInAll
+                  translateLabel: true
+                  labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn All...')
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasNameSpaceSelectedAndSourceCodeManagerHolder
+                  label: 'CheckOut Newest All'
+                  itemValue: nameSpaceMenuCheckOutNewest
+                  translateLabel: true
+                  labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest All')
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasNameSpaceSelectedAndSourceCodeManagerHolder
+                  label: 'CheckOut Previous Version All...'
+                  itemValue: nameSpaceMenuCheckOut
+                  translateLabel: true
+                  showBusyCursorWhilePerforming: true
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasNameSpaceSelectedHolder
+            label: 'Spawn'
+            translateLabel: true
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasNameSpaceSelectedHolder
+                  label: 'Buffer'
+                  itemValue: nameSpaceMenuSpawnBuffer
+                  translateLabel: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasNameSpaceSelectedHolder
+                  label: 'Browser'
+                  itemValue: nameSpaceMenuSpawn
+                  translateLabel: true
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            label: 'Find'
+            translateLabel: true
+            submenuChannel: searchMenu
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'New...'
+            itemValue: nameSpaceMenuNew
+            translateLabel: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: canRenameNameSpaceHolder
+            label: 'Rename'
+            itemValue: nameSpaceMenuRename
+            translateLabel: true
+          )
+         (MenuItem
+            enabled: canRemoveNameSpaceHolder
+            label: 'Remove'
+            itemValue: nameSpaceMenuRemove
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Update'
+            itemValue: nameSpaceMenuUpdate
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -9894,33 +10168,20 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'Repeat Previously Selected Checks'
-	    itemValue: projectMenuSmalllintCheck:
-	    translateLabel: true
-	    argument: smalllintRules
-	  )
-	 (MenuItem
-	    label: 'Run all Checks'
-	    itemValue: projectMenuSmalllintCheck:
-	    translateLabel: true
-	    argument: smalllintRulesAll
-	  )
-	 (MenuItem
-	    label: 'Run Selected Checks...'
-	    itemValue: projectMenuSmalllintCheck:
-	    translateLabel: true
-	    argument: smalllintRulesFromUser
-	  )
-
-	 )
-	nil
-	nil
-      )
-
-    "Modified: / 17-04-2010 / 11:14:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+        (
+         (MenuItem
+            label: 'SmallLint Menu'
+            submenuChannel: smalllintCheckMenuForPackage
+            isMenuSlice: true
+          )
+
+         )
+        nil
+        nil
+      )
+
     "Created: / 05-05-2012 / 10:22:19 / cg"
+    "Modified: / 27-11-2014 / 06:58:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 projectDebugMenu
@@ -9940,31 +10201,31 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasProjectSelectedHolder
-	    label: 'Recompile all Classes (without Instrumentation)'
-	    itemValue: projectMenuRecompile
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndInstrumentingCompilerExistsHolder
-	    label: 'Recompile all Classes with Instrumentation'
-	    itemValue: projectMenuRecompileInstrumented
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndInstrumentingCompilerExistsAndOOMPackageLoadedHolder
-	    label: 'Call Graph'
-	    itemValue: debugMenuOpenCallGraphForProjects
-	    showBusyCursorWhilePerforming: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasProjectSelectedHolder
+            label: 'Recompile all Classes (without Instrumentation)'
+            itemValue: projectMenuRecompile
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndInstrumentingCompilerExistsHolder
+            label: 'Recompile all Classes with Instrumentation'
+            itemValue: projectMenuRecompileInstrumented
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndInstrumentingCompilerExistsAndOOMPackageLoadedHolder
+            label: 'Call Graph'
+            itemValue: debugMenuOpenCallGraphForProjects
+            showBusyCursorWhilePerforming: true
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -9985,324 +10246,402 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasProjectSelectedHolder
-	    label: 'File out'
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasProjectSelectedHolder
-		  label: 'as...'
-		  itemValue: projectMenuFileOutAs
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasProjectSelectedAndCanFileOutXMLHolder
-		  label: 'XML as...'
-		  itemValue: projectMenuFileOutXMLAs
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasProjectSelectedAndCanFileOutSIFHolder
-		  label: 'SIF as...'
-		  itemValue: projectMenuFileOutSIFAs
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasProjectSelectedAndCanFileOutCypressHolder
-		  label: 'Cypress as...'
-		  itemValue: projectMenuFileOutCypressAs
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasProjectSelectedHolder
-		  label: 'Each in...'
-		  itemValue: projectMenuFileOutEachIn
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasProjectSelectedHolder
-		  label: 'Build Support File in...'
-		  itemValue: projectMenuFileOutBuildSupportFiles
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasProjectSelectedAndCanFileOutXMLHolder
-		  label: 'Each XML in...'
-		  itemValue: projectMenuFileOutEachXMLIn
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasProjectSelectedAndCanFileOutSIFHolder
-		  label: 'Each SIF in...'
-		  itemValue: projectMenuFileOutEachSIFIn
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasProjectSelectedHolder
-		  label: 'Each Binary in...'
-		  itemValue: projectMenuFileOutEachBinaryIn
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasProjectSelectedHolder
-		  label: 'Mail To...'
-		  itemValue: projectMenuMailTo
-		  showBusyCursorWhilePerforming: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    label: 'Repository'
-	    submenuChannel: projectMenuSCMSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Documentation'
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasSingleRealProjectSelectedHolder
-		  label: 'Generate Project Documentation'
-		  itemValue: projectMenuDocumentation
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasOOMPackageLoadedAndSingleRealProjectSelectedHolder
-		  label: 'Metrics Summary Report'
-		  itemValue: projectMenuMetricsSummary
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedHolder
-	    label: 'Spawn'
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasProjectSelectedHolder
-		  label: 'Buffer'
-		  itemValue: projectMenuSpawnBuffer
-		)
-	       (MenuItem
-		  enabled: hasProjectSelectedHolder
-		  label: 'Buffer with Extensions'
-		  itemValue: projectMenuSpawnExtensionsBuffer
-		)
-	       (MenuItem
-		  enabled: hasProjectSelectedHolder
-		  label: 'Buffer with Projects Requiring this Project'
-		  itemValue: projectMenuSpawnPreRequirerBuffer
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasProjectSelectedHolder
-		  label: 'Browser'
-		  itemValue: projectMenuSpawn
-		)
-	       (MenuItem
-		  enabled: hasProjectSelectedHolder
-		  label: 'Browser on Extensions'
-		  itemValue: projectMenuSpawnExtensionsBrowser
-		)
-	       (MenuItem
-		  enabled: hasProjectSelectedHolder
-		  label: 'Browser on Projects Requiring this Project'
-		  itemValue: projectMenuSpawnPreRequirerBrowser
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedHolder
-	    label: 'Find'
-	    submenuChannel: searchMenu
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'New...'
-	    itemValue: projectMenuNew
-	  )
-	 (MenuItem
-	    label: 'Load...'
-	    itemValue: projectMenuLoad
-	    isVisible: hasNoProjectSelectedHolder
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: 'Load'
-	    itemValue: projectMenuLoad
-	    isVisible: hasProjectSelectedHolder
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedHolder
-	    label: 'Rename...'
-	    itemValue: projectMenuRename
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedHolder
-	    label: 'Remove...'
-	    itemValue: projectMenuRemove
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Build'
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  label: 'Build with Interactive Application Packager...'
-		  itemValue: projectMenuBuildWithApplicationPackager
-		)
-	       (MenuItem
-		  enabled: hasSingleRealProjectSelectedHolder
-		  label: 'Build Package for Deployment'
-		  itemValue: projectMenuBuild
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasSingleRealProjectSelectedHolder
-		  label: 'Build Binaries for Execution'
-		  itemValue: projectMenuBuildExeOnly
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasProjectSelectedHolder
-		  label: 'Generate Build Support Files in...'
-		  itemValue: projectMenuGenerateBuildSupportFiles
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasProjectSelectedHolder
-		  label: 'Patch-Set...'
-		  itemValue: projectMenuGeneratePatchSet
-		  showBusyCursorWhilePerforming: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedHolder
-	    label: 'Generate'
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasSingleRealProjectSelectedHolder
-		  label: 'Generate Project Definition Methods'
-		  itemValue: projectMenuGenerateProjectDefinitions
-		)
-	       (MenuItem
-		  enabled: hasSingleRealProjectSelectedHolder
-		  label: 'Update Project Contents Definition Methods'
-		  itemValue: projectMenuUpdateProjectContentsDefinitions
-		)
-	       (MenuItem
-		  enabled: hasSingleRealProjectSelectedHolder
-		  label: 'Regenerate Project Contents Definition Methods'
-		  itemValue: projectMenuRegenerateProjectContentsDefinitions
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'Package Integrity Check...'
-	    itemValue: projectMenuCheckPackageIntegrity
-	  )
-	 (MenuItem
-	    label: 'Static Analysis (Lint)'
-	    submenuChannel: projectCheckMenu
-	    labelImage: (ResourceRetriever ToolbarIconLibrary lint16x16Icon 'Static Analysis (Lint)')
-	  )
-	 (MenuItem
-	    label: 'Debug'
-	    submenuChannel: projectDebugMenu
-	    keepLinkedMenu: true
-	  )
-	 (MenuItem
-	    label: 'Special'
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasSingleRealProjectSelectedHolder
-		  label: 'Remove from ChangeSet'
-		  itemValue: projectMenuCleanUpChangeSet
-		)
-	       (MenuItem
-		  label: '-'
-		  isVisible: false
-		)
-	       (MenuItem
-		  enabled: hasSingleRealProjectSelectedHolder
-		  label: 'Make Current Project'
-		  itemValue: projectMenuMakeCurrentProject
-		  isVisible: false
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasSingleRealProjectSelectedHolder
-	    label: 'Properties...'
-	    itemValue: projectMenuProperties
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Update'
-	    itemValue: projectMenuUpdate
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasProjectSelectedHolder
+            label: 'File out'
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasProjectSelectedHolder
+                  label: 'As...'
+                  itemValue: projectMenuFileOutAs
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasProjectSelectedHolder
+                  label: 'Each in...'
+                  itemValue: projectMenuFileOutEachIn
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasProjectSelectedHolder
+                  label: 'Special Formats'
+                  submenu:
+                 (Menu
+                    (
+                     (MenuItem
+                        enabled: hasProjectSelectedAndCanFileOutXMLHolder
+                        label: 'XML as...'
+                        itemValue: projectMenuFileOutXMLAs
+                        showBusyCursorWhilePerforming: true
+                      )
+                     (MenuItem
+                        enabled: hasProjectSelectedAndCanFileOutXMLHolder
+                        label: 'XML each in...'
+                        itemValue: projectMenuFileOutEachXMLIn
+                        showBusyCursorWhilePerforming: true
+                      )
+                     (MenuItem
+                        label: '-'
+                      )
+                     (MenuItem
+                        enabled: hasProjectSelectedAndCanFileOutSIFHolder
+                        label: 'SIF as...'
+                        itemValue: projectMenuFileOutSIFAs
+                        showBusyCursorWhilePerforming: true
+                      )
+                     (MenuItem
+                        enabled: hasProjectSelectedAndCanFileOutSIFHolder
+                        label: 'SIF each in...'
+                        itemValue: projectMenuFileOutEachSIFIn
+                        showBusyCursorWhilePerforming: true
+                      )
+                     (MenuItem
+                        label: '-'
+                      )
+                     (MenuItem
+                        enabled: hasProjectSelectedAndCanFileOutVSEHolder
+                        label: 'VSE Package as...'
+                        itemValue: projectMenuFileOutVSEPackageFormatAs
+                        showBusyCursorWhilePerforming: true
+                      )
+                     (MenuItem
+                        enabled: hasProjectSelectedAndCanFileOutVSEHolder
+                        label: 'VSE Fileout Format as...'
+                        itemValue: projectMenuFileOutVSEFormatAs
+                        showBusyCursorWhilePerforming: true
+                      )
+                     (MenuItem
+                        isVisible: false
+                        enabled: hasProjectSelectedAndCanFileOutVSEHolder
+                        label: 'VSE Fileout Format each in...'
+                        itemValue: projectMenuFileOutEachVSEIn
+                        showBusyCursorWhilePerforming: true
+                      )
+                     (MenuItem
+                        label: '-'
+                      )
+                     (MenuItem
+                        enabled: hasProjectSelectedAndCanFileOutCypressHolder
+                        label: 'Cypress as...'
+                        itemValue: projectMenuFileOutCypressAs
+                        showBusyCursorWhilePerforming: true
+                      )
+                     (MenuItem
+                        label: '-'
+                      )
+                     (MenuItem
+                        enabled: hasProjectSelectedHolder
+                        label: 'Binary each in...'
+                        itemValue: projectMenuFileOutEachBinaryIn
+                        showBusyCursorWhilePerforming: true
+                      )
+                     )
+                    nil
+                    nil
+                  )
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasProjectSelectedHolder
+                  label: 'Build Support File in...'
+                  itemValue: projectMenuFileOutBuildSupportFiles
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasProjectSelectedHolder
+                  label: 'Mail To...'
+                  itemValue: projectMenuMailTo
+                  showBusyCursorWhilePerforming: true
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            label: 'Repository'
+            submenuChannel: projectMenuSCMSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Documentation'
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasSingleRealProjectSelectedHolder
+                  label: 'Generate Project Documentation In...'
+                  itemValue: projectMenuDocumentation
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasSingleRealProjectSelectedHolder
+                  label: 'Generate Project Documentation for JavaScript In...'
+                  itemValue: projectMenuDocumentationForJavaScript
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasOOMPackageLoadedAndSingleRealProjectSelectedHolder
+                  label: 'Metrics Summary Report'
+                  itemValue: projectMenuMetricsSummary
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasProjectSelectedHolder
+            label: 'Spawn'
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasProjectSelectedHolder
+                  label: 'Buffer'
+                  itemValue: projectMenuSpawnBuffer
+                )
+               (MenuItem
+                  enabled: hasProjectSelectedHolder
+                  label: 'Buffer with Extensions'
+                  itemValue: projectMenuSpawnExtensionsBuffer
+                )
+               (MenuItem
+                  enabled: hasProjectSelectedHolder
+                  label: 'Buffer with Projects Requiring this Project'
+                  itemValue: projectMenuSpawnPreRequirerBuffer
+                )
+               (MenuItem
+                  enabled: hasProjectSelectedHolder
+                  label: 'Buffer with Projects Referring to this Project'
+                  itemValue: projectMenuSpawnReferencesBuffer
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasProjectSelectedHolder
+                  label: 'Browser'
+                  itemValue: projectMenuSpawn
+                )
+               (MenuItem
+                  enabled: hasProjectSelectedHolder
+                  label: 'Browser on Extensions'
+                  itemValue: projectMenuSpawnExtensionsBrowser
+                )
+               (MenuItem
+                  enabled: hasProjectSelectedHolder
+                  label: 'Browser on Projects Requiring this Project'
+                  itemValue: projectMenuSpawnPreRequirerBrowser
+                )
+               (MenuItem
+                  enabled: hasProjectSelectedHolder
+                  label: 'Browser on Projects Referring to this Project'
+                  itemValue: projectMenuSpawnReferencesBrowser
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasSingleProjectSelectedHolder
+                  label: 'Browse Package Directory'
+                  itemValue: projectMenuBrowsePackageDirectory
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            enabled: hasProjectSelectedHolder
+            label: 'Find'
+            submenuChannel: searchMenu
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'New...'
+            itemValue: projectMenuNew
+          )
+         (MenuItem
+            label: 'Load...'
+            itemValue: projectMenuLoad
+            isVisible: hasNoProjectSelectedHolder
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: 'Load'
+            itemValue: projectMenuLoad
+            isVisible: hasProjectSelectedHolder
+            showBusyCursorWhilePerforming: true
+            enabled: hasUnloadedProjectSelectedHolder
+          )
+         (MenuItem
+            enabled: hasProjectSelectedHolder
+            label: 'Rename...'
+            itemValue: projectMenuRename
+          )
+         (MenuItem
+            enabled: hasProjectSelectedHolder
+            label: 'Remove...'
+            itemValue: projectMenuRemove
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Build'
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  label: 'Build with Interactive Application Packager...'
+                  itemValue: projectMenuBuildWithApplicationPackager
+                )
+               (MenuItem
+                  enabled: hasSingleRealProjectSelectedHolder
+                  label: 'Build Package for Deployment'
+                  itemValue: projectMenuBuild
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasSingleRealProjectSelectedHolder
+                  label: 'Build Binaries for Execution'
+                  itemValue: projectMenuBuildExeOnly
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasProjectSelectedHolder
+                  label: 'Generate Build Support Files in...'
+                  itemValue: projectMenuGenerateBuildSupportFiles
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasProjectSelectedHolder
+                  label: 'Patch-Set...'
+                  itemValue: projectMenuGeneratePatchSet
+                  showBusyCursorWhilePerforming: true
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            enabled: hasProjectSelectedHolder
+            label: 'Generate'
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasSingleRealProjectSelectedHolder
+                  label: 'Generate Project Definition Methods'
+                  itemValue: projectMenuGenerateProjectDefinitions
+                )
+               (MenuItem
+                  enabled: hasSingleRealProjectSelectedHolder
+                  label: 'Update Project Contents Definition Methods'
+                  itemValue: projectMenuUpdateProjectContentsDefinitions
+                )
+               (MenuItem
+                  enabled: hasSingleRealProjectSelectedHolder
+                  label: 'Regenerate Project Contents Definition Methods'
+                  itemValue: projectMenuRegenerateProjectContentsDefinitions
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'Package Integrity Check...'
+            itemValue: projectMenuCheckPackageIntegrity
+          )
+         (MenuItem
+            label: 'Static Analysis (Lint)'
+            submenuChannel: projectCheckMenu
+            labelImage: (ResourceRetriever ToolbarIconLibrary lint16x16Icon 'Static Analysis (Lint)')
+          )
+         (MenuItem
+            label: 'Debug'
+            submenuChannel: projectDebugMenu
+            keepLinkedMenu: true
+          )
+         (MenuItem
+            label: 'Special'
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasSingleRealProjectSelectedHolder
+                  label: 'Remove from ChangeSet'
+                  itemValue: projectMenuCleanUpChangeSet
+                )
+               (MenuItem
+                  label: '-'
+                  isVisible: false
+                )
+               (MenuItem
+                  enabled: hasSingleRealProjectSelectedHolder
+                  label: 'Make Current Project'
+                  itemValue: projectMenuMakeCurrentProject
+                  isVisible: false
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Search && Rewrite...'
+            itemValue: projectMenuRewrite
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasSingleRealProjectSelectedHolder
+            label: 'Properties...'
+            itemValue: projectMenuProperties
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Update'
+            itemValue: projectMenuUpdate
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -10322,31 +10661,18 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'Repeat Previously Selected Checks'
-	    itemValue: protocolCheckMenuSmalllintCheck:
-	    translateLabel: true
-	    argument: smalllintRules
-	  )
-	 (MenuItem
-	    label: 'Run all Checks'
-	    itemValue: protocolCheckMenuSmalllintCheck:
-	    translateLabel: true
-	    argument: smalllintRulesAll
-	  )
-	 (MenuItem
-	    label: 'Run Selected Checks...'
-	    itemValue: protocolCheckMenuSmalllintCheck:
-	    translateLabel: true
-	    argument: smalllintRulesFromUser
-	  )
-	 )
-	nil
-	nil
-      )
-
-    "Modified: / 17-04-2010 / 11:13:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+        (
+         (MenuItem
+            label: 'SmallLint Menu'
+            submenuChannel: smalllintCheckMenuForProtocol
+            isMenuSlice: true
+          )
+         )
+        nil
+        nil
+      )
+
+    "Modified: / 27-11-2014 / 06:58:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 protocolMenu
@@ -10366,246 +10692,228 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasProtocolSelectedHolder
-	    label: 'FileOut'
-	    translateLabel: true
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasProtocolSelectedHolder
-		  label: 'as...'
-		  itemValue: protocolMenuFileOutAs
-		  translateLabel: true
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasProtocolSelectedAndCanFileOutXMLHolder
-		  label: 'XML as...'
-		  itemValue: protocolMenuFileOutXMLAs
-		  translateLabel: true
-		  isVisible: false
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasProtocolSelectedAndCanFileOutSIFHolder
-		  label: 'SIF as...'
-		  itemValue: protocolMenuFileOutSIFAs
-		  translateLabel: true
-		  isVisible: false
-		  showBusyCursorWhilePerforming: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasProtocolSelectedHolder
-	    label: 'Documentation'
-	    translateLabel: true
-	    isVisible: false
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasProtocolSelectedHolder
-		  label: 'PrintOut'
-		  itemValue: protocolMenuPrintOut
-		  translateLabel: true
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasProtocolSelectedHolder
-		  label: 'PrintOut Protocol'
-		  itemValue: protocolMenuPrintOutProtocol
-		  translateLabel: true
-		  isVisible: false
-		  showBusyCursorWhilePerforming: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    enabled: hasProtocolSelectedHolder
-	    label: 'PrintOut'
-	    itemValue: protocolMenuPrintOut
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Spawn'
-	    translateLabel: true
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasProtocolSelectedHolder
-		  label: 'Buffer'
-		  itemValue: protocolMenuSpawnBuffer
-		  translateLabel: true
-		)
-	       (MenuItem
-		  enabled: hasProtocolSelectedHolder
-		  label: 'Buffer with Full Protocol'
-		  itemValue: protocolMenuSpawnFullCategoryBuffer
-		  translateLabel: true
-		)
-	       (MenuItem
-		  label: 'Buffer with Full Protocols Matching...'
-		  itemValue: protocolMenuSpawnMatchingFullCategoryBuffer
-		  translateLabel: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasProtocolSelectedHolder
-		  label: 'Browser'
-		  itemValue: protocolMenuSpawn
-		  translateLabel: true
-		)
-	       (MenuItem
-		  enabled: hasProtocolSelectedHolder
-		  label: 'Browser on Full Protocol'
-		  itemValue: protocolMenuSpawnFullCategory
-		  translateLabel: true
-		)
-	       (MenuItem
-		  label: 'Browser on Full Protocols Matching...'
-		  itemValue: protocolMenuSpawnMatchingFullCategoryBrowser
-		  translateLabel: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    enabled: hasProtocolSelectedHolder
-	    label: 'Find'
-	    translateLabel: true
-	    isVisible: false
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasProtocolSelectedHolder
-		  label: 'String...'
-		  itemValue: protocolMenuFindString
-		  translateLabel: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'New...'
-	    itemValue: protocolMenuNew
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    enabled: hasProtocolSelectedHolder
-	    label: 'Copy...'
-	    itemValue: protocolMenuCopyToClass
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    enabled: hasProtocolSelectedHolder
-	    label: 'Move'
-	    translateLabel: true
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasProtocolSelectedHolder
-		  label: 'To Class...'
-		  itemValue: protocolMenuMoveToClass
-		  translateLabel: true
-		)
-	       (MenuItem
-		  enabled: hasProtocolSelectedHolder
-		  label: 'To Project...'
-		  itemValue: protocolMenuMoveToProject
-		  translateLabel: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    enabled: hasSingleRealProtocolSelectedHolder
-	    label: 'Rename...'
-	    itemValue: protocolMenuRename
-	    translateLabel: true
-	    shortcutKey: Rename
-	    ignoreShortcutKeys: true
-	  )
-	 (MenuItem
-	    enabled: hasProtocolSelectedHolder
-	    label: 'Remove...'
-	    itemValue: protocolMenuRemove
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary erase16x16Icon 'Remove...')
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Generate'
-	    translateLabel: true
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  label: 'Common Categories'
-		  itemValue: protocolMenuGenerateCommonProtocols
-		  translateLabel: true
-		)
-	       (MenuItem
-		  label: 'Documentation Method'
-		  itemValue: protocolMenuGenerateDocumentationMethod
-		  translateLabel: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    label: 'Static Analysis (Lint)'
-	    translateLabel: true
-	    submenuChannel: protocolCheckMenu
-	    labelImage: (ResourceRetriever ToolbarIconLibrary lint16x16Icon 'Static Analysis (Lint)')
-	  )
-	 (MenuItem
-	    label: 'Update'
-	    itemValue: protocolMenuUpdate
-	    translateLabel: true
-	    isVisible: false
-	  )
-	 )
-	nil
-	nil
-      )
-
-    "Modified: / 27-07-2012 / 12:19:37 / cg"
+        (
+         (MenuItem
+            enabled: hasProtocolSelectedHolder
+            label: 'FileOut'
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasProtocolSelectedHolder
+                  label: 'As...'
+                  itemValue: protocolMenuFileOutAs
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasProtocolSelectedHolder
+                  label: 'Special Formats'
+                  isVisible: false
+                  submenu:
+                 (Menu
+                    (
+                     (MenuItem
+                        enabled: hasProtocolSelectedAndCanFileOutXMLHolder
+                        label: 'XML as...'
+                        itemValue: protocolMenuFileOutXMLAs
+                        showBusyCursorWhilePerforming: true
+                      )
+                     (MenuItem
+                        label: '-'
+                      )
+                     (MenuItem
+                        enabled: hasProtocolSelectedAndCanFileOutSIFHolder
+                        label: 'SIF as...'
+                        itemValue: protocolMenuFileOutSIFAs
+                        showBusyCursorWhilePerforming: true
+                      )
+                     )
+                    nil
+                    nil
+                  )
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasProtocolSelectedHolder
+            label: 'Documentation'
+            isVisible: false
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasProtocolSelectedHolder
+                  label: 'PrintOut'
+                  itemValue: protocolMenuPrintOut
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasProtocolSelectedHolder
+                  label: 'PrintOut Protocol'
+                  itemValue: protocolMenuPrintOutProtocol
+                  isVisible: false
+                  showBusyCursorWhilePerforming: true
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            enabled: hasProtocolSelectedHolder
+            label: 'PrintOut'
+            itemValue: protocolMenuPrintOut
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Spawn'
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasProtocolSelectedHolder
+                  label: 'Buffer'
+                  itemValue: protocolMenuSpawnBuffer
+                )
+               (MenuItem
+                  enabled: hasProtocolSelectedHolder
+                  label: 'Buffer with Full Protocol'
+                  itemValue: protocolMenuSpawnFullCategoryBuffer
+                )
+               (MenuItem
+                  label: 'Buffer with Full Protocols Matching...'
+                  itemValue: protocolMenuSpawnMatchingFullCategoryBuffer
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasProtocolSelectedHolder
+                  label: 'Browser'
+                  itemValue: protocolMenuSpawn
+                )
+               (MenuItem
+                  enabled: hasProtocolSelectedHolder
+                  label: 'Browser on Full Protocol'
+                  itemValue: protocolMenuSpawnFullCategory
+                )
+               (MenuItem
+                  label: 'Browser on Full Protocols Matching...'
+                  itemValue: protocolMenuSpawnMatchingFullCategoryBrowser
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            enabled: hasProtocolSelectedHolder
+            label: 'Find'
+            isVisible: false
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasProtocolSelectedHolder
+                  label: 'String...'
+                  itemValue: protocolMenuFindString
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'New...'
+            itemValue: protocolMenuNew
+          )
+         (MenuItem
+            enabled: hasProtocolSelectedHolder
+            label: 'Copy...'
+            itemValue: protocolMenuCopyToClass
+          )
+         (MenuItem
+            enabled: hasProtocolSelectedHolder
+            label: 'Move'
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasProtocolSelectedHolder
+                  label: 'To Class...'
+                  itemValue: protocolMenuMoveToClass
+                )
+               (MenuItem
+                  enabled: hasProtocolSelectedHolder
+                  label: 'To Project...'
+                  itemValue: protocolMenuMoveToProject
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            enabled: hasSingleRealProtocolSelectedHolder
+            label: 'Rename...'
+            itemValue: protocolMenuRename
+            shortcutKey: Rename
+            ignoreShortcutKeys: true
+          )
+         (MenuItem
+            enabled: hasProtocolSelectedHolder
+            label: 'Remove...'
+            itemValue: protocolMenuRemove
+            labelImage: (ResourceRetriever ToolbarIconLibrary erase16x16Icon 'Remove...')
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Generate'
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  label: 'Common Categories'
+                  itemValue: protocolMenuGenerateCommonProtocols
+                )
+               (MenuItem
+                  label: 'Documentation Method'
+                  itemValue: protocolMenuGenerateDocumentationMethod
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            label: 'Static Analysis (Lint)'
+            submenuChannel: protocolCheckMenu
+            labelImage: (ResourceRetriever ToolbarIconLibrary lint16x16Icon 'Static Analysis (Lint)')
+          )
+         (MenuItem
+            label: 'Update'
+            itemValue: protocolMenuUpdate
+            isVisible: false
+          )
+         )
+        nil
+        nil
+      )
 !
 
 refactoringMenu
@@ -10620,113 +10928,113 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasClassNameSelectedInCodeView
-	    label: 'Goto Class'
-	    itemValue: codeMenuGotoClass
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasTemporaryVariableSelectedInCodeViewHolder
-	    label: 'Rename Local Variable...'
-	    itemValue: codeMenuRenameTemporary
-	    translateLabel: true
-	    shortcutKey: Rename
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasTemporaryVariableSelectedInCodeViewHolder
-	    label: 'Make Instance Variable'
-	    itemValue: codeMenuMakeInstanceVariable
-	    translateLabel: true
-	    isVisible: hasNotMultipleTemporaryVariablesSelectedInCodeViewHolder
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasMultipleTemporaryVariablesSelectedInCodeViewHolder
-	    label: 'Make Instance Variables'
-	    itemValue: codeMenuMakeInstanceVariable
-	    translateLabel: true
-	    isVisible: hasMultipleTemporaryVariablesSelectedInCodeViewHolder
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasUndefinedUppercaseIdentifierSelectedInCodeViewHolder
-	    label: 'Define as Class Variable'
-	    itemValue: codeMenuDeclareSelectionAsClassVariable
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    enabled: hasClassVariableSelectedInCodeViewOrVariableList
-	    label: 'Make Pool Variable...'
-	    itemValue: codeMenuDeclareSelectionAsPoolVariable
-	    translateLabel: true
-	    isVisible: false
-	  )
-	 (MenuItem
-	    enabled: hasLiteralConstantSelectedInCodeViewHolder
-	    label: 'Eliminate Constant...'
-	    itemValue: codeMenuEliminateConstant
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasSingleMethodSelectedAndSelectionInCodeViewAndCanUseRefactoringSupportHolder
-	    label: 'Inline Message'
-	    itemValue: codeMenuInlineMessage
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleMethodSelectedAndSelectionInCodeViewAndCanUseRefactoringSupportHolder
-	    label: 'Extract Selection to Temporary...'
-	    itemValue: codeMenuExtractSelectionToTemporary
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleMethodSelectedAndSelectionInCodeViewAndCanUseRefactoringSupportHolder
-	    label: 'Extract Method...'
-	    itemValue: codeMenuExtractMethod
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasSingleMethodSelectedAndSelectionInCodeViewAndSingleSelectedMethodHasParameterAndCanUseRefactoringSupportHolder
-	    label: 'Inline Parameter of Method'
-	    itemValue: codeMenuInlineParameter
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleMethodSelectedAndSelectionInCodeViewAndSingleSelectedMethodHasParameterAndCanUseRefactoringSupportHolder
-	    label: 'Remove Parameter from Method'
-	    itemValue: codeMenuRemoveParameter
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasSingleMethodSelectedAndCanUseRefactoringSupportHolder
-	    label: 'Format'
-	    itemValue: codeMenuFormat
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasClassNameSelectedInCodeView
+            label: 'Goto Class'
+            itemValue: codeMenuGotoClass
+            translateLabel: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasTemporaryVariableSelectedInCodeViewHolder
+            label: 'Rename Local Variable...'
+            itemValue: codeMenuRenameTemporary
+            translateLabel: true
+            shortcutKey: Rename
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasTemporaryVariableSelectedInCodeViewHolder
+            label: 'Make Instance Variable'
+            itemValue: codeMenuMakeInstanceVariable
+            translateLabel: true
+            isVisible: hasNotMultipleTemporaryVariablesSelectedInCodeViewHolder
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasMultipleTemporaryVariablesSelectedInCodeViewHolder
+            label: 'Make Instance Variables'
+            itemValue: codeMenuMakeInstanceVariable
+            translateLabel: true
+            isVisible: hasMultipleTemporaryVariablesSelectedInCodeViewHolder
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasUndefinedUppercaseIdentifierSelectedInCodeViewHolder
+            label: 'Define as Class Variable'
+            itemValue: codeMenuDeclareSelectionAsClassVariable
+            translateLabel: true
+          )
+         (MenuItem
+            enabled: hasClassVariableSelectedInCodeViewOrVariableList
+            label: 'Make Pool Variable...'
+            itemValue: codeMenuDeclareSelectionAsPoolVariable
+            translateLabel: true
+            isVisible: false
+          )
+         (MenuItem
+            enabled: hasLiteralConstantSelectedInCodeViewHolder
+            label: 'Eliminate Constant...'
+            itemValue: codeMenuEliminateConstant
+            translateLabel: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasSingleMethodSelectedAndSelectionInCodeViewAndCanUseRefactoringSupportHolder
+            label: 'Inline Message'
+            itemValue: codeMenuInlineMessage
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleMethodSelectedAndSelectionInCodeViewAndCanUseRefactoringSupportHolder
+            label: 'Extract Selection to Temporary...'
+            itemValue: codeMenuExtractSelectionToTemporary
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleMethodSelectedAndSelectionInCodeViewAndCanUseRefactoringSupportHolder
+            label: 'Extract Method...'
+            itemValue: codeMenuExtractMethod
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasSingleMethodSelectedAndSelectionInCodeViewAndSingleSelectedMethodHasParameterAndCanUseRefactoringSupportHolder
+            label: 'Inline Parameter of Method'
+            itemValue: codeMenuInlineParameter
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleMethodSelectedAndSelectionInCodeViewAndSingleSelectedMethodHasParameterAndCanUseRefactoringSupportHolder
+            label: 'Remove Parameter from Method'
+            itemValue: codeMenuRemoveParameter
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasSingleMethodSelectedAndCanUseRefactoringSupportHolder
+            label: 'Format'
+            itemValue: codeMenuFormat
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         )
+        nil
+        nil
       )
 
     "Modified: / 24-07-2011 / 12:34:17 / cg"
@@ -10749,68 +11057,75 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'Class...'
-	    itemValue: searchMenuFindClass
-	    shortcutKey: Cmds
-	    ignoreShortcutKeys: true
-	  )
-	 (MenuItem
-	    enabled: hasVisitedClassesHolder
-	    label: 'Visited Classes'
-	    submenuChannel: visitedClassesMenu
-	  )
-	 (MenuItem
-	    enabled: hasChangedClassesHolder
-	    label: 'Changed Classes'
-	    submenuChannel: changedClassesMenu
-	  )
-	 (MenuItem
-	    enabled: hasSelectedClassWithSuperclassHolder
-	    label: 'Class Hierarchy'
-	    submenuChannel: selectedClassesHierarchyMenu
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Method...'
-	    itemValue: searchMenuFindMethod
-	  )
-	 (MenuItem
-	    enabled: hasFindHistoryClassesHolder
-	    label: 'Visited Methods'
-	    submenuChannel: findHistoryMenu
-	  )
-	 (MenuItem
-	    enabled: hasChangedMethodsHolder
-	    label: 'Changed Methods'
-	    submenuChannel: changedMethodsMenu
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassOrMethodSelectedHolder
-	    label: 'Response to...'
-	    itemValue: searchMenuFindResponseTo
-	  )
-	 (MenuItem
-	    label: 'Response to'
-	    isVisible: hasSingleMethodSelectedHolder
-	    submenuChannel: sentMessagesResponseMenu
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Bookmarks'
-	    submenuChannel: boockmarksMenu
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: 'Class...'
+            itemValue: searchMenuFindClass
+            shortcutKey: Find
+            ignoreShortcutKeys: true
+          )
+         (MenuItem
+            enabled: hasVisitedClassesHolder
+            label: 'Visited Classes'
+            submenuChannel: visitedClassesMenu
+          )
+         (MenuItem
+            enabled: hasChangedClassesHolder
+            label: 'Changed Classes'
+            submenuChannel: changedClassesMenu
+          )
+         (MenuItem
+            enabled: hasSelectedClassWithSuperclassHolder
+            label: 'Class Hierarchy'
+            submenuChannel: selectedClassesHierarchyMenu
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Method...'
+            itemValue: searchMenuFindMethod
+          )
+         (MenuItem
+            enabled: hasFindHistoryClassesHolder
+            label: 'Visited Methods'
+            submenuChannel: findHistoryMenu
+          )
+         (MenuItem
+            enabled: hasChangedMethodsHolder
+            label: 'Changed Methods'
+            submenuChannel: changedMethodsMenu
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasSingleClassOrMethodSelectedHolder
+            label: 'Response to...'
+            itemValue: searchMenuFindResponseTo
+          )
+         (MenuItem
+            label: 'Response to'
+            isVisible: hasSingleMethodSelectedHolder
+            submenuChannel: sentMessagesResponseMenu
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'References to Class or Global...'
+            itemValue: browseMenuReferencesToGlobal
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Bookmarks'
+            submenuChannel: boockmarksMenu
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -10830,31 +11145,31 @@
 
     ^
      #(#Menu
-	#(
-	 #(#MenuItem
-	    #label: 'Response to...'
-	    #translateLabel: true
-	    #value: #searchMenuFindResponseTo
-	    #enabled: #hasSingleClassOrMethodSelectedHolder
-	  )
-	 #(#MenuItem
-	    #label: '-'
-	  )
-	 #(#MenuItem
-	    #label: 'Back'
-	    #translateLabel: true
-	    #enabled: #hasFindHistoryClassesHolder
-	    #submenuChannel: #findHistoryMenu
-	  )
-	 #(#MenuItem
-	    #label: 'Changed Methods'
-	    #translateLabel: true
-	    #enabled: #hasChangedMethodsHolder
-	    #submenuChannel: #changedMethodsMenu
-	  )
-	 )
-	nil
-	nil
+        #(
+         #(#MenuItem
+            #label: 'Response to...'
+            #translateLabel: true
+            #value: #searchMenuFindResponseTo
+            #enabled: #hasSingleClassOrMethodSelectedHolder
+          )
+         #(#MenuItem
+            #label: '-'
+          )
+         #(#MenuItem
+            #label: 'Back'
+            #translateLabel: true
+            #enabled: #hasFindHistoryClassesHolder
+            #submenuChannel: #findHistoryMenu
+          )
+         #(#MenuItem
+            #label: 'Changed Methods'
+            #translateLabel: true
+            #enabled: #hasChangedMethodsHolder
+            #submenuChannel: #changedMethodsMenu
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -10874,32 +11189,20 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'Repeat Previously Selected Checks'
-	    itemValue: selectorCheckMenuSmalllintCheck:
-	    translateLabel: true
-	    argument: smalllintRules
-	  )
-	 (MenuItem
-	    label: 'Run all Checks'
-	    itemValue: selectorCheckMenuSmalllintCheck:
-	    translateLabel: true
-	    argument: smalllintRulesAll
-	  )
-	 (MenuItem
-	    label: 'Run Selected Checks...'
-	    itemValue: selectorCheckMenuSmalllintCheck:
-	    translateLabel: true
-	    argument: smalllintRulesFromUser
-	  )
-
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: 'SmallLint Menu'
+            submenuChannel: smalllintCheckMenuForSelector
+            isMenuSlice: true
+          )
+
+         )
+        nil
+        nil
       )
 
     "Created: / 17-04-2010 / 10:48:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 27-11-2014 / 06:59:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 selectorMenu
@@ -10918,106 +11221,106 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'FileOutPrintOutSlice'
-	    translateLabel: true
-	    submenuChannel: selectorMenuFileOutPrintOutSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'SpawnSlice'
-	    translateLabel: true
-	    submenuChannel: selectorMenuSpawnSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'SearchSlice'
-	    translateLabel: true
-	    submenuChannel: selectorMenuSearchSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'New'
-	    translateLabel: true
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'Method'
-		  itemValue: selectorMenuNewMethod
-		  translateLabel: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'Smalltak/Ruby/... Method'
-		  translateLabel: true
-		  submenuChannel: selectorMenuNewSlice
-		  isMenuSlice: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'Window Spec'
-		  itemValue: selectorMenuNewWindowSpec
-		  translateLabel: true
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'Menu Spec'
-		  itemValue: selectorMenuNewMenuSpec
-		  translateLabel: true
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'Image Spec'
-		  itemValue: selectorMenuNewImageSpec
-		  translateLabel: true
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'Table-Column Spec'
-		  itemValue: selectorMenuNewTableColumnSpec
-		  translateLabel: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    label: 'CopyMoveRemoveSlice'
-	    translateLabel: true
-	    submenuChannel: selectorMenuCopyMoveRemoveSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'CompareGenerateDebugSlice'
-	    translateLabel: true
-	    submenuChannel: selectorMenuCompareGenerateDebugSlice
-	    isMenuSlice: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: 'FileOutPrintOutSlice'
+            translateLabel: true
+            submenuChannel: selectorMenuFileOutPrintOutSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'SpawnSlice'
+            translateLabel: true
+            submenuChannel: selectorMenuSpawnSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'SearchSlice'
+            translateLabel: true
+            submenuChannel: selectorMenuSearchSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'New'
+            translateLabel: true
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Method'
+                  itemValue: selectorMenuNewMethod
+                  translateLabel: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'Smalltak/Ruby/... Method'
+                  translateLabel: true
+                  submenuChannel: selectorMenuNewSlice
+                  isMenuSlice: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Window Spec'
+                  itemValue: selectorMenuNewWindowSpec
+                  translateLabel: true
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Menu Spec'
+                  itemValue: selectorMenuNewMenuSpec
+                  translateLabel: true
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Image Spec'
+                  itemValue: selectorMenuNewImageSpec
+                  translateLabel: true
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Table-Column Spec'
+                  itemValue: selectorMenuNewTableColumnSpec
+                  translateLabel: true
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            label: 'CopyMoveRemoveSlice'
+            translateLabel: true
+            submenuChannel: selectorMenuCopyMoveRemoveSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'CompareGenerateDebugSlice'
+            translateLabel: true
+            submenuChannel: selectorMenuCompareGenerateDebugSlice
+            isMenuSlice: true
+          )
+         )
+        nil
+        nil
       )
 
     "Modified: / 05-07-2011 / 14:46:40 / cg"
@@ -11040,234 +11343,239 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasMethodSelectedHolder
-	    label: 'Compare'
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: methodRedefinesSuperclassVersionHolder
-		  label: 'With Inherited Method'
-		  itemValue: selectorMenuCompareWithInherited
-		)
-	       (MenuItem
-		  enabled: methodHasPreviousVersionHolder
-		  label: 'With Previous Version'
-		  itemValue: selectorMenuCompareWithPreviousVersion
-		)
-	       (MenuItem
-		  enabled: methodIsShadowedHolder
-		  label: 'With Shadowed Method'
-		  itemValue: selectorMenuCompareWithShadowedMethod
-		)
-	       (MenuItem
-		  enabled: hasSingleMethodSelectedAndCodeModifiedHolder
-		  label: 'With Methods Actual Source'
-		  itemValue: selectorMenuCompareWithMethod
-		)
-	       (MenuItem
-		  enabled: hasExactlyTwoMethodsSelectedHolder
-		  label: 'With Each Other'
-		  itemValue: selectorMenuCompareTwoSelectedMethods
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasMethodSelectedAndSourceCodeManagerHolder
-		  label: 'With Newest in CVS Repository...'
-		  itemValue: selectorMenuCompareAgainstNewestInRepositoryUsingManagerNamed:
-		  argument: CVSSourceCodeManager
-		)
-	       (MenuItem
-		  enabled: smallTeamAvailable
-		  label: 'With SmallTeam Version on Host'
-		  submenuChannel: compareMethodWithSmallTeamVersionMenu
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    label: 'Refactor'
-	    submenuChannel: methodRefactorMenu
-	  )
-	 (MenuItem
-	    label: 'Generate'
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: methodNotImplementedInSuperclass
-		  label: 'SubclassResponsibility in SuperClass'
-		  itemValue: selectorMenuGenerateSubclassResponsibilityInSuperclass
-		)
-	       (MenuItem
-		  enabled: methodNotImplementedInClass
-		  label: 'SubclassResponsibility here'
-		  itemValue: selectorMenuGenerateSubclassResponsibilityHere
-		)
-	       (MenuItem
-		  enabled: methodIsTestAndNotImplementedInSuperclass
-		  label: 'False-returning isXXX-Test in SuperClass'
-		  itemValue: selectorMenuGenerateFalseReturnInSuperclass
-		)
-	       (MenuItem
-		  label: 'Redefinition in Subclass...'
-		  itemValue: selectorMenuGenerateRedefinitionInSubclass
-		)
-	       (MenuItem
-		  label: 'SubclassResponsibility in direct Subclasses'
-		  itemValue: selectorMenuGenerateTemplateInSubclasses
-		)
-	       (MenuItem
-		  label: 'SubclassResponsibility in all Subclasses'
-		  itemValue: selectorMenuGenerateTemplateInAllSubclasses
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: canGenerateAspectMethodHolder
-		  label: 'Aspect Method...'
-		  itemValue: selectorMenuGenerateAspectMethod
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasInstanceMethodsSelectedHolder
-		  label: 'Corresponding Instance Creation in Class'
-		  itemValue: selectorMenuGenerateCorrespondingInstanceCreationInClass
-		)
-	       (MenuItem
-		  enabled: hasClassMethodsSelectedHolder
-		  label: 'Forwarding Method in Instance Protocol'
-		  itemValue: selectorMenuGenerateForwardingMethodForInstances
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    label: 'Static Analysis (Lint)'
-	    submenuChannel: selectorCheckMenu
-	    labelImage: (ResourceRetriever ToolbarIconLibrary lint16x16Icon 'Static Analysis (Lint)')
-	  )
-	 (MenuItem
-	    label: 'Debug'
-	    submenuChannel: methodDebugMenu
-	    shortcutKey: Ctrl
-	  )
-	 (MenuItem
-	    label: 'Special'
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasMethodSelectedHolder
-		  label: 'Remove from ChangeSet'
-		  itemValue: selectorMenuCleanUpChangeSet
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'Select'
-		  isVisible: false
-		  submenu:
-		 (Menu
-		    (
-		     (MenuItem
-			label: 'Methods with String...'
-			itemValue: selectorMenuSelectMethodsWithString
-		      )
-		     (MenuItem
-			label: 'Methods Sending...'
-			itemValue: selectorMenuSelectMethodsSending
-		      )
-		     (MenuItem
-			label: 'Methods Refering to Global...'
-			itemValue: selectorMenuSelectMethodsReferingToGlobal
-		      )
-		     )
-		    nil
-		    nil
-		  )
-		)
-	       (MenuItem
-		  label: '-'
-		  isVisible: false
-		)
-	       (MenuItem
-		  enabled: methodHasPreviousVersionHolder
-		  label: 'Back to Previous Version'
-		  itemValue: selectorMenuBackToPrevious
-		)
-	       (MenuItem
-		  enabled: methodHasPreviousVersionHolder
-		  label: 'Previous Versions'
-		  itemValue: selectorMenuBrowsePreviousVersions
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasSingleMethodSelectedHolder
-		  label: 'Inspect Method'
-		  itemValue: selectorMenuInspect
-		)
-	       (MenuItem
-		  enabled: hasSingleResourceMethodSelectedHolder
-		  label: 'Edit Resource'
-		  itemValue: selectorMenuEdit
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasMethodSelectedHolder
-		  label: 'Compile with stc'
-		  itemValue: selectorMenuCompileWithSTC
-		)
-	       (MenuItem
-		  enabled: hasSingleMethodWithBytecodeSelectedHolder
-		  label: 'Decompile'
-		  itemValue: selectorMenuDecompile
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasMethodSelectedHolder
-		  label: 'Process...'
-		  itemValue: selectorMenuProcess
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasMethodsInList
-		  label: 'Copy List to Clipboard'
-		  itemValue: methodListMenuCopyList
-		)
-	       (MenuItem
-		  enabled: hasMethodsInList
-		  label: 'Copy List of Classes to Clipboard'
-		  itemValue: methodListMenuCopyListOfClasses
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasMethodSelectedHolder
+            label: 'Compare'
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: methodRedefinesSuperclassVersionHolder
+                  label: 'With Inherited Method'
+                  itemValue: selectorMenuCompareWithInherited
+                )
+               (MenuItem
+                  enabled: methodHasPreviousVersionHolder
+                  label: 'With Previous Version'
+                  itemValue: selectorMenuCompareWithPreviousVersion
+                )
+               (MenuItem
+                  enabled: methodIsShadowedHolder
+                  label: 'With Shadowed Method'
+                  itemValue: selectorMenuCompareWithShadowedMethod
+                )
+               (MenuItem
+                  enabled: hasSingleMethodSelectedAndCodeModifiedHolder
+                  label: 'With Method''s Actual Source'
+                  itemValue: selectorMenuCompareWithMethod
+                )
+               (MenuItem
+                  enabled: hasExactlyTwoMethodsSelectedHolder
+                  label: 'With Each Other'
+                  itemValue: selectorMenuCompareTwoSelectedMethods
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasMethodSelectedAndSourceCodeManagerHolder
+                  label: 'With Newest in CVS Repository...'
+                  itemValue: selectorMenuCompareAgainstNewestInRepositoryUsingManagerNamed:
+                  argument: CVSSourceCodeManager
+                )
+               (MenuItem
+                  enabled: smallTeamAvailable
+                  label: 'With SmallTeam Version on Host'
+                  submenuChannel: compareMethodWithSmallTeamVersionMenu
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            label: 'Refactor'
+            submenuChannel: methodRefactorMenu
+          )
+         (MenuItem
+            label: 'Generate'
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: methodNotImplementedInSuperclass
+                  label: 'SubclassResponsibility in SuperClass'
+                  itemValue: selectorMenuGenerateSubclassResponsibilityInSuperclass
+                )
+               (MenuItem
+                  enabled: methodNotImplementedInClass
+                  label: 'SubclassResponsibility here'
+                  itemValue: selectorMenuGenerateSubclassResponsibilityHere
+                )
+               (MenuItem
+                  enabled: methodIsTestAndNotImplementedInSuperclass
+                  label: 'False-returning isXXX-Test in SuperClass'
+                  itemValue: selectorMenuGenerateFalseReturnInSuperclass
+                )
+               (MenuItem
+                  label: 'Redefinition in Subclass...'
+                  itemValue: selectorMenuGenerateRedefinitionInSubclass
+                )
+               (MenuItem
+                  label: 'SubclassResponsibility in direct Subclasses'
+                  itemValue: selectorMenuGenerateTemplateInSubclasses
+                )
+               (MenuItem
+                  label: 'SubclassResponsibility in all Subclasses'
+                  itemValue: selectorMenuGenerateTemplateInAllSubclasses
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: canGenerateAspectMethodHolder
+                  label: 'Aspect Method...'
+                  itemValue: selectorMenuGenerateAspectMethod
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasInstanceMethodsSelectedHolder
+                  label: 'Corresponding Instance Creation in Class'
+                  itemValue: selectorMenuGenerateCorrespondingInstanceCreationInClass
+                )
+               (MenuItem
+                  enabled: hasClassMethodsSelectedHolder
+                  label: 'Forwarding Method in Instance Protocol'
+                  itemValue: selectorMenuGenerateForwardingMethodForInstances
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            label: 'Static Analysis (Lint)'
+            submenuChannel: selectorCheckMenu
+            labelImage: (ResourceRetriever ToolbarIconLibrary lint16x16Icon 'Static Analysis (Lint)')
+          )
+         (MenuItem
+            label: 'Debug'
+            submenuChannel: methodDebugMenu
+            shortcutKey: Ctrl
+          )
+         (MenuItem
+            label: 'Special'
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasMethodSelectedHolder
+                  label: 'Remove from ChangeSet'
+                  itemValue: selectorMenuCleanUpChangeSet
+                )
+               (MenuItem
+                  enabled: hasMethodSelectedHolder
+                  label: 'Remove Class from ChangeSet'
+                  itemValue: selectorMenuCleanUpChangeSetForClass
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'Select'
+                  isVisible: false
+                  submenu:
+                 (Menu
+                    (
+                     (MenuItem
+                        label: 'Methods with String...'
+                        itemValue: selectorMenuSelectMethodsWithString
+                      )
+                     (MenuItem
+                        label: 'Methods Sending...'
+                        itemValue: selectorMenuSelectMethodsSending
+                      )
+                     (MenuItem
+                        label: 'Methods Refering to Global...'
+                        itemValue: selectorMenuSelectMethodsReferingToGlobal
+                      )
+                     )
+                    nil
+                    nil
+                  )
+                )
+               (MenuItem
+                  label: '-'
+                  isVisible: false
+                )
+               (MenuItem
+                  enabled: methodHasPreviousVersionHolder
+                  label: 'Back to Previous Version'
+                  itemValue: selectorMenuBackToPrevious
+                )
+               (MenuItem
+                  enabled: methodHasPreviousVersionHolder
+                  label: 'Previous Versions'
+                  itemValue: selectorMenuBrowsePreviousVersions
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasSingleMethodSelectedHolder
+                  label: 'Inspect Method'
+                  itemValue: selectorMenuInspect
+                )
+               (MenuItem
+                  enabled: hasSingleResourceMethodSelectedHolder
+                  label: 'Edit Resource'
+                  itemValue: selectorMenuEdit
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasMethodSelectedHolder
+                  label: 'Compile with stc'
+                  itemValue: selectorMenuCompileWithSTC
+                )
+               (MenuItem
+                  enabled: hasSingleMethodWithBytecodeSelectedHolder
+                  label: 'Decompile'
+                  itemValue: selectorMenuDecompile
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasMethodSelectedHolder
+                  label: 'Process...'
+                  itemValue: selectorMenuProcess
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasMethodsInList
+                  label: 'Copy List to Clipboard'
+                  itemValue: methodListMenuCopyList
+                )
+               (MenuItem
+                  enabled: hasMethodsInList
+                  label: 'Copy List of Classes to Clipboard'
+                  itemValue: methodListMenuCopyListOfClasses
+                )
+               )
+              nil
+              nil
+            )
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -11288,165 +11596,165 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasMethodSelectedHolder
-	    label: 'Copy...'
-	    itemValue: selectorMenuCopy
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    enabled: hasMethodSelectedHolder
-	    label: 'Move'
-	    translateLabel: true
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasMethodSelectedHolder
-		  label: 'To Protocol...'
-		  itemValue: selectorMenuMoveToProtocol
-		  translateLabel: true
-		)
-	       (MenuItem
-		  enabled: hasMethodSelectedHolder
-		  label: 'To Class...'
-		  itemValue: selectorMenuMoveToClass
-		  translateLabel: true
-		)
-	       (MenuItem
-		  enabled: hasClassMethodsSelectedHolder
-		  label: 'To Class with Forwarding...'
-		  itemValue: selectorMenuMoveToClassWithForwarding
-		  translateLabel: true
-		)
-	       (MenuItem
-		  enabled: hasMethodSelectedHolder
-		  label: 'To Package...'
-		  itemValue: selectorMenuMoveToProject
-		  translateLabel: true
-		)
-	       (MenuItem
-		  enabled: hasExtensionMethodSelectedHolder
-		  label: 'To Classes Package'
-		  itemValue: selectorMenuMoveToClassProject
-		  translateLabel: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasInstanceMethodsSelectedHolder
-		  label: 'To Class Protocol (Make Class Method)'
-		  itemValue: selectorMenuMakeClassMethod
-		  translateLabel: true
-		)
-	       (MenuItem
-		  enabled: hasInstanceMethodsSelectedHolder
-		  label: 'To Class Protocol (Make Class Method) with Forwarding'
-		  itemValue: selectorMenuMakeClassMethodWithForwarding
-		  translateLabel: true
-		)
-	       (MenuItem
-		  enabled: hasClassMethodsSelectedHolder
-		  label: 'To Instance Protocol (Make Instance Method)'
-		  itemValue: selectorMenuMakeInstanceMethod
-		  translateLabel: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasMethodSelectedAndCanUseRefactoringSupportHolder
-		  label: 'Push Up'
-		  itemValue: selectorMenuPushUpMethod
-		  translateLabel: true
-		)
-	       (MenuItem
-		  enabled: hasMethodSelectedAndCanUseRefactoringSupportHolder
-		  label: 'Push Down'
-		  itemValue: selectorMenuPushDownMethod
-		  translateLabel: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    enabled: hasMethodSelectedHolder
-	    label: 'Visibility'
-	    translateLabel: true
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasAnyNonPublicMethodSelectedHolder
-		  label: 'Public'
-		  itemValue: selectorMenuMakePublic
-		  translateLabel: true
-		)
-	       (MenuItem
-		  enabled: hasAnyNonProtectedMethodSelectedHolder
-		  label: 'Protected'
-		  itemValue: selectorMenuMakeProtected
-		  translateLabel: true
-		  labelImage: (ResourceRetriever SystemBrowser protectedMethodIcon 'Protected')
-		)
-	       (MenuItem
-		  enabled: hasAnyNonPrivateMethodSelectedHolder
-		  label: 'Private'
-		  itemValue: selectorMenuMakePrivate
-		  translateLabel: true
-		  labelImage: (ResourceRetriever SystemBrowser privateMethodIcon 'Private')
-		)
-	       (MenuItem
-		  enabled: hasAnyNonIgnoredMethodSelectedHolder
-		  label: 'Ignored'
-		  itemValue: selectorMenuMakeIgnored
-		  translateLabel: true
-		  labelImage: (ResourceRetriever SystemBrowser ignoredMethodIcon 'Ignored')
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasMethodSelectedHolder
-		  label: 'Mark as Obsolete'
-		  itemValue: selectorMenuMarkAsObsolete
-		  translateLabel: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    enabled: hasMethodSelectedAndCanUseRefactoringSupportHolder
-	    label: 'Rename...'
-	    itemValue: selectorMenuRename
-	    translateLabel: true
-	    shortcutKey: Rename
-	    ignoreShortcutKeys: true
-	  )
-	 (MenuItem
-	    enabled: hasMethodSelectedAndCanUseRefactoringSupportHolder
-	    label: 'Safe Remove...'
-	    itemValue: selectorMenuSaveRemove
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    enabled: hasMethodSelectedHolder
-	    label: 'Remove...'
-	    itemValue: selectorMenuRemove
-	    translateLabel: true
-	    shortcutKey: Delete
-	    labelImage: (ResourceRetriever ToolbarIconLibrary erase16x16Icon 'Remove...')
-	    ignoreShortcutKeys: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasMethodSelectedHolder
+            label: 'Copy...'
+            itemValue: selectorMenuCopy
+            translateLabel: true
+          )
+         (MenuItem
+            enabled: hasMethodSelectedHolder
+            label: 'Move'
+            translateLabel: true
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasMethodSelectedHolder
+                  label: 'To Protocol...'
+                  itemValue: selectorMenuMoveToProtocol
+                  translateLabel: true
+                )
+               (MenuItem
+                  enabled: hasMethodSelectedHolder
+                  label: 'To Class...'
+                  itemValue: selectorMenuMoveToClass
+                  translateLabel: true
+                )
+               (MenuItem
+                  enabled: hasClassMethodsSelectedHolder
+                  label: 'To Class with Forwarding...'
+                  itemValue: selectorMenuMoveToClassWithForwarding
+                  translateLabel: true
+                )
+               (MenuItem
+                  enabled: hasMethodSelectedHolder
+                  label: 'To Package...'
+                  itemValue: selectorMenuMoveToProject
+                  translateLabel: true
+                )
+               (MenuItem
+                  enabled: hasExtensionMethodSelectedHolder
+                  label: 'To Classes Package'
+                  itemValue: selectorMenuMoveToClassProject
+                  translateLabel: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasInstanceMethodsSelectedHolder
+                  label: 'To Class Protocol (Make Class Method)'
+                  itemValue: selectorMenuMakeClassMethod
+                  translateLabel: true
+                )
+               (MenuItem
+                  enabled: hasInstanceMethodsSelectedHolder
+                  label: 'To Class Protocol (Make Class Method) with Forwarding'
+                  itemValue: selectorMenuMakeClassMethodWithForwarding
+                  translateLabel: true
+                )
+               (MenuItem
+                  enabled: hasClassMethodsSelectedHolder
+                  label: 'To Instance Protocol (Make Instance Method)'
+                  itemValue: selectorMenuMakeInstanceMethod
+                  translateLabel: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasMethodSelectedAndCanUseRefactoringSupportHolder
+                  label: 'Push Up'
+                  itemValue: selectorMenuPushUpMethod
+                  translateLabel: true
+                )
+               (MenuItem
+                  enabled: hasMethodSelectedAndCanUseRefactoringSupportHolder
+                  label: 'Push Down'
+                  itemValue: selectorMenuPushDownMethod
+                  translateLabel: true
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            enabled: hasMethodSelectedHolder
+            label: 'Visibility'
+            translateLabel: true
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasAnyNonPublicMethodSelectedHolder
+                  label: 'Public'
+                  itemValue: selectorMenuMakePublic
+                  translateLabel: true
+                )
+               (MenuItem
+                  enabled: hasAnyNonProtectedMethodSelectedHolder
+                  label: 'Protected'
+                  itemValue: selectorMenuMakeProtected
+                  translateLabel: true
+                  labelImage: (ResourceRetriever SystemBrowser protectedMethodIcon 'Protected')
+                )
+               (MenuItem
+                  enabled: hasAnyNonPrivateMethodSelectedHolder
+                  label: 'Private'
+                  itemValue: selectorMenuMakePrivate
+                  translateLabel: true
+                  labelImage: (ResourceRetriever SystemBrowser privateMethodIcon 'Private')
+                )
+               (MenuItem
+                  enabled: hasAnyNonIgnoredMethodSelectedHolder
+                  label: 'Ignored'
+                  itemValue: selectorMenuMakeIgnored
+                  translateLabel: true
+                  labelImage: (ResourceRetriever SystemBrowser ignoredMethodIcon 'Ignored')
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasMethodSelectedHolder
+                  label: 'Mark as Obsolete'
+                  itemValue: selectorMenuMarkAsObsolete
+                  translateLabel: true
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            enabled: hasMethodSelectedAndCanUseRefactoringSupportHolder
+            label: 'Rename...'
+            itemValue: selectorMenuRename
+            translateLabel: true
+            shortcutKey: Rename
+            ignoreShortcutKeys: true
+          )
+         (MenuItem
+            enabled: hasMethodSelectedAndCanUseRefactoringSupportHolder
+            label: 'Safe Remove...'
+            itemValue: selectorMenuSaveRemove
+            translateLabel: true
+          )
+         (MenuItem
+            enabled: hasMethodSelectedHolder
+            label: 'Remove...'
+            itemValue: selectorMenuRemove
+            translateLabel: true
+            shortcutKey: Delete
+            labelImage: (ResourceRetriever ToolbarIconLibrary erase16x16Icon 'Remove...')
+            ignoreShortcutKeys: true
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -11467,66 +11775,73 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasMethodSelectedHolder
-	    label: 'FileOut'
-	    translateLabel: true
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasMethodSelectedHolder
-		  label: 'as...'
-		  itemValue: selectorMenuFileOutAs
-		  translateLabel: true
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasMethodSelectedAndCanFileOutXMLHolder
-		  label: 'XML as...'
-		  itemValue: selectorMenuFileOutXMLAs
-		  translateLabel: true
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasMethodSelectedAndCanFileOutSIFHolder
-		  label: 'SIF as...'
-		  itemValue: selectorMenuFileOutSIFAs
-		  translateLabel: true
-		  showBusyCursorWhilePerforming: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    label: 'Repository'
-	    translateLabel: true
-	    submenuChannel: selectorMenuSCMSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: 'SmallTeam'
-	    translateLabel: true
-	    isVisible: smallTeamAvailable
-	    submenuChannel: selectorSmallTeamMenu
-	    keepLinkedMenu: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasMethodSelectedHolder
-	    label: 'PrintOut'
-	    itemValue: selectorMenuPrintOut
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasMethodSelectedHolder
+            label: 'FileOut'
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasMethodSelectedHolder
+                  label: 'As...'
+                  itemValue: selectorMenuFileOutAs
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasMethodSelectedHolder
+                  label: 'Special Formats'
+                  submenu:
+                 (Menu
+                    (
+                     (MenuItem
+                        enabled: hasMethodSelectedAndCanFileOutXMLHolder
+                        label: 'XML as...'
+                        itemValue: selectorMenuFileOutXMLAs
+                        showBusyCursorWhilePerforming: true
+                      )
+                     (MenuItem
+                        label: '-'
+                      )
+                     (MenuItem
+                        enabled: hasMethodSelectedAndCanFileOutSIFHolder
+                        label: 'SIF as...'
+                        itemValue: selectorMenuFileOutSIFAs
+                        showBusyCursorWhilePerforming: true
+                      )
+                     )
+                    nil
+                    nil
+                  )
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            label: 'Repository'
+            submenuChannel: selectorMenuSCMSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: 'SmallTeam'
+            isVisible: smallTeamAvailable
+            submenuChannel: selectorSmallTeamMenu
+            keepLinkedMenu: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasMethodSelectedHolder
+            label: 'PrintOut'
+            itemValue: selectorMenuPrintOut
+            showBusyCursorWhilePerforming: true
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -11547,60 +11862,60 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'Senders...'
-	    itemValue: browseSendersOf
-	  )
-	 (MenuItem
-	    label: 'Senders of Any...'
-	    itemValue: browseSendersOfAny
-	    isVisible: hasMultipleMethodsSelectedHolder
-	  )
-	 (MenuItem
-	    label: 'Senders'
-	    isVisible: hasSingleMethodSelectedHolder
-	    submenuChannel: sentMessagesMenu
-	  )
-	 (MenuItem
-	    label: 'Implementors...'
-	    itemValue: browseMenuImplementorsOf
-	    shortcutKey: Cmdi
-	    ignoreShortcutKeys: true
-	  )
-	 (MenuItem
-	    label: 'Implementors of Any...'
-	    itemValue: browseMenuImplementorsOfAny
-	    isVisible: hasMultipleMethodsSelectedHolder
-	  )
-	 (MenuItem
-	    label: 'Implementors'
-	    translateLabel: true
-	    "/ isVisible: hasSingleMethodSelectedHolder
-	    submenuChannel: implementedMessagesMenu
-	  )
-	 (MenuItem
-	    label: 'Follow Implementation'
-	    submenuChannel: followImplementorMessagesMenu
-	    enabled: hasMethodWithSelfSendSelected
-	  )
-	 (MenuItem
-	    label: 'Globals'
-	    submenuChannel: globalReferencesMenu
-	  )
-	 (MenuItem
-	    label: 'String Search...'
-	    itemValue: browseMenuMethodsWithString
-	    shortcutKey: Cmdt
-	    ignoreShortcutKeys: true
-	  )
-	 (MenuItem
-	    label: 'Code Search...'
-	    itemValue: browseMenuMethodsWithCode
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: 'Senders...'
+            itemValue: browseSendersOf
+          )
+         (MenuItem
+            label: 'Senders of Any...'
+            itemValue: browseSendersOfAny
+            isVisible: hasMultipleMethodsSelectedHolder
+          )
+         (MenuItem
+            label: 'Senders'
+            isVisible: hasSingleMethodSelectedHolder
+            submenuChannel: sentMessagesMenu
+          )
+         (MenuItem
+            label: 'Implementors...'
+            itemValue: browseMenuImplementorsOf
+            shortcutKey: Cmdi
+            ignoreShortcutKeys: true
+          )
+         (MenuItem
+            label: 'Implementors of Any...'
+            itemValue: browseMenuImplementorsOfAny
+            isVisible: hasMultipleMethodsSelectedHolder
+          )
+         (MenuItem
+            label: 'Implementors'
+            translateLabel: true
+            "/ isVisible: hasSingleMethodSelectedHolder
+            submenuChannel: implementedMessagesMenu
+          )
+         (MenuItem
+            label: 'Follow Implementation'
+            submenuChannel: followImplementorMessagesMenu
+            enabled: hasMethodWithSelfSendSelected
+          )
+         (MenuItem
+            label: 'Globals'
+            submenuChannel: globalReferencesMenu
+          )
+         (MenuItem
+            label: 'String Search...'
+            itemValue: browseMenuMethodsWithString
+            shortcutKey: Cmdt
+            ignoreShortcutKeys: true
+          )
+         (MenuItem
+            label: 'Code Search...'
+            itemValue: browseMenuMethodsWithCode
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -11620,179 +11935,179 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasMethodSelectedHolder
-	    label: 'Spawn'
-	    translateLabel: true
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasMethodSelectedHolder
-		  label: 'Buffer with Full Class(es)'
-		  itemValue: classMenuSpawnFullBrowserIn:
-		  argument: #newBuffer
-		  translateLabel: true
-		  "/ isVisible: isMethodListBrowserOrHasMultipleClassesSelectedHolder
-		)
-	       (MenuItem
-		  enabled: hasMethodSelectedHolder
-		  label: 'Buffer with Class(es)'
-		  itemValue: methodListMenuSpawnClassesBuffer
-		  translateLabel: true
-		  isVisible: isMethodListBrowserOrHasMultipleClassesSelectedHolder
-		)
-	       (MenuItem
-		  enabled: hasMethodSelectedHolder
-		  label: 'Buffer with References to Class'
-		  itemValue: methodListMenuSpawnBufferWithClassReferences
-		  translateLabel: true
-		)
-	       (MenuItem
-		  enabled: hasMethodSelectedHolder
-		  label: 'Buffer with References to Class or Subclass'
-		  itemValue: methodListMenuSpawnBufferWithClassOrSubclassReferences
-		  translateLabel: true
-		)
-	       (MenuItem
-		  enabled: hasMultipleMethodsSelectedHolder
-		  label: 'Buffer with Common Superclass'
-		  itemValue: methodListMenuSpawnBufferWithCommonSuperclass
-		  translateLabel: true
-		)
-	       (MenuItem
-		  enabled: hasMethodSelectedHolder
-		  label: 'Buffer'
-		  itemValue: selectorMenuSpawnMethodBuffer
-		  translateLabel: true
-		)
-	       (MenuItem
-		  enabled: hasMethodSelectedHolder
-		  label: 'Buffer with Implementors'
-		  itemValue: selectorMenuSpawnImplementorsBuffer
-		  translateLabel: true
-		  isVisible: false
-		)
-	       (MenuItem
-		  enabled: hasMethodSelectedHolder
-		  label: 'Buffer with Senders'
-		  itemValue: selectorMenuSpawnSendersBuffer
-		  translateLabel: true
-		  isVisible: false
-		)
-	       (MenuItem
-		  enabled: hasRealExtensionMethodSelectedHolder
-		  label: 'Buffer with Extensions for Project'
-		  itemValue: selectorMenuSpawnProjectExtensionsBuffer
-		  translateLabel: true
-		  isVisible: hasExtensionMethodSelectedHolder
-		)
-	       (MenuItem
-		  enabled: hasRealExtensionMethodSelectedHolder
-		  label: 'Buffer with Extension''s Project'
-		  itemValue: selectorMenuSpawnExtensionsProjectBuffer
-		  translateLabel: true
-		  isVisible: hasExtensionMethodSelectedHolder
-		)
-	       (MenuItem
-		  enabled: hasUnassignedExtensionMethodSelectedHolder
-		  label: 'Buffer with Unassigned Extensions'
-		  itemValue: selectorMenuSpawnProjectExtensionsBuffer
-		  translateLabel: true
-		  isVisible: hasExtensionMethodSelectedHolder
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasMethodSelectedHolder
-		  label: 'Browser on Full Class(es)'
-		  itemValue: classMenuSpawnFullBrowserIn:
-		  argument: #newBrowser
-		  translateLabel: true
-		  "/ isVisible: isMethodListBrowserOrHasMultipleClassesSelectedHolder
-		)
-	       (MenuItem
-		  enabled: hasMethodSelectedHolder
-		  label: 'Browser on Class(es)'
-		  itemValue: methodListMenuSpawnClasses
-		  translateLabel: true
-		  isVisible: isMethodListBrowserOrHasMultipleClassesSelectedHolder
-		)
-	       (MenuItem
-		  enabled: hasMethodSelectedHolder
-		  label: 'Browser on References to Class'
-		  itemValue: methodListMenuSpawnClassReferences
-		  translateLabel: true
-		)
-	       (MenuItem
-		  enabled: hasMethodSelectedHolder
-		  label: 'Browser on References to Class or Subclass'
-		  itemValue: methodListMenuSpawnClassOrSubclassReferences
-		  translateLabel: true
-		)
-	       (MenuItem
-		  enabled: hasMultipleMethodsSelectedHolder
-		  label: 'Browser on Common Superclass'
-		  itemValue: methodListMenuSpawnCommonSuperclass
-		  translateLabel: true
-		)
-	       (MenuItem
-		  enabled: hasMethodSelectedHolder
-		  label: 'Browser'
-		  itemValue: selectorMenuSpawnMethod
-		  translateLabel: true
-		)
-	       (MenuItem
-		  enabled: hasMethodSelectedHolder
-		  label: 'Browser on Implementors'
-		  itemValue: selectorMenuSpawnImplementors
-		  translateLabel: true
-		  isVisible: false
-		)
-	       (MenuItem
-		  enabled: hasMethodSelectedHolder
-		  label: 'Browser on Senders'
-		  itemValue: selectorMenuSpawnSenders
-		  translateLabel: true
-		  isVisible: false
-		)
-	       (MenuItem
-		  enabled: hasRealExtensionMethodSelectedHolder
-		  label: 'Browser on Extensions for Project'
-		  itemValue: selectorMenuSpawnProjectExtensions
-		  translateLabel: true
-		  isVisible: hasExtensionMethodSelectedHolder
-		)
-	       (MenuItem
-		  enabled: hasRealExtensionMethodSelectedHolder
-		  label: 'Browser on Extension''s Project'
-		  itemValue: selectorMenuSpawnExtensionsProject
-		  translateLabel: true
-		  isVisible: hasExtensionMethodSelectedHolder
-		)
-	       (MenuItem
-		  enabled: hasUnassignedExtensionMethodSelectedHolder
-		  label: 'Browser on Unassigned Extensions'
-		  itemValue: selectorMenuSpawnProjectExtensions
-		  translateLabel: true
-		  isVisible: hasExtensionMethodSelectedHolder
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    enabled: hasMethodSelectedHolder
-	    label: 'Inheritance'
-	    itemValue: selectorMenuSpawnInheritanceBuffer
-	    translateLabel: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasMethodSelectedHolder
+            label: 'Spawn'
+            translateLabel: true
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasMethodSelectedHolder
+                  label: 'Buffer with Full Class(es)'
+                  itemValue: classMenuSpawnFullBrowserIn:
+                  argument: #newBuffer
+                  translateLabel: true
+                  "/ isVisible: isMethodListBrowserOrHasMultipleClassesSelectedHolder
+                )
+               (MenuItem
+                  enabled: hasMethodSelectedHolder
+                  label: 'Buffer with Class(es)'
+                  itemValue: methodListMenuSpawnClassesBuffer
+                  translateLabel: true
+                  isVisible: isMethodListBrowserOrHasMultipleClassesSelectedHolder
+                )
+               (MenuItem
+                  enabled: hasMethodSelectedHolder
+                  label: 'Buffer with References to Class'
+                  itemValue: methodListMenuSpawnBufferWithClassReferences
+                  translateLabel: true
+                )
+               (MenuItem
+                  enabled: hasMethodSelectedHolder
+                  label: 'Buffer with References to Class or Subclass'
+                  itemValue: methodListMenuSpawnBufferWithClassOrSubclassReferences
+                  translateLabel: true
+                )
+               (MenuItem
+                  enabled: hasMultipleMethodsSelectedHolder
+                  label: 'Buffer with Common Superclass'
+                  itemValue: methodListMenuSpawnBufferWithCommonSuperclass
+                  translateLabel: true
+                )
+               (MenuItem
+                  enabled: hasMethodSelectedHolder
+                  label: 'Buffer'
+                  itemValue: selectorMenuSpawnMethodBuffer
+                  translateLabel: true
+                )
+               (MenuItem
+                  enabled: hasMethodSelectedHolder
+                  label: 'Buffer with Implementors'
+                  itemValue: selectorMenuSpawnImplementorsBuffer
+                  translateLabel: true
+                  isVisible: false
+                )
+               (MenuItem
+                  enabled: hasMethodSelectedHolder
+                  label: 'Buffer with Senders'
+                  itemValue: selectorMenuSpawnSendersBuffer
+                  translateLabel: true
+                  isVisible: false
+                )
+               (MenuItem
+                  enabled: hasRealExtensionMethodSelectedHolder
+                  label: 'Buffer with Extensions for Project'
+                  itemValue: selectorMenuSpawnProjectExtensionsBuffer
+                  translateLabel: true
+                  isVisible: hasExtensionMethodSelectedHolder
+                )
+               (MenuItem
+                  enabled: hasRealExtensionMethodSelectedHolder
+                  label: 'Buffer with Extension''s Project'
+                  itemValue: selectorMenuSpawnExtensionsProjectBuffer
+                  translateLabel: true
+                  isVisible: hasExtensionMethodSelectedHolder
+                )
+               (MenuItem
+                  enabled: hasUnassignedExtensionMethodSelectedHolder
+                  label: 'Buffer with Unassigned Extensions'
+                  itemValue: selectorMenuSpawnProjectExtensionsBuffer
+                  translateLabel: true
+                  isVisible: hasExtensionMethodSelectedHolder
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasMethodSelectedHolder
+                  label: 'Browser on Full Class(es)'
+                  itemValue: classMenuSpawnFullBrowserIn:
+                  argument: #newBrowser
+                  translateLabel: true
+                  "/ isVisible: isMethodListBrowserOrHasMultipleClassesSelectedHolder
+                )
+               (MenuItem
+                  enabled: hasMethodSelectedHolder
+                  label: 'Browser on Class(es)'
+                  itemValue: methodListMenuSpawnClasses
+                  translateLabel: true
+                  isVisible: isMethodListBrowserOrHasMultipleClassesSelectedHolder
+                )
+               (MenuItem
+                  enabled: hasMethodSelectedHolder
+                  label: 'Browser on References to Class'
+                  itemValue: methodListMenuSpawnClassReferences
+                  translateLabel: true
+                )
+               (MenuItem
+                  enabled: hasMethodSelectedHolder
+                  label: 'Browser on References to Class or Subclass'
+                  itemValue: methodListMenuSpawnClassOrSubclassReferences
+                  translateLabel: true
+                )
+               (MenuItem
+                  enabled: hasMultipleMethodsSelectedHolder
+                  label: 'Browser on Common Superclass'
+                  itemValue: methodListMenuSpawnCommonSuperclass
+                  translateLabel: true
+                )
+               (MenuItem
+                  enabled: hasMethodSelectedHolder
+                  label: 'Browser'
+                  itemValue: selectorMenuSpawnMethod
+                  translateLabel: true
+                )
+               (MenuItem
+                  enabled: hasMethodSelectedHolder
+                  label: 'Browser on Implementors'
+                  itemValue: selectorMenuSpawnImplementors
+                  translateLabel: true
+                  isVisible: false
+                )
+               (MenuItem
+                  enabled: hasMethodSelectedHolder
+                  label: 'Browser on Senders'
+                  itemValue: selectorMenuSpawnSenders
+                  translateLabel: true
+                  isVisible: false
+                )
+               (MenuItem
+                  enabled: hasRealExtensionMethodSelectedHolder
+                  label: 'Browser on Extensions for Project'
+                  itemValue: selectorMenuSpawnProjectExtensions
+                  translateLabel: true
+                  isVisible: hasExtensionMethodSelectedHolder
+                )
+               (MenuItem
+                  enabled: hasRealExtensionMethodSelectedHolder
+                  label: 'Browser on Extension''s Project'
+                  itemValue: selectorMenuSpawnExtensionsProject
+                  translateLabel: true
+                  isVisible: hasExtensionMethodSelectedHolder
+                )
+               (MenuItem
+                  enabled: hasUnassignedExtensionMethodSelectedHolder
+                  label: 'Browser on Unassigned Extensions'
+                  itemValue: selectorMenuSpawnProjectExtensions
+                  translateLabel: true
+                  isVisible: hasExtensionMethodSelectedHolder
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            enabled: hasMethodSelectedHolder
+            label: 'Inheritance'
+            itemValue: selectorMenuSpawnInheritanceBuffer
+            translateLabel: true
+          )
+         )
+        nil
+        nil
       )
 
     "Modified: / 28-02-2012 / 09:06:15 / cg"
@@ -11814,27 +12129,47 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasMethodSelected
-	    label: 'Load Version from Host'
-	    translateLabel: true
-	    submenuChannel: loadMethodFromSmallTeamHostMenu
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasMethodSelected
-	    label: 'Compare with Version On Host'
-	    translateLabel: true
-	    submenuChannel: compareMethodWithSmallTeamVersionMenu
-	    keepLinkedMenu: true
-	  )
-	 )
-	nil
-	nil
-      )
+        (
+         (MenuItem
+            enabled: hasMethodSelected
+            label: 'Load Version from Host'
+            translateLabel: true
+            submenuChannel: loadMethodFromSmallTeamHostMenu
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasMethodSelected
+            label: 'Compare with Version On Host'
+            translateLabel: true
+            submenuChannel: compareMethodWithSmallTeamVersionMenu
+            keepLinkedMenu: true
+          )
+         )
+        nil
+        nil
+      )
+!
+
+smellsMenu
+    <resource: #menu>
+
+    ^
+     #(Menu
+        (
+         (MenuItem
+            enabled: hasMethodSelectedHolder
+            label: 'Code Duplication...'
+            itemValue: codeMenuSmellsLikeCodeDuplication
+            translateLabel: true
+          )
+         )
+        nil
+        nil
+      )
+
+    "Modified: / 24-07-2011 / 12:34:17 / cg"
 !
 
 specialBrowseMenu
@@ -11853,85 +12188,85 @@
 
     ^
      #(#Menu
-	#(
-	 #(#MenuItem
-	    #enabled: #hasCVSSourceCodeManagerHolder
-	    #label: 'CVS Repository Diffs'
-	    #translateLabel: true
-	    #submenu:
-	   #(#Menu
-	      #(
-	       #(#MenuItem
-		  #label: 'Buffer'
-		  #itemValue: #browseMenuSpawnRepositoryDiffsInBuffer
-		  #translateLabel: true
-		)
-	       #(#MenuItem
-		  #label: '-'
-		)
-	       #(#MenuItem
-		  #label: 'Browser'
-		  #itemValue: #browseMenuSpawnRepositoryDiffs
-		  #translateLabel: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 #(#MenuItem
-	    #label: 'Full Class Source'
-	    #translateLabel: true
-	    #submenu:
-	   #(#Menu
-	      #(
-	       #(#MenuItem
-		  #label: 'Buffer'
-		  #itemValue: #browseMenuSpawnFullClassSourceInBuffer
-		  #translateLabel: true
-		)
-	       #(#MenuItem
-		  #label: '-'
-		)
-	       #(#MenuItem
-		  #label: 'Browser'
-		  #itemValue: #browseMenuSpawnFullClassSource
-		  #translateLabel: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 #(#MenuItem
-	    #label: 'Class Documentation'
-	    #translateLabel: true
-	    #submenu:
-	   #(#Menu
-	      #(
-	       #(#MenuItem
-		  #label: 'Buffer'
-		  #itemValue: #spawnClassDocumentationBrowserIn:
-		  #translateLabel: true
-		  #argument: #newBuffer
-		)
-	       #(#MenuItem
-		  #label: '-'
-		)
-	       #(#MenuItem
-		  #label: 'Browser'
-		  #itemValue: #spawnClassDocumentationBrowserIn:
-		  #translateLabel: true
-		  #argument: #newBrowser
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 )
-	nil
-	nil
+        #(
+         #(#MenuItem
+            #enabled: #hasCVSSourceCodeManagerHolder
+            #label: 'CVS Repository Diffs'
+            #translateLabel: true
+            #submenu:
+           #(#Menu
+              #(
+               #(#MenuItem
+                  #label: 'Buffer'
+                  #itemValue: #browseMenuSpawnRepositoryDiffsInBuffer
+                  #translateLabel: true
+                )
+               #(#MenuItem
+                  #label: '-'
+                )
+               #(#MenuItem
+                  #label: 'Browser'
+                  #itemValue: #browseMenuSpawnRepositoryDiffs
+                  #translateLabel: true
+                )
+               )
+              nil
+              nil
+            )
+          )
+         #(#MenuItem
+            #label: 'Full Class Source'
+            #translateLabel: true
+            #submenu:
+           #(#Menu
+              #(
+               #(#MenuItem
+                  #label: 'Buffer'
+                  #itemValue: #browseMenuSpawnFullClassSourceInBuffer
+                  #translateLabel: true
+                )
+               #(#MenuItem
+                  #label: '-'
+                )
+               #(#MenuItem
+                  #label: 'Browser'
+                  #itemValue: #browseMenuSpawnFullClassSource
+                  #translateLabel: true
+                )
+               )
+              nil
+              nil
+            )
+          )
+         #(#MenuItem
+            #label: 'Class Documentation'
+            #translateLabel: true
+            #submenu:
+           #(#Menu
+              #(
+               #(#MenuItem
+                  #label: 'Buffer'
+                  #itemValue: #spawnClassDocumentationBrowserIn:
+                  #translateLabel: true
+                  #argument: #newBuffer
+                )
+               #(#MenuItem
+                  #label: '-'
+                )
+               #(#MenuItem
+                  #label: 'Browser'
+                  #itemValue: #spawnClassDocumentationBrowserIn:
+                  #translateLabel: true
+                  #argument: #newBrowser
+                )
+               )
+              nil
+              nil
+            )
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -11952,441 +12287,449 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndCanUseRefactoringSupportHolder
-	    label: 'Add...'
-	    itemValue: variablesMenuAdd
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndCanUseRefactoringSupportHolder
-	    label: 'Add ValueHolder...'
-	    itemValue: variablesMenuAddValueHolder
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasNonMetaSelectedAndClassSelectedHolder
-	    label: 'Instance Variables'
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'All References...'
-		  itemValue: variablesMenuBrowseAllInstVarRefs
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'All Readers...'
-		  itemValue: variablesMenuBrowseAllInstVarReads
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'All Writers...'
-		  itemValue: variablesMenuBrowseAllInstVarMods
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'Local References...'
-		  itemValue: variablesMenuBrowseInstVarRefs
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'Local Readers...'
-		  itemValue: variablesMenuBrowseInstVarReads
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'Local Writers...'
-		  itemValue: variablesMenuBrowseInstVarMods
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasInstanceVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
-		  label: 'Pull Up'
-		  itemValue: variablesMenuPullUp
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasInstanceVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
-		  label: 'Push Down'
-		  itemValue: variablesMenuPushDown
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasInstanceVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
-		  label: 'Convert to ValueHolder'
-		  itemValue: codeMenuConvertToValueHolder
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasSingleVariableSelectedInCodeViewOrVariableListHolder
-		  label: 'Make Abstract (Access only via Getters/Setters)'
-		  itemValue: codeMenuMakeAbstractVariable
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasSingleVariableSelectedInCodeViewOrVariableListHolder
-		  label: 'Make Concrete (Protect from Access via Getters/Setters)'
-		  itemValue: codeMenuProtectInstanceVariable
-		  showBusyCursorWhilePerforming: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    enabled: hasMetaSelectedAndClassSelectedHolder
-	    label: 'Class Instance Variables'
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'All References...'
-		  itemValue: variablesMenuBrowseAllClassInstVarRefs
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'All Readers...'
-		  itemValue: variablesMenuBrowseAllClassInstVarReads
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'All Writers...'
-		  itemValue: variablesMenuBrowseAllClassInstVarMods
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'Local References...'
-		  itemValue: variablesMenuBrowseClassInstVarRefs
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'Local Readers...'
-		  itemValue: variablesMenuBrowseClassInstVarReads
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'Local Writers...'
-		  itemValue: variablesMenuBrowseClassInstVarMods
-		  showBusyCursorWhilePerforming: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Class Variables'
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'All References...'
-		  itemValue: variablesMenuBrowseAllClassVarRefs
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'All Readers...'
-		  itemValue: variablesMenuBrowseAllClassVarReads
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'All Writers...'
-		  itemValue: variablesMenuBrowseAllClassVarMods
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'Local References...'
-		  itemValue: variablesMenuBrowseClassVarRefs
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'Local Readers...'
-		  itemValue: variablesMenuBrowseClassVarReads
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedHolder
-		  label: 'Writers...'
-		  itemValue: variablesMenuBrowseClassVarMods
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasClassVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
-		  label: 'Pull Up'
-		  itemValue: variablesMenuPullUp
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasClassVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
-		  label: 'Push Down'
-		  itemValue: variablesMenuPushDown
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasClassVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
-		  label: 'Make Abstract (Access only via Getters/Setters)'
-		  itemValue: codeMenuMakeAbstractVariable
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasClassVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
-		  label: 'Make Concrete (Protect from Access via Getters/Setters)'
-		  itemValue: codeMenuProtectClassVariable
-		  showBusyCursorWhilePerforming: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    enabled: hasSharedPoolSelectedHolder
-	    label: 'Pool Variables'
-	    submenuChannel: classPoolVariablesMenu
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Move'
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasVariablesFromSingleClassSelectedAndCanUseRefactoringSupportHolder
-		  label: 'Pull Up'
-		  itemValue: variablesMenuPullUp
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasVariablesFromSingleClassSelectedAndCanUseRefactoringSupportHolder
-		  label: 'Push Down'
-		  itemValue: variablesMenuPushDown
-		  showBusyCursorWhilePerforming: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassAndSingleVariableSelectedAndCanUseRefactoringSupportHolder
-	    label: 'Rename...'
-	    itemValue: variablesMenuRename
-	    shortcutKey: Rename
-	    showBusyCursorWhilePerforming: true
-	    ignoreShortcutKeys: true
-	  )
-	 (MenuItem
-	    enabled: hasClassesWithCommonSuperclassAndVariableSelectedAndCanUseRefactoringSupportHolder
-	    label: 'Remove'
-	    itemValue: variablesMenuRemove
-	    labelImage: (ResourceRetriever ToolbarIconLibrary erase16x16Icon 'Remove')
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasVariableSelected
-	    label: 'Copy Selected Name'
-	    itemValue: variablesMenuCopySelectedName
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: false
-	  )
-	 (MenuItem
-	    enabled: hasVariableSelected
-	    label: 'Find Variable'
-	    itemValue: doFindVariable
-	    isVisible: false
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Show ClassVars (Statics)'
-	    hideMenuOnActivated: false
-	    indication: showClassVarsInVariableList
-	  )
-	 (MenuItem
-	    label: 'Sort by Name'
-	    hideMenuOnActivated: false
-	    indication: sortVariablesByName
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedHolder
-	    label: 'Generate'
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: canGenerateAccessMethodsHolder
-		  label: 'Access Methods'
-		  itemValue: variablesMenuGenerateAccessMethods
-		  isVisible: hasVariableSelected
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: canGenerateAccessMethodsForAllHolder
-		  label: 'Access Methods for All'
-		  itemValue: variablesMenuGenerateAccessMethodsForAll
-		  isVisible: hasNoVariableSelected
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: canGenerateAccessMethodsHolder
-		  label: 'Getter Method(s)'
-		  itemValue: variablesMenuGenerateGetterMethods
-		  isVisible: hasVariableSelected
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: canGenerateAccessMethodsForAllHolder
-		  label: 'Getter Method(s) for All'
-		  itemValue: variablesMenuGenerateGetterMethodsForAll
-		  isVisible: hasNoVariableSelected
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: canGenerateAccessMethodsHolder
-		  label: 'Setter Method(s)'
-		  itemValue: variablesMenuGenerateSetterMethods
-		  isVisible: hasVariableSelected
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: canGenerateAccessMethodsForAllHolder
-		  label: 'Setter Method(s) for All'
-		  itemValue: variablesMenuGenerateSetterMethodsForAll
-		  isVisible: hasNoVariableSelected
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: canGenerateMultiSetterMethodHolder
-		  label: 'Multi-Setter Method'
-		  itemValue: variablesMenuGenerateMultiSetterMethod
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		  isVisible: hasNonMetaSelectedHolder
-		)
-	       (MenuItem
-		  enabled: canGenerateAccessMethodsHolder
-		  label: 'Access Methods with Lazy Initialization in Getter'
-		  itemValue: variablesMenuGenerateAccessMethodsWithLazyInitialization
-		  isVisible: hasNonMetaSelectedHolder
-		)
-	       (MenuItem
-		  enabled: canGenerateAccessMethodsHolder
-		  label: 'Access Methods with Change Notification'
-		  itemValue: variablesMenuGenerateAccessMethodsWithChange
-		  isVisible: hasNonMetaSelectedHolder
-		)
-	       (MenuItem
-		  enabled: canGenerateAccessMethodsHolder
-		  label: 'Access Methods for ValueHolder'
-		  itemValue: variablesMenuGenerateAccessMethodsForValueHolder
-		  isVisible: hasNonMetaSelectedHolder
-		)
-	       (MenuItem
-		  enabled: canGenerateAccessMethodsHolder
-		  label: 'Access Methods for ValueHolder with Change Notification'
-		  itemValue: variablesMenuGenerateAccessMethodsForValueHolderWithChange
-		  isVisible: hasNonMetaSelectedHolder
-		)
-	       (MenuItem
-		  enabled: canGenerateAccessMethodsHolder
-		  label: 'Collection Access Methods'
-		  itemValue: variablesMenuGenerateCollectionAccessMethods
-		  isVisible: hasNonMetaSelectedHolder
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    label: 'Debug'
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasClassVariableSelectedHolder
-		  label: 'Inspect...'
-		  itemValue: variablesMenuInspect
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasSingleVariableSelectedHolder
-		  label: 'Show Type(s)...'
-		  itemValue: variablesMenuTypeInfo
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasSingleVariableSelectedHolder
-		  label: 'Browse Type(s)'
-		  itemValue: variablesMenuTypeBrowe
-		  showBusyCursorWhilePerforming: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasSingleClassSelectedAndCanUseRefactoringSupportHolder
+            label: 'Add...'
+            itemValue: variablesMenuAdd
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndCanUseRefactoringSupportHolder
+            label: 'Add ValueHolder...'
+            itemValue: variablesMenuAddValueHolder
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasNonMetaSelectedAndClassSelectedHolder
+            label: 'Instance Variables'
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'All References...'
+                  itemValue: variablesMenuBrowseAllInstVarRefs
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'All Readers...'
+                  itemValue: variablesMenuBrowseAllInstVarReads
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'All Writers...'
+                  itemValue: variablesMenuBrowseAllInstVarMods
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Local References...'
+                  itemValue: variablesMenuBrowseInstVarRefs
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Local Readers...'
+                  itemValue: variablesMenuBrowseInstVarReads
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Local Writers...'
+                  itemValue: variablesMenuBrowseInstVarMods
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasInstanceVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
+                  label: 'Pull Up'
+                  itemValue: variablesMenuPullUp
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasInstanceVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
+                  label: 'Push Down'
+                  itemValue: variablesMenuPushDown
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasInstanceVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
+                  label: 'Convert to ValueHolder'
+                  itemValue: codeMenuConvertToValueHolder
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasSingleVariableSelectedInCodeViewOrVariableListHolder
+                  label: 'Make Abstract (Access only via Getters/Setters)'
+                  itemValue: codeMenuMakeAbstractVariable
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasSingleVariableSelectedInCodeViewOrVariableListHolder
+                  label: 'Make Concrete (Protect from Access via Getters/Setters)'
+                  itemValue: codeMenuProtectInstanceVariable
+                  showBusyCursorWhilePerforming: true
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            enabled: hasMetaSelectedAndClassSelectedHolder
+            label: 'Class Instance Variables'
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'All References...'
+                  itemValue: variablesMenuBrowseAllClassInstVarRefs
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'All Readers...'
+                  itemValue: variablesMenuBrowseAllClassInstVarReads
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'All Writers...'
+                  itemValue: variablesMenuBrowseAllClassInstVarMods
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Local References...'
+                  itemValue: variablesMenuBrowseClassInstVarRefs
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Local Readers...'
+                  itemValue: variablesMenuBrowseClassInstVarReads
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Local Writers...'
+                  itemValue: variablesMenuBrowseClassInstVarMods
+                  showBusyCursorWhilePerforming: true
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Class Variables'
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'All References...'
+                  itemValue: variablesMenuBrowseAllClassVarRefs
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'All Readers...'
+                  itemValue: variablesMenuBrowseAllClassVarReads
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'All Writers...'
+                  itemValue: variablesMenuBrowseAllClassVarMods
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Local References...'
+                  itemValue: variablesMenuBrowseClassVarRefs
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Local Readers...'
+                  itemValue: variablesMenuBrowseClassVarReads
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasClassSelectedHolder
+                  label: 'Writers...'
+                  itemValue: variablesMenuBrowseClassVarMods
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasClassVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
+                  label: 'Pull Up'
+                  itemValue: variablesMenuPullUp
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasClassVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
+                  label: 'Push Down'
+                  itemValue: variablesMenuPushDown
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasClassVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
+                  label: 'Make Abstract (Access only via Getters/Setters)'
+                  itemValue: codeMenuMakeAbstractVariable
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasClassVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
+                  label: 'Make Concrete (Protect from Access via Getters/Setters)'
+                  itemValue: codeMenuProtectClassVariable
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasClassVariableSelectedHolder
+                  label: 'Clear (Set ClassVariable(s) to nil)'
+                  itemValue: variablesMenuClear
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            enabled: hasSharedPoolSelectedHolder
+            label: 'Pool Variables'
+            submenuChannel: classPoolVariablesMenu
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Move'
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasVariablesFromSingleClassSelectedAndCanUseRefactoringSupportHolder
+                  label: 'Pull Up'
+                  itemValue: variablesMenuPullUp
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasVariablesFromSingleClassSelectedAndCanUseRefactoringSupportHolder
+                  label: 'Push Down'
+                  itemValue: variablesMenuPushDown
+                  showBusyCursorWhilePerforming: true
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            enabled: hasSingleClassAndSingleVariableSelectedAndCanUseRefactoringSupportHolder
+            label: 'Rename...'
+            itemValue: variablesMenuRename
+            shortcutKey: Rename
+            showBusyCursorWhilePerforming: true
+            ignoreShortcutKeys: true
+          )
+         (MenuItem
+            enabled: hasClassesWithCommonSuperclassAndVariableSelectedAndCanUseRefactoringSupportHolder
+            label: 'Remove'
+            itemValue: variablesMenuRemove
+            labelImage: (ResourceRetriever ToolbarIconLibrary erase16x16Icon 'Remove')
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasVariableSelected
+            label: 'Copy Selected Name'
+            itemValue: variablesMenuCopySelectedName
+          )
+         (MenuItem
+            label: '-'
+            isVisible: false
+          )
+         (MenuItem
+            enabled: hasVariableSelected
+            label: 'Find Variable'
+            itemValue: doFindVariable
+            isVisible: false
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Show ClassVars (Statics)'
+            hideMenuOnActivated: false
+            indication: showClassVarsInVariableList
+          )
+         (MenuItem
+            label: 'Sort by Name'
+            hideMenuOnActivated: false
+            indication: sortVariablesByName
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasClassSelectedHolder
+            label: 'Generate'
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: canGenerateAccessMethodsHolder
+                  label: 'Access Methods'
+                  itemValue: variablesMenuGenerateAccessMethods
+                  isVisible: hasVariableSelected
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: canGenerateAccessMethodsForAllHolder
+                  label: 'Access Methods for All'
+                  itemValue: variablesMenuGenerateAccessMethodsForAll
+                  isVisible: hasNoVariableSelected
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: canGenerateAccessMethodsHolder
+                  label: 'Getter Method(s)'
+                  itemValue: variablesMenuGenerateGetterMethods
+                  isVisible: hasVariableSelected
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: canGenerateAccessMethodsForAllHolder
+                  label: 'Getter Method(s) for All'
+                  itemValue: variablesMenuGenerateGetterMethodsForAll
+                  isVisible: hasNoVariableSelected
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: canGenerateAccessMethodsHolder
+                  label: 'Setter Method(s)'
+                  itemValue: variablesMenuGenerateSetterMethods
+                  isVisible: hasVariableSelected
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: canGenerateAccessMethodsForAllHolder
+                  label: 'Setter Method(s) for All'
+                  itemValue: variablesMenuGenerateSetterMethodsForAll
+                  isVisible: hasNoVariableSelected
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: canGenerateMultiSetterMethodHolder
+                  label: 'Multi-Setter Method'
+                  itemValue: variablesMenuGenerateMultiSetterMethod
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                  isVisible: hasNonMetaSelectedHolder
+                )
+               (MenuItem
+                  enabled: canGenerateAccessMethodsHolder
+                  label: 'Access Methods with Lazy Initialization in Getter'
+                  itemValue: variablesMenuGenerateAccessMethodsWithLazyInitialization
+                  isVisible: hasNonMetaSelectedHolder
+                )
+               (MenuItem
+                  enabled: canGenerateAccessMethodsHolder
+                  label: 'Access Methods with Change Notification'
+                  itemValue: variablesMenuGenerateAccessMethodsWithChange
+                  isVisible: hasNonMetaSelectedHolder
+                )
+               (MenuItem
+                  enabled: canGenerateAccessMethodsHolder
+                  label: 'Access Methods for ValueHolder'
+                  itemValue: variablesMenuGenerateAccessMethodsForValueHolder
+                  isVisible: hasNonMetaSelectedHolder
+                )
+               (MenuItem
+                  enabled: canGenerateAccessMethodsHolder
+                  label: 'Access Methods for ValueHolder with Change Notification'
+                  itemValue: variablesMenuGenerateAccessMethodsForValueHolderWithChange
+                  isVisible: hasNonMetaSelectedHolder
+                )
+               (MenuItem
+                  enabled: canGenerateAccessMethodsHolder
+                  label: 'Collection Access Methods'
+                  itemValue: variablesMenuGenerateCollectionAccessMethods
+                  isVisible: hasNonMetaSelectedHolder
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            label: 'Debug'
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasClassVariableSelectedHolder
+                  label: 'Inspect...'
+                  itemValue: variablesMenuInspect
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasSingleVariableSelectedHolder
+                  label: 'Show Type(s)...'
+                  itemValue: variablesMenuTypeInfo
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasSingleVariableSelectedHolder
+                  label: 'Browse Type(s)'
+                  itemValue: variablesMenuTypeBrowe
+                  showBusyCursorWhilePerforming: true
+                )
+               )
+              nil
+              nil
+            )
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -12407,78 +12750,78 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'Category'
-	    translateLabel: true
-	    isVisible: viewMenuOrganizerItemsVisible
-	    hideMenuOnActivated: false
-	    choice: organizerModeForMenu
-	    choiceValue: category
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelected
-	    label: 'Class Hierarchy'
-	    translateLabel: true
-	    isVisible: viewMenuOrganizerItemsVisible
-	    hideMenuOnActivated: false
-	    choice: organizerModeForMenu
-	    choiceValue: classHierarchy
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelected
-	    label: 'Class Inheritance'
-	    translateLabel: true
-	    isVisible: classInheritanceMenuItemVisible
-	    hideMenuOnActivated: false
-	    choice: organizerModeForMenu
-	    choiceValue: classInheritance
-	  )
-	 (MenuItem
-	    label: 'Hierarchy'
-	    translateLabel: true
-	    isVisible: viewMenuOrganizerItemsVisible
-	    hideMenuOnActivated: false
-	    choice: organizerModeForMenu
-	    choiceValue: hierarchy
-	  )
-	 (MenuItem
-	    label: 'Namespace'
-	    translateLabel: true
-	    isVisible: viewMenuOrganizerItemsVisible
-	    hideMenuOnActivated: false
-	    choice: organizerModeForMenu
-	    choiceValue: namespace
-	  )
-	 (MenuItem
-	    label: 'Package'
-	    translateLabel: true
-	    isVisible: viewMenuOrganizerItemsVisible
-	    hideMenuOnActivated: false
-	    choice: organizerModeForMenu
-	    choiceValue: project
-	  )
-	 (MenuItem
-	    label: 'Package Diagram'
-	    translateLabel: true
-	    isVisible: packageDiagramMenuItemVisible
-	    hideMenuOnActivated: false
-	    choice: organizerModeForMenu
-	    choiceValue: packageDiagram
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: viewMenuOrganizerItemsVisible
-	  )
-	 (MenuItem
-	    label: 'viewMenuCommonSlice'
-	    translateLabel: true
-	    submenuChannel: viewMenuCommonSlice
-	    isMenuSlice: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: 'Category'
+            translateLabel: true
+            isVisible: viewMenuOrganizerItemsVisible
+            hideMenuOnActivated: false
+            choice: organizerModeForMenu
+            choiceValue: category
+          )
+         (MenuItem
+            enabled: hasSingleClassSelected
+            label: 'Class Hierarchy'
+            translateLabel: true
+            isVisible: viewMenuOrganizerItemsVisible
+            hideMenuOnActivated: false
+            choice: organizerModeForMenu
+            choiceValue: classHierarchy
+          )
+         (MenuItem
+            enabled: hasSingleClassSelected
+            label: 'Class Inheritance'
+            translateLabel: true
+            isVisible: classInheritanceMenuItemVisible
+            hideMenuOnActivated: false
+            choice: organizerModeForMenu
+            choiceValue: classInheritance
+          )
+         (MenuItem
+            label: 'Hierarchy'
+            translateLabel: true
+            isVisible: viewMenuOrganizerItemsVisible
+            hideMenuOnActivated: false
+            choice: organizerModeForMenu
+            choiceValue: hierarchy
+          )
+         (MenuItem
+            label: 'Namespace'
+            translateLabel: true
+            isVisible: viewMenuOrganizerItemsVisible
+            hideMenuOnActivated: false
+            choice: organizerModeForMenu
+            choiceValue: namespace
+          )
+         (MenuItem
+            label: 'Package'
+            translateLabel: true
+            isVisible: viewMenuOrganizerItemsVisible
+            hideMenuOnActivated: false
+            choice: organizerModeForMenu
+            choiceValue: project
+          )
+         (MenuItem
+            label: 'Package Diagram'
+            translateLabel: true
+            isVisible: packageDiagramMenuItemVisible
+            hideMenuOnActivated: false
+            choice: organizerModeForMenu
+            choiceValue: packageDiagram
+          )
+         (MenuItem
+            label: '-'
+            isVisible: viewMenuOrganizerItemsVisible
+          )
+         (MenuItem
+            label: 'viewMenuCommonSlice'
+            translateLabel: true
+            submenuChannel: viewMenuCommonSlice
+            isMenuSlice: true
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -12499,256 +12842,256 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'Toolbar'
-	    translateLabel: true
-	    hideMenuOnActivated: false
-	    indication: toolBarVisibleHolder
-	  )
-	 (MenuItem
-	    label: 'Bookmarks'
-	    translateLabel: true
-	    hideMenuOnActivated: false
-	    indication: bookmarkBarVisibleHolder
-	  )
-	 (MenuItem
-	    label: 'Searchbar'
-	    translateLabel: true
-	    hideMenuOnActivated: false
-	    indication: stringSearchToolVisibleHolder
-	  )
-	 (MenuItem
-	    label: 'Info'
-	    translateLabel: true
-	    hideMenuOnActivated: false
-	    indication: codeInfoVisible
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Multitab Mode'
-	    translateLabel: true
-	    hideMenuOnActivated: false
-	    indication: showMultitabMode
-	  )
-	 (MenuItem
-	    label: 'Enable Embedded Resource Editors'
-	    translateLabel: true
-	    hideMenuOnActivated: false
-	    indication: showSpecialResourceEditors
-	  )
-	 (MenuItem
-	    label: 'Coverage Info'
-	    translateLabel: true
-	    hideMenuOnActivated: false
-	    indication: showCoverageInformation
-	  )
-	 (MenuItem
-	    label: 'Browslet'
-	    itemValue: showPlugin:
-	    translateLabel: true
-	    isVisible: false
-	    hideMenuOnActivated: false
-	    indication: showPlugin
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Class'
-	    translateLabel: true
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  label: 'Hide Unloaded Classes'
-		  translateLabel: true
-		  hideMenuOnActivated: false
-		  indication: hideUnloadedClasses
-		)
-	       (MenuItem
-		  label: 'Show All Classes in NameSpace View'
-		  translateLabel: true
-		  hideMenuOnActivated: false
-		  indication: showAllClassesInNameSpaceOrganisation
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: showUnloadedClasses
-		  label: 'Emphasize Unloaded Classes'
-		  translateLabel: true
-		  hideMenuOnActivated: false
-		  indication: emphasizeUnloadedClasses
-		)
-	       (MenuItem
-		  label: 'Show Class Type Indicator'
-		  translateLabel: true
-		  hideMenuOnActivated: false
-		  indication: markApplicationsHolder
-		)
-	       (MenuItem
-		  label: 'Short Class Names in Tabs'
-		  translateLabel: true
-		  hideMenuOnActivated: false
-		  indication: shortNamesInTabs
-		)
-	       (MenuItem
-		  label: 'Show Class-Packages'
-		  translateLabel: true
-		  hideMenuOnActivated: false
-		  indication: showClassPackages
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'Sort and Indent by Inheritance'
-		  translateLabel: true
-		  hideMenuOnActivated: false
-		  indication: sortByNameAndInheritance
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    label: 'Protocol'
-	    translateLabel: true
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  label: 'Show Pseudo Protocols'
-		  translateLabel: true
-		  hideMenuOnActivated: false
-		  indication: showPseudoProtocols
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    label: 'Selector'
-	    translateLabel: true
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  label: 'Show Inherited Methods'
-		  translateLabel: true
-		  hideMenuOnActivated: false
-		  choice: methodVisibilityHolder
-		  choiceValue: all
-		)
-	       (MenuItem
-		  label: 'Show Inherited Methods except Object''s'
-		  translateLabel: true
-		  hideMenuOnActivated: false
-		  choice: methodVisibilityHolder
-		  choiceValue: allButObject
-		)
-	       (MenuItem
-		  label: 'Do not Show Inherited Methods'
-		  translateLabel: true
-		  hideMenuOnActivated: false
-		  choice: methodVisibilityHolder
-		  choiceValue: class
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'Show Synthetic Methods'
-		  translateLabel: true
-		  hideMenuOnActivated: false
-		  indication: showSyntheticMethods
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'Show Method Inheritance Indicator'
-		  translateLabel: true
-		  hideMenuOnActivated: false
-		  indication: showMethodInheritance
-		)
-	       (MenuItem
-		  label: 'Show Method Type Indicator'
-		  translateLabel: true
-		  hideMenuOnActivated: false
-		  indication: showMethodTypeIcon
-		)
-	       (MenuItem
-		  enabled: hasOOMPackageLoadedHolder
-		  label: 'Show Method-Complexity'
-		  translateLabel: true
-		  hideMenuOnActivated: false
-		  indication: showMethodComplexity
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    label: 'Code'
-	    translateLabel: true
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  label: 'Syntax Coloring'
-		  translateLabel: true
-		  hideMenuOnActivated: false
-		  indication: doSyntaxColoring
-		)
-	       (MenuItem
-		  enabled: doSyntaxColoring
-		  label: 'Immediate Syntax Coloring'
-		  translateLabel: true
-		  hideMenuOnActivated: false
-		  indication: doImmediateSyntaxColoring
-		)
-	       (MenuItem
-		  label: 'Immediate Explaining'
-		  translateLabel: true
-		  hideMenuOnActivated: false
-		  indication: doImmediateExplaining
-		)
-	       (MenuItem
-		  label: 'Auto-Format Code'
-		  translateLabel: true
-		  hideMenuOnActivated: false
-		  indication: doAutoFormat
-		)
-	       (MenuItem
-		  label: 'Show MethodTemplate for New Methods'
-		  translateLabel: true
-		  hideMenuOnActivated: false
-		  indication: showMethodTemplate
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Settings...'
-	    itemValue: openSettingsDialog
-	    translateLabel: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: 'Toolbar'
+            translateLabel: true
+            hideMenuOnActivated: false
+            indication: toolBarVisibleHolder
+          )
+         (MenuItem
+            label: 'Bookmarks'
+            translateLabel: true
+            hideMenuOnActivated: false
+            indication: bookmarkBarVisibleHolder
+          )
+         (MenuItem
+            label: 'Searchbar'
+            translateLabel: true
+            hideMenuOnActivated: false
+            indication: stringSearchToolVisibleHolder
+          )
+         (MenuItem
+            label: 'Info'
+            translateLabel: true
+            hideMenuOnActivated: false
+            indication: codeInfoVisible
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Multitab Mode'
+            translateLabel: true
+            hideMenuOnActivated: false
+            indication: showMultitabMode
+          )
+         (MenuItem
+            label: 'Enable Embedded Resource Editors'
+            translateLabel: true
+            hideMenuOnActivated: false
+            indication: showSpecialResourceEditors
+          )
+         (MenuItem
+            label: 'Coverage Info'
+            translateLabel: true
+            hideMenuOnActivated: false
+            indication: showCoverageInformation
+          )
+         (MenuItem
+            label: 'Browslet'
+            itemValue: showPlugin:
+            translateLabel: true
+            isVisible: false
+            hideMenuOnActivated: false
+            indication: showPlugin
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Class'
+            translateLabel: true
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  label: 'Hide Unloaded Classes'
+                  translateLabel: true
+                  hideMenuOnActivated: false
+                  indication: hideUnloadedClasses
+                )
+               (MenuItem
+                  label: 'Show all Classes in NameSpace View'
+                  translateLabel: true
+                  hideMenuOnActivated: false
+                  indication: showAllClassesInNameSpaceOrganisation
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: showUnloadedClasses
+                  label: 'Emphasize Unloaded Classes'
+                  translateLabel: true
+                  hideMenuOnActivated: false
+                  indication: emphasizeUnloadedClasses
+                )
+               (MenuItem
+                  label: 'Show Class Type Indicator'
+                  translateLabel: true
+                  hideMenuOnActivated: false
+                  indication: markApplicationsHolder
+                )
+               (MenuItem
+                  label: 'Short Class Names in Tabs'
+                  translateLabel: true
+                  hideMenuOnActivated: false
+                  indication: shortNamesInTabs
+                )
+               (MenuItem
+                  label: 'Show Class-Packages'
+                  translateLabel: true
+                  hideMenuOnActivated: false
+                  indication: showClassPackages
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'Sort and Indent by Inheritance'
+                  translateLabel: true
+                  hideMenuOnActivated: false
+                  indication: sortByNameAndInheritance
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            label: 'Protocol'
+            translateLabel: true
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  label: 'Show Pseudo Protocols'
+                  translateLabel: true
+                  hideMenuOnActivated: false
+                  indication: showPseudoProtocols
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            label: 'Selector'
+            translateLabel: true
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  label: 'Show Inherited Methods'
+                  translateLabel: true
+                  hideMenuOnActivated: false
+                  choice: methodVisibilityHolder
+                  choiceValue: all
+                )
+               (MenuItem
+                  label: 'Show Inherited Methods except Object''s'
+                  translateLabel: true
+                  hideMenuOnActivated: false
+                  choice: methodVisibilityHolder
+                  choiceValue: allButObject
+                )
+               (MenuItem
+                  label: 'Do not Show Inherited Methods'
+                  translateLabel: true
+                  hideMenuOnActivated: false
+                  choice: methodVisibilityHolder
+                  choiceValue: class
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'Show Synthetic Methods'
+                  translateLabel: true
+                  hideMenuOnActivated: false
+                  indication: showSyntheticMethods
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'Show Method Inheritance Indicator'
+                  translateLabel: true
+                  hideMenuOnActivated: false
+                  indication: showMethodInheritance
+                )
+               (MenuItem
+                  label: 'Show Method Type Indicator'
+                  translateLabel: true
+                  hideMenuOnActivated: false
+                  indication: showMethodTypeIcon
+                )
+               (MenuItem
+                  enabled: hasOOMPackageLoadedHolder
+                  label: 'Show Method-Complexity'
+                  translateLabel: true
+                  hideMenuOnActivated: false
+                  indication: showMethodComplexity
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            label: 'Code'
+            translateLabel: true
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  label: 'Syntax Coloring'
+                  translateLabel: true
+                  hideMenuOnActivated: false
+                  indication: doSyntaxColoring
+                )
+               (MenuItem
+                  enabled: doSyntaxColoring
+                  label: 'Immediate Syntax Coloring'
+                  translateLabel: true
+                  hideMenuOnActivated: false
+                  indication: doImmediateSyntaxColoring
+                )
+               (MenuItem
+                  label: 'Immediate Explaining'
+                  translateLabel: true
+                  hideMenuOnActivated: false
+                  indication: doImmediateExplaining
+                )
+               (MenuItem
+                  label: 'Auto-Format Code'
+                  translateLabel: true
+                  hideMenuOnActivated: false
+                  indication: doAutoFormat
+                )
+               (MenuItem
+                  label: 'Show MethodTemplate for New Methods'
+                  translateLabel: true
+                  hideMenuOnActivated: false
+                  indication: showMethodTemplate
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Settings...'
+            itemValue: openSettingsDialog
+            translateLabel: true
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -12768,37 +13111,37 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'Original Order'
-	    translateLabel: true
-	    hideMenuOnActivated: false
-	    choice: sortBy
-	    choiceValue: false
-	  )
-	 (MenuItem
-	    label: 'Sort by Class'
-	    translateLabel: true
-	    hideMenuOnActivated: false
-	    choice: sortBy
-	    choiceValue: class
-	  )
-	 (MenuItem
-	    label: 'Sort by Selector'
-	    translateLabel: true
-	    hideMenuOnActivated: false
-	    choice: sortBy
-	    choiceValue: selector
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Menu Slice'
-	    translateLabel: true
-	    submenuChannel: viewMenuCommonSlice
-	    isMenuSlice: true
-	  )
+        (
+         (MenuItem
+            label: 'Original Order'
+            translateLabel: true
+            hideMenuOnActivated: false
+            choice: sortBy
+            choiceValue: false
+          )
+         (MenuItem
+            label: 'Sort by Class'
+            translateLabel: true
+            hideMenuOnActivated: false
+            choice: sortBy
+            choiceValue: class
+          )
+         (MenuItem
+            label: 'Sort by Selector'
+            translateLabel: true
+            hideMenuOnActivated: false
+            choice: sortBy
+            choiceValue: selector
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Menu Slice'
+            translateLabel: true
+            submenuChannel: viewMenuCommonSlice
+            isMenuSlice: true
+          )
 "/         (MenuItem
 "/            label: '-'
 "/          )
@@ -12864,9 +13207,9 @@
 "/              nil
 "/            )
 "/          )
-	 )
-	nil
-	nil
+         )
+        nil
+        nil
       )
 !
 
@@ -12886,44 +13229,44 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'Original Order'
-	    translateLabel: true
-	    hideMenuOnActivated: false
-	    choice: sortBy
-	    choiceValue: false
-	  )
-	 (MenuItem
-	    label: 'Sort by Class'
-	    translateLabel: true
-	    hideMenuOnActivated: false
-	    choice: sortBy
-	    choiceValue: class
-	  )
-	 (MenuItem
-	    label: 'Sort by Selector'
-	    translateLabel: true
-	    hideMenuOnActivated: false
-	    choice: sortBy
-	    choiceValue: selector
-	  )
-	 (MenuItem
-	    label: 'Sort by Category'
-	    translateLabel: true
-	    hideMenuOnActivated: false
-	    choice: sortBy
-	    choiceValue: category
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Menu Slice'
-	    translateLabel: true
-	    submenuChannel: viewMenuCommonSlice
-	    isMenuSlice: true
-	  )
+        (
+         (MenuItem
+            label: 'Original Order'
+            translateLabel: true
+            hideMenuOnActivated: false
+            choice: sortBy
+            choiceValue: false
+          )
+         (MenuItem
+            label: 'Sort by Class'
+            translateLabel: true
+            hideMenuOnActivated: false
+            choice: sortBy
+            choiceValue: class
+          )
+         (MenuItem
+            label: 'Sort by Selector'
+            translateLabel: true
+            hideMenuOnActivated: false
+            choice: sortBy
+            choiceValue: selector
+          )
+         (MenuItem
+            label: 'Sort by Category'
+            translateLabel: true
+            hideMenuOnActivated: false
+            choice: sortBy
+            choiceValue: category
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Menu Slice'
+            translateLabel: true
+            submenuChannel: viewMenuCommonSlice
+            isMenuSlice: true
+          )
 "/         (MenuItem
 "/            label: 'Toolbar'
 "/            translateLabel: true
@@ -13007,9 +13350,9 @@
 "/              nil
 "/            )
 "/          )
-	 )
-	nil
-	nil
+         )
+        nil
+        nil
       )
 ! !
 
@@ -13032,52 +13375,52 @@
 
     ^
      #(Menu
-	      (
-	       (MenuItem
-		  enabled: hasCategorySelectedAndSourceCodeManagerHolder
-		  label: 'CheckIn all...'
-		  itemValue: categoryMenuCheckInEachUsing:
-		  translateLabel: true
-		  argument: SourceCodeManagerNamePlaceholder
-		  labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn all...')
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasCategorySelectedAndSourceCodeManagerHolder
-		  label: 'CheckOut Newest All'
-		  itemValue: categoryMenuCheckOutNewestUsing:
-		  translateLabel: true
-		  argument: SourceCodeManagerNamePlaceholder
-		  labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest All')
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasCategorySelectedAndSourceCodeManagerHolder
-		  label: 'CheckOut Previous Versions All...'
-		  itemValue: categoryMenuCheckOutUsing:
-		  translateLabel: true
-		  argument: SourceCodeManagerNamePlaceholder
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasSourceCodeManagerHolder
-		  label: 'Repository History...'
-		  itemValue: categoryMenuRepositoryHistoryUsing:
-		  translateLabel: true
-		  argument: SourceCodeManagerNamePlaceholder
-		  labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Repository History...')
-		  showBusyCursorWhilePerforming: true
-		)
-	       )
-	      nil
-	      nil
-	    )
+              (
+               (MenuItem
+                  enabled: hasCategorySelectedAndSourceCodeManagerHolder
+                  label: 'CheckIn all...'
+                  itemValue: categoryMenuCheckInEachUsingManager:
+                  translateLabel: true
+                  argument: SourceCodeManagerPlaceholder
+                  labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn all...')
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasCategorySelectedAndSourceCodeManagerHolder
+                  label: 'CheckOut Newest All'
+                  itemValue: categoryMenuCheckOutNewestUsingManager:
+                  translateLabel: true
+                  argument: SourceCodeManagerPlaceholder
+                  labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest All')
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasCategorySelectedAndSourceCodeManagerHolder
+                  label: 'CheckOut Previous Versions All...'
+                  itemValue: categoryMenuCheckOutUsingManager:
+                  translateLabel: true
+                  argument: SourceCodeManagerPlaceholder
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasSourceCodeManagerHolder
+                  label: 'Repository History...'
+                  itemValue: categoryMenuRepositoryHistoryUsingManager:
+                  translateLabel: true
+                  argument: SourceCodeManagerPlaceholder
+                  labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Repository History...')
+                  showBusyCursorWhilePerforming: true
+                )
+               )
+              nil
+              nil
+            )
 
     "Created: / 15-10-2011 / 12:22:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 23-07-2012 / 15:13:51 / cg"
@@ -13100,62 +13443,62 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'CVS'
-	    translateLabel: true
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasCategorySelectedAndCVSSourceCodeManagerHolder
-		  label: 'CheckIn all...'
-		  itemValue: categoryMenuCheckInEachUsingManager:
-		  translateLabel: true
-		  argument: SourceCodeManagerNamePlaceholder
-		  labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn all...')
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasCategorySelectedAndCVSSourceCodeManagerHolder
-		  label: 'CheckOut Newest All'
-		  itemValue: categoryMenuCheckOutNewestUsingManager:
-		  argument: SourceCodeManagerNamePlaceholder
-		  translateLabel: true
-		  labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest All')
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasCategorySelectedAndCVSSourceCodeManagerHolder
-		  label: 'CheckOut Previous Versions All...'
-		  itemValue: categoryMenuCheckOutUsingManager:
-		  argument: SourceCodeManagerNamePlaceholder
-		  translateLabel: true
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasCVSSourceCodeManagerHolder
-		  label: 'Repository History...'
-		  itemValue: categoryMenuRepositoryHistory
-		  translateLabel: true
-		  labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Repository History...')
-		  showBusyCursorWhilePerforming: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: 'CVS'
+            translateLabel: true
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasCategorySelectedAndCVSSourceCodeManagerHolder
+                  label: 'CheckIn all...'
+                  itemValue: categoryMenuCheckInEachUsingManager:
+                  translateLabel: true
+                  argument: SourceCodeManagerNamePlaceholder
+                  labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn all...')
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasCategorySelectedAndCVSSourceCodeManagerHolder
+                  label: 'CheckOut Newest All'
+                  itemValue: categoryMenuCheckOutNewestUsingManager:
+                  argument: SourceCodeManagerNamePlaceholder
+                  translateLabel: true
+                  labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest All')
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasCategorySelectedAndCVSSourceCodeManagerHolder
+                  label: 'CheckOut Previous Versions All...'
+                  itemValue: categoryMenuCheckOutUsingManager:
+                  argument: SourceCodeManagerNamePlaceholder
+                  translateLabel: true
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasCVSSourceCodeManagerHolder
+                  label: 'Repository History...'
+                  itemValue: categoryMenuRepositoryHistory
+                  translateLabel: true
+                  labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Repository History...')
+                  showBusyCursorWhilePerforming: true
+                )
+               )
+              nil
+              nil
+            )
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
+          )
+         )
+        nil
+        nil
       )
 
     "Modified: / 01-12-2011 / 21:16:05 / cg"
@@ -13178,53 +13521,53 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasClassSelectedAndCVSSourceCodeManagerHolder
-	    label: 'CVS'
-	    translateLabel: true
-	    submenuChannel: categoryMenuSCMFor:
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
-	    argument: CVSSourceCodeManager
-	    keepLinkedMenu: true
-	  )
-	 (MenuItem
-	    enabled: hasClassesSelectedAndSubversionRepositoryExistsHolder
-	    label: 'SubVersion'
-	    translateLabel: true
-	    isVisible: hasSubversionSupport
-	    submenuChannel: categoryMenuSCMFor:
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'SubVersion')
-	    argument: SVNSourceCodeManager
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'Mercurial+'
-	    isVisible: hgRepositoryMenusAreShown
-	    submenuChannel: projectMenuSCMFor:
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryP4Icon 'Mercurial+')
-	    argument: HGSourceCodeManager
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedAndSourceCodeManagerHolder
-	    label: 'Perforce'
-	    translateLabel: true
-	    isVisible: hasPerforceSupport
-	    submenuChannel: categoryMenuSCMFor:
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'Perforce')
-	    argument: PerforceSourceCodeManager
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedAndSourceCodeManagerHolder
-	    label: 'Git+'
-	    isVisible: git2RepositoryMenusAreShown
-	    submenuChannel: categoryMenuSCMFor:
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'Git+')
-	    argument: GitSourceCodeManager2
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasCategorySelectedAndCVSSourceCodeManagerHolder
+            label: 'CVS'
+            translateLabel: true
+            submenuChannel: categoryMenuSCMFor:
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
+            argument: CVSSourceCodeManager
+            keepLinkedMenu: true
+          )
+         (MenuItem
+            enabled: hasClassesSelectedAndSubversionRepositoryExistsHolder
+            label: 'SubVersion'
+            translateLabel: true
+            isVisible: hasSubversionSupport
+            submenuChannel: categoryMenuSCMFor:
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'SubVersion')
+            argument: SVNSourceCodeManager
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'Mercurial+'
+            isVisible: hgRepositoryMenusAreShown
+            submenuChannel: projectMenuSCMFor:
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryP4Icon 'Mercurial+')
+            argument: HGSourceCodeManager
+          )
+         (MenuItem
+            enabled: hasClassSelectedAndSourceCodeManagerHolder
+            label: 'Perforce'
+            translateLabel: true
+            isVisible: hasPerforceSupport
+            submenuChannel: categoryMenuSCMFor:
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'Perforce')
+            argument: PerforceSourceCodeManager
+          )
+         (MenuItem
+            enabled: hasClassSelectedAndSourceCodeManagerHolder
+            label: 'Git+'
+            isVisible: git2RepositoryMenusAreShown
+            submenuChannel: categoryMenuSCMFor:
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'Git+')
+            argument: GitSourceCodeManager2
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -13245,47 +13588,47 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'Repository'
-	    nameKey: SCM
-	    translateLabel: true
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  label: 'Common Slice'
-		  nameKey: CommonSlice
-		  translateLabel: true
-		  submenuChannel: categoryMenuSCMFor:
-		  argument: SourceCodeManagerNamePlaceholder
-		  isMenuSlice: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'All Slice'
-		  translateLabel: true
-		  submenuChannel: categoryMenuSCMSliceAll
-		  isMenuSlice: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'Repository Settings'
-		  itemValue: openSettingsDialogAndSelectSourceCodeManagement
-		  translateLabel: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: 'Repository'
+            nameKey: SCM
+            translateLabel: true
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  label: 'Common Slice'
+                  nameKey: CommonSlice
+                  translateLabel: true
+                  submenuChannel: categoryMenuSCMFor:
+                  argument: SourceCodeManagerNamePlaceholder
+                  isMenuSlice: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'All Slice'
+                  translateLabel: true
+                  submenuChannel: categoryMenuSCMSliceAll
+                  isMenuSlice: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'Repository Settings'
+                  itemValue: openSettingsDialogAndSelectSourceCodeManagement
+                  translateLabel: true
+                )
+               )
+              nil
+              nil
+            )
+          )
+         )
+        nil
+        nil
       )
 
     "Created: / 15-10-2011 / 12:21:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -13309,19 +13652,19 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'All Slice'
-	    translateLabel: true
-	    submenuChannel: categoryMenuSCMSliceAll
-	    isMenuSlice: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'All Slice'
+            translateLabel: true
+            submenuChannel: categoryMenuSCMSliceAll
+            isMenuSlice: true
+          )
+         )
+        nil
+        nil
       )
 
     "Created: / 15-10-2011 / 12:21:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -13344,62 +13687,62 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'CVS'
-	    translateLabel: true
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasCategorySelectedAndCVSSourceCodeManagerHolder
-		  label: 'CheckIn all...'
-		  itemValue: categoryMenuCheckInEachUsingManager:
-		  argument: SourceCodeManagerPlaceholder
-		  translateLabel: true
-		  labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn all...')
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasCategorySelectedAndCVSSourceCodeManagerHolder
-		  label: 'CheckOut Newest All'
-		  itemValue: categoryMenuCheckOutNewestUsingManager:
-		  translateLabel: true
-		  argument: SourceCodeManagerPlaceholder
-		  labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest All')
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasCategorySelectedAndCVSSourceCodeManagerHolder
-		  label: 'CheckOut Previous Versions All...'
-		  itemValue: categoryMenuCheckOutUsingManager:
-		  argument: SourceCodeManagerPlaceholder
-		  translateLabel: true
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasCVSSourceCodeManagerHolder
-		  label: 'Repository History...'
-		  itemValue: categoryMenuRepositoryHistory
-		  translateLabel: true
-		  labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Repository History...')
-		  showBusyCursorWhilePerforming: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: 'CVS'
+            translateLabel: true
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasCategorySelectedAndCVSSourceCodeManagerHolder
+                  label: 'CheckIn all...'
+                  itemValue: categoryMenuCheckInEachUsingManager:
+                  argument: SourceCodeManagerPlaceholder
+                  translateLabel: true
+                  labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn all...')
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasCategorySelectedAndCVSSourceCodeManagerHolder
+                  label: 'CheckOut Newest All'
+                  itemValue: categoryMenuCheckOutNewestUsingManager:
+                  translateLabel: true
+                  argument: SourceCodeManagerPlaceholder
+                  labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest All')
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasCategorySelectedAndCVSSourceCodeManagerHolder
+                  label: 'CheckOut Previous Versions All...'
+                  itemValue: categoryMenuCheckOutUsingManager:
+                  argument: SourceCodeManagerPlaceholder
+                  translateLabel: true
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasCVSSourceCodeManagerHolder
+                  label: 'Repository History...'
+                  itemValue: categoryMenuRepositoryHistory
+                  translateLabel: true
+                  labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Repository History...')
+                  showBusyCursorWhilePerforming: true
+                )
+               )
+              nil
+              nil
+            )
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
+          )
+         )
+        nil
+        nil
       )
 ! !
 
@@ -13422,171 +13765,177 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: '** No SourceCodeManager - See Settings in the Launcher **'
-	    translateLabel: true
-	    isVisible: hasNoSourceCodeManagerHolder
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: hasNoSourceCodeManagerHolder
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedAndSourceCodeManagerHolder
-	    label: 'CheckIn...'
-	    itemValue: classMenuCheckIn
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn...')
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasClassWithExtensionsSelectedHolder
-	    label: 'CheckIn Extensions For'
-	    translateLabel: true
-	    submenuChannel: browseClassExtensionsMenu
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: changeSetContainsChangedClassesAndSourceCodeManagerHolder
-	    label: 'CheckIn All Changed Classes'
-	    itemValue: classMenuCheckInAllChangedClasses
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: 'Quick CheckIn...'
-	    itemValue: classMenuQuickCheckIn
-	    translateLabel: true
-	    isVisible: hasClassSelectedAndControlKeyDownHolder
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
-	    label: 'CheckIn Build Support Files...'
-	    itemValue: classMenuCheckInBuildSupportFiles
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'CheckOut Newest'
-	    itemValue: classMenuCheckOutNewest
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'CheckOut Previous Version...'
-	    itemValue: classMenuCheckOut
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Edit Version in Repository...'
-	    itemValue: classMenuEditVersionInRepository
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Newest in Repository'
-	    itemValue: classMenuCompareAgainstNewestInRepository
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryVersions 'Compare with Newest in Repository...')
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Original in Repository'
-	    itemValue: classMenuCompareAgainstOriginalInRepository
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Stable Version in Repository'
-	    itemValue: classMenuCompareAgainstStableInRepository
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Repository...'
-	    itemValue: classMenuCompareWithRepository
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare two Repository Versions...'
-	    itemValue: classMenuCompareTwoRepositoryVersions
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectDefinitionOrClassWithExtensionsSelectedAndSourceCodeManagerHolder
-	    label: 'Compare Extensions with Repository...'
-	    itemValue: classMenuCompareExtensionsWithRepository
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
-	    label: 'Compare Build Support File'
-	    translateLabel: true
-	    submenuChannel: compareBuildSupportFileMenu
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Create PatchFile against Version...'
-	    itemValue: classMenuCreatePatchFileAgainstVersionFromRepository
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'Set Tag...'
-	    itemValue: classMenuSetTag
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryTag 'Set Tag...')
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'Revision Log (Recent Changes)'
-	    itemValue: classMenuShortRevisionLog
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Revision Log (Recent Changes)')
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'Revision Log (Full)'
-	    itemValue: classMenuRevisionLog
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: '** No SourceCodeManager - See Settings in the Launcher **'
+            translateLabel: true
+            isVisible: hasNoSourceCodeManagerHolder
+          )
+         (MenuItem
+            label: '-'
+            isVisible: hasNoSourceCodeManagerHolder
+          )
+         (MenuItem
+            enabled: hasClassSelectedAndSourceCodeManagerHolder
+            label: 'CheckIn...'
+            itemValue: classMenuCheckIn
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn...')
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasClassWithExtensionsSelectedHolder
+            label: 'CheckIn Extensions For'
+            translateLabel: true
+            submenuChannel: browseClassExtensionsMenu
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: changeSetContainsChangedClassesAndSourceCodeManagerHolder
+            label: 'CheckIn all Changed Classes'
+            itemValue: classMenuCheckInAllChangedClasses
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: 'Quick CheckIn...'
+            itemValue: classMenuQuickCheckIn
+            translateLabel: true
+            isVisible: hasClassSelectedAndControlKeyDownHolder
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
+            label: 'CheckIn Build Support Files...'
+            itemValue: classMenuCheckInBuildSupportFiles
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'CheckOut Newest'
+            itemValue: classMenuCheckOutNewest
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'CheckOut Previous Version...'
+            itemValue: classMenuCheckOut
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Browse and Compare all Versions in Repository'
+            itemValue: classMenuBrowseAllVersionsInRepository
+            translateLabel: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Newest in Repository'
+            itemValue: classMenuCompareAgainstNewestInRepository
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryVersions 'Compare with Newest in Repository...')
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Original in Repository'
+            itemValue: classMenuCompareAgainstOriginalInRepository
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Stable Version in Repository'
+            itemValue: classMenuCompareAgainstStableInRepository
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Repository...'
+            itemValue: classMenuCompareWithRepository
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare two Repository Versions...'
+            itemValue: classMenuCompareTwoRepositoryVersions
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasProjectDefinitionOrClassWithExtensionsSelectedAndSourceCodeManagerHolder
+            label: 'Compare Extensions with Repository...'
+            itemValue: classMenuCompareExtensionsWithRepository
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
+            label: 'Compare Build Support File'
+            translateLabel: true
+            submenuChannel: compareBuildSupportFileMenu
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Edit Version in Repository...'
+            itemValue: classMenuEditVersionInRepository
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Create PatchFile against Version...'
+            itemValue: classMenuCreatePatchFileAgainstVersionFromRepository
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'Set Tag...'
+            itemValue: classMenuSetTag
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryTag 'Set Tag...')
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'Revision Log (Recent Changes)'
+            itemValue: classMenuShortRevisionLog
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Revision Log (Recent Changes)')
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'Revision Log (Full)'
+            itemValue: classMenuRevisionLog
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         )
+        nil
+        nil
       )
 
     "Modified: / 28-10-2012 / 11:57:54 / cg"
@@ -13609,142 +13958,151 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasClassSelectedAndSourceCodeManagerHolder
-	    label: 'CheckIn...'
-	    itemValue: classMenuCheckInUsingManagerNamed:
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn...')
-	    argument: DataBaseSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasClassWithExtensionsSelectedHolder
-	    label: 'CheckIn Extensions For'
-	    translateLabel: true
-	    submenuChannel: browseClassExtensionsMenuUsingManagerNamed:
-	    argument: DataBaseSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: changeSetContainsChangedClassesAndSourceCodeManagerHolder
-	    label: 'CheckIn All Changed Classes'
-	    itemValue: classMenuCheckInAllChangedClassesUsingManagerNamed:
-	    translateLabel: true
-	    argument: DataBaseSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
-	    label: 'CheckIn Build Support Files...'
-	    itemValue: classMenuCheckInBuildSupportFilesUsingManagerNamed:
-	    translateLabel: true
-	    argument: DataBaseSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'CheckOut Newest'
-	    itemValue: classMenuCheckOutNewestUsingManagerNamed:
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
-	    argument: DataBaseSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'CheckOut Previous Version...'
-	    itemValue: classMenuCheckOutUsingManagerNamed:
-	    translateLabel: true
-	    argument: DataBaseSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Newest in Repository'
-	    itemValue: classMenuCompareAgainstNewestInRepositoryUsingManagerNamed:
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryVersions 'Compare with Newest in Repository...')
-	    argument: DataBaseSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Original in Repository'
-	    itemValue: classMenuCompareAgainstOriginalInRepositoryUsingManagerNamed:
-	    translateLabel: true
-	    argument: DataBaseSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Stable Version in Repository'
-	    itemValue: classMenuCompareAgainstStableInRepositoryUsingManagerNamed:
-	    translateLabel: true
-	    argument: DataBaseSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Repository...'
-	    itemValue: classMenuCompareWithRepositoryUsingManagerNamed:
-	    translateLabel: true
-	    argument: DataBaseSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare two Repository Versions...'
-	    itemValue: classMenuCompareTwoRepositoryVersionsUsingManagerNamed:
-	    translateLabel: true
-	    argument: DataBaseSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectDefinitionOrClassWithExtensionsSelectedAndSourceCodeManagerHolder
-	    label: 'Compare Extensions with Repository...'
-	    itemValue: classMenuCompareExtensionsWithRepositoryUsingManagerNamed:
-	    translateLabel: true
-	    argument: DataBaseSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
-	    label: 'Compare Build Support File'
-	    translateLabel: true
-	    submenuChannel: compareBuildSupportFileMenuUsingManagerNamed:
-	    argument: DataBaseSourceCodeManager
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'Revision Log (Recent Changes)'
-	    itemValue: classMenuShortRevisionLogUsingManagerNamed:
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Revision Log (Recent Changes)')
-	    argument: DataBaseSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'Revision Log (Full)'
-	    itemValue: classMenuRevisionLogUsingManagerNamed:
-	    translateLabel: true
-	    argument: DataBaseSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasClassSelectedAndSourceCodeManagerHolder
+            label: 'CheckIn...'
+            itemValue: classMenuCheckInUsingManagerNamed:
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn...')
+            argument: DataBaseSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasClassWithExtensionsSelectedHolder
+            label: 'CheckIn Extensions For'
+            translateLabel: true
+            submenuChannel: browseClassExtensionsMenuUsingManagerNamed:
+            argument: DataBaseSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: changeSetContainsChangedClassesAndSourceCodeManagerHolder
+            label: 'CheckIn all Changed Classes'
+            itemValue: classMenuCheckInAllChangedClassesUsingManagerNamed:
+            translateLabel: true
+            argument: DataBaseSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
+            label: 'CheckIn Build Support Files...'
+            itemValue: classMenuCheckInBuildSupportFilesUsingManagerNamed:
+            translateLabel: true
+            argument: DataBaseSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'CheckOut Newest'
+            itemValue: classMenuCheckOutNewestUsingManagerNamed:
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
+            argument: DataBaseSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'CheckOut Previous Version...'
+            itemValue: classMenuCheckOutUsingManagerNamed:
+            translateLabel: true
+            argument: DataBaseSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Browse and Compare all Versions in Repository'
+            itemValue: classMenuBrowseAllVersionsInRepository
+            translateLabel: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Newest in Repository'
+            itemValue: classMenuCompareAgainstNewestInRepositoryUsingManagerNamed:
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryVersions 'Compare with Newest in Repository...')
+            argument: DataBaseSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Original in Repository'
+            itemValue: classMenuCompareAgainstOriginalInRepositoryUsingManagerNamed:
+            translateLabel: true
+            argument: DataBaseSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Stable Version in Repository'
+            itemValue: classMenuCompareAgainstStableInRepositoryUsingManagerNamed:
+            translateLabel: true
+            argument: DataBaseSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Repository...'
+            itemValue: classMenuCompareWithRepositoryUsingManagerNamed:
+            translateLabel: true
+            argument: DataBaseSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare two Repository Versions...'
+            itemValue: classMenuCompareTwoRepositoryVersionsUsingManagerNamed:
+            translateLabel: true
+            argument: DataBaseSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasProjectDefinitionOrClassWithExtensionsSelectedAndSourceCodeManagerHolder
+            label: 'Compare Extensions with Repository...'
+            itemValue: classMenuCompareExtensionsWithRepositoryUsingManagerNamed:
+            translateLabel: true
+            argument: DataBaseSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
+            label: 'Compare Build Support File'
+            translateLabel: true
+            submenuChannel: compareBuildSupportFileMenuUsingManagerNamed:
+            argument: DataBaseSourceCodeManager
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'Revision Log (Recent Changes)'
+            itemValue: classMenuShortRevisionLogUsingManagerNamed:
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Revision Log (Recent Changes)')
+            argument: DataBaseSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'Revision Log (Full)'
+            itemValue: classMenuRevisionLogUsingManagerNamed:
+            translateLabel: true
+            argument: DataBaseSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         )
+        nil
+        nil
       )
 
     "Modified: / 28-10-2012 / 11:58:35 / cg"
@@ -13767,134 +14125,143 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasClassSelectedAndSourceCodeManagerHolder
-	    label: 'CheckIn...'
-	    itemValue: classMenuCheckInUsingManagerNamed:
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn...')
-	    argument: FileBasedSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasClassWithExtensionsSelectedHolder
-	    label: 'CheckIn Extensions For'
-	    translateLabel: true
-	    submenuChannel: browseClassExtensionsMenuUsingManagerNamed:
-	    argument: FileBasedSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: changeSetContainsChangedClassesAndSourceCodeManagerHolder
-	    label: 'CheckIn All Changed Classes'
-	    itemValue: classMenuCheckInAllChangedClassesUsingManagerNamed:
-	    translateLabel: true
-	    argument: FileBasedSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
-	    label: 'CheckIn Build Support Files...'
-	    itemValue: classMenuCheckInBuildSupportFilesUsingManagerNamed:
-	    translateLabel: true
-	    argument: FileBasedSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'CheckOut Newest'
-	    itemValue: classMenuCheckOutNewestUsingManagerNamed:
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
-	    argument: FileBasedSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'CheckOut Previous Version...'
-	    itemValue: classMenuCheckOutUsingManagerNamed:
-	    translateLabel: true
-	    argument: FileBasedSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Newest in Repository'
-	    itemValue: classMenuCompareAgainstNewestInRepositoryUsingManagerNamed:
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryVersions 'Compare with Newest in Repository...')
-	    argument: FileBasedSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Original in Repository'
-	    itemValue: classMenuCompareAgainstOriginalInRepositoryUsingManagerNamed:
-	    translateLabel: true
-	    argument: FileBasedSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Repository...'
-	    itemValue: classMenuCompareWithRepositoryUsingManagerNamed:
-	    translateLabel: true
-	    argument: FileBasedSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare two Repository Versions...'
-	    itemValue: classMenuCompareTwoRepositoryVersionsUsingManagerNamed:
-	    translateLabel: true
-	    argument: FileBasedSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectDefinitionOrClassWithExtensionsSelectedAndSourceCodeManagerHolder
-	    label: 'Compare Extensions with Repository...'
-	    itemValue: classMenuCompareExtensionsWithRepositoryUsingManagerNamed:
-	    translateLabel: true
-	    argument: FileBasedSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
-	    label: 'Compare Build Support File'
-	    translateLabel: true
-	    submenuChannel: compareBuildSupportFileMenuUsingManagerNamed:
-	    argument: FileBasedSourceCodeManager
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'Revision Log (Recent Changes)'
-	    itemValue: classMenuShortRevisionLogUsingManagerNamed:
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Revision Log (Recent Changes)')
-	    argument: FileBasedSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'Revision Log (Full)'
-	    itemValue: classMenuRevisionLogUsingManagerNamed:
-	    translateLabel: true
-	    argument: FileBasedSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasClassSelectedAndSourceCodeManagerHolder
+            label: 'CheckIn...'
+            itemValue: classMenuCheckInUsingManagerNamed:
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn...')
+            argument: FileBasedSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasClassWithExtensionsSelectedHolder
+            label: 'CheckIn Extensions For'
+            translateLabel: true
+            submenuChannel: browseClassExtensionsMenuUsingManagerNamed:
+            argument: FileBasedSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: changeSetContainsChangedClassesAndSourceCodeManagerHolder
+            label: 'CheckIn all Changed Classes'
+            itemValue: classMenuCheckInAllChangedClassesUsingManagerNamed:
+            translateLabel: true
+            argument: FileBasedSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
+            label: 'CheckIn Build Support Files...'
+            itemValue: classMenuCheckInBuildSupportFilesUsingManagerNamed:
+            translateLabel: true
+            argument: FileBasedSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'CheckOut Newest'
+            itemValue: classMenuCheckOutNewestUsingManagerNamed:
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
+            argument: FileBasedSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'CheckOut Previous Version...'
+            itemValue: classMenuCheckOutUsingManagerNamed:
+            translateLabel: true
+            argument: FileBasedSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Browse and Compare all Versions in Repository'
+            itemValue: classMenuBrowseAllVersionsInRepository
+            translateLabel: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Newest in Repository'
+            itemValue: classMenuCompareAgainstNewestInRepositoryUsingManagerNamed:
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryVersions 'Compare with Newest in Repository...')
+            argument: FileBasedSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Original in Repository'
+            itemValue: classMenuCompareAgainstOriginalInRepositoryUsingManagerNamed:
+            translateLabel: true
+            argument: FileBasedSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Repository...'
+            itemValue: classMenuCompareWithRepositoryUsingManagerNamed:
+            translateLabel: true
+            argument: FileBasedSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare two Repository Versions...'
+            itemValue: classMenuCompareTwoRepositoryVersionsUsingManagerNamed:
+            translateLabel: true
+            argument: FileBasedSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasProjectDefinitionOrClassWithExtensionsSelectedAndSourceCodeManagerHolder
+            label: 'Compare Extensions with Repository...'
+            itemValue: classMenuCompareExtensionsWithRepositoryUsingManagerNamed:
+            translateLabel: true
+            argument: FileBasedSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
+            label: 'Compare Build Support File'
+            translateLabel: true
+            submenuChannel: compareBuildSupportFileMenuUsingManagerNamed:
+            argument: FileBasedSourceCodeManager
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'Revision Log (Recent Changes)'
+            itemValue: classMenuShortRevisionLogUsingManagerNamed:
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Revision Log (Recent Changes)')
+            argument: FileBasedSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'Revision Log (Full)'
+            itemValue: classMenuRevisionLogUsingManagerNamed:
+            translateLabel: true
+            argument: FileBasedSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         )
+        nil
+        nil
       )
 
     "Modified: / 28-10-2012 / 11:58:48 / cg"
@@ -13917,131 +14284,131 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: '** No SourceCodeManager - See Settings in the Launcher **'
-	    translateLabel: true
-	    isVisible: hasNoSourceCodeManagerHolder
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: hasNoSourceCodeManagerHolder
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedAndSourceCodeManagerHolder
-	    label: 'CheckIn...'
-	    itemValue: classMenuCheckInUsingManagerNamed:
-	    translateLabel: true
-	    isVisible: false
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn...')
-	    argument: GitSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: false
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'CheckOut Newest'
-	    itemValue: classMenuCheckOutNewestUsingManagerNamed:
-	    translateLabel: true
-	    isVisible: false
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
-	    argument: GitSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'CheckOut Previous Version...'
-	    itemValue: classMenuCheckOutUsingManagerNamed:
-	    translateLabel: true
-	    isVisible: false
-	    argument: GitSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: false
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Newest in Repository'
-	    itemValue: classMenuCompareAgainstNewestInRepositoryUsingManagerNamed:
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryVersions 'Compare with Newest in Repository...')
-	    argument: GitSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Original in Repository'
-	    itemValue: classMenuCompareAgainstOriginalInRepositoryUsingManagerNamed:
-	    translateLabel: true
-	    argument: GitSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Stable Version in Repository'
-	    itemValue: classMenuCompareAgainstStableInRepositoryUsingManagerNamed:
-	    translateLabel: true
-	    argument: GitSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Repository...'
-	    itemValue: classMenuCompareWithRepositoryUsingManagerNamed:
-	    translateLabel: true
-	    argument: GitSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare two Repository Versions...'
-	    itemValue: classMenuCompareTwoRepositoryVersionsUsingManagerNamed:
-	    translateLabel: true
-	    argument: GitSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'Set Tag...'
-	    itemValue: classMenuSetTagUsingManagerNamed:
-	    translateLabel: true
-	    isVisible: false
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryTag 'Set Tag...')
-	    argument: GitSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: false
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'Revision Log (Recent Changes)'
-	    itemValue: classMenuShortRevisionLogUsingManagerNamed:
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Revision Log (Recent Changes)')
-	    argument: GitSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'Revision Log (Full)'
-	    itemValue: classMenuRevisionLogUsingManagerNamed:
-	    translateLabel: true
-	    argument: GitSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: '** No SourceCodeManager - See Settings in the Launcher **'
+            translateLabel: true
+            isVisible: hasNoSourceCodeManagerHolder
+          )
+         (MenuItem
+            label: '-'
+            isVisible: hasNoSourceCodeManagerHolder
+          )
+         (MenuItem
+            enabled: hasClassSelectedAndSourceCodeManagerHolder
+            label: 'CheckIn...'
+            itemValue: classMenuCheckInUsingManagerNamed:
+            translateLabel: true
+            isVisible: false
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn...')
+            argument: GitSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+            isVisible: false
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'CheckOut Newest'
+            itemValue: classMenuCheckOutNewestUsingManagerNamed:
+            translateLabel: true
+            isVisible: false
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
+            argument: GitSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'CheckOut Previous Version...'
+            itemValue: classMenuCheckOutUsingManagerNamed:
+            translateLabel: true
+            isVisible: false
+            argument: GitSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+            isVisible: false
+          )
+         (MenuItem
+            enabled: hasClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Newest in Repository'
+            itemValue: classMenuCompareAgainstNewestInRepositoryUsingManagerNamed:
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryVersions 'Compare with Newest in Repository...')
+            argument: GitSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Original in Repository'
+            itemValue: classMenuCompareAgainstOriginalInRepositoryUsingManagerNamed:
+            translateLabel: true
+            argument: GitSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Stable Version in Repository'
+            itemValue: classMenuCompareAgainstStableInRepositoryUsingManagerNamed:
+            translateLabel: true
+            argument: GitSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Repository...'
+            itemValue: classMenuCompareWithRepositoryUsingManagerNamed:
+            translateLabel: true
+            argument: GitSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare two Repository Versions...'
+            itemValue: classMenuCompareTwoRepositoryVersionsUsingManagerNamed:
+            translateLabel: true
+            argument: GitSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'Set Tag...'
+            itemValue: classMenuSetTagUsingManagerNamed:
+            translateLabel: true
+            isVisible: false
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryTag 'Set Tag...')
+            argument: GitSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+            isVisible: false
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'Revision Log (Recent Changes)'
+            itemValue: classMenuShortRevisionLogUsingManagerNamed:
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Revision Log (Recent Changes)')
+            argument: GitSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'Revision Log (Full)'
+            itemValue: classMenuRevisionLogUsingManagerNamed:
+            translateLabel: true
+            argument: GitSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         )
+        nil
+        nil
       )
 
     "Modified: / 28-10-2012 / 11:59:05 / cg"
@@ -14064,158 +14431,167 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasClassSelectedAndSourceCodeManagerHolder
-	    label: 'CheckIn...'
-	    itemValue: classMenuCheckInUsingManagerNamed:
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn...')
-	    argument: SourceCodeManagerNamePlaceholder
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: 'CheckIn (Quick)...'
-	    itemValue: classMenuQuickCheckInUsingManagerNamed:
-	    translateLabel: true
-	    isVisible: hasClassSelectedAndControlKeyDownHolder
-	    argument: SourceCodeManagerNamePlaceholder
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasClassWithExtensionsSelectedHolder
-	    label: 'CheckIn Extensions For'
-	    translateLabel: true
-	    argument: SourceCodeManagerNamePlaceholder
-	    submenuChannel: browseClassExtensionsMenuUsingManagerNamed:
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: changeSetContainsChangedClassesAndSourceCodeManagerHolder
-	    label: 'CheckIn All Changed Classes'
-	    itemValue: classMenuCheckInAllChangedClassesUsingManagerNamed:
-	    translateLabel: true
-	    argument: SourceCodeManagerNamePlaceholder
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
-	    label: 'CheckIn Build Support Files...'
-	    itemValue: classMenuCheckInBuildSupportFilesUsingManagerNamed:
-	    translateLabel: true
-	    argument: SourceCodeManagerNamePlaceholder
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'CheckOut Newest'
-	    itemValue: classMenuCheckOutNewestUsingManagerNamed:
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
-	    argument: SourceCodeManagerNamePlaceholder
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'CheckOut Previous Version...'
-	    itemValue: classMenuCheckOutUsingManagerNamed:
-	    translateLabel: true
-	    argument: SourceCodeManagerNamePlaceholder
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'Revision Log (Recent Changes)'
-	    itemValue: classMenuShortRevisionLogUsingManagerNamed:
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Revision Log (Recent Changes)')
-	    argument: SourceCodeManagerNamePlaceholder
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'Revision Log (Full)'
-	    itemValue: classMenuRevisionLogUsingManagerNamed:
-	    translateLabel: true
-	    argument: SourceCodeManagerNamePlaceholder
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Newest in Repository'
-	    itemValue: classMenuCompareAgainstNewestInRepositoryUsingManagerNamed:
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryVersions 'Compare with Newest in Repository...')
-	    argument: SourceCodeManagerNamePlaceholder
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Original in Repository'
-	    itemValue: classMenuCompareAgainstOriginalInRepositoryUsingManagerNamed:
-	    translateLabel: true
-	    argument: SourceCodeManagerNamePlaceholder
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Stable Version in Repository'
-	    itemValue: classMenuCompareAgainstStableInRepositoryUsingManagerNamed:
-	    translateLabel: true
-	    argument: SourceCodeManagerNamePlaceholder
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Repository...'
-	    itemValue: classMenuCompareWithRepositoryUsingManagerNamed:
-	    translateLabel: true
-	    argument: SourceCodeManagerNamePlaceholder
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare two Repository Versions...'
-	    itemValue: classMenuCompareTwoRepositoryVersionsUsingManagerNamed:
-	    translateLabel: true
-	    argument: SourceCodeManagerNamePlaceholder
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectDefinitionOrClassWithExtensionsSelectedAndSourceCodeManagerHolder
-	    label: 'Compare Extensions with Repository...'
-	    itemValue: classMenuCompareExtensionsWithRepositoryUsingManagerNamed:
-	    translateLabel: true
-	    argument: SourceCodeManagerNamePlaceholder
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
-	    label: 'Compare Build Support File'
-	    translateLabel: true
-	    argument: SourceCodeManagerNamePlaceholder
-	    submenuChannel: projectMenuSCMCompareBuildSupportFileForManagerNamed:
-	    argument: Default
-	  )
-	 (MenuItem
-	    label: 'Extras'
-	    translateLabel: true
-	    submenuChannel: classMenuSCMExtraForManagerNamed:
-	    argument: SourceCodeManagerNamePlaceholder
-	    isMenuSlice: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasClassSelectedAndSourceCodeManagerHolder
+            label: 'CheckIn...'
+            itemValue: classMenuCheckInUsingManagerNamed:
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn...')
+            argument: SourceCodeManagerNamePlaceholder
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: 'CheckIn (Quick)...'
+            itemValue: classMenuQuickCheckInUsingManagerNamed:
+            translateLabel: true
+            isVisible: hasClassSelectedAndControlKeyDownHolder
+            argument: SourceCodeManagerNamePlaceholder
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasClassWithExtensionsSelectedHolder
+            label: 'CheckIn Extensions For'
+            translateLabel: true
+            argument: SourceCodeManagerNamePlaceholder
+            submenuChannel: browseClassExtensionsMenuUsingManagerNamed:
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: changeSetContainsChangedClassesAndSourceCodeManagerHolder
+            label: 'CheckIn all Changed Classes'
+            itemValue: classMenuCheckInAllChangedClassesUsingManagerNamed:
+            translateLabel: true
+            argument: SourceCodeManagerNamePlaceholder
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
+            label: 'CheckIn Build Support Files...'
+            itemValue: classMenuCheckInBuildSupportFilesUsingManagerNamed:
+            translateLabel: true
+            argument: SourceCodeManagerNamePlaceholder
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'CheckOut Newest'
+            itemValue: classMenuCheckOutNewestUsingManagerNamed:
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
+            argument: SourceCodeManagerNamePlaceholder
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'CheckOut Previous Version...'
+            itemValue: classMenuCheckOutUsingManagerNamed:
+            translateLabel: true
+            argument: SourceCodeManagerNamePlaceholder
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'Revision Log (Recent Changes)'
+            itemValue: classMenuShortRevisionLogUsingManagerNamed:
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Revision Log (Recent Changes)')
+            argument: SourceCodeManagerNamePlaceholder
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'Revision Log (Full)'
+            itemValue: classMenuRevisionLogUsingManagerNamed:
+            translateLabel: true
+            argument: SourceCodeManagerNamePlaceholder
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Browse and Compare all Versions in Repository'
+            itemValue: classMenuBrowseAllVersionsInRepository
+            translateLabel: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Newest in Repository'
+            itemValue: classMenuCompareAgainstNewestInRepositoryUsingManagerNamed:
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryVersions 'Compare with Newest in Repository...')
+            argument: SourceCodeManagerNamePlaceholder
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Original in Repository'
+            itemValue: classMenuCompareAgainstOriginalInRepositoryUsingManagerNamed:
+            translateLabel: true
+            argument: SourceCodeManagerNamePlaceholder
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Stable Version in Repository'
+            itemValue: classMenuCompareAgainstStableInRepositoryUsingManagerNamed:
+            translateLabel: true
+            argument: SourceCodeManagerNamePlaceholder
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Repository...'
+            itemValue: classMenuCompareWithRepositoryUsingManagerNamed:
+            translateLabel: true
+            argument: SourceCodeManagerNamePlaceholder
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare two Repository Versions...'
+            itemValue: classMenuCompareTwoRepositoryVersionsUsingManagerNamed:
+            translateLabel: true
+            argument: SourceCodeManagerNamePlaceholder
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasProjectDefinitionOrClassWithExtensionsSelectedAndSourceCodeManagerHolder
+            label: 'Compare Extensions with Repository...'
+            itemValue: classMenuCompareExtensionsWithRepositoryUsingManagerNamed:
+            translateLabel: true
+            argument: SourceCodeManagerNamePlaceholder
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
+            label: 'Compare Build Support File'
+            translateLabel: true
+            argument: SourceCodeManagerNamePlaceholder
+            submenuChannel: projectMenuSCMCompareBuildSupportFileForManagerNamed:
+            argument: Default
+          )
+         (MenuItem
+            label: 'Extras'
+            translateLabel: true
+            submenuChannel: classMenuSCMExtraForManagerNamed:
+            argument: SourceCodeManagerNamePlaceholder
+            isMenuSlice: true
+          )
+         )
+        nil
+        nil
       )
 
     "Modified: / 12-10-2011 / 20:24:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -14239,25 +14615,32 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'Set Tag...'
-	    itemValue: classMenuSetTag
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryTag 'Set Tag...')
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Edit Version in Repository...'
-	    itemValue: classMenuEditVersionInRepository
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Edit Version in Repository...'
+            itemValue: classMenuEditVersionInRepository
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Create PatchFile against Version...'
+            itemValue: classMenuCreatePatchFileAgainstVersionFromRepository
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'Set Tag...'
+            itemValue: classMenuSetTag
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryTag 'Set Tag...')
+            showBusyCursorWhilePerforming: true
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -14278,60 +14661,60 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
-	    label: 'Changeset'
-	    translateLabel: true
-	    submenuChannel: classSubversionChangesetMenu
-	  )
-	 (MenuItem
-	    label: 'Branch'
-	    translateLabel: true
-	    submenuChannel: commonSubversionBranchMenu
-	  )
-	 (MenuItem
-	    label: 'Browse working copy'
-	    itemValue: commonMenuSubversionBrowseWorkingCopy
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    label: 'More'
-	    translateLabel: true
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  label: 'Common Slice'
-		  translateLabel: true
-		  submenuChannel: commonSubversionMenuSlice
-		  isMenuSlice: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
-		  label: 'Compare'
-		  translateLabel: true
-		  submenuChannel: classSubversionCompareMenu
-		  labelImage: (ResourceRetriever #'SVN::IconLibrary' compare 'Compare')
-		)
-	       (MenuItem
-		  enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
-		  label: 'Browse Revision log'
-		  itemValue: classMenuSubversionShowRevisionLog
-		  translateLabel: true
-		  labelImage: (ResourceRetriever #'SVN::IconLibrary' log 'Browse Revision log')
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
+            label: 'Changeset'
+            translateLabel: true
+            submenuChannel: classSubversionChangesetMenu
+          )
+         (MenuItem
+            label: 'Branch'
+            translateLabel: true
+            submenuChannel: commonSubversionBranchMenu
+          )
+         (MenuItem
+            label: 'Browse working copy'
+            itemValue: commonMenuSubversionBrowseWorkingCopy
+            translateLabel: true
+          )
+         (MenuItem
+            label: 'More'
+            translateLabel: true
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  label: 'Common Slice'
+                  translateLabel: true
+                  submenuChannel: commonSubversionMenuSlice
+                  isMenuSlice: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
+                  label: 'Compare'
+                  translateLabel: true
+                  submenuChannel: classSubversionCompareMenu
+                  labelImage: (ResourceRetriever #'SVN::IconLibrary' compare 'Compare')
+                )
+               (MenuItem
+                  enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
+                  label: 'Browse Revision log'
+                  itemValue: classMenuSubversionShowRevisionLog
+                  translateLabel: true
+                  labelImage: (ResourceRetriever #'SVN::IconLibrary' log 'Browse Revision log')
+                )
+               )
+              nil
+              nil
+            )
+          )
+         )
+        nil
+        nil
       )
 
     "Created: / 23-07-2012 / 13:27:23 / cg"
@@ -14354,60 +14737,60 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
-	    label: 'Changeset'
-	    translateLabel: true
-	    submenuChannel: classSubversionChangesetMenu
-	  )
-	 (MenuItem
-	    label: 'Branch'
-	    translateLabel: true
-	    submenuChannel: commonSubversionBranchMenu
-	  )
-	 (MenuItem
-	    label: 'Browse working copy'
-	    itemValue: commonMenuSubversionBrowseWorkingCopy
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    label: 'More'
-	    translateLabel: true
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  label: 'Common Slice'
-		  translateLabel: true
-		  submenuChannel: commonSubversionMenuSlice
-		  isMenuSlice: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
-		  label: 'Compare'
-		  translateLabel: true
-		  submenuChannel: classSubversionCompareMenu
-		  labelImage: (ResourceRetriever #'SVN::IconLibrary' compare 'Compare')
-		)
-	       (MenuItem
-		  enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
-		  label: 'Browse Revision log'
-		  itemValue: classMenuSubversionShowRevisionLog
-		  translateLabel: true
-		  labelImage: (ResourceRetriever #'SVN::IconLibrary' log 'Browse Revision log')
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
+            label: 'Changeset'
+            translateLabel: true
+            submenuChannel: classSubversionChangesetMenu
+          )
+         (MenuItem
+            label: 'Branch'
+            translateLabel: true
+            submenuChannel: commonSubversionBranchMenu
+          )
+         (MenuItem
+            label: 'Browse working copy'
+            itemValue: commonMenuSubversionBrowseWorkingCopy
+            translateLabel: true
+          )
+         (MenuItem
+            label: 'More'
+            translateLabel: true
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  label: 'Common Slice'
+                  translateLabel: true
+                  submenuChannel: commonSubversionMenuSlice
+                  isMenuSlice: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
+                  label: 'Compare'
+                  translateLabel: true
+                  submenuChannel: classSubversionCompareMenu
+                  labelImage: (ResourceRetriever #'SVN::IconLibrary' compare 'Compare')
+                )
+               (MenuItem
+                  enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
+                  label: 'Browse Revision log'
+                  itemValue: classMenuSubversionShowRevisionLog
+                  translateLabel: true
+                  labelImage: (ResourceRetriever #'SVN::IconLibrary' log 'Browse Revision log')
+                )
+               )
+              nil
+              nil
+            )
+          )
+         )
+        nil
+        nil
       )
 
     "Created: / 15-01-2012 / 14:35:48 / cg"
@@ -14430,60 +14813,60 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
-	    label: 'Changeset'
-	    translateLabel: true
-	    submenuChannel: classSubversionChangesetMenu
-	  )
-	 (MenuItem
-	    label: 'Branch'
-	    translateLabel: true
-	    submenuChannel: commonSubversionBranchMenu
-	  )
-	 (MenuItem
-	    label: 'Browse working copy'
-	    itemValue: commonMenuSubversionBrowseWorkingCopy
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    label: 'More'
-	    translateLabel: true
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  label: 'Common Slice'
-		  translateLabel: true
-		  submenuChannel: commonSubversionMenuSlice
-		  isMenuSlice: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
-		  label: 'Compare'
-		  translateLabel: true
-		  submenuChannel: classSubversionCompareMenu
-		  labelImage: (ResourceRetriever #'SVN::IconLibrary' compare 'Compare')
-		)
-	       (MenuItem
-		  enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
-		  label: 'Browse Revision log'
-		  itemValue: classMenuSubversionShowRevisionLog
-		  translateLabel: true
-		  labelImage: (ResourceRetriever #'SVN::IconLibrary' log 'Browse Revision log')
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
+            label: 'Changeset'
+            translateLabel: true
+            submenuChannel: classSubversionChangesetMenu
+          )
+         (MenuItem
+            label: 'Branch'
+            translateLabel: true
+            submenuChannel: commonSubversionBranchMenu
+          )
+         (MenuItem
+            label: 'Browse working copy'
+            itemValue: commonMenuSubversionBrowseWorkingCopy
+            translateLabel: true
+          )
+         (MenuItem
+            label: 'More'
+            translateLabel: true
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  label: 'Common Slice'
+                  translateLabel: true
+                  submenuChannel: commonSubversionMenuSlice
+                  isMenuSlice: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
+                  label: 'Compare'
+                  translateLabel: true
+                  submenuChannel: classSubversionCompareMenu
+                  labelImage: (ResourceRetriever #'SVN::IconLibrary' compare 'Compare')
+                )
+               (MenuItem
+                  enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
+                  label: 'Browse Revision log'
+                  itemValue: classMenuSubversionShowRevisionLog
+                  translateLabel: true
+                  labelImage: (ResourceRetriever #'SVN::IconLibrary' log 'Browse Revision log')
+                )
+               )
+              nil
+              nil
+            )
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -14504,47 +14887,47 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasClassSelectedAndCVSSourceCodeManagerHolder
-	    label: 'CVS'
-	    isVisible: cvsRepositoryMenusAreShown
-	    submenuChannel: classCVSMenu
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
-	    argument: 'CVS'
-	    keepLinkedMenu: true
-	  )
-	 (MenuItem
-	    enabled: hasClassesSelectedAndSubversionRepositoryExistsHolder
-	    label: 'SubVersion'
-	    isVisible: svnRepositoryMenusAreShown
-	    submenuChannel: classSubversionMenu
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'SubVersion')
-	  )
-	 (MenuItem
-	    enabled: hasClassesSelectedAndFileBasedRepositoryExistsHolder
-	    label: 'File Repository'
-	    isVisible: fileBasedRepositoryMenusAreShown
-	    submenuChannel: classFileBasedRepositoryMenu
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryIcon 'File Repository')
-	  )
-	 (MenuItem
-	    enabled: hasClassesSelectedAndDataBaseRepositoryExistsHolder
-	    label: 'Database Repository'
-	    isVisible: dataBaseRepositoryMenusAreShown
-	    submenuChannel: classDataBaseRepositoryMenu
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryIcon 'Database Repository')
-	  )
-	 (MenuItem
-	    enabled: hasClassesSelectedAndMercurialRepositoryExistsHolder
-	    label: 'Mercurial'
-	    isVisible: mercurialRepositoryMenusAreShown
-	    submenuChannel: classMercurialMenu
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryHGIcon 'Mercurial')
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasClassSelectedAndCVSSourceCodeManagerHolder
+            label: 'CVS'
+            isVisible: cvsRepositoryMenusAreShown
+            submenuChannel: classCVSMenu
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
+            argument: 'CVS'
+            keepLinkedMenu: true
+          )
+         (MenuItem
+            enabled: hasClassesSelectedAndSubversionRepositoryExistsHolder
+            label: 'SubVersion'
+            isVisible: svnRepositoryMenusAreShown
+            submenuChannel: classSubversionMenu
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'SubVersion')
+          )
+         (MenuItem
+            enabled: hasClassesSelectedAndFileBasedRepositoryExistsHolder
+            label: 'File Repository'
+            isVisible: fileBasedRepositoryMenusAreShown
+            submenuChannel: classFileBasedRepositoryMenu
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryIcon 'File Repository')
+          )
+         (MenuItem
+            enabled: hasClassesSelectedAndDataBaseRepositoryExistsHolder
+            label: 'Database Repository'
+            isVisible: dataBaseRepositoryMenusAreShown
+            submenuChannel: classDataBaseRepositoryMenu
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryIcon 'Database Repository')
+          )
+         (MenuItem
+            enabled: hasClassesSelectedAndMercurialRepositoryExistsHolder
+            label: 'Mercurial'
+            isVisible: mercurialRepositoryMenusAreShown
+            submenuChannel: classMercurialMenu
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryHGIcon 'Mercurial')
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -14565,62 +14948,81 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasClassSelectedAndCVSSourceCodeManagerHolder
-	    isVisible: cvsRepositoryMenusAreShown
-	    label: 'CVS'
-	    translateLabel: true
-	    submenuChannel: classMenuSCMFor:
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
-	    argument: CVSSourceCodeManager
-	    keepLinkedMenu: true
-	  )
-	 (MenuItem
-	    enabled: hasClassesSelectedAndSubversionRepositoryExistsHolder
-	    isVisible: svnRepositoryMenusAreShown
-	    label: 'SubVersion'
-	    translateLabel: true
-	    submenuChannel: classMenuSCMFor:
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'SubVersion')
-	    argument: SVNSourceCodeManager
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedAndSourceCodeManagerHolder
-	    label: 'Mercurial+'
-	    isVisible: hgRepositoryMenusAreShown
-	    submenuChannel: classMenuSCMFor:
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryHGIcon 'Mercurial+')
-	    argument: HGSourceCodeManager
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedAndSourceCodeManagerHolder
-	    label: 'Git+'
-	    isVisible: git2RepositoryMenusAreShown
-	    submenuChannel: classMenuSCMFor:
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'Git+')
-	    argument: GitSourceCodeManager2
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedAndSourceCodeManagerHolder
-	    label: 'Mercurial'
-	    translateLabel: true
-	    submenuChannel: classMenuSCMFor:
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryHGIcon 'Mercurial')
-	    argument: MercurialSourceCodeManager
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedAndSourceCodeManagerHolder
-	    isVisible: perforceRepositoryMenusAreShown
-	    label: 'Perforce'
-	    translateLabel: true
-	    submenuChannel: classMenuSCMFor:
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'Perforce')
-	    argument: PerforceSourceCodeManager
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasClassSelectedAndCVSSourceCodeManagerHolder
+            isVisible: cvsRepositoryMenusAreShown
+            label: 'CVS'
+            translateLabel: true
+            submenuChannel: classMenuSCMFor:
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
+            argument: CVSSourceCodeManager
+            keepLinkedMenu: true
+          )
+         (MenuItem
+            enabled: hasClassesSelectedAndDataBaseRepositoryExistsHolder
+            isVisible: dataBaseRepositoryMenusAreShown
+            label: 'Database Repository'
+            translateLabel: true
+            submenuChannel: classMenuSCMFor:
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryIcon 'Database Repository')
+            argument: DataBaseSourceCodeManager
+          )
+         (MenuItem
+            enabled: hasClassesSelectedAndFileBasedRepositoryExistsHolder
+            label: 'File Repository'
+            isVisible: fileBasedRepositoryMenusAreShown
+            translateLabel: true
+            submenuChannel: classMenuSCMFor:
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryIcon 'File Repository')
+            argument: FileBasedSourceCodeManager
+          )
+         (MenuItem
+            enabled: hasClassesSelectedAndSubversionRepositoryExistsHolder
+            isVisible: svnRepositoryMenusAreShown
+            label: 'SubVersion'
+            translateLabel: true
+            submenuChannel: classMenuSCMFor:
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'SubVersion')
+            argument: SVNSourceCodeManager
+          )
+         (MenuItem
+            enabled: hasClassSelectedAndSourceCodeManagerHolder
+            label: 'Mercurial+'
+            isVisible: hgRepositoryMenusAreShown
+            submenuChannel: classMenuSCMFor:
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryHGIcon 'Mercurial+')
+            argument: HGSourceCodeManager
+          )
+         (MenuItem
+            enabled: hasClassSelectedAndSourceCodeManagerHolder
+            label: 'Git+'
+            isVisible: git2RepositoryMenusAreShown
+            submenuChannel: classMenuSCMFor:
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'Git+')
+            argument: GitSourceCodeManager2
+          )
+         (MenuItem
+            enabled: hasClassSelectedAndSourceCodeManagerHolder
+            label: 'Mercurial'
+            isVisible: mercurialRepositoryMenusAreShown
+            translateLabel: true
+            submenuChannel: classMenuSCMFor:
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryHGIcon 'Mercurial')
+            argument: MercurialSourceCodeManager
+          )
+         (MenuItem
+            enabled: hasClassSelectedAndSourceCodeManagerHolder
+            isVisible: perforceRepositoryMenusAreShown
+            label: 'Perforce'
+            translateLabel: true
+            submenuChannel: classMenuSCMFor:
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'Perforce')
+            argument: PerforceSourceCodeManager
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -14641,47 +15043,47 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'Repository'
-	    nameKey: SCM
-	    translateLabel: true
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  label: 'Common Slice'
-		  nameKey: CommonSlice
-		  translateLabel: true
-		  submenuChannel: classMenuSCMFor:
-		  argument: SourceCodeManagerNamePlaceholder
-		  isMenuSlice: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'All Slice'
-		  translateLabel: true
-		  submenuChannel: classMenuSCMSliceAll
-		  isMenuSlice: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'Repository Settings'
-		  itemValue: openSettingsDialogAndSelectSourceCodeManagement
-		  translateLabel: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: 'Repository'
+            nameKey: SCM
+            translateLabel: true
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  label: 'Common Slice'
+                  nameKey: CommonSlice
+                  translateLabel: true
+                  submenuChannel: classMenuSCMFor:
+                  argument: SourceCodeManagerNamePlaceholder
+                  isMenuSlice: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'All Slice'
+                  translateLabel: true
+                  submenuChannel: classMenuSCMSliceAll
+                  isMenuSlice: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'Repository Settings'
+                  itemValue: openSettingsDialogAndSelectSourceCodeManagement
+                  translateLabel: true
+                )
+               )
+              nil
+              nil
+            )
+          )
+         )
+        nil
+        nil
       )
 
     "Modified: / 15-10-2011 / 12:04:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -14705,19 +15107,19 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'All Slice'
-	    translateLabel: true
-	    submenuChannel: classMenuSCMSliceAll
-	    isMenuSlice: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'All Slice'
+            translateLabel: true
+            submenuChannel: classMenuSCMSliceAll
+            isMenuSlice: true
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -14738,68 +15140,68 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasClassSelectedAndCVSSourceCodeManagerHolder
-	    label: 'CVS'
-	    isVisible: cvsRepositoryMenusAreShown
-	    translateLabel: true
-	    submenuChannel: classCVSMenu
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
-	    argument: 'CVS'
-	    keepLinkedMenu: true
-	  )
-	 (MenuItem
-	    enabled: hasClassesSelectedAndDataBaseRepositoryExistsHolder
-	    isVisible: dataBaseRepositoryMenusAreShown
-	    label: 'Database Repository'
-	    translateLabel: true
-	    submenuChannel: classDataBaseRepositoryMenu
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryIcon 'Database Repository')
-	  )
-	 (MenuItem
-	    enabled: hasClassesSelectedAndFileBasedRepositoryExistsHolder
-	    label: 'File Repository'
-	    isVisible: fileBasedRepositoryMenusAreShown
-	    translateLabel: true
-	    submenuChannel: classFileBasedRepositoryMenu
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryIcon 'File Repository')
-	  )
-	 (MenuItem
-	    enabled: hasClassesSelectedAndGitRepositoryExistsHolder
-	    isVisible: gitRepositoryClassMenusAreShown
-	    label: 'Git'
-	    translateLabel: true
-	    submenuChannel: classGitMenu
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryGitIcon 'Git')
-	  )
-	 (MenuItem
-	    enabled: hasClassesSelectedAndMercurialRepositoryExistsHolder
-	    isVisible: mercurialRepositoryMenusAreShown
-	    label: 'Mercurial'
-	    translateLabel: true
-	    submenuChannel: classMercurialMenu
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryHGIcon 'Mercurial')
-	  )
-	 (MenuItem
-	    enabled: hasClassesSelectedAndPerforceRepositoryExistsHolder
-	    isVisible: perforceRepositoryMenusAreShown
-	    label: 'Perforce'
-	    translateLabel: true
-	    submenuChannel: classPerforceMenu
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryP4Icon 'Perforce')
-	  )
-	 (MenuItem
-	    enabled: hasClassesSelectedAndSubversionRepositoryExistsHolder
-	    isVisible: svnRepositoryMenusAreShown
-	    label: 'SubVersion'
-	    translateLabel: true
-	    submenuChannel: classSubversionMenu
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'SubVersion')
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasClassSelectedAndCVSSourceCodeManagerHolder
+            label: 'CVS'
+            isVisible: cvsRepositoryMenusAreShown
+            translateLabel: true
+            submenuChannel: classCVSMenu
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
+            argument: 'CVS'
+            keepLinkedMenu: true
+          )
+         (MenuItem
+            enabled: hasClassesSelectedAndDataBaseRepositoryExistsHolder
+            isVisible: dataBaseRepositoryMenusAreShown
+            label: 'Database Repository'
+            translateLabel: true
+            submenuChannel: classDataBaseRepositoryMenu
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryIcon 'Database Repository')
+          )
+         (MenuItem
+            enabled: hasClassesSelectedAndFileBasedRepositoryExistsHolder
+            label: 'File Repository'
+            isVisible: fileBasedRepositoryMenusAreShown
+            translateLabel: true
+            submenuChannel: classFileBasedRepositoryMenu
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryIcon 'File Repository')
+          )
+         (MenuItem
+            enabled: hasClassesSelectedAndGitRepositoryExistsHolder
+            isVisible: gitRepositoryClassMenusAreShown
+            label: 'Git'
+            translateLabel: true
+            submenuChannel: classGitMenu
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryGitIcon 'Git')
+          )
+         (MenuItem
+            enabled: hasClassesSelectedAndMercurialRepositoryExistsHolder
+            isVisible: mercurialRepositoryMenusAreShown
+            label: 'Mercurial'
+            translateLabel: true
+            submenuChannel: classMercurialMenu
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryHGIcon 'Mercurial')
+          )
+         (MenuItem
+            enabled: hasClassesSelectedAndPerforceRepositoryExistsHolder
+            isVisible: perforceRepositoryMenusAreShown
+            label: 'Perforce'
+            translateLabel: true
+            submenuChannel: classPerforceMenu
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryP4Icon 'Perforce')
+          )
+         (MenuItem
+            enabled: hasClassesSelectedAndSubversionRepositoryExistsHolder
+            isVisible: svnRepositoryMenusAreShown
+            label: 'SubVersion'
+            translateLabel: true
+            submenuChannel: classSubversionMenu
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'SubVersion')
+          )
+         )
+        nil
+        nil
       )
 
     "Modified: / 24-07-2012 / 17:41:18 / cg"
@@ -14822,147 +15224,147 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: '** No SourceCodeManager - See Settings in the Launcher **'
-	    translateLabel: true
-	    isVisible: hasNoSourceCodeManagerHolder
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: hasNoSourceCodeManagerHolder
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedAndSourceCodeManagerHolder
-	    label: 'CheckIn...'
-	    itemValue: classMenuCheckInUsingManagerNamed:
-	    translateLabel: true
-	    isVisible: false
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn...')
-	    argument: MercurialSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: false
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'CheckOut Newest'
-	    itemValue: classMenuCheckOutNewestUsingManagerNamed:
-	    translateLabel: true
-	    isVisible: false
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
-	    argument: MercurialSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'CheckOut Previous Version...'
-	    itemValue: classMenuCheckOutUsingManagerNamed:
-	    translateLabel: true
-	    isVisible: false
-	    argument: MercurialSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: false
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Edit Version in Repository...'
-	    itemValue: classMenuEditVersionInRepositoryUsingManagerNamed:
-	    translateLabel: true
-	    isVisible: false
-	    argument: MercurialSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: trfalseue
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Newest in Repository'
-	    itemValue: classMenuCompareAgainstNewestInRepositoryUsingManagerNamed:
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryVersions 'Compare with Newest in Repository...')
-	    argument: MercurialSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Original in Repository'
-	    itemValue: classMenuCompareAgainstOriginalInRepositoryUsingManagerNamed:
-	    translateLabel: true
-	    argument: MercurialSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Stable Version in Repository'
-	    itemValue: classMenuCompareAgainstStableInRepositoryUsingManagerNamed:
-	    translateLabel: true
-	    argument: MercurialSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Repository...'
-	    itemValue: classMenuCompareWithRepositoryUsingManagerNamed:
-	    translateLabel: true
-	    argument: MercurialSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare two Repository Versions...'
-	    itemValue: classMenuCompareTwoRepositoryVersionsUsingManagerNamed:
-	    translateLabel: true
-	    argument: MercurialSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: false
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'Set Tag...'
-	    itemValue: classMenuSetTagUsingManagerNamed:
-	    translateLabel: true
-	    isVisible: false
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryTag 'Set Tag...')
-	    argument: MercurialSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'Revision Log (Recent Changes)'
-	    itemValue: classMenuShortRevisionLogUsingManagerNamed:
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Revision Log (Recent Changes)')
-	    argument: MercurialSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'Revision Log (Full)'
-	    itemValue: classMenuRevisionLogUsingManagerNamed:
-	    translateLabel: true
-	    argument: MercurialSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 )
-	nil
-	nil
-      )
-
-    "Modified: / 28-10-2012 / 12:00:06 / cg"
+        (
+         (MenuItem
+            label: '** No SourceCodeManager - See Settings in the Launcher **'
+            translateLabel: true
+            isVisible: hasNoSourceCodeManagerHolder
+          )
+         (MenuItem
+            label: '-'
+            isVisible: hasNoSourceCodeManagerHolder
+          )
+         (MenuItem
+            enabled: hasClassSelectedAndSourceCodeManagerHolder
+            label: 'CheckIn...'
+            itemValue: classMenuCheckInUsingManagerNamed:
+            translateLabel: true
+            isVisible: false
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn...')
+            argument: MercurialSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+            isVisible: false
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'CheckOut Newest'
+            itemValue: classMenuCheckOutNewestUsingManagerNamed:
+            translateLabel: true
+            isVisible: false
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
+            argument: MercurialSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'CheckOut Previous Version...'
+            itemValue: classMenuCheckOutUsingManagerNamed:
+            translateLabel: true
+            isVisible: false
+            argument: MercurialSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+            isVisible: false
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Edit Version in Repository...'
+            itemValue: classMenuEditVersionInRepositoryUsingManagerNamed:
+            translateLabel: true
+            isVisible: false
+            argument: MercurialSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+            isVisible: false
+          )
+         (MenuItem
+            enabled: hasClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Newest in Repository'
+            itemValue: classMenuCompareAgainstNewestInRepositoryUsingManagerNamed:
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryVersions 'Compare with Newest in Repository...')
+            argument: MercurialSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Original in Repository'
+            itemValue: classMenuCompareAgainstOriginalInRepositoryUsingManagerNamed:
+            translateLabel: true
+            argument: MercurialSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Stable Version in Repository'
+            itemValue: classMenuCompareAgainstStableInRepositoryUsingManagerNamed:
+            translateLabel: true
+            argument: MercurialSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Repository...'
+            itemValue: classMenuCompareWithRepositoryUsingManagerNamed:
+            translateLabel: true
+            argument: MercurialSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare two Repository Versions...'
+            itemValue: classMenuCompareTwoRepositoryVersionsUsingManagerNamed:
+            translateLabel: true
+            argument: MercurialSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+            isVisible: false
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'Set Tag...'
+            itemValue: classMenuSetTagUsingManagerNamed:
+            translateLabel: true
+            isVisible: false
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryTag 'Set Tag...')
+            argument: MercurialSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'Revision Log (Recent Changes)'
+            itemValue: classMenuShortRevisionLogUsingManagerNamed:
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Revision Log (Recent Changes)')
+            argument: MercurialSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'Revision Log (Full)'
+            itemValue: classMenuRevisionLogUsingManagerNamed:
+            translateLabel: true
+            argument: MercurialSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         )
+        nil
+        nil
+      )
+
+    "Modified: / 06-11-2013 / 20:31:19 / cg"
 !
 
 classPerforceMenu
@@ -14982,164 +15384,170 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: '** No SourceCodeManager - See Settings in the Launcher **'
-	    translateLabel: true
-	    isVisible: hasNoSourceCodeManagerHolder
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: hasNoSourceCodeManagerHolder
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedAndSourceCodeManagerHolder
-	    label: 'CheckIn...'
-	    itemValue: classMenuCheckInP4
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn...')
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasClassWithExtensionsSelectedHolder
-	    label: 'CheckIn Extensions For'
-	    translateLabel: true
-	    submenuChannel: browseClassExtensionsMenu
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: changeSetContainsChangedClassesAndSourceCodeManagerHolder
-	    label: 'CheckIn All Changed Classes'
-	    itemValue: classMenuCheckInAllChangedClasses
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: 'Quick CheckIn...'
-	    itemValue: classMenuQuickCheckIn
-	    translateLabel: true
-	    isVisible: hasClassSelectedAndControlKeyDownHolder
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
-	    label: 'CheckIn Build Support Files...'
-	    itemValue: classMenuCheckInBuildSupportFiles
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedAndSourceCodeManagerHolder
-	    label: 'Submit...'
-	    itemValue: classMenuPerforceSubmit
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'CheckOut Newest'
-	    itemValue: classMenuCheckOutNewest
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'CheckOut Previous Version...'
-	    itemValue: classMenuCheckOut
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Edit Version in Repository...'
-	    itemValue: classMenuEditVersionInRepository
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Newest in Repository'
-	    itemValue: classMenuCompareAgainstNewestInRepository
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryVersions 'Compare with Newest in Repository...')
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Original in Repository'
-	    itemValue: classMenuCompareAgainstOriginalInRepository
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Repository...'
-	    itemValue: classMenuCompareWithRepository
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare two Repository Versions...'
-	    itemValue: classMenuCompareTwoRepositoryVersions
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectDefinitionOrClassWithExtensionsSelectedAndSourceCodeManagerHolder
-	    label: 'Compare Extensions with Repository...'
-	    itemValue: classMenuCompareExtensionsWithRepository
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
-	    label: 'Compare Build Support File'
-	    translateLabel: true
-	    submenuChannel: compareBuildSupportFileMenu
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'Set Tag...'
-	    itemValue: classMenuSetTag
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryTag 'Set Tag...')
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'Revision Log (Recent Changes)'
-	    itemValue: classMenuShortRevisionLog
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Revision Log (Recent Changes)')
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'Revision Log (Full)'
-	    itemValue: classMenuRevisionLog
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: '** No SourceCodeManager - See Settings in the Launcher **'
+            translateLabel: true
+            isVisible: hasNoSourceCodeManagerHolder
+          )
+         (MenuItem
+            label: '-'
+            isVisible: hasNoSourceCodeManagerHolder
+          )
+         (MenuItem
+            enabled: hasClassSelectedAndSourceCodeManagerHolder
+            label: 'CheckIn...'
+            itemValue: classMenuCheckInP4
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn...')
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasClassWithExtensionsSelectedHolder
+            label: 'CheckIn Extensions For'
+            translateLabel: true
+            submenuChannel: browseClassExtensionsMenu
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: changeSetContainsChangedClassesAndSourceCodeManagerHolder
+            label: 'CheckIn all Changed Classes'
+            itemValue: classMenuCheckInAllChangedClasses
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: 'Quick CheckIn...'
+            itemValue: classMenuQuickCheckIn
+            translateLabel: true
+            isVisible: hasClassSelectedAndControlKeyDownHolder
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
+            label: 'CheckIn Build Support Files...'
+            itemValue: classMenuCheckInBuildSupportFiles
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasClassSelectedAndSourceCodeManagerHolder
+            label: 'Submit...'
+            itemValue: classMenuPerforceSubmit
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'CheckOut Newest'
+            itemValue: classMenuCheckOutNewest
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'CheckOut Previous Version...'
+            itemValue: classMenuCheckOut
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Edit Version in Repository...'
+            itemValue: classMenuEditVersionInRepository
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Browse and Compare all Versions in Repository'
+            itemValue: classMenuBrowseAllVersionsInRepository
+            translateLabel: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Newest in Repository'
+            itemValue: classMenuCompareAgainstNewestInRepository
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryVersions 'Compare with Newest in Repository...')
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Original in Repository'
+            itemValue: classMenuCompareAgainstOriginalInRepository
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Repository...'
+            itemValue: classMenuCompareWithRepository
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare two Repository Versions...'
+            itemValue: classMenuCompareTwoRepositoryVersions
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasProjectDefinitionOrClassWithExtensionsSelectedAndSourceCodeManagerHolder
+            label: 'Compare Extensions with Repository...'
+            itemValue: classMenuCompareExtensionsWithRepository
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
+            label: 'Compare Build Support File'
+            translateLabel: true
+            submenuChannel: compareBuildSupportFileMenu
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'Set Tag...'
+            itemValue: classMenuSetTag
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryTag 'Set Tag...')
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'Revision Log (Recent Changes)'
+            itemValue: classMenuShortRevisionLog
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Revision Log (Recent Changes)')
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'Revision Log (Full)'
+            itemValue: classMenuRevisionLog
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         )
+        nil
+        nil
       )
 
     "Modified: / 28-10-2012 / 12:00:23 / cg"
@@ -15161,164 +15569,171 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: '** No SourceCodeManager - See Settings in the Launcher **'
-	    translateLabel: true
-	    isVisible: hasNoSourceCodeManagerHolder
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: hasNoSourceCodeManagerHolder
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedAndSourceCodeManagerHolder
-	    label: 'CheckIn...'
-	    itemValue: classMenuCheckIn
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn...')
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasClassWithExtensionsSelectedHolder
-	    label: 'CheckIn Extensions For'
-	    translateLabel: true
-	    submenuChannel: browseClassExtensionsMenu
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: changeSetContainsChangedClassesAndSourceCodeManagerHolder
-	    label: 'CheckIn All Changed Classes'
-	    itemValue: classMenuCheckInAllChangedClasses
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: 'Quick CheckIn...'
-	    itemValue: classMenuQuickCheckIn
-	    translateLabel: true
-	    isVisible: hasClassSelectedAndControlKeyDownHolder
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
-	    label: 'CheckIn Build Support Files...'
-	    itemValue: classMenuCheckInBuildSupportFiles
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'Set Tag...'
-	    itemValue: classMenuSetTag
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryTag 'Set Tag...')
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'CheckOut Newest'
-	    itemValue: classMenuCheckOutNewest
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'CheckOut Previous Version...'
-	    itemValue: classMenuCheckOut
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'Revision Log (Recent Changes)'
-	    itemValue: classMenuShortRevisionLog
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Revision Log (Recent Changes)')
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
-	    label: 'Revision Log (Full)'
-	    itemValue: classMenuRevisionLog
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Newest in Repository'
-	    itemValue: classMenuCompareAgainstNewestInRepository
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryVersions 'Compare with Newest in Repository...')
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Original in Repository'
-	    itemValue: classMenuCompareAgainstOriginalInRepository
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Stable Version in Repository'
-	    itemValue: classMenuCompareAgainstStableInRepository
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Repository...'
-	    itemValue: classMenuCompareWithRepository
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Compare two Repository Versions...'
-	    itemValue: classMenuCompareTwoRepositoryVersions
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
-	    label: 'Compare Extensions with Repository...'
-	    itemValue: classMenuCompareExtensionsWithRepository
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
-	    label: 'Compare Build Support File'
-	    translateLabel: true
-	    submenuChannel: compareBuildSupportFileMenu
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
-	    label: 'Edit Version in Repository...'
-	    itemValue: classMenuEditVersionInRepository
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: '** No SourceCodeManager - See Settings in the Launcher **'
+            translateLabel: true
+            isVisible: hasNoSourceCodeManagerHolder
+          )
+         (MenuItem
+            label: '-'
+            isVisible: hasNoSourceCodeManagerHolder
+          )
+         (MenuItem
+            enabled: hasClassSelectedAndSourceCodeManagerHolder
+            label: 'CheckIn...'
+            itemValue: classMenuCheckIn
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn...')
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasClassWithExtensionsSelectedHolder
+            label: 'CheckIn Extensions For'
+            translateLabel: true
+            submenuChannel: browseClassExtensionsMenu
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: changeSetContainsChangedClassesAndSourceCodeManagerHolder
+            label: 'CheckIn all Changed Classes'
+            itemValue: classMenuCheckInAllChangedClasses
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: 'Quick CheckIn...'
+            itemValue: classMenuQuickCheckIn
+            translateLabel: true
+            isVisible: hasClassSelectedAndControlKeyDownHolder
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
+            label: 'CheckIn Build Support Files...'
+            itemValue: classMenuCheckInBuildSupportFiles
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'Set Tag...'
+            itemValue: classMenuSetTag
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryTag 'Set Tag...')
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'CheckOut Newest'
+            itemValue: classMenuCheckOutNewest
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'CheckOut Previous Version...'
+            itemValue: classMenuCheckOut
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'Revision Log (Recent Changes)'
+            itemValue: classMenuShortRevisionLog
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Revision Log (Recent Changes)')
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+            label: 'Revision Log (Full)'
+            itemValue: classMenuRevisionLog
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Edit Version in Repository...'
+            itemValue: classMenuEditVersionInRepository
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Browse and Compare all Versions in Repository'
+            itemValue: classMenuBrowseAllVersionsInRepository
+            translateLabel: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Newest in Repository'
+            itemValue: classMenuCompareAgainstNewestInRepository
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryVersions 'Compare with Newest in Repository...')
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Original in Repository'
+            itemValue: classMenuCompareAgainstOriginalInRepository
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Stable Version in Repository'
+            itemValue: classMenuCompareAgainstStableInRepository
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Repository...'
+            itemValue: classMenuCompareWithRepository
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+            label: 'Compare two Repository Versions...'
+            itemValue: classMenuCompareTwoRepositoryVersions
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
+            label: 'Compare Extensions with Repository...'
+            itemValue: classMenuCompareExtensionsWithRepository
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+
+         (MenuItem
+            enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
+            label: 'Compare Build Support File'
+            translateLabel: true
+            submenuChannel: compareBuildSupportFileMenu
+          )
+         )
+        nil
+        nil
       )
 
     "Modified: / 28-10-2012 / 11:54:14 / cg"
@@ -15343,159 +15758,159 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'CheckIn...'
-	    itemValue: projectMenuCheckInAllUsingManagerNamed:
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn...')
-	    argument: CVSSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'CheckIn Classes Only...'
-	    itemValue: projectMenuCheckInClassesUsingManagerNamed:
-	    argument: CVSSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'CheckIn Extensions Only...'
-	    itemValue: projectMenuCheckInExtensionsUsingManagerNamed:
-	    argument: CVSSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'CheckIn Build Support Files Only...'
-	    itemValue: projectMenuCheckInBuildSupportFilesUsingManagerNamed:
-	    argument: CVSSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'CheckOut Newest'
-	    itemValue: projectMenuCheckOutNewest
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'CheckOut Previous Version...'
-	    itemValue: projectMenuCheckOut
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'CheckOut Extensions Only...'
-	    itemValue: projectMenuCheckOutExtensions
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Import Structure...'
-	    itemValue: projectMenuImport
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: 'Import...'
-	    itemValue: projectMenuImportAndLoadClasses
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Newest in Repository'
-	    itemValue: projectMenuCompareAgainstNewestInRepositoryUsingManagerNamed:
-	    argument: CVSSourceCodeManager
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Stable Version in Repository'
-	    itemValue: projectMenuCompareAgainstStableInRepository
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Repository at Date or Tag...'
-	    itemValue: projectMenuCompareAgainstRepository
-	  )
-	 (MenuItem
-	    label: 'Compare Build Support File'
-	    submenuChannel: compareBuildSupportFileMenu
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'Browse Classes ...'
-	    itemValue: projectMenuCheckRepositoryConsistency
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'Set Tag (Release As)...'
-	    itemValue: projectMenuSetTagUsingManagerNamed:
-	    argument: CVSSourceCodeManager
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryTag 'Set Tag (Release As)...')
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'Set Tag of Build Support Files...'
-	    itemValue: projectMenuSetTagOfBuildSupportFilesUsingManagerNamed:
-	    argument: CVSSourceCodeManager
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'Repository History...'
-	    itemValue: projectMenuRepositoryHistoryUsingManagerNamed:
-	    argument: CVSSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: 'Package Dependencies...'
-	    itemValue: projectPackageDependencyBrowser
-	    isVisible: false
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'Find Classes NOT tagged as "stable"'
-	    itemValue: projectMenuFindNotStableClasses
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'Find Classes NOT tagged as...'
-	    itemValue: projectMenuFindNotTaggedClasses
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: false
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedHolder
-	    label: 'Resource Files...'
-	    itemValue: projectMenuResources
-	    isVisible: false
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedHolder
-	    label: 'Bitmap Files...'
-	    itemValue: projectMenuBitmapFiles
-	    isVisible: false
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'CheckIn...'
+            itemValue: projectMenuCheckInAllUsingManagerNamed:
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn...')
+            argument: CVSSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'CheckIn Classes Only...'
+            itemValue: projectMenuCheckInClassesUsingManagerNamed:
+            argument: CVSSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'CheckIn Extensions Only...'
+            itemValue: projectMenuCheckInExtensionsUsingManagerNamed:
+            argument: CVSSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'CheckIn Build Support Files Only...'
+            itemValue: projectMenuCheckInBuildSupportFilesUsingManagerNamed:
+            argument: CVSSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'CheckOut Newest'
+            itemValue: projectMenuCheckOutNewest
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'CheckOut Previous Version...'
+            itemValue: projectMenuCheckOut
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'CheckOut Extensions Only...'
+            itemValue: projectMenuCheckOutExtensions
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Import Structure...'
+            itemValue: projectMenuImport
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: 'Import...'
+            itemValue: projectMenuImportAndLoadClasses
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Newest in Repository'
+            itemValue: projectMenuCompareAgainstNewestInRepositoryUsingManagerNamed:
+            argument: CVSSourceCodeManager
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Stable Version in Repository'
+            itemValue: projectMenuCompareAgainstStableInRepository
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Repository at Date or Tag...'
+            itemValue: projectMenuCompareAgainstRepository
+          )
+         (MenuItem
+            label: 'Compare Build Support File'
+            submenuChannel: compareBuildSupportFileMenu
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'Browse Classes ...'
+            itemValue: projectMenuCheckRepositoryConsistency
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'Set Tag (Release As)...'
+            itemValue: projectMenuSetTagUsingManagerNamed:
+            argument: CVSSourceCodeManager
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryTag 'Set Tag (Release As)...')
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'Set Tag of Build Support Files...'
+            itemValue: projectMenuSetTagOfBuildSupportFilesUsingManagerNamed:
+            argument: CVSSourceCodeManager
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'Repository History...'
+            itemValue: projectMenuRepositoryHistoryUsingManagerNamed:
+            argument: CVSSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: 'Package Dependencies...'
+            itemValue: projectPackageDependencyBrowser
+            isVisible: false
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'Find Classes NOT tagged as "stable"'
+            itemValue: projectMenuFindNotStableClasses
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'Find Classes NOT tagged as...'
+            itemValue: projectMenuFindNotTaggedClasses
+          )
+         (MenuItem
+            label: '-'
+            isVisible: false
+          )
+         (MenuItem
+            enabled: hasProjectSelectedHolder
+            label: 'Resource Files...'
+            itemValue: projectMenuResources
+            isVisible: false
+          )
+         (MenuItem
+            enabled: hasProjectSelectedHolder
+            label: 'Bitmap Files...'
+            itemValue: projectMenuBitmapFiles
+            isVisible: false
+          )
+         )
+        nil
+        nil
       )
 
     "Modified: / 29-07-2013 / 09:49:12 / cg"
@@ -15518,120 +15933,120 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'Commit (CheckIn)...'
-	    itemValue: projectMenuCheckInAllUsingManagerNamed:
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'Commit (CheckIn)...')
-	    argument: GitSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'CheckOut Newest'
-	    itemValue: projectMenuCheckOutNewestUsingManagerNamed:
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
-	    argument: GitSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'CheckOut Previous Version...'
-	    itemValue: projectMenuCheckOutUsingManagerNamed:
-	    argument: GitSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'CheckOut Extensions Only...'
-	    itemValue: projectMenuCheckOutExtensionsUsingManagerNamed:
-	    argument: GitSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Import Structure...'
-	    itemValue: projectMenuImportUsingManagerNamed:
-	    argument: GitSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: 'Import...'
-	    itemValue: projectMenuImportAndLoadClassesUsingManagerNamed:
-	    argument: GitSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Newest in Repository'
-	    itemValue: projectMenuCompareAgainstNewestInRepositoryUsingManagerNamed:
-	    argument: GitSourceCodeManager
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Repository at Date...'
-	    itemValue: projectMenuCompareAgainstRepositoryUsingManagerNamed:
-	    argument: GitSourceCodeManager
-	  )
-	 (MenuItem
-	    label: 'Compare Build Support File'
-	    submenuChannel: compareBuildSupportFileMenuUsingManagerNamed:
-	    argument: GitSourceCodeManager
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'Consistency Check...'
-	    itemValue: projectMenuCheckRepositoryConsistencyUsingManagerNamed:
-	    argument: GitSourceCodeManager
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'Set Tag (Release As)...'
-	    itemValue: projectMenuSetTagUsingManagerNamed:
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryTag 'Set Tag (Release As)...')
-	    argument: GitSourceCodeManager
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'Repository History...'
-	    itemValue: projectMenuRepositoryHistoryUsingManagerNamed:
-	    argument: GitSourceCodeManager
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: false
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedHolder
-	    label: 'Resource Files...'
-	    itemValue: projectMenuResources
-	    isVisible: false
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedHolder
-	    label: 'Bitmap Files...'
-	    itemValue: projectMenuBitmapFiles
-	    isVisible: false
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'Commit (CheckIn)...'
+            itemValue: projectMenuCheckInAllUsingManagerNamed:
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'Commit (CheckIn)...')
+            argument: GitSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'CheckOut Newest'
+            itemValue: projectMenuCheckOutNewestUsingManagerNamed:
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
+            argument: GitSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'CheckOut Previous Version...'
+            itemValue: projectMenuCheckOutUsingManagerNamed:
+            argument: GitSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'CheckOut Extensions Only...'
+            itemValue: projectMenuCheckOutExtensionsUsingManagerNamed:
+            argument: GitSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Import Structure...'
+            itemValue: projectMenuImportUsingManagerNamed:
+            argument: GitSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: 'Import...'
+            itemValue: projectMenuImportAndLoadClassesUsingManagerNamed:
+            argument: GitSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Newest in Repository'
+            itemValue: projectMenuCompareAgainstNewestInRepositoryUsingManagerNamed:
+            argument: GitSourceCodeManager
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Repository at Date...'
+            itemValue: projectMenuCompareAgainstRepositoryUsingManagerNamed:
+            argument: GitSourceCodeManager
+          )
+         (MenuItem
+            label: 'Compare Build Support File'
+            submenuChannel: compareBuildSupportFileMenuUsingManagerNamed:
+            argument: GitSourceCodeManager
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'Consistency Check...'
+            itemValue: projectMenuCheckRepositoryConsistencyUsingManagerNamed:
+            argument: GitSourceCodeManager
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'Set Tag (Release As)...'
+            itemValue: projectMenuSetTagUsingManagerNamed:
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryTag 'Set Tag (Release As)...')
+            argument: GitSourceCodeManager
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'Repository History...'
+            itemValue: projectMenuRepositoryHistoryUsingManagerNamed:
+            argument: GitSourceCodeManager
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+            isVisible: false
+          )
+         (MenuItem
+            enabled: hasProjectSelectedHolder
+            label: 'Resource Files...'
+            itemValue: projectMenuResources
+            isVisible: false
+          )
+         (MenuItem
+            enabled: hasProjectSelectedHolder
+            label: 'Bitmap Files...'
+            itemValue: projectMenuBitmapFiles
+            isVisible: false
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -15652,159 +16067,159 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'CheckIn...'
-	    itemValue: projectMenuCheckInAllUsingManagerNamed:
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn...')
-	    argument: SourceCodeManagerNamePlaceholder
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'CheckIn Classes Only...'
-	    itemValue: projectMenuCheckInClassesUsingManagerNamed:
-	    translateLabel: true
-	    argument: SourceCodeManagerNamePlaceholder
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'CheckIn Extensions Only...'
-	    itemValue: projectMenuCheckInExtensionsUsingManagerNamed:
-	    translateLabel: true
-	    argument: SourceCodeManagerNamePlaceholder
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'CheckIn Build Support Files Only...'
-	    itemValue: projectMenuCheckInBuildSupportFilesUsingManagerNamed:
-	    translateLabel: true
-	    argument: SourceCodeManagerNamePlaceholder
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'CheckOut Newest'
-	    itemValue: projectMenuCheckOutNewestUsingManagerNamed:
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
-	    argument: SourceCodeManagerNamePlaceholder
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'CheckOut Previous Version...'
-	    itemValue: projectMenuCheckOutUsingManagerNamed:
-	    translateLabel: true
-	    argument: SourceCodeManagerNamePlaceholder
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'CheckOut Extensions Only...'
-	    itemValue: projectMenuCheckOutExtensionsUsingManagerNamed:
-	    translateLabel: true
-	    argument: SourceCodeManagerNamePlaceholder
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Import Structure...'
-	    itemValue: projectMenuImportUsingManagerNamed:
-	    translateLabel: true
-	    argument: SourceCodeManagerNamePlaceholder
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: 'Import...'
-	    itemValue: projectMenuImportAndLoadClassesUsingManagerNamed:
-	    translateLabel: true
-	    argument: SourceCodeManagerNamePlaceholder
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Newest in Repository'
-	    itemValue: projectMenuCompareAgainstNewestInRepositoryUsingManagerNamed:
-	    translateLabel: true
-	    argument: SourceCodeManagerNamePlaceholder
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Stable Version in Repository'
-	    itemValue: projectMenuCompareAgainstStableInRepositoryUsingManager:
-	    translateLabel: true
-	    argument: SourceCodeManagerPlaceholder
-	    isVisible: false
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Repository at Date...'
-	    itemValue: projectMenuCompareAgainstRepositoryUsingManager:
-	    translateLabel: true
-	    argument: SourceCodeManagerPlaceholder
-	  )
-	 (MenuItem
-	    label: 'Compare Build Support File'
-	    translateLabel: true
-	    submenuChannel: projectMenuSCMCompareBuildSupportFileForManagerNamed:
-	    argument: SourceCodeManagerNamePlaceholder
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'Consistency Check...'
-	    itemValue: projectMenuCheckRepositoryConsistencyUsingManager:
-	    translateLabel: true
-	    argument: SourceCodeManagerPlaceholder
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'Package Integrity Check...'
-	    itemValue: projectMenuCheckPackageIntegrity
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: false
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedHolder
-	    label: 'Resource Files...'
-	    itemValue: projectMenuResourcesUsingManager:
-	    translateLabel: true
-	    isVisible: false
-	    argument: SourceCodeManagerPlaceholder
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedHolder
-	    label: 'Bitmap Files...'
-	    itemValue: projectMenuBitmapFilesUsingManager:
-	    translateLabel: true
-	    isVisible: false
-	    argument: SourceCodeManagerPlaceholder
-	  )
-	 (MenuItem
-	    label: 'Extras'
-	    translateLabel: true
-	    submenuChannel: projectMenuSCMExtraFor:
-	    argument: SourceCodeManagerNamePlaceholder
-	    isMenuSlice: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'CheckIn...'
+            itemValue: projectMenuCheckInAllUsingManagerNamed:
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn...')
+            argument: SourceCodeManagerNamePlaceholder
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'CheckIn Classes Only...'
+            itemValue: projectMenuCheckInClassesUsingManagerNamed:
+            translateLabel: true
+            argument: SourceCodeManagerNamePlaceholder
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'CheckIn Extensions Only...'
+            itemValue: projectMenuCheckInExtensionsUsingManagerNamed:
+            translateLabel: true
+            argument: SourceCodeManagerNamePlaceholder
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'CheckIn Build Support Files Only...'
+            itemValue: projectMenuCheckInBuildSupportFilesUsingManagerNamed:
+            translateLabel: true
+            argument: SourceCodeManagerNamePlaceholder
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'CheckOut Newest'
+            itemValue: projectMenuCheckOutNewestUsingManagerNamed:
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
+            argument: SourceCodeManagerNamePlaceholder
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'CheckOut Previous Version...'
+            itemValue: projectMenuCheckOutUsingManagerNamed:
+            translateLabel: true
+            argument: SourceCodeManagerNamePlaceholder
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'CheckOut Extensions Only...'
+            itemValue: projectMenuCheckOutExtensionsUsingManagerNamed:
+            translateLabel: true
+            argument: SourceCodeManagerNamePlaceholder
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Import Structure...'
+            itemValue: projectMenuImportUsingManagerNamed:
+            translateLabel: true
+            argument: SourceCodeManagerNamePlaceholder
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: 'Import...'
+            itemValue: projectMenuImportAndLoadClassesUsingManagerNamed:
+            translateLabel: true
+            argument: SourceCodeManagerNamePlaceholder
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Newest in Repository'
+            itemValue: projectMenuCompareAgainstNewestInRepositoryUsingManagerNamed:
+            translateLabel: true
+            argument: SourceCodeManagerNamePlaceholder
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Stable Version in Repository'
+            itemValue: projectMenuCompareAgainstStableInRepositoryUsingManager:
+            translateLabel: true
+            argument: SourceCodeManagerPlaceholder
+            isVisible: false
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Repository at Date...'
+            itemValue: projectMenuCompareAgainstRepositoryUsingManager:
+            translateLabel: true
+            argument: SourceCodeManagerPlaceholder
+          )
+         (MenuItem
+            label: 'Compare Build Support File'
+            translateLabel: true
+            submenuChannel: projectMenuSCMCompareBuildSupportFileForManagerNamed:
+            argument: SourceCodeManagerNamePlaceholder
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'Consistency Check...'
+            itemValue: projectMenuCheckRepositoryConsistencyUsingManager:
+            translateLabel: true
+            argument: SourceCodeManagerPlaceholder
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'Package Integrity Check...'
+            itemValue: projectMenuCheckPackageIntegrity
+            translateLabel: true
+          )
+         (MenuItem
+            label: '-'
+            isVisible: false
+          )
+         (MenuItem
+            enabled: hasProjectSelectedHolder
+            label: 'Resource Files...'
+            itemValue: projectMenuResourcesUsingManager:
+            translateLabel: true
+            isVisible: false
+            argument: SourceCodeManagerPlaceholder
+          )
+         (MenuItem
+            enabled: hasProjectSelectedHolder
+            label: 'Bitmap Files...'
+            itemValue: projectMenuBitmapFilesUsingManager:
+            translateLabel: true
+            isVisible: false
+            argument: SourceCodeManagerPlaceholder
+          )
+         (MenuItem
+            label: 'Extras'
+            translateLabel: true
+            submenuChannel: projectMenuSCMExtraFor:
+            argument: SourceCodeManagerNamePlaceholder
+            isMenuSlice: true
+          )
+         )
+        nil
+        nil
       )
 
     "Modified: / 26-07-2012 / 12:29:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -15827,90 +16242,90 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasSingleProjectOrProjectDefinitionSelected
-	    label: 'Make.spec'
-	    itemValue: projectMenuShowGeneratedBuildFile:usingManager:
-	    translateLabel: true
-	    argument: 'Make.spec'
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleProjectOrProjectDefinitionSelected
-	    label: 'Make.proto'
-	    itemValue: projectMenuShowGeneratedBuildFile:usingManager:
-	    translateLabel: true
-	    argument: 'Make.proto'
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleProjectOrProjectDefinitionSelected
-	    label: 'bc.mak'
-	    itemValue: projectMenuShowGeneratedBuildFile:usingManager:
-	    translateLabel: true
-	    argument: 'bc.mak'
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleProjectOrProjectDefinitionSelected
-	    label: 'libInit.cc'
-	    itemValue: projectMenuShowGeneratedBuildFile:usingManager:
-	    translateLabel: true
-	    argument: 'libInit.cc'
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleProjectOrProjectDefinitionSelected
-	    label: 'modules.stx'
-	    itemValue: projectMenuShowGeneratedBuildFile:usingManager:
-	    translateLabel: true
-	    argument: 'modules.stx'
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleProjectOrProjectDefinitionSelected
-	    label: 'lib.rc / app.rc'
-	    itemValue: projectMenuShowGeneratedBuildFile:usingManager:
-	    translateLabel: true
-	    argument: 'lib.rc'
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleProjectOrProjectDefinitionSelected
-	    label: 'app.nsi'
-	    itemValue: projectMenuShowGeneratedBuildFile:usingManager:
-	    translateLabel: true
-	    argument: 'app.nsi'
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleProjectOrProjectDefinitionSelected
-	    label: 'abbrev.stc'
-	    itemValue: projectMenuShowGeneratedBuildFile:usingManager:
-	    translateLabel: true
-	    argument: 'abbrev.stc'
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleProjectOrProjectDefinitionSelected
-	    label: 'loadAll'
-	    itemValue: projectMenuShowGeneratedBuildFile:usingManager:
-	    translateLabel: true
-	    argument: 'loadAll'
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasSingleProjectOrProjectDefinitionSelected
-	    label: 'bmake.bat'
-	    itemValue: projectMenuShowGeneratedBuildFile:usingManager:
-	    translateLabel: true
-	    argument: 'bmake.bat'
-	    showBusyCursorWhilePerforming: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasSingleProjectOrProjectDefinitionSelected
+            label: 'Make.spec'
+            itemValue: projectMenuShowGeneratedBuildFile:usingManager:
+            translateLabel: true
+            argument: 'Make.spec'
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleProjectOrProjectDefinitionSelected
+            label: 'Make.proto'
+            itemValue: projectMenuShowGeneratedBuildFile:usingManager:
+            translateLabel: true
+            argument: 'Make.proto'
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleProjectOrProjectDefinitionSelected
+            label: 'bc.mak'
+            itemValue: projectMenuShowGeneratedBuildFile:usingManager:
+            translateLabel: true
+            argument: 'bc.mak'
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleProjectOrProjectDefinitionSelected
+            label: 'libInit.cc'
+            itemValue: projectMenuShowGeneratedBuildFile:usingManager:
+            translateLabel: true
+            argument: 'libInit.cc'
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleProjectOrProjectDefinitionSelected
+            label: 'modules.stx'
+            itemValue: projectMenuShowGeneratedBuildFile:usingManager:
+            translateLabel: true
+            argument: 'modules.stx'
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleProjectOrProjectDefinitionSelected
+            label: 'lib.rc / app.rc'
+            itemValue: projectMenuShowGeneratedBuildFile:usingManager:
+            translateLabel: true
+            argument: 'lib.rc'
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleProjectOrProjectDefinitionSelected
+            label: 'app.nsi'
+            itemValue: projectMenuShowGeneratedBuildFile:usingManager:
+            translateLabel: true
+            argument: 'app.nsi'
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleProjectOrProjectDefinitionSelected
+            label: 'abbrev.stc'
+            itemValue: projectMenuShowGeneratedBuildFile:usingManager:
+            translateLabel: true
+            argument: 'abbrev.stc'
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleProjectOrProjectDefinitionSelected
+            label: 'loadAll'
+            itemValue: projectMenuShowGeneratedBuildFile:usingManager:
+            translateLabel: true
+            argument: 'loadAll'
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasSingleProjectOrProjectDefinitionSelected
+            label: 'bmake.bat'
+            itemValue: projectMenuShowGeneratedBuildFile:usingManager:
+            translateLabel: true
+            argument: 'bmake.bat'
+            showBusyCursorWhilePerforming: true
+          )
+         )
+        nil
+        nil
       )
 
     "Created: / 12-10-2011 / 18:56:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -15934,32 +16349,32 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'Repository History...'
-	    itemValue: projectMenuRepositoryHistoryUsingManagerNamed:
-	    argument: CVSSourceCodeManager
-	    translateLabel: true
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'Set Tag (Release As)...'
-	    itemValue: projectMenuSetTagUsingManagerNamed:
-	    argument: CVSSourceCodeManager
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryTag 'Set Tag (Release As)...')
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'Set Tag of Build Support Files...'
-	    itemValue: projectMenuSetTagOfBuildSupportFilesUsingManagerNamed:
-	    argument: CVSSourceCodeManager
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'Repository History...'
+            itemValue: projectMenuRepositoryHistoryUsingManagerNamed:
+            argument: CVSSourceCodeManager
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'Set Tag (Release As)...'
+            itemValue: projectMenuSetTagUsingManagerNamed:
+            argument: CVSSourceCodeManager
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryTag 'Set Tag (Release As)...')
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'Set Tag of Build Support Files...'
+            itemValue: projectMenuSetTagOfBuildSupportFilesUsingManagerNamed:
+            argument: CVSSourceCodeManager
+          )
+         )
+        nil
+        nil
       )
 
     "Modified: / 29-07-2013 / 09:49:26 / cg"
@@ -15982,76 +16397,76 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasProjectSelectedSubversionRepositoryExistsAndBranchSelectedHolder
-	    label: 'Changeset'
-	    translateLabel: true
-	    submenuChannel: projectSubversionChangesetMenu
-	  )
-	 (MenuItem
-	    label: 'Branch'
-	    translateLabel: true
-	    submenuChannel: commonSubversionBranchMenu
-	  )
-	 (MenuItem
-	    label: 'Browse working copy'
-	    itemValue: commonMenuSubversionBrowseWorkingCopy
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'Set Tag (Release As)...'
-	    itemValue: projectMenuSetTagUsingManagerNamed:
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryTag 'Set Tag (Release As)...')
-	    argument: SourceCodeManagerNamePlaceholder
-	  )
-	 (MenuItem
-	    label: 'More'
-	    translateLabel: true
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  label: 'Remove working copy'
-		  itemValue: projectMenuSubversionRemoveWorkingCopy
-		  translateLabel: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasProjectSelectedSubversionRepositoryExistsAndBranchSelectedHolder
-		  label: 'Fast commit'
-		  translateLabel: true
-		  choice: projectMenuSubversionCommitMode
-		  choiceValue: fast
-		)
-	       (MenuItem
-		  enabled: hasProjectSelectedSubversionRepositoryExistsAndBranchSelectedHolder
-		  label: 'Full commit'
-		  translateLabel: true
-		  choice: projectMenuSubversionCommitMode
-		  choiceValue: full
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'Common Slice'
-		  translateLabel: true
-		  submenuChannel: commonSubversionMenuSlice
-		  isMenuSlice: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasProjectSelectedSubversionRepositoryExistsAndBranchSelectedHolder
+            label: 'Changeset'
+            translateLabel: true
+            submenuChannel: projectSubversionChangesetMenu
+          )
+         (MenuItem
+            label: 'Branch'
+            translateLabel: true
+            submenuChannel: commonSubversionBranchMenu
+          )
+         (MenuItem
+            label: 'Browse working copy'
+            itemValue: commonMenuSubversionBrowseWorkingCopy
+            translateLabel: true
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'Set Tag (Release As)...'
+            itemValue: projectMenuSetTagUsingManagerNamed:
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryTag 'Set Tag (Release As)...')
+            argument: SourceCodeManagerNamePlaceholder
+          )
+         (MenuItem
+            label: 'More'
+            translateLabel: true
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  label: 'Remove working copy'
+                  itemValue: projectMenuSubversionRemoveWorkingCopy
+                  translateLabel: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasProjectSelectedSubversionRepositoryExistsAndBranchSelectedHolder
+                  label: 'Fast commit'
+                  translateLabel: true
+                  choice: projectMenuSubversionCommitMode
+                  choiceValue: fast
+                )
+               (MenuItem
+                  enabled: hasProjectSelectedSubversionRepositoryExistsAndBranchSelectedHolder
+                  label: 'Full commit'
+                  translateLabel: true
+                  choice: projectMenuSubversionCommitMode
+                  choiceValue: full
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'Common Slice'
+                  translateLabel: true
+                  submenuChannel: commonSubversionMenuSlice
+                  isMenuSlice: true
+                )
+               )
+              nil
+              nil
+            )
+          )
+         )
+        nil
+        nil
       )
 
     "Modified: / 23-07-2012 / 15:16:29 / cg"
@@ -16062,8 +16477,8 @@
     <resource: #menu>
 
     ^self
-	perform: ('projectMenuSCMSlice_' , UserPreferences current sourceCodeManagementMenuLayout) asSymbol
-	ifNotUnderstood: [self projectMenuSCMSlice_old].
+        perform: ('projectMenuSCMSlice_' , UserPreferences current sourceCodeManagementMenuLayout) asSymbol
+        ifNotUnderstood: [self projectMenuSCMSlice_old].
 
     "Created: / 07-10-2011 / 14:50:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
@@ -16085,57 +16500,57 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'CVS'
-	    submenuChannel: projectMenuSCMFor:
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
-	    argument: CVSSourceCodeManager
-	    keepLinkedMenu: true
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'SubVersion'
-	    isVisible: hasSubversionSupport
-	    submenuChannel: projectMenuSCMFor:
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'SubVersion')
-	    argument: SVNSourceCodeManager
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'Mercurial+'
-	    isVisible: hgRepositoryMenusAreShown
-	    submenuChannel: projectMenuSCMFor:
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryP4Icon 'Mercurial+')
-	    argument: HGSourceCodeManager
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'Git+'
-	    isVisible: git2RepositoryMenusAreShown
-	    submenuChannel: projectMenuSCMFor:
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryP4Icon 'Git+')
-	    argument: GitSourceCodeManager2
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'Perforce'
-	    isVisible: hasPerforceSupport
-	    submenuChannel: projectMenuSCMFor:
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryP4Icon 'Perforce')
-	    argument: PerforceSourceCodeManager
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSourceCodeManagerHolder
-	    label: 'Monticello'
-	    isVisible: hasMonticelloSupport
-	    submenuChannel: projectMonticelloMenu
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryMCIcon 'Monticello')
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'CVS'
+            submenuChannel: projectMenuSCMFor:
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
+            argument: CVSSourceCodeManager
+            keepLinkedMenu: true
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'SubVersion'
+            isVisible: hasSubversionSupport
+            submenuChannel: projectMenuSCMFor:
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'SubVersion')
+            argument: SVNSourceCodeManager
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'Mercurial+'
+            isVisible: hgRepositoryMenusAreShown
+            submenuChannel: projectMenuSCMFor:
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryP4Icon 'Mercurial+')
+            argument: HGSourceCodeManager
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'Git+'
+            isVisible: git2RepositoryMenusAreShown
+            submenuChannel: projectMenuSCMFor:
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryP4Icon 'Git+')
+            argument: GitSourceCodeManager2
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'Perforce'
+            isVisible: hasPerforceSupport
+            submenuChannel: projectMenuSCMFor:
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryP4Icon 'Perforce')
+            argument: PerforceSourceCodeManager
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSourceCodeManagerHolder
+            label: 'Monticello'
+            isVisible: hasMonticelloSupport
+            submenuChannel: projectMonticelloMenu
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryMCIcon 'Monticello')
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -16156,47 +16571,47 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'Repository'
-	    nameKey: SCM
-	    translateLabel: true
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  label: 'Common Slice'
-		  nameKey: CommonSlice
-		  translateLabel: true
-		  submenuChannel: projectMenuSCMFor:
-		  argument: SourceCodeManagerNamePlaceholder
-		  isMenuSlice: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'All Slice'
-		  translateLabel: true
-		  submenuChannel: projectMenuSCMSliceAll
-		  isMenuSlice: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'Repository Settings'
-		  itemValue: openSettingsDialogAndSelectSourceCodeManagement
-		  translateLabel: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: 'Repository'
+            nameKey: SCM
+            translateLabel: true
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  label: 'Common Slice'
+                  nameKey: CommonSlice
+                  translateLabel: true
+                  submenuChannel: projectMenuSCMFor:
+                  argument: SourceCodeManagerNamePlaceholder
+                  isMenuSlice: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'All Slice'
+                  translateLabel: true
+                  submenuChannel: projectMenuSCMSliceAll
+                  isMenuSlice: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'Repository Settings'
+                  itemValue: openSettingsDialogAndSelectSourceCodeManagement
+                  translateLabel: true
+                )
+               )
+              nil
+              nil
+            )
+          )
+         )
+        nil
+        nil
       )
 
     "Created: / 12-10-2011 / 20:36:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -16220,19 +16635,19 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'All Slice'
-	    translateLabel: true
-	    submenuChannel: projectMenuSCMSliceAll
-	    isMenuSlice: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'All Slice'
+            translateLabel: true
+            submenuChannel: projectMenuSCMSliceAll
+            isMenuSlice: true
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -16253,40 +16668,40 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'CVS'
-	    translateLabel: true
-	    submenuChannel: projectCVSMenu
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndGitRepositoryExistsHolder
-	    isVisible: gitRepositoryMenusAreShown
-	    label: 'Git'
-	    translateLabel: true
-	    submenuChannel: projectGitMenu
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryGitIcon 'Git')
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndMonticelloRepositoryExistsHolder
-	    label: 'Monticello'
-	    translateLabel: true
-	    isVisible: hasMonticelloSupport
-	    submenuChannel: projectMonticelloMenu
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryMCIcon 'Monticello')
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedAndSubversionRepositoryExistsHolder
-	    label: 'SubVersion'
-	    translateLabel: true
-	    isVisible: hasSubversionSupport
-	    submenuChannel: projectSubversionMenu
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'SubVersion')
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: 'CVS'
+            translateLabel: true
+            submenuChannel: projectCVSMenu
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndGitRepositoryExistsHolder
+            isVisible: gitRepositoryMenusAreShown
+            label: 'Git'
+            translateLabel: true
+            submenuChannel: projectGitMenu
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryGitIcon 'Git')
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndMonticelloRepositoryExistsHolder
+            label: 'Monticello'
+            translateLabel: true
+            isVisible: hasMonticelloSupport
+            submenuChannel: projectMonticelloMenu
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryMCIcon 'Monticello')
+          )
+         (MenuItem
+            enabled: hasProjectSelectedAndSubversionRepositoryExistsHolder
+            label: 'SubVersion'
+            translateLabel: true
+            isVisible: hasSubversionSupport
+            submenuChannel: projectSubversionMenu
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'SubVersion')
+          )
+         )
+        nil
+        nil
       )
 
     "Modified: / 24-07-2012 / 17:40:34 / cg"
@@ -16310,55 +16725,55 @@
 
     ^
      #(Menu
-	      (
-	       (MenuItem
-		  enabled: hasMethodSelected
-		  label: 'CheckIn Class(es)...'
-		  itemValue: methodListMenuCheckInClassUsingManagerNamed:
-		  argument: CVSSourceCodeManager
-		  translateLabel: true
-		  labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn Class(es)...')
-		  showBusyCursorWhilePerforming: true
-		)
-	       (MenuItem
-		  enabled: hasRealExtensionMethodSelectedHolder
-		  label: 'CheckIn Extensions for Project...'
-		  itemValue: selectorMenuCheckInProjectExtensions
-		  translateLabel: true
-		  isVisible: hasExtensionMethodSelectedHolder
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasMethodSelectedAndSourceCodeManagerHolder
-		  label: 'Compare with Newest in Repository'
-		  itemValue: selectorMenuCompareAgainstNewestInRepositoryUsingManagerNamed:
-		  argument: CVSSourceCodeManager
-		  translateLabel: true
-		  labelImage: (ResourceRetriever ToolbarIconLibrary repositoryVersions 'Compare with Newest in Repository...')
-		)
-	       (MenuItem
-		  enabled: hasMethodSelectedAndSourceCodeManagerHolder
-		  label: 'Compare Class with Newest in Repository'
-		  itemValue: selectorMenuCompareClassAgainstNewestInRepositoryUsingManagerNamed:
-		  argument: CVSSourceCodeManager
-		  translateLabel: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasSingleMethodSelected
-		  label: 'Browse Repository Versions...'
-		  itemValue: selectorMenuBrowseRepositoryVersionsUsingManagerNamed:
-		  argument: CVSSourceCodeManager
-		  translateLabel: true
-		)
-	       )
-	      nil
-	      nil
-	    )
+              (
+               (MenuItem
+                  enabled: hasMethodSelected
+                  label: 'CheckIn Class(es)...'
+                  itemValue: methodListMenuCheckInClassUsingManagerNamed:
+                  argument: CVSSourceCodeManager
+                  translateLabel: true
+                  labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn Class(es)...')
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
+                  enabled: hasRealExtensionMethodSelectedHolder
+                  label: 'CheckIn Extensions for Project...'
+                  itemValue: selectorMenuCheckInProjectExtensions
+                  translateLabel: true
+                  isVisible: hasExtensionMethodSelectedHolder
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasMethodSelectedAndSourceCodeManagerHolder
+                  label: 'Compare with Newest in Repository'
+                  itemValue: selectorMenuCompareAgainstNewestInRepositoryUsingManagerNamed:
+                  argument: CVSSourceCodeManager
+                  translateLabel: true
+                  labelImage: (ResourceRetriever ToolbarIconLibrary repositoryVersions 'Compare with Newest in Repository...')
+                )
+               (MenuItem
+                  enabled: hasMethodSelectedAndSourceCodeManagerHolder
+                  label: 'Compare Class with Newest in Repository'
+                  itemValue: selectorMenuCompareClassAgainstNewestInRepositoryUsingManagerNamed:
+                  argument: CVSSourceCodeManager
+                  translateLabel: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasSingleMethodSelected
+                  label: 'Browse Repository Versions...'
+                  itemValue: selectorMenuBrowseRepositoryVersionsUsingManagerNamed:
+                  argument: CVSSourceCodeManager
+                  translateLabel: true
+                )
+               )
+              nil
+              nil
+            )
 
     "Modified: / 28-10-2012 / 12:02:36 / cg"
 !
@@ -16380,55 +16795,55 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasMethodSelected
-	    label: 'CheckIn Class(es)...'
-	    itemValue: methodListMenuCheckInClassUsingManagerNamed:
-	    argument: SourceCodeManagerNamePlaceholder
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn Class(es)...')
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    enabled: hasRealExtensionMethodSelectedHolder
-	    label: 'CheckIn Extensions for Project...'
-	    itemValue: selectorMenuCheckInProjectExtensionsUsingManager:
-	    argument: SourceCodeManagerPlaceholder
-	    translateLabel: true
-	    isVisible: hasExtensionMethodSelectedHolder
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasMethodSelectedAndSourceCodeManagerHolder
-	    label: 'Compare with Newest in Repository'
-	    itemValue: selectorMenuCompareAgainstNewestInRepositoryUsingManagerNamed:
-	    argument: SourceCodeManagerNamePlaceholder
-	    translateLabel: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryVersions 'Compare with Newest in Repository...')
-	  )
-	 (MenuItem
-	    enabled: hasMethodSelectedAndSourceCodeManagerHolder
-	    label: 'Compare Class with Newest in Repository'
-	    itemValue: selectorMenuCompareClassAgainstNewestInRepositoryUsingManagerNamed:
-	    argument: SourceCodeManagerNamePlaceholder
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasSingleMethodSelected
-	    label: 'Browse Repository Versions...'
-	    itemValue: selectorMenuBrowseRepositoryVersionsUsingManagerNamed:
-	    argument: SourceCodeManagerNamePlaceholder
-	    translateLabel: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasMethodSelected
+            label: 'CheckIn Class(es)...'
+            itemValue: methodListMenuCheckInClassUsingManagerNamed:
+            argument: SourceCodeManagerNamePlaceholder
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn Class(es)...')
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: hasRealExtensionMethodSelectedHolder
+            label: 'CheckIn Extensions for Project...'
+            itemValue: selectorMenuCheckInProjectExtensionsUsingManager:
+            argument: SourceCodeManagerPlaceholder
+            translateLabel: true
+            isVisible: hasExtensionMethodSelectedHolder
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasMethodSelectedAndSourceCodeManagerHolder
+            label: 'Compare with Newest in Repository'
+            itemValue: selectorMenuCompareAgainstNewestInRepositoryUsingManagerNamed:
+            argument: SourceCodeManagerNamePlaceholder
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryVersions 'Compare with Newest in Repository...')
+          )
+         (MenuItem
+            enabled: hasMethodSelectedAndSourceCodeManagerHolder
+            label: 'Compare Class with Newest in Repository'
+            itemValue: selectorMenuCompareClassAgainstNewestInRepositoryUsingManagerNamed:
+            argument: SourceCodeManagerNamePlaceholder
+            translateLabel: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasSingleMethodSelected
+            label: 'Browse Repository Versions...'
+            itemValue: selectorMenuBrowseRepositoryVersionsUsingManagerNamed:
+            argument: SourceCodeManagerNamePlaceholder
+            translateLabel: true
+          )
+         )
+        nil
+        nil
       )
 
     "Modified: / 11-01-2012 / 14:05:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -16452,19 +16867,19 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'All Slice'
-	    translateLabel: true
-	    submenuChannel: selectorMenuSCMSliceAll
-	    isMenuSlice: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'All Slice'
+            translateLabel: true
+            submenuChannel: selectorMenuSCMSliceAll
+            isMenuSlice: true
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -16485,53 +16900,53 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasMethodSelectedAndSourceCodeManagerHolder
-	    label: 'CVS'
-	    translateLabel: true
-	    submenuChannel: selectorMenuSCMFor:
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
-	    argument: CVSSourceCodeManager
-	    keepLinkedMenu: true
-	  )
-	 (MenuItem
-	    enabled: hasMethodSelectedAndSourceCodeManagerHolder
-	    label: 'SubVersion'
-	    translateLabel: true
-	    isVisible: hasSubversionSupport
-	    submenuChannel: selectorMenuSCMFor:
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'SubVersion')
-	    argument: SVNSourceCodeManager
-	  )
-	 (MenuItem
-	    enabled: hasMethodSelectedAndSourceCodeManagerHolder
-	    label: 'Mercurial+'
-	    isVisible: hgRepositoryMenusAreShown
-	    submenuChannel: selectorMenuSCMFor:
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryP4Icon 'Mercurial+')
-	    argument: HGSourceCodeManager
-	  )
-	 (MenuItem
-	    enabled: hasMethodSelectedAndSourceCodeManagerHolder
-	    label: 'Git+'
-	    isVisible: perforceRepositoryMenusAreShown
-	    submenuChannel: selectorMenuSCMFor:
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryP4Icon 'Git+')
-	    argument: HGSourceCodeManager2
-	  )
-	 (MenuItem
-	    enabled: hasMethodSelectedAndSourceCodeManagerHolder
-	    label: 'Perforce'
-	    translateLabel: true
-	    isVisible: hasPerforceSupport
-	    submenuChannel: selectorMenuSCMFor:
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryP4Icon 'Perforce')
-	    argument: PerforceSourceCodeManager
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasMethodSelectedAndSourceCodeManagerHolder
+            label: 'CVS'
+            translateLabel: true
+            submenuChannel: selectorMenuSCMFor:
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
+            argument: CVSSourceCodeManager
+            keepLinkedMenu: true
+          )
+         (MenuItem
+            enabled: hasMethodSelectedAndSourceCodeManagerHolder
+            label: 'SubVersion'
+            translateLabel: true
+            isVisible: hasSubversionSupport
+            submenuChannel: selectorMenuSCMFor:
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'SubVersion')
+            argument: SVNSourceCodeManager
+          )
+         (MenuItem
+            enabled: hasMethodSelectedAndSourceCodeManagerHolder
+            label: 'Mercurial+'
+            isVisible: hgRepositoryMenusAreShown
+            submenuChannel: selectorMenuSCMFor:
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryP4Icon 'Mercurial+')
+            argument: HGSourceCodeManager
+          )
+         (MenuItem
+            enabled: hasMethodSelectedAndSourceCodeManagerHolder
+            label: 'Git+'
+            isVisible: perforceRepositoryMenusAreShown
+            submenuChannel: selectorMenuSCMFor:
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryP4Icon 'Git+')
+            argument: HGSourceCodeManager2
+          )
+         (MenuItem
+            enabled: hasMethodSelectedAndSourceCodeManagerHolder
+            label: 'Perforce'
+            translateLabel: true
+            isVisible: hasPerforceSupport
+            submenuChannel: selectorMenuSCMFor:
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryP4Icon 'Perforce')
+            argument: PerforceSourceCodeManager
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -16552,47 +16967,47 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'Repository'
-	    nameKey: SCM
-	    translateLabel: true
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  label: 'Common Slice'
-		  nameKey: CommonSlice
-		  translateLabel: true
-		  submenuChannel: selectorMenuSCMFor:
-		  argument: SourceCodeManagerNamePlaceholder
-		  isMenuSlice: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'All Slice'
-		  translateLabel: true
-		  submenuChannel: selectorMenuSCMSliceAll
-		  isMenuSlice: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'Repository Settings'
-		  itemValue: openSettingsDialogAndSelectSourceCodeManagement
-		  translateLabel: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: 'Repository'
+            nameKey: SCM
+            translateLabel: true
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  label: 'Common Slice'
+                  nameKey: CommonSlice
+                  translateLabel: true
+                  submenuChannel: selectorMenuSCMFor:
+                  argument: SourceCodeManagerNamePlaceholder
+                  isMenuSlice: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'All Slice'
+                  translateLabel: true
+                  submenuChannel: selectorMenuSCMSliceAll
+                  isMenuSlice: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'Repository Settings'
+                  itemValue: openSettingsDialogAndSelectSourceCodeManagement
+                  translateLabel: true
+                )
+               )
+              nil
+              nil
+            )
+          )
+         )
+        nil
+        nil
       )
 
     "Created: / 12-10-2011 / 20:45:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -16616,19 +17031,19 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'All Slice'
-	    translateLabel: true
-	    submenuChannel: selectorMenuSCMSliceAll
-	    isMenuSlice: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'All Slice'
+            translateLabel: true
+            submenuChannel: selectorMenuSCMSliceAll
+            isMenuSlice: true
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -16649,17 +17064,17 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasMethodSelected
-	    label: 'CVS'
-	    translateLabel: true
-	    submenuChannel: selectorMenuCVS
-	    labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasMethodSelected
+            label: 'CVS'
+            translateLabel: true
+            submenuChannel: selectorMenuCVS
+            labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
+          )
+         )
+        nil
+        nil
       )
 ! !
 
@@ -16681,39 +17096,39 @@
 
     ^
      #(#Menu
-	#(
-	 #(#MenuItem
-	    #label: 'File out as...'
-	    #translateLabel: true
-	    #value: #classMenu3FileOutAs
-	    #showBusyCursorWhilePerforming: true
-	  )
-	 #(#MenuItem
-	    #label: 'Check Into Repository...'
-	    #translateLabel: true
-	    #value: #classMenu3CheckIn
-	    #showBusyCursorWhilePerforming: true
-	  )
-	 #(#MenuItem
-	    #label: '-'
-	  )
-	 #(#MenuItem
-	    #label: 'Spawn'
-	    #translateLabel: true
-	    #value: #classMenu3SpawnClass
-	  )
-	 #(#MenuItem
-	    #label: '-'
-	  )
-	 #(#MenuItem
-	    #label: 'Compare With Newest in Repository...'
-	    #translateLabel: true
-	    #value: #classMenu3CompareAgainstNewestInRepository
-	    #showBusyCursorWhilePerforming: true
-	  )
-	 )
-	nil
-	nil
+        #(
+         #(#MenuItem
+            #label: 'File out as...'
+            #translateLabel: true
+            #value: #classMenu3FileOutAs
+            #showBusyCursorWhilePerforming: true
+          )
+         #(#MenuItem
+            #label: 'Check Into Repository...'
+            #translateLabel: true
+            #value: #classMenu3CheckIn
+            #showBusyCursorWhilePerforming: true
+          )
+         #(#MenuItem
+            #label: '-'
+          )
+         #(#MenuItem
+            #label: 'Spawn'
+            #translateLabel: true
+            #value: #classMenu3SpawnClass
+          )
+         #(#MenuItem
+            #label: '-'
+          )
+         #(#MenuItem
+            #label: 'Compare With Newest in Repository...'
+            #translateLabel: true
+            #value: #classMenu3CompareAgainstNewestInRepository
+            #showBusyCursorWhilePerforming: true
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -16733,38 +17148,38 @@
 
     ^
      #(#Menu
-	#(
-	 #(#MenuItem
-	    #label: 'File out as...'
-	    #translateLabel: true
-	    #value: #classMenuFileOutAs
-	    #showBusyCursorWhilePerforming: true
-	  )
-	 #(#MenuItem
-	    #label: 'Check Into Repository...'
-	    #translateLabel: true
-	    #value: #classMenuCheckIn
-	    #showBusyCursorWhilePerforming: true
-	  )
-	 #(#MenuItem
-	    #label: '-'
-	  )
-	 #(#MenuItem
-	    #label: 'Spawn'
-	    #translateLabel: true
-	    #value: #classMenuSpawnClass
-	  )
-	 #(#MenuItem
-	    #label: '-'
-	  )
-	 #(#MenuItem
-	    #label: 'Remove...'
-	    #translateLabel: true
-	    #value: #classMenuRemove
-	  )
-	 )
-	nil
-	nil
+        #(
+         #(#MenuItem
+            #label: 'File out as...'
+            #translateLabel: true
+            #value: #classMenuFileOutAs
+            #showBusyCursorWhilePerforming: true
+          )
+         #(#MenuItem
+            #label: 'Check Into Repository...'
+            #translateLabel: true
+            #value: #classMenuCheckIn
+            #showBusyCursorWhilePerforming: true
+          )
+         #(#MenuItem
+            #label: '-'
+          )
+         #(#MenuItem
+            #label: 'Spawn'
+            #translateLabel: true
+            #value: #classMenuSpawnClass
+          )
+         #(#MenuItem
+            #label: '-'
+          )
+         #(#MenuItem
+            #label: 'Remove...'
+            #translateLabel: true
+            #value: #classMenuRemove
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -16784,33 +17199,33 @@
 
     ^
      #(#Menu
-	#(
-	 #(#MenuItem
-	    #label: 'CheckOut Newest...'
-	    #translateLabel: true
-	    #value: #classMenu2CheckOutNewest
-	    #showBusyCursorWhilePerforming: true
-	  )
-	 #(#MenuItem
-	    #label: '-'
-	  )
-	 #(#MenuItem
-	    #label: 'Spawn'
-	    #translateLabel: true
-	    #value: #classMenu2SpawnClass
-	  )
-	 #(#MenuItem
-	    #label: '-'
-	  )
-	 #(#MenuItem
-	    #label: 'Compare With Newest in Repository...'
-	    #translateLabel: true
-	    #value: #classMenu2CompareAgainstNewestInRepository
-	    #showBusyCursorWhilePerforming: true
-	  )
-	 )
-	nil
-	nil
+        #(
+         #(#MenuItem
+            #label: 'CheckOut Newest...'
+            #translateLabel: true
+            #value: #classMenu2CheckOutNewest
+            #showBusyCursorWhilePerforming: true
+          )
+         #(#MenuItem
+            #label: '-'
+          )
+         #(#MenuItem
+            #label: 'Spawn'
+            #translateLabel: true
+            #value: #classMenu2SpawnClass
+          )
+         #(#MenuItem
+            #label: '-'
+          )
+         #(#MenuItem
+            #label: 'Compare With Newest in Repository...'
+            #translateLabel: true
+            #value: #classMenu2CompareAgainstNewestInRepository
+            #showBusyCursorWhilePerforming: true
+          )
+         )
+        nil
+        nil
       )
 
     "Modified: / 29-09-2006 / 16:10:31 / cg"
@@ -16832,24 +17247,24 @@
 
     ^
      #(#Menu
-	#(
-	 #(#MenuItem
-	    #label: 'CheckOut...'
-	    #translateLabel: true
-	    #value: #classMenu4CheckOut
-	    #showBusyCursorWhilePerforming: true
-	  )
-	 #(#MenuItem
-	    #label: '-'
-	  )
-	 #(#MenuItem
-	    #label: 'Remove Container'
-	    #translateLabel: true
-	    #value: #classMenu4RemoveContainer
-	  )
-	 )
-	nil
-	nil
+        #(
+         #(#MenuItem
+            #label: 'CheckOut...'
+            #translateLabel: true
+            #value: #classMenu4CheckOut
+            #showBusyCursorWhilePerforming: true
+          )
+         #(#MenuItem
+            #label: '-'
+          )
+         #(#MenuItem
+            #label: 'Remove Container'
+            #translateLabel: true
+            #value: #classMenu4RemoveContainer
+          )
+         )
+        nil
+        nil
       )
 
     "Modified: / 29-09-2006 / 16:11:08 / cg"
@@ -16874,21 +17289,21 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'Commit or Generate mcz File...'
-	    itemValue: projectMenuMonticelloCommit
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: false
-	    label: 'Not yet finished...'
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: 'Commit or Generate mcz File...'
+            itemValue: projectMenuMonticelloCommit
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: false
+            label: 'Not yet finished...'
+          )
+         )
+        nil
+        nil
       )
 ! !
 
@@ -16949,7 +17364,9 @@
 
     <resource: #programMenu>
 
-    ^ self refactoringMenu
+    ^ self menuFor: #refactoringMenu
+
+    "Modified: / 26-08-2014 / 22:37:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 tabMenuWithRemove
@@ -16968,33 +17385,33 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'Add Page'
-	    itemValue: bufferMenuCreateBuffer
-	    nameKey: CreateBuffer
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Remove Page'
-	    itemValue: bufferMenuRemoveBuffer:
-	    nameKey: RemoveBuffer
-	    translateLabel: true
-	    argument: 0
-	  )
-	 (MenuItem
-	    label: 'Remove all other Pages'
-	    itemValue: bufferMenuRemoveAllButBuffer:
-	    nameKey: RemoveAllButBuffer
-	    translateLabel: true
-	    argument: 0
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: 'Add Page'
+            itemValue: bufferMenuCreateBuffer
+            nameKey: CreateBuffer
+            translateLabel: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Remove Page'
+            itemValue: bufferMenuRemoveBuffer:
+            nameKey: RemoveBuffer
+            translateLabel: true
+            argument: 0
+          )
+         (MenuItem
+            label: 'Remove all other Pages'
+            itemValue: bufferMenuRemoveAllButBuffer:
+            nameKey: RemoveAllButBuffer
+            translateLabel: true
+            argument: 0
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -17014,16 +17431,16 @@
 
     ^
      #(#Menu
-	#(
-	 #(#MenuItem
-	    #label: 'Add Tab'
-	    #translateLabel: true
-	    #nameKey: #CreateBuffer
-	    #value: #bufferMenuCreateBuffer
-	  )
-	 )
-	nil
-	nil
+        #(
+         #(#MenuItem
+            #label: 'Add Tab'
+            #translateLabel: true
+            #nameKey: #CreateBuffer
+            #value: #bufferMenuCreateBuffer
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -17055,84 +17472,84 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
-	    label: 'Commit'
-	    itemValue: classMenuSubversionCommit
-	    translateLabel: true
-	    labelImage: (ResourceRetriever #'SVN::IconLibrary' commit 'Commit')
-	  )
-	 (MenuItem
-	    enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
-	    label: 'Update'
-	    itemValue: classMenuSubversionUpdate
-	    translateLabel: true
-	    labelImage: (ResourceRetriever #'SVN::IconLibrary' update 'Update')
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
-	    label: 'Compare'
-	    translateLabel: true
-	    submenuChannel: classSubversionCompareMenu
-	    labelImage: (ResourceRetriever #'SVN::IconLibrary' compare 'Compare')
-	  )
-	 (MenuItem
-	    enabled: false
-	    label: 'Merge'
-	    translateLabel: true
-	    submenuChannel: classSubversionMergeMenu
-	    labelImage: (ResourceRetriever #'SVN::IconLibrary' merge 'Merge')
-	  )
-	 (MenuItem
-	    enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
-	    label: 'Changeset'
-	    translateLabel: true
-	    submenuChannel: classSubversionChangesetMenu
-	  )
-	 (MenuItem
-	    enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
-	    label: 'Revision log'
-	    itemValue: classMenuSubversionShowRevisionLog
-	    translateLabel: true
-	    labelImage: (ResourceRetriever #'SVN::IconLibrary' log 'Revision log')
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Branch'
-	    translateLabel: true
-	    submenuChannel: commonSubversionBranchMenu
-	  )
-	 (MenuItem
-	    label: 'Browse working copy'
-	    itemValue: commonMenuSubversionBrowseWorkingCopy
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    label: 'More'
-	    translateLabel: true
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  label: 'Common Slice'
-		  translateLabel: true
-		  submenuChannel: commonSubversionMenuSlice
-		  isMenuSlice: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
+            label: 'Commit'
+            itemValue: classMenuSubversionCommit
+            translateLabel: true
+            labelImage: (ResourceRetriever #'SVN::IconLibrary' commit 'Commit')
+          )
+         (MenuItem
+            enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
+            label: 'Update'
+            itemValue: classMenuSubversionUpdate
+            translateLabel: true
+            labelImage: (ResourceRetriever #'SVN::IconLibrary' update 'Update')
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
+            label: 'Compare'
+            translateLabel: true
+            submenuChannel: classSubversionCompareMenu
+            labelImage: (ResourceRetriever #'SVN::IconLibrary' compare 'Compare')
+          )
+         (MenuItem
+            enabled: false
+            label: 'Merge'
+            translateLabel: true
+            submenuChannel: classSubversionMergeMenu
+            labelImage: (ResourceRetriever #'SVN::IconLibrary' merge 'Merge')
+          )
+         (MenuItem
+            enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
+            label: 'Changeset'
+            translateLabel: true
+            submenuChannel: classSubversionChangesetMenu
+          )
+         (MenuItem
+            enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
+            label: 'Revision log'
+            itemValue: classMenuSubversionShowRevisionLog
+            translateLabel: true
+            labelImage: (ResourceRetriever #'SVN::IconLibrary' log 'Revision log')
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Branch'
+            translateLabel: true
+            submenuChannel: commonSubversionBranchMenu
+          )
+         (MenuItem
+            label: 'Browse working copy'
+            itemValue: commonMenuSubversionBrowseWorkingCopy
+            translateLabel: true
+          )
+         (MenuItem
+            label: 'More'
+            translateLabel: true
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  label: 'Common Slice'
+                  translateLabel: true
+                  submenuChannel: commonSubversionMenuSlice
+                  isMenuSlice: true
+                )
+               )
+              nil
+              nil
+            )
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -17152,20 +17569,20 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    label: 'Settings'
-	    itemValue: commonMenuSubversionOpenSettings
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    label: 'Flush caches'
-	    itemValue: commonMenuSubversionFlushCaches
-	    translateLabel: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: 'Settings'
+            itemValue: commonMenuSubversionOpenSettings
+            translateLabel: true
+          )
+         (MenuItem
+            label: 'Flush caches'
+            itemValue: commonMenuSubversionFlushCaches
+            translateLabel: true
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -17185,118 +17602,118 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: hasProjectSelectedSubversionRepositoryExistsAndBranchSelectedHolder
-	    label: 'Commit'
-	    itemValue: projectMenuSubversionCommit
-	    translateLabel: true
-	    labelImage: (ResourceRetriever #'SVN::IconLibrary' commit 'Commit')
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedSubversionRepositoryExistsAndBranchSelectedHolder
-	    label: 'Update'
-	    itemValue: projectMenuSubversionUpdate
-	    translateLabel: true
-	    labelImage: (ResourceRetriever #'SVN::IconLibrary' update 'Update')
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedSubversionRepositoryExistsAndBranchSelectedHolder
-	    label: 'Compare'
-	    translateLabel: true
-	    submenuChannel: projectSubversionCompareMenu
-	    labelImage: (ResourceRetriever #'SVN::IconLibrary' compare 'Compare')
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedSubversionRepositoryExistsAndBranchSelectedHolder
-	    label: 'Merge'
-	    translateLabel: true
-	    submenuChannel: projectSubversionMergeMenu
-	    labelImage: (ResourceRetriever #'SVN::IconLibrary' merge 'Merge')
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedSubversionRepositoryExistsAndBranchSelectedHolder
-	    label: 'Changeset'
-	    translateLabel: true
-	    submenuChannel: projectSubversionChangesetMenu
-	  )
-	 (MenuItem
-	    enabled: hasProjectSelectedSubversionRepositoryExistsAndBranchSelectedHolder
-	    label: 'Revision log'
-	    itemValue: projectMenuSubversionShowRevisionLog
-	    translateLabel: true
-	    labelImage: (ResourceRetriever #'SVN::IconLibrary' log 'Revision log')
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Branch'
-	    translateLabel: true
-	    submenuChannel: commonSubversionBranchMenu
-	  )
-	 (MenuItem
-	    label: 'Browse working copy'
-	    itemValue: commonMenuSubversionBrowseWorkingCopy
-	    translateLabel: true
-	  )
-	 (MenuItem
-	    label: 'More'
-	    translateLabel: true
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  enabled: hasProjectSelectedSubversionRepositoryExistsAndBranchSelectedHolder
-		  label: 'Load revision...'
-		  itemValue: projectMenuSubversionLoadRevision
-		  translateLabel: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'Remove working copy'
-		  itemValue: projectMenuSubversionRemoveWorkingCopy
-		  translateLabel: true
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasProjectSelectedSubversionRepositoryExistsAndBranchSelectedHolder
-		  label: 'Fast commit'
-		  translateLabel: true
-		  choice: projectMenuSubversionCommitMode
-		  choiceValue: fast
-		)
-	       (MenuItem
-		  enabled: hasProjectSelectedSubversionRepositoryExistsAndBranchSelectedHolder
-		  label: 'Full commit'
-		  translateLabel: true
-		  choice: projectMenuSubversionCommitMode
-		  choiceValue: full
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'Common Slice'
-		  translateLabel: true
-		  submenuChannel: commonSubversionMenuSlice
-		  isMenuSlice: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: hasProjectSelectedSubversionRepositoryExistsAndBranchSelectedHolder
+            label: 'Commit'
+            itemValue: projectMenuSubversionCommit
+            translateLabel: true
+            labelImage: (ResourceRetriever #'SVN::IconLibrary' commit 'Commit')
+          )
+         (MenuItem
+            enabled: hasProjectSelectedSubversionRepositoryExistsAndBranchSelectedHolder
+            label: 'Update'
+            itemValue: projectMenuSubversionUpdate
+            translateLabel: true
+            labelImage: (ResourceRetriever #'SVN::IconLibrary' update 'Update')
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasProjectSelectedSubversionRepositoryExistsAndBranchSelectedHolder
+            label: 'Compare'
+            translateLabel: true
+            submenuChannel: projectSubversionCompareMenu
+            labelImage: (ResourceRetriever #'SVN::IconLibrary' compare 'Compare')
+          )
+         (MenuItem
+            enabled: hasProjectSelectedSubversionRepositoryExistsAndBranchSelectedHolder
+            label: 'Merge'
+            translateLabel: true
+            submenuChannel: projectSubversionMergeMenu
+            labelImage: (ResourceRetriever #'SVN::IconLibrary' merge 'Merge')
+          )
+         (MenuItem
+            enabled: hasProjectSelectedSubversionRepositoryExistsAndBranchSelectedHolder
+            label: 'Changeset'
+            translateLabel: true
+            submenuChannel: projectSubversionChangesetMenu
+          )
+         (MenuItem
+            enabled: hasProjectSelectedSubversionRepositoryExistsAndBranchSelectedHolder
+            label: 'Revision log'
+            itemValue: projectMenuSubversionShowRevisionLog
+            translateLabel: true
+            labelImage: (ResourceRetriever #'SVN::IconLibrary' log 'Revision log')
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Branch'
+            translateLabel: true
+            submenuChannel: commonSubversionBranchMenu
+          )
+         (MenuItem
+            label: 'Browse working copy'
+            itemValue: commonMenuSubversionBrowseWorkingCopy
+            translateLabel: true
+          )
+         (MenuItem
+            label: 'More'
+            translateLabel: true
+            submenu:
+           (Menu
+              (
+               (MenuItem
+                  enabled: hasProjectSelectedSubversionRepositoryExistsAndBranchSelectedHolder
+                  label: 'Load revision...'
+                  itemValue: projectMenuSubversionLoadRevision
+                  translateLabel: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'Remove working copy'
+                  itemValue: projectMenuSubversionRemoveWorkingCopy
+                  translateLabel: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  enabled: hasProjectSelectedSubversionRepositoryExistsAndBranchSelectedHolder
+                  label: 'Fast commit'
+                  translateLabel: true
+                  choice: projectMenuSubversionCommitMode
+                  choiceValue: fast
+                )
+               (MenuItem
+                  enabled: hasProjectSelectedSubversionRepositoryExistsAndBranchSelectedHolder
+                  label: 'Full commit'
+                  translateLabel: true
+                  choice: projectMenuSubversionCommitMode
+                  choiceValue: full
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'Common Slice'
+                  translateLabel: true
+                  submenuChannel: commonSubversionMenuSlice
+                  isMenuSlice: true
+                )
+               )
+              nil
+              nil
+            )
+          )
+         )
+        nil
+        nil
       )
 ! !
 
@@ -17319,303 +17736,315 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    activeHelpKey: goBackInGlobalHistory
-	    enabled: canGoBackInGlobalHistoryAspect
-	    label: 'Back (Global History)'
-	    itemValue: goBackInGlobalHistory
-	    isButton: true
-	    isVisible: showGlobalHistory
-	    labelImage: (ResourceRetriever ToolbarIconLibrary historyBackInGlobalListIcon)
-	  )
-	 (MenuItem
-	    activeHelpKey: goBack
-	    enabled: canGoBackAspect
-	    label: 'Back'
-	    itemValue: goBack
-	    isButton: true
-	    isVisible: showLocalHistory
-	    labelImage: (ResourceRetriever ToolbarIconLibrary historyBackIcon)
-	  )
-	 (MenuItem
-	    activeHelpKey: goForward
-	    enabled: canGoForwardAspect
-	    label: 'Forward'
-	    itemValue: goForward
-	    isButton: true
-	    isVisible: showLocalHistory
-	    labelImage: (ResourceRetriever ToolbarIconLibrary historyForwardIcon)
-	  )
-	 (MenuItem
-	    label: ''
-	  )
-	 (MenuItem
-	    activeHelpKey: createBuffer
-	    label: 'CreateBuffer'
-	    itemValue: createBufferForCurrentClassOrSelectionInCodeView
-	    isButton: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary addBufferIcon)
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: organizerIsShowingClasses
-	  )
-	 (MenuItem
-	    activeHelpKey: showCategories
-	    label: 'ShowCategory'
-	    itemValue: switchToCategoryView
-	    isButton: true
-	    isVisible: organizerIsShowingClassesAndIsNotShowingCategories
-	    labelImage: (ResourceRetriever NewSystemBrowser showCategoriesIcon)
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    activeHelpKey: showClassHierarchy
-	    label: 'ShowClassHierarchy'
-	    itemValue: switchToClassHierarchyView
-	    isButton: true
-	    isVisible: organizerIsShowingClassesAndIsShowingCategories
-	    labelImage: (ResourceRetriever NewSystemBrowser showClassHierarchyIcon)
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    activeHelpKey: recentChanges
-	    label: 'Recently Changed'
-	    isButton: true
-	    submenuChannel: changedMenu
-	    labelImage: (ResourceRetriever ToolbarIconLibrary changesBrowserIcon)
-	    showBusyCursorWhilePerforming: true
-	    ignoreMnemonicKeys: true
-	    ignoreShortcutKeys: true
-	  )
-	 (MenuItem
-	    activeHelpKey: recentClassChanges
-	    label: 'Recently Changed Classes'
-	    isButton: true
-	    isVisible: false
-	    submenuChannel: changedClassesMenu
-	    labelImage: (ResourceRetriever ToolbarIconLibrary empty1x20Icon)
-	    showBusyCursorWhilePerforming: true
-	    ignoreMnemonicKeys: true
-	    ignoreShortcutKeys: true
-	  )
-	 (MenuItem
-	    activeHelpKey: bookmarks
-	    label: 'Bookmarks'
-	    isVisible: false
-	    submenuChannel: boockmarksMenu
-	    labelImage: (ResourceRetriever ToolbarIconLibrary bookmarks14x14)
-	    ignoreMnemonicKeys: true
-	    ignoreShortcutKeys: true
-	  )
-	 (MenuItem
-	    label: ''
-	    isVisible: false
-	  )
-	 (MenuItem
-	    activeHelpKey: undoOperation
-	    enabled: hasUndoableOperations
-	    label: 'Undo'
-	    itemValue: operationsMenuUndo
-	    isButton: true
-	    isVisible: false
-	    labelImage: (ResourceRetriever ToolbarIconLibrary undoIcon)
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    activeHelpKey: redoOperation
-	    enabled: hasUndoableOperations
-	    label: 'Redo'
-	    itemValue: operationsMenuRedo
-	    isButton: true
-	    isVisible: false
-	    labelImage: (ResourceRetriever ToolbarIconLibrary redoIcon)
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: classWizardVisibleHolder
-	  )
-	 (MenuItem
-	    label: 'Class Wizard'
-	    itemValue: classMenuOpenClassCreationWizard
-	    isButton: true
-	    isVisible: classWizardVisibleHolder
-	    labelImage: (ResourceRetriever ToolbarIconLibrary newClassWizardIcon)
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    activeHelpKey: runLintOnClasses
-	    enabled: hasClassSelectedHolder
-	    label: 'Run Static Analysis (Lint)'
-	    itemValue: runLint
-	    nameKey: RunLint
-	    isButton: true
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  label: 'Repeat Previously Selected Checks'
-		  itemValue: runLintOnPreviousRules
-		)
-	       (MenuItem
-		  label: 'Run all Checks'
-		  itemValue: runLintOnAllRules
-		)
-	       (MenuItem
-		  label: 'Run Selected Checks...'
-		  itemValue: runLintOnSelectedRules
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  enabled: hasClassSelectedAndInstrumentingCompilerExistsHolder
-		  label: 'Recompile all Methods with Instrumentation'
-		  itemValue: classMenuRecompileInstrumented
-		  showBusyCursorWhilePerforming: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	    labelImage: (ResourceRetriever ToolbarIconLibrary lint24x24Icon)
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: hasClassSelectedHolder
-	  )
-	 (MenuItem
-	    activeHelpKey: launchSelectedApplication
-	    label: 'Launch Selected Application'
-	    itemValue: launchSelectedApplication
-	    isButton: true
-	    isVisible: hasStartableApplicationSelectedHolder
-	    labelImage: (ResourceRetriever ToolbarIconLibrary start22x22Icon)
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: hasStartableApplicationSelectedHolder
-	  )
-	 (MenuItem
-	    activeHelpKey: executeSelectedClassMethod
-	    label: 'Execute Selected Class Method'
-	    itemValue: executeSelectedClassMethod
-	    isButton: true
-	    isVisible: hasAnyExecutableClassMethodSelectedHolder
-	    labelImage: (ResourceRetriever ToolbarIconLibrary executeMethod20x20Icon)
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: hasAnyExecutableClassMethodSelectedHolder
-	  )
-	 (MenuItem
-	    activeHelpKey: initializeSharedPool
-	    label: 'Initialize Selected Pool'
-	    itemValue: initializeSelectedPool
-	    isButton: true
-	    isVisible: hasSharedPoolSelectedHolder
-	    labelImage: (ResourceRetriever #'Tools::NewSystemBrowser' initializeSharedPool20x20Icon)
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: hasSharedPoolSelectedHolder
-	  )
-	 (MenuItem
-	    activeHelpKey: runTestCases
-	    label: 'Run Tests'
-	    itemValue: runTestCases
-	    isButton: true
-	    isVisible: hasAnyTestCaseSelectedAndEmbeddedRunnerIsDisabled
-	    labelImage: (ResourceRetriever ToolbarIconLibrary sUnit24x24Icon)
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    activeHelpKey: runTestCasesWithDebug
-	    label: 'Debug Tests'
-	    itemValue: runTestCasesWithDebug
-	    isButton: true
-	    isVisible: hasAnyTestCaseSelectedAndEmbeddedRunnerIsDisabled
-	    labelImage: (ResourceRetriever ToolbarIconLibrary sUnit24x24DebugIcon)
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    label: ''
-	  )
-	 (MenuItem
-	    label: '-'
-	    startGroup: right
-	  )
-	 (MenuItem
-	    activeHelpKey: showInheritedMethods
-	    label: 'ShowInheritedMethods'
-	    itemValue: showInheritedMethods
-	    isButton: true
-	    startGroup: right
-	    isVisible: notShowingInheritedMethods
-	    labelImage: (ResourceRetriever NewSystemBrowser showInheritedMethodsIcon)
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    activeHelpKey: doNotShowInheritedMethods
-	    label: 'DoNotShowInheritedMethods'
-	    itemValue: doNotShowInheritedMethods
-	    isButton: true
-	    startGroup: right
-	    isVisible: showingInheritedMethods
-	    labelImage: (ResourceRetriever NewSystemBrowser doNotShowInheritedMethodsIcon)
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    activeHelpKey: formatCode
-	    enabled: hasMethodSelectedHolder
-	    label: 'Format'
-	    itemValue: codeMenuFormat
-	    isButton: true
-	    startGroup: right
-	    labelImage: (ResourceRetriever ToolbarIconLibrary formatCode16x16Icon)
-	    showBusyCursorWhilePerforming: true
-	  )
-	 (MenuItem
-	    activeHelpKey: showCodeCoverage
-	    enabled: hasInstrumentedMethodSelectedHolder
-	    label: 'ShowCoverage'
-	    itemValue: codeMenuShowCoverage
-	    isButton: true
-	    startGroup: right
-	    isVisible: false
-	    labelImage: (ResourceRetriever ToolbarIconLibrary showCodeCoverage16x16Icon)
-	  )
-	 (MenuItem
-	    activeHelpKey: addBreakPoint
-	    enabled: hasMethodWithoutBreakPointSelectedHolder
-	    label: 'Add BreakPoint'
-	    itemValue: debugMenuBreakPoint
-	    isButton: true
-	    startGroup: right
-	    labelImage: (ResourceRetriever nil addBreakPointIcon2)
-	  )
-	 (MenuItem
-	    activeHelpKey: removeBreakPoint
-	    enabled: hasMethodWithBreakPointSelectedHolder
-	    label: 'Remove BreakPoint'
-	    itemValue: debugMenuRemoveBreakOrTrace
-	    isButton: true
-	    labelImage: (ResourceRetriever nil removeBreakPointIcon2)
-	  )
-	 )
-	nil
-	nil
-      )
+        (
+         (MenuItem
+            activeHelpKey: goBackInGlobalHistory
+            enabled: canGoBackInGlobalHistoryAspect
+            label: 'Back (Global History)'
+            itemValue: goBackInGlobalHistory
+            isButton: true
+            isVisible: showGlobalHistory
+            labelImage: (ResourceRetriever ToolbarIconLibrary historyBackInGlobalListIcon)
+          )
+         (MenuItem
+            activeHelpKey: goBack
+            enabled: canGoBackAspect
+            label: 'Back'
+            itemValue: goBack
+            isButton: true
+            isVisible: showLocalHistory
+            labelImage: (ResourceRetriever ToolbarIconLibrary historyBackIcon)
+          )
+         (MenuItem
+            activeHelpKey: goForward
+            enabled: canGoForwardAspect
+            label: 'Forward'
+            itemValue: goForward
+            isButton: true
+            isVisible: showLocalHistory
+            labelImage: (ResourceRetriever ToolbarIconLibrary historyForwardIcon)
+          )
+         (MenuItem
+            label: ''
+          )
+         (MenuItem
+            activeHelpKey: createBuffer
+            label: 'CreateBuffer'
+            itemValue: createBufferForCurrentClassOrSelectionInCodeView
+            isButton: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary addBufferIcon)
+          )
+         (MenuItem
+            label: '-'
+            isVisible: organizerIsShowingClasses
+          )
+         (MenuItem
+            activeHelpKey: showCategories
+            label: 'ShowCategory'
+            itemValue: switchToCategoryView
+            isButton: true
+            isVisible: organizerIsShowingClassesAndIsNotShowingCategories
+            labelImage: (ResourceRetriever NewSystemBrowser showCategoriesIcon)
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            activeHelpKey: showClassHierarchy
+            label: 'ShowClassHierarchy'
+            itemValue: switchToClassHierarchyView
+            isButton: true
+            isVisible: organizerIsShowingClassesAndIsShowingCategories
+            labelImage: (ResourceRetriever NewSystemBrowser showClassHierarchyIcon)
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            activeHelpKey: recentChanges
+            label: 'Recently Changed'
+            isButton: true
+            submenuChannel: changedMenu
+            labelImage: (ResourceRetriever ToolbarIconLibrary changesBrowserIcon)
+            showBusyCursorWhilePerforming: true
+            ignoreMnemonicKeys: true
+            ignoreShortcutKeys: true
+          )
+         (MenuItem
+            activeHelpKey: recentClassChanges
+            label: 'Recently Changed Classes'
+            isButton: true
+            isVisible: false
+            submenuChannel: changedClassesMenu
+            labelImage: (ResourceRetriever ToolbarIconLibrary empty1x20Icon)
+            showBusyCursorWhilePerforming: true
+            ignoreMnemonicKeys: true
+            ignoreShortcutKeys: true
+          )
+         (MenuItem
+            activeHelpKey: bookmarks
+            label: 'Bookmarks'
+            isVisible: false
+            submenuChannel: boockmarksMenu
+            labelImage: (ResourceRetriever ToolbarIconLibrary bookmarks14x14)
+            ignoreMnemonicKeys: true
+            ignoreShortcutKeys: true
+          )
+         (MenuItem
+            label: ''
+            isVisible: false
+          )
+         (MenuItem
+            activeHelpKey: undoOperation
+            enabled: hasUndoableOperations
+            label: 'Undo'
+            itemValue: operationsMenuUndo
+            isButton: true
+            isVisible: false
+            labelImage: (ResourceRetriever ToolbarIconLibrary undoIcon)
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            activeHelpKey: redoOperation
+            enabled: hasUndoableOperations
+            label: 'Redo'
+            itemValue: operationsMenuRedo
+            isButton: true
+            isVisible: false
+            labelImage: (ResourceRetriever ToolbarIconLibrary redoIcon)
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+            isVisible: classWizardVisibleHolder
+          )
+         (MenuItem
+            label: 'Class Wizard'
+            itemValue: classMenuOpenClassCreationWizard
+            isButton: true
+            isVisible: classWizardVisibleHolder
+            labelImage: (ResourceRetriever ToolbarIconLibrary newClassWizardIcon)
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            activeHelpKey: runLintOnClasses
+            enabled: hasNonEmptyEnvironmentSelectedHolder
+            label: 'Run Static Analysis (Lint)'
+            itemValue: runLint
+            nameKey: RunLint
+            isButton: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary lint24x24Icon)
+          )
+         (MenuItem
+            label: '-'
+            isVisible: hasClassSelectedHolder
+          )
+         (MenuItem
+            activeHelpKey: launchSelectedApplication
+            label: 'Launch Selected Application'
+            itemValue: launchSelectedApplication
+            isButton: true
+            isVisible: hasStartableApplicationSelectedHolder
+            labelImage: (ResourceRetriever ToolbarIconLibrary start22x22Icon)
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+            isVisible: hasStartableApplicationSelectedHolder
+          )
+         (MenuItem
+            activeHelpKey: executeSelectedClassMethod
+            label: 'Execute Selected Class Method'
+            itemValue: executeSelectedClassMethod
+            isButton: true
+            isVisible: hasAnyExecutableClassMethodSelectedHolder
+            labelImage: (ResourceRetriever ToolbarIconLibrary executeMethod20x20Icon)
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+            isVisible: hasAnyExecutableClassMethodSelectedHolder
+          )
+         (MenuItem
+            activeHelpKey: initializeSharedPool
+            label: 'Initialize Selected Pool'
+            itemValue: initializeSelectedPool
+            isButton: true
+            isVisible: hasSharedPoolSelectedHolder
+            labelImage: (ResourceRetriever #'Tools::NewSystemBrowser' initializeSharedPool20x20Icon)
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+            isVisible: hasSharedPoolSelectedHolder
+          )
+         (MenuItem
+            activeHelpKey: runTestCases
+            label: 'Run Tests'
+            itemValue: runTestCases
+            isButton: true
+            isVisible: hasAnyTestCaseSelectedAndEmbeddedRunnerIsDisabled
+            labelImage: (ResourceRetriever ToolbarIconLibrary sUnit24x24Icon)
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            activeHelpKey: runTestCasesWithDebug
+            label: 'Debug Tests'
+            itemValue: runTestCasesWithDebug
+            isButton: true
+            isVisible: hasAnyTestCaseSelectedAndEmbeddedRunnerIsDisabled
+            labelImage: (ResourceRetriever ToolbarIconLibrary sUnit24x24DebugIcon)
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: ''
+          )
+         (MenuItem
+            label: '-'
+            startGroup: right
+          )
+         (MenuItem
+            activeHelpKey: showInheritedMethods
+            label: 'ShowInheritedMethods'
+            itemValue: showInheritedMethods
+            isButton: true
+            startGroup: right
+            isVisible: notShowingInheritedMethods
+            labelImage: (ResourceRetriever NewSystemBrowser showInheritedMethodsIcon)
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            activeHelpKey: doNotShowInheritedMethods
+            label: 'DoNotShowInheritedMethods'
+            itemValue: doNotShowInheritedMethods
+            isButton: true
+            startGroup: right
+            isVisible: showingInheritedMethods
+            labelImage: (ResourceRetriever NewSystemBrowser doNotShowInheritedMethodsIcon)
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            activeHelpKey: formatCode
+            enabled: hasMethodSelectedHolder
+            label: 'Format'
+            itemValue: codeMenuFormat
+            isButton: true
+            startGroup: right
+            labelImage: (ResourceRetriever ToolbarIconLibrary formatCode16x16Icon)
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            activeHelpKey: showCodeCoverage
+            enabled: hasInstrumentedMethodSelectedHolder
+            label: 'ShowCoverage'
+            itemValue: codeMenuShowCoverage
+            isButton: true
+            startGroup: right
+            isVisible: false
+            labelImage: (ResourceRetriever ToolbarIconLibrary showCodeCoverage16x16Icon)
+          )
+         (MenuItem
+            activeHelpKey: addBreakPoint
+            enabled: hasMethodWithoutBreakPointSelectedHolder
+            label: 'Add BreakPoint'
+            itemValue: debugMenuBreakPoint
+            isButton: true
+            startGroup: right
+            labelImage: (ResourceRetriever nil addBreakPointIcon2)
+          )
+         (MenuItem
+            activeHelpKey: removeBreakPoint
+            enabled: hasMethodWithBreakPointSelectedHolder
+            label: 'Remove BreakPoint'
+            itemValue: debugMenuRemoveBreakOrTrace
+            isButton: true
+            labelImage: (ResourceRetriever nil removeBreakPointIcon2)
+          )
+         )
+        nil
+        nil
+      )
+!
+
+toolBarMenuLint
+    "This resource specification was automatically generated
+     by the MenuEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the MenuEditor may not be able to read the specification."
+
+
+    "
+     MenuEditor new openOnClass:Tools::NewSystemBrowser andSelector:#toolBarMenuLint
+     (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser toolBarMenuLint)) startUp
+    "
+
+    <resource: #menu>
+
+    ^
+     #(Menu
+        (
+         (MenuItem
+            label: 'SmallLint Menu'
+            submenuChannel: smalllintCheckMenuForToolbar
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasClassSelectedAndInstrumentingCompilerExistsHolder
+            label: 'Recompile all Methods with Instrumentation'
+            itemValue: classMenuRecompileInstrumented
+            showBusyCursorWhilePerforming: true
+          )
+         )
+        nil
+        nil
+      )
+
+    "Modified: / 27-11-2014 / 06:48:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !NewSystemBrowser class methodsFor:'queries'!
@@ -17636,7 +18065,7 @@
 
     browser := self basicNew spawnClassBrowserFor:(Array with:aClass theNonMetaclass) in:#newBrowser.
     aClass isMeta ifTrue:[
-	browser switchToClass:aClass.
+        browser switchToClass:aClass.
     ].
     ^ browser.
 
@@ -17677,32 +18106,32 @@
     "launch a multi-method browser."
 
     ^ self basicNew
-	spawnMethodBrowserFor:aListOfMethods
-	in:#newBrowser
-	label:title
-	perMethodInfo:nil
-	sortBy:(doSort ifTrue:[#class] ifFalse:[nil])
+        spawnMethodBrowserFor:aListOfMethods
+        in:#newBrowser
+        label:title
+        perMethodInfo:nil
+        sortBy:(doSort ifTrue:[#class] ifFalse:[nil])
 
     "
      self
-	browseMethods:(Array with:(OrderedCollection compiledMethodAt:#at:)
-			     with:(Array compiledMethodAt:#at:)
-			     )
-	title:'some methods'
-	sort:true
+        browseMethods:(Array with:(OrderedCollection compiledMethodAt:#at:)
+                             with:(Array compiledMethodAt:#at:)
+                             )
+        title:'some methods'
+        sort:true
 
      self
-	browseMethods:(Array with:(OrderedCollection compiledMethodAt:#at:)
-			     with:(Array compiledMethodAt:#at:)
-			     )
-	title:'some methods'
-	sort:false
+        browseMethods:(Array with:(OrderedCollection compiledMethodAt:#at:)
+                             with:(Array compiledMethodAt:#at:)
+                             )
+        title:'some methods'
+        sort:false
 
      self
-	browseMethods:(Array with:(Array compiledMethodAt:#at:)
-			     with:(Array compiledMethodAt:#at:put:))
-	title:'some methods'
-	sort:false
+        browseMethods:(Array with:(Array compiledMethodAt:#at:)
+                             with:(Array compiledMethodAt:#at:put:))
+        title:'some methods'
+        sort:false
     "
 !
 
@@ -17725,7 +18154,7 @@
 
     browser := self basicNew spawnSingleClassBrowserFor:aClass theNonMetaclass in:#newBrowser.
     aClass isMeta ifTrue:[
-	browser switchToClass:aClass.
+        browser switchToClass:aClass.
     ].
     ^ browser.
 
@@ -17742,10 +18171,10 @@
 
     classHistory := self classHistory.
     classHistory notEmptyOrNil ifTrue:[
-	lastClass := Smalltalk classNamed:(classHistory first className).
-	lastClass notNil ifTrue:[
-	    ^ self openInClass:lastClass selector:nil
-	]
+        lastClass := Smalltalk classNamed:(classHistory first className).
+        lastClass notNil ifTrue:[
+            ^ self openInClass:lastClass selector:nil
+        ]
     ].
     ^ super open
 
@@ -17793,7 +18222,7 @@
     "open a browser, showing all classes in the changeSet."
 
     ^ self basicNew
-	browseMenuClassesInCurrentChangeSetOpenAs:#newBrowser
+        browseMenuClassesInCurrentChangeSetOpenAs:#newBrowser
 
     "
      self openOnClassesInChangeSet
@@ -17803,8 +18232,8 @@
 openOnMethodsInChangeSet
     "open a browser, showing all methods in the changeSet."
 
-    ^ self basicNew basicInitialize
-	browseMenuMethodsInCurrentChangeSetIn:#newBrowser
+    ^ self new
+        browseMenuMethodsInCurrentChangeSetIn:#newBrowser
 
     "
      self openOnMethodsInChangeSet
@@ -17815,7 +18244,7 @@
     "open a browser, showing all classes in the given package."
 
     ^ self basicNew
-	spawnProjectBrowserFor:(Array with:aPackage) in:#newBrowser
+        spawnProjectBrowserFor:(Array with:aPackage) in:#newBrowser
 
     "
      self openOnPackage:'stx:libbasic'
@@ -17856,268 +18285,312 @@
      Moved from instance protocol for better reusability."
 
     |box boxLabel title okText okText2 okText3 className canFind
-     button2 button3 doWhat doWhat2 doWhat3 classNameHolder updateList
-     allClasses classNamesInChangeSet
+     button2 button3 doWhat doWhat2 doWhat3 classNameHolder updateList updateClassAndNameList
+     reallyAllClasses allClasses allClassesByFullName classNamesInChangeSet classesInChangeSet
      allNames allFullNames initialShortNames initialFullNames
      colorizedFullNames colorizedShortNames
-     resources check showingWhatLabel showFullNameHolder genShortNameListEntry|
+     resources check showingWhatLabel
+     showFullNameHolder onlyShowJavaClassesHolder genShortNameListEntry navigationState|
 
     resources := resourcesOrNil ? self classResources.
     showFullNameHolder := (LastClassSearchBoxShowedFullName ? false) asValue.
+    onlyShowJavaClassesHolder := (LastClassSearchBoxShowedJavaOnly ? false) asValue.
+
+    aBrowserOrNil notNil ifTrue:[ navigationState := aBrowserOrNil navigationState].
 
     doWhat := doWhatByDefault.
-    canFind := aBrowserOrNil notNil
-	       and:[aBrowserOrNil navigationState notNil and:[ aBrowserOrNil navigationState isFullBrowser ]].
+    canFind := navigationState notNil and:[ navigationState isFullBrowser ].
 
     (doWhat isNil or:[aBrowserOrNil isNil]) ifTrue:[
-	title := ''.
-	boxLabel := (resources string:'Select a class').
-	okText := 'OK'.
-	okText2 := nil. doWhat2 := nil.
-	okText3 := nil. doWhat3 := nil.
-    ] ifFalse:[
-	title := (singleClass ifTrue:[ 'Class to browse' ] ifFalse:[ 'Class(es) to browse' ]).
-	boxLabel := (resources string:'Browse or Search').
-
-	(doWhat isNil and:[canFind not]) ifTrue:[
-	    doWhat := #newBuffer.
-	].
-
-	doWhat == #newBrowser ifTrue:[
-	    okText := 'Open'.
-	    okText2 := 'Add Buffer'. doWhat2 := #newBuffer.
-	    okText3 := 'Find'.       doWhat3 := nil.
-	] ifFalse:[ doWhat == #newBuffer ifTrue:[
-	    okText := 'Add Buffer'.
-	    okText2 := 'Open New'.   doWhat2 := #newBrowser.
-	    okText3 := 'Find'.       doWhat3 := nil.
-	] ifFalse:[
-	    title := (singleClass ifTrue:[ 'Class to find' ] ifFalse:[ 'Class(es) to find' ]).
-	    okText := 'Find'.
-	    okText2 := 'Open New'.   doWhat2 := #newBrowser.
-	    okText3 := 'Add Buffer'. doWhat3 := #newBuffer.
-	]].
+        title := 'Select a class'.
+        boxLabel := (resources string:'Select a class').
+        okText := 'OK'.
+        okText2 := nil. doWhat2 := nil.
+        okText3 := nil. doWhat3 := nil.
+    ] ifFalse:[
+        title := (singleClass ifTrue:[ 'Class to browse' ] ifFalse:[ 'Class(es) to browse' ]).
+        boxLabel := (resources string:'Browse or Search').
+
+        (doWhat isNil and:[canFind not]) ifTrue:[
+            doWhat := #newBuffer.
+        ].
+
+        doWhat == #newBrowser ifTrue:[
+            okText := 'Open'.
+            okText2 := 'Add Buffer'. doWhat2 := #newBuffer.
+            okText3 := 'Find'.       doWhat3 := nil.
+        ] ifFalse:[ doWhat == #newBuffer ifTrue:[
+            okText := 'Add Buffer'.
+            okText2 := 'Open New'.   doWhat2 := #newBrowser.
+            okText3 := 'Find'.       doWhat3 := nil.
+        ] ifFalse:[
+            title := (singleClass ifTrue:[ 'Class to find' ] ifFalse:[ 'Class(es) to find' ]).
+            okText := 'Find'.
+            okText2 := 'Open New'.   doWhat2 := #newBrowser.
+            okText3 := 'Add Buffer'. doWhat3 := #newBuffer.
+        ]].
     ].
 
     genShortNameListEntry :=
-	[:cls |
-	    |ns|
-
-	    cls isNil ifTrue:[
-		nil
-	    ] ifFalse:[
-		ns := cls topNameSpace name.
-		ns = 'Smalltalk'
-		    ifTrue:[ ns := '' ]
-		    ifFalse:[ns := ' (in ',ns,')'].
-		cls nameWithoutNameSpacePrefix,ns
-	    ].
-	].
-
-    classNamesInChangeSet := ChangeSet current changedClasses
-				select: (filterOrNil ? [:cls | true])
-				thenCollect:[:each | each theNonMetaclass name].
+        [:cls |
+            |ns|
+
+            cls isNil ifTrue:[
+                nil
+            ] ifFalse:[
+                ns := cls topNameSpace name.
+                ns = 'Smalltalk'
+                    ifTrue:[ ns := '' ]
+                    ifFalse:[ns := ' (in ',ns,')'].
+                cls nameWithoutNameSpacePrefix,ns
+            ].
+        ].
+
+    classesInChangeSet := ChangeSet current changedClasses.
+    classNamesInChangeSet := classesInChangeSet
+                                select: (filterOrNil ? [:cls | true])
+                                thenCollect:[:each | each theNonMetaclass name].
 
     initialFullNames := self visitedClassNamesHistory.
     (filterOrNil notNil) ifTrue:[
-	initialFullNames := initialFullNames select:[:nm | (Smalltalk at:nm) notNil and:[filterOrNil value:(Smalltalk at:nm)]].
+        initialFullNames := initialFullNames select:[:nm | (Smalltalk at:nm) notNil and:[filterOrNil value:(Smalltalk at:nm)]].
     ].
 
     initialFullNames := initialFullNames select:[:nm | nm notNil].
     initialShortNames := initialFullNames collect:[:nm |
-			    |cls|
-
-			    cls := Smalltalk at:nm.
-			    cls isNil ifTrue:[
-				"/ class no longer exists (removed?)
-				nm colorizeAllWith:(Color grey)
-			    ] ifFalse:[
-				genShortNameListEntry value:(Smalltalk at:nm)
-			    ].
-			].
+                            |cls|
+
+                            cls := Smalltalk classNamed:nm.
+                            cls isNil ifTrue:[
+                                "/ class no longer exists (removed?)
+                                nm colorizeAllWith:(Color gray)
+                            ] ifFalse:[
+                                cls isJavaClass ifTrue:[
+                                    cls javaName
+                                ] ifFalse:[
+                                    genShortNameListEntry value:(Smalltalk classNamed:nm)
+                                ].
+                            ].
+                        ].
 
     colorizedFullNames := initialFullNames collect:[:clsName |
-				(classNamesInChangeSet includes:clsName) ifTrue:[
-				    clsName asText emphasisAllAdd:(UserPreferences current emphasisForChangedCode)
-				] ifFalse:[
-				    clsName
-				].
-			    ].
+                                (classNamesInChangeSet includes:clsName) ifTrue:[
+                                    clsName asText emphasisAllAdd:(UserPreferences current emphasisForChangedCode)
+                                ] ifFalse:[
+                                    clsName
+                                ].
+                            ].
 
     colorizedShortNames := initialShortNames with:initialFullNames collect:[:shortName :clsName |
-				(classNamesInChangeSet includes:clsName) ifTrue:[
-				    shortName asText emphasisAllAdd:(UserPreferences current emphasisForChangedCode)
-				] ifFalse:[
-				    shortName
-				].
-			    ].
+                                (classNamesInChangeSet includes:clsName) ifTrue:[
+                                    shortName asText emphasisAllAdd:(UserPreferences current emphasisForChangedCode)
+                                ] ifFalse:[
+                                    shortName
+                                ].
+                            ].
 
     title := (resources string:title) , msgTail , '.\' , (resources string:'(TAB to complete; matchPattern allowed - "*" for all):').
 
     box := self
-		enterBoxForClassWithCodeSelectionTitle:title withCRs
-		withList:(showFullNameHolder value ifTrue:[colorizedFullNames] ifFalse:[colorizedShortNames])
-		okText:okText
-		forBrowser:aBrowserOrNil.
+                enterBoxForClassWithCodeSelectionTitle:title withCRs
+                withList:(showFullNameHolder value ifTrue:[colorizedFullNames] ifFalse:[colorizedShortNames])
+                okText:okText
+                forBrowser:aBrowserOrNil.
 
     box label:boxLabel.
 
     doWhat notNil ifTrue:[
-	button2 := Button label:(resources string:okText2).
-	(aBrowserOrNil notNil and:[aBrowserOrNil navigationState isFullBrowser]) "singleClass" ifTrue:[
-	    button3 := Button label:(resources string:okText3)
-	].
-	box addButton:button2 after:(box okButton).
-	button3 notNil ifTrue:[box addButton:button3 after:button2].
-
-	button2 action:[
-	   doWhat := doWhat2.
-	   box doAccept.
-	   box okPressed.
-	].
-	button3 notNil ifTrue:[
-	    button3 action:[
-	       doWhat := doWhat3.
-	       box doAccept.
-	       box okPressed.
-	    ].
-	].
-    ].
-
-    allClasses := Smalltalk allClasses copyAsOrderedCollection.
+        button2 := Button label:(resources string:okText2).
+        (navigationState notNil and:[navigationState isFullBrowser]) "singleClass" ifTrue:[
+            button3 := Button label:(resources string:okText3)
+        ].
+        box addButton:button2 after:(box okButton).
+        button3 notNil ifTrue:[box addButton:button3 after:button2].
+
+        button2
+            action:[
+                doWhat := doWhat2.
+                box doAccept; okPressed.
+            ].
+        button3 notNil ifTrue:[
+            button3
+                action:[
+                    doWhat := doWhat3.
+                    box doAccept; okPressed.
+                ].
+        ].
+    ].
+
+    reallyAllClasses := Smalltalk allClasses copyAsOrderedCollection.
     filterOrNil notNil ifTrue:[
-	allClasses := allClasses select: filterOrNil
-    ].
-
-    allNames := (allClasses
-		    collect:[:cls |
-			|ns nm|
-
-			ns := cls topNameSpace name.
-			ns = 'Smalltalk'
-			    ifTrue:[ ns := '' ]
-			    ifFalse:[ns := ' (in ',ns,')'].
-			cls isNameSpace ifTrue:[
-			    nm := cls nameWithoutNameSpacePrefix,ns,' (Namespace)'
-			] ifFalse:[
-			    nm := cls nameWithoutNameSpacePrefix,ns
-			].
-			(classNamesInChangeSet includes:cls name) ifTrue:[
-			    nm asText emphasisAllAdd:(UserPreferences current emphasisForChangedCode)
-			] ifFalse:[
-			    nm
-			].
-		    ]) sortWith:allClasses; yourself.
-
-    allFullNames := (allClasses
-		    collect:[:cls |
-			|nm|
-
-			nm := cls name.
-			(classNamesInChangeSet includes:cls name) ifTrue:[
-			    nm asText emphasisAllAdd:(UserPreferences current emphasisForChangedCode)
-			] ifFalse:[
-			    nm
-			].
-		    ]) sortWith:allClasses; yourself.
+        reallyAllClasses := reallyAllClasses select: filterOrNil
+    ].
+    allClasses := reallyAllClasses.
+
+    updateClassAndNameList :=
+        [
+            onlyShowJavaClassesHolder value ifTrue:[
+                allClasses := reallyAllClasses select:[:cls | cls isJavaClass].
+            ].
+            allClassesByFullName := allClasses copy.
+
+            allNames := (allClasses
+                        collect:[:cls |
+                            |ns nm|
+
+                            cls isJavaClass ifTrue:[
+                                nm := cls javaName,' (in JAVA)'
+                            ] ifFalse:[
+                                ns := cls topNameSpace name.
+                                ns = 'Smalltalk'
+                                    ifTrue:[ ns := '' ]
+                                    ifFalse:[ns := ' (in ',ns,')'].
+                                cls isNameSpace ifTrue:[
+                                    nm := cls nameWithoutNameSpacePrefix,ns,' (Namespace)'
+                                ] ifFalse:[
+                                    nm := cls nameWithoutNameSpacePrefix,ns
+                                ].
+                            ].
+                            (classNamesInChangeSet includes:cls name) ifTrue:[
+                                nm asText emphasisAllAdd:(UserPreferences current emphasisForChangedCode)
+                            ] ifFalse:[
+                                nm
+                            ].
+                        ]) sortWith:allClasses; yourself.
+
+            allFullNames := (allClasses
+                        collect:[:cls |
+                            |nm|
+
+                            nm := cls name.
+                            (classNamesInChangeSet includes:cls name) ifTrue:[
+                                nm asText emphasisAllAdd:(UserPreferences current emphasisForChangedCode)
+                            ] ifFalse:[
+                                nm
+                            ].
+                        ]) sortWith:allClassesByFullName; yourself.
+        ].
+    updateClassAndNameList value.
 
     updateList := [
-	    |nameToSearch list namesStarting namesIncluding lcName nameList|
-
-	    (nameToSearch := classNameHolder value withoutSeparators) isEmpty ifTrue:[
-		showingWhatLabel label:(resources string:'Recently visited:').
-		list := (showFullNameHolder value ifTrue:[colorizedFullNames] ifFalse:[colorizedShortNames]).
-	    ] ifFalse:[
-		showingWhatLabel label:(resources string:'Matching classes:').
-		nameList := showFullNameHolder value
-				ifTrue:[ allFullNames ]
-				ifFalse:[ allNames ].
-
-		lcName := nameToSearch asLowercase.
-		(lcName includesString:'::') ifTrue:[
-		    list := OrderedCollection new.
-		    allClasses doWithIndex:[:cls :idx |
-			|isIncluded|
-
-			(nameToSearch includesMatchCharacters) ifTrue:[
-			    isIncluded := (lcName match:cls name asLowercase)
-			] ifFalse:[
-			    isIncluded := (cls name includesString:lcName caseSensitive:false)
-			].
-			isIncluded ifTrue:[
-			    list add:(nameList at:idx)
-			].
-		    ].
-		] ifFalse:[
-		    (nameToSearch includesMatchCharacters) ifTrue:[
-			list := nameList select:[:nm | lcName match:nm asLowercase]
-		    ] ifFalse:[
-			namesIncluding := nameList
-					    select:[:nm |
-						"/ nm asLowercase startsWith:lcName
-						nm asLowercase includesString:lcName caseSensitive:false
-					    ].
-			namesStarting := namesIncluding select:[:nm | nm asLowercase startsWith:lcName].
-			list := namesStarting , {nil} , (namesIncluding \ namesStarting).
-		    ]
-		]
-	    ].
-	    box listView
-		list:list;
-		scrollToLine:((list findFirst:[:line | (line ? '') startsWith:lcName]) max:1)
-	].
+            |nameToSearch list namesStarting namesIncluding lcName nameList classList|
+
+            (nameToSearch := classNameHolder value withoutSeparators) isEmpty ifTrue:[
+                showingWhatLabel label:(resources string:'Recently visited:').
+                list := (showFullNameHolder value ifTrue:[colorizedFullNames] ifFalse:[colorizedShortNames]).
+            ] ifFalse:[
+                showingWhatLabel label:(resources string:'Matching classes:').
+                nameList := showFullNameHolder value ifTrue:[ allFullNames ] ifFalse:[ allNames ].
+                classList := showFullNameHolder value ifTrue:[ allClassesByFullName ] ifFalse:[ allClasses ].
+                lcName := nameToSearch asLowercase.
+                (lcName includesString:'::') ifTrue:[
+                    list := OrderedCollection new.
+                    allClasses doWithIndex:[:cls :idx |
+                        |isIncluded|
+
+                        (nameToSearch includesMatchCharacters) ifTrue:[
+                            isIncluded := (lcName match:cls name asLowercase)
+                        ] ifFalse:[
+                            isIncluded := (cls name includesString:lcName caseSensitive:false)
+                        ].
+                        isIncluded ifTrue:[
+                            list add:(nameList at:idx)
+                        ].
+                    ].
+                ] ifFalse:[
+                    (nameToSearch includesMatchCharacters) ifTrue:[
+                        list := (1 to:nameList size)
+                                    select:[:idx |
+                                            |nm|
+                                            nm := nameList at:idx.
+                                            (lcName match:nm asLowercase)
+                                            or:[ lcName match:(classList at:idx) name caseSensitive:false]
+                                    ] thenCollect:[:idx | nameList at:idx].
+                    ] ifFalse:[
+                        namesIncluding := (1 to:nameList size)
+                                            select:[:idx |
+                                                |nm|
+                                                nm := nameList at:idx.
+                                                (nm asLowercase includesString:lcName caseSensitive:false)
+                                                or:[ (classList at:idx) name includesString:lcName caseSensitive:false]
+                                            ] thenCollect:[:idx | nameList at:idx].
+
+                        namesStarting := namesIncluding select:[:nm | nm asLowercase startsWith:lcName].
+                        list := namesStarting , {nil} , (namesIncluding \ namesStarting).
+                    ]
+                ]
+            ].
+            box listView
+                list:list;
+                scrollToLine:((list findFirst:[:line | (line ? '') startsWith:lcName]) max:1)
+        ].
 
     classNameHolder := '' asValue.
     box enterField
-	model:classNameHolder;
-	immediateAccept:true.
+        model:classNameHolder;
+        immediateAccept:true.
     classNameHolder onChangeEvaluate:updateList.
 
     box entryCompletionBlock:(DoWhatIMeanSupport classNameEntryCompletionBlock).
-    box action:[:aString | className := aString].
+    box
+        action:[:aString |
+            className := aString.
+        ].
 
     box panelView
-	addSubView:(showingWhatLabel := (Label label:(resources string:'Recently visited:')) adjust:#left) before:nil;
-	addSubView:(check := CheckBox label:(resources string:'Show Full Name (do not strip off Namespace)') model:showFullNameHolder) before:nil.
+        addSubView:(showingWhatLabel := (Label label:(resources string:'Recently visited:')) adjust:#left) before:nil.
+    (JavaVM notNil and:[JavaVM isLoaded]) ifTrue:[
+        box panelView
+            addSubView:(check := CheckBox label:(resources string:'Only show Java Classes') model:onlyShowJavaClassesHolder) before:nil.
+    ].
+    box panelView
+        addSubView:(check := CheckBox label:(resources string:'Show Full Name (do not strip off Namespace)') model:showFullNameHolder) before:nil.
+
     showFullNameHolder onChangeEvaluate:updateList.
+    onlyShowJavaClassesHolder onChangeEvaluate:[ updateClassAndNameList value. updateList value].
+
     box enterField origin:(0 @ check corner y).
     box enterField
-	onKey:#CursorDown
-	leaveWith:[
-	    box listView windowGroup focusView:box listView byTab:true.
-	    box listView hasSelection ifFalse:[
-		box listView selectFirst
-	    ] ifTrue:[
-		box listView selectNext
-	    ].
-	].
+        onKey:#CursorDown
+        leaveWith:[
+            box listView windowGroup focusView:box listView byTab:true.
+            box listView hasSelection ifFalse:[
+                box listView selectFirst
+            ] ifTrue:[
+                box listView selectNext
+            ].
+        ].
     box listView origin:(0 @ check corner y).
 
-    box extent:(400 @ 350).
+    box extent:(400 @ 550).
     box open.
 
     className isEmptyOrNil ifTrue:[^ nil "cancel"].
 
     LastClassSearchBoxShowedFullName := showFullNameHolder value.
+    LastClassSearchBoxShowedJavaOnly := onlyShowJavaClassesHolder value.
 
     (className endsWith:$) ) ifTrue:[
-	(className indexOfSubCollection:'(in ') == 0 ifTrue:[
-	    "/ a namespace
-	    className := (className copyTo:(className indexOfSubCollection:'(Name')-1) withoutSeparators
-	] ifFalse:[
-	    className := ((className copyFrom:(className indexOfSubCollection:'(in ')+4)
-			    copyButLast:1)
-			 , '::' , className asCollectionOfWords first
-	].
+        (className indexOfSubCollection:'(in ') == 0 ifTrue:[
+            "/ a namespace
+            className := (className copyTo:(className indexOfSubCollection:'(Name')-1) withoutSeparators
+        ] ifFalse:[
+            className := ((className copyFrom:(className indexOfSubCollection:'(in ')+4)
+                            copyButLast)
+                         , '::' , className asCollectionOfWords first
+        ].
+        ((className startsWith:'JAVA::') and:[className includes:$.]) ifTrue:[
+            className := className copyReplaceString:'.' withString:'::'
+        ].
     ].
 
     (doWhat isNil or:[aBrowserOrNil isNil]) ifTrue:[
-	aBlock notNil ifTrue:[aBlock value:className optionalArgument:singleClass and:doWhat].
-	^ className
+        aBlock notNil ifTrue:[aBlock value:className optionalArgument:singleClass and:doWhat].
+        ^ className
     ].
 
     aBrowserOrNil withSearchCursorDo:[
-	aBlock value:className value:singleClass value:doWhat.
+        aBlock value:className value:singleClass value:doWhat.
     ].
     ^ className
 
@@ -18134,8 +18607,8 @@
     box := EnterBox new.
     box label:(rresources string:label).
     box
-	title:(rresources string:title)
-	okText:(rresources string:okText).
+        title:(rresources string:title)
+        okText:(rresources string:okText).
     ^ box
 
     "Created: / 6.2.2000 / 01:07:11 / cg"
@@ -18150,11 +18623,17 @@
 environment
     ^ environment
 
-    "Created: / 03-09-2013 / 19:18:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Created: / 03-09-2013 / 19:19:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 environment:env
-    environment := env.
+    environmentHolder notNil ifTrue:[
+        environmentHolder value: env.
+    ] ifFalse:[
+        environment := env.
+    ].
+
+    "Modified: / 26-04-2014 / 23:54:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 isEmbeddedBrowser
@@ -18189,7 +18668,7 @@
     "the list of buffer-name-labels (model of the notebook)"
 
     bufferNameList isNil ifTrue:[
-	bufferNameList := List new.
+        bufferNameList := List new.
     ].
     ^ bufferNameList
 
@@ -18210,7 +18689,7 @@
     |holder|
 
     (holder := builder bindingAt:#classesProjectInfoHolder) isNil ifTrue:[
-	builder aspectAt:#classesProjectInfoHolder put:(holder := '' asValue).
+        builder aspectAt:#classesProjectInfoHolder put:(holder := '' asValue).
     ].
     ^ holder.
 !
@@ -18261,8 +18740,8 @@
 
 doEnableRefactoringSupport
     ^ builder
-	valueAspectFor:#doEnableRefactoringSupport
-	computeInitialValueWith:[ self canUseRefactoringSupport ]
+        valueAspectFor:#doEnableRefactoringSupport
+        computeInitialValueWith:[ self canUseRefactoringSupport ]
 !
 
 doLoadRefactoringSupport
@@ -18275,6 +18754,37 @@
     ^ self navigationState editModeHolder
 !
 
+environmentHolder
+    "return/create the 'environmentHolder' value holder (automatically generated)"
+
+    environmentHolder isNil ifTrue:[
+        environmentHolder := ValueHolder with: environment.
+        environmentHolder addDependent:self.
+    ].
+    ^ environmentHolder
+
+    "Modified: / 24-02-2014 / 11:06:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+environmentHolder:aValueModel
+    "set the 'environmentHolder' value holder (automatically generated)"
+
+    |oldValue newValue|
+
+    environmentHolder notNil ifTrue:[
+        oldValue := environmentHolder value.
+        environmentHolder removeDependent:self.
+    ].
+    environmentHolder := aValueModel.
+    environmentHolder notNil ifTrue:[
+        environmentHolder addDependent:self.
+    ].
+    newValue := environmentHolder value.
+    oldValue ~~ newValue ifTrue:[
+        self update:#value with:newValue from:environmentHolder.
+    ].
+!
+
 filterClassVars
     ^ self navigationState filterClassVars
 
@@ -18283,7 +18793,7 @@
 
 immediateUpdate
     immediateUpdate isNil ifTrue:[
-	immediateUpdate := false asValue.
+        immediateUpdate := false asValue.
     ].
     ^ immediateUpdate
 
@@ -18334,14 +18844,14 @@
     |theCanvas theCanvasType|
 
     navigationState isNil ifTrue:[
-	navigationState := NavigationState new.
-	"/ the kludge below is required to allow
-	"/ subSpecs to be opened in full-window (without a noteBook) as well
-	"/ (without that, we get trouble accessing the codeView later ...)
-	browserCanvas isNil ifTrue:[
-	    "/ opened spec as top-spec (there is no canvas)
-
-	    ^ navigationState.
+        navigationState := NavigationState new.
+        "/ the kludge below is required to allow
+        "/ subSpecs to be opened in full-window (without a noteBook) as well
+        "/ (without that, we get trouble accessing the codeView later ...)
+        browserCanvas isNil ifTrue:[
+            "/ opened spec as top-spec (there is no canvas)
+
+            ^ navigationState.
 "/            theCanvas := self.
 "/            bldr := self builder.
 "/
@@ -18350,19 +18860,19 @@
 "/            ] ifFalse:[
 "/                theCanvasType := self browserCanvasType.
 "/            ]
-	] ifFalse:[
-	    "/ opened spec in canvas
-	    theCanvas := self browserCanvas value.
-	    theCanvasType := self browserCanvasType.
-	].
-	self assert:theCanvas notNil.
-	navigationState canvas:theCanvas.
-	theCanvasType isNil ifTrue:[
-	    theCanvasType := theCanvas spec.
-	].
-	navigationState canvasType:theCanvasType.
-	self updateNavigationHistory.
-	self updateBookmarkHolder.
+        ] ifFalse:[
+            "/ opened spec in canvas
+            theCanvas := self browserCanvas value.
+            theCanvasType := self browserCanvasType.
+        ].
+        self assert:theCanvas notNil.
+        navigationState canvas:theCanvas.
+        theCanvasType isNil ifTrue:[
+            theCanvasType := theCanvas spec.
+        ].
+        navigationState canvasType:theCanvasType.
+        self updateNavigationHistory.
+        self updateBookmarkHolder.
     ].
     ^ navigationState
 
@@ -18403,10 +18913,10 @@
     |holder|
 
     (holder := builder bindingAt:#searchedClassNameHolder) isNil ifTrue:[
-	holder := '' asValue.
-	builder aspectAt:#searchedClassNameHolder put:holder.
-	holder onChangeEvaluate:[
-	    self switchToClassNameMatching: holder value].
+        holder := '' asValue.
+        builder aspectAt:#searchedClassNameHolder put:holder.
+        holder onChangeEvaluate:[
+            self switchToClassNameMatching: holder value].
     ].
     ^ holder
 !
@@ -18415,9 +18925,9 @@
     |holder|
 
     (holder := builder bindingAt:#searchedClassNameOrSelectorHolder) isNil ifTrue:[
-	holder := '' asValue.
-	builder aspectAt:#searchedClassNameOrSelectorHolder put:holder.
-	holder onChangeEvaluate:[ self switchToSearchItemMatching: holder value].
+        holder := '' asValue.
+        builder aspectAt:#searchedClassNameOrSelectorHolder put:holder.
+        holder onChangeEvaluate:[ self switchToSearchItemMatching: holder value].
     ].
     ^ holder
 
@@ -18426,8 +18936,8 @@
 
 selectedBuffer
     selectedBuffer isNil ifTrue:[
-	selectedBuffer := nil asValue.
-	selectedBuffer addDependent:self.
+        selectedBuffer := nil asValue.
+        selectedBuffer addDependent:self.
     ].
     ^ selectedBuffer
 
@@ -18441,15 +18951,15 @@
 
     answer := self askIfModified:'Modifications have not been saved.\\Change selection anyway ?'.
     answer ifTrue:[
-	navigationState modified:false.
-	navigationState realModifiedState:false.
-
-	(self codeAspect == SyntaxHighlighter codeAspectClassDefinition
-	and:[aSubApplication ~~ self classListApp]) ifTrue:[
-	    self classListApp forceReselect
-	] ifFalse:[
-	    aSubApplication forceSelectionClear.
-	]
+        navigationState modified:false.
+        navigationState realModifiedState:false.
+
+        (self codeAspect == SyntaxHighlighter codeAspectClassDefinition
+        and:[aSubApplication ~~ self classListApp]) ifTrue:[
+            self classListApp forceReselect
+        ] ifFalse:[
+            aSubApplication forceSelectionClear.
+        ]
     ].
     ^ answer
 
@@ -18477,128 +18987,247 @@
 !NewSystemBrowser methodsFor:'aspects-environment'!
 
 selectedCategoriesAsEnvironment
+    "Return a refactory environment on all classes in selected
+     class categories. May return nil if refactory browser is not
+     available"
+
+
     |subjects|
 
-    CategoryEnvironment isNil ifTrue:[ Smalltalk loadPackage:'stx:goodies/refactoryBrowser/browser'].
-
-    subjects := self selectedCategoriesValue.
-    ^ (CategoryEnvironment new)
-	categories:subjects;
-	label:(subjects size = 1
-		    ifTrue:[ 'class category' , subjects anyOne ]
-		    ifFalse:[ subjects size printString , ' class categories' ]);
-	yourself
+    self canUseRefactoringSupport ifTrue:[
+        subjects := self selectedCategoriesValue.
+        ^ (CategoryEnvironment new)
+            categories:subjects;
+            label:(subjects size = 1
+                        ifTrue:[ 'class category ' , (subjects anyOne ? '')]
+                        ifFalse:[ subjects size printString , ' class categories' ]);
+            yourself
+    ].
+    ^ self.
 
     "Created: / 17-04-2010 / 10:29:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 06-03-2012 / 18:54:41 / cg"
+    "Modified: / 03-12-2014 / 11:04:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 selectedClassesAsEnvironment
+    "Return a refactory environment on all selected classes
+     May return nil if refactory browser is not available"
+
+
     |subjects|
 
-    subjects := self selectedClassesValue.
-    ^ (ClassEnvironment new)
-	classes:subjects;
-	label:(subjects size = 1
-		    ifTrue:[ 'class ' , subjects anyOne fullName ]
-		    ifFalse:[ subjects size printString , ' classes' ]);
-	yourself
+    self canUseRefactoringSupport ifTrue:[
+        subjects := self selectedClassesValue.
+        ^ (ClassEnvironment new)
+            classes:subjects;
+            label:(subjects size = 1
+                        ifTrue:[ 'class ' , subjects anyOne fullName ]
+                        ifFalse:[ subjects size printString , ' classes' ]);
+            yourself
+    ].
+    ^ nil
 
     "Created: / 24-02-2009 / 11:08:35 / Jan Vrany <vranyj1@fel.cvut.cz>"
     "Modified: / 06-03-2012 / 18:54:49 / cg"
+    "Modified: / 03-12-2014 / 11:11:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 selectedCodeComponentsAsEnvironment
-    | classes methods components |
-
-    "/ a q&d hack...
-    ClassEnvironment isNil ifTrue:[ Smalltalk loadPackage:'stx:goodies/refactoryBrowser/browser' ].
-
-    components := self selectedCodeComponents.
-    classes := ClassEnvironment new.
-    methods := SelectorEnvironment new.
-    components do:
-	[:each|
-	each isMethod ifTrue:[methods addClass: each mclass selector: each selector].
-	each isBehavior ifTrue:[classes addClass: each theNonMetaclass; addClass: each theMetaclass]].
-    "Kludge"
-    ^methods isEmpty
-	ifFalse:[methods]
-	ifTrue:[classes].
+    ^ self selectedEnvironment
 
     "Created: / 17-04-2010 / 10:09:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 03-08-2011 / 22:48:50 / cg"
+    "Modified: / 02-04-2014 / 12:08:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 selectedEnvironment
-    | classes methods components |
-
-    "/ a q&d hack...
-    ClassEnvironment isNil ifTrue:[ Smalltalk loadPackage:'stx:goodies/refactoryBrowser/browser' ].
-
-    components := self selectedCodeComponents.
-    classes := ClassEnvironment new.
-    methods := SelectorEnvironment new.
-    components do:
-	[:each|
-	each isMethod ifTrue:[methods addClass: each mclass selector: each selector].
-	each isBehavior ifTrue:[classes addClass: each theNonMetaclass; addClass: each theMetaclass]].
-    "Kludge"
-    ^methods isEmpty
-	ifFalse:[methods]
-	ifTrue:[classes].
+    ^ self selectedNonEmptyEnvironment.
 
     "Modified: / 03-08-2011 / 22:49:37 / cg"
+    "Modified (format): / 02-04-2014 / 12:06:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+selectedLintRuleClassesAsEnvironment
+    "Return a refactory environment on all classes reported by
+     selected rule checks. May return nil if refactory browser is not
+     available"
+
+
+    | classes |
+
+    self canUseRefactoringSupport ifTrue:[
+        classes := self selectedLintRuleClasses value.
+        ^ (ClassEnvironment new)
+            classes:classes;
+            label:(classes size = 1
+                        ifTrue:[ 'class ' , classes anyOne fullName ]
+                        ifFalse:[ classes size printString , ' classes' ]);
+            yourself
+    ].
+    ^ nil.
+
+    "Created: / 07-10-2014 / 13:00:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 03-12-2014 / 11:14:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+selectedNamespacesAsEnvironment
+    "Return a refactory environment on all classes in selected
+     namespaces. May return nil if refactory browser is not
+     available"
+
+
+
+    |subjects|
+
+    self canUseRefactoringSupport ifTrue:[
+        subjects := self selectedNamespacesValue.
+        ^ (NamespaceEnvironment new)
+            namespaceNames:subjects;
+            label:(subjects size = 1
+                        ifTrue:[ 'namespace ' , subjects anyOne ]
+                        ifFalse:[ subjects size printString , ' namespaces' ]);
+            yourself
+    ].
+    ^ nil
+
+    "Created: / 02-04-2014 / 11:49:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 03-12-2014 / 11:15:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+selectedNonEmptyEnvironment
+    "Returns a non-empty environment for current selection. Depends on current navigation state
+     and context. May return nil if refactory browser is not available."
+
+    | type mode |
+
+    type := self navigationState canvasType.
+    type == #fullBrowserSpec ifTrue:[
+        mode := self navigationState organizerMode value.
+        mode == #category ifTrue:[
+            ^ self selectedNonEmptyEnvironmentFrom: #(selectedSelectorsAsEnvironment selectedProtocolsAsEnvironment selectedClassesAsEnvironment selectedCategoriesAsEnvironment).
+        ].
+        (mode == #classHierarchy or:[mode == #hierarchy])  ifTrue:[
+            ^ self selectedNonEmptyEnvironmentFrom: #(selectedSelectorsAsEnvironment selectedProtocolsAsEnvironment selectedClassesAsEnvironment)
+        ].
+        mode == #namespace ifTrue:[
+            ^ self selectedNonEmptyEnvironmentFrom: #(selectedSelectorsAsEnvironment selectedProtocolsAsEnvironment selectedClassesAsEnvironment selectedNamespacesAsEnvironment)
+        ].
+        mode == #project ifTrue:[
+            ^ self selectedNonEmptyEnvironmentFrom: #(selectedSelectorsAsEnvironment selectedProtocolsAsEnvironment selectedClassesAsEnvironment selectedPackagesAsEnvironment)
+        ].
+    ].
+    type == #smallLintByRuleResultBrowserSpec ifTrue:[
+        ^ self selectedCodeComponentsUsing: #(selectedSelectorsAsEnvironment selectedClassesAsEnvironment selectedLintRuleClassesAsEnvironment)
+    ].
+    type == #methodListBrowserSpec ifTrue:[
+        ^ self selectedCodeComponentsUsing: #(selectedSelectorsAsEnvironment)
+    ].
+    "Add more..."
+
+    self breakPoint: #jv.
+    "/Fallback
+    ^ self selectedCodeComponentsUsing: #(selectedSelectorsAsEnvironment selectedProtocolsAsEnvironment selectedClassesAsEnvironment)
+
+    "Created: / 02-04-2014 / 11:38:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 07-10-2014 / 12:52:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified (comment): / 03-12-2014 / 11:15:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+selectedNonEmptyEnvironmentFrom: environmentsOrSelectors
+    "Returns first non-empty environment from given list. If none if them is
+     non empty, return an empty environment. May return nil if refactory browser is
+     not available."
+
+
+    | env |
+
+    self canUseRefactoringSupport ifTrue:[
+        environmentsOrSelectors do:[:envOrSym |
+            env := envOrSym isSymbol ifTrue:[ self perform: envOrSym] ifFalse:[envOrSym].
+            env isEmpty ifFalse:[ ^ env ].
+        ].
+        ^ BrowserEnvironment empty
+    ].
+    ^ nil.
+
+    "Created: / 02-04-2014 / 11:20:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 03-12-2014 / 11:22:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 selectedPackagesAsEnvironment
+    "Return a refactory environment on all classes & methods in
+     selected packages . May return nil if refactory browser is
+     not available."
+
+
     |subjects|
 
-    PackageEnvironment isNil ifTrue:[ Smalltalk loadPackage:'stx:goodies/refactoryBrowser/browser'].
-
-    subjects := self selectedProjectsValue.
-    ^ (PackageEnvironment new)
-	packageNames:subjects;
-	label:(subjects size = 1
-		    ifTrue:[ 'package' , subjects anyOne ]
-		    ifFalse:[ subjects size printString , ' packages' ]);
-	yourself
+    self canUseRefactoringSupport ifTrue:[
+        subjects := self selectedProjectsValue.
+        ^ (PackageEnvironment new)
+            packageNames:subjects;
+            label:(subjects size = 1
+                        ifTrue:[ 'package' , subjects anyOne ]
+                        ifFalse:[ subjects size printString , ' packages' ]);
+            yourself
+    ].
+    ^ nil
 
     "Created: / 05-05-2012 / 10:21:37 / cg"
+    "Modified: / 03-12-2014 / 11:26:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 selectedProtocolsAsEnvironment
-    |classes protocols|
-
-    classes := self selectedClassesValue.
-    classes size ~= 1 ifTrue:[self error:'Multiple selected classes are not yet supported'].
-    protocols := self selectedProtocolsValue.
-
-    ^ ProtocolEnvironment new
-	class: classes anyOne
-	protocols: protocols;
-	label:(protocols size = 1
-		    ifTrue:[ 'protocol' , protocols anyOne , ' in ' , classes anyOne name ]
-		    ifFalse:[ protocols size printString , ' protocols in ' , classes anyOne name ]);
-	yourself
+    "Return a refactory environment on all methods in selected
+     method protocols. May return nil if refactory browser is not
+     available"
+
+    |classes protocols theClass className|
+
+    self canUseRefactoringSupport ifTrue:[
+        classes := self selectedClassesValue.
+        classes size ~= 1 ifTrue:[
+            self breakPoint: #jv. "/'Multiple selected classes are not yet supported'
+            ^ BrowserEnvironment empty.
+        ].
+        theClass := classes anyOne.    "/ there is only one
+        className := (theClass name ? '*unnamed*').
+        protocols := self selectedProtocolsValue.
+
+        ^ ProtocolEnvironment new
+            class: theClass
+            protocols: protocols;
+            label:(protocols size = 1
+                        ifTrue:[ 'protocol' , protocols anElement printString , ' in ' , className ]
+                        ifFalse:[ protocols size printString , ' protocols in ' , className ]);
+            yourself
+    ].
+    ^ nil
 
     "Created: / 17-04-2010 / 10:57:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 06-03-2012 / 18:55:00 / cg"
+    "Modified: / 03-12-2014 / 11:26:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 selectedSelectorsAsEnvironment
+    "Return a refactory environment on all selected methods
+     May return nil if refactory browser is not available"
+
+
     | methods env |
 
-    "/ a q&d hack...
-    SelectorEnvironment isNil ifTrue:[ Smalltalk loadPackage:'stx:goodies/refactoryBrowser/browser' ].
-
-    methods := self selectedMethodsValue.
-    env := SelectorEnvironment onEnvironment: BrowserEnvironment new.
-    methods do:[:mthd|env addClass: mthd mclass selector: mthd selector].
-    ^env
+    self canUseRefactoringSupport ifTrue:[
+        methods := self selectedMethodsValue.
+        env := SelectorEnvironment onEnvironment: BrowserEnvironment new.
+        methods do:[:mthd|mthd mclass notNil ifTrue:[env addClass: mthd mclass selector: mthd selector]].
+        ^ env
+    ].
+    ^ nil.
 
     "Created: / 16-07-2010 / 09:25:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 28-02-2012 / 16:28:38 / cg"
+    "Modified: / 03-12-2014 / 11:26:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !NewSystemBrowser methodsFor:'aspects-kludges'!
@@ -18648,7 +19277,7 @@
 git2RepositoryMenusAreShown
     | manager |
     ^(manager := Smalltalk at:#GitSourceCodeManager2) notNil
-	and:[manager shownInBrowserMenus]
+        and:[manager shownInBrowserMenus]
 
     "Modified: / 14-11-2012 / 19:33:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
@@ -18669,7 +19298,7 @@
 hgRepositoryMenusAreShown
     | manager |
     ^(manager := Smalltalk at:#HGSourceCodeManager) notNil
-	and:[manager shownInBrowserMenus]
+        and:[manager shownInBrowserMenus]
 
     "Modified: / 14-11-2012 / 19:33:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
@@ -18687,15 +19316,15 @@
     <resource: #programMenu>
 
     ^ [
-	|m|
-
-	self window sensor ctrlDown ifTrue:[
-	    m := self class methodDebugMenu
-	] ifFalse:[
-	    m := self class methodListMenu
-	].
-	m := m decodeAsLiteralArray.
-	m findGuiResourcesIn:self.
+        |m|
+
+        self window sensor ctrlDown ifTrue:[
+            m := self class methodDebugMenu
+        ] ifFalse:[
+            m := self class methodListMenu
+        ].
+        m := m decodeAsLiteralArray.
+        m findGuiResourcesIn:self.
       ]
 
     "Modified: / 11-09-2007 / 11:44:04 / cg"
@@ -18729,7 +19358,14 @@
 
     ^ self class selectorMenu
 
-    "Created: / 18.2.2000 / 12:17:49 / cg"
+    "Created: / 18-02-2000 / 12:17:49 / cg"
+    "Modified: / 05-09-2014 / 16:31:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+selectorMenuCompareGenerateDebugSlice
+    ^ self menuFor: #selectorMenuCompareGenerateDebugSlice
+
+    "Created: / 05-09-2014 / 17:56:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 selectorPopUpMenu
@@ -18738,18 +19374,18 @@
     <resource: #programMenu>
 
     ^ [
-	|m|
-
-	self window sensor ctrlDown ifTrue:[
-	    m := self class methodDebugMenu
-	] ifFalse:[
-	    m := self class selectorMenu
-	].
-	m := m decodeAsLiteralArray.
-	m findGuiResourcesIn:self.
+        |m|
+
+        self window sensor ctrlDown ifTrue:[
+            m := self menuFor:#methodDebugMenu
+        ] ifFalse:[
+            m := self menuFor: #selectorMenu
+        ].
+        m findGuiResourcesIn:self.
       ]
 
     "Modified: / 11-09-2007 / 11:44:09 / cg"
+    "Modified: / 27-08-2014 / 00:28:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 svnRepositoryMenusAreShown
@@ -18768,21 +19404,21 @@
     m := m decodeAsLiteralArray.
     i := m detectItem:[:item | item nameKey == #RemoveBuffer] ifNone:nil.
     i notNil ifTrue:[
-	i label:(resources string:i label with:index printString).
-	i argument:index.
-	index ~~ self selectedBuffer value ifTrue:[
-	    "/ for now: if that buffer is modified,
-	    "/ do not allow removing.
-	    "/ (must be brought to front, in order for check-for-modification to work)
-	    (buffers at:index) modified ifTrue:[
-		i disable
-	    ].
-	].
+        i label:(resources string:i label with:index printString).
+        i argument:index.
+        index ~~ self selectedBuffer value ifTrue:[
+            "/ for now: if that buffer is modified,
+            "/ do not allow removing.
+            "/ (must be brought to front, in order for check-for-modification to work)
+            (buffers at:index) modified ifTrue:[
+                i disable
+            ].
+        ].
     ].
     i := m detectItem:[:item | item nameKey == #RemoveAllButBuffer] ifNone:nil.
     i notNil ifTrue:[
-	i label:(resources string:i label with:index printString).
-	i argument:index.
+        i label:(resources string:i label with:index printString).
+        i argument:index.
     ].
     m findGuiResourcesIn:self.
     ^ m
@@ -18793,13 +19429,21 @@
 "/    ^ self class tabMenuWithoutRemove.
 !
 
+variablesPopUpMenu
+    "to avoid generation of an aspect method by GUI definer"
+
+    ^ self menuFor: #variablesMenu
+
+    "Created: / 26-08-2014 / 10:24:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 visitedClassesHistory
     |holder|
 
     (holder := builder bindingAt:#visitedClassesHistory) isNil ifTrue:[
-	builder aspectAt:#visitedClassesHistory put:(holder := List new).
-	holder addAll:(self class visitedClassNamesHistory).
-	SystemBrowser addDependent:self.
+        builder aspectAt:#visitedClassesHistory put:(holder := List new).
+        holder addAll:(self class visitedClassNamesHistory).
+        SystemBrowser addDependent:self.
     ].
     ^ holder
 
@@ -18949,7 +19593,7 @@
 
 selectedMethodsClasses
     ^ (self selectedMethodsValue collect:[:m | m mclass] as:Set)
-	    select:[:each| each notNil]
+            select:[:each| each notNil]
 
     "Created: / 07-08-2006 / 12:13:37 / cg"
 !
@@ -19027,28 +19671,27 @@
 ! !
 
 
-
 !NewSystemBrowser methodsFor:'aspects-organization'!
 
 categoryMenuVisible
     |holder|
 
     (holder := builder bindingAt:#categoryMenuVisible) isNil ifTrue:[
-	holder := BlockValue
-			with:[:v1 :v2 | |n|
-				n := self navigationState.
-				n isClassBrowser not
-				and:[n isProtocolOrFullProtocolBrowser not
-				and:[n isMethodBrowser not
-				and:[n isClassExtensionBrowser not
-				and:[n isChainBrowser not
-				and:[(n isNameSpaceFullBrowser or:[n isNameSpaceBrowser not])
-				and:[n isVersionDiffBrowser not
-				and:[(n isNameSpaceFullBrowser or:[v1 == OrganizerCanvas organizerModeCategory])]]]]]]]
-			     ]
-			argument:(self organizerModeForMenu)
-			argument:(self browserCanvas).
-	builder aspectAt:#categoryMenuVisible put: holder
+        holder := BlockValue
+                        with:[:v1 :v2 | |n|
+                                n := self navigationState.
+                                n isClassBrowser not
+                                and:[n isProtocolOrFullProtocolBrowser not
+                                and:[n isMethodBrowser not
+                                and:[n isClassExtensionBrowser not
+                                and:[n isChainBrowser not
+                                and:[(n isNameSpaceFullBrowser or:[n isNameSpaceBrowser not])
+                                and:[n isVersionDiffBrowser not
+                                and:[(n isNameSpaceFullBrowser or:[v1 == OrganizerCanvas organizerModeCategory])]]]]]]]
+                             ]
+                        argument:(self organizerModeForMenu)
+                        argument:(self browserCanvas).
+        builder aspectAt:#categoryMenuVisible put: holder
     ].
     ^ holder
 
@@ -19059,14 +19702,14 @@
     |holder|
 
     (holder := builder bindingAt:#classHierarchyMenuVisible) isNil ifTrue:[
-	holder := BlockValue
-			with:[:orgMode :v2 |
-				(orgMode == OrganizerCanvas organizerModeClassHierarchy)
-				or:[orgMode == OrganizerCanvas organizerModeHierarchy]
-			     ]
-			argument:(self organizerModeForMenu)
-			argument:(self browserCanvas).
-	builder aspectAt:#classHierarchyMenuVisible put: holder
+        holder := BlockValue
+                        with:[:orgMode :v2 |
+                                (orgMode == OrganizerCanvas organizerModeClassHierarchy)
+                                or:[orgMode == OrganizerCanvas organizerModeHierarchy]
+                             ]
+                        argument:(self organizerModeForMenu)
+                        argument:(self browserCanvas).
+        builder aspectAt:#classHierarchyMenuVisible put: holder
     ].
     ^ holder
 
@@ -19082,15 +19725,15 @@
     |holder|
 
     (holder := builder bindingAt:#classMenuVisible) isNil ifTrue:[
-	holder := BlockValue
-			with:[:v | |n|
-				n := self navigationState.
-				n isProtocolOrFullProtocolBrowser not
-				and:[n isMethodBrowser not
-				and:[n isChainBrowser not]]
-			     ]
-			argument:(self browserCanvas).
-	builder aspectAt:#classMenuVisible put: holder
+        holder := BlockValue
+                        with:[:v | |n|
+                                n := self navigationState.
+                                n isProtocolOrFullProtocolBrowser not
+                                and:[n isMethodBrowser not
+                                and:[n isChainBrowser not]]
+                             ]
+                        argument:(self browserCanvas).
+        builder aspectAt:#classMenuVisible put: holder
     ].
     ^ holder
 !
@@ -19099,15 +19742,15 @@
     |holder|
 
     (holder := builder bindingAt:#codeMenuVisible) isNil ifTrue:[
-	holder := BlockValue
-			with:[:v | |n|
-				n := self navigationState.
-				n isClassDocumentationBrowser not
-				and:[n isVersionDiffBrowser not
-				and:[n isFullClassSourceBrowser not]]
-			     ]
-			argument:(self browserCanvas).
-	builder aspectAt:#codeMenuVisible put: holder
+        holder := BlockValue
+                        with:[:v | |n|
+                                n := self navigationState.
+                                n isClassDocumentationBrowser not
+                                and:[n isVersionDiffBrowser not
+                                and:[n isFullClassSourceBrowser not]]
+                             ]
+                        argument:(self browserCanvas).
+        builder aspectAt:#codeMenuVisible put: holder
     ].
     ^ holder
 
@@ -19118,13 +19761,13 @@
     |holder|
 
     (holder := builder bindingAt:#isNotFullProtocolBrowser) isNil ifTrue:[
-	holder := BlockValue
-			with:[:v | |n|
-				n := self navigationState.
-				n isFullProtocolBrowser not
-			     ]
-			argument:(self browserCanvas).
-	builder aspectAt:#isNotFullProtocolBrowser put: holder
+        holder := BlockValue
+                        with:[:v | |n|
+                                n := self navigationState.
+                                n isFullProtocolBrowser not
+                             ]
+                        argument:(self browserCanvas).
+        builder aspectAt:#isNotFullProtocolBrowser put: holder
     ].
     ^ holder
 
@@ -19135,13 +19778,13 @@
     |holder|
 
     (holder := builder bindingAt:#methodListMenuVisible) isNil ifTrue:[
-	holder := BlockValue
-			with:[:v | |n|
-				n := self navigationState.
-				n isMethodListBrowser
-			     ]
-			argument:(self browserCanvas).
-	builder aspectAt:#methodListMenuVisible put: holder
+        holder := BlockValue
+                        with:[:v | |n|
+                                n := self navigationState.
+                                n isMethodListBrowser
+                             ]
+                        argument:(self browserCanvas).
+        builder aspectAt:#methodListMenuVisible put: holder
     ].
     ^ holder
 !
@@ -19150,14 +19793,14 @@
     |holder|
 
     (holder := builder bindingAt:#nameSpaceMenuVisible) isNil ifTrue:[
-	holder := BlockValue
-			with:[:orgMode :v2 |
-				orgMode == OrganizerCanvas organizerModeNamespace
-				or:[self navigationState isNameSpaceFullBrowser]
-			     ]
-			argument:(self organizerModeForMenu)
-			argument:(self browserCanvas).
-	builder aspectAt:#nameSpaceMenuVisible put: holder
+        holder := BlockValue
+                        with:[:orgMode :v2 |
+                                orgMode == OrganizerCanvas organizerModeNamespace
+                                or:[self navigationState isNameSpaceFullBrowser]
+                             ]
+                        argument:(self organizerModeForMenu)
+                        argument:(self browserCanvas).
+        builder aspectAt:#nameSpaceMenuVisible put: holder
     ].
     ^ holder
 
@@ -19169,11 +19812,11 @@
     |holder|
 
     (holder := builder bindingAt:#notShowingInheritedMethods) isNil ifTrue:[
-	holder := BlockValue
-		with:[:h :o | self isMethodListBrowser not and:[h == #class] ]
-		argument:(self methodVisibilityHolder)
-		argument:(self organizerModeForMenu).
-	builder aspectAt:#notShowingInheritedMethods put: holder
+        holder := BlockValue
+                with:[:h :o | self isMethodListBrowser not and:[h == #class] ]
+                argument:(self methodVisibilityHolder)
+                argument:(self organizerModeForMenu).
+        builder aspectAt:#notShowingInheritedMethods put: holder
     ].
     ^ holder
 
@@ -19182,13 +19825,13 @@
 
 operationsMenuEnabled
     ^ [
-	(self canUseRefactoringSupport)
+        (self canUseRefactoringSupport)
       ]
 !
 
 operationsMenuVisible
     ^ [
-	(self canUseRefactoringSupport)
+        (self canUseRefactoringSupport)
       ]
 !
 
@@ -19196,9 +19839,9 @@
     |holder|
 
     (holder := builder bindingAt:#organizerIsNotShowingCategories) isNil ifTrue:[
-	holder := BlockValue
-	    with:[:h | h ~~ OrganizerCanvas organizerModeCategory]
-	    argument:(self organizerModeForMenu)
+        holder := BlockValue
+            with:[:h | h ~~ OrganizerCanvas organizerModeCategory]
+            argument:(self organizerModeForMenu)
     ].
     ^ holder
 
@@ -19209,9 +19852,9 @@
     |holder|
 
     (holder := builder bindingAt:#organizerIsShowingCategories) isNil ifTrue:[
-	holder := BlockValue
-	    with:[:h | h == OrganizerCanvas organizerModeCategory]
-	    argument:(self organizerModeForMenu)
+        holder := BlockValue
+            with:[:h | h == OrganizerCanvas organizerModeCategory]
+            argument:(self organizerModeForMenu)
     ].
     ^ holder
 
@@ -19222,9 +19865,9 @@
     |holder|
 
     (holder := builder bindingAt:#organizerIsShowingClasses) isNil ifTrue:[
-	holder := BlockValue
-	    with:[:h :b | navigationState isMethodListBrowser not]
-	    arguments:(Array with:self organizerModeForMenu with:self selectedBuffer)
+        holder := BlockValue
+            with:[:h :b | navigationState isMethodListBrowser not]
+            arguments:(Array with:self organizerModeForMenu with:self selectedBuffer)
     ].
     ^ holder
 !
@@ -19233,9 +19876,9 @@
     |holder|
 
     (holder := builder bindingAt:#organizerIsShowingClassesAndIsNotShowingCategories) isNil ifTrue:[
-	holder := BlockValue
-	    with:[:h | navigationState isMethodListBrowser not and:[h ~~ OrganizerCanvas organizerModeCategory]]
-	    argument:(self organizerModeForMenu)
+        holder := BlockValue
+            with:[:h | navigationState isMethodListBrowser not and:[h ~~ OrganizerCanvas organizerModeCategory]]
+            argument:(self organizerModeForMenu)
     ].
     ^ holder
 
@@ -19246,9 +19889,9 @@
     |holder|
 
     (holder := builder bindingAt:#organizerIsShowingClassesAndIsShowingCategories) isNil ifTrue:[
-	holder := BlockValue
-	    with:[:h | navigationState isMethodListBrowser not and:[h == OrganizerCanvas organizerModeCategory]]
-	    argument:(self organizerModeForMenu)
+        holder := BlockValue
+            with:[:h | navigationState isMethodListBrowser not and:[h == OrganizerCanvas organizerModeCategory]]
+            argument:(self organizerModeForMenu)
     ].
     ^ holder
 
@@ -19269,12 +19912,12 @@
     |holder|
 
     (holder := builder bindingAt:#organizerModeForMenu) isNil ifTrue:[
-	holder := (PluggableAdaptor new)
-		getBlock:[:m | self organizerMode value ]
-		putBlock:[:m :newValue | self organizerMode value:newValue.]
-		updateBlock:[:m :aspect :param | ].
-	builder aspectAt:#organizerModeForMenu put:holder.
-	holder addDependent:self.
+        holder := (PluggableAdaptor new)
+                getBlock:[:m | self organizerMode value ]
+                putBlock:[:m :newValue | self organizerMode value:newValue.]
+                updateBlock:[:m :aspect :param | ].
+        builder aspectAt:#organizerModeForMenu put:holder.
+        holder addDependent:self.
     ].
     ^ holder
 
@@ -19285,22 +19928,22 @@
     |holder|
 
     (holder := builder bindingAt:#organizerProtocolAndMethodListSpecHolder) isNil ifTrue:[
-	holder := BlockValue
-	    with:[:classes :old |
-		| spec |
-		spec := old at:1.
-		classes notEmptyOrNil ifTrue:[
-		    (classes anySatisfy:[:cls|cls supportsMethodCategories]) ifTrue:[
-			spec := #protocolAndMethodListSpec_Both.
-		    ] ifFalse:[
-			spec := #protocolAndMethodListSpec_JustMethodList
-		    ].
-		    old at:1 put: spec.
-		].
-		spec.
-	    ]
-	    argument:(self selectedClasses)
-	    argument:(ValueHolder with: (Array with:#protocolAndMethodListSpec_Both))
+        holder := BlockValue
+            with:[:classes :old |
+                | spec |
+                spec := old at:1.
+                classes notEmptyOrNil ifTrue:[
+                    (classes anySatisfy:[:cls|cls supportsMethodCategories]) ifTrue:[
+                        spec := #protocolAndMethodListSpec_Both.
+                    ] ifFalse:[
+                        spec := #protocolAndMethodListSpec_JustMethodList
+                    ].
+                    old at:1 put: spec.
+                ].
+                spec.
+            ]
+            argument:(self selectedClasses)
+            argument:(ValueHolder with: (Array with:#protocolAndMethodListSpec_Both))
     ].
     ^ holder
 
@@ -19312,14 +19955,14 @@
     |holder|
 
     (holder := builder bindingAt:#projectMenuVisible) isNil ifTrue:[
-	holder := BlockValue
-			with:[:orgMode :v2 |
-				orgMode == OrganizerCanvas organizerModeProject
-				or:[self navigationState isClassExtensionBrowser]
-			      ]
-			argument:(self organizerModeForMenu)
-			argument:(self browserCanvas).
-	builder aspectAt:#projectMenuVisible put: holder
+        holder := BlockValue
+                        with:[:orgMode :v2 |
+                                orgMode == OrganizerCanvas organizerModeProject
+                                or:[self navigationState isClassExtensionBrowser]
+                              ]
+                        argument:(self organizerModeForMenu)
+                        argument:(self browserCanvas).
+        builder aspectAt:#projectMenuVisible put: holder
     ].
     ^ holder
 
@@ -19331,17 +19974,17 @@
     |holder|
 
     (holder := builder bindingAt:#protocolMenuVisible) isNil ifTrue:[
-	holder := BlockValue
-			with:[:v | |n|
-				n := self navigationState.
-				n isFullClassSourceBrowser not
-				and:[n isClassDocumentationBrowser not
-				and:[n isVersionDiffBrowser not
-				and:[n isMethodBrowser not
-				and:[n isChainBrowser not]]]]
-			     ]
-			argument:(self browserCanvas).
-	builder aspectAt:#protocolMenuVisible put: holder
+        holder := BlockValue
+                        with:[:v | |n|
+                                n := self navigationState.
+                                n isFullClassSourceBrowser not
+                                and:[n isClassDocumentationBrowser not
+                                and:[n isVersionDiffBrowser not
+                                and:[n isMethodBrowser not
+                                and:[n isChainBrowser not]]]]
+                             ]
+                        argument:(self browserCanvas).
+        builder aspectAt:#protocolMenuVisible put: holder
     ].
     ^ holder
 
@@ -19352,14 +19995,14 @@
     |holder|
 
     (holder := builder bindingAt:#searchMenuInMethodListVisible) isNil ifTrue:[
-	holder := BlockValue
-			with:[:v | |n|
-				n := self navigationState.
-				self searchMenuVisible value not
-				and:[n isMethodBrowser]
-			     ]
-			argument:(self browserCanvas).
-	builder aspectAt:#searchMenuInMethodListVisible put: holder
+        holder := BlockValue
+                        with:[:v | |n|
+                                n := self navigationState.
+                                self searchMenuVisible value not
+                                and:[n isMethodBrowser]
+                             ]
+                        argument:(self browserCanvas).
+        builder aspectAt:#searchMenuInMethodListVisible put: holder
     ].
     ^ holder
 !
@@ -19368,16 +20011,16 @@
     |holder|
 
     (holder := builder bindingAt:#searchMenuVisible) isNil ifTrue:[
-	holder := BlockValue
-			with:[:v | |n|
-				n := self navigationState.
-				n isProtocolOrFullProtocolBrowser not
-				and:[n isChainBrowser not
-				and:[n isVersionDiffBrowser not
-				and:[n isCategoryBrowser not]]]
-			     ]
-			argument:(self browserCanvas).
-	builder aspectAt:#searchMenuVisible put: holder
+        holder := BlockValue
+                        with:[:v | |n|
+                                n := self navigationState.
+                                n isProtocolOrFullProtocolBrowser not
+                                and:[n isChainBrowser not
+                                and:[n isVersionDiffBrowser not
+                                and:[n isCategoryBrowser not]]]
+                             ]
+                        argument:(self browserCanvas).
+        builder aspectAt:#searchMenuVisible put: holder
     ].
     ^ holder
 !
@@ -19386,15 +20029,15 @@
     |holder|
 
     (holder := builder bindingAt:#selectorMenuVisible) isNil ifTrue:[
-	holder := BlockValue
-			with:[:v | |n|
-				n := self navigationState.
-				n isClassDocumentationBrowser not
-				and:[n isVersionDiffBrowser not
-				and:[n isFullClassSourceBrowser not]]
-			     ]
-			argument:(self browserCanvas).
-	builder aspectAt:#selectorMenuVisible put: holder
+        holder := BlockValue
+                        with:[:v | |n|
+                                n := self navigationState.
+                                n isClassDocumentationBrowser not
+                                and:[n isVersionDiffBrowser not
+                                and:[n isFullClassSourceBrowser not]]
+                             ]
+                        argument:(self browserCanvas).
+        builder aspectAt:#selectorMenuVisible put: holder
     ].
     ^ holder
 
@@ -19405,30 +20048,34 @@
     |holder|
 
     (holder := builder bindingAt:#showingInheritedMethods) isNil ifTrue:[
-	holder := BlockValue
-		with:[:h :o | self isMethodListBrowser not and:[h ~~ #class] ]
-		argument:(self methodVisibilityHolder)
-		argument:(self organizerModeForMenu).
-	builder aspectAt:#showingInheritedMethods put: holder
+        holder := BlockValue
+                with:[:h :o | self isMethodListBrowser not and:[h ~~ #class] ]
+                argument:(self methodVisibilityHolder)
+                argument:(self organizerModeForMenu).
+        builder aspectAt:#showingInheritedMethods put: holder
     ].
     ^ holder
 
     "Modified: / 08-03-2007 / 23:01:39 / cg"
 !
 
+testRunnerVisibleHolder
+    ^ self hasTestCaseClassesSelectedHolder
+!
+
 variablesMenuVisible
     |holder|
 
     (holder := builder bindingAt:#variablesMenuVisible) isNil ifTrue:[
-	holder := BlockValue
-			with:[:v | |n|
-				n := self navigationState.
-				n isProtocolOrFullProtocolBrowser not
-				and:[n isMethodBrowser not
-				and:[n isChainBrowser not]]
-			     ]
-			argument:(self browserCanvas).
-	builder aspectAt:#variablesMenuVisible put: holder
+        holder := BlockValue
+                        with:[:v | |n|
+                                n := self navigationState.
+                                n isProtocolOrFullProtocolBrowser not
+                                and:[n isMethodBrowser not
+                                and:[n isChainBrowser not]]
+                             ]
+                        argument:(self browserCanvas).
+        builder aspectAt:#variablesMenuVisible put: holder
     ].
     ^ holder
 !
@@ -19437,13 +20084,13 @@
     |holder|
 
     (holder := builder bindingAt:#viewMenuForMethodListVisible) isNil ifTrue:[
-	holder := BlockValue
-			with:[:v | |n|
-				n := self navigationState.
-				n isMethodListBrowser or:[n isChainBrowser]
-			     ]
-			argument:(self browserCanvas).
-	builder aspectAt:#viewMenuForMethodListVisible put: holder
+        holder := BlockValue
+                        with:[:v | |n|
+                                n := self navigationState.
+                                n isMethodListBrowser or:[n isChainBrowser]
+                             ]
+                        argument:(self browserCanvas).
+        builder aspectAt:#viewMenuForMethodListVisible put: holder
     ].
     ^ holder
 !
@@ -19452,22 +20099,22 @@
     |holder|
 
     (holder := builder bindingAt:#viewMenuOrganizerItemsVisible) isNil ifTrue:[
-	holder := BlockValue
-			with:[:v | |n|
-				n := self navigationState.
-				n isClassBrowser not
-				and:[n isProtocolOrFullProtocolBrowser not
-				and:[n isProjectFullBrowser not
-				and:[n isMethodBrowser not
-				and:[n isChainBrowser not
-				and:[n isCategoryBrowser not
-				and:[n isNameSpaceBrowser not
-				and:[n isNameSpaceFullBrowser not
-				and:[n isVersionDiffBrowser not
-				and:[n isProjectBrowser not]]]]]]]]]
-			     ]
-			argument:(self browserCanvas).
-	builder aspectAt:#viewMenuOrganizerItemsVisible put: holder
+        holder := BlockValue
+                        with:[:v | |n|
+                                n := self navigationState.
+                                n isClassBrowser not
+                                and:[n isProtocolOrFullProtocolBrowser not
+                                and:[n isProjectFullBrowser not
+                                and:[n isMethodBrowser not
+                                and:[n isChainBrowser not
+                                and:[n isCategoryBrowser not
+                                and:[n isNameSpaceBrowser not
+                                and:[n isNameSpaceFullBrowser not
+                                and:[n isVersionDiffBrowser not
+                                and:[n isProjectBrowser not]]]]]]]]]
+                             ]
+                        argument:(self browserCanvas).
+        builder aspectAt:#viewMenuOrganizerItemsVisible put: holder
     ].
     ^ holder
 
@@ -19478,23 +20125,23 @@
     |holder|
 
     (holder := builder bindingAt:#viewMenuVisible) isNil ifTrue:[
-	holder := BlockValue
-			with:[:v | |n|
-				n := self navigationState.
-				true "n isClassBrowser not"
-				and:[true "n isProtocolOrFullProtocolBrowser not"
-				and:[true "n isProjectFullBrowser not"
-				and:[n isMethodBrowser not
-				and:[n isMethodListBrowser not
-				and:[n isChainBrowser not
-				and:[n isCategoryBrowser not
-				and:[n isNameSpaceBrowser not
-				and:[n isNameSpaceFullBrowser not
-				and:[n isVersionDiffBrowser not
-				and:[n isProjectBrowser not]]]]]]]]]]
-			     ]
-			argument:(self browserCanvas).
-	builder aspectAt:#viewMenuVisible put: holder
+        holder := BlockValue
+                        with:[:v | |n|
+                                n := self navigationState.
+                                true "n isClassBrowser not"
+                                and:[true "n isProtocolOrFullProtocolBrowser not"
+                                and:[true "n isProjectFullBrowser not"
+                                and:[n isMethodBrowser not
+                                and:[n isMethodListBrowser not
+                                and:[n isChainBrowser not
+                                and:[n isCategoryBrowser not
+                                and:[n isNameSpaceBrowser not
+                                and:[n isNameSpaceFullBrowser not
+                                and:[n isVersionDiffBrowser not
+                                and:[n isProjectBrowser not]]]]]]]]]]
+                             ]
+                        argument:(self browserCanvas).
+        builder aspectAt:#viewMenuVisible put: holder
     ].
     ^ holder
 
@@ -19507,9 +20154,9 @@
     |holder|
 
     (holder := builder bindingAt:#bookmarkBarVisibleHolder) isNil ifTrue:[
-	holder := UserPreferences current showBookmarkBar asValue.
-	builder aspectAt:#bookmarkBarVisibleHolder put: holder.
-	holder addDependent:self.
+        holder := UserPreferences current showBookmarkBar asValue.
+        builder aspectAt:#bookmarkBarVisibleHolder put: holder.
+        holder addDependent:self.
     ].
     ^ holder
 
@@ -19521,7 +20168,7 @@
     <resource: #uiAspect>
 
     browsletShowHideLabelHolder isNil ifTrue:[
-	browsletShowHideLabelHolder := self class showBrowsletIcon asValue
+        browsletShowHideLabelHolder := self class showBrowsletIcon asValue
     ].
     ^ browsletShowHideLabelHolder.
 
@@ -19532,9 +20179,9 @@
     |holder|
 
     (holder := builder bindingAt:#codeInfoVisible) isNil ifTrue:[
-	holder := (DefaultCodeInfoVisible ? true "false")  asValue.
-	builder aspectAt:#codeInfoVisible put: holder.
-	holder addDependent:self.
+        holder := (DefaultCodeInfoVisible ? true "false")  asValue.
+        builder aspectAt:#codeInfoVisible put: holder.
+        holder addDependent:self.
     ].
     ^ holder
 
@@ -19546,10 +20193,10 @@
     |holder|
 
     (holder := builder bindingAt:#doAutoFormat) isNil ifTrue:[
-	holder := (DefaultAutoFormat ? UserPreferences current autoFormatting) asValue.
-	builder aspectAt:#doAutoFormat put:holder.
-	holder onChangeEvaluate:[ DefaultAutoFormat := holder value.
-				  self enqueueDelayedUpdateCodeWithoutAutoSearch].
+        holder := (DefaultAutoFormat ? UserPreferences current autoFormatting) asValue.
+        builder aspectAt:#doAutoFormat put:holder.
+        holder onChangeEvaluate:[ DefaultAutoFormat := holder value.
+                                  self enqueueDelayedUpdateCodeWithoutAutoSearch].
     ].
     ^ holder.
 !
@@ -19558,10 +20205,10 @@
     |holder|
 
     (holder := builder bindingAt:#doImmediateExplaining) isNil ifTrue:[
-	holder := (DefaultImmediateExplaining ? true) asValue.
-	builder aspectAt:#doImmediateExplaining put:holder.
-	holder onChangeEvaluate:[ DefaultImmediateExplaining := holder value.
-				].
+        holder := (DefaultImmediateExplaining ? true) asValue.
+        builder aspectAt:#doImmediateExplaining put:holder.
+        holder onChangeEvaluate:[ DefaultImmediateExplaining := holder value.
+                                ].
     ].
 
     ^ holder
@@ -19571,11 +20218,11 @@
     |holder|
 
     (holder := builder bindingAt:#doImmediateSyntaxColoring) isNil ifTrue:[
-	holder := (DefaultImmediateSyntaxColoring ? true) asValue.
-	builder aspectAt:#doImmediateSyntaxColoring put:holder.
-	holder onChangeEvaluate:[ DefaultImmediateSyntaxColoring := holder value.
-				  self startSyntaxHighlightProcess
-				].
+        holder := (DefaultImmediateSyntaxColoring ? true) asValue.
+        builder aspectAt:#doImmediateSyntaxColoring put:holder.
+        holder onChangeEvaluate:[ DefaultImmediateSyntaxColoring := holder value.
+                                  self startSyntaxHighlightProcess
+                                ].
     ].
     ^ holder
 !
@@ -19584,10 +20231,10 @@
     |holder|
 
     (holder := builder bindingAt:#doSyntaxColoring) isNil ifTrue:[
-	holder := (DefaultSyntaxColoring ? UserPreferences current syntaxColoring) asValue.
-	builder aspectAt:#doSyntaxColoring put:holder.
-	holder onChangeEvaluate:[ DefaultSyntaxColoring := holder value.
-				  self enqueueDelayedUpdateCodeWithoutAutoSearch].
+        holder := (DefaultSyntaxColoring ? UserPreferences current syntaxColoring) asValue.
+        builder aspectAt:#doSyntaxColoring put:holder.
+        holder onChangeEvaluate:[ DefaultSyntaxColoring := holder value.
+                                  self enqueueDelayedUpdateCodeWithoutAutoSearch].
     ].
     ^ holder.
 !
@@ -19604,9 +20251,9 @@
     |holder|
 
     (holder := builder bindingAt:#emphasizeUnloadedClasses) isNil ifTrue:[
-	holder := (DefaultEmphasizeUnloadedClasses ? false) asValue.
-	builder aspectAt:#emphasizeUnloadedClasses put: holder.
-	holder onChangeSend:#emphasizeUnloadedClassesChanged to:self.
+        holder := (DefaultEmphasizeUnloadedClasses ? false) asValue.
+        builder aspectAt:#emphasizeUnloadedClasses put: holder.
+        holder onChangeSend:#emphasizeUnloadedClassesChanged to:self.
     ].
     ^ holder
 
@@ -19620,10 +20267,10 @@
     classListApp := self classListApp.
     DefaultEmphasizeUnloadedClasses := e := self emphasizeUnloadedClasses value.
     e ifTrue:[
-	clr := Color red:(classListApp window font boldness < 0.6
-				ifTrue:[20] ifFalse:[10]).
-    ] ifFalse:[
-	clr := nil
+        clr := Color red:(classListApp window font boldness < 0.6
+                                ifTrue:[20] ifFalse:[10]).
+    ] ifFalse:[
+        clr := nil
     ].
     classListApp unloadedClassesColor:clr.
     "/ classListApp updateList.
@@ -19642,9 +20289,9 @@
     |holder|
 
     (holder := builder bindingAt:#hideUnloadedClasses) isNil ifTrue:[
-	holder := (DefaultHideUnloadedClasses ? false) asValue.
-	builder aspectAt:#hideUnloadedClasses put: holder.
-	holder onChangeEvaluate:[ DefaultHideUnloadedClasses := holder value ].
+        holder := (DefaultHideUnloadedClasses ? false) asValue.
+        builder aspectAt:#hideUnloadedClasses put: holder.
+        holder onChangeEvaluate:[ DefaultHideUnloadedClasses := holder value ].
     ].
     ^ holder
 
@@ -19656,9 +20303,9 @@
     |holder|
 
     (holder := builder bindingAt:#markApplicationsHolder) isNil ifTrue:[
-	holder := (DefaultMarkApplications ? true) asValue.
-	builder aspectAt:#markApplicationsHolder put: holder.
-	holder onChangeEvaluate:[ DefaultMarkApplications := holder value ].
+        holder := (DefaultMarkApplications ? true) asValue.
+        builder aspectAt:#markApplicationsHolder put: holder.
+        holder onChangeEvaluate:[ DefaultMarkApplications := holder value ].
     ].
     ^ holder
 
@@ -19688,9 +20335,9 @@
     |holder|
 
     (holder := builder bindingAt:#shortNamesInTabs) isNil ifTrue:[
-	holder := (DefaultShortNameInTabs ? true) asValue.
-	builder aspectAt:#shortNamesInTabs put: holder.
-	holder onChangeEvaluate:[ DefaultShortNameInTabs := holder value ].
+        holder := (DefaultShortNameInTabs ? true) asValue.
+        builder aspectAt:#shortNamesInTabs put: holder.
+        holder onChangeEvaluate:[ DefaultShortNameInTabs := holder value ].
     ].
     ^ holder
 !
@@ -19699,9 +20346,9 @@
     |holder|
 
     (holder := builder bindingAt:#showAllClassesInNameSpaceOrganisation) isNil ifTrue:[
-	holder := (DefaultShortAllClassesInNameSpaceOrganisation ? false) asValue.
-	builder aspectAt:#showAllClassesInNameSpaceOrganisation put: holder.
-	holder onChangeEvaluate:[ DefaultShortAllClassesInNameSpaceOrganisation := holder value ].
+        holder := (DefaultShortAllClassesInNameSpaceOrganisation ? false) asValue.
+        builder aspectAt:#showAllClassesInNameSpaceOrganisation put: holder.
+        holder onChangeEvaluate:[ DefaultShortAllClassesInNameSpaceOrganisation := holder value ].
     ].
     ^ holder
 
@@ -19711,7 +20358,7 @@
 
 showClassPackages
     showClassPackages isNil ifTrue:[
-	showClassPackages := false asValue.
+        showClassPackages := false asValue.
     ].
     ^ showClassPackages.
 
@@ -19728,8 +20375,8 @@
     |holder|
 
     (holder := builder bindingAt:#showCoverageInformation) isNil ifTrue:[
-	holder := true"false" asValue.
-	builder aspectAt:#showCoverageInformation put: holder.
+        holder := true"false" asValue.
+        builder aspectAt:#showCoverageInformation put: holder.
     ].
     ^ holder
 
@@ -19740,9 +20387,9 @@
     |holder|
 
     (holder := builder bindingAt:#showGlobalHistory) isNil ifTrue:[
-	holder := (AspectAdaptor forAspect: #showGlobalHistory)
-		    subject: UserPreferences current.
-	builder aspectAt:#showGlobalHistory put: holder.
+        holder := (AspectAdaptor forAspect: #showGlobalHistory)
+                    subject: UserPreferences current.
+        builder aspectAt:#showGlobalHistory put: holder.
     ].
     ^ holder
 
@@ -19755,9 +20402,9 @@
     |holder|
 
     (holder := builder bindingAt:#showLocalHistory) isNil ifTrue:[
-	holder := (AspectAdaptor forAspect: #showLocalHistory)
-		    subject: UserPreferences current.
-	builder aspectAt:#showLocalHistory put: holder.
+        holder := (AspectAdaptor forAspect: #showLocalHistory)
+                    subject: UserPreferences current.
+        builder aspectAt:#showLocalHistory put: holder.
     ].
     ^ holder
 
@@ -19768,9 +20415,9 @@
     |holder|
 
     (holder := builder bindingAt:#showMethodComplexity) isNil ifTrue:[
-	holder := (DefaultShowMethodComplexity ? false) asValue.
-	builder aspectAt:#showMethodComplexity put: holder.
-	holder onChangeEvaluate:[ DefaultShowMethodComplexity := holder value ].
+        holder := (DefaultShowMethodComplexity ? false) asValue.
+        builder aspectAt:#showMethodComplexity put: holder.
+        holder onChangeEvaluate:[ DefaultShowMethodComplexity := holder value ].
     ].
     ^ holder
 !
@@ -19779,9 +20426,9 @@
     |holder|
 
     (holder := builder bindingAt:#showMethodInheritance) isNil ifTrue:[
-	holder := (DefaultShowMethodInheritance ? true) asValue.
-	builder aspectAt:#showMethodInheritance put: holder.
-	holder onChangeEvaluate:[ DefaultShowMethodInheritance := holder value ].
+        holder := (DefaultShowMethodInheritance ? true) asValue.
+        builder aspectAt:#showMethodInheritance put: holder.
+        holder onChangeEvaluate:[ DefaultShowMethodInheritance := holder value ].
     ].
     ^ holder
 
@@ -19793,9 +20440,9 @@
     |holder|
 
     (holder := builder bindingAt:#showMethodTemplate) isNil ifTrue:[
-	holder := (AspectAdaptor forAspect: #showMethodTemplate)
-		    subject: UserPreferences current.
-	builder aspectAt:#showMethodTemplate put: holder.
+        holder := (AspectAdaptor forAspect: #showMethodTemplate)
+                    subject: UserPreferences current.
+        builder aspectAt:#showMethodTemplate put: holder.
     ].
     ^ holder
 
@@ -19807,9 +20454,9 @@
     |holder|
 
     (holder := builder bindingAt:#showMethodTypeIcon) isNil ifTrue:[
-	holder := (DefaultShowMethodTypeIcon ? true) asValue.
-	builder aspectAt:#showMethodTypeIcon put: holder.
-	holder onChangeEvaluate:[ DefaultShowMethodTypeIcon := holder value ].
+        holder := (DefaultShowMethodTypeIcon ? true) asValue.
+        builder aspectAt:#showMethodTypeIcon put: holder.
+        holder onChangeEvaluate:[ DefaultShowMethodTypeIcon := holder value ].
     ].
     ^ holder
 !
@@ -19818,12 +20465,12 @@
     |holder|
 
     (holder := builder bindingAt:#showMultitabMode) isNil ifTrue:[
-	holder := (DefaultShowMultitabMode ? false) asValue.
-	builder aspectAt:#showMultitabMode put: holder.
-	holder onChangeEvaluate:[
-	    self updateSpecialCodeEditorVisibility.
-	    DefaultShowMultitabMode := holder value.
-	].
+        holder := (DefaultShowMultitabMode ? false) asValue.
+        builder aspectAt:#showMultitabMode put: holder.
+        holder onChangeEvaluate:[
+            self updateSpecialCodeEditorVisibility.
+            DefaultShowMultitabMode := holder value.
+        ].
     ].
     ^ holder
 !
@@ -19836,8 +20483,8 @@
     |holder|
 
     (holder := builder bindingAt:#showPlugin) isNil ifTrue:[
-	holder := false asValue.
-	builder aspectAt:#showPlugin put: holder.
+        holder := false asValue.
+        builder aspectAt:#showPlugin put: holder.
     ].
     ^ holder
     "
@@ -19857,9 +20504,9 @@
     |holder|
 
     (holder := builder bindingAt:#showPseudoProtocols) isNil ifTrue:[
-	holder := (DefaultShowPseudoProtocols ? true) asValue.
-	builder aspectAt:#showPseudoProtocols put: holder.
-	holder onChangeEvaluate:[ DefaultShowPseudoProtocols := holder value ].
+        holder := (DefaultShowPseudoProtocols ? true) asValue.
+        builder aspectAt:#showPseudoProtocols put: holder.
+        holder onChangeEvaluate:[ DefaultShowPseudoProtocols := holder value ].
     ].
     ^ holder
 !
@@ -19868,12 +20515,12 @@
     |holder|
 
     (holder := builder bindingAt:#showSpecialResourceEditors) isNil ifTrue:[
-	holder := (DefaultShowSpecialResourceEditors ? false) asValue.
-	builder aspectAt:#showSpecialResourceEditors put: holder.
-	holder onChangeEvaluate:[
-	    self updateSpecialCodeEditorVisibility.
-	    DefaultShowSpecialResourceEditors := holder value
-	].
+        holder := (DefaultShowSpecialResourceEditors ? false) asValue.
+        builder aspectAt:#showSpecialResourceEditors put: holder.
+        holder onChangeEvaluate:[
+            self updateSpecialCodeEditorVisibility.
+            DefaultShowSpecialResourceEditors := holder value
+        ].
     ].
     ^ holder
 !
@@ -19882,11 +20529,11 @@
     |holder|
 
     (holder := builder bindingAt:#showSyntheticMethods) isNil ifTrue:[
-	holder := (DefaultShowSyntheticMethods ? false) asValue.
-	builder aspectAt:#showSyntheticMethods put: holder.
-	holder onChangeEvaluate:[
-	    DefaultShowSyntheticMethods := holder value
-	].
+        holder := (DefaultShowSyntheticMethods ? false) asValue.
+        builder aspectAt:#showSyntheticMethods put: holder.
+        holder onChangeEvaluate:[
+            DefaultShowSyntheticMethods := holder value
+        ].
     ].
     ^ holder
 
@@ -19897,9 +20544,9 @@
     |holder|
 
     (holder := builder bindingAt:#showUnloadedClasses) isNil ifTrue:[
-	holder := BlockValue forLogicalNot:(self hideUnloadedClasses).
-	builder aspectAt:#showUnloadedClasses put: holder.
-	holder onChangeEvaluate:[self classListApp invalidateList].
+        holder := BlockValue forLogicalNot:(self hideUnloadedClasses).
+        builder aspectAt:#showUnloadedClasses put: holder.
+        holder onChangeEvaluate:[self classListApp invalidateList].
     ].
     ^ holder
 
@@ -19911,9 +20558,9 @@
     |holder|
 
     (holder := builder bindingAt:#sortByNameAndInheritance) isNil ifTrue:[
-	"now: I do not want that to be automatically forwarded to the prefs"
-	holder := (UserPreferences current sortAndIndentClassesByInheritance) asValue.
-	builder aspectAt:#sortByNameAndInheritance put: holder.
+        "now: I do not want that to be automatically forwarded to the prefs"
+        holder := (UserPreferences current sortAndIndentClassesByInheritance) asValue.
+        builder aspectAt:#sortByNameAndInheritance put: holder.
     ].
     ^ holder
 
@@ -19931,9 +20578,9 @@
     |holder|
 
     (holder := builder bindingAt:#stringSearchToolVisibleHolder) isNil ifTrue:[
-	holder := false asValue.
-	builder aspectAt:#stringSearchToolVisibleHolder put: holder.
-	holder addDependent:self.
+        holder := false asValue.
+        builder aspectAt:#stringSearchToolVisibleHolder put: holder.
+        holder addDependent:self.
     ].
     ^ holder
 !
@@ -19942,9 +20589,9 @@
     |holder|
 
     (holder := builder bindingAt:#toolBarVisibleHolder) isNil ifTrue:[
-	holder := (DefaultToolBarVisible ? true "false") asValue.
-	builder aspectAt:#toolBarVisibleHolder put: holder.
-	holder addDependent:self.
+        holder := (DefaultToolBarVisible ? true "false") asValue.
+        builder aspectAt:#toolBarVisibleHolder put: holder.
+        holder addDependent:self.
     ].
     ^ holder
 
@@ -19961,9 +20608,11 @@
 !NewSystemBrowser methodsFor:'aspects-queries'!
 
 anyBreakOrTracePointsAreSet
-    ^ MessageTracer notNil
-      and:[MessageTracer isLoaded
-      and:[MessageTracer areAnyMethodsWrapped]]
+    ^ (MethodWithBreakpoints notNil
+           and:[ MethodWithBreakpoints allBreakpointedMethods notEmpty ])
+      or:[ MessageTracer notNil
+           and:[MessageTracer isLoaded
+           and:[MessageTracer areAnyMethodsWrapped]]]
 !
 
 anyBreakOrTracePointsAreSetHolder
@@ -20017,10 +20666,10 @@
     |holder|
 
     (holder := builder bindingAt:#canGoBackAspect) isNil ifTrue:[
-	holder := (AspectAdaptor forAspect:#canGoBack)
-			subjectChannel: self navigationHistory;
-			yourself.
-	builder aspectAt:#canGoBackAspect put:holder.
+        holder := (AspectAdaptor forAspect:#canGoBack)
+                        subjectChannel: self navigationHistory;
+                        yourself.
+        builder aspectAt:#canGoBackAspect put:holder.
     ].
     ^ holder.
 
@@ -20042,10 +20691,10 @@
     |holder|
 
     (holder := builder bindingAt:#canGoBackInGlobalHistoryAspect) isNil ifTrue:[
-	holder := (AspectAdaptor forAspect:#canGoBack)
-			subjectChannel: self class classHistory;
-			yourself.
-	builder aspectAt:#canGoBackInGlobalHistoryAspect put:holder.
+        holder := (AspectAdaptor forAspect:#canGoBack)
+                        subjectChannel: self class classHistory;
+                        yourself.
+        builder aspectAt:#canGoBackInGlobalHistoryAspect put:holder.
     ].
     ^ holder.
 
@@ -20067,10 +20716,10 @@
     |holder|
 
     (holder := builder bindingAt:#canGoForwardAspect) isNil ifTrue:[
-	holder := (AspectAdaptor forAspect:#canGoForward)
-			subjectChannel: self navigationHistory;
-			yourself.
-	builder aspectAt:#canGoForwardAspect put:holder.
+        holder := (AspectAdaptor forAspect:#canGoForward)
+                        subjectChannel: self navigationHistory;
+                        yourself.
+        builder aspectAt:#canGoForwardAspect put:holder.
     ].
     ^ holder.
 
@@ -20113,12 +20762,12 @@
     | mthd mclass|
 
     (mthd := self theSingleSelectedMethod) notNil ifTrue:[
-	mclass := mthd mclass.
+        mclass := mthd mclass.
     ] ifFalse:[
 "/        self codeAspect value ~= #classDefinition ifTrue:[
 "/            ^ nil
 "/        ].
-	mclass := self theSingleSelectedClass.
+        mclass := self theSingleSelectedClass.
     ].
     ^ mclass
 !
@@ -20139,12 +20788,12 @@
     |nsSymbol cls|
 
     (nsSymbol := self theSingleSelectedNamespace) notNil ifTrue:[
-	nsSymbol ~= BrowserList nameListEntryForALL ifTrue:[
-	    ^ NameSpace name:nsSymbol
-	]
+        nsSymbol ~= BrowserList nameListEntryForALL ifTrue:[
+            ^ NameSpace name:nsSymbol
+        ]
     ].
     (cls := self theSingleSelectedClass) notNil ifTrue:[
-	^ cls topNameSpace
+        ^ cls topNameSpace
     ].
     ^ Class nameSpaceQuerySignal query ? Smalltalk
 !
@@ -20153,17 +20802,17 @@
     |prj projects|
 
     (prj := self theSingleSelectedProject) notNil ifTrue:[
-	prj ~= BrowserList nameListEntryForALL ifTrue:[
-	    ^ prj
-	]
+        prj ~= BrowserList nameListEntryForALL ifTrue:[
+            ^ prj
+        ]
     ].
     projects := self selectedClassesValue collect:[:cls | cls package] as:Set.
     projects size == 1 ifTrue:[
-	^ projects first
+        ^ projects first
     ].
     projects := self selectedMethodsValue collect:[:m | m package] as:Set.
     projects size == 1 ifTrue:[
-	^ projects first
+        ^ projects first
     ].
     ^ nil
 
@@ -20231,12 +20880,12 @@
 
     selected := self selectedClassesValue.
     selected isEmptyOrNil ifTrue:[
-	selected := self selectedCategoryClasses
+        selected := self selectedCategoryClasses
     ].
     selected size > 0 ifTrue:[
-	selected do:[ :cls |
-	    cls instAndClassMethodsDo:[:m | m isInstrumented ifTrue:[^ true]].
-	].
+        selected do:[ :cls |
+            cls instAndClassMethodsDo:[:m | m isInstrumented ifTrue:[^ true]].
+        ].
     ].
     ^ false.
 
@@ -20266,7 +20915,7 @@
 hasAnyMethodSelectedForWhich:aBlock
     |sel|
 
-    sel := self selectedMethodsValue.
+    sel := self selectedMethodsValue copyWithout:nil.
     ^ (sel size > 0) and:[ sel contains:aBlock ]
 
     "Created: / 28-02-2012 / 16:17:24 / cg"
@@ -20314,15 +20963,15 @@
 
 hasAnyTestCaseOrExecutableClassMethodOrStartableApplicationSelectedHolder
     ^ BlockValue
-	forLogical:(self hasAnyExecutableClassMethodSelectedHolder)
-	or:(self hasAnyTestCaseSelectedHolder)
-	or:(self hasStartableApplicationSelectedHolder)
+        forLogical:(self hasAnyExecutableClassMethodSelectedHolder)
+        or:(self hasAnyTestCaseSelectedHolder)
+        or:(self hasStartableApplicationSelectedHolder)
 !
 
 hasAnyTestCaseOrExecutableClassMethodSelectedHolder
     ^ BlockValue
-	forLogical:(self hasAnyExecutableClassMethodSelectedHolder)
-	or:(self hasAnyTestCaseSelectedHolder)
+        forLogical:(self hasAnyExecutableClassMethodSelectedHolder)
+        or:(self hasAnyTestCaseSelectedHolder)
 !
 
 hasAnyTestCaseSelected
@@ -20330,14 +20979,14 @@
 
     selected := self selectedClassesValue.
     selected isEmptyOrNil ifTrue:[
-	selected := self selectedCategoryClasses
+        selected := self selectedCategoryClasses
     ].
     ^ selected notNil
     and:[selected
-	    contains:[:cls |
-			cls theNonMetaclass isTestCaseLike
-			and:[ cls theNonMetaclass isAbstract not ]
-	    ].
+            contains:[:cls |
+                        cls theNonMetaclass isTestCaseLike
+                        and:[ cls theNonMetaclass isAbstract not ]
+            ].
     ].
 
     "Modified: / 28-02-2012 / 16:49:32 / cg"
@@ -20345,16 +20994,16 @@
 
 hasAnyTestCaseSelectedAndEmbeddedRunnerIsDisabled
     ^ BlockValue
-	with:[:b | b and:[UserPreferences current showEmbeddedTestRunnerInBrowser not]]
-	argument:(self hasAnyTestCaseSelectedHolder)
+        with:[:b | b and:[UserPreferences current showEmbeddedTestRunnerInBrowser not]]
+        argument:(self hasAnyTestCaseSelectedHolder)
 !
 
 hasAnyTestCaseSelectedHolder
     |holder|
 
     (holder := builder bindingAt:#hasAnyTestCaseSelectedHolder) isNil ifTrue:[
-	holder := ValueHolder with:false.
-	builder aspectAt:#hasAnyTestCaseSelectedHolder put: holder.
+        holder := ValueHolder with:false.
+        builder aspectAt:#hasAnyTestCaseSelectedHolder put: holder.
     ].
     ^ holder
 
@@ -20388,9 +21037,9 @@
 
 hasApplicationOrHTTPServiceClassSelectedHolder
     ^ [
-	(self hasApplicationClassSelected
-	or:[ self hasWebApplicationClassSelected ])
-	or:[ self hasStandaloneStartupClassSelected ]
+        (self hasApplicationClassSelected
+        or:[ self hasWebApplicationClassSelected ])
+        or:[ self hasStandaloneStartupClassSelected ]
       ]
 
     "Created: / 04-02-2000 / 22:02:53 / cg"
@@ -20412,12 +21061,12 @@
     foundBreak := false.
     foundTrace := false.
     self
-	selectedMethodsDo:[ :aMethod |
-	    aMethod isWrapped ifTrue:[
-		foundBreak := foundBreak or:[ aMethod isBreakpointed ].
-		foundTrace := foundTrace or:[ aMethod isBreakpointed not ]
-	    ]
-	].
+        selectedMethodsDo:[ :aMethod |
+            aMethod isWrapped ifTrue:[
+                foundBreak := foundBreak or:[ aMethod isBreakpointed ].
+                foundTrace := foundTrace or:[ aMethod isBreakpointed not ]
+            ]
+        ].
     ^ foundBreak and:[ foundTrace ]
 !
 
@@ -20461,6 +21110,10 @@
     ^ [ self hasCategorySelected and:[self canFileOutSIF] ]
 !
 
+hasCategorySelectedAndCanFileOutVSEHolder
+    ^ [ self hasCategorySelected and:[self canFileOutVSE] ]
+!
+
 hasCategorySelectedAndCanFileOutXMLHolder
     ^ [ self hasCategorySelected and:[self canFileOutXML] ]
 !
@@ -20561,7 +21214,7 @@
     |holder|
 
     (holder := builder bindingAt:#hasClassOrMethodSelectedHolder) isNil ifTrue:[
-	builder aspectAt:#hasClassOrMethodSelectedHolder put:(holder := false asValue).
+        builder aspectAt:#hasClassOrMethodSelectedHolder put:(holder := false asValue).
     ].
     ^ holder.
 !
@@ -20591,6 +21244,10 @@
     "Created: / 4.2.2000 / 22:02:53 / cg"
 !
 
+hasClassSelectedAndCanFileOutVSEHolder
+    ^ [ self hasClassSelected and:[self canFileOutVSE]]
+!
+
 hasClassSelectedAndCanFileOutXMLHolder
     ^ [ self hasClassSelected and:[self canFileOutXML]]
 
@@ -20616,7 +21273,7 @@
 
 hasClassSelectedAndInstrumentingCompilerExistsAndOOMPackageLoadedHolder
     ^ [ self hasClassSelectedAndInstrumentingCompilerExistsHolder value
-	and:[ OOM::MetricVisualizer notNil ]
+        and:[ OOM::MetricVisualizer notNil ]
       ]
 
     "Created: / 27-04-2010 / 12:33:41 / cg"
@@ -20649,16 +21306,16 @@
 
 hasClassSelectedWhichCanBeExcludedFromProject
     ^ self hasAnyClassSelectedForWhich:
-	[:cls |
-	    |def|
-
-	    def := ProjectDefinition definitionClassForPackage:cls package.
-
-	    def notNil
-	    and:[ def isLoaded
-	    and:[ (def allClassNames includes:cls name)
-	    and:[ cls isProjectDefinition not ]]]
-	]
+        [:cls |
+            |def|
+
+            def := ProjectDefinition definitionClassForPackage:cls package.
+
+            def notNil
+            and:[ def isLoaded
+            and:[ (def allClassNames includes:cls name)
+            and:[ cls isProjectDefinition not ]]]
+        ]
 
     "Created: / 22-02-2007 / 13:55:03 / cg"
     "Modified: / 28-02-2012 / 16:51:10 / cg"
@@ -20672,16 +21329,16 @@
 
 hasClassSelectedWhichCanBeIncludedInProject
     ^ self hasAnyClassSelectedForWhich:
-	[:cls |
-	    |def|
-
-	    def := ProjectDefinition definitionClassForPackage:cls package.
-
-	    def notNil
-	    and:[ def isLoaded
-	    and:[ (def compiled_classNames includes:cls name) not
-	    and:[ cls isProjectDefinition not ]]]
-	]
+        [:cls |
+            |def|
+
+            def := ProjectDefinition definitionClassForPackage:cls package.
+
+            def notNil
+            and:[ def isLoaded
+            and:[ (def compiled_classNames includes:cls name) not
+            and:[ cls isProjectDefinition not ]]]
+        ]
 
     "Created: / 22-02-2007 / 13:54:16 / cg"
     "Modified: / 28-02-2012 / 16:50:59 / cg"
@@ -20695,16 +21352,16 @@
 
 hasClassSelectedWhichCanBeMadeAutoloadedInProject
     ^ self hasAnyClassSelectedForWhich:
-	[:cls |
-	    |def|
-
-	    def := ProjectDefinition definitionClassForPackage:cls package.
-
-	    def notNil
-	    and:[ def isLoaded
-	    and:[ (def autoloaded_classNames includes:cls name) not
-	    and:[ cls isProjectDefinition not ]]]
-	]
+        [:cls |
+            |def|
+
+            def := ProjectDefinition definitionClassForPackage:cls package.
+
+            def notNil
+            and:[ def isLoaded
+            and:[ (def autoloaded_classNames includes:cls name) not
+            and:[ cls isProjectDefinition not ]]]
+        ]
 
     "Created: / 30-08-2007 / 18:48:59 / cg"
 !
@@ -20733,11 +21390,11 @@
     selection := self selectionInCodeView.
 
     (mthd := self theSingleSelectedMethod) notNil ifTrue:[
-	mclass := mthd mclass.
+        mclass := mthd mclass.
     ].
     mclass isNil ifTrue:[
-	mclass := self theSingleSelectedClass.
-	mclass isNil ifTrue:[^ false].
+        mclass := self theSingleSelectedClass.
+        mclass isNil ifTrue:[^ false].
     ].
     ^ (mclass theNonMetaclass whichClassDefinesClassVar:selection) notNil.
 
@@ -20762,7 +21419,7 @@
 
 hasClassVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
     ^ [ self canUseRefactoringSupport
-	and:[self hasClassVariableSelectedInCodeViewOrVariableList] ]
+        and:[self hasClassVariableSelectedInCodeViewOrVariableList] ]
 !
 
 hasClassVariableSelectedInCodeViewOrVariableListHolder
@@ -20794,23 +21451,23 @@
 
 hasClassWithInstrumentedMethodsSelected
     self hasAnyClassSelectedForWhich:[:cls |
-	cls instAndClassMethodsDo:[:m |
-	    m isInstrumented ifTrue:[^ true].
-	].
+        cls instAndClassMethodsDo:[:m |
+            m isInstrumented ifTrue:[^ true].
+        ].
     ].
     ^ false
 !
 
 hasClassesSelectedAndDataBaseRepositoryExistsHolder
     ^ [
-	| classes |
-
-	classes := self selectedClassesValue.
-	classes isEmptyOrNil ifTrue:[
-	    false
-	] ifFalse:[
-	    ConfigurableFeatures includesFeature: #DataBaseSourceCodeManagerSupport
-	]
+        | classes |
+
+        classes := self selectedClassesValue.
+        classes isEmptyOrNil ifTrue:[
+            false
+        ] ifFalse:[
+            ConfigurableFeatures includesFeature: #DataBaseSourceCodeManagerSupport
+        ]
     ]
 
     "Created: / 03-01-2012 / 15:48:46 / cg"
@@ -20820,14 +21477,14 @@
 
 hasClassesSelectedAndFileBasedRepositoryExistsHolder
     ^ [
-	| classes |
-
-	classes := self selectedClassesValue.
-	classes isEmptyOrNil ifTrue:[
-	    false
-	] ifFalse:[
-	    ConfigurableFeatures includesFeature: #FileBasedSourceCodeManagerSupport
-	]
+        | classes |
+
+        classes := self selectedClassesValue.
+        classes isEmptyOrNil ifTrue:[
+            false
+        ] ifFalse:[
+            ConfigurableFeatures includesFeature: #FileBasedSourceCodeManagerSupport
+        ]
     ]
 
     "Created: / 21-12-2011 / 17:05:28 / cg"
@@ -20837,14 +21494,14 @@
 
 hasClassesSelectedAndGitRepositoryExistsHolder
     ^ [
-	| classes |
-
-	classes := self selectedClassesValue.
-	classes isEmptyOrNil ifTrue:[
-	    false
-	] ifFalse:[
-	    classes conform: [:cls | self hasGitRepositoryFor: cls theNonMetaclass package]
-	]
+        | classes |
+
+        classes := self selectedClassesValue.
+        classes isEmptyOrNil ifTrue:[
+            false
+        ] ifFalse:[
+            classes conform: [:cls | self hasGitRepositoryFor: cls theNonMetaclass package]
+        ]
     ]
 
     "Created: / 23-07-2012 / 13:33:07 / cg"
@@ -20852,14 +21509,14 @@
 
 hasClassesSelectedAndMercurialRepositoryExistsHolder
     ^ [
-	| classes |
-
-	classes := self selectedClassesValue.
-	classes isEmptyOrNil ifTrue:[
-	    false
-	] ifFalse:[
-	    classes conform:[:cls | self hasMercurialRepositoryFor: cls theNonMetaclass package]
-	]
+        | classes |
+
+        classes := self selectedClassesValue.
+        classes isEmptyOrNil ifTrue:[
+            false
+        ] ifFalse:[
+            classes conform:[:cls | self hasMercurialRepositoryFor: cls theNonMetaclass package]
+        ]
     ]
 
     "Created: / 19-01-2012 / 16:14:57 / cg"
@@ -20867,14 +21524,14 @@
 
 hasClassesSelectedAndPerforceRepositoryExistsHolder
     ^ [
-	| classes |
-
-	classes := self selectedClassesValue.
-	classes isEmptyOrNil ifTrue:[
-	    false
-	] ifFalse:[
-	    classes conform: [:cls | self hasPerforceRepositoryFor: cls theNonMetaclass package]
-	]
+        | classes |
+
+        classes := self selectedClassesValue.
+        classes isEmptyOrNil ifTrue:[
+            false
+        ] ifFalse:[
+            classes conform: [:cls | self hasPerforceRepositoryFor: cls theNonMetaclass package]
+        ]
     ]
 
     "Created: / 19-04-2011 / 14:13:52 / cg"
@@ -20892,14 +21549,14 @@
 
 hasClassesSelectedAndSubversionRepositoryExistsHolder
     ^ [
-	| classes |
-
-	classes := self selectedClassesValue.
-	classes isEmptyOrNil ifTrue:[
-	    false
-	] ifFalse:[
-	    classes conform: [:cls | self hasSubversionRepositoryFor: cls theNonMetaclass package]
-	]
+        | classes |
+
+        classes := self selectedClassesValue.
+        classes isEmptyOrNil ifTrue:[
+            false
+        ] ifFalse:[
+            classes conform: [:cls | self hasSubversionRepositoryFor: cls theNonMetaclass package]
+        ]
     ]
 
     "Modified: / 28-02-2012 / 16:55:12 / cg"
@@ -20917,8 +21574,8 @@
 
 hasClassesWithCommonSuperclassAndVariableSelectedAndCanUseRefactoringSupportHolder
     ^ [ self canUseRefactoringSupport
-	and:[self hasClassesWithCommonSuperclassSelected
-	and:[self hasVariableSelectedInCodeViewOrVariableList]] ]
+        and:[self hasClassesWithCommonSuperclassSelected
+        and:[self hasVariableSelectedInCodeViewOrVariableList]] ]
 
     "Created: / 4.2.2000 / 22:02:53 / cg"
 !
@@ -20968,13 +21625,13 @@
     selectedNamespaces := self selectedNamespaces value.
     selectedNamespaces size == 0 ifTrue:[^ false].
     ^ (selectedNamespaces
-	contains:[:nm |
-	    |ns|
-
-	    ns := environment at:nm asSymbol ifAbsent:nil.
-	    ns notNil
-	    and:[ns allClasses size ~~ 0]
-	]
+        contains:[:nm |
+            |ns|
+
+            ns := environment at:nm asSymbol ifAbsent:nil.
+            ns notNil
+            and:[ns allClasses size ~~ 0]
+        ]
       ) not
 !
 
@@ -20986,10 +21643,10 @@
 
 hasEnumTypeClassSelected
     ^ self hasAnyClassSelectedForWhich:[:cls |
-			cls isLoaded
-			and:[(cls theNonMetaclass askFor:#isAbstract) not
-			and:[ cls withAllSuperclasses contains:[:aSuperClass |
-				 aSuperClass theNonMetaclass name includesString:'Enum']]] ]
+                        cls isLoaded
+                        and:[(cls theNonMetaclass askFor:#isAbstract) not
+                        and:[ cls withAllSuperclasses contains:[:aSuperClass |
+                                 aSuperClass theNonMetaclass name includesString:'Enum']]] ]
 
     "Modified: / 28-02-2012 / 16:56:28 / cg"
 !
@@ -21032,8 +21689,8 @@
 
 hasExtensionMethodSelectedHolder
     ^ BlockValue
-	with:[:m | m and:[self hasExtensionMethodSelected]]
-	argument:(self hasMethodSelectedHolder)
+        with:[:m | m and:[self hasExtensionMethodSelected]]
+        argument:(self hasMethodSelectedHolder)
 
     "Modified: / 08-03-2007 / 23:00:43 / cg"
 !
@@ -21110,14 +21767,14 @@
     selection := self selectionInCodeView.
 
     (mthd := self theSingleSelectedMethod) notNil ifTrue:[
-	mclass := mthd mclass.
+        mclass := mthd mclass.
     ].
     mclass isNil ifTrue:[
-	self codeAspect value ~= SyntaxHighlighter codeAspectClassDefinition ifTrue:[
-	    ^ false
-	].
-	mclass := self theSingleSelectedClass.
-	(mclass isNil or:[mclass isMeta]) ifTrue:[ ^ false].
+        self codeAspect value ~= SyntaxHighlighter codeAspectClassDefinition ifTrue:[
+            ^ false
+        ].
+        mclass := self theSingleSelectedClass.
+        (mclass isNil or:[mclass isMeta]) ifTrue:[ ^ false].
     ].
     ^ (mclass whichClassDefinesInstVar:selection) notNil.
 
@@ -21149,7 +21806,7 @@
 
 hasInstanceVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
     ^ [ self canUseRefactoringSupport
-	and:[self hasInstanceVariableSelectedInCodeViewOrVariableList]]
+        and:[self hasInstanceVariableSelectedInCodeViewOrVariableList]]
 !
 
 hasInstanceVariableSelectedInCodeViewOrVariableListHolder
@@ -21171,7 +21828,7 @@
 
     self codeView hasSelection ifFalse:[^ false].
     s := self codeView selectionAsString.
-    tree := Parser parseExpression:s onError:nil.
+    tree := Parser parseExpression:s onError:[nil].
     tree isNil ifTrue:[^ false].
     tree isConstant ifFalse:[^ false].
     ^ true
@@ -21205,7 +21862,7 @@
     sel isNil ifTrue:[^ false].
 
     (self hasAnyClassSelectedForWhich:[:cls |
-	(cls canUnderstand:sel)]) ifTrue:[^ true].
+        (cls canUnderstand:sel)]) ifTrue:[^ true].
 
     ^ false "true".
 
@@ -21256,7 +21913,7 @@
 
 hasMetaMethodSelectedHolder
     ^ [ (self hasMethodSelected and:[self hasMetaSelected])
-	or:[self hasClassMethodsSelected ]]
+        or:[self hasClassMethodsSelected ]]
 !
 
 hasMetaSelected
@@ -21292,14 +21949,14 @@
 
 hasMethodSelectedAndCanUseRefactoringSupportHolder
     ^ [ self canUseRefactoringSupport
-	and:[self hasMethodSelected] ]
+        and:[self hasMethodSelected] ]
 
     "Created: / 4.2.2000 / 22:23:39 / cg"
 !
 
 hasMethodSelectedAndInstrumentingCompilerExistsAndOOMPackageLoadedHolder
     ^ [ self hasMethodSelectedAndInstrumentingCompilerExistsHolder value
-	and:[ OOM::MetricVisualizer notNil ]
+        and:[ OOM::MetricVisualizer notNil ]
       ]
 
     "Created: / 10-08-2010 / 14:42:18 / cg"
@@ -21339,8 +21996,8 @@
 
 hasMethodWithBreakPointSelected
     ^ self hasAnyMethodSelectedForWhich:[:m |
-		m isBreakpointed "/ method breakpoint
-		or:[ m isMethodWithBreakpoints ]]
+                m isBreakpointed "/ method breakpoint
+                or:[ m isMethodWithBreakpoints ]]
 
     "Modified: / 28-02-2012 / 16:23:11 / cg"
 !
@@ -21351,8 +22008,8 @@
 
 hasMethodWithSelfSendSelected
     ^ self hasAnyMethodSelectedForWhich:[:m |
-	m messagesSentToSelf notEmpty
-	or:[ m messagesSentToSuper notEmpty ]]
+        m messagesSentToSelf notEmpty
+        or:[ m messagesSentToSuper notEmpty ]]
 
     "Modified: / 28-02-2012 / 16:23:11 / cg"
 !
@@ -21494,8 +22151,8 @@
 
 hasNoMethodOrMixedWrapsSelectedHolder
     ^ [ self hasMethodSelected not
-	or:[ self hasBothMethodsWithBreakAndTraceSelected
-	or:[ self hasMethodWithWrapSelected not] ]]
+        or:[ self hasBothMethodsWithBreakAndTraceSelected
+        or:[ self hasMethodWithWrapSelected not] ]]
 !
 
 hasNoProjectSelectedHolder
@@ -21514,6 +22171,26 @@
     ^ self selectedVariables value size == 0
 !
 
+hasNonEmptyEnvironmentSelected
+    "Return true if some code is selected (class or sole methods), false
+     otherwise. Note that false is also returned if refactory browser
+     support is not available"
+
+    ^ self canUseRefactoringSupport and:[self selectedEnvironment isEmpty not]
+
+    "Created: / 02-04-2014 / 12:28:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 03-12-2014 / 11:33:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+hasNonEmptyEnvironmentSelectedHolder
+    hasNonEmptyEnvironmentSelectedHolder isNil ifTrue:[
+        hasNonEmptyEnvironmentSelectedHolder := false asValue
+    ].
+    ^ hasNonEmptyEnvironmentSelectedHolder
+
+    "Created: / 02-04-2014 / 12:25:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 hasNonMetaMethodSelectedHolder
     ^ [ self hasNonMetaSelected and:[self hasMethodSelected] ]
 !
@@ -21550,7 +22227,7 @@
 
 hasNonProjectDefinitionSelected
     ^ self selectedClassesValue
-	contains:[:cls | cls theNonMetaclass isProjectDefinition not]
+        contains:[:cls | cls theNonMetaclass isProjectDefinition not]
 
     "Created: / 10-08-2006 / 16:26:02 / cg"
     "Modified: / 13-10-2006 / 11:54:45 / cg"
@@ -21582,8 +22259,8 @@
     |holder|
 
     (holder := builder bindingAt:#hasNonTestCaseClassMethodWithoutArgsSelectedHolder) isNil ifTrue:[
-	holder := ValueHolder with:false.
-	builder aspectAt:#hasNonTestCaseClassMethodWithoutArgsSelectedHolder put: holder.
+        holder := ValueHolder with:false.
+        builder aspectAt:#hasNonTestCaseClassMethodWithoutArgsSelectedHolder put: holder.
     ].
     ^ holder
 
@@ -21624,37 +22301,37 @@
 !
 
 hasOnlyMethodsWithBreakPointSelected
-	|anyBreak anyWrap|
-
-	anyBreak := anyWrap := false.
-	self
-		selectedMethodsDo:[:aMethod |
-			aMethod isBreakpointed ifTrue:[
-				anyBreak := true
-			] ifFalse:[
-				aMethod isWrapped ifTrue:[
-					anyWrap := true
-				]
-			]
-		].
-	^ anyBreak and:[anyWrap not]
+        |anyBreak anyWrap|
+
+        anyBreak := anyWrap := false.
+        self
+                selectedMethodsDo:[:aMethod |
+                        aMethod isBreakpointed ifTrue:[
+                                anyBreak := true
+                        ] ifFalse:[
+                                aMethod isWrapped ifTrue:[
+                                        anyWrap := true
+                                ]
+                        ]
+                ].
+        ^ anyBreak and:[anyWrap not]
 !
 
 hasOnlyMethodsWithTracePointSelected
-	|anyBreak anyWrap|
-
-	anyBreak := anyWrap := false.
-	self
-		selectedMethodsDo:[:aMethod |
-			aMethod isBreakpointed ifTrue:[
-				anyBreak := true
-			] ifFalse:[
-				aMethod isWrapped ifTrue:[
-					anyWrap := true
-				]
-			]
-		].
-	^ anyWrap and:[anyBreak not]
+        |anyBreak anyWrap|
+
+        anyBreak := anyWrap := false.
+        self
+                selectedMethodsDo:[:aMethod |
+                        aMethod isBreakpointed ifTrue:[
+                                anyBreak := true
+                        ] ifFalse:[
+                                aMethod isWrapped ifTrue:[
+                                        anyWrap := true
+                                ]
+                        ]
+                ].
+        ^ anyWrap and:[anyBreak not]
 !
 
 hasPerforceRepositoryFor: package
@@ -21678,7 +22355,7 @@
 
 hasProjectDefinitionOrClassWithExtensionsSelectedAndSourceCodeManagerHolder
     ^ [ self hasSourceCodeManager
-	and:[ self hasProjectDefinitionSelected or:[self hasClassWithExtensionsSelected]]]
+        and:[ self hasProjectDefinitionSelected or:[self hasClassWithExtensionsSelected]]]
 
     "Created: / 12-09-2011 / 11:12:12 / cg"
 !
@@ -21701,13 +22378,17 @@
     "Created: / 10-08-2006 / 16:26:17 / cg"
 !
 
+hasProjectDefinitionSelectedHolder_and_isNotEmbeddedBrowserHolder
+    ^ [ self hasProjectDefinitionSelectedHolder value and:[self isEmbeddedBrowser not]]
+!
+
 hasProjectDefinitionWithAnyUnloadedClassSelected
     (self selectedClassesValue) do:[:cls |
-	cls isLoaded ifFalse:[^ true].
-	cls isProjectDefinition ifTrue:[
-	    cls hasAllExtensionsLoaded ifFalse:[^ true].
-	    cls hasAllClassesLoaded ifFalse:[^ true].
-	].
+        cls isLoaded ifFalse:[^ true].
+        cls isProjectDefinition ifTrue:[
+            cls hasAllExtensionsLoaded ifFalse:[^ true].
+            cls hasAllClassesLoaded ifFalse:[^ true].
+        ].
     ].
     ^ true
 
@@ -21738,6 +22419,10 @@
     "Created: / 4.2.2000 / 22:09:02 / cg"
 !
 
+hasProjectSelectedAndCanFileOutVSEHolder
+    ^ [ self hasProjectSelected and:[self canFileOutVSE] ]
+!
+
 hasProjectSelectedAndCanFileOutXMLHolder
     ^ [ self hasProjectSelected and:[self canFileOutXML] ]
 
@@ -21765,8 +22450,8 @@
 hasProjectSelectedAndMonticelloRepositoryExistsHolder
 
     ^[self hasProjectSelected and:
-	[(Smalltalk at: #MCRepositoryGroup) notNil and:
-	    [(Smalltalk at: #MCRepositoryGroup) default repositories size > 0]]]
+        [(Smalltalk at: #MCRepositoryGroup) notNil and:
+            [(Smalltalk at: #MCRepositoryGroup) default repositories size > 0]]]
 
     "Created: / 14-09-2010 / 22:37:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Created: / 24-07-2012 / 15:25:28 / cg"
@@ -21780,8 +22465,8 @@
 
 hasProjectSelectedAndSubversionRepositoryExistsHolder
     ^ [ self hasProjectSelected
-	    and:[self selectedProjects value size = 1
-		and:[self hasSubversionRepositoryFor: self selectedProjects value anyOne]]]
+            and:[self selectedProjects value size = 1
+                and:[self hasSubversionRepositoryFor: self selectedProjects value anyOne]]]
 
     "Created: / 31-03-2008 / 15:07:52 / janfrog"
     "Created: / 24-07-2012 / 15:24:13 / cg"
@@ -21821,21 +22506,21 @@
 
 hasRealExtensionMethodSelected
     ^ self hasAnyMethodSelectedForWhich:[:aMethod |
-		    |mPackage|
-
-		    mPackage := aMethod package.
-		    aMethod containingClass notNil
-		    and:[mPackage ~= aMethod containingClass package
-		    and:[mPackage ~= PackageId noProjectID]]
-		]
+                    |mPackage|
+
+                    mPackage := aMethod package.
+                    aMethod containingClass notNil
+                    and:[mPackage ~= aMethod containingClass package
+                    and:[mPackage ~= PackageId noProjectID]]
+                ]
 
     "Modified: / 28-02-2012 / 16:24:22 / cg"
 !
 
 hasRealExtensionMethodSelectedHolder
     ^ BlockValue
-	with:[:m | m and:[self hasRealExtensionMethodSelected]]
-	argument:(self hasMethodSelectedHolder)
+        with:[:m | m and:[self hasRealExtensionMethodSelected]]
+        argument:(self hasMethodSelectedHolder)
 
     "Modified: / 08-03-2007 / 23:00:45 / cg"
 !
@@ -21880,7 +22565,7 @@
 
 hasSelectedClassWithSuperclassHolder
     ^ [ self theSingleSelectedClass notNil
-	and:[self theSingleSelectedClass superclass notNil ]]
+        and:[self theSingleSelectedClass superclass notNil ]]
 
 !
 
@@ -21892,7 +22577,7 @@
 
 hasSelectionInCodeViewAndCanUseRefactoringSupportHolder
     ^ [ self canUseRefactoringSupport
-	and:[self hasSelectionInCodeView]
+        and:[self hasSelectionInCodeView]
       ]
 !
 
@@ -21937,7 +22622,7 @@
 
 hasSingleClassAndClassVariableSelectedAndCanUseRefactoringSupportHolder
     ^ [ self canUseRefactoringSupport
-	and:[self hasSingleClassAndClassVariableSelected] ]
+        and:[self hasSingleClassAndClassVariableSelected] ]
 
     "Created: / 4.2.2000 / 22:02:53 / cg"
 !
@@ -21954,7 +22639,7 @@
 
 hasSingleClassAndSingleVariableSelectedAndCanUseRefactoringSupportHolder
     ^ [ self canUseRefactoringSupport
-	and:[self hasSingleClassAndSingleVariableSelected] ]
+        and:[self hasSingleClassAndSingleVariableSelected] ]
 
     "Created: / 4.2.2000 / 22:02:53 / cg"
 !
@@ -21972,8 +22657,8 @@
 
 hasSingleClassAndVariableSelectedAndCanUseRefactoringSupportHolder
     ^ [ self canUseRefactoringSupport
-	and:[self hasSingleClassSelected
-	and:[self hasVariableSelectedInCodeViewOrVariableList]] ]
+        and:[self hasSingleClassSelected
+        and:[self hasVariableSelectedInCodeViewOrVariableList]] ]
 
     "Created: / 4.2.2000 / 22:02:53 / cg"
 !
@@ -22003,7 +22688,7 @@
 
 hasSingleClassSelectedAndCanUseRefactoringSupportHolder
     ^ [ self canUseRefactoringSupport
-	and:[self hasSingleClassSelected] ]
+        and:[self hasSingleClassSelected] ]
 
     "Created: / 4.2.2000 / 22:03:08 / cg"
 !
@@ -22095,7 +22780,7 @@
 
 hasSingleMethodSelectedAndCanUseRefactoringSupportHolder
     ^ [ self canUseRefactoringSupport
-	and:[self hasSingleMethodSelected]
+        and:[self hasSingleMethodSelected]
       ]
 
     "Created: / 4.2.2000 / 22:11:34 / cg"
@@ -22103,8 +22788,8 @@
 
 hasSingleMethodSelectedAndCodeModifiedHolder
     ^ [
-	self codeReallyModified
-	and:[self hasSingleMethodSelected]
+        self codeReallyModified
+        and:[self hasSingleMethodSelected]
       ]
 
     "Created: / 4.2.2000 / 22:11:34 / cg"
@@ -22117,7 +22802,7 @@
 
 hasSingleMethodSelectedAndSelectionInCodeViewAndCanUseRefactoringSupportHolder
     ^ [ self canUseRefactoringSupport
-	and:[self hasSingleMethodSelectedAndSelectionInCodeView ]
+        and:[self hasSingleMethodSelectedAndSelectionInCodeView ]
       ]
 !
 
@@ -22128,7 +22813,7 @@
 
 hasSingleMethodSelectedAndSelectionInCodeViewAndSingleSelectedMethodHasParameterAndCanUseRefactoringSupportHolder
     ^ [ self canUseRefactoringSupport
-	and:[self hasSingleMethodSelectedAndSelectionInCodeViewAndSingleSelectedMethodHasParameter]
+        and:[self hasSingleMethodSelectedAndSelectionInCodeViewAndSingleSelectedMethodHasParameter]
       ]
 !
 
@@ -22147,7 +22832,7 @@
 
 hasSingleMethodSelectedAndSingleSelectedMethodHasParameterAndCanUseRefactoringSupportHolder
     ^ [ self canUseRefactoringSupport
-	and:[self hasSingleMethodSelectedAndSingleSelectedMethodHasParameter]
+        and:[self hasSingleMethodSelectedAndSingleSelectedMethodHasParameter]
       ]
 !
 
@@ -22239,8 +22924,8 @@
 
 hasSingleRealProjectSelectedHolder
     ^ [ self hasSingleProjectSelected
-	and:[ self theSingleSelectedProject notNil
-	and:[ self theSingleSelectedProject string asPackageId isModuleId not ]]]
+        and:[ self theSingleSelectedProject notNil
+        and:[ self theSingleSelectedProject string asPackageId isModuleId not ]]]
 !
 
 hasSingleRealProtocolSelected
@@ -22271,8 +22956,8 @@
 
 hasSingleResourceMethodSelectedHolder
     ^ builder
-	valueAspectFor:#hasSingleResourceMethodSelectedHolder
-	computeInitialValueWith:[ self hasSingleResourceMethodSelected ]
+        valueAspectFor:#hasSingleResourceMethodSelectedHolder
+        computeInitialValueWith:[ self hasSingleResourceMethodSelected ]
 !
 
 hasSingleVariableSelected
@@ -22340,8 +23025,8 @@
     |holder|
 
     (holder := builder bindingAt:#hasStartableApplicationSelectedHolder) isNil ifTrue:[
-	holder := ValueHolder with:false.
-	builder aspectAt:#hasStartableApplicationSelectedHolder put: holder.
+        holder := ValueHolder with:false.
+        builder aspectAt:#hasStartableApplicationSelectedHolder put: holder.
     ].
     ^ holder
 !
@@ -22385,24 +23070,44 @@
     ^ [ self hasTemporaryVariableSelectedInCodeView ]
 !
 
+hasTestCaseClassesSelected
+    ^ self selectedClassesValue contains:[:cls | cls theNonMetaclass isTestCaseLike ].
+!
+
+hasTestCaseClassesSelectedHolder
+    ^ BlockValue
+        with:[:classes :methods | 
+            self hasTestCaseClassesSelected
+            or:[ self hasTestCaseMethodsSelected ].
+        ]
+        argument:self selectedClasses
+        argument:self selectedMethods
+
+    "/ ^ [ self hasTestCaseClassesSelected ]
+!
+
+hasTestCaseMethodsSelected
+    ^ self selectedMethodsValue contains:[:mthd | mthd mclass isTestCaseLike ].
+!
+
 hasUnassignedExtensionMethodSelected
     ^ self hasAnyMethodSelectedForWhich:[:aMethod |
-		    |mPackage mClass|
-
-		    mPackage := aMethod package.
-		    mClass := aMethod containingClass.
-		    mClass isNil or:[
-			mPackage ~= aMethod containingClass package
-			and:[mPackage = PackageId noProjectID]]
-	]
+                    |mPackage mClass|
+
+                    mPackage := aMethod package.
+                    mClass := aMethod containingClass.
+                    mClass isNil or:[
+                        mPackage ~= aMethod containingClass package
+                        and:[mPackage = PackageId noProjectID]]
+        ]
 
     "Modified: / 28-02-2012 / 16:24:32 / cg"
 !
 
 hasUnassignedExtensionMethodSelectedHolder
     ^ BlockValue
-	with:[:m | m and:[self hasUnassignedExtensionMethodSelected]]
-	argument:(self hasMethodSelectedHolder)
+        with:[:m | m and:[self hasUnassignedExtensionMethodSelected]]
+        argument:(self hasMethodSelectedHolder)
 
     "Modified: / 08-03-2007 / 23:00:47 / cg"
 !
@@ -22433,13 +23138,27 @@
     ^ manager hasUndoableOperations
 !
 
+hasUnloadedProjectSelected
+    ^ self hasProjectSelected
+    and:[ self selectedProjects value 
+            contains:[:p |
+                |defCls|
+
+                defCls := p asString string asPackageId projectDefinitionClass.
+                defCls notNil and:[defCls isFullyLoaded not]]]
+!
+
+hasUnloadedProjectSelectedHolder
+    ^ [ self hasUnloadedProjectSelected ]
+!
+
 hasUpdateMethodSelected
     ^ self hasMethodSelected
       and:[self hasOnlyMethodsSelectedForWhich:[:eachMethod | #(
-					    #'update:'
-					    #'update:with:'
-					    #'update:with:from:'
-				       ) includes:eachMethod selector ]]
+                                            #'update:'
+                                            #'update:with:'
+                                            #'update:with:from:'
+                                       ) includes:eachMethod selector ]]
 
     "Modified: / 28-02-2012 / 16:27:19 / cg"
 !
@@ -22453,9 +23172,9 @@
 hasUppercaseIdentifierSelectedInCodeView
     |s|
 
-    ^ self codeView hasSelection
-    and:[ (s := self codeView selectionAsString) isValidSmalltalkIdentifier ]
-    and:[ s isUppercaseFirst ]
+    ^ (self codeView hasSelection
+        and:[ (s := self codeView selectionAsString) isValidSmalltalkIdentifier ])
+        and:[ s isUppercaseFirst ]
 !
 
 hasUppercaseIdentifierSelectedInCodeViewHolder
@@ -22475,7 +23194,7 @@
 
 hasVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
     ^ [ self canUseRefactoringSupport
-	and:[self hasVariableSelectedInCodeViewOrVariableList] ]
+        and:[self hasVariableSelectedInCodeViewOrVariableList] ]
 !
 
 hasVariableSelectedInCodeViewOrVariableListHolder
@@ -22484,19 +23203,19 @@
 
 hasVariablesFromSingleClassSelectedAndCanUseRefactoringSupportHolder
     ^ [ self canUseRefactoringSupport
-	and:[self hasSingleClassSelected
-	and:[self hasVariableSelected
-	and:[
-	    |selClass classes|
-
-	    selClass := self theSingleSelectedClass theNonMetaClass.
-	    self showingClassVarsInVariableList ifFalse:[
-		classes := self selectedVariables value collect:[:nm | selClass whichClassDefinesInstVar:nm].
-	    ] ifTrue:[
-		classes := self selectedVariables value collect:[:nm | selClass whichClassDefinesClassVar:nm].
-	    ].
-	    classes asSet size == 1
-	]]]
+        and:[self hasSingleClassSelected
+        and:[self hasVariableSelected
+        and:[
+            |selClass classes|
+
+            selClass := self theSingleSelectedClass theNonMetaclass.
+            self showingClassVarsInVariableList ifFalse:[
+                classes := self selectedVariables value collect:[:nm | selClass whichClassDefinesInstVar:nm].
+            ] ifTrue:[
+                classes := self selectedVariables value collect:[:nm | selClass whichClassDefinesClassVar:nm].
+            ].
+            classes asSet size == 1
+        ]]]
     ]
 !
 
@@ -22527,7 +23246,7 @@
 isAnyOtherMetaclassPresent
     ^ self isJavaScriptMetaclassPresent
     or:[ self isPlsqlMetaclassPresent
-	or:[ self isHaskellModulePresent ]]
+        or:[ self isHaskellModulePresent ]]
 !
 
 isHaskellModulePresent
@@ -22568,7 +23287,7 @@
 
 isMethodListBrowserOrHasMultipleClassesSelectedHolder
     ^ [navigationState isMethodListBrowser
-	or:[self selectedClassesValue size > 1] ]
+        or:[self selectedClassesValue size > 1] ]
 
     "Created: / 04-02-2000 / 22:23:39 / cg"
 !
@@ -22589,9 +23308,9 @@
     rubyParser      := Smalltalk classNamed:#'Ruby::Parser'.
 
     ^ (rubyMetaclass notNil
-	and:[rubyMetaclass isLoaded])
-	    and:[rubyParser notNil
-		and:[rubyParser isLoaded]]
+        and:[rubyMetaclass isLoaded])
+            and:[rubyParser notNil
+                and:[rubyParser isLoaded]]
 
     "Created: / 11-08-2009 / 16:06:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
 !
@@ -22618,14 +23337,14 @@
 
 methodIsSubclassResponsibility
     self selectedMethodsDo:[:eachMethod |
-	(eachMethod sends:#subclassResponsibility) ifTrue:[^ true].
+        (eachMethod sends:#subclassResponsibility) ifTrue:[^ true].
     ].
     ^ false.
 !
 
 methodIsTestAndNotImplementedInSuperclass
     self selectedMethodsDo:[:eachMethod |
-	(eachMethod mclass notNil and:[eachMethod selector startsWith:'is']) ifFalse:[^ false].
+        (eachMethod mclass notNil and:[eachMethod selector startsWith:'is']) ifFalse:[^ false].
     ].
     ^ self methodNotImplementedInSuperclass
 
@@ -22641,7 +23360,7 @@
     selector := selector asSymbol.
 
     self selectedClassesDo:[:eachClass |
-	(eachClass includesSelector:selector) ifTrue:[^ false].
+        (eachClass includesSelector:selector) ifTrue:[^ false].
     ].
     ^ true.
 !
@@ -22649,16 +23368,16 @@
 methodNotImplementedInSuperclass
 
     self selectedMethodsDo:[:eachMethod |
-	|selector category mclass|
-
-	selector := eachMethod selector.
-	category := eachMethod category.
-	mclass := eachMethod mclass.
-	mclass notNil ifTrue:[
-	    mclass superclass notNil ifTrue:[
-		(mclass superclass includesSelector:selector) ifFalse:[^ true].
-	    ]
-	].
+        |selector category mclass|
+
+        selector := eachMethod selector.
+        category := eachMethod category.
+        mclass := eachMethod mclass.
+        mclass notNil ifTrue:[
+            mclass superclass notNil ifTrue:[
+                (mclass superclass includesSelector:selector) ifFalse:[^ true].
+            ]
+        ].
     ].
     ^ false.
 !
@@ -22725,6 +23444,57 @@
     ^ UserPreferences current useSearchBarInBrowser or:[self codeView searchBarActionBlock notNil]
 ! !
 
+!NewSystemBrowser methodsFor:'binding access'!
+
+menuFor:key
+    "Sent by the builder to ask for an application provided
+     holder for a menu. The argument, `key`, comes from an UI-spec
+     for a widgets #menu property.
+     Here, a corresponding message is sent to myself,
+     which ought to be defined in the application subclass.
+     Alternatively, a subclass may redefine this method, to provide
+     holders from a Dictionary or whatever.
+     Typically, a menu or a menu-holding valueHolder is returned there."
+
+    | menu |
+
+    key isNil ifTrue:[ self error:'nil menu key' ].
+
+    "/ Ask myself first...
+    (thisContext isRecursive not and:[ self respondsTo: key ]) ifTrue:[
+        menu := self perform: key
+    ] ifFalse:[
+        "/ Ask my class...
+        (self class respondsTo: key) ifTrue:[
+            menu := self class perform: key
+        ] ifFalse:[
+            "/ Ask masterApplication if any...
+            masterApplication notNil ifTrue:[
+                menu masterApplication menuFor: key
+            ].
+        ].
+    ].
+
+    "/ If the provided menu is a menu spec, create Menu from it...
+    menu isArray ifTrue:[
+        menu :=  Menu decodeFromLiteralArray: menu.
+    ].
+"/    ^ menu.
+"/  ============== Above should be later on moved to ApplicationModel =========
+"/  ============== and here replace by super menuFor: key =====================
+"/  ===========================================================================
+
+    thisContext isRecursive ifFalse:[
+        self menuExtendersFor: key do:[:each |
+            self perform: each with: menu
+        ].
+    ].
+
+    ^ menu
+
+    "Modified: / 18-06-1998 / 20:33:56 / cg"
+    "Modified (comment): / 27-08-2014 / 00:26:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
 
 !NewSystemBrowser methodsFor:'change & update'!
 
@@ -22734,8 +23504,10 @@
     self enqueueDelayedUpdateBufferLabel.
     self updateSpecialCodeEditorVisibility.
     self normalLabel.      "/ update my window label
-
-    "Created: / 24.2.2000 / 22:01:46 / cg"
+    self updateLintEnablement.
+
+    "Created: / 24-02-2000 / 22:01:46 / cg"
+    "Modified: / 02-04-2014 / 12:33:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 classReselected
@@ -22755,12 +23527,12 @@
     "/ self classWizardVisibleHolder value:(selectedClasses size == 0).
 
     (navigationState isClassDocumentationBrowser) ifTrue:[
-	"/ kludge - docBrowser can only show one single class
-	selectedClasses size > 1 ifTrue:[
-	    selectedClassesHolder value:(Array with:selectedClasses first).
-	    self enqueueDelayedUpdateBufferLabel.
-	    ^ self.
-	]
+        "/ kludge - docBrowser can only show one single class
+        selectedClasses size > 1 ifTrue:[
+            selectedClassesHolder value:(Array with:selectedClasses first).
+            self enqueueDelayedUpdateBufferLabel.
+            ^ self.
+        ]
     ].
 
 "/    selectedClasses size == 1 ifTrue:[
@@ -22768,7 +23540,7 @@
 "/    ].
 
     navigationState isVersionDiffBrowser ifFalse:[
-	self class addToHistory:(self theSingleSelectedClass) selector:nil.
+        self class addToHistory:(self theSingleSelectedClass) selector:nil.
     ].
 
     self enqueueDelayedClassSelectionChange.
@@ -22783,12 +23555,13 @@
     "/ when the next class is selected
 
     (mc := self methodCategoryListApp) notNil ifTrue:[
-	mc clearLastSelectedProtocol
+        mc clearLastSelectedProtocol
     ]
 !
 
 delayedCheckReallyModified
-    self reallyModified:(self navigationState)
+    self reallyModified:(self navigationState).
+    self updateBufferLabel.
 !
 
 delayedClassSelectionChange
@@ -22804,22 +23577,24 @@
     self updateLaunchApplicationVisibility.
     self updateTextEditorBehavior.
     "/ self delayedUpdateCode.
+    self updateLintEnablement.
 
     "Modified: / 01-06-2012 / 23:01:52 / cg"
+    "Modified: / 02-04-2014 / 12:29:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 delayedExplainSelection
     |codeView|
 
     self synchronousUpdate == true ifFalse:[
-	self windowGroup sensor hasUserEvents ifTrue:[
-	    "/ re-enqueue at the end to delay until all user input has been handled
-	    self
-		enqueueMessage:#delayedExplainSelection
-		for:self
-		arguments:#().
-	    ^ self
-	].
+        self windowGroup sensor hasUserEvents ifTrue:[
+            "/ re-enqueue at the end to delay until all user input has been handled
+            self
+                enqueueMessage:#delayedExplainSelection
+                for:self
+                arguments:#().
+            ^ self
+        ].
     ].
 
     self clearInfo.
@@ -22845,18 +23620,18 @@
     self hasMethodWithBreakPointSelectedHolder value:(self hasMethodWithBreakPointSelected).
 
     (codeView := self codeView) isCodeView2 ifTrue:[
-	mthd := self theSingleSelectedMethod.
-	mthd == codeView method ifTrue:[
-	    mthd notNil ifTrue:[
-		"/ would not send an update notification
-		codeView updateGutter
-	    ]
-	] ifFalse:[
-	    codeView method notNil ifTrue:[
-		"/ will send update notification to services
-		codeView method:mthd.
-	    ].
-	]
+        mthd := self theSingleSelectedMethod.
+        mthd == codeView method ifTrue:[
+            mthd notNil ifTrue:[
+                "/ would not send an update notification
+                codeView updateGutter
+            ]
+        ] ifFalse:[
+            codeView method notNil ifTrue:[
+                "/ will send update notification to services
+                codeView method:mthd.
+            ].
+        ]
     ].
 
     "Modified: / 22-07-2013 / 13:35:47 / cg"
@@ -22875,9 +23650,9 @@
     "/ dont update codeView, as long as no protocol is selected
     ((codeAspect := self codeAspect) == #repositoryLog
     or:[codeAspect == #repositoryHistory]) ifTrue:[
-	self selectedMethodsValue size == 0 ifTrue:[
-	    ^ self
-	]
+        self selectedMethodsValue size == 0 ifTrue:[
+            ^ self
+        ]
     ].
 
     self enqueueDelayedUpdateCodeWithAutoSearch.
@@ -22889,23 +23664,27 @@
 
     process := methodInfoProcess.
     process notNil ifTrue:[
-	process terminate.
-	process := nil.
+        process terminate.
+        process := nil.
     ].
     methodInfoProcess := [ self asyncShowMethodInfo. methodInfoProcess := nil. ] fork.
+    self updateLintEnablement.
 
     "Modified: / 28-02-2012 / 16:15:54 / cg"
+    "Modified: / 02-04-2014 / 12:29:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 delayedProtocolSelectionChanged
     (ShowMethodTemplateWhenProtocolIsSelected == true
-	or:[ self codeAspect ~~ SyntaxHighlighter codeAspectClassDefinition
-	or:[ navigationState methodList size == 0 ]])
+        or:[ self codeAspect ~~ SyntaxHighlighter codeAspectClassDefinition
+        or:[ navigationState methodList size == 0 ]])
     ifTrue:[
-	self enqueueDelayedUpdateCode
-    ]
+        self enqueueDelayedUpdateCode
+    ].
+    self updateLintEnablement.
 
     "Modified: / 27-07-2012 / 22:24:56 / cg"
+    "Modified: / 02-04-2014 / 12:30:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 delayedUpdateCode
@@ -22919,165 +23698,165 @@
 !
 
 delayedUpdateCodeWithAutoSearch:withAutoSearch checkModified:checkModified
-    |methods mthd selectedClass protocol
-     codeView code filteredVariables searchAction searchPattern doShowMethodTemplate|
+    |methods mthd selectedClass protocol package projectDef
+     codeView code filteredVariables
+     searchAction searchPattern doShowMethodTemplate|
 
     self enqueueDelayedUpdateBufferLabel.
 
     navigationState isClassDocumentationBrowser ifTrue:[
-	"/ show classes documentation
-	self showClassDocumentation.
-	^ self.
+        "/ show classes documentation
+        self showClassDocumentation.
+        ^ self.
     ].
     navigationState isVersionDiffBrowser ifTrue:[
-	"/ show version differences
-	self showVersionDiff.
-	^ self.
+        "/ show version differences
+        self showVersionDiff.
+        ^ self.
     ].
 
     codeView := self codeView.
 
     checkModified ifTrue:[
-	((codeView notNil and:[codeView modified])
-	or:[navigationState modified])
-	ifTrue:[
-	    "/ recheck against the code (could have been unedited)
-	    (self reallyModified:navigationState) ifTrue:[
-		"/ do not overwrite the user's modifications;
-		"/ instead, flash and show the code all-red
-		"/ (to tell user, that she is possibly editing obsolete code)
+        ((codeView notNil and:[codeView modified])
+        or:[navigationState modified])
+        ifTrue:[
+            "/ recheck against the code (could have been unedited)
+            (self reallyModified:navigationState) ifTrue:[
+                "/ do not overwrite the user's modifications;
+                "/ instead, flash and show the code all-red
+                "/ (to tell user, that she is possibly editing obsolete code)
 "/                self codeHolder
 "/                    value:(codeView contentsAsString asText
 "/                                            emphasizeAllWith:(UserPreferences current emphasisForObsoleteCode)).
 "/                self codeHolder changed:#value.
-		codeView flash.
-		^ self.
-	    ]
-	].
+                codeView flash.
+                ^ self.
+            ]
+        ].
     ].
 
     navigationState isFullClassSourceBrowser ifTrue:[
-	"/ show full classes source - set accept action for fileIn
-	self showFullClassSource.
-	^ self.
+        "/ show full classes source - set accept action for fileIn
+        self showFullClassSource.
+        ^ self.
     ].
 
     "/ show method, or class definition
 
     methods := self selectedMethodsValue.
     methods size == 1 ifTrue:[
-	mthd := methods first.
+        mthd := methods first.
     ].
 
     mthd notNil ifTrue:[
-	"/ show methods source - set accept action to compile that single method
-	self setAcceptActionForMethod.
-	self showMethodsCode:mthd.
-
-	"/ if there is a variable filter,
-	"/ set the autoSearch for it
-	(navigationState isMethodListBrowser
-	or:[navigationState isFullProtocolBrowser
-	or:[navigationState isMethodBrowser]]) ifFalse:[
-	    filteredVariables := self variableFilter value.
-	    filteredVariables size > 0 ifTrue:[
-		self searchVariables:filteredVariables readers:true writers:true asAutoSearch:false.
-		"/ codeView notNil ifTrue:[codeView searchFwd]
-	    ] ifFalse:[
-		self autoSearchPattern:nil
-	    ].
-	].
-    ] ifFalse:[
-	self updatePackageInfoForMethod:nil.
-
-	protocol := self theSingleSelectedProtocol.
-	(protocol isNil or:[protocol = BrowserList nameListEntryForALL]) ifTrue:[
-	    doShowMethodTemplate := false
-	] ifFalse:[
-	    navigationState showMethodTemplate ifTrue:[
-		doShowMethodTemplate := self showMethodTemplate value
+        "/ show methods source - set accept action to compile that single method
+        self setAcceptActionForMethod.
+        self showMethodsCode:mthd.
+
+        "/ if there is a variable filter,
+        "/ set the autoSearch for it
+        (navigationState isMethodListBrowser
+        or:[navigationState isFullProtocolBrowser
+        or:[navigationState isMethodBrowser]]) ifFalse:[
+            filteredVariables := self variableFilter value.
+            filteredVariables size > 0 ifTrue:[
+                self searchVariables:filteredVariables readers:true writers:true asAutoSearch:false.
+                "/ codeView notNil ifTrue:[codeView searchFwd]
+            ] ifFalse:[
+                self autoSearchPattern:nil
+            ].
+        ].
+    ] ifFalse:[
+        self updatePackageInfoForMethod:nil.
+
+        protocol := self theSingleSelectedProtocol.
+        (protocol isNil or:[protocol = BrowserList nameListEntryForALL]) ifTrue:[
+            doShowMethodTemplate := false
+        ] ifFalse:[
+            navigationState showMethodTemplate ifTrue:[
+                doShowMethodTemplate := self showMethodTemplate value
 "/                                    and:[ShowMethodTemplateWhenProtocolIsSelected == true
 "/                                         or:[ navigationState methodList size == 0 ]].
-	    ]
-	].
-	doShowMethodTemplate ifTrue:[
-	    methods size > 1 ifTrue:[
-		code := nil.
-	    ] ifFalse:[
-		code := self methodTemplate.
-	    ].
-	    self setAcceptActionForMethod.
-	    self codeAspect:SyntaxHighlighter codeAspectMethod.
-	    self showCode:code.
-	] ifFalse:[
-	    self hasProtocolSelected ifTrue:[
-		self showCode:''.
-		self setAcceptActionForMethod.
-		self codeAspect:SyntaxHighlighter codeAspectMethod.
-	    ] ifFalse:[
-		selectedClass := self theSingleSelectedClass.
-		selectedClass notNil ifTrue:[
-		    self showClassAspect:(self codeAspect) forClass:selectedClass.
-		] ifFalse:[
-"/                    self organizerMode value == OrganizerCanvas organizerModeProject ifTrue:[
-"/                        package := self theSingleSelectedProject.
-"/                        package notNil ifTrue:[
-"/                            project := Project projectWithId:package.
-"/                            project notNil ifTrue:[
-"/                                code := project comment
-"/                            ].
-"/                        ].
-"/                        self showCode:code ? ''.
+            ]
+        ].
+        doShowMethodTemplate ifTrue:[
+            methods size > 1 ifTrue:[
+                code := nil.
+            ] ifFalse:[
+                code := self methodTemplate.
+            ].
+            self setAcceptActionForMethod.
+            self codeAspect:SyntaxHighlighter codeAspectMethod.
+            self showCode:code.
+        ] ifFalse:[
+            self hasProtocolSelected ifTrue:[
+                self showCode:''.
+                self setAcceptActionForMethod.
+                self codeAspect:SyntaxHighlighter codeAspectMethod.
+            ] ifFalse:[
+                selectedClass := self theSingleSelectedClass.
+                selectedClass notNil ifTrue:[
+                    self showClassAspect:(self codeAspect) forClass:selectedClass.
+                ] ifFalse:[
+                    (package := self theSingleSelectedProject) notNil ifTrue:[
+                        projectDef := package string asPackageId projectDefinitionClass.
+                        projectDef notNil ifTrue:[
+                            code := projectDef commentOrDocumentationString.
+                        ].
+                        self showCode:code ? ''.
+                        self codeAspect:nil.
 "/                        self setAcceptActionForProjectComment.
-"/                    ] ifFalse:[
-			self showCode:code ? ''.
-			self setAcceptActionForClass.
-"/                    ]
-		]
-	    ]
-	]
+                    ] ifFalse:[
+                        "/ really nothing selected
+                        self showCode:code ? ''.
+                        self setAcceptActionForClass.
+                    ]
+                ]
+            ]
+        ]
     ].
     self updateSpecialCodeEditorVisibility.
 
     codeView notNil ifTrue:[
-	"/ perform an auto-search, unless the user did some other search
-	"/ in the meanwhile (i.e. the codeViews searchPattern is different from the autoSearchPattern)
-	withAutoSearch ifTrue:[
-	    codeView numberOfLines > 0 ifTrue:[
-		searchAction := navigationState autoSearchAction.
-		searchAction notNil ifTrue:[
-		    true "codeView searchAction isNil" ifTrue:[
-			true "codeView searchPattern isNil" ifTrue:[
-			    codeView
-				cursorHome;
-				searchAction:searchAction;
-				searchUsingSearchAction:#forward ifAbsent:nil.
-
-			  "/ The searchAction is mantained until a cut/replace or a search with a user selection is done
+        "/ perform an auto-search, unless the user did some other search
+        "/ in the meanwhile (i.e. the codeViews searchPattern is different from the autoSearchPattern)
+        withAutoSearch ifTrue:[
+            codeView numberOfLines > 0 ifTrue:[
+                searchAction := navigationState autoSearchAction.
+                searchAction notNil ifTrue:[
+                    true "codeView searchAction isNil" ifTrue:[
+                        true "codeView searchPattern isNil" ifTrue:[
+                            codeView
+                                cursorHome;
+                                searchAction:searchAction;
+                                searchUsingSearchAction:#forward ifAbsent:nil.
+
+                          "/ The searchAction is mantained until a cut/replace or a search with a user selection is done
 "/                          codeView clearSearchAction.
-			]
+                        ]
 "/                    ] ifFalse:[
 "/                        codeView
 "/                            cursorHome;
 "/                            searchUsingSearchAction:#forward ifAbsent:nil
-		    ].
-		] ifFalse:[
-		    searchPattern := navigationState autoSearchPattern.
-		    searchPattern notNil ifTrue:[
-			searchPattern = codeView searchPattern ifTrue:[
-			    codeView
-				cursorHome;
-				cursorRight; "/ to avoid finding the selector
-				searchFwd:searchPattern
-				    ignoreCase:(navigationState autoSearchIgnoreCase)
-				    ifAbsent:[codeView cursorHome].
-			].
-		    ].
-		].
-	    ].
-	] ifFalse:[
-	    codeView clearSearchAction.
-	].
+                    ].
+                ] ifFalse:[
+                    searchPattern := navigationState autoSearchPattern.
+                    searchPattern notNil ifTrue:[
+                        searchPattern = codeView searchPattern ifTrue:[
+                            codeView
+                                cursorHome;
+                                cursorRight; "/ to avoid finding the selector
+                                searchFwd:searchPattern
+                                    ignoreCase:(navigationState autoSearchIgnoreCase)
+                                    ifAbsent:[codeView cursorHome].
+                        ].
+                    ].
+                ].
+            ].
+        ] ifFalse:[
+            codeView clearSearchAction.
+        ].
     ].
 
     navigationState modified:false.
@@ -23086,130 +23865,138 @@
 
     "Created: / 29-08-2006 / 13:59:06 / cg"
     "Modified: / 27-07-2012 / 22:20:42 / cg"
-    "Modified: / 10-09-2013 / 04:35:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 23-07-2014 / 12:03:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 delayedVariableSelectionChanged
-    |var val mclass cls|
+    |var val mclass cls codeView|
+
+    self filterClassVars value:(self showingClassVarsInVariableList).
 
     var := self theSingleSelectedVariable.
-    self codeView isCodeView2 ifTrue:[
-	self codeView highlightInstanceVariable:var.
+    (codeView := self codeView) isCodeView2 ifTrue:[
+        self showingClassVarsInVariableList ifTrue:[
+            codeView highlightClassVariable:var.
+        ] ifFalse:[
+            codeView highlightInstanceVariable:var.
+        ].
     ].
 
     var isNil ifTrue:[
-	navigationState autoSearchAction:nil.
-	^ self
-    ].
-
-    self selectedNonMetaclassesDo:[:eachClass |
-	|cls|
-
-	cls := eachClass whichClassDefinesClassVar:var.
-	cls notNil ifTrue:[
-	    val := cls classVarAt:var asSymbol.
-	    self showClassVarInfoFor:var in:cls value:val.
-	    ^ self
-	].
-    ].
-
-    mclass := self classOfSelectedMethodOrSelectedClass.
-    mclass isNil ifTrue:[^ self].
-
-    cls := mclass theNonMetaclass whichClassDefinesClassVar:var.
-    cls notNil ifTrue:[
-	val := cls classVarAt:var asSymbol.
-	self showClassVarInfoFor:var in:cls value:val.
-    ]
+        navigationState autoSearchAction:nil.
+        ^ self
+    ].
+
+    self showingClassVarsInVariableList ifTrue:[
+        self selectedNonMetaclassesDo:[:eachClass |
+            |cls|
+
+            cls := eachClass whichClassDefinesClassVar:var.
+            cls notNil ifTrue:[
+                val := cls classVarAt:var asSymbol.
+                self showClassVarInfoFor:var in:cls value:val.
+                ^ self
+            ].
+        ].
+
+        mclass := self classOfSelectedMethodOrSelectedClass.
+        mclass isNil ifTrue:[^ self].
+
+        cls := mclass theNonMetaclass whichClassDefinesClassVar:var.
+        cls notNil ifTrue:[
+            val := cls classVarAt:var asSymbol.
+            self showClassVarInfoFor:var in:cls value:val.
+        ]
+    ].
 
     "Modified: / 12-09-2006 / 13:56:20 / cg"
 !
 
 enqueueDelayedCheckReallyModified
     ^ self
-	enqueueMessage:#delayedCheckReallyModified
-	for:self
-	arguments:#()
+        enqueueMessage:#delayedCheckReallyModified
+        for:self
+        arguments:#()
 
     "Modified: / 26.2.2000 / 18:01:49 / cg"
 !
 
 enqueueDelayedClassSelectionChange
     ^ self
-	enqueueMessage:#delayedClassSelectionChange
-	for:self
-	arguments:#()
+        enqueueMessage:#delayedClassSelectionChange
+        for:self
+        arguments:#()
 
     "Modified: / 26.2.2000 / 18:01:49 / cg"
 !
 
 enqueueDelayedLabelUpdate
     ^ self
-	enqueueMessage:#delayedLabelUpdate
-	for:self
-	arguments:#()
+        enqueueMessage:#delayedLabelUpdate
+        for:self
+        arguments:#()
 
     "Modified: / 26.2.2000 / 18:01:49 / cg"
 !
 
 enqueueDelayedMethodTrapChanged
     ^ self
-	enqueueMessage:#delayedMethodTrapChanged
-	for:self
-	arguments:#()
+        enqueueMessage:#delayedMethodTrapChanged
+        for:self
+        arguments:#()
 !
 
 enqueueDelayedMethodTrapChanged:aMethod
     ^ self
-	enqueueMessage:#delayedMethodTrapChanged:
-	for:self
-	arguments:(Array with:aMethod)
+        enqueueMessage:#delayedMethodTrapChanged:
+        for:self
+        arguments:(Array with:aMethod)
 !
 
 enqueueDelayedMethodsSelectionChanged
     ^ self
-	enqueueMessage:#delayedMethodsSelectionChanged
-	for:self
-	arguments:#()
+        enqueueMessage:#delayedMethodsSelectionChanged
+        for:self
+        arguments:#()
 !
 
 enqueueDelayedProtocolSelectionChanged
     ^ self
-	enqueueMessage:#delayedProtocolSelectionChanged
-	for:self
-	arguments:#()
+        enqueueMessage:#delayedProtocolSelectionChanged
+        for:self
+        arguments:#()
 !
 
 enqueueDelayedStartSyntaxHighlightProcess
     ^ self
-	enqueueMessage:#startSyntaxHighlightProcess
-	for:self
-	arguments:#()
+        enqueueMessage:#startSyntaxHighlightProcess
+        for:self
+        arguments:#()
 !
 
 enqueueDelayedUpdateBufferLabel
     ^ self
-	enqueueMessage:#delayedUpdateBufferLabel
-	for:self
-	arguments:#()
+        enqueueMessage:#delayedUpdateBufferLabel
+        for:self
+        arguments:#()
 
     "Modified: / 26.2.2000 / 18:01:49 / cg"
 !
 
 enqueueDelayedUpdateBufferLabelWithCheckIfModified
     ^ self
-	enqueueMessage:#delayedUpdateBufferLabelWithCheckIfModified
-	for:self
-	arguments:#()
+        enqueueMessage:#delayedUpdateBufferLabelWithCheckIfModified
+        for:self
+        arguments:#()
 
     "Modified: / 26.2.2000 / 18:01:49 / cg"
 !
 
 enqueueDelayedUpdateCode
     ^ self
-	enqueueMessage:#delayedUpdateCode
-	for:self
-	arguments:#()
+        enqueueMessage:#delayedUpdateCode
+        for:self
+        arguments:#()
 
     "Modified: / 06-09-2006 / 19:07:15 / cg"
 !
@@ -23217,9 +24004,9 @@
 enqueueDelayedUpdateCodeWithAutoSearch
 "/ ^ self delayedUpdateCodeWithAutoSearch:true.
     ^ self
-	enqueueMessage:#delayedUpdateCodeWithAutoSearch:
-	for:self
-	arguments:#( true )
+        enqueueMessage:#delayedUpdateCodeWithAutoSearch:
+        for:self
+        arguments:#( true )
 
     "Modified: / 06-09-2006 / 19:07:10 / cg"
 !
@@ -23228,27 +24015,27 @@
 ^ self delayedUpdateCodeWithAutoSearch:false.
 
     ^ self
-	enqueueMessage:#delayedUpdateCodeWithAutoSearch:
-	for:self
-	arguments:#( false )
+        enqueueMessage:#delayedUpdateCodeWithAutoSearch:
+        for:self
+        arguments:#( false )
 
     "Modified: / 06-09-2006 / 19:07:00 / cg"
 !
 
 enqueueDelayedUpdateExecuteMethodVisibility
     ^ self
-	enqueueMessage:#updateExecuteMethodVisibility
-	for:self
-	arguments:#()
+        enqueueMessage:#updateExecuteMethodVisibility
+        for:self
+        arguments:#()
 
     "Modified: / 26.2.2000 / 18:01:49 / cg"
 !
 
 enqueueDelayedUpdateInitSharedPoolVisibility
     ^ self
-	enqueueMessage:#updateInitSharedPoolVisibility
-	for:self
-	arguments:#()
+        enqueueMessage:#updateInitSharedPoolVisibility
+        for:self
+        arguments:#()
 
     "Modified: / 26-02-2000 / 18:01:49 / cg"
     "Created: / 29-05-2012 / 10:26:41 / cg"
@@ -23256,32 +24043,48 @@
 
 enqueueDelayedUpdateTestRunnerVisibility
     ^ self
-	enqueueMessage:#updateTestRunnerVisibility
-	for:self
-	arguments:#()
+        enqueueMessage:#updateTestRunnerVisibility
+        for:self
+        arguments:#()
 
     "Modified: / 26.2.2000 / 18:01:49 / cg"
 !
 
 enqueueDelayedVariableSelectionChanged
     ^ self
-	enqueueMessage:#delayedVariableSelectionChanged
-	for:self
-	arguments:#()
+        enqueueMessage:#delayedVariableSelectionChanged
+        for:self
+        arguments:#()
 !
 
 enqueueMessage:selector for:someone arguments:argList
 "/ Transcript show:'enqueue '; showCR:selector.
     self synchronousUpdate == true ifTrue:[
-	someone perform:selector withArguments:argList.
-	^ self
+        someone perform:selector withArguments:argList.
+        ^ self
     ].
     ^ super enqueueMessage:selector for:someone arguments:argList
 !
 
+environmentChanged
+    "My environment has changed. Update cached environment value.
+     Subclasses may need to override and invalidate it's contents."
+
+    | env |
+
+    env := environmentHolder value.
+    environment notNil ifTrue:[ environment removeDependent: self ].
+    environment := env.
+    environment notNil ifTrue:[ environment addDependent: self ].
+    self updateLintEnablement.
+
+    "Created: / 24-02-2014 / 10:18:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 02-04-2014 / 12:30:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 methodsSelectionChanged
     (self theSingleSelectedMethod) notNil ifTrue:[
-	self rememberLocationInHistory
+        self rememberLocationInHistory
     ].
     self enqueueDelayedMethodsSelectionChanged.
 !
@@ -23313,41 +24116,41 @@
     selectedMethods := selectedMethods select:[:m | m selector notNil].
 
     selectedMethods isEmpty ifTrue:[
-	generator := #().
-	selectedMethods := #().
-    ] ifFalse:[
-	"/ fetch the searchBlock - what a tricky kludge (no, really this should be done different)
-	myGenerator := (navigationState selectorListGeneratorArrayAt:index) value.
-	myGeneratorsHome := myGenerator block methodHome.
-	mySearchBlock := myGeneratorsHome at:(myGeneratorsHome numArgs + 1).
-	mySearchBlock isBlock ifFalse:[
-	    mySearchBlock := myGeneratorsHome at:(myGeneratorsHome numArgs + 2)
-	].
-
-	generator := Iterator on:[:whatToDo |
-				    |theMethodList|
-
-				    theMethodList := IdentitySet new.
-				    self withWaitCursorDo:[
-					selectedMethods do:[:selectedMethod |
-					    theMethodList addAll:(mySearchBlock value:selectedMethod).
-					]
-				    ].
-				    theMethodList do:[:aMethod |
-					whatToDo
-					    value:aMethod mclass
-					    value:aMethod category
-					    value:aMethod selector
-					    value:aMethod.
-				    ].
-				    "/ theMethodList size == 1 ifTrue:[
-					whatToDo
-					    value:nil
-					    value:nil
-					    value:nil
-					    value:nil.
-				    "/ ].
-			      ].
+        generator := #().
+        selectedMethods := #().
+    ] ifFalse:[
+        "/ fetch the searchBlock - what a tricky kludge (no, really this should be done different)
+        myGenerator := (navigationState selectorListGeneratorArrayAt:index) value.
+        myGeneratorsHome := myGenerator block methodHome.
+        mySearchBlock := myGeneratorsHome at:(myGeneratorsHome numArgs + 1).
+        mySearchBlock isBlock ifFalse:[
+            mySearchBlock := myGeneratorsHome at:(myGeneratorsHome numArgs + 2)
+        ].
+
+        generator := Iterator on:[:whatToDo |
+                                    |theMethodList|
+
+                                    theMethodList := IdentitySet new.
+                                    self withWaitCursorDo:[
+                                        selectedMethods do:[:selectedMethod |
+                                            theMethodList addAll:(mySearchBlock value:selectedMethod).
+                                        ]
+                                    ].
+                                    theMethodList do:[:aMethod |
+                                        whatToDo
+                                            value:aMethod mclass
+                                            value:aMethod category
+                                            value:aMethod selector
+                                            value:aMethod.
+                                    ].
+                                    "/ theMethodList size == 1 ifTrue:[
+                                        whatToDo
+                                            value:nil
+                                            value:nil
+                                            value:nil
+                                            value:nil.
+                                    "/ ].
+                              ].
     ].
 
     "/ the selection used in the other code...
@@ -23355,7 +24158,7 @@
     self methodsSelectionChanged.
 
     index+1 to:4 do:[:i |
-	(navigationState selectorListGeneratorArrayAt:i) value:#().
+        (navigationState selectorListGeneratorArrayAt:i) value:#().
     ].
     (navigationState selectorListGeneratorArrayAt:(index+1)) value:generator.
 !
@@ -23366,34 +24169,30 @@
     self enqueueDelayedUpdateBufferLabel.
     self updateSpecialCodeEditorVisibility.
     self normalLabel.      "/ update my window label
-
-    "Created: / 24.2.2000 / 22:02:01 / cg"
+    self updateLintEnablement.
+
+    "Created: / 24-02-2000 / 22:02:01 / cg"
+    "Modified: / 02-04-2014 / 12:31:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 projectSelectionChanged
     "project selection changed by user interaction"
 
-"/    self enqueueDelayedUpdateCode.
+    self enqueueDelayedUpdateCode.
     self normalLabel.      "/ update my window label
     self updateSpecialCodeEditorVisibility.
 
     "/ force update for packageFilter
     "/ (must do it, since packageFilter is a vHolder
     "/  holding a vHolder - i.e. it did not change yet)
-"/    self packageFilter changed.
-
-"/    self organizerMode == OrganizerCanvas organizerModeProject ifTrue:[
-
-      self packageFilter setValue:(self selectedProjects value).
-      self packageFilter changed.
-"/    ] ifFalse:[
-"/        self packageFilter value:nil
-"/    ].
-
-
-
-    "Created: / 24.2.2000 / 22:02:10 / cg"
-    "Modified: / 18.8.2000 / 19:27:50 / cg"
+    self packageFilter
+        setValue:(self selectedProjects value);
+        changed.
+    self updateLintEnablement.
+
+    "Created: / 24-02-2000 / 22:02:10 / cg"
+    "Modified: / 18-08-2000 / 19:27:50 / cg"
+    "Modified: / 02-04-2014 / 12:30:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 projectSelectionChangedForFilter
@@ -23409,9 +24208,9 @@
     "/ don't update codeView, as long as no protocol is selected
     ((codeAspect := self codeAspect) == #repositoryLog
     or:[codeAspect == #repositoryHistory]) ifTrue:[
-	self hasProtocolSelected ifFalse:[
-	    ^ self
-	]
+        self hasProtocolSelected ifFalse:[
+            ^ self
+        ]
     ].
     self enqueueDelayedProtocolSelectionChanged
 !
@@ -23421,14 +24220,14 @@
 
     ((m := self theSingleSelectedMethod) notNil
     and:[m mclass isNil]) ifTrue:[
-	"/ kludge: still showing old code, but a change should be on its
-	"/ way, coming from the MethodList.
-	"/ push back the event, to allow for the change event to be handled first.
-	self
-	    enqueueMessage:#selectedEditorNoteBookTabIndexChanged2
-	    for:self
-	    arguments:#().
-	^ self.
+        "/ kludge: still showing old code, but a change should be on its
+        "/ way, coming from the MethodList.
+        "/ push back the event, to allow for the change event to be handled first.
+        self
+            enqueueMessage:#selectedEditorNoteBookTabIndexChanged2
+            for:self
+            arguments:#().
+        ^ self.
     ].
     self selectedEditorNoteBookTabIndexChanged2.
 !
@@ -23449,6 +24248,11 @@
 "/        ^ self.
 "/    ].
 
+    changedObject == environmentHolder ifTrue:[
+        self environmentChanged.
+        ^ self.
+    ].
+
     changedObject == self selectedClasses ifTrue:[
         self assert:(changedObject value includes:nil) not.
     ].
@@ -23554,11 +24358,11 @@
 
             method := self theSingleSelectedMethod.
             method notNil ifTrue:[
-                self updatePackageInfoForMethod: method.  
+                self updatePackageInfoForMethod: method.
             ] ifFalse:[
                 class :=  self theSingleSelectedClass.
                 class notNil ifTrue:[
-                    self updatePackageInfoForClass: class.  
+                    self updatePackageInfoForClass: class.
                 ]
             ].
         ].
@@ -23569,7 +24373,7 @@
     super update:something with:aParameter from:changedObject
 
     "Modified: / 27-07-2012 / 22:17:08 / cg"
-    "Modified: / 01-11-2013 / 20:41:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 24-02-2014 / 23:33:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 updateBookmarkHolder
@@ -23589,13 +24393,13 @@
     |nr newLabel|
 
     (nr := selectedBuffer value) notNil ifTrue:[
-	nr ~~ 0 ifTrue:[
-	    newLabel := self currentBufferLabel.
-	    (newLabel sameStringAndEmphasisAs:(bufferNameList at:nr)) ifTrue:[
-		^ self.
-	    ].
-	    bufferNameList at:nr put:newLabel.
-	]
+        nr ~~ 0 ifTrue:[
+            newLabel := self currentBufferLabel.
+            (newLabel sameStringAndEmphasisAs:(bufferNameList at:nr)) ifTrue:[
+                ^ self.
+            ].
+            bufferNameList at:nr put:newLabel.
+        ]
     ].
     self normalLabel
 
@@ -23610,24 +24414,24 @@
 
     classes := self selectedClassesValue.
     classes size > 0 ifTrue:[
-	"/ category-selection feedBack:
-	"/ update the category-selection, if '* all *' is in its selection
-	"/ (add the selected categories to the category-selection)
-	oldSelectedCategories := self selectedCategoriesValue.
-	selectedPseudoEntries := (oldSelectedCategories select:[:entry | BrowserList isPseudoCategory:entry]).
-
-	newSelectedCategories := Set new.
-	(selectedPseudoEntries asSet = (Set with:(BrowserList nameListEntryForChanged)))
-	ifFalse:[
-	    newSelectedCategories addAll:(classes collect:[:eachClass | eachClass category]).
-	].
-
-	"/ reselect any selected pseudoCategory
-	newSelectedCategories addAll:selectedPseudoEntries.
-
-	newSelectedCategories ~= oldSelectedCategories ifTrue:[
-	    self selectedCategories value:newSelectedCategories.
-	].
+        "/ category-selection feedBack:
+        "/ update the category-selection, if '* all *' is in its selection
+        "/ (add the selected categories to the category-selection)
+        oldSelectedCategories := self selectedCategoriesValue.
+        selectedPseudoEntries := (oldSelectedCategories select:[:entry | BrowserList isPseudoCategory:entry]).
+
+        newSelectedCategories := Set new.
+        (selectedPseudoEntries asSet = (Set with:(BrowserList nameListEntryForChanged)))
+        ifFalse:[
+            newSelectedCategories addAll:(classes collect:[:eachClass | eachClass category]).
+        ].
+
+        "/ reselect any selected pseudoCategory
+        newSelectedCategories addAll:selectedPseudoEntries.
+
+        newSelectedCategories ~= oldSelectedCategories ifTrue:[
+            self selectedCategories value:newSelectedCategories.
+        ].
     ].
 
     "Created: / 24-02-2000 / 14:10:09 / cg"
@@ -23644,49 +24448,49 @@
     cFrame isNil ifTrue:[^ self].
 
     cFrame notNil ifTrue:[
-	(stringSearchToolVisible not and:[codeInfoVisible not]) ifTrue:[
-	    cBottomOffset := 0.
-	    sTopOffset := 0.
-	    sBottomOffset := 0.
-	].
-	(stringSearchToolVisible not and:[codeInfoVisible]) ifTrue:[
-	    cBottomOffset := -25.
-	    sTopOffset := 0.
-	    sBottomOffset := 0.
-	].
-	(stringSearchToolVisible and:[codeInfoVisible not]) ifTrue:[
-	    cBottomOffset := -25.
-	    sTopOffset := -24.
-	    sBottomOffset := 0.
-	].
-	(stringSearchToolVisible and:[codeInfoVisible]) ifTrue:[
-	    cBottomOffset := -50.
-	    sTopOffset := -49.
-	    sBottomOffset := -25.
-	].
-	cFrame layout notNil ifTrue:[
-	    cFrame layout bottomOffset:cBottomOffset.
-	].
-	cFrame container notNil ifTrue:[
-	    cFrame containerChangedSize.
-	].
-	sFrame := self stringSearchToolView.
-
-	sFrame notNil ifTrue:[
-	    sFrame layout notNil ifTrue:[
-		sTopOffset notNil ifTrue:[sFrame layout topOffset:sTopOffset].
-		sBottomOffset notNil ifTrue:[sFrame layout bottomOffset:sBottomOffset].
-		sFrame container notNil ifTrue:[
-		    sFrame containerChangedSize.
-		].
-	    ].
-	].
+        (stringSearchToolVisible not and:[codeInfoVisible not]) ifTrue:[
+            cBottomOffset := 0.
+            sTopOffset := 0.
+            sBottomOffset := 0.
+        ].
+        (stringSearchToolVisible not and:[codeInfoVisible]) ifTrue:[
+            cBottomOffset := -25.
+            sTopOffset := 0.
+            sBottomOffset := 0.
+        ].
+        (stringSearchToolVisible and:[codeInfoVisible not]) ifTrue:[
+            cBottomOffset := -25.
+            sTopOffset := -24.
+            sBottomOffset := 0.
+        ].
+        (stringSearchToolVisible and:[codeInfoVisible]) ifTrue:[
+            cBottomOffset := -50.
+            sTopOffset := -49.
+            sBottomOffset := -25.
+        ].
+        cFrame layout notNil ifTrue:[
+            cFrame layout bottomOffset:cBottomOffset.
+        ].
+        cFrame container notNil ifTrue:[
+            cFrame containerChangedSize.
+        ].
+        sFrame := self stringSearchToolView.
+
+        sFrame notNil ifTrue:[
+            sFrame layout notNil ifTrue:[
+                sTopOffset notNil ifTrue:[sFrame layout topOffset:sTopOffset].
+                sBottomOffset notNil ifTrue:[sFrame layout bottomOffset:sBottomOffset].
+                sFrame container notNil ifTrue:[
+                    sFrame containerChangedSize.
+                ].
+            ].
+        ].
     ].
 !
 
 updateExecuteMethodVisibility
     self hasNonTestCaseClassMethodWithoutArgsSelectedHolder
-	    value:(self hasNonTestCaseClassMethodWithoutArgsSelected)
+            value:(self hasNonTestCaseClassMethodWithoutArgsSelected)
 
     "Modified: / 05-08-2006 / 13:22:53 / cg"
 !
@@ -23695,30 +24499,30 @@
     |selectedClasses singleSelectedClass categories msg|
 
     navigationState organizerMode value == OrganizerCanvas organizerModeCategory ifTrue:[
-	self selectedCategoriesValue size > 1 ifTrue:[
-	    singleSelectedClass := self theSingleSelectedClass.
-	    singleSelectedClass notNil ifTrue:[
-		msg := (resources string:'Category: %2'
-				  with:singleSelectedClass name allBold
-				  with:singleSelectedClass category allBold).
-	    ] ifFalse:[
-
-		selectedClasses := self selectedClassesValue.
-		categories := selectedClasses collect:[:cls | cls category] as:Set.
-		categories size == 1 ifTrue:[
-		    msg := (resources string:'Category: %1'
-				      with:categories anElement allBold).
-		].
-	    ].
-	].
+        self selectedCategoriesValue size > 1 ifTrue:[
+            singleSelectedClass := self theSingleSelectedClass.
+            singleSelectedClass notNil ifTrue:[
+                msg := (resources string:'Category: %2'
+                                  with:singleSelectedClass name allBold
+                                  with:singleSelectedClass category allBold).
+            ] ifFalse:[
+
+                selectedClasses := self selectedClassesValue.
+                categories := selectedClasses collect:[:cls | cls category] as:Set.
+                categories size == 1 ifTrue:[
+                    msg := (resources string:'Category: %1'
+                                      with:categories anElement allBold).
+                ].
+            ].
+        ].
     ].
 
     msg isNil ifTrue:[
-	msg := self getClassInfo.
+        msg := self getClassInfo.
     ].
     msg notNil ifTrue:[
-	self showInfo:msg.
-	^ self.
+        self showInfo:msg.
+        ^ self.
     ].
     self clearInfo.
 
@@ -23727,18 +24531,26 @@
 
 updateInitSharedPoolVisibility
     self hasSharedPoolSelectedHolder
-	    value:(
-		(self selectedClasses value ? #()) contains:[:cls |
-			cls isLoaded
-			and:[(cls theNonMetaclass askFor:#isAbstract) not
-			and:[ cls theNonMetaclass inheritsFrom:SharedPool ]]])
+            value:(
+                (self selectedClasses value ? #()) contains:[:cls |
+                        cls isLoaded
+                        and:[(cls theNonMetaclass askFor:#isAbstract) not
+                        and:[ cls theNonMetaclass inheritsFrom:SharedPool ]]])
 
     "Created: / 29-05-2012 / 10:19:08 / cg"
 !
 
 updateLaunchApplicationVisibility
     self hasStartableApplicationSelectedHolder
-	    value:(self hasStartableApplicationSelected)
+            value:(self hasStartableApplicationSelected)
+!
+
+updateLintEnablement
+    "Enables/disables lint button in toolbar depending on current selection"
+
+    self hasNonEmptyEnvironmentSelectedHolder value: self hasNonEmptyEnvironmentSelected
+
+    "Created: / 02-04-2014 / 12:21:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 updateMetaToggleForClassSelection
@@ -23746,17 +24558,17 @@
 
     selectedClasses := self selectedNonMetaclasses.
     (selectedClasses contains:[:eachClass | eachClass isJavaClass]) ifTrue:[
-	"/ selection contains at least on java class
-	(selectedClasses conform:[:eachClass | eachClass isJavaClass]) ifTrue:[
-	    "/ only java classes selected
-	    newMetaToggleLabel := 'Static'.
-	] ifFalse:[
-	    "/ mixed ..
-	    newMetaToggleLabel := 'Class / Static'.
-	]
-    ] ifFalse:[
-	"/ only smalltalk classes selected
-	newMetaToggleLabel := 'Class'.
+        "/ selection contains at least on java class
+        (selectedClasses conform:[:eachClass | eachClass isJavaClass]) ifTrue:[
+            "/ only java classes selected
+            newMetaToggleLabel := 'Static'.
+        ] ifFalse:[
+            "/ mixed ..
+            newMetaToggleLabel := 'Class / Static'.
+        ]
+    ] ifFalse:[
+        "/ only smalltalk classes selected
+        newMetaToggleLabel := 'Class'.
     ].
     self navigationState metaToggleLabelHolder value:(resources string:newMetaToggleLabel)
 
@@ -23772,78 +24584,78 @@
 !
 
 updatePluginVisibility
-
-    | pluginVisible frame pluginApp pluginView |
-
-    pluginVisible := self navigationState pluginVisibleHolder value.
-    frame := self navigationState codePaneAndPluginView.
-    frame ifNil:[^self].
-    self showPlugin value ifTrue: [
-	pluginApp := BrowsletCanvas new.
-	pluginApp masterApplication: self.
-	pluginView := ApplicationSubView new client: pluginApp.
-	frame addSubView: pluginView.
-	frame relativeCorners: self navigationState codePaneAndPluginViewRelativeCorners.
-    ] ifFalse: [
-	self navigationState codePaneAndPluginViewRelativeCorners: frame relativeCorners.
-	pluginView := frame subViews second.
-	pluginView destroy.
+    |naviState pluginVisible  frame  pluginApp  pluginView |
+
+    naviState := self navigationState.
+
+    pluginVisible := naviState pluginVisibleHolder value.
+    frame := naviState codePaneAndPluginView.
+    frame isNil ifTrue:[
+        ^ self
+    ].
+    self showPlugin value ifTrue:[
+        pluginApp := BrowsletCanvas new.
+        pluginApp masterApplication:self.
+        pluginView := ApplicationSubView new client:pluginApp.
+        frame addSubView:pluginView.
+        frame relativeCorners:naviState codePaneAndPluginViewRelativeCorners.
+    ] ifFalse:[
+        naviState codePaneAndPluginViewRelativeCorners:frame relativeCorners.
+        pluginView := frame subViews second.
+        pluginView destroy.
     ].
     frame resizeSubviews
 
-
-
-    "
-
-    stringSearchToolVisible := self stringSearchToolVisibleHolder value.
-    codeInfoVisible := false.
-
-    cFrame := self noteBookView.
-    cFrame isNil ifTrue:[^ self].
-
-    cFrame notNil ifTrue:[
-	(stringSearchToolVisible not and:[codeInfoVisible not]) ifTrue:[
-	    cBottomOffset := 0.
-	    sTopOffset := 0.
-	    sBottomOffset := 0.
-	].
-	(stringSearchToolVisible not and:[codeInfoVisible]) ifTrue:[
-	    cBottomOffset := -25.
-	    sTopOffset := 0.
-	    sBottomOffset := 0.
-	].
-	(stringSearchToolVisible and:[codeInfoVisible not]) ifTrue:[
-	    cBottomOffset := -25.
-	    sTopOffset := -24.
-	    sBottomOffset := 0.
-	].
-	(stringSearchToolVisible and:[codeInfoVisible]) ifTrue:[
-	    cBottomOffset := -50.
-	    sTopOffset := -49.
-	    sBottomOffset := -25.
-	].
-	cFrame layout notNil ifTrue:[
-	    cFrame layout bottomOffset:cBottomOffset.
-	].
-	cFrame container notNil ifTrue:[
-	    cFrame containerChangedSize.
-	].
-	sFrame := self stringSearchToolView.
-
-	sFrame notNil ifTrue:[
-	    sFrame layout notNil ifTrue:[
-		sTopOffset notNil ifTrue:[sFrame layout topOffset:sTopOffset].
-		sBottomOffset notNil ifTrue:[sFrame layout bottomOffset:sBottomOffset].
-		sFrame container notNil ifTrue:[
-		    sFrame containerChangedSize.
-		].
-	    ].
-	].
-    ].
-    "
+    "
+
+     stringSearchToolVisible := self stringSearchToolVisibleHolder value.
+     codeInfoVisible := false.
+
+     cFrame := self noteBookView.
+     cFrame isNil ifTrue:[^ self].
+
+     cFrame notNil ifTrue:[
+        (stringSearchToolVisible not and:[codeInfoVisible not]) ifTrue:[
+            cBottomOffset := 0.
+            sTopOffset := 0.
+            sBottomOffset := 0.
+        ].
+        (stringSearchToolVisible not and:[codeInfoVisible]) ifTrue:[
+            cBottomOffset := -25.
+            sTopOffset := 0.
+            sBottomOffset := 0.
+        ].
+        (stringSearchToolVisible and:[codeInfoVisible not]) ifTrue:[
+            cBottomOffset := -25.
+            sTopOffset := -24.
+            sBottomOffset := 0.
+        ].
+        (stringSearchToolVisible and:[codeInfoVisible]) ifTrue:[
+            cBottomOffset := -50.
+            sTopOffset := -49.
+            sBottomOffset := -25.
+        ].
+        cFrame layout notNil ifTrue:[
+            cFrame layout bottomOffset:cBottomOffset.
+        ].
+        cFrame container notNil ifTrue:[
+            cFrame containerChangedSize.
+        ].
+        sFrame := self stringSearchToolView.
+
+        sFrame notNil ifTrue:[
+            sFrame layout notNil ifTrue:[
+                sTopOffset notNil ifTrue:[sFrame layout topOffset:sTopOffset].
+                sBottomOffset notNil ifTrue:[sFrame layout bottomOffset:sBottomOffset].
+                sFrame container notNil ifTrue:[
+                    sFrame containerChangedSize.
+                ].
+            ].
+        ].
+     ]."
 
     "Created: / 03-10-2010 / 19:03:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 04-10-2010 / 18:39:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 02-04-2014 / 12:19:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 updateProtocolSelectionForChangedMethodSelection
@@ -23851,20 +24663,20 @@
 
     methods := self selectedMethodsValue.
     methods size > 0 ifTrue:[
-	"/ protocol-selection feedBack:
-	"/ update the protocol-selection, if '* all *' is in its selection
-	"/ (add the selected methods categories to the protocol-selection)
-	selectedProtocolsHolder := self selectedProtocols.
-	selectedProtocols := selectedProtocolsHolder value.
-	(selectedProtocols size > 0 and:[selectedProtocols includes:(BrowserList nameListEntryForALL)])
-	ifTrue:[
-	    oldSelectedProtocols := selectedProtocols asSet.
-	    selectedProtocols := Set with:(BrowserList nameListEntryForALL).
-	    selectedProtocols addAll:(methods collect:[:eachMethod | eachMethod category]).
-	    selectedProtocols ~= oldSelectedProtocols ifTrue:[
-		self selectProtocols:selectedProtocols.
-	    ].
-	].
+        "/ protocol-selection feedBack:
+        "/ update the protocol-selection, if '* all *' is in its selection
+        "/ (add the selected methods categories to the protocol-selection)
+        selectedProtocolsHolder := self selectedProtocols.
+        selectedProtocols := selectedProtocolsHolder value.
+        (selectedProtocols size > 0 and:[selectedProtocols includes:(BrowserList nameListEntryForALL)])
+        ifTrue:[
+            oldSelectedProtocols := selectedProtocols asSet.
+            selectedProtocols := Set with:(BrowserList nameListEntryForALL).
+            selectedProtocols addAll:(methods collect:[:eachMethod | eachMethod category]).
+            selectedProtocols ~= oldSelectedProtocols ifTrue:[
+                self selectProtocols:selectedProtocols.
+            ].
+        ].
     ].
 
     "Modified: / 28-02-2012 / 16:36:38 / cg"
@@ -23883,14 +24695,14 @@
 
     languages := Set new.
     (self selectedMethodsValue ? #()) do:[:each |
-	languages add:(each programmingLanguage).
+        languages add:(each programmingLanguage).
     ].
     (self selectedClassesValue ? #()) do:[:each |
-	languages add:(each programmingLanguage).
+        languages add:(each programmingLanguage).
     ].
 
     languages size == 1 ifTrue:[
-	spec := languages first parenthesisSpecificationForEditor.
+        spec := languages first parenthesisSpecificationForEditor.
     ].
     self codeView parenthesisSpecification:spec
 
@@ -23917,6 +24729,27 @@
     self navigationState versionDiffApplication:diffApp.
 ! !
 
+!NewSystemBrowser methodsFor:'drag & drop'!
+
+canDropContext:aDropContext
+    |methods|
+
+self halt.
+    aDropContext sourceWidget == aDropContext targetWidget ifTrue:[^ false].
+
+    methods := aDropContext dropObjects collect:[:obj | obj theObject].
+    (methods conform:[:aMethod | aMethod isMethod]) ifFalse:[^ false].
+
+    self masterApplication theSingleSelectedClass isNil ifTrue:[^ false].
+    ^ true
+
+    "Modified: / 13-09-2006 / 11:43:54 / cg"
+!
+
+canDropObjects:aCollectionOfDropObjects in:aWidget
+    self halt.
+! !
+
 !NewSystemBrowser methodsFor:'help specs'!
 
 flyByHelpSpec
@@ -23925,12 +24758,12 @@
     spec := super flyByHelpSpec.
     changeSet := ChangeSet current.
     (changeSet findLast:[:chg | chg isMethodChange and:[chg changeClass notNil]]) ~~ 0 ifTrue:[
-	spec at:#recentChanges put:(spec at:#recentlyChangedMethods).
+        spec at:#recentChanges put:(spec at:#recentlyChangedMethods).
     ] ifFalse:[
 "/        (changeSet contains:[:chg | chg isClassChange and:[chg changeClass notNil]]) ifTrue:[
 "/            spec at:#recentChanges put:(spec at:#recentlyChangedClasses).
 "/        ] ifFalse:[
-	    spec at:#recentChanges put:'Recently Changed'.
+            spec at:#recentChanges put:'Recently Changed'.
 "/        ]
     ].
     ^ spec.
@@ -23946,6 +24779,12 @@
 
 !NewSystemBrowser methodsFor:'history'!
 
+addToFindHistory:class selector:selector
+    self class updateHistory:self findHistory forClass:class selector:selector
+
+    "Created: / 02-05-2014 / 17:32:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 addToHistory: class
 
     self addToHistory: class selector: nil.
@@ -23960,15 +24799,41 @@
     "Created: / 22-02-2008 / 09:00:56 / janfrog"
     "Modified: / 25-10-2009 / 15:06:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 02-07-2011 / 18:33:22 / cg"
+!
+
+addToRecentlyClosedHistory:class selector:selector
+    self class updateHistory:self closeHistory forClass:class selector:selector
+
+    "Created: / 02-05-2014 / 17:32:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+closeHistory
+    RecentlyClosedList isNil ifTrue:[
+        RecentlyClosedList := OrderedCollection new.
+    ].
+    ^ RecentlyClosedList
+
+    "Created: / 02-05-2014 / 15:58:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 02-05-2014 / 17:30:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+findHistory
+    FindHistory isNil ifTrue:[
+        FindHistory := OrderedCollection new.
+    ].
+    ^ FindHistory
+
+    "Created: / 02-05-2014 / 17:29:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !NewSystemBrowser methodsFor:'initialization'!
 
 initialize
     super initialize.
-    environment := Smalltalk
+    environment := Smalltalk.
 
     "Created: / 03-09-2013 / 19:13:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 24-02-2014 / 11:05:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !NewSystemBrowser methodsFor:'menu actions-browse'!
@@ -23979,49 +24844,49 @@
     |pools poolNameString classes|
 
     poolsArg isEmptyOrNil ifTrue:[
-	^ self
+        ^ self
     ].
     pools := poolsArg
-		collect:[:poolOrName |
-		    |p|
-		    poolOrName isSharedPool ifTrue:[
-			poolOrName
-		    ] ifFalse:[
-			p := environment classNamed:poolNameString.
-			(p notNil and:[p isSharedPool]) ifTrue:[
-			    p
-			] ifFalse:[
-			    nil
-			]
-		    ]
-		 ]
-		  thenSelect:[:p | p notNil].
+                collect:[:poolOrName |
+                    |p|
+                    poolOrName isSharedPool ifTrue:[
+                        poolOrName
+                    ] ifFalse:[
+                        p := environment classNamed:poolNameString.
+                        (p notNil and:[p isSharedPool]) ifTrue:[
+                            p
+                        ] ifFalse:[
+                            nil
+                        ]
+                    ]
+                 ]
+                  thenSelect:[:p | p notNil].
     pools isEmptyOrNil ifTrue:[
-	^ self
+        ^ self
     ].
 
     classes := environment allClasses
-		select:[:cls |
-			cls isMeta not and:[(cls sharedPools includesAny:pools)]
-		].
+                select:[:cls |
+                        cls isMeta not and:[(cls sharedPools includesAny:pools)]
+                ].
 
     classes size == 0 ifTrue:[
-	self information:'None found.'.
-	^ self
+        self information:'None found.'.
+        ^ self
     ].
     classes := classes asOrderedCollection sort:[:a :b | a name < b name].
 
     (doWhat == #newBrowser or:[ doWhat == #newBuffer ]) ifTrue:[
-	pools size == 1 ifTrue:[
-	    poolNameString := pools first name
-	] ifFalse:[
-	    poolNameString := (resources string:'any of %1 pools' with:pools size)
-	].
-	self
-	    spawnClassBrowserFor:classes
-	    label:(resources string:'Classes Referring to %1' with:poolNameString)
-	    in:doWhat select:false.
-	^ self
+        pools size == 1 ifTrue:[
+            poolNameString := pools first name
+        ] ifFalse:[
+            poolNameString := (resources string:'any of %1 pools' with:pools size)
+        ].
+        self
+            spawnClassBrowserFor:classes
+            label:(resources string:'Classes Referring to %1' with:poolNameString)
+            in:doWhat select:false.
+        ^ self
     ].
 
     self selectClasses:classes.
@@ -24031,18 +24896,18 @@
     "launch an enterBox for selector to search for"
 
     ^ self
-	askForMethodAndSpawnSearchTitle:((resources string:'Selector to browse implementors of:')
-					 , '\'
-					 , (resources string:'(TAB for completion; matchPattern allowed)'))
-	browserLabel:'Implementors of %1'
-	searchWith:#( #'findImplementors:in:ignoreCase:match:' #'findImplementors:inMethods:ignoreCase:match:' )
-	searchWhat:#selector
-	searchArea:#everywhere
-	withCaseIgnore:true
-	withTextEntry:true
-	withMatch:true
-	withMethodList:true
-	setSearchPattern:nil
+        askForMethodAndSpawnSearchTitle:((resources string:'Selector to browse implementors of:')
+                                         , '\'
+                                         , (resources string:'(TAB for completion; matchPattern allowed)'))
+        browserLabel:'Implementors of %1'
+        searchWith:#( #'findImplementors:in:ignoreCase:match:' #'findImplementors:inMethods:ignoreCase:match:' )
+        searchWhat:#selector
+        searchArea:#everywhere
+        withCaseIgnore:true
+        withTextEntry:true
+        withMatch:true
+        withMethodList:true
+        setSearchPattern:nil
 
     "Modified: / 20-08-2012 / 14:25:48 / cg"
 !
@@ -24053,25 +24918,25 @@
     selectors := self selectedMethodsValue collect:[:each | each selector].
 
     ^ self
-	askForMethodAndSpawnSearchTitle:'Browse Implementors of (any in selected):'
-	browserLabel:('Implementors (any of %1 selectors)' bindWith:selectors size)
-	searchWith:[:ignoredString :classes :ignoredCase :match|
-			match ifTrue:[
-			    self class
-				findImplementorsMatchingAny:selectors
-				in:classes ignoreCase:false
-			] ifFalse:[
-			    self class
-				findImplementorsOfAny:selectors
-				in:classes ignoreCase:false
-			].
-		   ]
-	searchWhat:#selector
-	searchArea:#everywhere
-	withCaseIgnore:false
-	withTextEntry:false
-	withMethodList:false
-	setSearchPattern:nil
+        askForMethodAndSpawnSearchTitle:'Browse Implementors of (any in selected):'
+        browserLabel:('Implementors (any of %1 selectors)' bindWith:selectors size)
+        searchWith:[:ignoredString :classes :ignoredCase :match|
+                        match ifTrue:[
+                            self class
+                                findImplementorsMatchingAny:selectors
+                                in:classes ignoreCase:false
+                        ] ifFalse:[
+                            self class
+                                findImplementorsOfAny:selectors
+                                in:classes ignoreCase:false
+                        ].
+                   ]
+        searchWhat:#selector
+        searchArea:#everywhere
+        withCaseIgnore:false
+        withTextEntry:false
+        withMethodList:false
+        setSearchPattern:nil
 
     "Modified: / 28-02-2012 / 16:14:55 / cg"
 !
@@ -24083,30 +24948,30 @@
 
     sel := self selectorToSearchFor.
     sel isEmptyOrNil ifTrue:[
-	"/ use last searchString
-	LastSearchPatterns size > 0 ifTrue:[
-	    sel := LastSearchPatterns first.
-	].
+        "/ use last searchString
+        LastSearchPatterns size > 0 ifTrue:[
+            sel := LastSearchPatterns first.
+        ].
     ].
     selectorHolder := sel asValue.
 
     box := Dialog new.
-    (box addTextLabel:(resources string:'Selector to browse inheritance of:')) adjust:#left.
+    box addTextLabel:(resources string:'Selector to browse inheritance of:') adjust:#left.
     inputField := box addComboBoxOn:selectorHolder tabable:true.
     inputField list:LastSearchPatterns.
 
     inputField selectAllInitially.
     inputField entryCompletionBlock:[:contents |
-	|s what|
-
-	s := contents withoutSpaces.
-	box topView withWaitCursorDo:[
-	    what := DoWhatIMeanSupport selectorCompletion:s inEnvironment:environment.
-	    inputField contents:what first.
-	    (what at:2) size ~~ 1 ifTrue:[
-		self window beep
-	    ]
-	]
+        |s what|
+
+        s := contents withoutSpaces.
+        box topView withWaitCursorDo:[
+            what := DoWhatIMeanSupport selectorCompletion:s inEnvironment:environment.
+            inputField contents:what first.
+            (what at:2) size ~~ 1 ifTrue:[
+                self window beep
+            ]
+        ]
     ].
 
     box addCheckBox:(resources string:'Ignore case') on:(caseHolder := false asValue).
@@ -24128,13 +24993,13 @@
     box open.
 
     box accepted ifTrue:[
-	sel := selectorHolder value.
-
-	sel isEmpty ifTrue:[
-	    self warn:'No selector entered for search'.
-	    ^ self.
-	].
-	self rememberSearchPattern:sel.
+        sel := selectorHolder value.
+
+        sel isEmpty ifTrue:[
+            self warn:'No selector entered for search'.
+            ^ self.
+        ].
+        self rememberSearchPattern:sel.
     ].
 
     "Modified: / 04-09-2013 / 17:40:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -24144,38 +25009,38 @@
     "add a new buffer on all subclasses of an entered class"
 
     self
-	askForClassToSearch:nil
-	single:true
-	msgTail:' subclass of'
-	thenDo:[:classNameArg :single :doWhat |
-	    |className class searchBlock|
-
-	    className := classNameArg.
-	    className = 'nil' ifTrue:[
-		searchBlock := [ Behavior allSubInstances select:[:cls | cls superclass isNil] ].
-	    ] ifFalse:[
-		className includesMatchCharacters ifTrue:[
-		    className := self askForClassNameMatching:className.
-		].
-		class := (environment classNamed:className) theNonMetaclass.
-		searchBlock := [ class allSubclasses ]
-	    ].
-
-	    self
-		spawnClassBrowserForSearch:searchBlock
-		spec:#multipleClassBrowserSpec
-		sortBy:nil in:#newBuffer label:('All Subclasses of ' , className)
-		autoSelectIfOne:true
-		callBack:[:brwsr |  ].
-	]
+        askForClassToSearch:nil
+        single:true
+        msgTail:' subclass of'
+        thenDo:[:classNameArg :single :doWhat |
+            |className class searchBlock|
+
+            className := classNameArg.
+            className = 'nil' ifTrue:[
+                searchBlock := [ Behavior allSubInstances select:[:cls | cls superclass isNil] ].
+            ] ifFalse:[
+                className includesMatchCharacters ifTrue:[
+                    className := self askForClassNameMatching:className.
+                ].
+                class := (environment classNamed:className) theNonMetaclass.
+                searchBlock := [ class allSubclasses ]
+            ].
+
+            self
+                spawnClassBrowserForSearch:searchBlock
+                spec:#multipleClassBrowserSpec
+                sortBy:nil in:#newBuffer label:('All Subclasses of ' , className)
+                autoSelectIfOne:true
+                callBack:[:brwsr |  ].
+        ]
 !
 
 browseMenuApplicationClasses
     "add a new buffer on all application classes"
 
     self
-	browseMenuClassesForWhich:[:cls | cls isBrowserStartable]
-	label: 'Applications'
+        browseMenuClassesForWhich:[:cls | cls isBrowserStartable]
+        label: 'Applications'
 
     "Modified: / 18-04-2012 / 16:20:54 / cg"
 !
@@ -24186,15 +25051,15 @@
     |searchBlock|
 
     searchBlock := [
-			(environment allClassesForWhich:[:someClass | someClass wasAutoloaded])
-			    asOrderedCollection
-		   ].
-
-    self
-	spawnClassBrowserForSearch:searchBlock
-	sortBy:nil
-	in:#newBuffer
-	label:'Classes which were autoloaded'
+                        (environment allClassesForWhich:[:someClass | someClass wasAutoloaded])
+                            asOrderedCollection
+                   ].
+
+    self
+        spawnClassBrowserForSearch:searchBlock
+        sortBy:nil
+        in:#newBuffer
+        label:'Classes which were autoloaded'
 !
 
 browseMenuClassExtensions
@@ -24216,30 +25081,30 @@
      (i.e. methods where the packageID is different from their classes packageID)"
 
     self withSearchCursorDo:[
-	    |newBrowser|
-
-	    newBrowser := self
-			spawnClassExtensionBrowserForSearch:[
-			    |classes|
-
-			    classes := (aCollectionOfClasses
-					select:[:aClass |
-					    |include|
-
-					    aCollectionOfPackagesOrNil isNil ifTrue:[
-						include := aClass hasExtensions.
-					    ] ifFalse:[
-						include := aCollectionOfPackagesOrNil contains:[:eachPackage | aClass hasExtensionsFrom:eachPackage]
-					    ].
-					    include
-					]) asOrderedCollection.
-			    classes sort:[:a :b | a name < b name]
-			]
-			label:labelOrNil
-			in:openHow.
-
-	    newBrowser navigationState selectedProjects value:aCollectionOfPackagesOrNil.
-	]
+            |newBrowser|
+
+            newBrowser := self
+                        spawnClassExtensionBrowserForSearch:[
+                            |classes|
+
+                            classes := (aCollectionOfClasses
+                                        select:[:aClass |
+                                            |include|
+
+                                            aCollectionOfPackagesOrNil isNil ifTrue:[
+                                                include := aClass hasExtensions.
+                                            ] ifFalse:[
+                                                include := aCollectionOfPackagesOrNil contains:[:eachPackage | aClass hasExtensionsFrom:eachPackage]
+                                            ].
+                                            include
+                                        ]) asOrderedCollection.
+                            classes sort:[:a :b | a name < b name]
+                        ]
+                        label:labelOrNil
+                        in:openHow.
+
+            newBrowser navigationState selectedProjects value:aCollectionOfPackagesOrNil.
+        ]
 !
 
 browseMenuClassExtensionsOpenAs:openHow
@@ -24247,10 +25112,10 @@
      (i.e. methods where the packageID is different from their classes packageID)"
 
     ^ self
-	browseMenuClassExtensionsFor:nil
-	in:environment allClasses
-	label:'All Class Extensions'
-	openAs:openHow
+        browseMenuClassExtensionsFor:nil
+        in:environment allClasses
+        label:'All Class Extensions'
+        openAs:openHow
 !
 
 browseMenuClassesDefiningVariable
@@ -24265,18 +25130,18 @@
     okText2 := 'Open'.      doWhat2 := #newBrowser.
     okText := 'Add Buffer'. doWhat := #newBuffer.
     navigationState isFullBrowser ifTrue:[
-	okText3 := 'Find'.       doWhat3 := nil.
+        okText3 := 'Find'.       doWhat3 := nil.
     ].
 
     allInstVariables := Set new.
     allClassVariables := Set new.
     allClassInstVariables := Set new.
     environment allClassesDo:[:cls |
-	cls isMeta ifFalse:[
-	    allInstVariables addAll:(cls instVarNames).
-	    allClassVariables addAll:(cls classVarNames).
-	    allClassInstVariables addAll:(cls class instVarNames).
-	].
+        cls isMeta ifFalse:[
+            allInstVariables addAll:(cls instVarNames).
+            allClassVariables addAll:(cls classVarNames).
+            allClassInstVariables addAll:(cls class instVarNames).
+        ].
     ].
     list := OrderedCollection new.
     list add:'---- Instance Variables ----'.
@@ -24295,7 +25160,7 @@
     box label:(resources string:'Browse or Search Variable').
     button2 := Button label:(resources string:okText2).
     okText3 notNil ifTrue:[
-	button3 := Button label:(resources string:okText3).
+        button3 := Button label:(resources string:okText3).
     ].
     box addButton:button2 after:(box okButton).
     button3 notNil ifTrue:[box addButton:button3 after:button2].
@@ -24306,61 +25171,61 @@
        box okPressed.
     ].
     button3 notNil ifTrue:[
-	button3 action:[
-			    doWhat := doWhat3.
-			    box doAccept.
-			    box okPressed.
-			].
+        button3 action:[
+                            doWhat := doWhat3.
+                            box doAccept.
+                            box okPressed.
+                        ].
     ].
 
     box entryCompletionBlock:[:contents |
-	|s what m|
-
-	s := contents withoutSpaces.
-	what := DoWhatIMeanSupport selectorCompletion:s inEnvironment:environment .
-	box contents:what first.
-	(what at:2) size ~~ 1 ifTrue:[
-	    self builder window beep
-	].
-	box listView list:(list select:[:entry | s match:entry]).
+        |s what m|
+
+        s := contents withoutSpaces.
+        what := DoWhatIMeanSupport selectorCompletion:s inEnvironment:environment .
+        box contents:what first.
+        (what at:2) size ~~ 1 ifTrue:[
+            self builder window beep
+        ].
+        box listView list:(list select:[:entry | s match:entry]).
     ].
 
     box action:[:aString | varNameString := aString].
     box showAtPointer.
 
     varNameString isEmptyOrNil ifTrue:[
-	^ self
+        ^ self
     ].
 
     varNamesToSearch := varNameString asCollectionOfSubstringsSeparatedBy:$; .
     (varNamesToSearch contains:[:varNameToSearch | varNameToSearch includesMatchCharacters]) ifTrue:[
-	checkFilterBlock := [:v | varNamesToSearch contains:[:varNameToSearch | varNameToSearch match:v]]
-    ] ifFalse:[
-	varNamesToSearch := varNamesToSearch asSet.
-	checkFilterBlock := [:v | varNamesToSearch includes:v]
+        checkFilterBlock := [:v | varNamesToSearch contains:[:varNameToSearch | varNameToSearch match:v]]
+    ] ifFalse:[
+        varNamesToSearch := varNamesToSearch asSet.
+        checkFilterBlock := [:v | varNamesToSearch includes:v]
     ].
 
     classes := environment allClasses select:[:cls |
-		    cls isMeta not
-		    and:[(cls instVarNames contains:checkFilterBlock)
-			 or:[(cls classVarNames contains:checkFilterBlock)
-			     or:[cls class instVarNames contains:checkFilterBlock]]]
-	       ].
+                    cls isMeta not
+                    and:[(cls instVarNames contains:checkFilterBlock)
+                         or:[(cls classVarNames contains:checkFilterBlock)
+                             or:[cls class instVarNames contains:checkFilterBlock]]]
+               ].
 
     classes size == 0 ifTrue:[
-	self information:'None found.'.
-	^ self
+        self information:'None found.'.
+        ^ self
     ].
     classes := classes asOrderedCollection sort:[:a :b | a name < b name].
 
     (doWhat == #newBrowser or:[ doWhat == #newBuffer ]) ifTrue:[
-	self spawnClassBrowserFor:classes in:doWhat.
-	^ self
+        self spawnClassBrowserFor:classes in:doWhat.
+        ^ self
     ].
 
     brwsr := self.
     doWhat == #newBuffer ifTrue:[
-	brwsr createBuffer.
+        brwsr createBuffer.
     ].
     brwsr selectClasses:classes.
 
@@ -24375,24 +25240,24 @@
     |searchBlock|
 
     searchBlock := [
-			|classes|
-
-			classes := OrderedCollection new.
-
-			environment allClassesDo:[:eachClass |
-			    (aFilter value: eachClass) ifTrue:[
-				classes add:eachClass
-			    ]
-			].
-			classes
-		  ].
-
-    self
-	spawnClassBrowserForSearch:searchBlock
-	spec:#multipleClassBrowserSpec
-	sortBy:nil in:#newBuffer label:label
-	autoSelectIfOne:true
-	callBack:[:brwsr | brwsr classListApp markApplications:true ].
+                        |classes|
+
+                        classes := OrderedCollection new.
+
+                        environment allClassesDo:[:eachClass |
+                            (aFilter value: eachClass) ifTrue:[
+                                classes add:eachClass
+                            ]
+                        ].
+                        classes
+                  ].
+
+    self
+        spawnClassBrowserForSearch:searchBlock
+        spec:#multipleClassBrowserSpec
+        sortBy:nil in:#newBuffer label:label
+        autoSelectIfOne:true
+        callBack:[:brwsr | brwsr classListApp markApplications:true ].
 
     "Modified: / 06-07-2011 / 14:05:37 / cg"
     "Created: / 18-04-2012 / 16:15:09 / cg"
@@ -24410,8 +25275,8 @@
      (i.e. that have been changed, but not yet checked into the source repository)"
 
     ^ self
-	browseMenuClassesInChangeSets:(ChangeSet allInstances)
-	label:'Changed classes in any changeSet' openAs:openHow
+        browseMenuClassesInChangeSets:(ChangeSet allInstances)
+        label:'Changed classes in any changeSet' openAs:openHow
 !
 
 browseMenuClassesInChangeSets:aSetOfChangeSets label:title openAs:openHow
@@ -24421,30 +25286,30 @@
     |searchBlock|
 
     searchBlock :=
-	[
-	    |classes|
-
-	    classes := IdentitySet new.
-
-	    aSetOfChangeSets do:[:eachChangeSet |
-		eachChangeSet do:[:aChange |
-		    |cls|
-
-		    (aChange isMethodChange or:[aChange isClassChange]) ifTrue:[
-			(cls := aChange changeClass) notNil ifTrue:[
-			    cls isRealNameSpace ifFalse:[
-				cls := cls theNonMetaclass.
-				classes add:cls.
-				cls isPrivate ifTrue:[
-				    classes add:cls owningClass
-				].
-			    ].
-			]
-		    ].
-		].
-	    ].
-	    classes asOrderedCollection
-	].
+        [
+            |classes|
+
+            classes := IdentitySet new.
+
+            aSetOfChangeSets do:[:eachChangeSet |
+                eachChangeSet do:[:aChange |
+                    |cls|
+
+                    (aChange isMethodChange or:[aChange isClassChange]) ifTrue:[
+                        (cls := aChange changeClass) notNil ifTrue:[
+                            cls isRealNameSpace ifFalse:[
+                                cls := cls theNonMetaclass.
+                                classes add:cls.
+                                cls isPrivate ifTrue:[
+                                    classes add:cls owningClass
+                                ].
+                            ].
+                        ]
+                    ].
+                ].
+            ].
+            classes asOrderedCollection
+        ].
 
     ^ self spawnClassBrowserForSearch:searchBlock sortBy:nil in:openHow label:title
 
@@ -24463,8 +25328,8 @@
      (i.e. that have been changed, but not yet checked into the source repository)"
 
     ^ self
-	browseMenuClassesInChangeSets:(Array with:ChangeSet current)
-	label:'Changed classes in current changeSet' openAs:openHow
+        browseMenuClassesInChangeSets:(Array with:ChangeSet current)
+        label:'Changed classes in current changeSet' openAs:openHow
 !
 
 browseMenuClassesOfRecentlyOpenedApplications
@@ -24481,14 +25346,14 @@
     |searchBlock|
 
     searchBlock :=
-	[
-	    |appHistory|
-
-	    appHistory := ApplicationModel recentlyOpenedApplications.
-	    appHistory
-		collect:[:nm | environment classNamed:nm]
-		as:OrderedCollection
-	].
+        [
+            |appHistory|
+
+            appHistory := ApplicationModel recentlyOpenedApplications.
+            appHistory
+                collect:[:nm | environment classNamed:nm]
+                as:OrderedCollection
+        ].
 
     ^ self spawnClassBrowserForSearch:searchBlock sortBy:nil in:openHow label:'Recently opened applications'
 
@@ -24504,7 +25369,7 @@
     okText2 := 'Open'.      doWhat2 := #newBrowser.
     okText := 'Add Buffer'. doWhat := #newBuffer.
     navigationState isFullBrowser ifTrue:[
-	okText3 := 'Find'.       doWhat3 := nil.
+        okText3 := 'Find'.       doWhat3 := nil.
     ].
 
     list := (SharedPool allSubclasses collect:[:pool | pool name]) sort.
@@ -24515,7 +25380,7 @@
     box label:(resources string:'Browse or Search for Classes using Pool').
     button2 := Button label:(resources string:okText2).
     okText3 notNil ifTrue:[
-	button3 := Button label:(resources string:okText3).
+        button3 := Button label:(resources string:okText3).
     ].
     box addButton:button2 after:(box okButton).
     button3 notNil ifTrue:[box addButton:button3 after:button2].
@@ -24526,39 +25391,39 @@
        box okPressed.
     ].
     button3 notNil ifTrue:[
-	button3 action:[
-			    doWhat := doWhat3.
-			    box doAccept.
-			    box okPressed.
-			].
+        button3 action:[
+                            doWhat := doWhat3.
+                            box doAccept.
+                            box okPressed.
+                        ].
     ].
 
     box entryCompletionBlock:[:contents |
-	|s what m|
-
-	s := contents withoutSpaces.
-	what := DoWhatIMeanSupport poolnameCompletion:s inEnvironment:environment.
-	box contents:what first.
-	(what at:2) size ~~ 1 ifTrue:[
-	    self builder window beep
-	].
-	box listView list:(list select:[:entry | s match:entry]).
+        |s what m|
+
+        s := contents withoutSpaces.
+        what := DoWhatIMeanSupport poolnameCompletion:s inEnvironment:environment.
+        box contents:what first.
+        (what at:2) size ~~ 1 ifTrue:[
+            self builder window beep
+        ].
+        box listView list:(list select:[:entry | s match:entry]).
     ].
 
     box action:[:aString | poolNameString := aString].
     box showAtPointer.
 
     poolNameString isEmptyOrNil ifTrue:[
-	^ self
+        ^ self
     ].
     pool := environment classNamed:poolNameString.
     pool isNil ifTrue:[
-	Dialog warn:'No such pool: ', poolNameString.
-	^ self.
+        Dialog warn:'No such pool: ', poolNameString.
+        ^ self.
     ].
     pool isSharedPool ifFalse:[
-	Dialog warn:'Not a sharedPool: ',poolNameString.
-	^ self.
+        Dialog warn:'Not a sharedPool: ',poolNameString.
+        ^ self.
     ].
     self browseClassesReferringToAnyPool:(Array with:pool) in:doWhat
 
@@ -24571,22 +25436,22 @@
     searchBlock := [ environment allClasses select:aFilterBlock ].
 
     ^ self
-	spawnClassBrowserForSearch:searchBlock
-	sortBy:nil
-	in:#newBuffer
-	label:aLabelString
+        spawnClassBrowserForSearch:searchBlock
+        sortBy:nil
+        in:#newBuffer
+        label:aLabelString
 !
 
 browseMenuClassesWithInstrumentation
     self
-	browseMenuClassesForWhich:[:cls |
-		|any|
-
-		any := false.
-		cls instAndClassMethods do:[:m | m isInstrumented ifTrue:[any := true]].
-		any
-	]
-	label: 'Classes with Instrumentation'
+        browseMenuClassesForWhich:[:cls |
+                |any|
+
+                any := false.
+                cls instAndClassMethods do:[:m | m isInstrumented ifTrue:[any := true]].
+                any
+        ]
+        label: 'Classes with Instrumentation'
 !
 
 browseMenuClassesWithNameMatching
@@ -24608,27 +25473,27 @@
      existing method from another package"
 
     self withSearchCursorDo:[
-	|newBrowser|
-
-	newBrowser := self
-		    spawnClassExtensionBrowserForSearch:[
-			|classes|
-
-			classes := environment allClassesForWhich:[:someClass |
-			    |include|
-
-			    include := false.
-			    someClass hasExtensions ifTrue:[
-				someClass instAndClassMethodsDo:[:m | m isShadowingExtension ifTrue:[include := true]].
-			    ].
-			    include
-			].
-			classes asOrderedCollection sort:[:a :b | a name < b name]
-		    ]
-		    label:'Classes with Overwritten Methods (Package Conflicts)'
-		    in:openHow.
-
-	"/ newBrowser navigationState selectedProjects value:nil.
+        |newBrowser|
+
+        newBrowser := self
+                    spawnClassExtensionBrowserForSearch:[
+                        |classes|
+
+                        classes := environment allClassesForWhich:[:someClass |
+                            |include|
+
+                            include := false.
+                            someClass hasExtensions ifTrue:[
+                                someClass instAndClassMethodsDo:[:m | m isShadowingExtension ifTrue:[include := true]].
+                            ].
+                            include
+                        ].
+                        classes asOrderedCollection sort:[:a :b | a name < b name]
+                    ]
+                    label:'Classes with Overwritten Methods (Package Conflicts)'
+                    in:openHow.
+
+        "/ newBrowser navigationState selectedProjects value:nil.
     ]
 !
 
@@ -24642,8 +25507,8 @@
     okText2 := 'Open'.        doWhat2 := #newBrowser.
     okText := 'Add Buffer'. doWhat := #newBuffer.
     navigationState isFullBrowser ifTrue:[
-	title := 'Browse/search classes with string in comment/documentation (matchPattern allowed):'.
-	okText3 := 'Find'.       doWhat3 := nil.
+        title := 'Browse/search classes with string in comment/documentation (matchPattern allowed):'.
+        okText3 := 'Find'.       doWhat3 := nil.
     ].
 
     box := EnterBox new.
@@ -24653,7 +25518,7 @@
     box label:(resources string:'Search for documentation string').
     button2 := Button label:(resources string:okText2).
     okText3 notNil ifTrue:[
-	button3 := Button label:(resources string:okText3).
+        button3 := Button label:(resources string:okText3).
     ].
     box addButton:button2 after:(box okButton).
     button3 notNil ifTrue:[box addButton:button3 after:button2].
@@ -24664,62 +25529,62 @@
        box okPressed.
     ].
     button3 notNil ifTrue:[
-	button3 action:[
-			    doWhat := doWhat3.
-			    box doAccept.
-			    box okPressed.
-			].
+        button3 action:[
+                            doWhat := doWhat3.
+                            box doAccept.
+                            box okPressed.
+                        ].
     ].
 
     box action:[:aString | stringToSearch := aString].
     box showAtPointer.
 
     stringToSearch isNil ifTrue:[
-	^ self
+        ^ self
     ].
 
     withMatch := stringToSearch includesMatchCharacters.
     withMatch ifTrue:[
-	stringToSearch := '*' , stringToSearch , '*'
+        stringToSearch := '*' , stringToSearch , '*'
     ].
 
     self withWaitCursorDo:[
-	classes := environment allClasses select:[:cls |
-			|s m found|
-
-			(cls isLoaded and:[cls isMeta not]) ifTrue:[
-			    self activityNotification:('searching %1 ...' bindWith:cls name).
-			    found := false.
-			    (s := cls comment) notNil ifTrue:[
-				withMatch ifTrue:[
-				    found := stringToSearch match:s
-				] ifFalse:[
-				    found := s includesString:stringToSearch
-				]
-			    ].
-			    (m := cls theMetaclass compiledMethodAt:#documentation) notNil
-			    ifTrue:[
-				s := m source ? ''.
-				withMatch ifTrue:[
-				    found := stringToSearch match:s
-				] ifFalse:[
-				    found := s includesString:stringToSearch
-				]
-
-			    ]
-		       ].
-		    ].
-	classes := classes asOrderedCollection.
+        classes := environment allClasses select:[:cls |
+                        |s m found|
+
+                        (cls isLoaded and:[cls isMeta not]) ifTrue:[
+                            self activityNotification:('searching %1 ...' bindWith:cls name).
+                            found := false.
+                            (s := cls comment) notNil ifTrue:[
+                                withMatch ifTrue:[
+                                    found := stringToSearch match:s
+                                ] ifFalse:[
+                                    found := s includesString:stringToSearch
+                                ]
+                            ].
+                            (m := cls theMetaclass compiledMethodAt:#documentation) notNil
+                            ifTrue:[
+                                s := m source ? ''.
+                                withMatch ifTrue:[
+                                    found := stringToSearch match:s
+                                ] ifFalse:[
+                                    found := s includesString:stringToSearch
+                                ]
+
+                            ]
+                       ].
+                    ].
+        classes := classes asOrderedCollection.
     ].
     self activityNotification:nil.
 
     classes size == 0 ifTrue:[
-	self information:'None found.'.
-	^ self
+        self information:'None found.'.
+        ^ self
     ].
 
     ((doWhat == #newBrowser) or:[doWhat == #newBuffer]) ifTrue:[
-	^ self spawnClassBrowserFor:classes in:doWhat
+        ^ self spawnClassBrowserFor:classes in:doWhat
     ].
     self selectClasses:classes.
 
@@ -24767,16 +25632,16 @@
 '.
 
     LastClassFilterBlockString isNil ifTrue:[
-	LastClassFilterBlockString := template.
+        LastClassFilterBlockString := template.
     ].
 
     textHolder := ValueHolder new.
     dialog := Dialog
-		 forRequestText:(resources string:'Enter filterBlock')
-		 lines:25
-		 columns:70
-		 initialAnswer:LastClassFilterBlockString
-		 model:textHolder.
+                 forRequestText:(resources string:'Enter filterBlock')
+                 lines:25
+                 columns:70
+                 initialAnswer:LastClassFilterBlockString
+                 model:textHolder.
     dialog addButton:(Button label:'Template' action:[textHolder value:template. textHolder changed:#value.]).
     dialog open.
     dialog accepted ifFalse:[^ self].
@@ -24797,8 +25662,8 @@
 
     sourceCodeManager := Smalltalk at: #CVSSourceCodeManager.
     sourceCodeManager isNil ifTrue: [
-	Dialog warn: 'CVS Source Code Manager is not available'.
-	^ self.
+        Dialog warn: 'CVS Source Code Manager is not available'.
+        ^ self.
     ].
     ^ self browseMenuClassesWithoutRepositoryContainerFor:sourceCodeManager
 
@@ -24809,16 +25674,16 @@
     |searchBlock|
 
     searchBlock :=
-	    [|classes|
-
-	    classes := self findClassesWithoutClassMethod:#copyright.
-	    classes := classes reject:[:each | each isPrivate].
-	    classes].
-    self
-	spawnClassBrowserForSearch:searchBlock
-	sortBy:nil
-	in:#newBuffer
-	label:'Classes without copyright'
+            [|classes|
+
+            classes := self findClassesWithoutClassMethod:#copyright.
+            classes := classes reject:[:each | each isPrivate].
+            classes].
+    self
+        spawnClassBrowserForSearch:searchBlock
+        sortBy:nil
+        in:#newBuffer
+        label:'Classes without copyright'
 
     "Modified: / 11-07-2010 / 16:42:04 / cg"
 !
@@ -24827,8 +25692,8 @@
     |searchBlock|
 
     searchBlock := [
-			self findClassesWithoutClassMethod:#documentation
-		   ].
+                        self findClassesWithoutClassMethod:#documentation
+                   ].
 
     self spawnClassBrowserForSearch:searchBlock sortBy:nil in:#newBuffer label:'Classes without documentation'
 !
@@ -24838,14 +25703,14 @@
 
     searchBlock := [    |classes|
 
-			classes := self findClassesWithoutClassMethod:#examples.
-			classes
-			    select:[:each |
-					(each isPrivate not
-					    or:[classes includes:each owningClass])
-					and:[ (each isSubclassOf:Exception) not ]
-			    ].
-		   ].
+                        classes := self findClassesWithoutClassMethod:#examples.
+                        classes
+                            select:[:each |
+                                        (each isPrivate not
+                                            or:[classes includes:each owningClass])
+                                        and:[ (each isSubclassOf:Exception) not ]
+                            ].
+                   ].
 
     self spawnClassBrowserForSearch:searchBlock sortBy:nil in:#newBuffer label:'Classes without examples'
 
@@ -24858,20 +25723,20 @@
     nameOfVersionMethodInClasses := aSourceCodeManager nameOfVersionMethodInClasses.
 
     searchBlock := [
-			|classesWithVersion classesWithVersionSVN classesWithoutBoth|
-
-			classesWithVersion := self findClassesWithoutClassMethod:#version.
-			classesWithVersion := classesWithVersion reject:[:each | each isPrivate].
-			classesWithVersionSVN := self findClassesWithoutClassMethod: nameOfVersionMethodInClasses.
-			classesWithVersionSVN := classesWithVersionSVN select:[:each | each isPrivate not].
-			classesWithoutBoth := classesWithVersion asSet intersect: classesWithVersionSVN.
-		   ].
-
-    ^ self
-	spawnClassBrowserForSearch:searchBlock
-	sortBy:nil
-	in:#newBuffer
-	label:(resources string:'Classes without %1 repository container' with:aSourceCodeManager managerTypeName)
+                        |classesWithVersion classesWithVersionSVN classesWithoutBoth|
+
+                        classesWithVersion := self findClassesWithoutClassMethod:#version.
+                        classesWithVersion := classesWithVersion reject:[:each | each isPrivate].
+                        classesWithVersionSVN := self findClassesWithoutClassMethod: nameOfVersionMethodInClasses.
+                        classesWithVersionSVN := classesWithVersionSVN select:[:each | each isPrivate not].
+                        classesWithoutBoth := classesWithVersion asSet intersect: classesWithVersionSVN.
+                   ].
+
+    ^ self
+        spawnClassBrowserForSearch:searchBlock
+        sortBy:nil
+        in:#newBuffer
+        label:(resources string:'Classes without %1 repository container' with:aSourceCodeManager managerTypeName)
 
     "Created: / 19-04-2011 / 11:51:38 / cg"
 !
@@ -24881,8 +25746,8 @@
 
     sourceCodeManager := Smalltalk at: #SVNSourceCodeManager.
     sourceCodeManager isNil ifTrue: [
-	Dialog warn: 'SVN Source Code Manager is not available'.
-	^ self.
+        Dialog warn: 'SVN Source Code Manager is not available'.
+        ^ self.
     ].
     ^ self browseMenuClassesWithoutRepositoryContainerFor:sourceCodeManager
 
@@ -24893,22 +25758,23 @@
     |browser categoryListApp|
 
     self window sensor shiftDown ifTrue:[
-	"/ temporary: allow old browser to be used
-	SystemBrowser openInClass:(self theSingleSelectedClass) selector:(self theSingleSelectedSelector).
-	^ self
+        "/ temporary: allow old browser to be used
+        SystemBrowser openInClass:(self theSingleSelectedClass) selector:(self theSingleSelectedSelector).
+        ^ self
     ].
 
     "/ do not use self class new here - to avoid using obsolete classes instances
     "/ while working on the browser itself ...
     browser := (Smalltalk at:self class name) new.
+    browser environment: self environment.
     browser allButOpen.
     browser setupNavigationStateFrom:navigationState.
     browser window extent:(self window extent).
 
     self currentNamespace ~~ Smalltalk ifTrue:[
-	(categoryListApp := browser categoryListApp) notNil ifTrue:[
-	    categoryListApp nameSpaceFilter value:(self navigationState selectedNamespaces value copy)
-	].
+        (categoryListApp := browser categoryListApp) notNil ifTrue:[
+            categoryListApp nameSpaceFilter value:(self navigationState selectedNamespaces value copy)
+        ].
     ].
 
     browser openWindow.
@@ -24916,23 +25782,24 @@
     ^ browser.
 
     "Modified: / 08-08-2010 / 15:19:13 / cg"
+    "Modified: / 27-04-2014 / 11:07:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 browseMenuDeprecatedMethods
     ^ self
-	askForMethodAndSpawnSearchTitle:'Search for Deprecated Methods in:'
-	browserLabel:(LabelAndIcon icon:(self class menuIcon) string:'Deprecated Methods')
-	searchWith:[:classes | self class findMethodsIn:classes where:[:c :m :sel | m isObsolete]]
-	searchArea:(self defaultSearchArea)
+        askForMethodAndSpawnSearchTitle:'Search for Deprecated Methods in:'
+        browserLabel:(LabelAndIcon icon:(self class menuIcon) string:'Deprecated Methods')
+        searchWith:[:classes | self class findMethodsIn:classes where:[:c :m :sel | m isObsolete]]
+        searchArea:(self defaultSearchArea)
 !
 
 browseMenuHTTPServiceClasses
     "add a new buffer on all web service classes"
 
     self
-	browseMenuClassesForWhich:[:cls | cls isBrowserStartable
-					  and:[cls inheritsFrom:HTTPService]]
-	label: 'Web Services'
+        browseMenuClassesForWhich:[:cls | cls isBrowserStartable
+                                          and:[cls inheritsFrom:HTTPService]]
+        label: 'Web Services'
 
     "Created: / 20-07-2007 / 10:02:14 / cg"
 !
@@ -24958,37 +25825,37 @@
     |searchBlock|
 
     searchBlock :=
-	[
-	    |methods methodsInOrder|
-
-	    aSetOfChangeSets do:[:eachChangeSet |
-		methods := IdentitySet new.
-		methodsInOrder := OrderedCollection new.
-
-		eachChangeSet reverseDo:[:aChange |
-		    |cls selector method|
-
-		    (aChange isMethodChange) ifTrue:[
-			(cls := aChange changeClass) notNil ifTrue:[
-			    method := cls compiledMethodAt:aChange selector.
-			    method notNil ifTrue:[
-				(methods includes:method) ifFalse:[
-				    methods add:method.
-				    methodsInOrder add:method.
-				]
-			    ]
-			]
-		    ].
-		].
-	    ].
-	    methodsInOrder
+        [
+            |methods methodsInOrder|
+
+            aSetOfChangeSets do:[:eachChangeSet |
+                methods := IdentitySet new.
+                methodsInOrder := OrderedCollection new.
+
+                eachChangeSet reverseDo:[:aChange |
+                    |cls selector method|
+
+                    (aChange isMethodChange) ifTrue:[
+                        (cls := aChange changeClass) notNil ifTrue:[
+                            method := cls compiledMethodAt:aChange selector.
+                            method notNil ifTrue:[
+                                (methods includes:method) ifFalse:[
+                                    methods add:method.
+                                    methodsInOrder add:method.
+                                ]
+                            ]
+                        ]
+                    ].
+                ].
+            ].
+            methodsInOrder
       ].
 
     ^ self
-	spawnMethodBrowserForSearch:searchBlock
-	sortBy:"false" #class
-	in:openHow
-	label:'Changed methods'
+        spawnMethodBrowserForSearch:searchBlock
+        sortBy:"false" #class
+        in:openHow
+        label:'Changed methods'
 !
 
 browseMenuMethodsInCurrentChangeSet
@@ -25009,24 +25876,27 @@
     "launch an enterBox for area to search in"
 
     ^ self
-	askForMethodAndSpawnSearchTitle:'Search for Annotated Methods:)'
-	browserLabel:'Annotated Methods'
-	searchWith:[:resourceOrEmpty :classes :ignoreCase :doMatch |
-	    self class findResource:resourceOrEmpty match:doMatch ignoreCase:ignoreCase in:classes.
-	    self class
-		findMethodsIn:classes
-		where:[:c :m :sel |
-		    m hasAnnotation
-		    and:[ m annotations contains:[:a | a isArray not and:[ a isResource not ] ]]
-		]
-	]
-	searchWhat:#annotation
-	searchArea:(self defaultSearchArea)
-	withCaseIgnore:false
-	withTextEntry:false
-	withMatch:false
-	withMethodList:false
-	setSearchPattern:nil
+        askForMethodAndSpawnSearchTitle:'Search for Annotated Methods:'
+        browserLabel:'Annotated Methods'
+        searchWith:[:annotationOrEmpty :classes :ignoreCase :doMatch |
+            "/ self class findResource:resourceOrEmpty match:doMatch ignoreCase:ignoreCase in:classes.
+            self class
+                findMethodsIn:classes
+                where:[:c :m :sel |
+                    m hasAnnotation
+                    and:[ (m annotations contains:[:a | a isArray or:[ a isResource not ]] )
+                    and:[ annotationOrEmpty isEmpty
+                          or:[ annotationOrEmpty = '*'
+                          or:[ m annotations contains:[:a |a printString matches:'*',annotationOrEmpty,'*']]]]]
+                ]
+        ]
+        searchWhat:#annotation
+        searchArea:(self defaultSearchArea)
+        withCaseIgnore:false
+        withTextEntry:true
+        withMatch:true
+        withMethodList:false
+        setSearchPattern:nil
 
     "Created: / 18-07-2012 / 19:26:56 / cg"
 !
@@ -25046,19 +25916,19 @@
 "/    ].
 
     self
-	askForMethodAndSpawnSearchTitle:'Code to Search:'
-	browserLabel:'Methods containing code'
-	searchWith:#( #'findCode:in:isMethod:' #'findCode:inMethods:isMethod:' )
-	searchWhat:#code
-	searchArea:whereDefault
-	withCaseIgnore:false
-	withTextEntry:true
-	withMethodList:true
-	setSearchPattern:[:brwsr :codePattern :isMethodSearch :doMatch|
-			    isMethodSearch ifFalse:[
-				brwsr autoSearchCodePattern:codePattern
-			    ]
-			 ]
+        askForMethodAndSpawnSearchTitle:'Code to Search:'
+        browserLabel:'Methods containing code'
+        searchWith:#( #'findCode:in:isMethod:' #'findCode:inMethods:isMethod:' )
+        searchWhat:#code
+        searchArea:whereDefault
+        withCaseIgnore:false
+        withTextEntry:true
+        withMethodList:true
+        setSearchPattern:[:brwsr :codePattern :isMethodSearch :doMatch|
+                            isMethodSearch ifFalse:[
+                                brwsr autoSearchCodePattern:codePattern
+                            ]
+                         ]
 !
 
 browseMenuMethodsWithExceptionHandlers
@@ -25069,15 +25939,15 @@
     whereDefault := SearchDialog lastCodeSearchArea ? #everywhere.
 
     self
-	askForMethodAndSpawnSearchTitle:'Search Exception Raisers:'
-	browserLabel:'Methods containing Exception Raisers'
-	searchWith:#( #'findExceptionHandlersIn:' #'findExceptionHandlersInMethods:' )
-	searchWhat:nil
-	searchArea:whereDefault
-	withCaseIgnore:false
-	withTextEntry:false
-	withMethodList:true
-	setSearchPattern:[:brwsr :codePattern :isMethodSearch :doMatch | ]
+        askForMethodAndSpawnSearchTitle:'Search Exception Raisers:'
+        browserLabel:'Methods containing Exception Raisers'
+        searchWith:#( #'findExceptionHandlersIn:' #'findExceptionHandlersInMethods:' )
+        searchWhat:nil
+        searchArea:whereDefault
+        withCaseIgnore:false
+        withTextEntry:false
+        withMethodList:true
+        setSearchPattern:[:brwsr :codePattern :isMethodSearch :doMatch | ]
 
     "Created: / 11-05-2010 / 14:19:27 / cg"
 !
@@ -25090,15 +25960,15 @@
     whereDefault := SearchDialog lastCodeSearchArea ? #everywhere.
 
     self
-	askForMethodAndSpawnSearchTitle:'Search Exception Raisers:'
-	browserLabel:'Methods containing Exception Raisers'
-	searchWith:#( #'findExceptionRaisersIn:' #'findExceptionRaisersInMethods:' )
-	searchWhat:nil
-	searchArea:whereDefault
-	withCaseIgnore:false
-	withTextEntry:false
-	withMethodList:true
-	setSearchPattern:[:brwsr :codePattern :isMethodSearch :doMatch | ]
+        askForMethodAndSpawnSearchTitle:'Search Exception Raisers:'
+        browserLabel:'Methods containing Exception Raisers'
+        searchWith:#( #'findExceptionRaisersIn:' #'findExceptionRaisersInMethods:' )
+        searchWhat:nil
+        searchArea:whereDefault
+        withCaseIgnore:false
+        withTextEntry:false
+        withMethodList:true
+        setSearchPattern:[:brwsr :codePattern :isMethodSearch :doMatch | ]
 
     "Created: / 11-05-2010 / 14:19:14 / cg"
 !
@@ -25108,43 +25978,43 @@
 
     whereDefault := self defaultSearchArea.
     ^ self
-	askForMethodAndSpawnSearchTitle:'Search for Methods with Library Calls (FFI):'
-	browserLabel:'Library Calls (FFI)'
-	searchWith:[:classes |
-		       self class
-			    findMethodsIn:classes
-			    where:[:cls :mthd :sel |
-					mthd isExternalLibraryFunctionCall
-				  ]
-		   ]
-	searchArea:whereDefault
+        askForMethodAndSpawnSearchTitle:'Search for Methods with Library Calls (FFI):'
+        browserLabel:'Library Calls (FFI)'
+        searchWith:[:classes |
+                       self class
+                            findMethodsIn:classes
+                            where:[:cls :mthd :sel |
+                                        mthd isExternalLibraryFunctionCall
+                                  ]
+                   ]
+        searchArea:whereDefault
 !
 
 browseMenuMethodsWithHelpSpec
     "launch an enterBox for area to search in"
 
     ^ self
-	askForMethodAndSpawnSearchTitle:'Search for help texts (helpSpec methods) in:'
-	browserLabel:(LabelAndIcon icon:(self class menuIcon) string:'Help')
-	searchWith:[:classes | self class findResource:#(help) in:classes]
-	searchArea:(self defaultSearchArea)
+        askForMethodAndSpawnSearchTitle:'Search for help texts (helpSpec methods) in:'
+        browserLabel:(LabelAndIcon icon:(self class menuIcon) string:'Help')
+        searchWith:[:classes | self class findResource:#(help) in:classes]
+        searchArea:(self defaultSearchArea)
 !
 
 browseMenuMethodsWithImageSpec
     "launch an enterBox for area to search in"
 
     ^ self
-	askForMethodAndSpawnSearchTitle:'Search for images (imageSpec methods) in:'
-	browserLabel:(LabelAndIcon icon:(self class imageIcon) string:'Images')  " 'Images' "
-	searchWith:[:classes | self class findResource:#(image fileImage) in:classes]
-	searchArea:(self defaultSearchArea)
+        askForMethodAndSpawnSearchTitle:'Search for images (imageSpec methods) in:'
+        browserLabel:(LabelAndIcon icon:(self class imageIcon) string:'Images')  " 'Images' "
+        searchWith:[:classes | self class findResource:#(image fileImage) in:classes]
+        searchArea:(self defaultSearchArea)
 !
 
 browseMenuMethodsWithInstrumentation
     ^ self
-	browseMethodsForWhich:[:mthd | mthd isInstrumented]
-	in:#newBuffer
-	label:'Instrumented Methods'
+        browseMethodsForWhich:[:mthd | mthd isInstrumented]
+        in:#newBuffer
+        label:'Instrumented Methods'
 
 "/    |whereDefault|
 "/
@@ -25166,45 +26036,45 @@
     |whereDefault codeStrings matcher|
 
     codeStrings  :=
-	#(
-		'Transcript `@msg: `@args'
-		'`@any halt'
-		'true ifTrue: `@stuff'
-		'true ifFalse: `@stuff'
-		'false ifTrue: `@stuff'
-		'false ifFalse: `@stuff'
-		'`@any handle:[] do:`@anyBlock'
-		'`@any handle:[:ex | ] do:`@anyBlock'
-		'`@any needsWork'
-		'#needsWork'
-		'#todo'
-	).
+        #(
+                'Transcript `@msg: `@args'
+                '`@any halt'
+                'true ifTrue: `@stuff'
+                'true ifFalse: `@stuff'
+                'false ifTrue: `@stuff'
+                'false ifFalse: `@stuff'
+                '`@any handle:[] do:`@anyBlock'
+                '`@any handle:[:ex | ] do:`@anyBlock'
+                '`@any needsWork'
+                '#needsWork'
+                '#todo'
+        ).
 
     matcher := ParseTreeSearcher new.
     matcher matchesAnyOf: codeStrings do: [:aNode :answer | aNode].
 
     whereDefault := self defaultSearchArea.
     ^ self
-	askForMethodAndSpawnSearchTitle:'Search for methods with possible leftOver debug code in:'
-	browserLabel:'Methods with leftOver debug code'
-	searchWith:[:classes |
-		       self class
-			    findMethodsIn:classes
-			    where:[:cls :mthd :sel |
-					self method:mthd selector:sel inClass:cls matchesParseTreeMatcher:matcher
-				  ]
-		   ]
-	searchArea:whereDefault
+        askForMethodAndSpawnSearchTitle:'Search for methods with possible leftOver debug code in:'
+        browserLabel:'Methods with leftOver debug code'
+        searchWith:[:classes |
+                       self class
+                            findMethodsIn:classes
+                            where:[:cls :mthd :sel |
+                                        self method:mthd selector:sel inClass:cls matchesParseTreeMatcher:matcher
+                                  ]
+                   ]
+        searchArea:whereDefault
 !
 
 browseMenuMethodsWithMenuSpec
     "launch an enterBox for area to search in"
 
     ^ self
-	askForMethodAndSpawnSearchTitle:'Search for menus (menuSpec methods) in:'
-	browserLabel:(LabelAndIcon icon:(self class menuIcon) string:'Menus') "'Menus'"
-	searchWith:[:classes | self class findResource:#(menu programMenu) in:classes]
-	searchArea:(self defaultSearchArea)
+        askForMethodAndSpawnSearchTitle:'Search for menus (menuSpec methods) in:'
+        browserLabel:(LabelAndIcon icon:(self class menuIcon) string:'Menus') "'Menus'"
+        searchWith:[:classes | self class findResource:#(menu programMenu) in:classes]
+        searchArea:(self defaultSearchArea)
 !
 
 browseMenuMethodsWithPrimitiveCode
@@ -25212,34 +26082,34 @@
 
     whereDefault := self defaultSearchArea.
     ^ self
-	askForMethodAndSpawnSearchTitle:'Search for Methods with Primitive Code:'
-	browserLabel:'Primitive Code'
-	searchWith:[:classes |
-		       self class
-			    findMethodsIn:classes
-			    where:[:cls :mthd :sel |
-					mthd hasPrimitiveCode
-				  ]
-		   ]
-	searchArea:whereDefault
+        askForMethodAndSpawnSearchTitle:'Search for Methods with Primitive Code:'
+        browserLabel:'Primitive Code'
+        searchWith:[:classes |
+                       self class
+                            findMethodsIn:classes
+                            where:[:cls :mthd :sel |
+                                        mthd hasPrimitiveCode
+                                  ]
+                   ]
+        searchArea:whereDefault
 !
 
 browseMenuMethodsWithResource
     "launch an enterBox for area to search in"
 
     ^ self
-	askForMethodAndSpawnSearchTitle:'Search for Resource Methods:\\Resource (empty for any; matchpattern allowed)'
-	browserLabel:'Resources'
-	searchWith:[:resourceOrEmpty :classes :ignoreCase :doMatch |
-	    self class findResource:resourceOrEmpty match:doMatch ignoreCase:ignoreCase in:classes
-	]
-	searchWhat:#resource
-	searchArea:(self defaultSearchArea)
-	withCaseIgnore:true
-	withTextEntry:true
-	withMatch:true
-	withMethodList:false
-	setSearchPattern:nil
+        askForMethodAndSpawnSearchTitle:'Search for Resource Methods:\\Resource (empty for any; matchpattern allowed)'
+        browserLabel:'Resources'
+        searchWith:[:resourceOrEmpty :classes :ignoreCase :doMatch |
+            self class findResource:resourceOrEmpty match:doMatch ignoreCase:ignoreCase in:classes
+        ]
+        searchWhat:#resource
+        searchArea:(self defaultSearchArea)
+        withCaseIgnore:true
+        withTextEntry:true
+        withMatch:true
+        withMethodList:false
+        setSearchPattern:nil
 
 "/    ^ self
 "/        askForMethodAndSpawnSearchTitle:'Search for resource methods in:'
@@ -25256,30 +26126,30 @@
     |whereDefault|
 
     self isMethodListBrowser ifTrue:[
-	whereDefault := SearchDialog constantForListOfMethodsArea.
-    ] ifFalse:[
-	whereDefault := SearchDialog lastStringSearchArea ? self defaultSearchArea.
-
-	whereDefault == #classes ifTrue:[
-	    (self hasAnyMethodSelectedForWhich:[:m | m mclass notNil and:[m mclass isPrivate]])
-	    ifTrue:[
-		whereDefault := #ownersWithPrivateClasses
-	    ]
-	].
-    ].
-
-    self
-	askForMethodAndSpawnSearchTitle:'String to Search for in Sources:'
-	browserLabel:'Methods containing "%1"'
-	searchWith:#( #'findString:in:ignoreCase:match:' #'findString:inMethods:ignoreCase:match:' )
-	searchWhat:#string
-	searchArea:whereDefault
-	withCaseIgnore:true
-	withTextEntry:true
-	withMethodList:true
-	setSearchPattern:[:brwsr :string :ignoreCase :doMatch|
-			    brwsr autoSearchPattern:string ignoreCase:ignoreCase.
-			 ]
+        whereDefault := SearchDialog constantForListOfMethodsArea.
+    ] ifFalse:[
+        whereDefault := SearchDialog lastStringSearchArea ? self defaultSearchArea.
+
+        whereDefault == #classes ifTrue:[
+            (self hasAnyMethodSelectedForWhich:[:m | m mclass notNil and:[m mclass isPrivate]])
+            ifTrue:[
+                whereDefault := #ownersWithPrivateClasses
+            ]
+        ].
+    ].
+
+    self
+        askForMethodAndSpawnSearchTitle:'String to Search for in Sources:'
+        browserLabel:'Methods containing "%1"'
+        searchWith:#( #'findString:in:ignoreCase:match:' #'findString:inMethods:ignoreCase:match:' )
+        searchWhat:#string
+        searchArea:whereDefault
+        withCaseIgnore:true
+        withTextEntry:true
+        withMethodList:true
+        setSearchPattern:[:brwsr :string :ignoreCase :doMatch|
+                            brwsr autoSearchPattern:string ignoreCase:ignoreCase.
+                         ]
 
     "Modified: / 28-02-2012 / 16:40:11 / cg"
 !
@@ -25291,20 +26161,20 @@
 
     whereDefault := self defaultSearchArea.
     whereDefault == #classes ifTrue:[
-	(self hasAnyMethodSelectedForWhich:[:m | m mclass isPrivate]) ifTrue:[
-	    whereDefault := #ownersWithPrivateClasses
-	]
-    ].
-    self
-	askForMethodAndSpawnSearchTitle:'String to search for in help spec methods:'
-	browserLabel:'HelpSpec Methods containing "%1"'
-	searchWith:#findHelpSpecMethodsWithString:in:ignoreCase:match:
-	searchWhat:#string
-	searchArea:whereDefault
-	withCaseIgnore:true
-	setSearchPattern:[:brwsr :string :ignoreCase :doMatch|
-			    brwsr autoSearchPattern:string ignoreCase:ignoreCase.
-			 ]
+        (self hasAnyMethodSelectedForWhich:[:m | m mclass isPrivate]) ifTrue:[
+            whereDefault := #ownersWithPrivateClasses
+        ]
+    ].
+    self
+        askForMethodAndSpawnSearchTitle:'String to search for in help spec methods:'
+        browserLabel:'HelpSpec Methods containing "%1"'
+        searchWith:#findHelpSpecMethodsWithString:in:ignoreCase:match:
+        searchWhat:#string
+        searchArea:whereDefault
+        withCaseIgnore:true
+        setSearchPattern:[:brwsr :string :ignoreCase :doMatch|
+                            brwsr autoSearchPattern:string ignoreCase:ignoreCase.
+                         ]
 
     "Modified: / 28-02-2012 / 16:40:37 / cg"
 !
@@ -25316,20 +26186,20 @@
 
     whereDefault := self defaultSearchArea.
     whereDefault == #classes ifTrue:[
-	(self hasAnyMethodSelectedForWhich:[:m | m mclass isPrivate]) ifTrue:[
-	    whereDefault := #ownersWithPrivateClasses
-	]
-    ].
-    self
-	askForMethodAndSpawnSearchTitle:'String to search for in menu spec methods:'
-	browserLabel:'MenuSpec Methods containing "%1"'
-	searchWith:#'findMenuSpecMethodsWithString:in:ignoreCase:match:'
-	searchWhat:#string
-	searchArea:whereDefault
-	withCaseIgnore:true
-	setSearchPattern:[:brwsr :string :ignoreCase :doMatch|
-			    brwsr autoSearchPattern:string ignoreCase:ignoreCase.
-			 ]
+        (self hasAnyMethodSelectedForWhich:[:m | m mclass isPrivate]) ifTrue:[
+            whereDefault := #ownersWithPrivateClasses
+        ]
+    ].
+    self
+        askForMethodAndSpawnSearchTitle:'String to search for in menu spec methods:'
+        browserLabel:'MenuSpec Methods containing "%1"'
+        searchWith:#'findMenuSpecMethodsWithString:in:ignoreCase:match:'
+        searchWhat:#string
+        searchArea:whereDefault
+        withCaseIgnore:true
+        setSearchPattern:[:brwsr :string :ignoreCase :doMatch|
+                            brwsr autoSearchPattern:string ignoreCase:ignoreCase.
+                         ]
 
     "Modified: / 28-02-2012 / 16:40:54 / cg"
 !
@@ -25349,27 +26219,27 @@
 "/    ].
 
     self
-	askForMethodAndSpawnSearchTitle:'Search Matchstring in Literal-Strings:'
-	browserLabel:'Methods with Literal-String Matching'
-	searchWith:#( #'findStringLiteral:in:ignoreCase:match:' #'findStringLiteral:inMethods:ignoreCase:match:' )
-	searchWhat:#string
-	searchArea:whereDefault
-	withCaseIgnore:true
-	withTextEntry:true
-	withMethodList:true
-	setSearchPattern:[:brwsr :string :ignoreCase :doMatch|
-			    brwsr autoSearchPattern:string ignoreCase:ignoreCase.
-			 ]
+        askForMethodAndSpawnSearchTitle:'Search Matchstring in Literal-Strings:'
+        browserLabel:'Methods with Literal-String Matching'
+        searchWith:#( #'findStringLiteral:in:ignoreCase:match:' #'findStringLiteral:inMethods:ignoreCase:match:' )
+        searchWhat:#string
+        searchArea:whereDefault
+        withCaseIgnore:true
+        withTextEntry:true
+        withMethodList:true
+        setSearchPattern:[:brwsr :string :ignoreCase :doMatch|
+                            brwsr autoSearchPattern:string ignoreCase:ignoreCase.
+                         ]
 !
 
 browseMenuMethodsWithTableSpec
     "launch an enterBox for area to search in"
 
     ^ self
-	askForMethodAndSpawnSearchTitle:'Search for tableSpec methods in:'
-	browserLabel:(LabelAndIcon icon:(self class menuIcon) string:'TableSpecs')
-	searchWith:[:classes | self class findResource:#(tableColumns) in:classes]
-	searchArea:(self defaultSearchArea)
+        askForMethodAndSpawnSearchTitle:'Search for tableSpec methods in:'
+        browserLabel:(LabelAndIcon icon:(self class menuIcon) string:'TableSpecs')
+        searchWith:[:classes | self class findResource:#(tableColumns) in:classes]
+        searchArea:(self defaultSearchArea)
 !
 
 browseMenuMethodsWithUglyCodingStyle
@@ -25377,19 +26247,19 @@
 
     whereDefault := self defaultSearchArea.
     ^ self
-	askForMethodAndSpawnSearchTitle:'Search for methods with ugly coding style in:'
-	browserLabel:'Methods with ugly coding style'
-	searchWith:[:classes |
-		       self class
-			    findMethodsIn:classes
-			    where:[:cls :mthd :sel |
-					|note|
-
-					note := self methodHasUglyCodingStyle:mthd selector:sel inClass:cls.
-					note notNil
-				  ]
-		   ]
-	searchArea:whereDefault
+        askForMethodAndSpawnSearchTitle:'Search for methods with ugly coding style in:'
+        browserLabel:'Methods with ugly coding style'
+        searchWith:[:classes |
+                       self class
+                            findMethodsIn:classes
+                            where:[:cls :mthd :sel |
+                                        |note|
+
+                                        note := self methodHasUglyCodingStyle:mthd selector:sel inClass:cls.
+                                        note notNil
+                                  ]
+                   ]
+        searchArea:whereDefault
 !
 
 browseMenuMethodsWithUserFilter
@@ -25463,17 +26333,17 @@
 '.
 
     LastMethodFilterBlockString isNil ifTrue:[
-	LastMethodFilterBlockString := template.
+        LastMethodFilterBlockString := template.
     ].
 
     textHolder := ValueHolder new.
     dialog := Dialog
-		 forRequestText:(resources string:'Enter filterBlock')
-		 editViewClass:CodeView
-		 lines:25
-		 columns:70
-		 initialAnswer:LastMethodFilterBlockString
-		 model:textHolder.
+                 forRequestText:(resources string:'Enter filterBlock')
+                 editViewClass:CodeView
+                 lines:25
+                 columns:70
+                 initialAnswer:LastMethodFilterBlockString
+                 model:textHolder.
     dialog addButton:(Button label:'Template' action:[textHolder value:template. textHolder changed:#value.]).
     dialog open.
     dialog accepted ifFalse:[^ self].
@@ -25482,11 +26352,11 @@
     LastMethodFilterBlockString := filterBlockString.
 
     dummyMethod := Compiler
-			 compile:('dummy ^' , filterBlockString)
-			 forClass:UndefinedObject
-			 inCategory:nil
-			 notifying:nil
-			 install:false.
+                         compile:('dummy ^' , filterBlockString)
+                         forClass:UndefinedObject
+                         inCategory:nil
+                         notifying:nil
+                         install:false.
 
 "/    filterBlock := Parser evaluate:filterBlockString.
 "/    filterBlock isBlock ifFalse:[
@@ -25494,20 +26364,20 @@
     (dummyMethod isMethod not
     or:[(filterBlock := dummyMethod valueWithReceiver:nil arguments:nil) isBlock not])
     ifTrue:[
-	self error:'bad input'.
-	^ self
+        self error:'bad input'.
+        ^ self
     ].
 
     whereDefault := self defaultSearchArea.
     self
-	askForMethodAndSpawnSearchTitle:'Search for methods in:'
-	browserLabel:'Method-Search'
-	searchWith:[:classes |
-		       self class
-			    findMethodsIn:classes
-			    where:[:cls :mthd :sel | filterBlock value:cls value:mthd value:sel ]
-		   ]
-	searchArea:whereDefault.
+        askForMethodAndSpawnSearchTitle:'Search for methods in:'
+        browserLabel:'Method-Search'
+        searchWith:[:classes |
+                       self class
+                            findMethodsIn:classes
+                            where:[:cls :mthd :sel | filterBlock value:cls value:mthd value:sel ]
+                   ]
+        searchArea:whereDefault.
 
     "Created: / 18.8.2000 / 21:26:37 / cg"
     "Modified: / 18.8.2000 / 21:58:31 / cg"
@@ -25520,10 +26390,10 @@
 
     whereDefault := self defaultSearchArea.
     ^ self
-	askForMethodAndSpawnSearchTitle:'Search for GUI specs (windowSpec methods) in:'
-	browserLabel:(LabelAndIcon icon:(self class canvasIcon) string:'UISpecs') "'UISpecs'"
-	searchWith:[:classes | self class findResource:#canvas in:classes]
-	searchArea:whereDefault
+        askForMethodAndSpawnSearchTitle:'Search for GUI specs (windowSpec methods) in:'
+        browserLabel:(LabelAndIcon icon:(self class canvasIcon) string:'UISpecs') "'UISpecs'"
+        searchWith:[:classes | self class findResource:#canvas in:classes]
+        searchArea:whereDefault
 !
 
 browseMenuMethodsWithWrap
@@ -25531,11 +26401,11 @@
      (i.e. that have a break, trace or watchPoint)"
 
     self
-	spawnMethodBrowserForSearch:[
-	    environment allMethodsForWhich:[:m | m isWrapped or:[m isMethodWithBreakpoints]].
-	]
-	sortBy:#class in:#newBuffer
-	label:'BreakPointed Methods'
+        spawnMethodBrowserForSearch:[
+            environment allMethodsForWhich:[:m | m isWrapped or:[m isMethodWithBreakpoints]].
+        ]
+        sortBy:#class in:#newBuffer
+        label:'BreakPointed Methods'
 !
 
 browseMenuMethodsWithoutComment
@@ -25545,17 +26415,17 @@
 
     whereDefault := self defaultSearchArea.
     ^ self
-	askForMethodAndSpawnSearchTitle:'Search for methods without comment in:'
-	browserLabel:'Methods without comment'
-	searchWith:[:classes |
-		       self class
-			    findMethodsIn:classes
-			    where:[:cls :mthd :sel |
-					(cls isMeta not or:[(AbstractSourceCodeManager isVersionMethodSelector:sel) not])
-					and:[ mthd comment size == 0 ]
-				  ]
-		   ]
-	searchArea:whereDefault
+        askForMethodAndSpawnSearchTitle:'Search for methods without comment in:'
+        browserLabel:'Methods without comment'
+        searchWith:[:classes |
+                       self class
+                            findMethodsIn:classes
+                            where:[:cls :mthd :sel |
+                                        (cls isMeta not or:[(AbstractSourceCodeManager isVersionMethodSelector:sel) not])
+                                        and:[ mthd comment size == 0 ]
+                                  ]
+                   ]
+        searchArea:whereDefault
 !
 
 browseMenuOpenInClass
@@ -25566,17 +26436,17 @@
     "browses extension methods which override a previously existing method from another package"
 
     ^ self
-	browseMethodsForWhich:[:mthd |
-	    |cls def|
-
-	    mthd isShadowingExtension
+        browseMethodsForWhich:[:mthd |
+            |cls def|
+
+            mthd isShadowingExtension
 "/            mthd isExtension
 "/            and:[ (cls := mthd mclass) notNil
 "/            and:[ (def := cls theNonMetaclass projectDefinitionClass) notNil
 "/            and:[ (def savedOverwrittenMethodForClass:cls selector:mthd selector) notNil ]]]
-	]
-	in:openHow
-	label:'Overwritten Methods (Package Conflicts)'
+        ]
+        in:openHow
+        label:'Overwritten Methods (Package Conflicts)'
 !
 
 browseMenuRecentChanges
@@ -25595,135 +26465,135 @@
 
     labelHolder := 'Methods referring to global ''%1''' asValue.
     self
-	askForMethodAndSpawnSearchTitle:'Global to search:\(TAB for completion; matchPattern allowed)'
-	browserLabel:labelHolder
-	searchWith:[:string :classes :dummyIgnoreCase :dummyMatch|
-			|globlNames globlNamesAndSymbols globlName sym baseName matchBlock realClasses val
-			 keysReferringToValue otherKeysReferringToValue msg searchAll|
-
-			globlNames := string withoutSeparators asCollectionOfSubstringsSeparatedByAny:',;| '.
-			globlNames size > 1 ifTrue:[
-			    globlNames := globlNames collect:[:nm | nm asSymbol].
-			    matchBlock := [:cls :mthd :sel |
-					    |mSource usedGlobals|
-
-					    mthd isLazyMethod ifTrue:[
-						mSource := mthd source.
-
-						(mSource notNil
-						and:[(globlNames contains:[:nm |
-							(mSource includesString:nm)
-							and:[
-							   usedGlobals isNil ifTrue:[ usedGlobals := mthd usedGlobals].
-							   usedGlobals includes:nm
-							]])]).
-					    ] ifFalse:[
-						globlNames contains:[:nm |
-							(mthd referencesLiteral:nm)
-							and:[
-							   usedGlobals isNil ifTrue:[ usedGlobals := mthd usedGlobals].
-							   usedGlobals includes:nm
-							]].
-					    ]
-					  ]
-			] ifFalse:[
-			    globlName := globlNames first.
-			    globlName knownAsSymbol ifFalse:[
-				globlName includesMatchCharacters ifFalse:[
-				    ^ self warn:'No such global (''' , globlName , ''')'.
-				].
-				matchBlock := [:cls :mthd :sel |
-						(mthd literals contains:[:lit | globlName match:lit])
-						 and:[mthd usedGlobals contains:[:lit | globlName match:lit] ]
-					      ]
-			    ] ifTrue:[
-				searchAll := false.
-				sym := globlName asSymbol.
-
-				val := globlName lastIndexOf:$:.
-				val ~~ 0 ifTrue:[
-				    baseName := (globlName copyFrom:val+1) asSymbol.
-				] ifFalse:[
-				    baseName := sym.
-				].
-				(val := environment at:sym) isBehavior ifTrue:[
-				    otherKeysReferringToValue := OrderedCollection new.
-				    environment keysAndValuesDo:[:k :v | v == val ifTrue:[
-									   (k ~~ sym and:[k ~~ #'Parser:PrevClass']) ifTrue:[
-									       otherKeysReferringToValue add:k
-									   ]
-								       ]
-							      ].
-				    otherKeysReferringToValue size > 0 ifTrue:[
-					keysReferringToValue := otherKeysReferringToValue copyWith:sym.
-					otherKeysReferringToValue size == 1 ifTrue:[
-					    msg := '''%1'' also refers to that value. Search these references too ?'.
-					    searchAllLabel := 'Methods referring to ''%1'' or ''%2''' bindWithArguments:keysReferringToValue.
-					] ifFalse:[
-					    searchAllLabel := 'Methods referring to the value of ''%1'''.
-					    otherKeysReferringToValue size <= 3 ifTrue:[
-						msg := (otherKeysReferringToValue copyButLast:1) asStringWith:', '.
-						msg := msg , ' and ' , otherKeysReferringToValue last.
-						msg := msg , ' also refer to that value. Search those references too ?'.
-					    ] ifFalse:[
-						msg := 'There are %2 other globals referring to that value. Search those references too ?'.
-					    ]
-					].
-					alreadyAsked isNil ifTrue:[
-					    searchAll := Dialog
-							    confirmWithCancel:(msg bindWith:otherKeysReferringToValue first with:otherKeysReferringToValue size)
-							    default:true.
-					    searchAll isNil ifTrue:[^ self].
-					    alreadyAsked := searchAll.
-					] ifFalse:[
-					    searchAll := alreadyAsked.
-					].
-				    ]
-				].
-				searchAll ifTrue:[
-				    labelHolder value:searchAllLabel.
-				    matchBlock := [:cls :mthd :sel |
-						    "/ kludge: Lazy methods do not include symbols in the literal array - sigh
-						    mthd isLazyMethod ifTrue:[
-							(mthd usedGlobals includesAny:keysReferringToValue)
-						    ] ifFalse:[
-							(keysReferringToValue contains:[:globl | mthd refersToLiteral:globl])
-							and:[mthd usedGlobals includesAny:keysReferringToValue]
-						    ]
-						  ]
-				] ifFalse:[
-				    matchBlock := [:cls :mthd :sel | |mSource|
-						    "/ kludge: Lazy methods do not include symbols in the literal array - sigh
-						    mthd isLazyMethod ifTrue:[
-							mSource := mthd source.
-							(mSource notNil
-							and:[(mSource includesString:baseName)
-							and:[mthd usedGlobals includes:sym]])
-						    ] ifFalse:[
-							(((mthd referencesLiteral:baseName) or:[baseName ~~ sym and:[mthd referencesLiteral:sym]])
-							 and:[mthd usedGlobals includes:sym])
-						    ]
-						  ]
-				]
-			   ].
-		       ].
-		       "/ recollect realClasses from names (in case of class-changes)
-		       realClasses := classes collect:[:eachClass | environment at:eachClass name].
-		       self class
-			       findMethodsIn:realClasses
-			       where:matchBlock
-		   ]
-	searchWhat:#globalName
-	searchArea:#everywhere
-	withCaseIgnore:false
-	setSearchPattern:[:brwsr :string :ignoreCase :doMatch|
-			    |globlNames|
-
-			    globlNames := string withoutSeparators asCollectionOfSubstringsSeparatedByAny:',;| '.
-			    brwsr autoSearchVariables:globlNames.
-
-			    "/ brwsr autoSearchPattern:string ignoreCase:ignoreCase.
-			 ]
+        askForMethodAndSpawnSearchTitle:'Global to search:\(TAB for completion; matchPattern allowed)'
+        browserLabel:labelHolder
+        searchWith:[:string :classes :dummyIgnoreCase :dummyMatch|
+                        |globlNames globlNamesAndSymbols globlName sym baseName matchBlock realClasses val
+                         keysReferringToValue otherKeysReferringToValue msg searchAll|
+
+                        globlNames := string withoutSeparators asCollectionOfSubstringsSeparatedByAny:',;| '.
+                        globlNames size > 1 ifTrue:[
+                            globlNames := globlNames collect:[:nm | nm asSymbol].
+                            matchBlock := [:cls :mthd :sel |
+                                            |mSource usedGlobals|
+
+                                            mthd isLazyMethod ifTrue:[
+                                                mSource := mthd source.
+
+                                                (mSource notNil
+                                                and:[(globlNames contains:[:nm |
+                                                        (mSource includesString:nm)
+                                                        and:[
+                                                           usedGlobals isNil ifTrue:[ usedGlobals := mthd usedGlobals].
+                                                           usedGlobals includes:nm
+                                                        ]])]).
+                                            ] ifFalse:[
+                                                globlNames contains:[:nm |
+                                                        (mthd referencesLiteral:nm)
+                                                        and:[
+                                                           usedGlobals isNil ifTrue:[ usedGlobals := mthd usedGlobals].
+                                                           usedGlobals includes:nm
+                                                        ]].
+                                            ]
+                                          ]
+                        ] ifFalse:[
+                            globlName := globlNames first.
+                            globlName knownAsSymbol ifFalse:[
+                                globlName includesMatchCharacters ifFalse:[
+                                    ^ self warn:'No such global (''' , globlName , ''')'.
+                                ].
+                                matchBlock := [:cls :mthd :sel |
+                                                (mthd literals contains:[:lit | globlName match:lit])
+                                                 and:[mthd usedGlobals contains:[:lit | globlName match:lit] ]
+                                              ]
+                            ] ifTrue:[
+                                searchAll := false.
+                                sym := globlName asSymbol.
+
+                                val := globlName lastIndexOf:$:.
+                                val ~~ 0 ifTrue:[
+                                    baseName := (globlName copyFrom:val+1) asSymbol.
+                                ] ifFalse:[
+                                    baseName := sym.
+                                ].
+                                (val := environment at:sym) isBehavior ifTrue:[
+                                    otherKeysReferringToValue := OrderedCollection new.
+                                    environment keysAndValuesDo:[:k :v | v == val ifTrue:[
+                                                                           (k ~~ sym and:[k ~~ #'Parser:PrevClass']) ifTrue:[
+                                                                               otherKeysReferringToValue add:k
+                                                                           ]
+                                                                       ]
+                                                              ].
+                                    otherKeysReferringToValue size > 0 ifTrue:[
+                                        keysReferringToValue := otherKeysReferringToValue copyWith:sym.
+                                        otherKeysReferringToValue size == 1 ifTrue:[
+                                            msg := '''%1'' also refers to that value. Search these references too ?'.
+                                            searchAllLabel := 'Methods referring to ''%1'' or ''%2''' bindWithArguments:keysReferringToValue.
+                                        ] ifFalse:[
+                                            searchAllLabel := 'Methods referring to the value of ''%1'''.
+                                            otherKeysReferringToValue size <= 3 ifTrue:[
+                                                msg := (otherKeysReferringToValue copyButLast) asStringWith:', '.
+                                                msg := msg , ' and ' , otherKeysReferringToValue last.
+                                                msg := msg , ' also refer to that value. Search those references too ?'.
+                                            ] ifFalse:[
+                                                msg := 'There are %2 other globals referring to that value. Search those references too ?'.
+                                            ]
+                                        ].
+                                        alreadyAsked isNil ifTrue:[
+                                            searchAll := Dialog
+                                                            confirmWithCancel:(msg bindWith:otherKeysReferringToValue first with:otherKeysReferringToValue size)
+                                                            default:true.
+                                            searchAll isNil ifTrue:[^ self].
+                                            alreadyAsked := searchAll.
+                                        ] ifFalse:[
+                                            searchAll := alreadyAsked.
+                                        ].
+                                    ]
+                                ].
+                                searchAll ifTrue:[
+                                    labelHolder value:searchAllLabel.
+                                    matchBlock := [:cls :mthd :sel |
+                                                    "/ kludge: Lazy methods do not include symbols in the literal array - sigh
+                                                    mthd isLazyMethod ifTrue:[
+                                                        (mthd usedGlobals includesAny:keysReferringToValue)
+                                                    ] ifFalse:[
+                                                        (keysReferringToValue contains:[:globl | mthd refersToLiteral:globl])
+                                                        and:[mthd usedGlobals includesAny:keysReferringToValue]
+                                                    ]
+                                                  ]
+                                ] ifFalse:[
+                                    matchBlock := [:cls :mthd :sel | |mSource|
+                                                    "/ kludge: Lazy methods do not include symbols in the literal array - sigh
+                                                    mthd isLazyMethod ifTrue:[
+                                                        mSource := mthd source.
+                                                        (mSource notNil
+                                                        and:[(mSource includesString:baseName)
+                                                        and:[mthd usedGlobals includes:sym]])
+                                                    ] ifFalse:[
+                                                        (((mthd referencesLiteral:baseName) or:[baseName ~~ sym and:[mthd referencesLiteral:sym]])
+                                                         and:[mthd usedGlobals includes:sym])
+                                                    ]
+                                                  ]
+                                ]
+                           ].
+                       ].
+                       "/ recollect realClasses from names (in case of class-changes)
+                       realClasses := classes collect:[:eachClass | environment at:eachClass name].
+                       self class
+                               findMethodsIn:realClasses
+                               where:matchBlock
+                   ]
+        searchWhat:#globalName
+        searchArea:#everywhere
+        withCaseIgnore:false
+        setSearchPattern:[:brwsr :string :ignoreCase :doMatch|
+                            |globlNames|
+
+                            globlNames := string withoutSeparators asCollectionOfSubstringsSeparatedByAny:',;| '.
+                            brwsr autoSearchVariables:globlNames.
+
+                            "/ brwsr autoSearchPattern:string ignoreCase:ignoreCase.
+                         ]
 
     "Modified: / 5.11.2001 / 14:19:22 / cg"
 !
@@ -25732,58 +26602,58 @@
     "launch an enterBox for symbol to search for"
 
     self
-	askForMethodAndSpawnSearchTitle:'Symbol to search:'
-	browserLabel:'Methods referring to #''%1'''
-	searchWith:[:string :classes :dummyIgnoreCase :dummyMatch|
-			|sym stringToSearch searchBlock|
-
-			stringToSearch := string.
-			(string startsWith:'#') ifTrue:[
-			    stringToSearch := Symbol readFrom:string.
-			    Dialog information:'Searching for ',stringToSearch
-			].
-
-			(sym := stringToSearch asSymbolIfInterned) notNil ifTrue:[
-			    searchBlock := [:cls :mthd :sel | |mSource|
-						"/ kludge: stc does not include symbols in the literal array - sigh
-						"/ (also: Lazy methods)
-						mthd byteCode isNil ifTrue:[
-						    mSource := mthd source.
-						    (mSource notNil
-						    and:[(mSource includesString:(sym upTo:$:))
-						    and:[mthd usedSymbols includes:sym]])
-						] ifFalse:[
-						    ((mthd refersToLiteral:sym)
-						     and:[mthd usedSymbols includes:sym])
-						]
-					  ].
-			] ifFalse:[
-			    stringToSearch includesMatchCharacters ifFalse:[
-				^ self warn:'No such symbol'.
-			    ].
-			    searchBlock := [:cls :mthd :sel | |mSource|
-						"/ kludge: stc does not include symbols in the literal array - sigh
-						"/ (also: Lazy methods)
-						mthd byteCode isNil ifTrue:[
-						    mSource := mthd source.
-						    (mSource notNil
-						    and:[mthd usedSymbols contains:[:sym | stringToSearch match:sym]])
-						] ifFalse:[
-						    mthd usedSymbols contains:[:sym | stringToSearch match:sym]
-						]
-					  ].
-			].
-			self class
-				findMethodsIn:classes
-				where:searchBlock
-
-		   ]
-	searchWhat:#selector
-	searchArea:(self defaultSearchArea)
-	withCaseIgnore:false
-	setSearchPattern:[:brwsr :string :ignoreCase :doMatch|
-			    brwsr autoSearchPattern:string ignoreCase:ignoreCase.
-			 ]
+        askForMethodAndSpawnSearchTitle:'Symbol to search:'
+        browserLabel:'Methods referring to #''%1'''
+        searchWith:[:string :classes :dummyIgnoreCase :dummyMatch|
+                        |sym stringToSearch searchBlock|
+
+                        stringToSearch := string.
+                        (string startsWith:'#') ifTrue:[
+                            stringToSearch := Symbol readFrom:string.
+                            Dialog information:'Searching for ',stringToSearch
+                        ].
+
+                        (sym := stringToSearch asSymbolIfInterned) notNil ifTrue:[
+                            searchBlock := [:cls :mthd :sel | |mSource|
+                                                "/ kludge: stc does not include symbols in the literal array - sigh
+                                                "/ (also: Lazy methods)
+                                                mthd byteCode isNil ifTrue:[
+                                                    mSource := mthd source.
+                                                    (mSource notNil
+                                                    and:[(mSource includesString:(sym upTo:$:))
+                                                    and:[mthd usedSymbols includes:sym]])
+                                                ] ifFalse:[
+                                                    ((mthd refersToLiteral:sym)
+                                                     and:[mthd usedSymbols includes:sym])
+                                                ]
+                                          ].
+                        ] ifFalse:[
+                            stringToSearch includesMatchCharacters ifFalse:[
+                                ^ self warn:'No such symbol'.
+                            ].
+                            searchBlock := [:cls :mthd :sel | |mSource|
+                                                "/ kludge: stc does not include symbols in the literal array - sigh
+                                                "/ (also: Lazy methods)
+                                                mthd byteCode isNil ifTrue:[
+                                                    mSource := mthd source.
+                                                    (mSource notNil
+                                                    and:[mthd usedSymbols contains:[:sym | stringToSearch match:sym]])
+                                                ] ifFalse:[
+                                                    mthd usedSymbols contains:[:sym | stringToSearch match:sym]
+                                                ]
+                                          ].
+                        ].
+                        self class
+                                findMethodsIn:classes
+                                where:searchBlock
+
+                   ]
+        searchWhat:#selector
+        searchArea:(self defaultSearchArea)
+        withCaseIgnore:false
+        setSearchPattern:[:brwsr :string :ignoreCase :doMatch|
+                            brwsr autoSearchPattern:string ignoreCase:ignoreCase.
+                         ]
 
     "Modified: / 25-11-2010 / 11:41:10 / cg"
 !
@@ -25820,29 +26690,29 @@
     |searchBlock|
 
     searchBlock := [
-			|changes classes|
-
-			changes := ChangeSet current.
-			classes := IdentitySet new.
-
-			changes do:[:aChange |
-			    |cls|
-
-			    (aChange isMethodChange or:[aChange isClassChange]) ifTrue:[
-				(cls := aChange changeClass) notNil ifTrue:[
-				    cls := cls theNonMetaclass.
-				    (classes includes:cls) ifFalse:[
-					classes add:cls.
-				    ]
-				]
-			    ].
-			].
-			classes asOrderedCollection
-		  ].
-
-    ^ self
-	spawnClassBrowserForSearch:searchBlock spec:#multipleClassRepositoryDiffBrowserSpec
-	sortBy:nil in:where label:'Repository Diffs' autoSelectIfOne:false
+                        |changes classes|
+
+                        changes := ChangeSet current.
+                        classes := IdentitySet new.
+
+                        changes do:[:aChange |
+                            |cls|
+
+                            (aChange isMethodChange or:[aChange isClassChange]) ifTrue:[
+                                (cls := aChange changeClass) notNil ifTrue:[
+                                    cls := cls theNonMetaclass.
+                                    (classes includes:cls) ifFalse:[
+                                        classes add:cls.
+                                    ]
+                                ]
+                            ].
+                        ].
+                        classes asOrderedCollection
+                  ].
+
+    ^ self
+        spawnClassBrowserForSearch:searchBlock spec:#multipleClassRepositoryDiffBrowserSpec
+        sortBy:nil in:where label:'Repository Diffs' autoSelectIfOne:false
 !
 
 browseMenuSpawnRepositoryDiffsInBuffer
@@ -25859,9 +26729,9 @@
 
 browseMenuUnassignedMethods:openHow
     ^ self
-	browseMethodsForWhich:[:mthd | mthd package = PackageId noProjectID]
-	in:openHow
-	label:'Loose methods'
+        browseMethodsForWhich:[:mthd | mthd package = PackageId noProjectID]
+        in:openHow
+        label:'Loose methods'
 
 "/    |searchBlock|
 "/
@@ -25895,13 +26765,13 @@
 
     labelHolder := 'Methods writing to global ''%1''' asValue.
     self
-	askForMethodAndSpawnSearchTitle:'Global to search:\(TAB for completion; matchPattern allowed)'
-	browserLabel:labelHolder
-	searchWith:[:string :classes :dummyIgnoreCase :dummyMatch|
-			|globlNames globlNamesAndSymbols globlName sym baseName matchBlock realClasses val
-			 keysReferringToValue otherKeysReferringToValue msg searchAll|
-
-			globlNames := string withoutSeparators asCollectionOfSubstringsSeparatedByAny:',;| '.
+        askForMethodAndSpawnSearchTitle:'Global to search:\(TAB for completion; matchPattern allowed)'
+        browserLabel:labelHolder
+        searchWith:[:string :classes :dummyIgnoreCase :dummyMatch|
+                        |globlNames globlNamesAndSymbols globlName sym baseName matchBlock realClasses val
+                         keysReferringToValue otherKeysReferringToValue msg searchAll|
+
+                        globlNames := string withoutSeparators asCollectionOfSubstringsSeparatedByAny:',;| '.
 "/                        globlNames size > 1 ifTrue:[
 "/                            globlNames := globlNames collect:[:nm | nm asSymbol].
 "/                            matchBlock := [:cls :mthd :sel |
@@ -26011,31 +26881,31 @@
 "/                           ].
 "/                       ].
 
-			matchBlock := self class
-			    filterToSearchRefsTo:string
-			    instVars:false
-			    classVars:false
-			    globals:true
-			    poolVars:false
-			    access:#write.
-
-		       "/ recollect realClasses from names (in case of class-changes)
-		       realClasses := classes collect:[:eachClass | environment at:eachClass name].
-		       self class
-			   findMethodsIn:realClasses
-			   where:matchBlock
-		   ]
-	searchWhat:#globalName
-	searchArea:#everywhere
-	withCaseIgnore:false
-	setSearchPattern:[:brwsr :string :ignoreCase :doMatch|
-			    |globlNames|
-
-			    globlNames := string withoutSeparators asCollectionOfSubstringsSeparatedByAny:',;| '.
-			    brwsr autoSearchVariables:globlNames.
-
-			    "/ brwsr autoSearchPattern:string ignoreCase:ignoreCase.
-			 ]
+                        matchBlock := self class
+                            filterToSearchRefsTo:string
+                            instVars:false
+                            classVars:false
+                            globals:true
+                            poolVars:false
+                            access:#write.
+
+                       "/ recollect realClasses from names (in case of class-changes)
+                       realClasses := classes collect:[:eachClass | environment at:eachClass name].
+                       self class
+                           findMethodsIn:realClasses
+                           where:matchBlock
+                   ]
+        searchWhat:#globalName
+        searchArea:#everywhere
+        withCaseIgnore:false
+        setSearchPattern:[:brwsr :string :ignoreCase :doMatch|
+                            |globlNames|
+
+                            globlNames := string withoutSeparators asCollectionOfSubstringsSeparatedByAny:',;| '.
+                            brwsr autoSearchVariables:globlNames.
+
+                            "/ brwsr autoSearchPattern:string ignoreCase:ignoreCase.
+                         ]
 
     "Created: / 29-09-2011 / 10:40:16 / cg"
 !
@@ -26046,10 +26916,10 @@
     searchBlock := [ environment allMethodsForWhich:checkBlock ].
 
     ^ self
-	spawnMethodBrowserForSearch:searchBlock
-	sortBy:#class
-	in:openHow
-	label:aString
+        spawnMethodBrowserForSearch:searchBlock
+        sortBy:#class
+        in:openHow
+        label:aString
 !
 
 browseResponseToIt
@@ -26065,19 +26935,19 @@
     "launch an enterBox for selector to search for"
 
     ^ self
-	askForMethodAndSpawnSearchTitle:(resources string:'Selector to browse senders of:')
-					, '\'
-					, (resources string:'(TAB for completion; matchPattern allowed)')
-	browserLabel:'Senders of %1'
-	searchWith:#( #'findSendersOf:in:ignoreCase:match:' #'findSendersOf:inMethods:ignoreCase:match:' )
-	searchWhat:#selector
-	searchArea:#everywhere
-	withCaseIgnore:true
-	withTextEntry:true
-	withMethodList:true
-	setSearchPattern:[:brwsr :selector :ignoreCase :doMatch|
-			    brwsr autoSearchSelector:selector ignoreCase:ignoreCase doMatch:doMatch.
-			 ]
+        askForMethodAndSpawnSearchTitle:(resources string:'Selector to browse senders of:')
+                                        , '\'
+                                        , (resources string:'(TAB for completion; matchPattern allowed)')
+        browserLabel:'Senders of %1'
+        searchWith:#( #'findSendersOf:in:ignoreCase:match:' #'findSendersOf:inMethods:ignoreCase:match:' )
+        searchWhat:#selector
+        searchArea:#everywhere
+        withCaseIgnore:true
+        withTextEntry:true
+        withMethodList:true
+        setSearchPattern:[:brwsr :selector :ignoreCase :doMatch|
+                            brwsr autoSearchSelector:selector ignoreCase:ignoreCase doMatch:doMatch.
+                         ]
 
     "Modified: / 20-08-2012 / 14:28:30 / cg"
 !
@@ -26091,22 +26961,22 @@
 self autoSearchSelector:selectors ignoreCase:false doMatch:true.
 ].
     ^ self
-	askForMethodAndSpawnSearchTitle:'Browse Senders of (any in selected):'
-	browserLabel:('Senders (any of %1 selectors)' bindWith:selectors size)
-	searchWith:[:ignoredString :classes :ignoredCase :match|
-			    self class
-				findSendersOfAny:selectors
-				in:classes
-				ignoreCase:false
-		   ]
-	searchWhat:#selector
-	searchArea:#everywhere
-	withCaseIgnore:false
-	withTextEntry:false
-	withMethodList:false
-	setSearchPattern:[:brwsr :string :ignoreCase :doMatch|
-			    brwsr autoSearchSelector:selectors ignoreCase:ignoreCase doMatch:doMatch.
-			 ]
+        askForMethodAndSpawnSearchTitle:'Browse Senders of (any in selected):'
+        browserLabel:('Senders (any of %1 selectors)' bindWith:selectors size)
+        searchWith:[:ignoredString :classes :ignoredCase :match|
+                            self class
+                                findSendersOfAny:selectors
+                                in:classes
+                                ignoreCase:false
+                   ]
+        searchWhat:#selector
+        searchArea:#everywhere
+        withCaseIgnore:false
+        withTextEntry:false
+        withMethodList:false
+        setSearchPattern:[:brwsr :string :ignoreCase :doMatch|
+                            brwsr autoSearchSelector:selectors ignoreCase:ignoreCase doMatch:doMatch.
+                         ]
 
     "Modified: / 28-02-2012 / 16:15:36 / cg"
 !
@@ -26133,19 +27003,19 @@
     "return a useful default seach area"
 
     self hasClassSelected ifTrue:[
-	^ #classes.
+        ^ #classes.
     ].
     (navigationState isCategoryBrowser
     and:[self hasCategorySelected]) ifTrue:[
-	^ #classCategories.
+        ^ #classCategories.
     ].
     (navigationState isNameSpaceBrowser
     and:[self hasNameSpaceSelected]) ifTrue:[
-	^ #currentNameSpace.
+        ^ #currentNameSpace.
     ].
     ((navigationState isProjectBrowser or:[navigationState isProjectFullBrowser])
     and:[self hasProjectSelected]) ifTrue:[
-	^ #currentPackage.
+        ^ #currentPackage.
     ].
     ^ nil
 !
@@ -26155,42 +27025,42 @@
 
     classes := IdentitySet new.
     environment allClassesDo:[:eachClass |
-	(eachClass isMeta not
-	and:[eachClass isLoaded
-	and:[eachClass isNameSpace not
-	and:[(eachClass class includesSelector:selector) not]]])
-	ifTrue:[
-	     classes add:eachClass
-	].
+        (eachClass isMeta not
+        and:[eachClass isLoaded
+        and:[eachClass isNameSpace not
+        and:[(eachClass class includesSelector:selector) not]]])
+        ifTrue:[
+             classes add:eachClass
+        ].
     ].
     ^ classes asOrderedCollection
 !
 
 spawnClassDocumentationBrowserIn:where
     "browse documentation;
-	where is: #newBrowser - open a new browser
-	where is: #newBuffer  - add a new buffer"
+        where is: #newBrowser - open a new browser
+        where is: #newBuffer  - add a new buffer"
 
     |selectedClasses selectedCategories|
 
     selectedClasses := self selectedNonMetaclasses.
     selectedCategories := self selectedCategoriesValue copy.
     ^ self
-	newBrowserOrBufferDependingOn:where
-	label:nil
-	forSpec:#classDocumentationBrowserSpec
-	setupWith:[:brwsr |
-			brwsr selectCategories:selectedCategories.
-			brwsr selectClasses:selectedClasses.
-		  ]
+        newBrowserOrBufferDependingOn:where
+        label:nil
+        forSpec:#classDocumentationBrowserSpec
+        setupWith:[:brwsr |
+                        brwsr selectCategories:selectedCategories.
+                        brwsr selectClasses:selectedClasses.
+                  ]
 
     "Modified: / 12-09-2006 / 13:44:08 / cg"
 !
 
 spawnClassExtensionBrowserFor:classes in:where
     "browse extensions on selected classes;
-	where is: #newBrowser - open a new browser showing the projects
-	where is: #newBuffer  - add a new buffer showing the projects"
+        where is: #newBrowser - open a new browser showing the projects
+        where is: #newBuffer  - add a new buffer showing the projects"
 
     |spec classList "singleSelection"|
 
@@ -26205,95 +27075,95 @@
     classList := classes copy.
 
     ^ self
-	newBrowserOrBufferDependingOn:where
-	label: 'Class Extensions'
-	forSpec:spec
-	setupWith:[:brwsr |
-	    |packageListGeneratorBlock|
-
-	    "/ setup for a constant list ...
-	    "/ brwsr organizerMode value:#project.
-	    brwsr showClassPackages value:true.
-	    brwsr classListGenerator value:classList.
-
-	    packageListGeneratorBlock := [
-				|packages|
-
-				packages := Set new.
-				(brwsr selectedClasses value ? #()) do:[:eachClass |
-				    packages add:eachClass package.
-				    eachClass instAndClassSelectorsAndMethodsDo:[:sel :mthd |
-					packages add:mthd package
-				    ].
-				].
-				packages asOrderedCollection sort.
-			  ].
-
-	    brwsr projectListGenerator value:(packageListGeneratorBlock value).
-	    brwsr selectedClasses onChangeEvaluate:[brwsr projectListGenerator value:(packageListGeneratorBlock value).].
-	    brwsr packageFilter value:#().
-	    "/ singleSelection ifTrue:[
-	    "/     brwsr selectProjects:projectList.
-	    "/ ].
-	    "/ brwsr packageFilter value:projectList.
-	]
+        newBrowserOrBufferDependingOn:where
+        label: 'Class Extensions'
+        forSpec:spec
+        setupWith:[:brwsr |
+            |packageListGeneratorBlock|
+
+            "/ setup for a constant list ...
+            "/ brwsr organizerMode value:#project.
+            brwsr showClassPackages value:true.
+            brwsr classListGenerator value:classList.
+
+            packageListGeneratorBlock := [
+                                |packages|
+
+                                packages := Set new.
+                                (brwsr selectedClasses value ? #()) do:[:eachClass |
+                                    packages add:eachClass package.
+                                    eachClass instAndClassSelectorsAndMethodsDo:[:sel :mthd |
+                                        packages add:mthd package
+                                    ].
+                                ].
+                                packages asOrderedCollection sort.
+                          ].
+
+            brwsr projectListGenerator value:(packageListGeneratorBlock value).
+            brwsr selectedClasses onChangeEvaluate:[brwsr projectListGenerator value:(packageListGeneratorBlock value).].
+            brwsr packageFilter value:#().
+            "/ singleSelection ifTrue:[
+            "/     brwsr selectProjects:projectList.
+            "/ ].
+            "/ brwsr packageFilter value:projectList.
+        ]
 
     "Modified: / 18.8.2000 / 18:48:40 / cg"
 !
 
 spawnClassExtensionBrowserForSearch:searchBlock label:labelOrNil in:where
     "browse extensions on a searchBlock;
-	where is: #newBrowser - open a new browser showing the projects
-	where is: #newBuffer  - add a new buffer showing the projects"
-
-    ^ self
-	newBrowserOrBufferDependingOn:where
-	label:(labelOrNil ? 'Class Extensions')
-	forSpec:#multipleClassExtensionBrowserSpec
-	setupWith:[:brwsr |
-	    |classListGenerator packageListGeneratorBlock theClassList|
-
-	    classListGenerator := Iterator on:[:whatToDo |
-					    theClassList isNil ifTrue:[
-						theClassList := searchBlock value.
-					    ].
-					    theClassList notNil ifTrue:[
-						theClassList do:[:aClass |
-						    whatToDo value:aClass
-						].
-						theClassList := nil.
-					    ].
-				      ].
-
-	    "/ brwsr organizerMode value:#project.
-	    brwsr showClassPackages value:true.
-	    brwsr classListGenerator value:classListGenerator.
-
-	    packageListGeneratorBlock := [
-				|packages|
-
-				packages := Set new.
-				(brwsr selectedClasses value ? #()) do:[:eachClass |
-				    packages add:eachClass package.
-				    eachClass instAndClassSelectorsAndMethodsDo:[:sel :mthd |
-					packages add:mthd package
-				    ].
-				].
-				packages asOrderedCollection sort.
-			  ].
-
-	    brwsr projectListGenerator value:(packageListGeneratorBlock value).
-	    brwsr selectedClasses onChangeEvaluate:[brwsr projectListGenerator value:(packageListGeneratorBlock value).].
-	    brwsr packageFilter value:nil. "/ #().
-	]
+        where is: #newBrowser - open a new browser showing the projects
+        where is: #newBuffer  - add a new buffer showing the projects"
+
+    ^ self
+        newBrowserOrBufferDependingOn:where
+        label:(labelOrNil ? 'Class Extensions')
+        forSpec:#multipleClassExtensionBrowserSpec
+        setupWith:[:brwsr |
+            |classListGenerator packageListGeneratorBlock theClassList|
+
+            classListGenerator := Iterator on:[:whatToDo |
+                                            theClassList isNil ifTrue:[
+                                                theClassList := searchBlock value.
+                                            ].
+                                            theClassList notNil ifTrue:[
+                                                theClassList do:[:aClass |
+                                                    whatToDo value:aClass
+                                                ].
+                                                theClassList := nil.
+                                            ].
+                                      ].
+
+            "/ brwsr organizerMode value:#project.
+            brwsr showClassPackages value:true.
+            brwsr classListGenerator value:classListGenerator.
+
+            packageListGeneratorBlock := [
+                                |packages|
+
+                                packages := Set new.
+                                (brwsr selectedClasses value ? #()) do:[:eachClass |
+                                    packages add:eachClass package.
+                                    eachClass instAndClassSelectorsAndMethodsDo:[:sel :mthd |
+                                        packages add:mthd package
+                                    ].
+                                ].
+                                packages asOrderedCollection sort.
+                          ].
+
+            brwsr projectListGenerator value:(packageListGeneratorBlock value).
+            brwsr selectedClasses onChangeEvaluate:[brwsr projectListGenerator value:(packageListGeneratorBlock value).].
+            brwsr packageFilter value:nil. "/ #().
+        ]
 
     "Modified: / 18.8.2000 / 18:48:40 / cg"
 !
 
 spawnFullClassSourceBrowserIn:where
     "browse full classes (file-like);
-	where is: #newBrowser - open a new browser
-	where is: #newBuffer  - add a new buffer"
+        where is: #newBrowser - open a new browser
+        where is: #newBuffer  - add a new buffer"
 
     |selectedClasses selectedCategories|
 
@@ -26301,19 +27171,20 @@
     selectedCategories := self selectedCategoriesValue copy.
 
     ^ self
-	newBrowserOrBufferDependingOn:where
-	label:nil
-	forSpec:#fullClassSourceBrowserSpec
-	setupWith:[:brwsr |
-			brwsr meta value:false.
-			brwsr selectCategories:selectedCategories.
-			brwsr selectClasses:selectedClasses.
-		  ]
+        newBrowserOrBufferDependingOn:where
+        label:nil
+        forSpec:#fullClassSourceBrowserSpec
+        setupWith:[:brwsr |
+                        brwsr meta value:false.
+                        brwsr selectCategories:selectedCategories.
+                        brwsr selectClasses:selectedClasses.
+                  ]
 
     "Modified: / 12-09-2006 / 13:43:48 / cg"
 !
 
 viewMenuSelectAllClasses
+    <resource: #obsolete>
 ! !
 
 !NewSystemBrowser methodsFor:'menu actions-buffers'!
@@ -26328,14 +27199,14 @@
     "remove all other than the numbered buffer"
 
     buffers size to:1 by:-1 do:[:bNrToClose |
-	bNrToClose ~~ bNrToLeaveOpen ifTrue:[
-	    (self
-		askIfModified:'Code was modified.\\Remove buffer anyway ?'
-		in:(buffers at:bNrToClose))
-	    ifTrue:[
-		self removeBuffer:bNrToClose.
-	    ].
-	].
+        bNrToClose ~~ bNrToLeaveOpen ifTrue:[
+            (self
+                askIfModified:'Code was modified.\\Remove buffer anyway ?'
+                in:(buffers at:bNrToClose))
+            ifTrue:[
+                self removeBuffer:bNrToClose.
+            ].
+        ].
     ].
 
     "Modified: / 11.2.2000 / 10:55:02 / cg"
@@ -26345,13 +27216,13 @@
     "remove the numbered buffer"
 
     buffers size > 0 ifTrue:[
-	(self
-	    askIfModified:'Code was modified.\\Remove buffer anyway ?'
-	    in:(buffers at:nr)
-	)
-	ifTrue:[
-	    self removeBuffer:nr.
-	].
+        (self
+            askIfModified:'Code was modified.\\Remove buffer anyway ?'
+            in:(buffers at:nr)
+        )
+        ifTrue:[
+            self removeBuffer:nr.
+        ].
     ]
 
     "Modified: / 11.2.2000 / 10:55:02 / cg"
@@ -26370,11 +27241,11 @@
 
     nr := selectedBuffer value.
     (nr notNil and:[nr between:1 and:buffers size]) ifTrue:[
-	navigationState := buffers at:selectedBuffer value.
-	self hasMethodSelectedHolder value:(self hasMethodSelected).
-	self browserCanvas value:(navigationState canvas).
-	self updateNavigationHistory.
-	self updateBookmarkHolder.
+        navigationState := buffers at:selectedBuffer value.
+        self hasMethodSelectedHolder value:(self hasMethodSelected).
+        self browserCanvas value:(navigationState canvas).
+        self updateNavigationHistory.
+        self updateBookmarkHolder.
     ].
 
 "/    self updateTestRunnerVisibility.
@@ -26408,7 +27279,7 @@
     cls := self selectedClassNameInCodeViewOrNil.
     navigationState := self createBuffer.
     cls notNil ifTrue:[
-	self switchToClass:cls
+        self switchToClass:cls
     ]
 !
 
@@ -26426,18 +27297,18 @@
     bNameList := self bufferNameList.  "/ for lazy setup
 
     buffers size == 0 ifTrue:[
-	"the original (initial) buffer is created here (lazy)"
-
-	buffers := OrderedCollection new.
-	bufferUsageOrder := OrderedCollection new.
-
-	navigationState canvasType isNil ifTrue:[
-	    navigationState canvas:self browserCanvas value.
-	    navigationState canvasType:(self browserCanvasType ? navigationState canvasType).
-	].
-	buffers add:navigationState.
-	bNameList add:(self currentBufferLabel).
-	bufferUsageOrder add:navigationState.
+        "the original (initial) buffer is created here (lazy)"
+
+        buffers := OrderedCollection new.
+        bufferUsageOrder := OrderedCollection new.
+
+        navigationState canvasType isNil ifTrue:[
+            navigationState canvas:self browserCanvas value.
+            navigationState canvasType:(self browserCanvasType ? navigationState canvasType).
+        ].
+        buffers add:navigationState.
+        bNameList add:(self currentBufferLabel).
+        bufferUsageOrder add:navigationState.
     ].
 
     oldNavigationState := navigationState.
@@ -26473,13 +27344,13 @@
     |brwsr|
 
     openHow == #newBrowser ifTrue:[
-	brwsr := self class openInClass:aClass selector:selector
-    ] ifFalse:[
-	brwsr := self.
-	"/ brwsr createBuffer.
-	brwsr createBufferWithSpec:#fullBrowserSpec setupFromCurrentState:false.
-	brwsr selectedCategories value:nil. "/ kludge workaround; classList needs a change to update.
-	brwsr switchToClass:aClass selector:selector.
+        brwsr := self class openInClass:aClass selector:selector
+    ] ifFalse:[
+        brwsr := self.
+        "/ brwsr createBuffer.
+        brwsr createBufferWithSpec:#fullBrowserSpec setupFromCurrentState:false.
+        brwsr selectedCategories value:nil. "/ kludge workaround; classList needs a change to update.
+        brwsr switchToClass:aClass selector:selector.
     ].
     ^ brwsr
 
@@ -26494,7 +27365,7 @@
     self categoryMenuCheckInEachUsing:SourceCodeManagerUtilities default
 !
 
-categoryMenuCheckInEachUsingManager:aSourceCodeManager
+categoryMenuCheckInEachUsingManager:aSourceCodeManagerOrNil
     "check all classes of all selected categories into the source repository"
 
     |classes|
@@ -26505,13 +27376,14 @@
     classes := IdentitySet new.
     self selectedCategoryClassesDo:[:aClass | classes add:aClass].
     classes isEmpty ifTrue:[
-	self warn:'No classes matched (all private classes)'.
-	^ self.
+        self warn:'No classes matched (all private classes)'.
+        ^ self.
     ].
     classes := classes asSortedCollection:[:a :b | a name < b name].
 
-    aSourceCodeManager utilities checkinClasses:classes.
-    self normalLabel.
+    self classMenuCheckIn:true classes:classes usingManager:aSourceCodeManagerOrNil
+    "/ aSourceCodeManager utilities checkinClasses:classes.
+    "/ self normalLabel.
 !
 
 categoryMenuCheckOut
@@ -26563,12 +27435,12 @@
     "remove all changes for the selected category-class(es) from the changeSet"
 
     (self confirm:'This will remove all changes for all classes from the selected categories from the internal changeSet.\(They will still be in the change-file, in case of emergency.)\\Really cleanup ?' withCRs)
-	ifFalse:[ ^ self].
+        ifFalse:[ ^ self].
 
     self withWaitCursorDo:[
-	self selectedCategoryClassesDo:[:eachClass |
-	    ChangeSet current condenseChangesForClass:eachClass
-	].
+        self selectedCategoryClassesDo:[:eachClass |
+            ChangeSet current condenseChangesForClass:eachClass
+        ].
     ]
 
     "Created: / 31-01-2011 / 11:10:13 / cg"
@@ -26582,51 +27454,51 @@
 
 categoryMenuFileOutAsWithFormat:aFormatSymbolOrNil
     "fileOut selected categories -  file format as specified by the argument:
-	nil     - standard format
-	#xml    - XML standard format
-	#sif    - SIF (smalltalk interchange file) standard format
-	#binary - ST/X binary format
+        nil     - standard format
+        #xml    - XML standard format
+        #sif    - SIF (smalltalk interchange file) standard format
+        #binary - ST/X binary format
     "
 
     |currentClassCategory fileName suffix saveName aStream classesToInitialize classesToFileout mgr|
 
     currentClassCategory := self theSingleSelectedCategory.
     currentClassCategory notNil ifTrue:[
-	fileName := currentClassCategory asString.
-	fileName replaceAll:Character space with:$_.
-    ] ifFalse:[
-	fileName := 'someCategories'
+        fileName := currentClassCategory asString.
+        fileName replaceAll:Character space with:$_.
+    ] ifFalse:[
+        fileName := 'someCategories'
     ].
     aFormatSymbolOrNil == #xml ifTrue:[
-	suffix := '.xml'
-    ] ifFalse:[
-	aFormatSymbolOrNil == #sif ifTrue:[
-	    suffix := '.sif'
-	] ifFalse:[
-	    aFormatSymbolOrNil == #binary ifTrue:[
-		suffix := '.cls'
-	    ] ifFalse:[
-		suffix := '.st'
-	    ]
-	]
+        suffix := '.xml'
+    ] ifFalse:[
+        aFormatSymbolOrNil == #sif ifTrue:[
+            suffix := '.sif'
+        ] ifFalse:[
+            aFormatSymbolOrNil == #binary ifTrue:[
+                suffix := '.cls'
+            ] ifFalse:[
+                suffix := '.st'
+            ]
+        ]
     ].
     fileName := fileName , suffix.
 
     aFormatSymbolOrNil == #binary ifTrue:[
-	self error:'binary must go into separate files'.
-	^ self
+        self error:'binary must go into separate files'.
+        ^ self
     ].
 
     saveName := self
-		    fileNameDialogForFileOut:(resources string:'FileOut %1 as:' with:(currentClassCategory ? 'selected categories'))
-		    default:fileName.
+                    fileNameDialogForFileOut:(resources string:'FileOut %1 as:' with:(currentClassCategory ? 'selected categories'))
+                    default:fileName.
 
     saveName isNil ifTrue:[
-	^ self
+        ^ self
     ].
     saveName isEmpty ifTrue:[
-	self warn:'Bad name given'.
-	^ self
+        self warn:'Bad name given'.
+        ^ self
     ].
     FileSelectionBox lastFileSelectionDirectory:(saveName asFilename directoryName).
     fileName := saveName.
@@ -26635,67 +27507,67 @@
     classesToFileout := OrderedCollection new.
 
     self selectedCategoryClassesDo:[:eachClassInCategory |
-	|eachClass|
-
-	eachClass := eachClassInCategory theNonMetaclass.
-	eachClass isPrivate ifFalse:[
-	    eachClass isLoaded ifFalse:[
-		self warn:'Cannot fileOut unloaded class: %1\\skipped.' with:eachClass name allBold.
-	    ] ifTrue:[
-		classesToFileout add:eachClass.
-		(eachClass class includesSelector:#initialize) ifTrue:[
-		    classesToInitialize add:eachClass
-		].
-	    ]
-	]
+        |eachClass|
+
+        eachClass := eachClassInCategory theNonMetaclass.
+        eachClass isPrivate ifFalse:[
+            eachClass isLoaded ifFalse:[
+                self warn:'Cannot fileOut unloaded class: %1\\skipped.' with:eachClass name allBold.
+            ] ifTrue:[
+                classesToFileout add:eachClass.
+                (eachClass class includesSelector:#initialize) ifTrue:[
+                    classesToInitialize add:eachClass
+                ].
+            ]
+        ]
     ].
 
     "
      if file exists, save original in a .sav file
     "
     fileName asFilename exists ifTrue:[
-	self busyLabel:'saving existing %1' with:fileName.
-	fileName asFilename copyTo:(fileName , '.sav')
+        self busyLabel:'saving existing %1' with:fileName.
+        fileName asFilename copyTo:(fileName , '.sav')
     ].
 
     classesToFileout topologicalSort:[:a :b | b isSubclassOf:a].
 
     aFormatSymbolOrNil == #xml ifTrue:[
-	self warn:'Not yet implemented: XML saving'.
-	^ self
+        self warn:'Not yet implemented: XML saving'.
+        ^ self
     ].
 
     aFormatSymbolOrNil == #sif ifTrue:[
-	mgr := SmalltalkInterchangeFileManager newForFileOut.
-	mgr fileName: fileName.
-	classesToFileout do:[:eachClass |
-	    mgr addClass: eachClass.
-	].
-	self busyLabel:'writing...'.
-	mgr fileOut.
-    ] ifFalse:[
-	[
-	    aStream := fileName asFilename newReadWriteStream.
-	    classesToFileout do:[:eachClass |
-		self busyLabel:'writing: %1' with:eachClass name.
-		eachClass fileOutOn:aStream withTimeStamp:true withInitialize:false.
-		aStream cr.
-	    ].
-
-	    "/ all class-inits at the end
-	    "/ (this makes certain, that all classes have been loaded
-	    "/  before possibly used/needed in an initializer
-
-	    classesToInitialize do:[:aClass |
-		aClass printClassNameOn:aStream. aStream nextPutAll:' initialize'.
-		aStream nextPutChunkSeparator.
-		aStream cr
-	    ].
-
-	    aStream close.
-	] on:FileStream openErrorSignal do:[
-	    self warn:'Cannot create: %1' with:fileName allBold
-	].
+        mgr := SmalltalkInterchangeFileManager newForFileOut.
+        mgr fileName: fileName.
+        classesToFileout do:[:eachClass |
+            mgr addClass: eachClass.
+        ].
+        self busyLabel:'writing...'.
+        mgr fileOut.
+    ] ifFalse:[
+        [
+            aStream := fileName asFilename newReadWriteStream.
+            classesToFileout do:[:eachClass |
+                self busyLabel:'writing: %1' with:eachClass name.
+                eachClass fileOutOn:aStream withTimeStamp:true withInitialize:false.
+                aStream cr.
+            ].
+
+            "/ all class-inits at the end
+            "/ (this makes certain, that all classes have been loaded
+            "/  before possibly used/needed in an initializer
+
+            classesToInitialize do:[:aClass |
+                aClass printClassNameOn:aStream. aStream nextPutAll:' initialize'.
+                aStream nextPutChunkSeparator.
+                aStream cr
+            ].
+
+            aStream close.
+        ] on:FileStream openErrorSignal do:[
+            self warn:'Cannot create: %1' with:fileName allBold
+        ].
     ].
     self normalLabel.
 !
@@ -26733,14 +27605,14 @@
     currentCategory := self theSingleSelectedCategory ? 'selected categories'.
 
     dirName := self
-		askForDirectoryToFileOut:(resources string:'FileOut %1 in:' with:currentCategory)
-		default:nil.
+                askForDirectoryToFileOut:(resources string:'FileOut %1 in:' with:currentCategory)
+                default:nil.
     dirName isEmptyOrNil ifTrue:[^ self].
 
     self
-	fileOutEachClassIn:(self selectedCategoryClasses)
-	in:dirName
-	withFormat:aFormatSymbolOrNil.
+        fileOutEachClassIn:(self selectedCategoryClasses)
+        in:dirName
+        withFormat:aFormatSymbolOrNil.
 
     "Modified: / 23-08-2006 / 12:31:28 / cg"
 !
@@ -26751,6 +27623,12 @@
     self categoryMenuFileOutEachInWithFormat:#sif
 !
 
+categoryMenuFileOutEachVSEIn
+    "fileOut selected categories as individual files - visual smalltalk enterprise format"
+
+    self categoryMenuFileOutEachInWithFormat:#vse
+!
+
 categoryMenuFileOutEachXMLIn
     "fileOut selected categories as individual files - xml format"
 
@@ -26763,6 +27641,12 @@
     ^ self categoryMenuFileOutAsWithFormat:#sif
 !
 
+categoryMenuFileOutVSEAs
+    "fileOut selected categories - visual smalltalk enterprise format"
+
+    ^ self categoryMenuFileOutAsWithFormat:#vse
+!
+
 categoryMenuFileOutXMLAs
     "fileOut selected categories - xml format"
 
@@ -26787,40 +27671,40 @@
     allClassCategories := environment allClassCategories.
 
     box := self
-		enterBoxTitle:'Name of new class category:'
-		okText:'Create'
-		label:'Create Category'.
+                enterBoxTitle:'Name of new class category:'
+                okText:'Create'
+                label:'Create Category'.
 
     (allClassCategories includes:'* as yet unspecified *')
     ifFalse:[
-	box initialAnswer:'* as yet unspecified *'.
+        box initialAnswer:'* as yet unspecified *'.
     ].
 
     box entryCompletionBlock:[:contents |
-	|s what cat|
-
-	s := contents withoutSpaces.
-	what := self navigationState environment classCategoryCompletion:s.
-	cat := what first.
-	(allClassCategories includes:cat) ifTrue:[
-	    cat := cat , '-'.
-	].
-	box contents:cat.
-	(what at:2) size ~~ 1 ifTrue:[
-	    self builder window beep
-	]
+        |s what cat|
+
+        s := contents withoutSpaces.
+        what := self navigationState environment classCategoryCompletion:s.
+        cat := what first.
+        (allClassCategories includes:cat) ifTrue:[
+            cat := cat , '-'.
+        ].
+        box contents:cat.
+        (what at:2) size ~~ 1 ifTrue:[
+            self builder window beep
+        ]
     ].
     box action:[:aString | newCategory := aString].
     box open.
 
     newCategory notNil ifTrue:[
-	"/ self immediateUpdate value:true.
-	self categoryListApp addAdditionalCategory:newCategory.
-	"/ self immediateUpdate value:false.
-
-	self codeReallyModified ifFalse:[
-	    self selectCategory:newCategory.
-	]
+        "/ self immediateUpdate value:true.
+        self categoryListApp addAdditionalCategory:newCategory.
+        "/ self immediateUpdate value:false.
+
+        self codeReallyModified ifFalse:[
+            self selectCategory:newCategory.
+        ]
     ].
 
     "Modified: / 25.2.2000 / 00:50:48 / cg"
@@ -26828,7 +27712,7 @@
 
 categoryMenuRecompile
     self selectedCategoryClassesDo:[:eachClass |
-	self recompileClass:eachClass
+        self recompileClass:eachClass
     ].
 
     "Created: / 31-05-2012 / 12:03:11 / cg"
@@ -26836,7 +27720,7 @@
 
 categoryMenuRecompileInstrumented
     self selectedCategoryClassesDo:[:eachClass |
-	self recompileClassWithInstrumentation:eachClass
+        self recompileClassWithInstrumentation:eachClass
     ].
     self infoLabelHolder value:nil.
     self askForGlobalCoverageRecording.
@@ -26854,112 +27738,112 @@
     categories := Set new.
     includesBuiltIn := false.
     self selectedCategoryClassesDo:[:aClass |
-	classes add:aClass.
-	categories add:aClass category.
-	aClass isBuiltInClass ifTrue:[includesBuiltIn := true].
+        classes add:aClass.
+        categories add:aClass category.
+        aClass isBuiltInClass ifTrue:[includesBuiltIn := true].
     ].
 
     classes size == 0 ifTrue:[
-	"/ removing an empty category
-	self selectedCategories value:#().
-	self categoryListApp removeAdditionalCategories:selectedCategories.
-	^ self
+        "/ removing an empty category
+        self selectedCategories value:#().
+        self categoryListApp removeAdditionalCategories:selectedCategories.
+        ^ self
     ].
 
     "/ count affected sub-classes
     affectedSubClasses := IdentitySet new.
     classes do:[:aClassToRemove |
-	affectedSubClasses addAll:(aClassToRemove allSubclasses).
+        affectedSubClasses addAll:(aClassToRemove allSubclasses).
     ].
     affectedSubClasses := affectedSubClasses reject:[:eachClass | classes includes:eachClass ].
     count := affectedSubClasses size.
 
     classes size == 1 ifTrue:[
-	txt := 'Really remove %1'.
-    ] ifFalse:[
-	txt := 'Really remove %2 classes'.
+        txt := 'Really remove %1'.
+    ] ifFalse:[
+        txt := 'Really remove %2 classes'.
     ].
     count ~~ 0 ifTrue:[
        txt := txt , '\(with %3 subclass'.
        count ~~ 1 ifTrue:[
-	   txt := txt , 'es in other categories)'
+           txt := txt , 'es in other categories)'
        ] ifFalse:[
-	   txt := txt , ' - ', affectedSubClasses first name , ' - in category ''' , affectedSubClasses first category, ''')'
+           txt := txt , ' - ', affectedSubClasses first name , ' - in category ''' , affectedSubClasses first category, ''')'
        ]
     ].
     categories size > 1 ifTrue:[
-	txt := txt , ' in %4 categories'.
-    ] ifFalse:[
-	txt := txt , ' in %5'.
+        txt := txt , ' in %4 categories'.
+    ] ifFalse:[
+        txt := txt , ' in %5'.
     ].
     txt := txt , ' ?'.
     txt := (resources
-		string:txt
-		with:classes first name allBold
-		with:classes size printString
-		with:count
-		with:categories size printString
-		with:categories first) withCRs.
+                string:txt
+                with:classes first name allBold
+                with:classes size printString
+                with:count
+                with:categories size printString
+                with:categories first) withCRs.
 
     box := YesNoBox
-	       title:txt
-	       yesText:(resources string:'Remove')
-	       noText:(resources string:'Cancel').
+               title:txt
+               yesText:(resources string:'Remove')
+               noText:(resources string:'Cancel').
     box label:(resources string:'Remove Class(es)').
     answer := box confirm.
     box destroy.
 
     (answer and:[includesBuiltIn]) ifTrue:[
-	"/ ask again - severe damage is to be expected ...
-	answer := Dialog confirm:('The set of classes to remove includes at least one systemClass,\without which ST/X will fail to work.\Be prepared for a crash, if you proceed.\\Really remove ?' withCRs)
+        "/ ask again - severe damage is to be expected ...
+        answer := Dialog confirm:('The set of classes to remove includes at least one systemClass,\without which ST/X will fail to work.\Be prepared for a crash, if you proceed.\\Really remove ?' withCRs)
     ].
 
     answer ifTrue:[
-	self withWaitCursorDo:[
-	    classesToReallyRemove := OrderedCollection new.
-
-	    "after querying user - do really remove the classes
-	     and all subclasses
-	    "
-	    classes do:[:aClassToRemove |
-		|doRemove didRemove|
-
-		didRemove := false.
-		doRemove := true.
-		aClassToRemove withAllSubclasses do:[:eachClass |
-		    eachClass hasExtensions ifTrue:[
-			doRemove := self confirm:(resources string:'''%1'' has extensions (methods in other packages) - remove anyway ?' with:eachClass name).
-		    ]
-		].
-		doRemove ifTrue:[
-		    "
-		     query ?
-		    "
-		    aClassToRemove allSubclassesDo:[:aSubClass |
-			(CheckForInstancesWhenRemovingClasses == false
-			or:[aSubClass hasInstances not
-			or:[self confirm:(resources string:'''%1'' has instances - remove anyway ?' with:aSubClass name)]])
-			    ifTrue:[
-				classesToReallyRemove add:aSubClass
-			]
-		    ].
-		    (CheckForInstancesWhenRemovingClasses == false
-		    or:[aClassToRemove hasInstances not
-		    or:[self confirm:(resources string:'''%1'' has instances - remove anyway ?' with:aClassToRemove name)]])
-			ifTrue:[
-			    didRemove := true.
-			    classesToReallyRemove add:aClassToRemove
-		    ].
-		].
-	    ].
+        self withWaitCursorDo:[
+            classesToReallyRemove := OrderedCollection new.
+
+            "after querying user - do really remove the classes
+             and all subclasses
+            "
+            classes do:[:aClassToRemove |
+                |doRemove didRemove|
+
+                didRemove := false.
+                doRemove := true.
+                aClassToRemove withAllSubclassesDo:[:eachClass |
+                    eachClass hasExtensions ifTrue:[
+                        doRemove := self confirm:(resources string:'''%1'' has extensions (methods in other packages) - remove anyway ?' with:eachClass name).
+                    ]
+                ].
+                doRemove ifTrue:[
+                    "
+                     query ?
+                    "
+                    aClassToRemove allSubclassesDo:[:aSubClass |
+                        (CheckForInstancesWhenRemovingClasses == false
+                            or:[aSubClass hasInstances not
+                            or:[self confirm:(resources string:'''%1'' has instances - remove anyway ?' with:aSubClass name)
+                        ]]) ifTrue:[
+                            classesToReallyRemove add:aSubClass
+                        ]
+                    ].
+                    (CheckForInstancesWhenRemovingClasses == false
+                        or:[aClassToRemove hasInstances not
+                        or:[self confirm:(resources string:'''%1'' has instances - remove anyway ?' with:aClassToRemove name)
+                    ]]) ifTrue:[
+                        didRemove := true.
+                        classesToReallyRemove add:aClassToRemove
+                    ].
+                ].
+            ].
 
 "/            classesToReallyRemove do:[:each |
 "/                each removeFromSystem.
 "/            ].
-	    classesToReallyRemove notEmpty ifTrue:[
-		self removeClasses:classesToReallyRemove pullUpSubclasses:false
-	    ]
-	].
+            classesToReallyRemove notEmpty ifTrue:[
+                self removeClasses:classesToReallyRemove pullUpSubclasses:false
+            ]
+        ].
     ]
 
     "Modified: / 11-07-2010 / 16:44:24 / cg"
@@ -26970,96 +27854,96 @@
      cancelAll guess combosList change numClasses|
 
     self canUseRefactoringSupport ifTrue:[
-	change := CompositeRefactoryChange named:'Rename categories'.
+        change := CompositeRefactoryChange named:'Rename categories'.
     ].
 
     numClasses := 0.
 
     self withWaitCursorDo:[
-	categoriesToRename := self selectedCategoriesValue copy.
-	categoriesToRename do:[:eachCategory |
-	    guess := DoWhatIMeanSupport
-			goodRenameDefaultFor:eachCategory
-			lastOld:LastCategoryRenameOld
-			lastNew:LastCategoryRenameNew.
-
-	    guess isNil ifTrue:[
-		guess := eachCategory string.
-	    ].
-
-	    allCategories := environment allClassCategories asArray sort.
-	    combosList := LastCategoryRenames.
-	    (combosList size > 0 and:[combosList includes:eachCategory]) ifFalse:[
-		combosList size == 0 ifTrue:[
-		    combosList := List with:eachCategory
-		] ifFalse:[
-		    combosList := (List with:eachCategory with:'-') , combosList
-		]
-	    ].
-
-	    box := ListSelectionBox new.
-	    box title:(resources string:'Rename category ''%1'' to:' with:eachCategory allBold).
-	    box useComboBoxWithList:combosList.
-	    box list:allCategories.
-	    box okAction:[:sel | newCategory := sel].
-	    box initialText:guess.
-
-	    cancelAll := false.
-	    categoriesToRename size > 1 ifTrue:[
-		|cancelAllButton|
-
-		cancelAllButton := Button label:(resources string:'Cancel All').
-		box addButton:cancelAllButton before:box cancelButton.
-		cancelAllButton action:[
-					    cancelAll := true.
-					    box doAccept.
-					    box okPressed.
-				       ].
-	    ].
-	    box label:(resources string:'Rename ClassCategory').
-	    box showAtPointer.
-	    cancelAll ifTrue:[^ self].
-
-	    newCategory notNil ifTrue:[
-		newCategory := newCategory withoutSeparators asSymbol.
-		LastCategoryRenames isNil ifTrue:[
-		    LastCategoryRenames := OrderedCollection new
-		].
-		LastCategoryRenames addFirst:newCategory.
-		LastCategoryRenames size > 20 ifTrue:[
-		    LastCategoryRenames removeLast
-		].
-
-		LastCategoryRenameOld := eachCategory.
-		LastCategoryRenameNew := newCategory.
-
-		(self selectedClassesInCategories:(Array with:eachCategory)) do:[:aClass |
-		    "/ must be loaded ...
-		    aClass autoload
-		].
-		(self selectedClassesInCategories:(Array with:eachCategory)) do:[:aClass |
-		    aClass category ~= newCategory ifTrue:[
-			numClasses := numClasses + 1.
-			change notNil ifTrue:[
-			    change changeClassCategoryOf:aClass to:newCategory
-			] ifFalse:[
-			    aClass category:newCategory.
-			].
-		    ]
-		].
-		numClasses == 0 ifTrue:[
-		    self categoryListApp addAdditionalCategory:newCategory.
-		].
-		self selectedCategories value:(Array with:newCategory).
-	    ].
-	].
+        categoriesToRename := self selectedCategoriesValue copy.
+        categoriesToRename do:[:eachCategory |
+            guess := DoWhatIMeanSupport
+                        goodRenameDefaultFor:eachCategory
+                        lastOld:LastCategoryRenameOld
+                        lastNew:LastCategoryRenameNew.
+
+            guess isNil ifTrue:[
+                guess := eachCategory string.
+            ].
+
+            allCategories := environment allClassCategories asArray sort.
+            combosList := LastCategoryRenames.
+            (combosList size > 0 and:[combosList includes:eachCategory]) ifFalse:[
+                combosList size == 0 ifTrue:[
+                    combosList := List with:eachCategory
+                ] ifFalse:[
+                    combosList := (List with:eachCategory with:'-') , combosList
+                ]
+            ].
+
+            box := ListSelectionBox new.
+            box title:(resources string:'Rename category ''%1'' to:' with:eachCategory allBold).
+            box useComboBoxWithList:combosList.
+            box list:allCategories.
+            box okAction:[:sel | newCategory := sel].
+            box initialText:guess.
+
+            cancelAll := false.
+            categoriesToRename size > 1 ifTrue:[
+                |cancelAllButton|
+
+                cancelAllButton := Button label:(resources string:'Cancel All').
+                box addButton:cancelAllButton before:box cancelButton.
+                cancelAllButton action:[
+                                            cancelAll := true.
+                                            box doAccept.
+                                            box okPressed.
+                                       ].
+            ].
+            box label:(resources string:'Rename ClassCategory').
+            box showAtPointer.
+            cancelAll ifTrue:[^ self].
+
+            newCategory notNil ifTrue:[
+                newCategory := newCategory withoutSeparators asSymbol.
+                LastCategoryRenames isNil ifTrue:[
+                    LastCategoryRenames := OrderedCollection new
+                ].
+                LastCategoryRenames addFirst:newCategory.
+                LastCategoryRenames size > 20 ifTrue:[
+                    LastCategoryRenames removeLast
+                ].
+
+                LastCategoryRenameOld := eachCategory.
+                LastCategoryRenameNew := newCategory.
+
+                (self selectedClassesInCategories:(Array with:eachCategory)) do:[:aClass |
+                    "/ must be loaded ...
+                    aClass autoload
+                ].
+                (self selectedClassesInCategories:(Array with:eachCategory)) do:[:aClass |
+                    aClass category ~= newCategory ifTrue:[
+                        numClasses := numClasses + 1.
+                        change notNil ifTrue:[
+                            change changeClassCategoryOf:aClass to:newCategory
+                        ] ifFalse:[
+                            aClass category:newCategory.
+                        ].
+                    ]
+                ].
+                numClasses == 0 ifTrue:[
+                    self categoryListApp addAdditionalCategory:newCategory.
+                ].
+                self selectedCategories value:(Array with:newCategory).
+            ].
+        ].
     ].
 
     change notNil ifTrue:[
-	numClasses > 0 ifTrue:[
-	    change name:('Rename category of %1 classes' bindWith:numClasses).
-	    RefactoryChangeManager performChange:change
-	]
+        numClasses > 0 ifTrue:[
+            change name:('Rename category of %1 classes' bindWith:numClasses).
+            RefactoryChangeManager performChange:change
+        ]
     ].
 
     "Modified: / 06-02-2007 / 10:31:45 / cg"
@@ -27073,13 +27957,17 @@
     "Modified: / 12-09-2006 / 15:03:50 / cg"
 !
 
+categoryMenuRepositoryHistoryUsingManager:aSourceCodeManager
+    self repositoryHistoryForProjects:nil usingManager:aSourceCodeManager
+!
+
 categoryMenuRewrite
     | classes |
 
     classes := self selectedClassesInCategories: self selectedCategoriesValue.
     MethodRewriter new
-	classes: classes;
-	open
+        classes: classes;
+        open
 
     "Created: / 21-07-2007 / 07:06:53 / janfrog"
     "Modified: / 28-02-2012 / 17:01:34 / cg"
@@ -27088,9 +27976,7 @@
 categoryMenuSmalllintCheck: what
     "perform all checks on the selected class(es)."
 
-    self
-	smalllintCheck:self selectedCategoriesAsEnvironment
-	against: what
+    self smalllintRun:what onEnvironment:self selectedCategoriesAsEnvironment
 
     "Modified: / 28-12-2008 / 14:42:01 / bazantj <enter your email here>"
     "Modified: / 13-01-2009 / 13:20:48 / Jiri Bazant <bazanj2@fel.cvut.cz>"
@@ -27135,12 +28021,12 @@
 
     matchingCategories := Set new.
     environment allClassesAndMetaclassesDo:[:eachClass |
-	|cat|
-
-	cat := eachClass category.
-	(pattern match:cat) ifTrue:[
-	    matchingCategories add:cat.
-	]
+        |cat|
+
+        cat := eachClass category.
+        (pattern match:cat) ifTrue:[
+            matchingCategories add:cat.
+        ]
     ].
     ^ self spawnCategoryBrowserFor:matchingCategories in:openHow
 !
@@ -27165,58 +28051,58 @@
     ^ self fileNameDialogForFileOut:tite default:defaultFileName withCancelAll:nil
 !
 
-fileNameDialogForFileOut:tite default:defaultFileName withCancelAll:cancelAllActionOrNil
+fileNameDialogForFileOut:title default:defaultFileName withCancelAll:cancelAllActionOrNil
     |currentClassCategory saveName fileBox
      defaultDir cancelAllButton|
 
     defaultDir := FileSelectionBox lastFileSelectionDirectory.
     defaultDir isNil ifTrue:[
-	"
-	 this test allows a smalltalk to be built without Projects/ChangeSets
-	"
-	Project notNil ifTrue:[
-	    defaultDir := Project currentProjectDirectory asFilename
-	].
-	defaultDir isNil ifTrue:[
-	    defaultDir := Filename currentDirectory
-	]
+        "
+         this test allows a smalltalk to be built without Projects/ChangeSets
+        "
+        Project notNil ifTrue:[
+            defaultDir := Project currentProjectDirectory asFilename
+        ].
+        defaultDir isNil ifTrue:[
+            defaultDir := Filename currentDirectory
+        ]
     ].
     currentClassCategory := self theSingleSelectedCategory.
 
     UserPreferences current useNewFileDialog ifTrue:[
-	saveName := Dialog
-			requestFileName:(resources string:'FileOut %1 as:' with:(currentClassCategory ? 'selected categories'))
-			default:defaultFileName
-			ok:(resources string:'FileOut')
-			abort:(resources string:'Cancel')
-			pattern:nil
-			fromDirectory:defaultDir.
-	saveName isEmptyOrNil ifTrue:[
-	    saveName := nil
-	].
-    ] ifFalse:[
-	fileBox := FileSelectionBox
-			title:(resources string:'FileOut %1 as:' with:(currentClassCategory ? 'selected categories'))
-			okText:(resources string:'FileOut')
-			abortText:(resources string:'Cancel')
-			action:[:fileName | saveName := fileName.].
-
-	fileBox initialText:defaultFileName.
-	fileBox directory:defaultDir.
-
-	cancelAllActionOrNil notNil ifTrue:[
-	    cancelAllButton := Button label:(resources string:'Cancel All').
-	    fileBox addButton:cancelAllButton before:fileBox cancelButton.
-	    cancelAllButton action:[
-		cancelAllActionOrNil value.
-		fileBox doAccept.
-		fileBox okPressed.
-	    ].
-	].
-
-	fileBox showAtPointer.
-	fileBox destroy.
-	fileBox := nil.
+        saveName := Dialog
+                        requestFileName:title
+                        default:defaultFileName
+                        ok:(resources string:'FileOut')
+                        abort:(resources string:'Cancel')
+                        pattern:nil
+                        fromDirectory:defaultDir.
+        saveName isEmptyOrNil ifTrue:[
+            saveName := nil
+        ].
+    ] ifFalse:[
+        fileBox := FileSelectionBox
+                        title:(resources string:'FileOut %1 as:' with:(currentClassCategory ? 'selected categories'))
+                        okText:(resources string:'FileOut')
+                        abortText:(resources string:'Cancel')
+                        action:[:fileName | saveName := fileName.].
+
+        fileBox initialText:defaultFileName.
+        fileBox directory:defaultDir.
+
+        cancelAllActionOrNil notNil ifTrue:[
+            cancelAllButton := Button label:(resources string:'Cancel All').
+            fileBox addButton:cancelAllButton before:fileBox cancelButton.
+            cancelAllButton action:[
+                cancelAllActionOrNil value.
+                fileBox doAccept.
+                fileBox okPressed.
+            ].
+        ].
+
+        fileBox showAtPointer.
+        fileBox destroy.
+        fileBox := nil.
     ].
 
     ^ saveName
@@ -27229,40 +28115,40 @@
 
     savedClasses  := aCollectionOfClasses select:[:eachClass | eachClass isPrivate not] as:IdentitySet.
     owningClasses := aCollectionOfClasses
-			select:[:eachClass | eachClass isPrivate]
-			thenCollect:[:eachPrivateClass | eachPrivateClass topOwningClass]
-			as:IdentitySet.
+                        select:[:eachClass | eachClass isPrivate]
+                        thenCollect:[:eachPrivateClass | eachPrivateClass topOwningClass]
+                        as:IdentitySet.
 
     unsavedOwners := owningClasses \ savedClasses.
     unsavedOwners notEmpty ifTrue:[
-	answer := self confirmWithCancel:'Private classes are saved with their owningClasses;\\Save owners as well ?' withCRs.
-	answer isNil ifTrue:[^ self].
-	answer == true ifTrue:[
-	    savedClasses addAll:unsavedOwners
-	]
+        answer := self confirmWithCancel:'Private classes are saved with their owningClasses;\\Save owners as well ?' withCRs.
+        answer isNil ifTrue:[^ self].
+        answer == true ifTrue:[
+            savedClasses addAll:unsavedOwners
+        ]
     ].
 
     savedClasses do:[:eachClass |
-	|fn answer|
-
-	eachClass isPrivate ifFalse:[
-	    self busyLabel:'saving: %1' with:eachClass name.
-	    Class fileOutErrorSignal handle:[:ex |
-		answer := DialogBox
-				confirm:(resources stringWithCRs:'Cannot fileOut: %1\(%2)\\skipped.'
-						     with:(eachClass name allBold)
-						     with:ex description)
-				yesLabel:'ok' noLabel:'cancel'.
-		answer == false ifTrue:[
-		    ^ self
-		].
-		self normalLabel.
-		ex return.
-	    ] do:[
-		fn := (Smalltalk fileNameForClass:eachClass) , '.st'.
-		eachClass fileOutAs:(aDirectory asFilename constructString:fn).
-	    ]
-	]
+        |fn answer|
+
+        eachClass isPrivate ifFalse:[
+            self busyLabel:'saving: %1' with:eachClass name.
+            Class fileOutErrorSignal handle:[:ex |
+                answer := DialogBox
+                                confirm:(resources stringWithCRs:'Cannot fileOut: %1\(%2)\\skipped.'
+                                                     with:(eachClass name allBold)
+                                                     with:ex description)
+                                yesLabel:'ok' noLabel:'cancel'.
+                answer == false ifTrue:[
+                    ^ self
+                ].
+                self normalLabel.
+                ex return.
+            ] do:[
+                fn := (Smalltalk fileNameForClass:eachClass) , '.st'.
+                eachClass fileOutAs:(aDirectory asFilename constructString:fn).
+            ]
+        ]
     ].
     self normalLabel.
 
@@ -27271,16 +28157,16 @@
 
 spawnCategoryBrowserFor:categories in:where
     "browse selected category(ies);
-	where is: #newBrowser - open a new browser showing the categories
-	where is: #newBuffer  - add a new buffer showing the categories"
+        where is: #newBrowser - open a new browser showing the categories
+        where is: #newBuffer  - add a new buffer showing the categories"
 
     |spec categoryList selectedClasses selectedProtocols selectedMethods
      singleSelection|
 
     (singleSelection := categories size == 1) ifTrue:[
-	spec := #singleCategoryBrowserSpec.
-    ] ifFalse:[
-	spec := #multipleCategoryBrowserSpec.
+        spec := #singleCategoryBrowserSpec.
+    ] ifFalse:[
+        spec := #multipleCategoryBrowserSpec.
     ].
 
     categoryList := categories copy.
@@ -27289,57 +28175,49 @@
     selectedMethods := self selectedMethodsValue copy.
 
     self
-	newBrowserOrBufferDependingOn:where
-	label:nil
-	forSpec:spec
-	setupWith:[:brwsr |
-	    |allMeta|
-
-	    "/ setup for a constant list ...
-	    brwsr immediateUpdate value:true.
-	    brwsr categoryListGenerator value:categoryList.
-	    brwsr selectCategories:categoryList.
-
-	    selectedClasses notNil ifTrue:[
-		allMeta := selectedClasses conform:[:aClass | aClass isMeta].
-		allMeta ifTrue:[
-		    brwsr meta value:true.
-		]
-	    ].
-	    selectedClasses size > 0 ifTrue:[brwsr selectClasses:selectedClasses].
-	    selectedProtocols size > 0 ifTrue:[brwsr selectProtocols:selectedProtocols].
-	    selectedMethods size > 0 ifTrue:[brwsr selectMethods:selectedMethods].
-
-	    brwsr immediateUpdate value:false.
-	]
+        newBrowserOrBufferDependingOn:where
+        label:nil
+        forSpec:spec
+        setupWith:[:brwsr |
+            |allMeta|
+
+            "/ setup for a constant list ...
+            brwsr immediateUpdate value:true.
+            brwsr categoryListGenerator value:categoryList.
+            brwsr selectCategories:categoryList.
+
+            selectedClasses notNil ifTrue:[
+                allMeta := selectedClasses conform:[:aClass | aClass isMeta].
+                allMeta ifTrue:[
+                    brwsr meta value:true.
+                ]
+            ].
+            selectedClasses size > 0 ifTrue:[brwsr selectClasses:selectedClasses].
+            selectedProtocols size > 0 ifTrue:[brwsr selectProtocols:selectedProtocols].
+            selectedMethods size > 0 ifTrue:[brwsr selectMethods:selectedMethods].
+
+            brwsr immediateUpdate value:false.
+        ]
 
     "Modified: / 28-02-2012 / 16:52:32 / cg"
 !
 
 spawnCategoryBrowserIn:where
     "browse selected category(ies);
-	where is: #newBrowser - open a new browser showing the categories
-	where is: #newBuffer  - add a new buffer showing the categories"
+        where is: #newBrowser - open a new browser showing the categories
+        where is: #newBuffer  - add a new buffer showing the categories"
 
     self spawnCategoryBrowserFor:(self selectedCategoriesValue) in:where
 ! !
 
 !NewSystemBrowser methodsFor:'menu actions-checks-lint'!
 
-foo
-    ^ true
-!
-
-isFoo
-    ^ true
-!
-
 loadSmalllint
     |pkg |
 
     pkg := Smalltalk at:#'stx_goodies_refactoryBrowser_lint'.
     (pkg isNil or:[ pkg isFullyLoaded not ]) ifTrue:[
-	Smalltalk loadPackage:#'stx:goodies/refactoryBrowser/lint' asAutoloaded:false
+        Smalltalk loadPackage:#'stx:goodies/refactoryBrowser/lint'
     ].
 
     "
@@ -27351,200 +28229,153 @@
 !
 
 runLint
-    "run the new smallLint checker tool"
-
-    self runLintOnPreviousRules
-
-    "Modified: / 17-04-2010 / 10:44:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Run previously selected rules or default rules on
+     currently selected code (depends on navigation state)"
+
+    ^ self smalllintRun:self smalllintRulesOrDefaultHolder value
+            onEnvironment:self selectedCodeComponentsAsEnvironment
+
     "Modified: / 07-03-2012 / 17:39:34 / cg"
-!
-
-runLintOnAllRules
-    "run the new smallLint checker tool on all rules"
-
-    self
-	smalllintCheck: self selectedCodeComponentsAsEnvironment
-	against: #smalllintRulesAll
-
-    "Created: / 07-03-2012 / 17:40:07 / cg"
-!
-
-runLintOnPreviousRules
-    "run the new smallLint checker tool"
-
-    self
-	smalllintCheck: self selectedCodeComponentsAsEnvironment
-	against: #smalllintRules
-
-    "Modified: / 17-04-2010 / 10:44:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified (comment): / 01-03-2012 / 14:10:47 / cg"
-    "Created: / 07-03-2012 / 17:39:28 / cg"
-!
-
-runLintOnSelectedRules
-    "run the new smallLint checker tool on selected rules"
-
-    self
-	smalllintCheck: self selectedCodeComponentsAsEnvironment
-	against: #smalllintRulesFromUser
-
-    "Created: / 07-03-2012 / 17:40:23 / cg"
-!
-
-smalllintCheck:anEnvironment against:ruleSetSymbol
-    "this is exected by an async task!!"
-
-    |rule runRules|
-
-    self assert:(#( #smalllintRulesAll #smalllintRulesFromUser #smalllintRules ) includes:ruleSetSymbol).
-
-    rule := self perform:ruleSetSymbol asSymbol.
-    rule isNil ifTrue:[ ^ self ].
-"/ cg: that is wrong implemented in RBxxxRule: isEmpty has two meanings:
-"/     for composite: has sub-rules
-"/     for non-composite: has a result
-"/ therefore, isEmpty returns true here, so we will be always asked twice!!
-
+    "Modified: / 27-11-2014 / 10:20:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+smalllintRulesOrDefault
+    "Return last run rules or default ruleset if no checks has been run so far"
+
+    (LastLintRulesHolder isNil or:[ LastLintRulesHolder value isNil ]) ifTrue:[
+        | default |
+        default := UserPreferences current smallLintRulesetDefault.
+        default notNil ifTrue:[
+            ^ default
+        ] ifFalse:[
+            ^ RBBuiltinRuleSet rulesetBuiltinDefault
+        ].
+    ] ifFalse:[
+        ^ LastLintRulesHolder value
+    ].
+
+    "Created: / 28-02-2013 / 22:42:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 16-10-2014 / 10:45:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified (comment): / 27-11-2014 / 11:41:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+smalllintRulesOrDefaultHolder
+    "Return a holder on last run rules or on default ruleset if no checks has been run so far"
+
+    smalllintRulesOrDefaultHolder isNil ifTrue:[
+        LastLintRulesHolder isNil ifTrue:[ LastLintRulesHolder := ValueHolder new ].
+        smalllintRulesOrDefaultHolder := PluggableAdaptor on: LastLintRulesHolder getter: [:ignored | self smalllintRulesOrDefault ]
+    ].
+    ^ smalllintRulesOrDefaultHolder
+
+    "Created: / 28-02-2013 / 22:43:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 07-10-2014 / 13:11:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified (comment): / 27-11-2014 / 11:42:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+smalllintRun
+    "Run previously selected rules or default rules on
+     currently selected code (depends on navigation state)"
+
+    ^ self smalllintRunOnEnvironment: self selectedCodeComponentsAsEnvironment
+
+    "Created: / 27-11-2014 / 11:43:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+smalllintRun:ruleSetOrNil onEnvironment:rbenvironment
+    "Run given SmallLint rules on given browser environment.
+     If `ruleSetOrNil` is nil. then ask sure for set of
+     rules.
+
+     As a side effect, remembers run rules so next time user
+     do 'Run Again', these rules we be run."
+
+    | rule  runRules |
+
+    ruleSetOrNil isNil ifTrue:[
+        | dialog |
+
+        dialog := Tools::LintRuleSelectionDialog new.
+        dialog open.
+        dialog accepted ifTrue:[
+            rule := dialog selectionAsRule
+        ] ifFalse:[ ^ self ].
+    ] ifFalse:[
+        rule := ruleSetOrNil.
+    ].
     rule isEmptyInTree ifTrue:[
-	ruleSetSymbol ~~ #smalllintRulesFromUser ifTrue:[
-	    rule := self smalllintRulesFromUser.
-	    rule isNil ifTrue:[ ^ self ].
-	]
-    ].
-
-    runRules :=
-	[
-	    |showResult|
-
-	    self smalllintRunRule:rule onEnvironment:anEnvironment.
-	    showResult := true.
-	    [rule notNil and:[rule isEmpty]] whileTrue:[
-		(Dialog confirm:'Nothing special found.\\Proceed to select more/different lint rules.' withCRs) ifTrue:[
-		    rule := self smalllintRulesFromUser.
-		    rule notNil ifTrue:[
-			self smalllintRunRule:rule onEnvironment:anEnvironment.
-		    ].
-		] ifFalse:[
-		    rule := nil
-		].
-	    ].
-	    rule notNil ifTrue:[
-		self
-		    spawnSmalllintBrowserByRuleFor:rule
-		    in:#newBuffer
-		    label:'SmallLint results for ' , anEnvironment label
-	    ].
-	].
-
-    "background operation (Jan's pref) makes it difficult to stop and debug...)"
+        (self inlineMessageApp)
+            reset;
+            beInformation;
+            message:(resources string:'Ruleset ''%1'' is empty!!' with:rule name);
+            addButtonOK;
+            show.
+        ^ self.
+    ].
+    LastLintRulesHolder isNil ifTrue:[
+        LastLintRulesHolder := ValueHolder new.
+    ].
+    LastLintRulesHolder value:rule.
+    runRules := [
+        "/ Run on copy, because running rules has a sideeffect
+        "/ of modifying the rule (storing in its result)
+        rule := rule copy.
+        self smalllintRunRule:rule onEnvironment:rbenvironment.
+        [ rule notNil and:[ rule isEmpty ] ] whileTrue:[
+            (Dialog confirm:(resources string: 'Nothing special found.\\Proceed to select more/different lint rules.') withCRs) ifTrue:[
+                | dialog |
+
+                dialog := Tools::LintRuleSelectionDialog new.
+                dialog open.
+                dialog accepted ifTrue:[
+                    rule := dialog selectionAsRule
+                ] ifFalse:[
+                    rule := nil.
+                ].
+                rule notNil ifTrue:[
+                    "/ Run on copy, because running rules has a sideeffect
+                    "/ of modifying the rule (storing in its result)
+                    rule := rule copy.
+                    self smalllintRunRule:rule onEnvironment:rbenvironment.
+                ].
+            ] ifFalse:[
+                rule := nil
+            ].
+        ].
+        rule notNil ifTrue:[
+            "/ Do this asynchronously, this is called from backgdound worker thread!!
+            self enqueueMessage: #spawnSmalllintBrowserByRuleFor:in:label:
+                 for: self
+                 arguments: (Array with: rule with: #newBuffer with: 'SmallLint results for ' , rbenvironment label)
+        ].
+    ].
+     "background operation (Jan's pref) makes it difficult to stop and debug...)"
     UserPreferences current runLintChecksInBackground ifTrue:[
-	self showMessage:'Checking code...' whileExecutingBackgroundAction:runRules.
-    ] ifFalse:[
-	self withWaitCursorDo:runRules
+        self showMessage:'Checking code...' whileExecutingBackgroundAction:runRules.
+    ] ifFalse:[
+        self withWaitCursorDo:runRules
     ].
 
     "Modified: / 15-12-2008 / 18:51:43 / Josef Grega <gregaj1@fel.cvut.cz>"
     "Modified: / 28-12-2008 / 14:40:01 / bazantj <enter your email here>"
     "Created: / 24-02-2009 / 11:02:57 / Jan Vrany <vranyj1@fel.cvut.cz>"
     "Modified: / 22-07-2009 / 14:38:30 / Jan Vrany <vranyj1@fel.cvut.cz>"
-    "Modified: / 28-08-2010 / 20:45:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 15-05-2012 / 10:46:02 / cg"
-!
-
-smalllintRules
-
-   ^LastLintRules
-	ifNil:[self smalllintRulesFromUser]
-	ifNotNil:[LastLintRules]
-
-
-    "
-	Tools::NewSystemBrowser basicNew smalllintRules
-    "
-
-    "Modified: / 17-04-2010 / 09:42:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-smalllintRulesFromUser
-    | dlg rules |
-
-    self loadSmalllint.
-    dlg := Tools::LintRuleSelectionDialog new.
-
-    LastLintRules notNil ifTrue:[
-	rules := LastLintRules
-    ] ifFalse:[
-	RBCompositeLintRule rulesets size > 0 ifTrue:[
-	    rules := RBCompositeLintRule rulesets detect:[:e|e name = #Default] ifNone:[ RBCompositeLintRule rulesets first]
-	] ifFalse:[
-	    rules := RBCompositeLintRule allRules
-	].
-    ].
-
-    dlg ruleset: rules.
-    ^ (dlg open; accepted)
-	    ifTrue:[ LastLintRules := dlg selectionAsRule ]
-	    ifFalse:[ nil ].
-
-    "
-     LastLintRules := nil.
-     Tools::NewSystemBrowser basicNew smalllintRulesFromUser
-    "
-
-    "Created: / 17-04-2010 / 09:41:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 25-08-2010 / 15:35:16 / Jan Vrany <enter your email here>"
-    "Modified (format): / 06-03-2012 / 18:55:09 / cg"
-    "Modified: / 27-02-2013 / 23:50:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-smalllintRulesOrAll
-    "Returns a set of user-selected SmallLint rules or all rules,
-     if no user selection is done"
-
-   ^LastLintRules notNil
-	ifTrue:[ LastLintRules ]
-	ifFalse:[ self smalllintRulesAll ]
-
-    "Created: / 23-01-2012 / 10:59:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified (format): / 07-03-2012 / 20:05:40 / cg"
-!
-
-smalllintRulesOrAllHolder
-    "Returns a holder on user-selected SmallLint rules
-     (or all rules if user made no selection"
-
-    ^[ self smalllintRulesOrAll ]
-
-    "Modified: / 17-04-2010 / 09:42:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Created: / 23-01-2012 / 11:05:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-smalllintRulesOrDefault
-    "Returns a set of user-selected SmallLint rules or all rules,
-     if no user selection is done"
-
-    LastLintRules notNil ifTrue:[ ^ LastLintRules ].
-
-    ^RBCompositeLintRule rulesets notEmpty ifTrue:[
-	RBCompositeLintRule rulesets detect:[:e|e name = #Default] ifNone:[ RBCompositeLintRule rulesets first]
-    ] ifFalse:[
-	RBCompositeLintRule allRules .
-    ]
-
-    "Created: / 28-02-2013 / 22:42:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-smalllintRulesOrDefaultHolder
-    "Returns a holder on user-selected SmallLint rules
-     (or all rules if user made no selection"
-
-    ^[ self smalllintRulesOrDefault ]
-
-    "Created: / 28-02-2013 / 22:43:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-smalllintRunRule: aLintRule onEnvironment: anEnvironment
-    "run a checker in the background"
+    "Modified: / 27-11-2014 / 11:35:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+smalllintRunOnEnvironment:aBrowserEnvironment
+    "Run previously selected rules or default rules on given environment"
+
+    ^ self smalllintRun: self smalllintRulesOrDefaultHolder value onEnvironment: aBrowserEnvironment
+
+    "Created: / 27-11-2014 / 11:46:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+smalllintRunRule: anRBLintRule onEnvironment: aBrowserEnvironment
+    "Internal helper: Actually run the given rule on given environment.
+     THis is called from a background worker - see smallLintRun:onEnvironment:
+    "
 
     | rules checker |
 
@@ -27552,187 +28383,199 @@
     "/ checker := SmalllintChecker.
     checker := (Smalltalk at:#SmalllintChecker).
 
-    rules := aLintRule flattened.
+    rules := anRBLintRule flattened.
     rules withIndexDo:[:rule :index|
-	|t|
-
-	ProgressNotification new
-	    messageText: ('Checking: ', rule name);
-	    parameter: (rules size / 100) * index;
-	    raiseRequest.
-
-	t := Time millisecondsToRun:[
-	    checker runRule: rule onEnvironment: anEnvironment
-	].
-	Transcript show:rule name; show:': '; show:t; showCR:'ms'.
+        |t|
+
+        ProgressNotification new
+            messageText: ('Checking: ', rule name, ' (' , rule class name,')');
+            parameter: (100 / rules size) * (index-1);
+            raiseRequest.
+
+        [
+            checker runRule: rule onEnvironment: aBrowserEnvironment
+        ] value. "/ benchmark: rule name, ': '.
     ].
     ProgressNotification new
-	messageText: ('Done');
-	parameter: 100;
-	raiseRequest.
+        messageText: ('Done');
+        parameter: 100;
+        raiseRequest.
 
     "Modified: / 15-12-2008 / 18:51:43 / Josef Grega <gregaj1@fel.cvut.cz>"
     "Modified: / 28-12-2008 / 14:40:01 / bazantj <enter your email here>"
     "Modified: / 22-07-2009 / 14:38:30 / Jan Vrany <vranyj1@fel.cvut.cz>"
     "Created: / 28-08-2010 / 12:12:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 01-03-2012 / 15:22:20 / cg"
+    "Modified: / 14-10-2014 / 18:01:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified (comment): / 27-11-2014 / 11:38:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+smalllintRunSelectedOnEnvironment:aBrowserEnvironment
+    "Ask user for rules and run them on given environment"
+
+    ^ self smalllintRun: nil onEnvironment: aBrowserEnvironment
+
+    "Created: / 27-11-2014 / 11:49:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 spawnSmalllintBrowserByRuleFor: result in:where label:labelOrNil
     ^ self
-	newBrowserOrBufferDependingOn:where
-	label:labelOrNil
-	forSpec: #smallLintByRuleResultBrowserSpec
-	setupWith:[:browser |
-	    |methodGenerator classGenerator ruleGenerator|
-
-	    ruleGenerator :=
-		Iterator on:[:whatToDo|
-		    result failedRules do:whatToDo].
-
-	    methodGenerator :=
-		Iterator on: [:whatToDo|
-		    | selectedRules selectedClasses failedMethods |
-
-		    selectedClasses := browser selectedClasses value.
-		    selectedRules := browser selectedLintRules value.
-		    failedMethods := OrderedCollection new.
-		    selectedClasses isEmptyOrNil ifFalse:
-			[selectedRules ? #() do:
-			    [:rule|
-			    failedMethods addAll:
-				(rule failedMethodsInAnyOf: selectedClasses meta: self hasMetaSelected)].
-		    failedMethods do:
-			[:mth|
-			whatToDo
-			    value:mth containingClass
-			    value:mth category
-			    value:mth selector
-			    value:mth]]].
-
-	    browser lintRuleListGenerator value:ruleGenerator.
-	    browser selectorListGenerator value:methodGenerator.
-
-	    browser selectedClasses
-		onChangeSend: #changed to: browser selectorListGenerator.
-	    browser selectedLintRules
-		onChangeSend: #changed to: browser selectorListGenerator.
-	    browser meta
-		onChangeSend: #changed to: browser selectorListGenerator.
-
-	    "/ cg: does not work - why?
-	    result failedRules size == 1 ifTrue:[
-		"/ autoselect the first one
-		browser selectedLintRules value:(result failedRules).
-	    ].
-
-	    "/self halt.
-	    "
-	    theMethodList isNil ifTrue:[
-		methodsOrMethodGeneratorBlock isBlock ifTrue:[
-		    theMethodList := methodsOrMethodGeneratorBlock value.
-		] ifFalse:[
-		    theMethodList := methodsOrMethodGeneratorBlock copy.
-		].
-	    ].
-	    perClassInfo := perClassInfoHolder value.
-	    perMethodInfo := perMethodInfoHolder value.
-
-	    methodGenerator := Iterator on:[:whatToDo |
-					    theMethodList isNil ifTrue:[
-						methodsOrMethodGeneratorBlock isBlock ifTrue:[
-						    theMethodList := methodsOrMethodGeneratorBlock value.
-						] ifFalse:[
-						    theMethodList := methodsOrMethodGeneratorBlock copy.
-						].
-					    ].
-					    perClassInfo := perClassInfoHolder value.
-					    perMethodInfo := perMethodInfoHolder value.
-
-					    theMethodNameList := theMethodList collect:[:eachMethod | eachMethod mclass -> eachMethod selector].
-					    theMethodNameList do:[:mAssoc |
-						|methodClass methodSelector method|
-
-						methodClass := mAssoc key.
-						methodSelector := mAssoc value.
-						methodClass notNil ifTrue:[
-						    method := methodClass compiledMethodAt:methodSelector.
-						    method notNil ifTrue:[
-							whatToDo
-							    value:methodClass
-							    value:method category
-							    value:methodSelector
-							    value:method.
-						    ].
-						].
-					    ].
-					    methodsOrMethodGeneratorBlock isBlock ifTrue:[
-						theMethodList := nil.
-					    ].
-					    whatToDo
-						value:nil
-						value:nil
-						value:nil
-						value:nil.
-				      ].
-
-	    sortHow notNil ifTrue:[brwsr sortBy value:sortHow].
-
-	    brwsr selectorListGenerator value:methodGenerator.
-	    perClassInfo notNil ifTrue:[
-		classGenerator := perClassInfo keys.
-		brwsr classListGenerator value:classGenerator.
-		brwsr meta value:false.
-	    ].
-
-	    perClassInfo notNil ifTrue:[
-		brwsr selectedClasses
-		    onChangeEvaluate:[
-			|class infoText|
-
-			brwsr selectedMethods value:nil.
-			class := brwsr theSingleSelectedClass.
-			class notNil ifTrue:[
-			    brwsr meta value:false.
-			    infoText := perClassInfoHolder value at:class theNonMetaclass ifAbsent:nil.
-			    infoText isNil ifTrue:[
-				infoText := perClassInfo at:class theMetaclass ifAbsent:nil
-			    ]
-			].
-			brwsr methodInfo value:infoText.
-		    ]
-	    ].
-
-	    perMethodInfo notNil ifTrue:[
-		brwsr selectedMethods
-		    onChangeEvaluate:[
-			|mthd infoText|
-
-			brwsr selectedClasses value:nil.
-			mthd := brwsr theSingleSelectedMethod.
-			mthd notNil ifTrue:[
-			    infoText := perMethodInfo at:mthd ifAbsent:nil
-			].
-			brwsr methodInfo value:infoText.
-		    ]
-	    ] ifFalse:[
-		(doSelect and:[theMethodList size == 1]) ifTrue:[
-		    brwsr selectMethods:(Array with:theMethodList first).
-		    brwsr methodsSelectionChanged.
-		]
-	    ].
-
-	    methodsOrMethodGeneratorBlock isBlock ifTrue:[
-		theMethodList := nil
-	    ]
-	    "
-	]
+        newBrowserOrBufferDependingOn:where
+        label:labelOrNil
+        forSpec: #smallLintByRuleResultBrowserSpec
+        setupWith:[:browser |
+            |methodGenerator classGenerator ruleGenerator|
+
+            ruleGenerator :=
+                Iterator on:[:whatToDo|
+                    result failedRules do:whatToDo].
+
+            methodGenerator :=
+                Iterator on: [:whatToDo|
+                    | selectedRules selectedClasses failedMethods |
+
+                    selectedClasses := browser selectedClasses value.
+                    selectedRules := browser selectedLintRules value.
+                    failedMethods := OrderedCollection new.
+                    selectedClasses isEmptyOrNil ifFalse:
+                        [selectedRules ? #() do:
+                            [:rule|
+                            failedMethods addAll:
+                                (rule failedMethodsInAnyOf: selectedClasses meta: self hasMetaSelected)].
+                    failedMethods do:
+                        [:mth|
+                        whatToDo
+                            value:mth containingClass
+                            value:mth category
+                            value:mth selector
+                            value:mth]]].
+
+            browser lintRuleListGenerator value:ruleGenerator.
+            browser selectorListGenerator value:methodGenerator.
+
+"/            browser selectedClasses
+"/                onChangeSend: #changed to: browser selectorListGenerator.
+            browser selectedClasses onChangeEvaluate:[
+                browser selectorListGenerator changed:#value.
+            ].
+            browser selectedLintRules
+                onChangeSend: #changed to: browser selectorListGenerator.
+            browser meta
+                onChangeSend: #changed to: browser selectorListGenerator.
+
+            "/ cg: does not work - why?
+            result failedRules size == 1 ifTrue:[
+                "/ autoselect the first one
+                browser selectedLintRules value: result failedRules.
+            ].
+
+            "/self halt.
+            "
+            theMethodList isNil ifTrue:[
+                methodsOrMethodGeneratorBlock isBlock ifTrue:[
+                    theMethodList := methodsOrMethodGeneratorBlock value.
+                ] ifFalse:[
+                    theMethodList := methodsOrMethodGeneratorBlock copy.
+                ].
+            ].
+            perClassInfo := perClassInfoHolder value.
+            perMethodInfo := perMethodInfoHolder value.
+
+            methodGenerator := Iterator on:[:whatToDo |
+                                            theMethodList isNil ifTrue:[
+                                                methodsOrMethodGeneratorBlock isBlock ifTrue:[
+                                                    theMethodList := methodsOrMethodGeneratorBlock value.
+                                                ] ifFalse:[
+                                                    theMethodList := methodsOrMethodGeneratorBlock copy.
+                                                ].
+                                            ].
+                                            perClassInfo := perClassInfoHolder value.
+                                            perMethodInfo := perMethodInfoHolder value.
+
+                                            theMethodNameList := theMethodList collect:[:eachMethod | eachMethod mclass -> eachMethod selector].
+                                            theMethodNameList do:[:mAssoc |
+                                                |methodClass methodSelector method|
+
+                                                methodClass := mAssoc key.
+                                                methodSelector := mAssoc value.
+                                                methodClass notNil ifTrue:[
+                                                    method := methodClass compiledMethodAt:methodSelector.
+                                                    method notNil ifTrue:[
+                                                        whatToDo
+                                                            value:methodClass
+                                                            value:method category
+                                                            value:methodSelector
+                                                            value:method.
+                                                    ].
+                                                ].
+                                            ].
+                                            methodsOrMethodGeneratorBlock isBlock ifTrue:[
+                                                theMethodList := nil.
+                                            ].
+                                            whatToDo
+                                                value:nil
+                                                value:nil
+                                                value:nil
+                                                value:nil.
+                                      ].
+
+            sortHow notNil ifTrue:[brwsr sortBy value:sortHow].
+
+            brwsr selectorListGenerator value:methodGenerator.
+            perClassInfo notNil ifTrue:[
+                classGenerator := perClassInfo keys.
+                brwsr classListGenerator value:classGenerator.
+                brwsr meta value:false.
+            ].
+
+            perClassInfo notNil ifTrue:[
+                brwsr selectedClasses
+                    onChangeEvaluate:[
+                        |class infoText|
+
+                        brwsr selectedMethods value:nil.
+                        class := brwsr theSingleSelectedClass.
+                        class notNil ifTrue:[
+                            brwsr meta value:false.
+                            infoText := perClassInfoHolder value at:class theNonMetaclass ifAbsent:nil.
+                            infoText isNil ifTrue:[
+                                infoText := perClassInfo at:class theMetaclass ifAbsent:nil
+                            ]
+                        ].
+                        brwsr methodInfo value:infoText.
+                    ]
+            ].
+
+            perMethodInfo notNil ifTrue:[
+                brwsr selectedMethods
+                    onChangeEvaluate:[
+                        |mthd infoText|
+
+                        brwsr selectedClasses value:nil.
+                        mthd := brwsr theSingleSelectedMethod.
+                        mthd notNil ifTrue:[
+                            infoText := perMethodInfo at:mthd ifAbsent:nil
+                        ].
+                        brwsr methodInfo value:infoText.
+                    ]
+            ] ifFalse:[
+                (doSelect and:[theMethodList size == 1]) ifTrue:[
+                    brwsr selectMethods:(Array with:theMethodList first).
+                    brwsr methodsSelectionChanged.
+                ]
+            ].
+
+            methodsOrMethodGeneratorBlock isBlock ifTrue:[
+                theMethodList := nil
+            ]
+            "
+        ]
 
     "Modified: / 22-07-2009 / 15:51:56 / Jan Vrany <vranyj1@fel.cvut.cz>"
     "Created: / 02-02-2010 / 20:05:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 02-02-2010 / 21:46:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 25-08-2010 / 10:30:33 / Jan Vrany <enter your email here>"
     "Modified: / 01-03-2012 / 19:52:57 / cg"
+    "Modified: / 27-11-2014 / 10:26:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !NewSystemBrowser methodsFor:'menu actions-checks-old'!
@@ -27779,61 +28622,61 @@
     classes isEmptyOrNil ifTrue:[^ self].
 
     (theSingleClass := self theSingleSelectedClass) notNil ifTrue:[
-	lbl := 'Check results of ' , theSingleClass name
-    ] ifFalse:[
-	lbl := 'Checker result'
+        lbl := 'Check results of ' , theSingleClass name
+    ] ifFalse:[
+        lbl := 'Checker result'
     ].
     badMethodInfoHolder := ValueHolder new.
     badClassInfoHolder := ValueHolder new.
 
     badMethodsGenerator := [
-	|checker badMethodInfo badClassInfo badMethods|
-
-	checker := ClassChecker new.
-
-	self withWaitCursorDo:[
-	    classes do:[:eachClass |
-		|cls|
-
-		cls := eachClass theNonMetaclass.
-		cls isLoaded ifTrue:[
-		    self activityNotification:('checking ' , cls name , '...').
-		    checker checkedClass:cls.
-		    aCollectionOfCheckSymbols do:[:eachCheck |
-			checker doCheck:eachCheck
-		    ]
-		]
-	    ].
-	].
-
-	badClassInfo := checker badClassInfo.
-	badMethodInfo := checker badMethodInfo.
-	(badMethodInfo isEmptyOrNil and:[ badClassInfo isEmptyOrNil ]) ifTrue:[
-	    "/ self information:'Nothing special found'.
-	    badClassInfoHolder value:nil.
-	    badMethodInfoHolder value:nil.
-	    #().
-	] ifFalse:[
-	    badClassInfoHolder value:badClassInfo.
-	    badMethodInfoHolder value:badMethodInfo.
-
-	    badMethodInfo size > 0 ifTrue:[
-		badMethods := badMethodInfo keys.
-	    ] ifFalse:[
-		badMethods := #()
-	    ].
-
-	    badMethods
-	].
-    ].
-
-    self
-	spawnMethodBrowserFor:badMethodsGenerator
-	in:#newBuffer
-	label:lbl
-	perClassInfo:badClassInfoHolder
-	perMethodInfo:badMethodInfoHolder
-	sortBy:#class
+        |checker badMethodInfo badClassInfo badMethods|
+
+        checker := ClassChecker new.
+
+        self withWaitCursorDo:[
+            classes do:[:eachClass |
+                |cls|
+
+                cls := eachClass theNonMetaclass.
+                cls isLoaded ifTrue:[
+                    self activityNotification:('checking ' , cls name , '...').
+                    checker checkedClass:cls.
+                    aCollectionOfCheckSymbols do:[:eachCheck |
+                        checker doCheck:eachCheck
+                    ]
+                ]
+            ].
+        ].
+
+        badClassInfo := checker badClassInfo.
+        badMethodInfo := checker badMethodInfo.
+        (badMethodInfo isEmptyOrNil and:[ badClassInfo isEmptyOrNil ]) ifTrue:[
+            "/ self information:'Nothing special found'.
+            badClassInfoHolder value:nil.
+            badMethodInfoHolder value:nil.
+            #().
+        ] ifFalse:[
+            badClassInfoHolder value:badClassInfo.
+            badMethodInfoHolder value:badMethodInfo.
+
+            badMethodInfo size > 0 ifTrue:[
+                badMethods := badMethodInfo keys.
+            ] ifFalse:[
+                badMethods := #()
+            ].
+
+            badMethods
+        ].
+    ].
+
+    self
+        spawnMethodBrowserFor:badMethodsGenerator
+        in:#newBuffer
+        label:lbl
+        perClassInfo:badClassInfoHolder
+        perMethodInfo:badMethodInfoHolder
+        sortBy:#class
 
     "Created: / 18-08-2000 / 22:43:56 / cg"
     "Modified: / 28-02-2012 / 16:45:37 / cg"
@@ -27860,14 +28703,14 @@
     allChecks := ClassChecker individualChecks.
     selectedChecks := List new.
     LastIndividualChecks notNil ifTrue:[
-	selectedChecks addAll:LastIndividualChecks
+        selectedChecks addAll:LastIndividualChecks
     ].
 
     selectedChecks := Dialog
-	chooseMultiple:'Select check(s) to perform on selected classes\(toggle items using CTRL-click)\' withCRs
-	fromList:allChecks values:allChecks
-	initialSelection:selectedChecks
-	lines:10.
+        chooseMultiple:'Select check(s) to perform on selected classes\(toggle items using CTRL-click)\' withCRs
+        fromList:allChecks values:allChecks
+        initialSelection:selectedChecks
+        lines:10.
     selectedChecks isEmptyOrNil ifTrue:[^ self].
     LastIndividualChecks := selectedChecks.
     self classMenuCheckEach:selectedChecks.
@@ -27900,11 +28743,11 @@
 
 addClassesToRemoveForClass:aClass to:classesToRemove removingSubclasses:removingSubclasses withCancel:withCancel
     self
-	addClassesToRemoveForClass:aClass
-	to:classesToRemove
-	removingSubclasses:removingSubclasses
-	withCancel:withCancel
-	withConfirm:true
+        addClassesToRemoveForClass:aClass
+        to:classesToRemove
+        removingSubclasses:removingSubclasses
+        withCancel:withCancel
+        withConfirm:true
 !
 
 addClassesToRemoveForClass:aClass to:classesToRemove removingSubclasses:removingSubclasses withCancel:withCancel withConfirm:withConfirm
@@ -27912,217 +28755,214 @@
      answer toRemove stillSearchingForMore more|
 
     (classesToRemove includes:aClass) ifTrue:[
-	"/ already in list
-	^ self
+        "/ already in list
+        ^ self
     ].
 
     aClass wasAutoloaded ifTrue:[
-	answer := self
-		    confirmWithCancel:(resources
-			    string:'%1 was autoloaded.\\Reinstall as autoloaded ?'
-			    with:aClass name allBold) withCRs.
-	answer isNil ifTrue:[
-	    ^ self
-	].
-	answer == true ifTrue:[
-	    self withWaitCursorDo:[
-		    aClass unload.
-		    environment changed:#classDefinition with:aClass
-		].
-	    ^ self
-	]
+        answer := self
+                    confirmWithCancel:(resources
+                            string:'%1 was autoloaded.\\Reinstall as autoloaded ?'
+                            with:aClass name allBold) withCRs.
+        answer isNil ifTrue:[
+            ^ self
+        ].
+        answer == true ifTrue:[
+            self withWaitCursorDo:[
+                aClass unload.
+                environment changed:#classDefinition with:aClass
+            ].
+            ^ self
+        ]
     ].
 
     countSubClasses := aClass allSubclasses size.
     t := 'Remove Class ''%1'''.
     countSubClasses ~~ 0 ifTrue:[
-	removingSubclasses ifTrue:[
-	    t := t , '\(with %2 subclass'.
-	] ifFalse:[
-	    t := t , '\(and pull up %2 subclass'.
-	].
-	countSubClasses ~~ 1 ifTrue:[
-	    t := t , 'es'
-	]
+        removingSubclasses ifTrue:[
+            t := t , '\(with %2 subclass'.
+        ] ifFalse:[
+            t := t , '\(and pull up %2 subclass'.
+        ].
+        countSubClasses ~~ 1 ifTrue:[
+            t := t , 'es'
+        ]
     ].
 
     countPrivateClasses := aClass allPrivateClasses size.
     countPrivateClasses ~~ 0 ifTrue:[
-	removingSubclasses ifFalse:[
-	    self warn:('%1 has private classes - please make them public; then try again' bindWith:aClass name allBold).
-	    ^ self
-	].
-
-	countSubClasses ~~ 0 ifTrue:[
-	    t := t , ' and'
-	] ifFalse:[
-	    t := t , '\(with'
-	].
-	t := t , ' %3 private class'.
-	countPrivateClasses ~~ 1 ifTrue:[
-	    t := t , 'es'
-	]
+        removingSubclasses ifFalse:[
+            self warn:('%1 has private classes - please make them public; then try again' bindWith:aClass name allBold).
+            ^ self
+        ].
+
+        countSubClasses ~~ 0 ifTrue:[
+            t := t , ' and'
+        ] ifFalse:[
+            t := t , '\(with'
+        ].
+        t := t , ' %3 private class'.
+        countPrivateClasses ~~ 1 ifTrue:[
+            t := t , 'es'
+        ]
     ].
 
     (countSubClasses ~~ 0 or:[countPrivateClasses ~~ 0]) ifTrue:[
-	t := t , ')'
+        t := t , ')'
     ].
     t := t , ' ?'.
     t := (resources
-		string:t
-		with:aClass name allBold
-		with:countSubClasses
-		with:countPrivateClasses) withCRs.
+                string:t
+                with:aClass name allBold
+                with:countSubClasses
+                with:countPrivateClasses) withCRs.
 
     YesToAllConfirmation query ifTrue:[
     ] ifFalse:[
-	(countSubClasses ~~ 0 or:[countPrivateClasses ~~ 0 or:[withConfirm]]) ifTrue:[
-	    withCancel ifTrue:[
-		confirmed := OptionBox
-			      request:t
-			      label:(resources string:'Remove Class')
-			      image:(YesNoBox iconBitmap)
-			      buttonLabels:(resources array:#('Cancel' 'No' 'Yes' 'Yes to All'))
-			      values:#(nil false true #yesToAll)
-			      default:false
-			      onCancel:false.
-		"/ confirmed := Dialog confirmWithCancel:t default:false
-	    ] ifFalse:[
-		confirmed := Dialog confirm:t
-	    ].
-	    confirmed isNil ifTrue:[
-		"/ cancelled
-		AbortOperationRequest raise
-	    ].
-	    confirmed == #yesToAll ifTrue:[
-		YesToAllConfirmation notify.
-		confirmed := true.
-	    ].
-
-	    confirmed ifFalse:[
-		^ self
-	    ]
-	].
+        (countSubClasses ~~ 0 or:[countPrivateClasses ~~ 0 or:[withConfirm]]) ifTrue:[
+            withCancel ifTrue:[
+                confirmed := OptionBox
+                              request:t
+                              label:(resources string:'Remove Class')
+                              image:(YesNoBox iconBitmap)
+                              buttonLabels:(resources array:#('Cancel' 'No' 'Yes' 'Yes to All'))
+                              values:#(nil false true #yesToAll)
+                              default:false
+                              onCancel:false.
+                "/ confirmed := Dialog confirmWithCancel:t default:false
+            ] ifFalse:[
+                confirmed := Dialog confirm:t
+            ].
+            confirmed isNil ifTrue:[
+                "/ cancelled
+                AbortOperationRequest raise
+            ].
+            confirmed == #yesToAll ifTrue:[
+                YesToAllConfirmation notify.
+                confirmed := true.
+            ].
+
+            confirmed ifFalse:[
+                ^ self
+            ]
+        ].
     ].
 
     didRemove := false.
     includesBuiltIn := aClass isBuiltInClass.
     aClass allSubclassesDo:[:aSubClass |
-	    includesBuiltIn := includesBuiltIn or:[aSubClass isBuiltInClass]
-	].
+            includesBuiltIn := includesBuiltIn or:[aSubClass isBuiltInClass]
+        ].
     includesBuiltIn ifTrue:[
-	"/ ask again - severe damage is to be expected ...
-
-	confirmed := Dialog
-		    confirmWithCancel:'The set of classes to remove includes at least one systemClass,\without which ST/X will fail to work.\Be prepared for a crash, if you proceed.\\Really remove ?'
-			    withCRs
-		    default:false.
-	confirmed isNil ifTrue:[
-	    "/ cancelled
-
-	    AbortSignal raise
-	].
-	confirmed ifFalse:[
-	    ^ self
-	]
+        "/ ask again - severe damage is to be expected ...
+
+        confirmed := Dialog
+                    confirmWithCancel:'The set of classes to remove includes at least one systemClass,\without which ST/X will fail to work.\Be prepared for a crash, if you proceed.\\Really remove ?'
+                            withCRs
+                    default:false.
+        confirmed isNil ifTrue:[
+            "/ cancelled
+
+            AbortSignal raise
+        ].
+        confirmed ifFalse:[
+            ^ self
+        ]
     ].
 
     "/ check if any of the classes to remove has a repository container - warn about this if so
     aClass withAllSubclassesDo:[:eachClassToRemove |
-	eachClassToRemove isPrivate ifFalse:[
-	    eachClassToRemove revision notNil ifTrue:[
-		(removingSubclasses or:[eachClassToRemove == aClass])
-		ifTrue:[
-		    (SourceCodeManagerUtilities sourceCodeManagerFor:eachClassToRemove) isContainerBased ifTrue:[
-			confirmed := Dialog
-				    confirmWithCancel:(resources
-					    string:'Remove the source container for ''%1'' in the repository ?\\Warning: can only be undone by manually fixing the CVS repository !!'
-					    with:eachClassToRemove name allBold) withCRs
-				    default:false.
-		    ] ifFalse:[
-			confirmed := false.
-		    ].
-		    confirmed isNil ifTrue:[
-			"/ cancelled
-
-			AbortSignal raise
-		    ].
-		    confirmed ifTrue:[
-			(SourceCodeManagerUtilities sourceCodeManagerFor:eachClassToRemove)
-			    removeSourceContainerForClass:eachClassToRemove
-			    confirm:true
-			    warn:true
-		    ]
-		]
-	    ].
-	]
+        eachClassToRemove isPrivate ifFalse:[
+            eachClassToRemove revision notNil ifTrue:[
+                (removingSubclasses or:[eachClassToRemove == aClass])
+                ifTrue:[
+                    (SourceCodeManagerUtilities sourceCodeManagerFor:eachClassToRemove) isContainerBased ifTrue:[
+                        confirmed := Dialog
+                                    confirmWithCancel:(resources
+                                            string:'Remove the source container for ''%1'' in the repository ?\\Warning: can only be undone by manually fixing the CVS repository !!'
+                                            with:eachClassToRemove name allBold) withCRs
+                                    default:false.
+                    ] ifFalse:[
+                        confirmed := false.
+                    ].
+                    confirmed isNil ifTrue:[
+                        "/ cancelled
+
+                        AbortSignal raise
+                    ].
+                    confirmed ifTrue:[
+                        (SourceCodeManagerUtilities sourceCodeManagerFor:eachClassToRemove)
+                            utilities
+                                removeSourceContainerForClass:eachClassToRemove
+                                confirm:true
+                                warn:true
+                    ]
+                ]
+            ].
+        ]
     ].
 
     "/ check if any of the classes to be removed from the ProjectDefinition
     aClass withAllSubclassesDo:[:eachClassToRemove |
-	eachClassToRemove isPrivate ifFalse:[
-	    |def|
-
-	    def := eachClassToRemove projectDefinitionClass.
-	    def notNil and:[
-		(eachClassToRemove ~~ def
-		and:[ def allClassNames includes:eachClassToRemove name ]) ifTrue:[
-		    (Dialog confirm:(resources string:'Remove %1 from its Package definition ?'
-						 with:eachClassToRemove name))
-		    ifTrue:[
-			self excludeClasses: (Array with: eachClassToRemove) fromProject:def using:Compiler.
-		    ].
-		]
-	    ]
-	]
+        eachClassToRemove isPrivate ifFalse:[
+            |def|
+
+            def := eachClassToRemove projectDefinitionClass.
+            def notNil and:[
+                (eachClassToRemove ~~ def
+                and:[ def allClassNames includes:eachClassToRemove name ]) ifTrue:[
+                    (Dialog confirm:(resources string:'Remove %1 from its Package definition ?'
+                                                 with:eachClassToRemove name))
+                    ifTrue:[
+                        self excludeClasses: (Array with: eachClassToRemove) fromProject:def using:Compiler.
+                    ].
+                ]
+            ]
+        ]
     ].
 
     toRemove := IdentitySet new.
     toRemove addAll:classesToRemove.
 
     removingSubclasses ifTrue:[
-	aClass allSubclassesDo:[:aSubClass |
-	    (CheckForInstancesWhenRemovingClasses == false or:[
-		    aSubClass hasInstances not or:[
-			    self confirm:(resources string:'''%1'' has instances - remove anyway ?'
-						    with:aSubClass name allBold)
-			]
-		]) ifTrue:[
-		classesToRemove add:aSubClass.
-		toRemove add:aSubClass
-	    ]
-	].
-    ].
-    (CheckForInstancesWhenRemovingClasses == false or:[
-	    aClass hasInstances not or:[
-		    self confirm:(resources string:'''%1'' has instances - remove anyway ?'
-				with:aClass name allBold)
-		]
-     ]) ifTrue:[
-	didRemove := true.
-	aClass allPrivateClassesDo:[:eachPrivate |
-		classesToRemove addFirst:eachPrivate.
-		toRemove add:eachPrivate
-	    ].
-	classesToRemove add:aClass.
-	toRemove add:aClass
+        aClass allSubclassesDo:[:aSubClass |
+            (CheckForInstancesWhenRemovingClasses == false 
+                or:[ aSubClass hasInstances not 
+                or:[ self confirm:(resources string:'''%1'' has instances - remove anyway ?'
+                                               with:aSubClass name allBold)
+            ]]) ifTrue:[
+                classesToRemove add:aSubClass.
+                toRemove add:aSubClass
+            ]
+        ].
+    ].
+    (CheckForInstancesWhenRemovingClasses == false 
+        or:[ aClass hasInstances not 
+        or:[ self confirm:(resources string:'''%1'' has instances - remove anyway ?'
+                                       with:aClass name allBold)
+    ]]) ifTrue:[
+        didRemove := true.
+        aClass allPrivateClassesDo:[:eachPrivate |
+            classesToRemove addFirst:eachPrivate.
+            toRemove add:eachPrivate
+        ].
+        classesToRemove add:aClass.
+        toRemove add:aClass
     ].
 
     stillSearchingForMore := true.
-    [
-	stillSearchingForMore
-    ] whileTrue:[
-	stillSearchingForMore := false.
-	more := IdentitySet new.
-	classesToRemove do:[:eachClass |
-	    eachClass allPrivateClasses do:[:eachPrivate |
-		classesToRemove addFirst:eachPrivate.
-		(toRemove includes:eachPrivate) ifFalse:[
-		    toRemove add:eachPrivate.
-		    more := true
-		]
-	    ]
-	]
+    [stillSearchingForMore] whileTrue:[
+        stillSearchingForMore := false.
+        more := IdentitySet new.
+        classesToRemove do:[:eachClass |
+            eachClass allPrivateClassesDo:[:eachPrivate |
+                classesToRemove addFirst:eachPrivate.
+                (toRemove includes:eachPrivate) ifFalse:[
+                    toRemove add:eachPrivate.
+                    more := true
+                ]
+            ]
+        ]
     ]
 
     "Modified: / 21-12-2011 / 20:22:34 / cg"
@@ -28131,10 +28971,10 @@
 
 askForGlobalCoverageRecording
     self globalCoverageRecordingIsEnabled value ifFalse:[
-	(Dialog confirm:(resources stringWithCRs:'Coverage recording can be done either during a single test-run, or globally for every process.\Currently, global recording is disabled, which means that recording will only be done during a special recording test-run (in the Testrunner tool).\\Do you want to enable global coverage recording now?'))
-	ifTrue:[
-	    self debugMenuEnableGlobalCoverageRecording
-	]
+        (Dialog confirm:(resources stringWithCRs:'Coverage recording can be done either during a single test-run, or globally for every process.\Currently, global recording is disabled, which means that recording will only be done during a special recording test-run (in the Testrunner tool).\\Do you want to enable global coverage recording now?'))
+        ifTrue:[
+            self debugMenuEnableGlobalCoverageRecording
+        ]
     ].
 !
 
@@ -28145,67 +28985,67 @@
     "/ provide a reasonable default in the pull-down-list
     currentClass := self anySelectedClass.
     currentClass isNil ifTrue:[
-	m := self anySelectedMethod.
-	currentClass := m mclass.
+        m := self anySelectedMethod.
+        currentClass := m mclass.
     ].
 
     LastMethodMoveOrCopyTargetClass notNil ifTrue:[
-	initial := environment classNamed:LastMethodMoveOrCopyTargetClass.
-	initial notNil ifTrue:[
-	    (currentClass notNil and:[currentClass theNonMetaclass name = initial name]) ifTrue:[
-		initial := nil
-	    ]
-	].
-	initial notNil ifTrue:[
-	    currentClass isMeta ifTrue:[
-		initial := initial theMetaclass
-	    ] ifFalse:[
-		initial := initial theNonMetaclass
-	    ].
-	    initial := initial name.
-	].
+        initial := environment classNamed:LastMethodMoveOrCopyTargetClass.
+        initial notNil ifTrue:[
+            (currentClass notNil and:[currentClass theNonMetaclass name = initial name]) ifTrue:[
+                initial := nil
+            ]
+        ].
+        initial notNil ifTrue:[
+            currentClass isMeta ifTrue:[
+                initial := initial theMetaclass
+            ] ifFalse:[
+                initial := initial theNonMetaclass
+            ].
+            initial := initial name.
+        ].
     ].
 
     initial isNil ifTrue:[
-	(sup := currentClass superclass) notNil ifTrue:[
-	    initial := sup name
-	] ifFalse:[
-	    initial := nil.
-	].
-    ].
-
-    supers := currentClass allSuperclasses reverse.
+        (sup := currentClass superclass) notNil ifTrue:[
+            initial := sup name
+        ] ifFalse:[
+            initial := nil.
+        ].
+    ].
+
+    supers := currentClass allSuperclasses reversed.
     currentClass isMeta ifTrue:[
-	supers := supers select:[:each | each isSubclassOf:Class].
+        supers := supers select:[:each | each isSubclassOf:Class].
     ].
     supers := supers collect:[:cls | cls name].
 
     list := supers.
 
     self selectedClassesValue size > 1 ifTrue:[
-	reqString := 'Generate isXXX methods in which superclass ?'.
-	title := 'Generate isXXX methods'.
-    ] ifFalse:[
-	reqString := 'Generate %1 method in which superclass ?'.
-	title := 'Generate %1 method'.
+        reqString := 'Generate isXXX methods in which superclass ?'.
+        title := 'Generate isXXX methods'.
+    ] ifFalse:[
+        reqString := 'Generate %1 method in which superclass ?'.
+        title := 'Generate %1 method'.
     ].
     okLabel := 'Generate'.
 
     newClassName := Dialog
-		    request:(resources stringWithCRs:reqString with:selector)
-		    initialAnswer:(initial ? '')
-		    okLabel:(resources string:okLabel)
-		    title:(resources string:title with:selector)
-		    onCancel:nil
-		    list:list
-		    entryCompletionBlock:(DoWhatIMeanSupport classNameEntryCompletionBlock).
+                    request:(resources stringWithCRs:reqString with:selector)
+                    initialAnswer:(initial ? '')
+                    okLabel:(resources string:okLabel)
+                    title:(resources string:title with:selector)
+                    onCancel:nil
+                    list:list
+                    entryCompletionBlock:(DoWhatIMeanSupport classNameEntryCompletionBlock).
 
     newClassName isNil ifTrue:[^ nil].
     (newClassName startsWith:'---- ') ifTrue:[^ nil].
 
     newClass := self classIfValidNonMetaClassName:newClassName.
     newClass isNil ifTrue:[
-	^ nil
+        ^ nil
     ].
 
     LastMethodMoveOrCopyTargetClass := newClass theNonMetaclass name.
@@ -28219,28 +29059,28 @@
      (meant for a human to read)"
 
     aClass theNonMetaclass withAllPrivateClassesDo:[:eachClass |
-	eachClass instAndClassSelectorsAndMethodsDo:[:aSelector :aMethod |
-	    Parser warningSignal
-		handle:[:ex | self halt. ex proceed ]
-		do:[
-		    aMethod source isEmpty ifTrue:[
-			aBlock value:aMethod value:('No source for method: ',aMethod whoString).
-		    ] ifFalse:[
-			eachClass compilerClass new
-			    compile:aMethod source
-			    forClass:aMethod mclass
-			    inCategory:'others'
-			    notifying:warningCollector
-			    install:false
-			    skipIfSame:false
-			    silent:false
-			    foldConstants:true
-			    ifFail:[
-				aBlock value:aMethod value:('not compilable: ',aMethod whoString).
-			    ]
-		    ]
-		]
-	].
+        eachClass instAndClassSelectorsAndMethodsDo:[:aSelector :aMethod |
+            Parser warningSignal
+                handle:[:ex | self halt. ex proceed ]
+                do:[
+                    aMethod source isEmpty ifTrue:[
+                        aBlock value:aMethod value:('No source for method: ',aMethod whoString).
+                    ] ifFalse:[
+                        eachClass compilerClass new
+                            compile:aMethod source
+                            forClass:aMethod mclass
+                            inCategory:'others'
+                            notifying:warningCollector
+                            install:false
+                            skipIfSame:false
+                            silent:false
+                            foldConstants:true
+                            ifFail:[
+                                aBlock value:aMethod value:('not compilable: ',aMethod whoString).
+                            ]
+                    ]
+                ]
+        ].
     ].
 
     "Created: / 13-06-2012 / 13:12:42 / cg"
@@ -28251,32 +29091,32 @@
      (meant for a human to read)"
 
     aClass theNonMetaclass withAllPrivateClassesDo:[:eachClass |
-	eachClass instAndClassSelectorsAndMethodsDo:[:aSelector :aMethod |
-	    (withExtensions
-	      or:[ aMethod package = aClass package
-	      or:[ aMethod isExtension == PackageId noProjectID ]]) ifTrue:[
-		Parser parseWarningSignal
-		    handle:[:ex | ex proceed ]
-		    do:[
-			aMethod source isEmpty ifTrue:[
-			    aBlock value:aMethod value:('No source for method: ',aMethod whoString).
-			] ifFalse:[
-			    eachClass compilerClass new
-				compile:aMethod source
-				forClass:aMethod mclass
-				inCategory:'others'
-				notifying:warningCollector
-				install:false
-				skipIfSame:false
-				silent:false
-				foldConstants:true
-				ifFail:[
-				    aBlock value:aMethod value:('not compilable: ',aMethod whoString).
-				]
-			]
-		    ]
-	    ]
-	].
+        eachClass instAndClassSelectorsAndMethodsDo:[:aSelector :aMethod |
+            (withExtensions
+              or:[ aMethod package = aClass package
+              or:[ aMethod isExtension == PackageId noProjectID ]]) ifTrue:[
+                (Parser parseWarningSignal , UndefinedVariableNotification)
+                    handle:[:ex | ex proceed ]
+                    do:[
+                        aMethod source isEmpty ifTrue:[
+                            aBlock value:aMethod value:('No source for method: ',aMethod whoString).
+                        ] ifFalse:[
+                            eachClass compilerClass new
+                                compile:aMethod source
+                                forClass:aMethod mclass
+                                inCategory:'others'
+                                notifying:warningCollector
+                                install:false
+                                skipIfSame:false
+                                silent:false
+                                foldConstants:true
+                                ifFail:[
+                                    aBlock value:aMethod value:('not compilable: ',aMethod whoString).
+                                ]
+                        ]
+                    ]
+            ]
+        ].
     ].
 
     "Created: / 13-06-2012 / 13:12:42 / cg"
@@ -28296,14 +29136,14 @@
     failedMethods := OrderedCollection new.
 
     self
-	checkCompilabilityOf:aClass
-	withExtensions:withExtensions
-	errorsOnly:errorsOnly
-	notify:warningCollector
-	reportFailedMethodsInto:[:failedMethod :message |
-	    failedMethods add:failedMethod.
-	    outStream nextPutLine:message
-	].
+        checkCompilabilityOf:aClass
+        withExtensions:withExtensions
+        errorsOnly:errorsOnly
+        notify:warningCollector
+        reportFailedMethodsInto:[:failedMethod :message |
+            failedMethods add:failedMethod.
+            outStream nextPutLine:message
+        ].
 
     ^ failedMethods
 
@@ -28334,7 +29174,8 @@
     failedMethods := OrderedCollection new.
 
     aCollectionOfClasses do:[:eachClass |
-	failedMethods addAll:(self checkCompilabilityOf:eachClass withExtensions:withExtensions errorsOnly:errorsOnly outputTo:outStream).
+        self showInfo:('Checking compilability of %1...' bindWith:eachClass name).
+        failedMethods addAll:(self checkCompilabilityOf:eachClass withExtensions:withExtensions errorsOnly:errorsOnly outputTo:outStream).
     ].
     ^ failedMethods.
 
@@ -28345,12 +29186,10 @@
     "perform all checks on the selected class(es)."
 
     ClassEnvironment isNil ifTrue:[
-	Dialog warn:'Missing refactoryBrowser/browser package'.
-	^ self.
-    ].
-    self
-	smalllintCheck:self selectedClassesAsEnvironment
-	against: what
+        Dialog warn:'Missing refactoryBrowser/browser package'.
+        ^ self.
+    ].
+    self smalllintRun:what onEnvironment:self selectedClassesAsEnvironment
 
     "Modified: / 28-12-2008 / 14:42:01 / bazantj <enter your email here>"
     "Modified: / 13-01-2009 / 13:20:48 / Jiri Bazant <bazanj2@fel.cvut.cz>"
@@ -28364,8 +29203,8 @@
      Also, set acceptaction to install the class."
 
     ^ self
-	classClassDefinitionTemplateFor:aClass in:cat
-	asNamespace:isNameSpace private:isPrivate metaClassUsed:nil
+        classClassDefinitionTemplateFor:aClass in:cat
+        asNamespace:isNameSpace private:isPrivate metaClassUsed:nil
 !
 
 classClassDefinitionTemplateFor:aClass in:cat asNamespace:isNameSpace private:isPrivate metaClassUsed:metaClassUsedOrNil
@@ -28375,36 +29214,42 @@
 
     |theSuperClass|
 
+    (self askIfModified) ifFalse:[^ self ].
+
     (aClass == Autoload
     or:[aClass isNil or:[aClass isLoaded not]]) ifTrue:[
-	self javaMode ifTrue:[
-	    theSuperClass := Java at:'java.lang.Object'
-	] ifFalse:[
-	    theSuperClass := Object
-	]
-    ] ifFalse:[
-	theSuperClass := aClass
+        self javaMode ifTrue:[
+            theSuperClass := Java at:'java.lang.Object'
+        ] ifFalse:[
+            theSuperClass := Object
+        ]
+    ] ifFalse:[
+        theSuperClass := aClass
     ].
 
 "/    self switchToClass:nil.
     metaClassUsedOrNil notNil ifTrue:[
-	self codeView isCodeView2 ifTrue:[
-	    self codeView languageHolder value: theSuperClass programmingLanguage.
-	].
+        self codeView isCodeView2 ifTrue:[
+            | language |
+
+            language := ProgrammingLanguage all detect:[:lang | lang metaClass == metaClassUsedOrNil ] ifNone:[ theSuperClass programmingLanguage ].
+            self codeView languageHolder value: language.
+        ].
     ].
     self showCode:(self
-			classTemplateFor:theSuperClass
-			in:cat
-			asNamespace:isNameSpace
-			private:isPrivate
-			metaClassUsed:metaClassUsedOrNil).
+                        classTemplateFor:theSuperClass
+                        in:cat
+                        asNamespace:isNameSpace
+                        private:isPrivate
+                        metaClassUsed:metaClassUsedOrNil).
 
     self setAcceptActionForMetaClassUsed:metaClassUsedOrNil.
 
-    self codeAspect: SyntaxHighlighter codeAspectClassDefinition
-
-    "Modified: / 10-12-2001 / 19:55:31 / cg"
-    "Modified: / 04-08-2013 / 03:31:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    self codeAspect: SyntaxHighlighter codeAspectClassDefinition.
+    self codeView modified:true
+
+    "Modified: / 09-04-2014 / 12:58:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 04-06-2014 / 18:12:01 / cg"
 !
 
 classListMenuAddClassToList
@@ -28419,7 +29264,7 @@
     className isNil ifTrue:[^ self].
     class := environment at:className asSymbol ifAbsent:nil.
     class isNil ifTrue:[
-	^ self warn:'No such class'
+        ^ self warn:'No such class'
     ].
     classList add:class.
     classList sort:[:a :b | a name < b name].
@@ -28437,7 +29282,7 @@
 
     classesToHide := self selectedClassesValue copy.
     classesToHide do:[:classToHide |
-	classList removeIdentical:classToHide
+        classList removeIdentical:classToHide
     ].
     classList sort:[:a :b | a name < b name].
 
@@ -28446,6 +29291,13 @@
     "Modified: / 28-02-2012 / 16:45:26 / cg"
 !
 
+classMenuBrowseClassesPackageDirectory
+    "open a filebrowser in the classes package directory"
+
+    UserPreferences fileBrowserClass
+        openIn:(self theSingleSelectedClass theNonMetaclass packageDirectory)
+!
+
 classMenuChangeAspect:aspect
     "show a classes comment/hierarchy or definition"
 
@@ -28461,24 +29313,24 @@
 
     cls := self theSingleSelectedClass.
     cls notNil ifTrue:[
-	cls := cls theNonMetaclass
+        cls := cls theNonMetaclass
     ].
 
     aspect == #classComment ifTrue:[
-	self showClassComment:cls.
-	^ self
+        self showClassComment:cls.
+        ^ self
     ].
     aspect == #classHierarchy ifTrue:[
-	self showClassHierarchy:cls.
-	^ self
+        self showClassHierarchy:cls.
+        ^ self
     ].
     aspect == #classDefinition ifTrue:[
-	self showClassDefinition:cls.
-	^ self
+        self showClassDefinition:cls.
+        ^ self
     ].
     aspect == #classOwnershipGraph ifTrue:[
-	self showClassOwnershipGraph:cls.
-	^ self
+        self showClassOwnershipGraph:cls.
+        ^ self
     ].
 
     self error:'unknown aspect: ', aspect printString.
@@ -28499,7 +29351,7 @@
     (TextBox openOn:allMessages title:'Errors and Warnings' readOnly:true).
 
     badMethods notEmpty ifTrue:[
-	self spawnMethodBrowserFor:badMethods in:#newBuffer label:'Uncompilable Methods'
+        self spawnMethodBrowserFor:badMethods in:#newBuffer label:'Uncompilable Methods'
     ].
 
     "Created: / 16-11-2006 / 14:53:21 / cg"
@@ -28512,22 +29364,22 @@
 
     currentClass := self theSingleSelectedLoadedNonMetaclassOrNil.
     currentClass isNil ifTrue:[
-	self warn:'Cannot copy unloaded classes.'.
-	^ self
+        self warn:'Cannot copy unloaded classes.'.
+        ^ self
     ].
 
     name := Dialog request:(resources
-				string:'Enter name for new parent class of "%1" and its subclasses:'
-				with:currentClass name allBold).
+                                string:'Enter name for new parent class of "%1" and its subclasses:'
+                                with:currentClass name allBold).
     name isEmpty ifTrue: [^self].
 
     subclasses := self selectSubclassesOf:currentClass.
     subclasses isEmptyOrNil ifTrue: [^self].
 
     self performRefactoring:
-	    (ChildrenToSiblingsRefactoring name: name
-		    class: currentClass
-		    subclasses: subclasses).
+            (ChildrenToSiblingsRefactoring name: name
+                    class: currentClass
+                    subclasses: subclasses).
 
     self switchToClassNamed:name.
 "/            meta: self isMeta
@@ -28540,14 +29392,14 @@
     "remove all changes for the selected class(es) from the changeSet"
 
     UserPreferences current avoidConfirmationsForExperiencedUsers ifFalse:[
-	(self confirm:'This will remove all changes for the selected class(es) from the changeSet.\\Really cleanup ?' withCRs)
-	    ifFalse:[ ^ self].
+        (self confirm:'This will remove all changes for the selected class(es) from the changeSet.\\Really cleanup ?' withCRs)
+            ifFalse:[ ^ self].
     ].
 
     self withWaitCursorDo:[
-	self selectedClassesDo:[:eachClass |
-	    ChangeSet current condenseChangesForClass:eachClass
-	].
+        self selectedClassesDo:[:eachClass |
+            ChangeSet current condenseChangesForClass:eachClass
+        ].
     ]
 
     "Modified: / 05-09-2012 / 11:25:36 / cg"
@@ -28569,9 +29421,9 @@
 
     sel := self selectedNonMetaclasses value.
     sel size == 2 ifTrue:[
-	class1 := sel first.
-	class2 := sel second.
-	self doCompareClass:class1 withClass:class2
+        class1 := sel first.
+        class2 := sel second.
+        self doCompareClass:class1 withClass:class2
     ]
 
     "Modified: / 12-09-2006 / 13:52:57 / cg"
@@ -28585,32 +29437,32 @@
 
     currentClass := self theSingleSelectedLoadedNonMetaclassOrNil.
     currentClass isNil ifTrue:[
-	self warn:'Cannot compare unloaded classes.'.
-	^ self.
-    ].
-
-    supers := (currentClass allSuperclasses reverse collect:[:cls | cls name]).
+        self warn:'Cannot compare unloaded classes.'.
+        ^ self.
+    ].
+
+    supers := (currentClass allSuperclasses reversed collect:[:cls | cls name]).
     subs := (currentClass allSubclasses collect:[:cls | cls name]).
     list := supers.
     (supers notEmpty and:[subs notEmpty]) ifTrue:[
-	list := list , (Array with:'---- ' , currentClass name , ' ----')
+        list := list , (Array with:'---- ' , currentClass name , ' ----')
     ].
     list := list , subs.
 
     otherClassName := Dialog
-		    request:(resources string:'Compare this class against which class:')
-		    initialAnswer:''
-		    okLabel:(resources string:'Compare')
-		    title:(resources string:'Compare class')
-		    onCancel:nil
-		    list:list.
+                    request:(resources string:'Compare this class against which class:')
+                    initialAnswer:''
+                    okLabel:(resources string:'Compare')
+                    title:(resources string:'Compare class')
+                    onCancel:nil
+                    list:list.
     otherClassName isNil ifTrue:[^ self].
     (otherClassName startsWith:'---- ') ifTrue:[^ self].
 
     otherClass := environment classNamed:otherClassName.
     otherClass isNil ifTrue:[
-	self warn:'no such class: ', otherClassName.
-	^ self
+        self warn:'no such class: ', otherClassName.
+        ^ self
     ].
 
     otherClass := otherClass theNonMetaclass.
@@ -28623,11 +29475,11 @@
     "compile selected classes' lazy methods (kludge - for me)"
 
     self selectedClassesDo:[:eachClass |
-	eachClass instAndClassSelectorsAndMethodsDo:[:sel :mthd |
-	    mthd isLazyMethod ifTrue:[
-		mthd makeRealMethod
-	    ]
-	]
+        eachClass instAndClassSelectorsAndMethodsDo:[:sel :mthd |
+            mthd isLazyMethod ifTrue:[
+                mthd makeRealMethod
+            ]
+        ]
     ].
 !
 
@@ -28639,8 +29491,8 @@
 
     currentClass := self theSingleSelectedLoadedNonMetaclassOrNil.
     currentClass isNil ifTrue:[
-	self warn:'Cannot copy unloaded classes.'.
-	^ self
+        self warn:'Cannot copy unloaded classes.'.
+        ^ self
     ].
 
     currentClassName := currentClass name.
@@ -28652,59 +29504,61 @@
 "/    ].
 
     newClassName := Dialog
-			request:(resources string:'Copy class %1 as:' with:currentClassName allBold)
-			initialAnswer:newClassName.
+                        request:(resources string:'Copy class %1 as:' with:currentClassName allBold)
+                        initialAnswer:newClassName.
     (newClassName isEmptyOrNil or:[newClassName withoutSeparators = currentClassName]) ifTrue:[
-	^ self
+        ^ self
     ].
     (environment classNamed:newClassName) notNil ifTrue:[
-	(self confirm:(resources string:'A class named: ''%1'' already exists.\\Overwrite ?' with:newClassName) withCRs)
-	    ifFalse:[^ self]
+        (self confirm:(resources string:'A class named: ''%1'' already exists.\\Overwrite ?' with:newClassName) withCRs)
+            ifFalse:[^ self]
     ].
     (owningClass := currentClass owningClass) notNil ifTrue:[
-	(newClassName startsWith:(owningClass name , '::')) ifTrue:[
-	    newClassName := newClassName withoutPrefix:(owningClass name , '::').
-	    newOwnerClass := owningClass.
-	] ifFalse:[
-	    (newClassName includes:$:) ifTrue:[
-		idx := newClassName lastIndexOf:$:.
-		ownerName := newClassName copyTo:idx.
-		[ownerName endsWith:$:] whileTrue:[ownerName := ownerName copyButLast:1].
-		newClassName := newClassName copyFrom:idx+1.
-	    ] ifFalse:[
-		(self confirm:(resources string:'Copy as public class ''%1'' ?' with:newClassName) withCRs)
-		    ifFalse:[^ self].
-	    ]
-	].
-    ] ifFalse:[
-	idx := newClassName lastIndexOf:$:.
-	idx ~~ 0 ifTrue:[
-	    ownerName := newClassName copyTo:idx-2.
-	    newClassName := newClassName copyFrom:idx+1.
-	].
+        (newClassName startsWith:(owningClass name , '::')) ifTrue:[
+            newClassName := newClassName withoutPrefix:(owningClass name , '::').
+            newOwnerClass := owningClass.
+        ] ifFalse:[
+            (newClassName includes:$:) ifTrue:[
+                idx := newClassName lastIndexOf:$:.
+                ownerName := newClassName copyTo:idx.
+                [ownerName endsWith:$:] whileTrue:[ownerName := ownerName copyButLast].
+                newClassName := newClassName copyFrom:idx+1.
+            ] ifFalse:[
+                (self confirm:(resources string:'Copy as public class ''%1'' ?' with:newClassName) withCRs)
+                    ifFalse:[^ self].
+            ]
+        ].
+    ] ifFalse:[
+        idx := newClassName lastIndexOf:$:.
+        idx ~~ 0 ifTrue:[
+            ownerName := newClassName copyTo:idx-2.
+            newClassName := newClassName copyFrom:idx+1.
+        ].
     ].
 
     ownerName notNil ifTrue:[
-	(environment classNamed:ownerName) isNil ifTrue:[
-	    (Dialog confirm:(resources
-				stringWithCRs:'No class or nameSpace named: "%1"\\Create as Namespace ?' with:ownerName))
-	    ifFalse:[
-		^ self
-	    ].
-	    newOwnerClass := NameSpace fullName:ownerName.
-	].
-	newOwnerClass := environment at:ownerName asSymbol.
-	(newOwnerClass == Smalltalk or:[newOwnerClass isNameSpace]) ifTrue:[
-	    newOwnerClass == Smalltalk ifFalse:[
-		newClassName := ownerName , '::' , newClassName.
-	    ].
-	    newOwnerClass := nil.
-	].
+        (environment classNamed:ownerName) isNil ifTrue:[
+            (Dialog confirm:(resources
+                                stringWithCRs:'No class or nameSpace named: "%1"\\Create as Namespace ?' with:ownerName))
+            ifFalse:[
+                ^ self
+            ].
+            newOwnerClass := NameSpace fullName:ownerName.
+        ].
+        newOwnerClass := environment at:ownerName asSymbol.
+        (newOwnerClass == Smalltalk or:[newOwnerClass isNameSpace]) ifTrue:[
+            newOwnerClass == Smalltalk ifFalse:[
+                newClassName := ownerName , '::' , newClassName.
+            ].
+            newOwnerClass := nil.
+        ].
     ].
 
     self busyLabel:'copying class ...' with:nil.
     self withWaitCursorDo:[
-	newClass := self doCopyClass:currentClass as:newClassName privateIn:newOwnerClass.
+        Class packageQuerySignal answer:self theSingleSelectedProject do:[
+            newClass := self doCopyClass:currentClass as:newClassName privateIn:newOwnerClass.
+        ].
     ].
     self selectClass:newClass.
 
@@ -28755,11 +29609,11 @@
 
     textHolder := ValueHolder new.
     dialog := Dialog
-		 forRequestText:(resources string:'Enter actionBlock')
-		 lines:25
-		 columns:70
-		 initialAnswer:(LastClassProcessingBlockString ? template)
-		 model:textHolder.
+                 forRequestText:(resources string:'Enter actionBlock')
+                 lines:25
+                 columns:70
+                 initialAnswer:(LastClassProcessingBlockString ? template)
+                 model:textHolder.
     dialog addButton:(Button label:'Template' action:[textHolder value:template. textHolder changed:#value.]).
     dialog open.
     dialog accepted ifFalse:[^ self].
@@ -28770,7 +29624,7 @@
     actionBlock := Parser evaluate:actionBlockString.
     self assert:actionBlock isBlock message:'bad input'.
     self selectedClassesDo:[:eachClass |
-	actionBlock value:eachClass
+        actionBlock value:eachClass
     ].
 
     "Created: / 05-06-2012 / 17:30:17 / cg"
@@ -28780,17 +29634,17 @@
     "show classes documentation (i.e. open doc-View on it)"
 
     self
-	selectedClassesNonMetaDo:
-	    [:cls |
-		self openClassDocumentationFor:cls
-	    ]
-	ifUnloaded:
-	    [:cls |
-		true
-	    ]
-	ifPrivate:
-	    [:cls |
-	    ]
+        selectedClassesNonMetaDo:
+            [:cls |
+                self openClassDocumentationFor:cls
+            ]
+        ifUnloaded:
+            [:cls |
+                true
+            ]
+        ifPrivate:
+            [:cls |
+            ]
 !
 
 classMenuEditResourceFiles
@@ -28800,25 +29654,25 @@
 
     files := Set new.
     self selectedClassesValue do:[:eachClass |
-	|defClass directory|
-
-	(defClass := eachClass theNonMetaclass projectDefinitionClass) notNil ifTrue:[
-	    resources := defClass classResources.
-	].
-	resources notNil ifTrue:[
-	    resources := resources projectPack.
-	    resources notNil ifTrue:[
-		filename := resources packsFileName.
-		files add:filename
-	    ]
-	] ifFalse:[
-	    directory := Smalltalk packageDirectoryForPackageId:(eachClass package).
-	    files add:(directory asFilename / 'resources' / (Smalltalk language, '.rs')).
-	]
+        |defClass directory|
+
+        (defClass := eachClass theNonMetaclass projectDefinitionClass) notNil ifTrue:[
+            resources := defClass classResources.
+        ].
+        resources notNil ifTrue:[
+            resources := resources projectPack.
+            resources notNil ifTrue:[
+                filename := resources packsFileName.
+                files add:filename
+            ]
+        ] ifFalse:[
+            directory := Smalltalk packageDirectoryForPackageId:(eachClass package).
+            files add:(directory asFilename / 'resources' / (Smalltalk language, '.rs')).
+        ]
     ].
     files do:[:eachFile |
-	UserPreferences current fileBrowserClass
-	    openOn:eachFile
+        UserPreferences fileBrowserClass
+            openOn:eachFile
     ].
 !
 
@@ -28828,16 +29682,16 @@
     projectDefinitionClasses := self selectedClassesValue collect:[:cls | cls projectDefinitionClass] as:Set.
 
     projectDefinitionClasses do:[:eachDefinitionClass |
-	|toExcludeForThis|
-
-	toExcludeForThis := self selectedClassesValue select:[:cls | cls projectDefinitionClass == eachDefinitionClass].
-
-	self
-	    generateUndoableChange:(resources string:'Exclude %1 class(es) from Project %2' with:toExcludeForThis size with:eachDefinitionClass name)
-	    overClasses:(Array with: eachDefinitionClass)
-	    via:[:generator :projectDefinition |
-		self excludeClasses:toExcludeForThis fromProject:projectDefinition using:generator
-	    ].
+        |toExcludeForThis|
+
+        toExcludeForThis := self selectedClassesValue select:[:cls | cls projectDefinitionClass == eachDefinitionClass].
+
+        self
+            generateUndoableChange:(resources string:'Exclude %1 class(es) from Project %2' with:toExcludeForThis size with:eachDefinitionClass name)
+            overClasses:(Array with: eachDefinitionClass)
+            via:[:generator :projectDefinition |
+                self excludeClasses:toExcludeForThis fromProject:projectDefinition using:generator
+            ].
     ].
 
     "Created: / 19-02-2007 / 17:29:12 / cg"
@@ -28852,47 +29706,47 @@
 
 classMenuFileOutAsWithFormat:aFormatSymbolOrNil
     "fileOut selected classes -  file format as specified by the argument:
-	nil     - standard format
-	#xml    - XML standard format
-	#sif    - SIF (smalltalk interchange file) standard format
-	#binary - ST/X binary format
+        nil     - standard format
+        #xml    - XML standard format
+        #sif    - SIF (smalltalk interchange file) standard format
+        #binary - ST/X binary format
     "
 
     |mode|
 
     aFormatSymbolOrNil == #binary ifTrue:[
-	mode := Dialog choose:(resources string:'Save including sources ?')
-		       labels:(resources array:#('Cancel' 'Discard' 'By file reference' 'Include source'))
-		       values:#(nil #discard #reference #keep)
-		       default:#keep.
-
-	mode isNil ifTrue:[^ self].   "/ cancelled
-    ].
-
-    self
-	selectedClassesNonMetaDo:
-	    [:cls |
-	       self
-		   fileOutClass:cls
-		   askForFile:true
-		   withCancelAll:(self selectedClassesValue size > 1)
-		   format:aFormatSymbolOrNil
-		   sourceMode:mode.
-	    ]
-	ifUnloaded:
-	    [:cls |
-		self warn:'Cannot fileOut unloaded class: %1' with:cls name allBold.
-		false.
-	    ]
-	ifPrivate:
-	    [:cls | |owner|
-		owner := cls owningClass.
-		(self selectedClassesValue includes:owner) ifFalse:[
-		    self warn:'Cannot fileOut private class: %1\\Please fileOut the owning class (%2).'
-			with:cls nameWithoutPrefix allBold
-			with:owner name.
-		]
-	    ]
+        mode := Dialog choose:(resources string:'Save including sources ?')
+                       labels:(resources array:#('Cancel' 'Discard' 'By file reference' 'Include source'))
+                       values:#(nil #discard #reference #keep)
+                       default:#keep.
+
+        mode isNil ifTrue:[^ self].   "/ cancelled
+    ].
+
+    self
+        selectedClassesNonMetaDo:
+            [:cls |
+               self
+                   fileOutClass:cls
+                   askForFile:true
+                   withCancelAll:(self selectedClassesValue size > 1)
+                   format:aFormatSymbolOrNil
+                   sourceMode:mode.
+            ]
+        ifUnloaded:
+            [:cls |
+                self warn:'Cannot fileOut unloaded class: %1' with:cls name allBold.
+                false.
+            ]
+        ifPrivate:
+            [:cls | |owner|
+                owner := cls owningClass.
+                (self selectedClassesValue includes:owner) ifFalse:[
+                    self warn:'Cannot fileOut private class: %1\\Please fileOut the owning class (%2).'
+                        with:cls nameWithoutPrefix allBold
+                        with:owner name.
+                ]
+            ]
 
     "Modified: / 28-02-2012 / 16:46:20 / cg"
 !
@@ -28922,14 +29776,14 @@
 
     classes := self selectedNonMetaclasses.
     dirName := self
-		askForDirectoryToFileOut:(resources string:'FileOut %1 classes in:' with:classes size)
-		default:nil.
+                askForDirectoryToFileOut:(resources string:'FileOut %1 classes in:' with:classes size)
+                default:nil.
     dirName isNil ifTrue:[^ self].
 
     self
-	fileOutEachClassIn:classes
-	in:dirName
-	withFormat:aFormatSymbolOrNil.
+        fileOutEachClassIn:classes
+        in:dirName
+        withFormat:aFormatSymbolOrNil.
 
     "Modified: / 11-07-2010 / 16:44:33 / cg"
 !
@@ -28940,6 +29794,12 @@
     self classMenuFileOutEachInWithFormat:#sif
 !
 
+classMenuFileOutEachVSEIn
+    "fileOut selected classes as individual files - visual smalltalk enterprise format"
+
+    self classMenuFileOutEachInWithFormat:#vse
+!
+
 classMenuFileOutEachXMLIn
     "fileOut selected classes as individual files - xml format"
 
@@ -28954,10 +29814,10 @@
 
 classMenuFileOutInWithFormat:aFormatSymbolOrNil
     "fileOut selected classes -  file format as specified by the argument:
-	nil     - standard format
-	#xml    - XML standard format
-	#sif    - SIF (smalltalk interchange file) standard format
-	#binary - ST/X binary format
+        nil     - standard format
+        #xml    - XML standard format
+        #sif    - SIF (smalltalk interchange file) standard format
+        #binary - ST/X binary format
     "
 
     self fileOutClasses:(self selectedNonMetaclasses) withFormat:aFormatSymbolOrNil
@@ -28971,6 +29831,12 @@
     ^ self classMenuFileOutAsWithFormat:#sif
 !
 
+classMenuFileOutVSEAs
+    "fileOut selected classes - visual smalltalk enterprise file format"
+
+    ^ self classMenuFileOutAsWithFormat:#vse
+!
+
 classMenuFileOutXMLAs
     "fileOut selected classes - XML file format"
 
@@ -28981,10 +29847,10 @@
     "create a visitor acceptor method"
 
     self
-	generateUndoableChange:'Generate Accept-Visitor Method for %(singleClassNameOrNumberOfClasses)'
-	overSelectedClassesVia:[:generator :eachClass |
-	    generator createAcceptVisitorMethodIn:eachClass theNonMetaclass
-	].
+        generateUndoableChange:'Generate Accept-Visitor Method for %(singleClassNameOrNumberOfClasses)'
+        overSelectedClassesVia:[:generator :eachClass |
+            generator createAcceptVisitorMethodIn:eachClass theNonMetaclass
+        ].
 
     "Modified: / 21-01-2012 / 10:22:31 / cg"
 !
@@ -28995,11 +29861,11 @@
      otherwise for that selected instvar."
 
     self
-	classMenuGenerateAccessMethodsWithChange:false
-	asValueHolder:false
-	readersOnly:false
-	writersOnly:false
-	lazyInitialization:false
+        classMenuGenerateAccessMethodsWithChange:false
+        asValueHolder:false
+        readersOnly:false
+        writersOnly:false
+        lazyInitialization:false
 !
 
 classMenuGenerateAccessMethodsForValueHolder
@@ -29008,11 +29874,11 @@
      otherwise for that selected instvar."
 
     self
-	classMenuGenerateAccessMethodsWithChange:false
-	asValueHolder:true
-	readersOnly:false
-	writersOnly:false
-	lazyInitialization:false
+        classMenuGenerateAccessMethodsWithChange:false
+        asValueHolder:true
+        readersOnly:false
+        writersOnly:false
+        lazyInitialization:false
 !
 
 classMenuGenerateAccessMethodsForValueHolderWithChange
@@ -29021,11 +29887,11 @@
      otherwise for that selected instvar."
 
     self
-	classMenuGenerateAccessMethodsWithChange:true
-	asValueHolder:true
-	readersOnly:false
-	writersOnly:false
-	lazyInitialization:false
+        classMenuGenerateAccessMethodsWithChange:true
+        asValueHolder:true
+        readersOnly:false
+        writersOnly:false
+        lazyInitialization:false
 !
 
 classMenuGenerateAccessMethodsWithChange
@@ -29034,11 +29900,11 @@
      otherwise for that selected instvar."
 
     self
-	classMenuGenerateAccessMethodsWithChange:true
-	asValueHolder:false
-	readersOnly:false
-	writersOnly:false
-	lazyInitialization:false
+        classMenuGenerateAccessMethodsWithChange:true
+        asValueHolder:false
+        readersOnly:false
+        writersOnly:false
+        lazyInitialization:false
 !
 
 classMenuGenerateAccessMethodsWithChange:aBoolean asValueHolder:asValueHolder readersOnly:readersOnly writersOnly:writersOnly
@@ -29047,11 +29913,11 @@
      otherwise for that selected instvar."
 
     self
-	classMenuGenerateAccessMethodsWithChange:aBoolean
-	asValueHolder:asValueHolder
-	readersOnly:readersOnly
-	writersOnly:writersOnly
-	lazyInitialization:false
+        classMenuGenerateAccessMethodsWithChange:aBoolean
+        asValueHolder:asValueHolder
+        readersOnly:readersOnly
+        writersOnly:writersOnly
+        lazyInitialization:false
 !
 
 classMenuGenerateAccessMethodsWithChange:aBoolean asValueHolder:asValueHolder readersOnly:readersOnly writersOnly:writersOnly lazyInitialization:lazyInitialization
@@ -29061,23 +29927,23 @@
      otherwise for that selected instvar."
 
     self
-	generateUndoableChange:'Generate Access Methods in %(singleClassNameOrNumberOfClasses)'
-	overSelectedClassesVia:[:generator :eachClass |
-	    |names|
-
-	    names := self variableFilter value.
-	    names size == 0 ifTrue:[
-		names := eachClass instVarNames
-	    ].
-	    generator
-		createAccessMethodsFor:names
-		in:eachClass
-		withChange:aBoolean
-		asValueHolder:asValueHolder
-		readersOnly:readersOnly
-		writersOnly:writersOnly
-		lazyInitialization:lazyInitialization
-	]
+        generateUndoableChange:'Generate Access Methods in %(singleClassNameOrNumberOfClasses)'
+        overSelectedClassesVia:[:generator :eachClass |
+            |names|
+
+            names := self variableFilter value.
+            names size == 0 ifTrue:[
+                names := eachClass instVarNames
+            ].
+            generator
+                createAccessMethodsFor:names
+                in:eachClass
+                withChange:aBoolean
+                asValueHolder:asValueHolder
+                readersOnly:readersOnly
+                writersOnly:writersOnly
+                lazyInitialization:lazyInitialization
+        ]
 
     "Created: / 07-08-1998 / 18:17:18 / cg"
 !
@@ -29088,11 +29954,11 @@
      otherwise for that selected instvar."
 
     self
-	classMenuGenerateAccessMethodsWithChange:true
-	asValueHolder:false
-	readersOnly:false
-	writersOnly:false
-	lazyInitialization:true
+        classMenuGenerateAccessMethodsWithChange:true
+        asValueHolder:false
+        readersOnly:false
+        writersOnly:false
+        lazyInitialization:true
 !
 
 classMenuGenerateApplicationCode
@@ -29107,20 +29973,20 @@
     "create application code methods"
 
     (cls isSubclassOf:WebApplicationModel) ifTrue:[
-	generator createWebApplicationCodeFor:cls.
-	^ self.
+        generator createWebApplicationCodeFor:cls.
+        ^ self.
     ].
     (cls isSubclassOf:HTTPService) ifTrue:[
-	generator createWebServiceCodeFor:cls.
-	^ self.
+        generator createWebServiceCodeFor:cls.
+        ^ self.
     ].
     (cls isSubclassOf:ApplicationModel) ifTrue:[
-	generator createApplicationCodeFor:cls.
-	^ self.
+        generator createApplicationCodeFor:cls.
+        ^ self.
     ].
     (cls isSubclassOf:StandaloneStartup) ifTrue:[
-	generator createStandaloneStartupCodeFor:cls.
-	^ self.
+        generator createStandaloneStartupCodeFor:cls.
+        ^ self.
     ].
 
     "Modified: / 19-08-2011 / 01:58:40 / cg"
@@ -29130,12 +29996,12 @@
     "create application code methods"
 
     self
-	generateUndoableChange:'Generate ApplicationCode in %(singleClassNameOrNumberOfClasses)'
-	overClasses:classes
-	via:[:generator :eachClass |
-	    generator confirmChanges:false.
-	    self classMenuGenerateApplicationCodeFor:(eachClass theNonMetaclass) using:generator
-	]
+        generateUndoableChange:'Generate ApplicationCode in %(singleClassNameOrNumberOfClasses)'
+        overClasses:classes
+        via:[:generator :eachClass |
+            generator confirmChanges:false.
+            self classMenuGenerateApplicationCodeFor:(eachClass theNonMetaclass) using:generator
+        ]
 
     "Created: / 21-01-2012 / 11:09:47 / cg"
 !
@@ -29144,10 +30010,10 @@
     "create #initialize method on the class side"
 
     self
-	generateUndoableChange:'Generate Class Initializer in %(singleClassNameOrNumberOfClasses)'
-	overSelectedClassesVia:[:generator :eachClass |
-	    generator createClassInitializeMethodIn:eachClass theMetaclass.
-	]
+        generateUndoableChange:'Generate Class Initializer in %(singleClassNameOrNumberOfClasses)'
+        overSelectedClassesVia:[:generator :eachClass |
+            generator createClassInitializeMethodIn:eachClass theMetaclass.
+        ]
 
     "Modified: / 21-01-2012 / 10:22:58 / cg"
 !
@@ -29158,21 +30024,21 @@
     |cls subclasses|
 
     (cls := self theSingleSelectedLoadedNonMetaclassOrNil) isNil ifTrue:[
-	self information:'You must select a single (abstract) superclass'.
-	^ self.
+        self information:'You must select a single (abstract) superclass'.
+        ^ self.
     ].
 
     subclasses := cls subclasses.
     subclasses isEmpty ifTrue:[
-	self information:'(Abstract) superclass ' , cls name , ' has no subclasses.'.
-	^ self.
-    ].
-
-    self
-	generateUndoableChange:'Generate ClassType Testers'
-	overSelectedClassesVia:[:generator :eachClass |
-	    generator createClassTypeTestMethodsIn:cls theNonMetaclass forClasses:subclasses
-	].
+        self information:'(Abstract) superclass ' , cls name , ' has no subclasses.'.
+        ^ self.
+    ].
+
+    self
+        generateUndoableChange:'Generate ClassType Testers'
+        overSelectedClassesVia:[:generator :eachClass |
+            generator createClassTypeTestMethodsIn:cls theNonMetaclass forClasses:subclasses
+        ].
 
     "Modified: / 21-01-2012 / 10:23:07 / cg"
 !
@@ -29183,19 +30049,19 @@
     |cls sel superclass|
 
     (cls := self theSingleSelectedClass) notNil ifTrue:[
-	sel := 'is' , cls nameWithoutPrefix.
-    ] ifFalse:[
-	sel := 'isXXX'.
+        sel := 'is' , cls nameWithoutPrefix.
+    ] ifFalse:[
+        sel := 'isXXX'.
     ].
 
     superclass := self askForSuperclassToGenerateTestMethod:sel.
     superclass isNil ifTrue:[^ self].
 
     self
-	generateUndoableChange:'Generate ClassType Testers'
-	overSelectedClassesVia:[:generator :eachClass |
-	    generator createClassTypeTestMethodsIn:(superclass theNonMetaclass) forClasses:(Array with:eachClass)
-	].
+        generateUndoableChange:'Generate ClassType Testers'
+        overSelectedClassesVia:[:generator :eachClass |
+            generator createClassTypeTestMethodsIn:(superclass theNonMetaclass) forClasses:(Array with:eachClass)
+        ].
 
     "Modified: / 21-01-2012 / 10:23:15 / cg"
 !
@@ -29208,21 +30074,21 @@
     template := SmalltalkCodeGeneratorTool copyrightTemplate.
 
     copyRightText := Dialog
-			requestText:'Copyright-Text:'
-			lines:20 columns:80
-			initialAnswer:template.
+                        requestText:'Copyright-Text:'
+                        lines:20 columns:80
+                        initialAnswer:template.
 
     copyRightText isEmptyOrNil ifTrue:[^ self].
     SmalltalkCodeGeneratorTool copyrightTemplate:copyRightText.
 
     self
-	generateUndoableChange:'Generate Copyright Method in %(singleClassNameOrNumberOfClasses)'
-	overSelectedClassesVia:[:generator :eachClass |
-	    |metaClass |
-
-	    metaClass := eachClass theMetaclass.
-	    generator createCopyrightMethodFor:copyRightText for:metaClass.
-	]
+        generateUndoableChange:'Generate Copyright Method in %(singleClassNameOrNumberOfClasses)'
+        overSelectedClassesVia:[:generator :eachClass |
+            |metaClass |
+
+            metaClass := eachClass theMetaclass.
+            generator createCopyrightMethodFor:copyRightText for:metaClass.
+        ]
 
     "Modified: / 21-01-2012 / 10:23:22 / cg"
 !
@@ -29231,18 +30097,18 @@
     "create documentation method from comment"
 
     self
-	generateUndoableChange:'Generate Documentation method in %(singleClassNameOrNumberOfClasses)'
-	overSelectedClassesVia:[:generator :eachClass |
-	    |cls|
-
-	    cls := eachClass theMetaclass.
-	    (cls includesSelector:#documentation) ifFalse:[
-		generator createDocumentationMethodFor:cls.
-		(cls includesSelector:#documentation) ifTrue:[
-		    cls theNonMetaclass comment:nil
-		].
-	    ].
-	]
+        generateUndoableChange:'Generate Documentation method in %(singleClassNameOrNumberOfClasses)'
+        overSelectedClassesVia:[:generator :eachClass |
+            |cls|
+
+            cls := eachClass theMetaclass.
+            (cls includesSelector:#documentation) ifFalse:[
+                generator createDocumentationMethodFor:cls.
+                (cls includesSelector:#documentation) ifTrue:[
+                    cls theNonMetaclass comment:nil
+                ].
+            ].
+        ]
 
     "Modified: / 21-01-2012 / 10:23:31 / cg"
 !
@@ -29251,18 +30117,18 @@
     "create documentation methods"
 
     self
-	generateUndoableChange:'Generate Documentation in %(singleClassNameOrNumberOfClasses)'
-	overSelectedClassesVia:[:generator :eachClass |
-	    |metaClass |
-
-	    metaClass := eachClass theMetaclass.
-
-	    generator createDocumentationMethodsFor:metaClass.
-
-	    "/ add examples method containing examples template
-	    "/ but only if not already present.
-	    generator createExamplesMethodFor:metaClass.
-	]
+        generateUndoableChange:'Generate Documentation in %(singleClassNameOrNumberOfClasses)'
+        overSelectedClassesVia:[:generator :eachClass |
+            |metaClass |
+
+            metaClass := eachClass theMetaclass.
+
+            generator createDocumentationMethodsFor:metaClass.
+
+            "/ add examples method containing examples template
+            "/ but only if not already present.
+            generator createExamplesMethodFor:metaClass.
+        ]
 
     "Modified: / 21-01-2012 / 10:23:38 / cg"
 !
@@ -29271,13 +30137,13 @@
     "create an enumeration type"
 
     self
-	generateUndoableChange:'Generate EnumTypeCode in %(singleClassNameOrNumberOfClasses)'
-	overSelectedClassesVia:[:generator :eachClass |
-	    |cls|
-
-	    cls := eachClass theNonMetaclass.
-	    generator createEnumTypeCodeFor:cls
-	]
+        generateUndoableChange:'Generate EnumTypeCode in %(singleClassNameOrNumberOfClasses)'
+        overSelectedClassesVia:[:generator :eachClass |
+            |cls|
+
+            cls := eachClass theNonMetaclass.
+            generator createEnumTypeCodeFor:cls
+        ]
 
     "Modified: / 21-01-2012 / 10:23:45 / cg"
 !
@@ -29288,21 +30154,21 @@
      otherwise for that selected instvar."
 
     self
-	classMenuGenerateAccessMethodsWithChange:false
-	asValueHolder:false
-	readersOnly:true
-	writersOnly:false
-	lazyInitialization:false
+        classMenuGenerateAccessMethodsWithChange:false
+        asValueHolder:false
+        readersOnly:true
+        writersOnly:false
+        lazyInitialization:false
 !
 
 classMenuGenerateInitializationMethod
     "create initialize method"
 
     self
-	generateUndoableChange:'Initialization Code for %(singleClassNameOrNumberOfClasses)'
-	overSelectedClassesVia:[:generator :eachClass |
-	    generator createInitializationMethodIn:eachClass theNonMetaclass
-	].
+        generateUndoableChange:'Initialization Code for %(singleClassNameOrNumberOfClasses)'
+        overSelectedClassesVia:[:generator :eachClass |
+            generator createInitializationMethodIn:eachClass theNonMetaclass
+        ].
 
     "Modified: / 21-01-2012 / 10:23:53 / cg"
 !
@@ -29311,10 +30177,10 @@
     "create the initialize method"
 
     self
-	generateUndoableChange:'Initializer for %(singleClassNameOrNumberOfClasses)'
-	overSelectedClassesVia:[:generator :eachClass |
-	    generator createInitializationMethodIn:eachClass theNonMetaclass
-	].
+        generateUndoableChange:'Initializer for %(singleClassNameOrNumberOfClasses)'
+        overSelectedClassesVia:[:generator :eachClass |
+            generator createInitializationMethodIn:eachClass theNonMetaclass
+        ].
 
     "Modified: / 21-01-2012 / 10:24:01 / cg"
 !
@@ -29323,10 +30189,10 @@
     "create new and initialize methods"
 
     self
-	generateUndoableChange:'Initialized Instance Creation Code for %(singleClassNameOrNumberOfClasses)'
-	overSelectedClassesVia:[:generator :eachClass |
-	    generator createInitializedInstanceCreationMethodsIn:eachClass theNonMetaclass
-	].
+        generateUndoableChange:'Initialized Instance Creation Code for %(singleClassNameOrNumberOfClasses)'
+        overSelectedClassesVia:[:generator :eachClass |
+            generator createInitializedInstanceCreationMethodsIn:eachClass theNonMetaclass
+        ].
 
     "Modified: / 21-01-2012 / 10:24:07 / cg"
 !
@@ -29335,10 +30201,10 @@
     "create #isAbstract method"
 
     self
-	generateUndoableChange:'Make %(singleClassNameOrNumberOfClasses) abstract'
-	overSelectedClassesVia:[:generator :eachClass |
-	    generator createIsAbstractMethodIn:eachClass theMetaclass
-	].
+        generateUndoableChange:'Make %(singleClassNameOrNumberOfClasses) abstract'
+        overSelectedClassesVia:[:generator :eachClass |
+            generator createIsAbstractMethodIn:eachClass theMetaclass
+        ].
 !
 
 classMenuGenerateMultiSetterMethod
@@ -29348,14 +30214,14 @@
 
     cls := self theSingleSelectedClass.
     vars := cls allInstVarNames
-	    select:[:var | self selectedVariables value includes:var].
-
-    self
-	generateUndoableChange:'Generate multi-setter'
-	overClasses:(Array with:cls)
-	via:[:generator :eachClass |
-	    generator createMultiSetterMethodFor:vars in:cls
-	].
+            select:[:var | self selectedVariables value includes:var].
+
+    self
+        generateUndoableChange:'Generate multi-setter'
+        overClasses:(Array with:cls)
+        via:[:generator :eachClass |
+            generator createMultiSetterMethodFor:vars in:cls
+        ].
 !
 
 classMenuGenerateParametrizedInstanceCreationMethods
@@ -29364,16 +30230,16 @@
     |selector|
 
     selector := Dialog
-		    requestSelector:'Name of Instance Creation Method:'
-		    initialAnswer:'for:'.
+                    requestSelector:'Name of Instance Creation Method:'
+                    initialAnswer:'for:'.
     selector isEmptyOrNil ifTrue:[^ self].
     selector := selector asSymbol.
 
     self
-	generateUndoableChange:'Parametrized Instance Creation Code for %(singleClassNameOrNumberOfClasses)'
-	overSelectedClassesVia:[:generator :eachClass |
-	    generator createParametrizedInstanceCreationMethodsNamed:selector in:eachClass theNonMetaclass
-	].
+        generateUndoableChange:'Parametrized Instance Creation Code for %(singleClassNameOrNumberOfClasses)'
+        overSelectedClassesVia:[:generator :eachClass |
+            generator createParametrizedInstanceCreationMethodsNamed:selector in:eachClass theNonMetaclass
+        ].
 
     "Modified: / 21-01-2012 / 10:24:15 / cg"
 !
@@ -29382,13 +30248,13 @@
     "create a Pool initialization template method"
 
     self
-	generateUndoableChange:'Generate Pool Initialization in %(singleClassNameOrNumberOfClasses)'
-	overSelectedClassesVia:[:generator :eachClass |
-	    |cls|
-
-	    cls := eachClass theNonMetaclass.
-	    generator createPoolInitializationCodeFor:cls
-	]
+        generateUndoableChange:'Generate Pool Initialization in %(singleClassNameOrNumberOfClasses)'
+        overSelectedClassesVia:[:generator :eachClass |
+            |cls|
+
+            cls := eachClass theNonMetaclass.
+            generator createPoolInitializationCodeFor:cls
+        ]
 
     "Created: / 25-10-2006 / 09:24:48 / cg"
 !
@@ -29403,10 +30269,10 @@
     "create redefined new methods"
 
     self
-	generateUndoableChange:'Redefined Instance Creation for %(singleClassNameOrNumberOfClasses)'
-	overSelectedClassesVia:[:generator :eachClass |
-	    generator createRedefinedInstanceCreationMethodsIn:eachClass theNonMetaclass
-	].
+        generateUndoableChange:'Redefined Instance Creation for %(singleClassNameOrNumberOfClasses)'
+        overSelectedClassesVia:[:generator :eachClass |
+            generator createRedefinedInstanceCreationMethodsIn:eachClass theNonMetaclass
+        ].
 
     "Modified: / 21-01-2012 / 10:24:28 / cg"
 !
@@ -29415,10 +30281,10 @@
     "create required protocol (all inherited subclassResponsibility methods)"
 
     self
-	generateUndoableChange:'Generate Required Protocol in %(singleClassNameOrNumberOfClasses)'
-	overSelectedClassesVia:[:generator :eachClass |
-	    generator createClassResponsibleProtocolFor:eachClass
-	]
+        generateUndoableChange:'Generate Required Protocol in %(singleClassNameOrNumberOfClasses)'
+        overSelectedClassesVia:[:generator :eachClass |
+            generator createClassResponsibleProtocolFor:eachClass
+        ]
 
     "Modified: / 21-01-2012 / 10:24:37 / cg"
 !
@@ -29429,11 +30295,11 @@
      otherwise for that selected instvar."
 
     self
-	classMenuGenerateAccessMethodsWithChange:false
-	asValueHolder:false
-	readersOnly:false
-	writersOnly:true
-	lazyInitialization:false
+        classMenuGenerateAccessMethodsWithChange:false
+        asValueHolder:false
+        readersOnly:false
+        writersOnly:true
+        lazyInitialization:false
 !
 
 classMenuGenerateSingletonPatternInstanceCreationMethods
@@ -29444,48 +30310,48 @@
     singletonVarName := nil.
 
     self
-	generateUndoableChange:'Singleton Pattern for %(singleClassNameOrNumberOfClasses)'
-	overSelectedClassesVia:[:generator :eachClass |
-	    |theClass vars defaultNameForSingleton singletonVar|
-
-	    "/ if any of the selected classes is a subclass of one of the previously processed,
-	    "/ and we have added a class-instvar in the previous loop cycle,
-	    "/ we have top refetch, because the class is now obsolete (stupid consequence of not having a
-	    "/ good become).
-	    "/ refetch to get the present class (sigh)
-	    theClass := Smalltalk at:(eachClass theNonMetaclass name).
-
-	    vars := theClass theMetaclass allInstanceVariableNames asNewSet.
-	    vars removeAll:(Class allInstanceVariableNames).
-
-	    (singletonVarName notNil and:[vars includes:singletonVarName]) ifTrue:[
-		defaultNameForSingleton := singletonVarName
-	    ] ifFalse:[
-		defaultNameForSingleton := 'theOneAndOnlyInstance'.
-		"/ vars add:'theOneAndOnlyInstance'.
-	    ].
-	    singletonVar := Dialog
-		request:'Class-Instvar to keep Singleton in?'
-		initialAnswer:defaultNameForSingleton
-		list:(vars asSortedCollection).
-	    singletonVar isEmptyOrNil ifTrue:[^ self].
-
-	    (theClass theMetaclass allInstanceVariableNames asSet includes:singletonVar) ifFalse:[
-		theClass theMetaclass addInstVarName:singletonVar.
-		theClass := environment at:(eachClass theNonMetaclass name).
-	    ].
-	    generator createSingletonPatternInstanceCreationMethodsIn:theClass usingVariable:singletonVar
-	].
+        generateUndoableChange:'Singleton Pattern for %(singleClassNameOrNumberOfClasses)'
+        overSelectedClassesVia:[:generator :eachClass |
+            |theClass vars defaultNameForSingleton singletonVar|
+
+            "/ if any of the selected classes is a subclass of one of the previously processed,
+            "/ and we have added a class-instvar in the previous loop cycle,
+            "/ we have top refetch, because the class is now obsolete (stupid consequence of not having a
+            "/ good become).
+            "/ refetch to get the present class (sigh)
+            theClass := Smalltalk at:(eachClass theNonMetaclass name).
+
+            vars := theClass theMetaclass allInstanceVariableNames asNewSet.
+            vars removeAll:(Class allInstanceVariableNames).
+
+            (singletonVarName notNil and:[vars includes:singletonVarName]) ifTrue:[
+                defaultNameForSingleton := singletonVarName
+            ] ifFalse:[
+                defaultNameForSingleton := 'theOneAndOnlyInstance'.
+                "/ vars add:'theOneAndOnlyInstance'.
+            ].
+            singletonVar := Dialog
+                request:'Class-Instvar to keep Singleton in?'
+                initialAnswer:defaultNameForSingleton
+                list:(vars asSortedCollection).
+            singletonVar isEmptyOrNil ifTrue:[^ self].
+
+            (theClass theMetaclass allInstanceVariableNames asSet includes:singletonVar) ifFalse:[
+                theClass theMetaclass addInstVarName:singletonVar.
+                theClass := environment at:(eachClass theNonMetaclass name).
+            ].
+            generator createSingletonPatternInstanceCreationMethodsIn:theClass usingVariable:singletonVar
+        ].
 
     "Created: / 10-02-2011 / 16:28:36 / cg"
 !
 
 classMenuGenerateStandardPrintOnMethod
     self
-	generateUndoableChange:'Generate PrintOn Method for %(singleClassNameOrNumberOfClasses)'
-	overSelectedClassesVia:[:generator :eachClass |
-	    generator createStandardPrintOnMethodIn:eachClass theNonMetaclass
-	].
+        generateUndoableChange:'Generate PrintOn Method for %(singleClassNameOrNumberOfClasses)'
+        overSelectedClassesVia:[:generator :eachClass |
+            generator createStandardPrintOnMethodIn:eachClass theNonMetaclass
+        ].
 
     "Modified: / 21-01-2012 / 10:24:51 / cg"
 !
@@ -29494,10 +30360,10 @@
     "create a standard update method template"
 
     self
-	generateUndoableChange:'Generate%(numClassesOrEmpty)Update Method%(sForPlural)%(forSingleClassOrEmpty)'
-	overSelectedClassesVia:[:generator :eachClass |
-	    generator createUpdateMethodIn:eachClass theNonMetaclass
-	].
+        generateUndoableChange:'Generate%(numClassesOrEmpty)Update Method%(sForPlural)%(forSingleClassOrEmpty)'
+        overSelectedClassesVia:[:generator :eachClass |
+            generator createUpdateMethodIn:eachClass theNonMetaclass
+        ].
 
     "Modified: / 21-01-2012 / 10:24:58 / cg"
 !
@@ -29508,13 +30374,13 @@
     |visitorClassName visitorClass|
 
     visitorClassName := Dialog
-		    request:'Name of Visitor class'
-		    initialAnswer:(LastVisitorClassName ? '')
-		    okLabel:(resources string:'Create')
-		    title:'Visitor class'
-		    onCancel:nil
-		    list:#()
-		    entryCompletionBlock:(DoWhatIMeanSupport classNameEntryCompletionBlock).
+                    request:'Name of Visitor class'
+                    initialAnswer:(LastVisitorClassName ? '')
+                    okLabel:(resources string:'Create')
+                    title:'Visitor class'
+                    onCancel:nil
+                    list:#()
+                    entryCompletionBlock:(DoWhatIMeanSupport classNameEntryCompletionBlock).
 
     visitorClass := self classIfValidNonMetaClassName:visitorClassName.
     visitorClass isNil ifTrue:[^ nil].
@@ -29522,10 +30388,10 @@
     LastVisitorClassName := visitorClassName.
 
     self
-	generateUndoableChange:'Generate Visitor Pattern'
-	overSelectedClassesVia:[:generator :eachClass |
-	    generator createVisitorMethodsIn:eachClass theNonMetaclass andVisitorClass:visitorClass
-	].
+        generateUndoableChange:'Generate Visitor Pattern'
+        overSelectedClassesVia:[:generator :eachClass |
+            generator createVisitorMethodsIn:eachClass theNonMetaclass andVisitorClass:visitorClass
+        ].
 
     "Created: / 11-10-2001 / 22:26:08 / cg"
 !
@@ -29536,13 +30402,13 @@
     |visitorClassName visitorClass|
 
     visitorClassName := Dialog
-		    request:'Name of Visitor class'
-		    initialAnswer:(LastVisitorClassName ? '')
-		    okLabel:(resources string:'Create')
-		    title:'Visitor class'
-		    onCancel:nil
-		    list:#()
-		    entryCompletionBlock:(DoWhatIMeanSupport classNameEntryCompletionBlock).
+                    request:'Name of Visitor class'
+                    initialAnswer:(LastVisitorClassName ? '')
+                    okLabel:(resources string:'Create')
+                    title:'Visitor class'
+                    onCancel:nil
+                    list:#()
+                    entryCompletionBlock:(DoWhatIMeanSupport classNameEntryCompletionBlock).
 
     visitorClass := self classIfValidNonMetaClassName:visitorClassName.
     visitorClass isNil ifTrue:[^ nil].
@@ -29550,10 +30416,10 @@
     LastVisitorClassName := visitorClassName.
 
     self
-	generateUndoableChange:'Generate Visitor Pattern'
-	overSelectedClassesVia:[:generator :eachClass |
-	    generator createVisitorMethodsIn:eachClass theNonMetaclass andVisitorClass2:visitorClass
-	].
+        generateUndoableChange:'Generate Visitor Pattern'
+        overSelectedClassesVia:[:generator :eachClass |
+            generator createVisitorMethodsIn:eachClass theNonMetaclass andVisitorClass2:visitorClass
+        ].
 
     "Created: / 07-07-2009 / 20:41:47 / Jan Vrany <vranyj1@fel.cvut.cz>"
     "Modified: / 21-01-2012 / 10:25:37 / cg"
@@ -29570,19 +30436,19 @@
 
     |projectDefinitionClasses|
 
-    projectDefinitionClasses := self selectedClassesValue collect:[:cls | cls projectDefinitionClass] as:Set.
+    projectDefinitionClasses := self selectedClassesValue collect:[:cls | cls theNonMetaclass projectDefinitionClass] as:Set.
 
     projectDefinitionClasses do:[:eachDefinitionClass |
-	|toIncludeForThis|
-
-	toIncludeForThis := self selectedClassesValue select:[:cls | cls projectDefinitionClass == eachDefinitionClass].
-
-	self
-	    generateUndoableChange:(resources string:'Include %1 class(es) in Project %2 (Make Compiled Class)' with:toIncludeForThis size with:eachDefinitionClass name)
-	    overClasses:(Array with: eachDefinitionClass)
-	    via:[:generator :projectDefinition |
-		self includeClasses:toIncludeForThis inProject:projectDefinition using:generator
-	    ].
+        |toIncludeForThis|
+
+        toIncludeForThis := self selectedClassesValue select:[:cls | cls theNonMetaclass projectDefinitionClass == eachDefinitionClass].
+
+        self
+            generateUndoableChange:(resources string:'Include %1 class(es) in Project %2 (Make Compiled Class)' with:toIncludeForThis size with:eachDefinitionClass name)
+            overClasses:(Array with: eachDefinitionClass)
+            via:[:generator :projectDefinition |
+                self includeClasses:toIncludeForThis inProject:projectDefinition using:generator
+            ].
     ].
 
     "Created: / 19-02-2007 / 16:46:16 / cg"
@@ -29593,9 +30459,9 @@
     "reinit selected classes (kludge - for me)"
 
     self selectedNonMetaclassesDo:[:eachClass |
-	(eachClass class includesSelector:#initialize) ifTrue:[
-	    eachClass initialize.
-	]
+        (eachClass class includesSelector:#initialize) ifTrue:[
+            eachClass initialize.
+        ]
     ].
 
     "Modified: / 12-09-2006 / 13:51:50 / cg"
@@ -29611,30 +30477,30 @@
 
     superClasses := selectedClasses collect:[:c | c superclass].
     superClasses asSet size > 1 ifTrue:[
-	Dialog warn:'Classes must have a common superclass'.
-	^ self
+        Dialog warn:'Classes must have a common superclass'.
+        ^ self
     ].
     superClass := superClasses anElement.
 
     name := Dialog request:(resources
-				string:'Enter name for new parent class of the selected class(es):').
+                                string:'Enter name for new parent class of the selected class(es):').
     name isEmpty ifTrue: [^self].
 
     existingClass := environment classNamed:name.
     existingClass notNil ifTrue:[
-	(Dialog confirm:(resources
-				string:'A Class named "%1" already exists - make the selected class(es) a subclass of it ?'))
-	ifFalse:[
-	    ^ self
-	].
+        (Dialog confirm:(resources
+                                string:'A Class named "%1" already exists - make the selected class(es) a subclass of it ?'))
+        ifFalse:[
+            ^ self
+        ].
     ].
 
     self performRefactoring:
-	    (AddClassRefactoring
-		addClass:name
-		superclass:superClass
-		subclasses:selectedClasses
-		category:(selectedClasses first category) "dialog categoryName").
+            (AddClassRefactoring
+                addClass:name
+                superclass:superClass
+                subclasses:selectedClasses
+                category:(selectedClasses first category) "dialog categoryName").
 
     self switchToClassNamed:name.
 "/            meta: self isMeta
@@ -29649,12 +30515,12 @@
     |classes toInspect|
 
     (classes := self selectedNonMetaclasses) size > 0 ifTrue:[
-	classes size == 1 ifTrue:[
-	    toInspect := classes first.
-	] ifFalse:[
-	    toInspect := classes
-	].
-	toInspect inspect
+        classes size == 1 ifTrue:[
+            toInspect := classes first.
+        ] ifFalse:[
+            toInspect := classes
+        ].
+        toInspect inspect
     ].
 
     "Modified: / 12-09-2006 / 13:51:26 / cg"
@@ -29669,17 +30535,17 @@
 
     insts := OrderedCollection new.
     classes do:[:eachClass |
-	insts addAll:(eachClass allSubInstances).
+        insts addAll:(eachClass allSubInstances).
     ].
 
     insts size == 0 ifTrue:[
-	self information:'No instances or subInstances.'
-    ] ifFalse:[
-	insts size == 1 ifTrue:[
-	    insts first inspect.
-	] ifFalse:[
-	    insts inspect
-	]
+        self information:'No instances or subInstances.'
+    ] ifFalse:[
+        insts size == 1 ifTrue:[
+            insts first inspect.
+        ] ifFalse:[
+            insts inspect
+        ]
     ]
 
     "Modified: / 12-09-2006 / 13:51:09 / cg"
@@ -29694,22 +30560,30 @@
 
     insts := OrderedCollection new.
     classes do:[:eachClass |
-	insts addAll:(eachClass allInstances).
+        insts addAll:(eachClass allInstances).
     ].
 
     insts size == 0 ifTrue:[
-	self information:'No instances.'
-    ] ifFalse:[
-	insts size == 1 ifTrue:[
-	    insts first inspect.
-	] ifFalse:[
-	    insts inspect
-	]
+        self information:'No instances.'
+    ] ifFalse:[
+        insts size == 1 ifTrue:[
+            insts first inspect.
+        ] ifFalse:[
+            insts inspect
+        ]
     ]
 
     "Modified: / 12-09-2006 / 13:51:02 / cg"
 !
 
+classMenuInspectNewInstance
+    "open an inspector on a new instance of the selected class(es)"
+
+    self selectedNonMetaclasses do:[:eachClass |
+        eachClass new inspect
+    ].
+!
+
 classMenuInspectReferencesToInstances
     "open an inspector on all objects which contain a reference to
      an instance of the selected class(es)"
@@ -29721,21 +30595,21 @@
     insts := OrderedCollection new.
     ObjectMemory garbageCollect.
     ObjectMemory allObjectsDo:[:obj |
-	(classes contains:[:cls | (obj referencesInstanceOf:cls)])
-	ifTrue:[
-	    insts add:obj
-	].
+        (classes contains:[:cls | (obj referencesInstanceOf:cls)])
+        ifTrue:[
+            insts add:obj
+        ].
     ].
     insts remove:(insts instVarAt:1) ifAbsent:nil.
 
     insts size == 0 ifTrue:[
-	self information:'Noone references any instance of the selected class(es).'
-    ] ifFalse:[
-	insts size == 1 ifTrue:[
-	    insts first inspect.
-	] ifFalse:[
-	    insts inspect
-	]
+        self information:'Noone references any instance of the selected class(es).'
+    ] ifFalse:[
+        insts size == 1 ifTrue:[
+            insts first inspect.
+        ] ifFalse:[
+            insts inspect
+        ]
     ]
 
     "Modified: / 12-09-2006 / 13:50:54 / cg"
@@ -29747,8 +30621,8 @@
     |classes toInspect|
 
     (classes := self selectedNonMetaclasses) size > 0 ifTrue:[
-	toInspect := classes collectAll:[:cls | cls allSubclasses].
-	toInspect inspect
+        toInspect := classes collectAll:[:cls | cls allSubclasses].
+        toInspect inspect
     ].
 !
 
@@ -29763,11 +30637,11 @@
     "load all classes from the selected project definitions"
 
     (self selectedNonMetaclasses copy) do:[:cls |
-	cls autoload.
-	cls isProjectDefinition ifTrue:[
-	    self activityNotification:('Loading ', cls description , '..').
-	    cls load
-	].
+        cls autoload.
+        cls isProjectDefinition ifTrue:[
+            self activityNotification:('Loading ', cls description , '..').
+            cls load
+        ].
     ].
 
     "Modified: / 12-09-2006 / 13:50:41 / cg"
@@ -29779,9 +30653,9 @@
      Needed when you want to overwrite the source file, to which the source-reference points to"
 
     self selectedClassesDo:[:eachClass |
-	eachClass instAndClassMethodsDo:[:mthd |
-	    mthd source:(mthd source)
-	]
+        eachClass instAndClassMethodsDo:[:mthd |
+            mthd source:(mthd source)
+        ]
     ]
 !
 
@@ -29789,8 +30663,8 @@
     "fileOut selected classes (chunk format) and eMail to someone"
 
     self
-	mailClasses:self selectedClassesValue
-	subject:'Class Source from Browser'
+        mailClasses:self selectedClassesValue
+        subject:'Class Source from Browser'
 
     "Modified: / 28-02-2012 / 16:47:18 / cg"
 !
@@ -29801,15 +30675,15 @@
     projectDefinitionClasses := self selectedClassesValue collect:[:cls | cls theNonMetaclass projectDefinitionClass] as:Set.
 
     projectDefinitionClasses do:[:eachDefinitionClass |
-	|toMakeAutoloadedForThis|
-
-	toMakeAutoloadedForThis := self selectedClassesValue select:[:cls | cls theNonMetaclass projectDefinitionClass == eachDefinitionClass].
-	self
-	    generateUndoableChange:(resources string:'Make %1 class(es) autoloaded in %2' with:toMakeAutoloadedForThis size with:eachDefinitionClass name)
-	    overClasses:(Array with: eachDefinitionClass)
-	    via:[:generator :projectDefinition |
-		self makeClassesAutoloaded:toMakeAutoloadedForThis inProject:projectDefinition using:generator
-	    ].
+        |toMakeAutoloadedForThis|
+
+        toMakeAutoloadedForThis := self selectedClassesValue select:[:cls | cls theNonMetaclass projectDefinitionClass == eachDefinitionClass].
+        self
+            generateUndoableChange:(resources string:'Make %1 class(es) autoloaded in %2' with:toMakeAutoloadedForThis size with:eachDefinitionClass name)
+            overClasses:(Array with: eachDefinitionClass)
+            via:[:generator :projectDefinition |
+                self makeClassesAutoloaded:toMakeAutoloadedForThis inProject:projectDefinition using:generator
+            ].
     ].
 
     "Created: / 30-08-2007 / 18:51:35 / cg"
@@ -29822,62 +30696,62 @@
 
     currentClass := self theSingleSelectedClass.
     currentClass isNil ifTrue:[
-	currentClass := self selectedClassesValue first
+        currentClass := self selectedClassesValue first
     ].
     currentClass := currentClass theNonMetaclass.
-    supers := (currentClass allSuperclasses reverse collect:[:cls | cls name]).
+    supers := (currentClass allSuperclasses reversed collect:[:cls | cls name]).
     subs := (currentClass allSubclasses collect:[:cls | cls name]).
     list := supers.
     (supers notEmpty and:[subs notEmpty]) ifTrue:[
-	list := list , (Array with:'---- ' , currentClass name , ' ----')
+        list := list , (Array with:'---- ' , currentClass name , ' ----')
     ].
     list := list , subs.
 
     newOwnerName := Dialog
-		    request:(resources string:'Make private in which class:')
-		    initialAnswer:''
-		    okLabel:(resources string:'OK')
-		    title:(resources string:'Make class private')
-		    onCancel:nil
-		    list:list
-		    entryCompletionBlock:(DoWhatIMeanSupport classNameEntryCompletionBlock).
+                    request:(resources string:'Make private in which class:')
+                    initialAnswer:''
+                    okLabel:(resources string:'OK')
+                    title:(resources string:'Make class private')
+                    onCancel:nil
+                    list:list
+                    entryCompletionBlock:(DoWhatIMeanSupport classNameEntryCompletionBlock).
     newOwnerName isNil ifTrue:[^ self].
     (newOwnerName startsWith:'---- ') ifTrue:[^ self].
 
     newOwner := environment classNamed:newOwnerName.
     newOwner isNil ifTrue:[
-	(currentClass nameSpace notNil and:[currentClass nameSpace ~~ Smalltalk]) ifTrue:[
-	    newOwner := currentClass nameSpace classNamed:newOwnerName
-	].
+        (currentClass nameSpace notNil and:[currentClass nameSpace ~~ Smalltalk]) ifTrue:[
+            newOwner := currentClass nameSpace classNamed:newOwnerName
+        ].
     ].
     newOwner isNil ifTrue:[
-	self warn:'No such class: ', newOwnerName.
-	^ self
+        self warn:'No such class: ', newOwnerName.
+        ^ self
     ].
 
     classes := self selectedNonMetaclasses.
     classes do:[:eachClass |
-	eachClass autoload.
-	newName := newOwner name , '::' , eachClass nameWithoutPrefix.
-	(environment classNamed:newName) notNil ifTrue:[
-	    (environment classNamed:newName) ~~ eachClass ifTrue:[
-		self warn:'A class named ' , newName , ' already exists.'.
-		^ self
-	    ].
-	].
-	(newOwner == eachClass) ifTrue:[
-	    self warn:'A class cannot be its own owner.'.
-	    ^ self
-	].
-	(newOwner topOwningClass == eachClass) ifTrue:[
-	    self warn:'Cannot create mutual (cyclic) ownership.'.
-	    ^ self
-	].
+        eachClass autoload.
+        newName := newOwner name , '::' , eachClass nameWithoutPrefix.
+        (environment classNamed:newName) notNil ifTrue:[
+            (environment classNamed:newName) ~~ eachClass ifTrue:[
+                self warn:'A class named ' , newName , ' already exists.'.
+                ^ self
+            ].
+        ].
+        (newOwner == eachClass) ifTrue:[
+            self warn:'A class cannot be its own owner.'.
+            ^ self
+        ].
+        (newOwner topOwningClass == eachClass) ifTrue:[
+            self warn:'Cannot create mutual (cyclic) ownership.'.
+            ^ self
+        ].
     ].
     classes do:[:eachClass |
-	newName := newOwner name , '::' , eachClass nameWithoutPrefix.
-	Smalltalk renameClass:eachClass theNonMetaclass to:newName.
-	eachClass theMetaclass setOwningClass:newOwner.
+        newName := newOwner name , '::' , eachClass nameWithoutPrefix.
+        Smalltalk renameClass:eachClass theNonMetaclass to:newName.
+        eachClass theMetaclass setOwningClass:newOwner.
     ].
 
     "Modified: / 28-02-2012 / 16:47:28 / cg"
@@ -29891,27 +30765,27 @@
     |nsName ns baseName|
 
     self selectedNonMetaclassesDo:[:eachClass |
-	baseName := eachClass nameWithoutPrefix.
-	(ns := eachClass topOwningClass nameSpace) ~~ Smalltalk ifTrue:[
-	    nsName := Dialog confirmWithCancel:(resources string:'Make public in ''Smalltalk'' or in its nameSpace ''%1'' ?' with:ns name)
-		    labels:(Array with:'Cancel' with:'In Smalltalk' with:'In ' , ns name)
-		    values:(Array with:nil with:Smalltalk with:ns)
-		    default:3.
-	    nsName isEmptyOrNil ifTrue:[^ self].
-	    nsName isNameSpace ifTrue:[
-		ns := nsName
-	    ] ifFalse:[
-		ns := environment at:nsName.
-	    ].
-	].
-
-	(ns classNamed:baseName) notNil ifTrue:[
-	    self warn:(resources
-			    string:'A public class named ''%1'' already exists in %2.\\Please remove/rename that one first,\or rename the private class ''%1'' here\and try again.'
-			    with:baseName with:ns name) withCRs.
-	] ifFalse:[
-	    eachClass makePublicIn:ns
-	]
+        baseName := eachClass nameWithoutPrefix.
+        (ns := eachClass topOwningClass nameSpace) ~~ Smalltalk ifTrue:[
+            nsName := Dialog confirmWithCancel:(resources string:'Make public in ''Smalltalk'' or in its nameSpace ''%1'' ?' with:ns name)
+                    labels:(Array with:'Cancel' with:'In Smalltalk' with:'In ' , ns name)
+                    values:(Array with:nil with:Smalltalk with:ns)
+                    default:3.
+            nsName isEmptyOrNil ifTrue:[^ self].
+            nsName isNameSpace ifTrue:[
+                ns := nsName
+            ] ifFalse:[
+                ns := environment at:nsName.
+            ].
+        ].
+
+        (ns classNamed:baseName) notNil ifTrue:[
+            self warn:(resources
+                            string:'A public class named ''%1'' already exists in %2.\\Please remove/rename that one first,\or rename the private class ''%1'' here\and try again.'
+                            with:baseName with:ns name) withCRs.
+        ] ifFalse:[
+            eachClass makePublicIn:ns
+        ]
     ]
 
     "Modified: / 04-07-2006 / 18:48:23 / fm"
@@ -29925,23 +30799,23 @@
     |nsName ns baseName|
 
     nsName := self
-	    askForNameSpace:(resources string:'Make classes public in which Namespace ?')
-	    title:(resources string:'Move to Namespace')
-	    initialText:(LastNameSpaceMove ? '').
+            askForNameSpace:(resources string:'Make classes public in which Namespace ?')
+            title:(resources string:'Move to Namespace')
+            initialText:(LastNameSpaceMove ? '').
     nsName isEmptyOrNil ifTrue:[^ self].
     ns := environment at:nsName asSymbol.
     LastNameSpaceMove := nsName.
 
     self selectedNonMetaclassesDo:[:eachClass |
-	baseName := eachClass nameWithoutPrefix.
-
-	(ns classNamed:baseName) notNil ifTrue:[
-	    self warn:(resources
-			    string:'A public class named ''%1'' already exists in %2.\\Please remove/rename that one first,\or rename the private class ''%1'' here\and try again.'
-			    with:baseName with:ns name) withCRs.
-	] ifFalse:[
-	    eachClass makePublicIn:ns
-	]
+        baseName := eachClass nameWithoutPrefix.
+
+        (ns classNamed:baseName) notNil ifTrue:[
+            self warn:(resources
+                            string:'A public class named ''%1'' already exists in %2.\\Please remove/rename that one first,\or rename the private class ''%1'' here\and try again.'
+                            with:baseName with:ns name) withCRs.
+        ] ifFalse:[
+            eachClass makePublicIn:ns
+        ]
     ]
 
     "Created: / 04-07-2006 / 18:48:23 / fm"
@@ -29957,20 +30831,20 @@
     box title:(resources string:'Move class(es) to which category:').
     box list:allCategories.
     box okAction:[:sel |
-	self withWaitCursorDo:[
-	    self moveSelectedClassesToCategory:sel
-	]
+        self withWaitCursorDo:[
+            self moveSelectedClassesToCategory:sel
+        ]
     ].
     box initialText:(LastCategoryRenames ? #('')) first.
     box entryCompletionBlock:[:contents |
-	|s what|
-
-	s := contents withoutLeadingSeparators.
-	what := environment classCategoryCompletion:s.
-	box contents:what first.
-	(what at:2) size ~~ 1 ifTrue:[
-	    self builder window beep
-	]
+        |s what|
+
+        s := contents withoutLeadingSeparators.
+        what := environment classCategoryCompletion:s.
+        box contents:what first.
+        (what at:2) size ~~ 1 ifTrue:[
+            self builder window beep
+        ]
     ].
     box label:(resources string:'Change Class-Category').
     box showAtPointer
@@ -29985,73 +30859,73 @@
     |newNameSpace ns|
 
     newNameSpace := self
-			askForNameSpace:'Move class(es) to which nameSpace:'
-			title:(resources string:'Move to Namespace')
-			initialText:(LastNameSpaceMove ? '').
+                        askForNameSpace:'Move class(es) to which nameSpace:'
+                        title:(resources string:'Move to Namespace')
+                        initialText:(LastNameSpaceMove ? '').
     newNameSpace size == 0 ifTrue:[^ self].
 
     ns := environment at:newNameSpace asSymbol.
     ns isNil ifTrue:[
-	(self confirm:(resources string:'No such nameSpace exists.\\Create "%1" ?' with:newNameSpace) withCRs) ifFalse:[
-	    ^ self
-	].
-	ns := NameSpace name:newNameSpace asSymbol
-    ] ifFalse:[
-	ns isNameSpace ifFalse:[
-	    self warn:(resources string:'Not a NameSpace: %1' with:newNameSpace).
-	    ^ self
-	]
+        (self confirm:(resources string:'No such nameSpace exists.\\Create "%1" ?' with:newNameSpace) withCRs) ifFalse:[
+            ^ self
+        ].
+        ns := NameSpace name:newNameSpace asSymbol
+    ] ifFalse:[
+        ns isNameSpace ifFalse:[
+            self warn:(resources string:'Not a NameSpace: %1' with:newNameSpace).
+            ^ self
+        ]
     ].
 
     LastNameSpaceMove := newNameSpace.
 
     self withWaitCursorDo:[
-	self selectedNonMetaclassesDo:[:classToMove |
-	    |className doMove oldSym oldBaseSym|
-
-	    classToMove isPrivate ifTrue:[
-		self warn:'Cannot move a private class - please move the owner.'.
-	    ] ifFalse:[
-		classToMove nameSpace ~~ ns ifTrue:[
-		    className := classToMove nameWithoutPrefix.
-
-		    "/ check if the target already exists - confirm if so.
-		    doMove := true.
-		    (ns at:className asSymbol) notNil ifTrue:[
-			doMove := self confirmWithCancel:(resources string:'Attention: a class named ''%1'' already present (in ''%2'' category).\\Move over it ?'
-						 with:className allBold
-						 with:ns name allBold) withCRs.
-			doMove isNil ifTrue:[
-			    ^ self
-			]
-		    ].
-		    doMove ifTrue:[
-			oldSym := classToMove name asSymbol.
-			oldBaseSym := classToMove nameWithoutPrefix asSymbol.
-
-			"/
-			"/ renaming is actually more complicated as one might
-			"/ think (care for classVariables, privateClasses etc.)
-			"/ Smalltalk knows all about that ...
-
-			ns == Smalltalk ifTrue:[
-			    Smalltalk renameClass:classToMove to:className asSymbol.
-			] ifFalse:[
-			    Smalltalk renameClass:classToMove to:(ns name , '::' , className) asSymbol.
-			    ns changed.
-			].
-			Smalltalk changed.
-
-			Transcript showCR:('searching for users of ' , oldSym); endEntry.
-			SystemBrowser browseReferendsOf:oldSym warnIfNone:false.
-			oldBaseSym ~= oldSym ifTrue:[
-			    Transcript showCR:('searching for users of ' , oldBaseSym); endEntry.
-			    SystemBrowser browseReferendsOf:oldBaseSym warnIfNone:false
-			]
-		    ]
-		]
-	    ]
-	]
+        self selectedNonMetaclassesDo:[:classToMove |
+            |className doMove oldSym oldBaseSym|
+
+            classToMove isPrivate ifTrue:[
+                self warn:'Cannot move a private class - please move the owner.'.
+            ] ifFalse:[
+                classToMove nameSpace ~~ ns ifTrue:[
+                    className := classToMove nameWithoutPrefix.
+
+                    "/ check if the target already exists - confirm if so.
+                    doMove := true.
+                    (ns at:className asSymbol) notNil ifTrue:[
+                        doMove := self confirmWithCancel:(resources string:'Attention: a class named ''%1'' already present (in ''%2'' category).\\Move over it ?'
+                                                 with:className allBold
+                                                 with:ns name allBold) withCRs.
+                        doMove isNil ifTrue:[
+                            ^ self
+                        ]
+                    ].
+                    doMove ifTrue:[
+                        oldSym := classToMove name asSymbol.
+                        oldBaseSym := classToMove nameWithoutPrefix asSymbol.
+
+                        "/
+                        "/ renaming is actually more complicated as one might
+                        "/ think (care for classVariables, privateClasses etc.)
+                        "/ Smalltalk knows all about that ...
+
+                        ns == Smalltalk ifTrue:[
+                            Smalltalk renameClass:classToMove to:className asSymbol.
+                        ] ifFalse:[
+                            Smalltalk renameClass:classToMove to:(ns name , '::' , className) asSymbol.
+                            ns changed.
+                        ].
+                        Smalltalk changed.
+
+                        Transcript showCR:('searching for users of ' , oldSym); endEntry.
+                        SystemBrowser browseReferendsOf:oldSym warnIfNone:false.
+                        oldBaseSym ~= oldSym ifTrue:[
+                            Transcript showCR:('searching for users of ' , oldBaseSym); endEntry.
+                            SystemBrowser browseReferendsOf:oldBaseSym warnIfNone:false
+                        ]
+                    ]
+                ]
+            ]
+        ]
     ]
 
     "Modified: / 12-09-2006 / 13:49:01 / cg"
@@ -30065,16 +30939,16 @@
 
     packages := self selectedClassesValue collect:[:each | each package].
     packages size == 1 ifTrue:[
-	msg := resources string:'Move class(es) from ''%1'' to which project:'
-			   with:packages first allBold.
-    ] ifFalse:[
-	msg := resources string:'Move class(es) to which project:'
+        msg := resources string:'Move class(es) from ''%1'' to which project:'
+                           with:packages first allBold.
+    ] ifFalse:[
+        msg := resources string:'Move class(es) to which project:'
     ].
     newProject := self askForProject:msg.
     newProject notNil ifTrue:[
-	self withWaitCursorDo:[
-	    self moveSelectedClassesToProject:newProject.
-	]
+        self withWaitCursorDo:[
+            self moveSelectedClassesToProject:newProject.
+        ]
     ].
 
     "Created: / 17-02-2000 / 22:50:07 / cg"
@@ -30085,10 +30959,10 @@
     "create a class-definition prototype for an application"
 
     self
-	classClassDefinitionTemplateFor:ApplicationModel
-	in:(self theSingleSelectedCategory ? 'Applications')
-	asNamespace:false
-	private:false.
+        classClassDefinitionTemplateFor:ApplicationModel
+        in:(self theSingleSelectedCategory ? 'Applications')
+        asNamespace:false
+        private:false.
 
     self codeAspect:#newApplication.
 !
@@ -30105,50 +30979,50 @@
     |theClass superClass cat|
 
     (theClass := self theSingleSelectedClass) notNil ifTrue:[
-	(superClass := theClass theNonMetaclass superclass) notNil ifTrue:[
-	    theClass := superClass
-	]
-    ] ifFalse:[
-	self javaMode ifTrue:[
-	    theClass := JavaVM classForName:'java.lang.Object'
-	] ifFalse:[
-	    theClass := Object.
-	].
-    ].
-    metaClassUsedOrNil == JavaMetaclass ifTrue:[
-	JavaVM booted ifFalse:[
-	    JavaVM boot
-	].
-	theClass isJavaClass not ifTrue:[
-	    theClass := JavaVM classForName:'java.lang.Object'
-	].
+        (superClass := theClass theNonMetaclass superclass) notNil ifTrue:[
+            theClass := superClass
+        ]
+    ] ifFalse:[
+        self javaMode ifTrue:[
+            theClass := JavaVM classForName:'java.lang.Object'
+        ] ifFalse:[
+            theClass := Object.
+        ].
+    ].
+    (metaClassUsedOrNil notNil and:[metaClassUsedOrNil == JavaMetaclass or:[metaClassUsedOrNil == GroovyMetaclass]]) ifTrue:[
+        JavaVM booted ifFalse:[
+            JavaVM boot
+        ].
+        theClass isJavaClass not ifTrue:[
+            theClass := JavaVM classForName:'java.lang.Object'
+        ].
     ].
 
     self hasCategorySelected ifTrue:[
-	cat := self selectedCategoriesValue first
-    ] ifFalse:[
-	cat := Compiler defaultMethodCategory "/ '* As yet uncategorized *'
-    ].
-
-    self
-	classClassDefinitionTemplateFor:theClass
-	in:cat
-	asNamespace:false
-	private:false
-	metaClassUsed:metaClassUsedOrNil
+        cat := self selectedCategoriesValue first
+    ] ifFalse:[
+        cat := Compiler defaultMethodCategory "/ '* As yet uncategorized *'
+    ].
+
+    self
+        classClassDefinitionTemplateFor:theClass
+        in:cat
+        asNamespace:false
+        private:false
+        metaClassUsed:metaClassUsedOrNil
 
     "Modified: / 15-11-2001 / 18:01:04 / cg"
-    "Modified: / 17-04-2013 / 21:13:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 09-04-2014 / 12:37:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 classMenuNewDialog
     "create a class-definition prototype for a dialog"
 
     self
-	classClassDefinitionTemplateFor:SimpleDialog
-	in:(self theSingleSelectedCategory ? 'Applications - Dialogs')
-	asNamespace:false
-	private:false.
+        classClassDefinitionTemplateFor:SimpleDialog
+        in:(self theSingleSelectedCategory ? 'Applications - Dialogs')
+        asNamespace:false
+        private:false.
 
     self codeAspect:#newDialog.
 !
@@ -30157,10 +31031,10 @@
     "create a class-definition prototype for an error class"
 
     self
-	classClassDefinitionTemplateFor:Error
-	in:(self theSingleSelectedCategory ? 'Errors')
-	asNamespace:false
-	private:false.
+        classClassDefinitionTemplateFor:Error
+        in:(self theSingleSelectedCategory ? 'Errors')
+        asNamespace:false
+        private:false.
 
     self codeAspect:#newError.
 !
@@ -30195,10 +31069,10 @@
     "create a class-definition prototype for an exception class"
 
     self
-	classClassDefinitionTemplateFor:Notification
-	in:(self theSingleSelectedCategory ? 'Exceptions')
-	asNamespace:false
-	private:false.
+        classClassDefinitionTemplateFor:Notification
+        in:(self theSingleSelectedCategory ? 'Exceptions')
+        asNamespace:false
+        private:false.
 
     self codeAspect:#newNotification.
 !
@@ -30211,10 +31085,10 @@
     "create a class-definition prototype for a dialog"
 
     self
-	classClassDefinitionTemplateFor:Object
-	in:nil
-	asNamespace:false
-	private:true.
+        classClassDefinitionTemplateFor:Object
+        in:nil
+        asNamespace:false
+        private:true.
 
 
 
@@ -30226,10 +31100,10 @@
     "create a class-definition prototype for a shared pool"
 
     self
-	classClassDefinitionTemplateFor:SharedPool
-	in:(self theSingleSelectedCategory ? 'Pools')
-	asNamespace:false
-	private:false.
+        classClassDefinitionTemplateFor:SharedPool
+        in:(self theSingleSelectedCategory ? 'Pools')
+        asNamespace:false
+        private:false.
 
 "/    self codeAspect:#newSharedPool.
 !
@@ -30246,10 +31120,10 @@
     "create a class-definition prototype for a standalone startup class"
 
     self
-	classClassDefinitionTemplateFor:StandaloneStartup
-	in:(self theSingleSelectedCategory ? 'startup')
-	asNamespace:false
-	private:false.
+        classClassDefinitionTemplateFor:StandaloneStartup
+        in:(self theSingleSelectedCategory ? 'startup')
+        asNamespace:false
+        private:false.
 
     "Created: / 08-08-2011 / 07:46:47 / cg"
 !
@@ -30260,29 +31134,29 @@
     |theClass cat metaClassUsedOrNil|
 
     (theClass := self theSingleSelectedClass) isNil ifTrue:[
-	self javaMode ifTrue:[
-	    theClass := Java at:'java.lang.Object'
-	].
-	theClass isNil ifTrue:[
-	    theClass := Object.
-	].
-    ] ifFalse:[
-	theClass := theClass theNonMetaclass.
-	metaClassUsedOrNil := theClass theMetaclass class.
+        self javaMode ifTrue:[
+            theClass := Java at:'java.lang.Object'
+        ].
+        theClass isNil ifTrue:[
+            theClass := Object.
+        ].
+    ] ifFalse:[
+        theClass := theClass theNonMetaclass.
+        metaClassUsedOrNil := theClass theMetaclass class.
     ].
 
     self hasCategorySelected ifTrue:[
-	cat := self selectedCategoriesValue first
-    ] ifFalse:[
-	cat := theClass category.
-    ].
-
-    self
-	classClassDefinitionTemplateFor:theClass
-	in:cat
-	asNamespace:false
-	private:false
-	metaClassUsed:metaClassUsedOrNil
+        cat := self selectedCategoriesValue first
+    ] ifFalse:[
+        cat := theClass category.
+    ].
+
+    self
+        classClassDefinitionTemplateFor:theClass
+        in:cat
+        asNamespace:false
+        private:false
+        metaClassUsed:metaClassUsedOrNil
 
     "Created: / 17.2.2000 / 23:25:33 / cg"
 !
@@ -30293,10 +31167,10 @@
     TestCase isNil ifTrue:[ Smalltalk loadPackage:'stx:goodies/sunit' ].
     TestCase autoload.
     self
-	classClassDefinitionTemplateFor:TestCase
-	in:(self theSingleSelectedCategory ? 'TestCases')
-	asNamespace:false
-	private:false.
+        classClassDefinitionTemplateFor:TestCase
+        in:(self theSingleSelectedCategory ? 'TestCases')
+        asNamespace:false
+        private:false.
 
     self codeAspect:#newTestCase.
 
@@ -30307,10 +31181,10 @@
     "create a class-definition prototype for a web page"
 
     self
-	classClassDefinitionTemplateFor:WebApplicationModel
-	in:(self theSingleSelectedCategory ? 'WebServices')
-	asNamespace:false
-	private:false.
+        classClassDefinitionTemplateFor:WebApplicationModel
+        in:(self theSingleSelectedCategory ? 'WebServices')
+        asNamespace:false
+        private:false.
 
     self codeAspect:#newWebApplication.
 !
@@ -30322,10 +31196,10 @@
     HTTPService autoload.
 
     self
-	classClassDefinitionTemplateFor:HTTPService
-	in:(self theSingleSelectedCategory ? 'WebServices')
-	asNamespace:false
-	private:false.
+        classClassDefinitionTemplateFor:HTTPService
+        in:(self theSingleSelectedCategory ? 'WebServices')
+        asNamespace:false
+        private:false.
 
     self codeAspect:#newWebService.
 
@@ -30336,10 +31210,10 @@
     "create a class-definition prototype for a widget"
 
     self
-	classClassDefinitionTemplateFor:View
-	in:(self theSingleSelectedCategory ? 'Views-Misc')
-	asNamespace:false
-	private:false.
+        classClassDefinitionTemplateFor:View
+        in:(self theSingleSelectedCategory ? 'Views-Misc')
+        asNamespace:false
+        private:false.
 
     self codeAspect:#newWidget.
 !
@@ -30366,15 +31240,15 @@
     category := (dialog categoryHolder value ? '* as yet unspecified *') withoutSeparators.
 
     (namespaceName = 'Smalltalk') ifTrue:[
-	namespacePrefix := ''
-    ] ifFalse:[
-	namespacePrefix := namespaceName , '::'
+        namespacePrefix := ''
+    ] ifFalse:[
+        namespacePrefix := namespaceName , '::'
     ].
     namespace := NameSpace name:namespaceName.
 
     Class packageQuerySignal answer:package
     do:[
-	|builder|
+        |builder|
 
 "/        createdClass :=
 "/            superclass
@@ -30388,23 +31262,23 @@
 "/            createdClass class instanceVariableNames: dialog classInstVarNamesHolder value
 "/        ].
 
-	builder := ClassBuilder new.
-	builder metaclass:(language metaClass).
-	builder
-	    name:(namespacePrefix,newClassName) asSymbol
-	    inEnvironment:namespace
-	    subclassOf:superclass
-	    instanceVariableNames:(dialog instVarNamesHolder value)
-	    variable:false
-	    words:false
-	    pointers:false
-	    classVariableNames:(dialog classVarNamesHolder value)
-	    poolDictionaries:''
-	    category:category
-	    comment:nil
-	    changed:true
-	    classInstanceVariableNames:(dialog classInstVarNamesHolder value).
-	createdClass := builder buildClass.
+        builder := ClassBuilder new.
+        builder metaclass:(language metaClass).
+        builder
+            name:(namespacePrefix,newClassName) asSymbol
+            inEnvironment:namespace
+            subclassOf:superclass
+            instanceVariableNames:(dialog instVarNamesHolder value)
+            variable:false
+            words:false
+            pointers:false
+            classVariableNames:(dialog classVarNamesHolder value)
+            poolDictionaries:''
+            category:category
+            comment:nil
+            changed:true
+            classInstanceVariableNames:(dialog classInstVarNamesHolder value).
+        createdClass := builder buildClass.
     ].
 
     createdClass isNil ifTrue:[^ self ].
@@ -30412,49 +31286,75 @@
 
     Class packageQuerySignal answer:package
     do:[
-	self
-	    generateUndoableChange:'Generate Code for %(singleClassNameOrNumberOfClasses)'
-	    overClasses:(Array with:createdClass)
-	    via:[:generator :cls |
-		|theNonMetaclass theMetaclass inheritedInitializeMethod|
-
-		theNonMetaclass := cls theNonMetaclass.
-		theMetaclass := cls theMetaclass.
-
-		dialog createAccessors ifTrue:[
-		    generator
-			createAccessMethodsFor:(cls instVarNames)
-			in:cls
-			withChange:false
-			asValueHolder:false
-			readersOnly:false
-			writersOnly:false
-			lazyInitialization:false.
-		].
-		dialog createInitializer ifTrue:[
-		    inheritedInitializeMethod := cls theMetaclass responseTo:#new.
-		    (inheritedInitializeMethod isNil or:[ (inheritedInitializeMethod sends:#initialize) not ]) ifTrue:[
-			generator createInitializedInstanceCreationMethodsIn:theNonMetaclass
-		    ] ifFalse:[
-			generator createInitializationMethodIn:theNonMetaclass
-		    ].
-		    generator createClassInitializeMethodIn:theMetaclass.
-		].
-		dialog createUpdateMethod ifTrue:[
-		    generator createUpdateMethodIn:theNonMetaclass
-		].
-		dialog createRequiredMethods ifTrue:[
-		    generator createClassResponsibleProtocolFor:theNonMetaclass
-		].
-		dialog createInitialGUICode ifTrue:[
-		    self classMenuGenerateApplicationCodeFor:theNonMetaclass using:generator
-		].
-	    ].
+        self
+            generateUndoableChange:'Generate Code for %(singleClassNameOrNumberOfClasses)'
+            overClasses:(Array with:createdClass)
+            via:[:generator :cls |
+                |theNonMetaclass theMetaclass inheritedInitializeMethod|
+
+                theNonMetaclass := cls theNonMetaclass.
+                theMetaclass := cls theMetaclass.
+
+                dialog createAccessors ifTrue:[
+                    generator
+                        createAccessMethodsFor:(cls instVarNames)
+                        in:cls
+                        withChange:false
+                        asValueHolder:false
+                        readersOnly:false
+                        writersOnly:false
+                        lazyInitialization:false.
+                ].
+                dialog createInitializer ifTrue:[
+                    inheritedInitializeMethod := cls theMetaclass responseTo:#new.
+                    (inheritedInitializeMethod isNil or:[ (inheritedInitializeMethod sends:#initialize) not ]) ifTrue:[
+                        generator createInitializedInstanceCreationMethodsIn:theNonMetaclass
+                    ] ifFalse:[
+                        generator createInitializationMethodIn:theNonMetaclass
+                    ].
+                    generator createClassInitializeMethodIn:theMetaclass.
+                ].
+                dialog createUpdateMethod ifTrue:[
+                    generator createUpdateMethodIn:theNonMetaclass
+                ].
+                dialog createRequiredMethods ifTrue:[
+                    generator createClassResponsibleProtocolFor:theNonMetaclass
+                ].
+                dialog createInitialGUICode ifTrue:[
+                    self classMenuGenerateApplicationCodeFor:theNonMetaclass using:generator
+                ].
+            ].
     ].
 
     "Modified: / 29-12-2011 / 13:48:54 / cg"
 !
 
+classMenuOpenTestRunner
+    "open a test runner on the selected class (you can also double click on a testCase class)"
+
+    |cls|
+
+    cls := self theSingleSelectedClass.
+    cls isNil ifTrue:[ ^ self ].
+    self classMenuOpenTestRunnerOn:cls
+!
+
+classMenuOpenTestRunnerOn:aClass
+    "open a test runner on aClass (you can also double click on a testCase class)"
+
+    |cls|
+
+    cls := aClass theNonMetaclass.
+    (cls isTestCaseLike and:[cls isAbstract not]) ifTrue:[
+        |testRunner|
+
+        testRunner := UserPreferences current testRunnerClass.
+        testRunner notNil ifTrue:[
+            testRunner openOnTestCase:cls.
+        ]
+    ].
+!
+
 classMenuOwnershipGraph
     "show a classes ownership graph/trend"
 
@@ -30471,8 +31371,8 @@
     self selectedMethods value:nil.
     self selectProtocols:nil.
     self
-	showClassPrimitive:aspect
-	class:(self theSingleSelectedClass theNonMetaclass)
+        showClassPrimitive:aspect
+        class:(self theSingleSelectedClass theNonMetaclass)
 !
 
 classMenuPrimitiveDefinitions
@@ -30512,7 +31412,7 @@
     "recompile selected classes (to turn off instrumentation, for example)"
 
     self selectedClassesDo:[:eachClass |
-	self recompileClass:eachClass
+        self recompileClass:eachClass
     ].
 
     "Modified: / 31-05-2012 / 12:01:57 / cg"
@@ -30525,12 +31425,12 @@
 
     already := Set new.
     self selectedClassesDo:[:each |
-	each withAllSubclassesDo:[:eachClass |
-	    (already includes:eachClass theNonMetaclass) ifFalse:[
-		already add:eachClass theNonMetaclass.
-		self recompileClass:eachClass
-	    ]
-	].
+        each withAllSubclassesDo:[:eachClass |
+            (already includes:eachClass theNonMetaclass) ifFalse:[
+                already add:eachClass theNonMetaclass.
+                self recompileClass:eachClass
+            ]
+        ].
     ].
 
     "Created: / 07-09-2011 / 21:23:01 / cg"
@@ -30538,7 +31438,7 @@
 
 classMenuRecompileInstrumented
     self selectedClassesDo:[:eachClass |
-	self recompileClassWithInstrumentation:eachClass
+        self recompileClassWithInstrumentation:eachClass
     ].
     self infoLabelHolder value:nil.
     self askForGlobalCoverageRecording.
@@ -30564,7 +31464,7 @@
     "remove the selected classes (and all of its subclasses)"
 
     self withWaitCursorDo:[
-	self classMenuRemoveAndPullUpSubclasses:false
+        self classMenuRemoveAndPullUpSubclasses:false
     ]
 
     "Modified: / 27-07-2006 / 09:33:35 / cg"
@@ -30582,82 +31482,82 @@
     offerYesToAll := self selectedClassesValue size > 1.
 
     YesToAllConfirmation handleConfirmationIn:[
-	self
-	    selectedClassesNonMetaDo:[:cls |
-		self
-		    addClassesToRemoveForClass:cls
-		    to:classesToRemove
-		    removingSubclasses:pullUpSubclasses not
-		    withCancel:offerCancel
-	    ]
-	    ifUnloaded:[:cls |
-		|answer|
-
-		YesToAllConfirmation query ifTrue:[
-		    answer :=  true
-		] ifFalse:[
-		    offerYesToAll ifTrue:[
-			answer := OptionBox
-				      request:(resources
-						string:'Class ''%1'' is autoloaded - remove anyway ?'
-						with:cls name allBold)
-				      label:(resources string:'Confirm')
-				      image:(YesNoBox iconBitmap)
-				      buttonLabels:(resources array:#('Cancel' 'No' 'Yes' 'Yes to All'))
-				      values:#(nil false true #yesToAll)
-				      default:false
-				      onCancel:false.
-			answer == #yesToAll ifTrue:[
-			    YesToAllConfirmation notify.
-			    answer := true
-			].
-		    ] ifFalse:[
-			answer := Dialog
-					confirmWithCancel:
-					    (resources
-						string:'Class ''%1'' is autoloaded - remove anyway ?'
-						with:cls name allBold)
-					default:
-					    false.
-		    ].
-		    answer == nil ifTrue:[
-			^ self    "/ cancelled
-		    ].
-		].
-		answer == true ifTrue:[
-		    self
-			addClassesToRemoveForClass:cls
-			to:classesToRemove
-			removingSubclasses:pullUpSubclasses not
-			withCancel:offerCancel
-			withConfirm:false
-		].
-		false
-	    ]
-	    ifPrivate:[:cls |
-		self
-		    addClassesToRemoveForClass:cls
-		    to:classesToRemove
-		    removingSubclasses:pullUpSubclasses not
-		    withCancel:offerCancel
-	    ].
+        self
+            selectedClassesNonMetaDo:[:cls |
+                self
+                    addClassesToRemoveForClass:cls
+                    to:classesToRemove
+                    removingSubclasses:pullUpSubclasses not
+                    withCancel:offerCancel
+            ]
+            ifUnloaded:[:cls |
+                |answer|
+
+                YesToAllConfirmation query ifTrue:[
+                    answer :=  true
+                ] ifFalse:[
+                    offerYesToAll ifTrue:[
+                        answer := OptionBox
+                                      request:(resources
+                                                string:'Class ''%1'' is autoloaded - remove anyway ?'
+                                                with:cls name allBold)
+                                      label:(resources string:'Confirm')
+                                      image:(YesNoBox iconBitmap)
+                                      buttonLabels:(resources array:#('Cancel' 'No' 'Yes' 'Yes to All'))
+                                      values:#(nil false true #yesToAll)
+                                      default:false
+                                      onCancel:false.
+                        answer == #yesToAll ifTrue:[
+                            YesToAllConfirmation notify.
+                            answer := true
+                        ].
+                    ] ifFalse:[
+                        answer := Dialog
+                                        confirmWithCancel:
+                                            (resources
+                                                string:'Class ''%1'' is autoloaded - remove anyway ?'
+                                                with:cls name allBold)
+                                        default:
+                                            false.
+                    ].
+                    answer == nil ifTrue:[
+                        ^ self    "/ cancelled
+                    ].
+                ].
+                answer == true ifTrue:[
+                    self
+                        addClassesToRemoveForClass:cls
+                        to:classesToRemove
+                        removingSubclasses:pullUpSubclasses not
+                        withCancel:offerCancel
+                        withConfirm:false
+                ].
+                false
+            ]
+            ifPrivate:[:cls |
+                self
+                    addClassesToRemoveForClass:cls
+                    to:classesToRemove
+                    removingSubclasses:pullUpSubclasses not
+                    withCancel:offerCancel
+            ].
     ].
 
     classesToRemove notEmpty ifTrue:[
-	self removeClasses:classesToRemove pullUpSubclasses:pullUpSubclasses.
-	"/ Confirm only iff there was at least one Smalltalk class (for others, we do not have
-	"/ changes.
-	(classesToRemove anySatisfy:[:c|c programmingLanguage isSmalltalk]) ifTrue:[
-	    (Dialog
-		  confirm:(resources
-			    stringWithCRs:'Cleanup the ChangeSet ?\\i.e. remove entries for removed class(es)')
-		  yesLabel:(resources string:'Cleanup'))
-	    ifTrue:[
-		classesToRemove do:[:eachClass |
-		    ChangeSet current condenseChangesForClass:eachClass
-		].
-	    ].
-	]
+        self removeClasses:classesToRemove pullUpSubclasses:pullUpSubclasses.
+        "/ Confirm only iff there was at least one Smalltalk class (for others, we do not have
+        "/ changes.
+        (classesToRemove anySatisfy:[:c|c programmingLanguage isSmalltalk]) ifTrue:[
+            (Dialog
+                  confirm:(resources
+                            stringWithCRs:'Cleanup the ChangeSet ?\\i.e. remove entries for removed class(es)')
+                  yesLabel:(resources string:'Cleanup'))
+            ifTrue:[
+                classesToRemove do:[:eachClass |
+                    ChangeSet current condenseChangesForClass:eachClass
+                ].
+            ].
+        ]
     ]
 
     "Modified: / 28-02-2012 / 16:47:47 / cg"
@@ -30677,11 +31577,11 @@
     currentClass := currentClass theNonMetaclass.
 
     box := self
-		enterBoxTitle:(resources
-				string:'Rename ''%1'' to:'
-				with:currentClass name allBold)
-		okText:'Rename'
-		label:'Rename Class'.
+                enterBoxTitle:(resources
+                                string:'Rename ''%1'' to:'
+                                with:currentClass name allBold)
+                okText:'Rename'
+                label:'Rename Class'.
 
     box initialText:(currentClass name).
     box action:[:aString | newNameString := aString].
@@ -30696,60 +31596,60 @@
     nsOrOwner := environment.
     s := newNameString readStream.
     [s atEnd] whileFalse:[
-	nextWord := s nextAlphaNumericWord.
-	[s peek == $_] whileTrue:[
-	    nextWord := nextWord , '_' , s nextAlphaNumericWord.
-	].
-	s skipSeparators.
-	s atEnd ifFalse:[
-	    nsOrOwner isNameSpace ifTrue:[
-		t := nsOrOwner at:nextWord asSymbol
-	    ] ifFalse:[
-		t := nsOrOwner privateClassesAt:nextWord asSymbol
-	    ].
-	    t isNil ifTrue:[
-		self warn:('Name: ''' , newNameString , ''' specifies a non-existing NameSpace or Ownerclass.\\(no ''' , nextWord , ''' in ''' , nsOrOwner name , ')') withCRs.
-		^ self
-	    ].
-	    nsOrOwner := t.
-	    s peek == $. ifTrue:[
-		s next.
-	    ] ifFalse:[
-		s peek == $: ifTrue:[
-		    s next.
-		    s next ~= $: ifTrue:[
-			self warn:'Bad name: ''' , newNameString , ''' (either use ''.'' or ''::'' as nameSpace separator)'.
-			^ self
-		    ]
-		]
-	    ]
-	]
+        nextWord := s nextAlphaNumericWord.
+        [s peek == $_] whileTrue:[
+            nextWord := nextWord , '_' , s nextAlphaNumericWord.
+        ].
+        s skipSeparators.
+        s atEnd ifFalse:[
+            nsOrOwner isNameSpace ifTrue:[
+                t := nsOrOwner at:nextWord asSymbol
+            ] ifFalse:[
+                t := nsOrOwner privateClassesAt:nextWord asSymbol
+            ].
+            t isNil ifTrue:[
+                self warn:('Name: ''' , newNameString , ''' specifies a non-existing NameSpace or Ownerclass.\\(no ''' , nextWord , ''' in ''' , nsOrOwner name , ')') withCRs.
+                ^ self
+            ].
+            nsOrOwner := t.
+            s peek == $. ifTrue:[
+                s next.
+            ] ifFalse:[
+                s peek == $: ifTrue:[
+                    s next.
+                    s next ~= $: ifTrue:[
+                        self warn:'Bad name: ''' , newNameString , ''' (either use ''.'' or ''::'' as nameSpace separator)'.
+                        ^ self
+                    ]
+                ]
+            ]
+        ]
     ].
     nsOrOwner isNil ifTrue:[
-	self warn:'Name ''' , newNameString , ''' specifies a non-existing NameSpace or Ownerclass'.
-	^ self
+        self warn:'Name ''' , newNameString , ''' specifies a non-existing NameSpace or Ownerclass'.
+        ^ self
     ].
 
     hardRename := false.
     currentClass isPrivate ifTrue:[
-	"/ check if the new name implies an owner-change
-	hardRename := (nsOrOwner ~~ currentClass owningClass)
-    ] ifFalse:[
-	hardRename := (nsOrOwner ~~ currentClass nameSpace)
+        "/ check if the new name implies an owner-change
+        hardRename := (nsOrOwner ~~ currentClass owningClass)
+    ] ifFalse:[
+        hardRename := (nsOrOwner ~~ currentClass nameSpace)
     ].
     hardRename ifTrue:[
-	(self confirm:'New name implies a NameSpace or OwningClass change - is this what you want ?') ifFalse:[
-	    ^ self
-	]
+        (self confirm:'New name implies a NameSpace or OwningClass change - is this what you want ?') ifFalse:[
+            ^ self
+        ]
     ].
 
     "/ check if the target already exists - confirm if so.
 
     (cls := environment classNamed:newNameString) notNil ifTrue:[
-	(self confirm:(resources string:'Attention: a class named ''%1'' already present (in the ''%2'' category).\\Rename over it ?'
-				 with:newNameString allBold
-				 with:cls category allBold) withCRs)
-	    ifFalse:[^ self]
+        (self confirm:(resources string:'Attention: a class named ''%1'' already present (in the ''%2'' category).\\Rename over it ?'
+                                 with:newNameString allBold
+                                 with:cls category allBold) withCRs)
+            ifFalse:[^ self]
     ].
 
     oldSym := currentClass name asSymbol.
@@ -30762,109 +31662,115 @@
     askForNewContainer := false.
     "/ check if the class has a repository container - warn about this if so
     currentClass isPrivate ifFalse:[
-	currentClass revision notNil ifTrue:[
-	    (Dialog
-		confirm:(resources string:'Remove the (old) source container for ''%1'' in the repository ?' with:oldSym allBold)
-		initialAnswer:false)
-	    ifTrue:[
-		(SourceCodeManagerUtilities sourceCodeManagerFor:currentClass)
-			removeSourceContainerForClass:currentClass
-			confirm:false
-			warn:true.
-		askForNewContainer := true.
-	    ].
-	]
+        | mgr |
+
+        mgr := SourceCodeManagerUtilities sourceCodeManagerFor:currentClass.
+        mgr isContainerBased ifTrue:[
+            currentClass revision notNil ifTrue:[
+                (Dialog
+                    confirm:(resources string:'Remove the (old) source container for ''%1'' in the repository ?' with:oldSym allBold)
+                    initialAnswer:false)
+                ifTrue:[
+                    mgr utilities
+                            removeSourceContainerForClass:currentClass
+                            confirm:false
+                            warn:true.
+                    askForNewContainer := true.
+                ].
+            ].
+        ].
     ].
 
     self busyLabel:('Searching for references to ' , oldSym).
     referingMethods := SystemBrowser
-			    allMethodsIn:(environment allClasses)
-			    where:(SystemBrowser searchBlockForReferendsOf:oldSym).
+                            allMethodsIn:(environment allClasses)
+                            where:(SystemBrowser searchBlockForReferendsOf:oldSym).
     self normalLabel.
     referingMethods isEmpty ifTrue:[
-	Smalltalk renameClass:currentClass to:newNameString.
-    ] ifFalse:[
-	RenameClassRefactoring isNil ifTrue:[
-	    Smalltalk renameClass:currentClass to:newNameString.
-	    answer := OptionBox
-			  request:(resources
-					stringWithCRs:'Browse %1 references to "%2" ?'
-					with:referingMethods size
-					with:oldSym allBold
-					with:newNameString allBold)
-			  label:(resources string:'Renaming class "%1" to "%2"' with:oldSym with:newNameString)
-			  buttonLabels:(resources array:#('Cancel' 'Browse' 'Rename'))
-			  values:#(false #browse #rename)
-			  default:#rename
-			  onCancel:false.
-	] ifFalse:[
-	    referingMethods size == 1 ifTrue:[
-		question := 'There is 1 reference to "%2"\from %4.\\Rename only or Rename and Rewrite to "%3" ?'
-	    ] ifFalse:[
-		question := 'There are %1 references to "%2".\\Rename only or Rename and Rewrite to "%3" ?'
-	    ].
-
-	    answer := OptionBox
-			  request:(resources
-					stringWithCRs:question
-					with:referingMethods size
-					with:oldSym allBold
-					with:newNameString allBold
-					with:(referingMethods first whoString))
-			  label:(resources string:'Renaming class "%1" to "%2"' with:oldSym with:newNameString)
-			  buttonLabels:(resources array:#('Cancel' 'Browse' 'Rename && Browse' 'Rename' 'Rename && Rewrite'  ))
-			  values:#(false #browse #renameAndBrowse #rename #renameAndRewrite )
-			  default:#renameAndRewrite
-			  onCancel:false.
-	].
-
-	(answer == #browse) ifTrue:[
-	    browser := self
-			    spawnMethodBrowserFor:referingMethods
-			    in:#newBuffer
-			    label:(resources string:'Methods referring to %1' with:oldSym)
-	].
-	(answer == #rename or:[answer == #renameAndBrowse]) ifTrue:[
-	    Smalltalk renameClass:currentClass to:newNameString.
-	    answer == #renameAndBrowse ifTrue:[
-		browser := self
-			    spawnMethodBrowserFor:referingMethods
-			    in:#newBuffer
-			    label:(resources string:'Methods referring to %1 which was renamed to %2' with:oldSym with:newNameString)
-	    ].
-	].
-	answer == #renameAndRewrite ifTrue:[
-	    self performRefactoring:(RenameClassRefactoring renameClassNamed:oldSym to:newNameString).
-	    referingMethods := SystemBrowser
-			    allMethodsIn:(environment allClasses)
-			    where:(SystemBrowser searchBlockForReferendsOf:newNameString).
-	    UserInformation ignoreIn:[
-		browser := self
-			    spawnMethodBrowserFor:referingMethods
-			    in:#newBuffer
-			    label:(resources string:'Rewritten Methods now referring to %1' with:newNameString).
-	    ].
-	].
-	browser notNil ifTrue:[
-	    browser autoSearchVariable:oldBaseSym.
-	].
+        Smalltalk renameClass:currentClass to:newNameString.
+    ] ifFalse:[
+        RenameClassRefactoring isNil ifTrue:[
+            Smalltalk renameClass:currentClass to:newNameString.
+            answer := OptionBox
+                          request:(resources
+                                        stringWithCRs:'Browse %1 references to "%2" ?'
+                                        with:referingMethods size
+                                        with:oldSym allBold
+                                        with:newNameString allBold)
+                          label:(resources string:'Renaming class "%1" to "%2"' with:oldSym with:newNameString)
+                          buttonLabels:(resources array:#('Cancel' 'Browse' 'Rename'))
+                          values:#(false #browse #rename)
+                          default:#rename
+                          onCancel:false.
+        ] ifFalse:[
+            referingMethods size == 1 ifTrue:[
+                question := 'There is 1 reference to "%2"\from %4.\\Rename only or Rename and Rewrite to "%3" ?'
+            ] ifFalse:[
+                question := 'There are %1 references to "%2".\\Rename only or Rename and Rewrite to "%3" ?'
+            ].
+
+            answer := OptionBox
+                          request:(resources
+                                        stringWithCRs:question
+                                        with:referingMethods size
+                                        with:oldSym allBold
+                                        with:newNameString allBold
+                                        with:(referingMethods first whoString))
+                          label:(resources string:'Renaming class "%1" to "%2"' with:oldSym with:newNameString)
+                          buttonLabels:(resources array:#('Cancel' 'Browse' 'Rename && Browse' 'Rename' 'Rename && Rewrite'  ))
+                          values:#(false #browse #renameAndBrowse #rename #renameAndRewrite )
+                          default:#renameAndRewrite
+                          onCancel:false.
+        ].
+
+        (answer == #browse) ifTrue:[
+            browser := self
+                            spawnMethodBrowserFor:referingMethods
+                            in:#newBuffer
+                            label:(resources string:'Methods referring to %1' with:oldSym)
+        ].
+        (answer == #rename or:[answer == #renameAndBrowse]) ifTrue:[
+            Smalltalk renameClass:currentClass to:newNameString.
+            answer == #renameAndBrowse ifTrue:[
+                browser := self
+                            spawnMethodBrowserFor:referingMethods
+                            in:#newBuffer
+                            label:(resources string:'Methods referring to %1 which was renamed to %2' with:oldSym with:newNameString)
+            ].
+        ].
+        answer == #renameAndRewrite ifTrue:[
+            self performRefactoring:(RenameClassRefactoring renameClassNamed:oldSym to:newNameString).
+            referingMethods := SystemBrowser
+                            allMethodsIn:(environment allClasses)
+                            where:(SystemBrowser searchBlockForReferendsOf:newNameString).
+            UserInformation ignoreIn:[
+                browser := self
+                            spawnMethodBrowserFor:referingMethods
+                            in:#newBuffer
+                            label:(resources string:'Rewritten Methods now referring to %1' with:newNameString).
+            ].
+        ].
+        browser notNil ifTrue:[
+            browser autoSearchVariable:oldBaseSym.
+        ].
     ].
 
     askForNewContainer ifTrue:[
-	(self confirm:(resources string:'Create a new source container for ''%1'' ?' with:newNameString allBold))
-	ifTrue:[
-	    currentClass setClassFilename:nil.
-	    SourceCodeManagerUtilities default createSourceContainerForClass:(environment at:newNameString asSymbol)
-	]
+        (self confirm:(resources string:'Create a new source container for ''%1'' ?' with:newNameString allBold))
+        ifTrue:[
+            currentClass setClassFilename:nil.
+            SourceCodeManagerUtilities default createSourceContainerForClass:(environment at:newNameString asSymbol)
+        ]
     ].
 
     "Modified: / 01-06-2012 / 10:30:08 / cg"
+    "Modified: / 12-08-2014 / 12:28:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 classMenuRewrite
     MethodRewriter new
-	classes: self selectedClassesValue;
-	open
+        classes: self selectedClassesValue;
+        open
 
     "Created: / 05-07-2011 / 14:48:32 / cg"
 !
@@ -30873,24 +31779,24 @@
     "write classes documentation to a file"
 
     self
-	selectedClassesNonMetaDo:
-	    [:cls |
-		self saveClassDocumentationFor:cls
-	    ]
-	ifUnloaded:
-	    [:cls |
-		true
-	    ]
-	ifPrivate:
-	    [:cls |
-	    ]
+        selectedClassesNonMetaDo:
+            [:cls |
+                self saveClassDocumentationFor:cls
+            ]
+        ifUnloaded:
+            [:cls |
+                true
+            ]
+        ifPrivate:
+            [:cls |
+            ]
 !
 
 classMenuSaveRemove
     "remove the selected classes and pull up their subclasses"
 
     (self canUseRefactoringSupport) ifFalse:[
-	^ self warn:'Sorry - need refactoring support for this function'.
+        ^ self warn:'Sorry - need refactoring support for this function'.
     ].
     ^ self classMenuRemoveAndPullUpSubclasses:true
 
@@ -30903,9 +31809,9 @@
     |classes changes|
 
     self withWaitCursorDo:[
-	classes := self selectedClasses value collect:[:each | each theNonMetaclass].
-	changes := ChangeSet current selectForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:classes.
-	(UserPreferences current changeSetBrowserClass) openOn:changes
+        classes := self selectedClasses value collect:[:each | each theNonMetaclass].
+        changes := ChangeSet current selectForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:classes.
+        (UserPreferences current changeSetBrowserClass) openOn:changes
     ]
 
     "Created: / 26-07-2012 / 11:50:52 / cg"
@@ -30932,7 +31838,7 @@
 !
 
 classMenuSpawnBufferWithClassProjects
-    "add a new buffer showing the selected classes projects"
+    "add a new buffer showing the selected classes' projects"
 
     self spawnClassProjectsBrowserFor:(self selectedClassesValue) in:#newBuffer
 
@@ -30947,6 +31853,10 @@
     "Modified: / 28-02-2012 / 16:48:11 / cg"
 !
 
+classMenuSpawnBufferWithClassesCoveredByTestcase
+    self spawnWithClassesCoveredByTestcaseIn:#newBuffer
+!
+
 classMenuSpawnBufferWithCommonSuperclass
     "open a new browser showing the selected classes' common superclass"
 
@@ -30955,6 +31865,15 @@
     "Created: / 28-02-2012 / 08:58:56 / cg"
 !
 
+classMenuSpawnBufferWithProjectReferences
+    "add a new buffer showing preoject references to the selected project definitions"
+
+    |packages|
+
+    packages := self selectedClassesValue collect:[:each | each package] as:Set.
+    self spawnProjectReferencesBrowserFor:packages in:#newBuffer
+!
+
 classMenuSpawnClass
     "open a new browser showing the selected classes only"
 
@@ -30980,7 +31899,7 @@
 !
 
 classMenuSpawnClassProjects
-    "open a new browser showing the selected classes projects"
+    "open a new browser showing the selected classes' projects"
 
     self spawnClassProjectsBrowserFor:(self selectedClassesValue) in:#newBrowser
 
@@ -30995,6 +31914,12 @@
     "Modified: / 28-02-2012 / 16:48:26 / cg"
 !
 
+classMenuSpawnClassesBuffer
+    "add a buffer showing the selected classes only"
+
+    self classMenuSpawnClassBuffer
+!
+
 classMenuSpawnFullBrowserIn:where
     "add a buffer/open a browser showing the selected classes"
 
@@ -31002,30 +31927,30 @@
 
     methods := self selectedMethodsValue select:[:m | m mclass notNil].
     methods notEmpty ifTrue:[
-	classes := methods collect:[:each | each mclass].
-    ] ifFalse:[
-	classes := self selectedClassesValue asOrderedCollection.
+        classes := methods collect:[:each | each mclass].
+    ] ifFalse:[
+        classes := self selectedClassesValue asOrderedCollection.
     ].
     brwsr := self spawnFullBrowserInClass:nil selector:nil in:where.
 
     classes size > 0 ifTrue:[
-	brwsr immediateUpdate value:true.
-	brwsr selectedCategories value:(classes collect:[:each | each theNonMetaclass category] as:Set) asOrderedCollection.
-	anyNonMeta := classes contains:[:any | any isMeta not].
-	anyMeta := classes contains:[:any | any isMeta].
-	anyMeta ifFalse:[
-	    brwsr selectedClasses value:classes
-	] ifTrue:[
-	    anyNonMeta ifFalse:[
-		brwsr meta value:true.
-		brwsr selectedClasses value:classes.
-	    ] ifTrue:[
-		brwsr selectedClasses value:classes.
-	    ].
-	].
-	brwsr selectedProtocols value:(methods collect:[:m | m category]).
-	brwsr selectedMethods value:methods.
-	brwsr immediateUpdate value:false.
+        brwsr immediateUpdate value:true.
+        brwsr selectedCategories value:(classes collect:[:each | each theNonMetaclass category] as:Set) asOrderedCollection.
+        anyNonMeta := classes contains:[:any | any isMeta not].
+        anyMeta := classes contains:[:any | any isMeta].
+        anyMeta ifFalse:[
+            brwsr selectedClasses value:classes
+        ] ifTrue:[
+            anyNonMeta ifFalse:[
+                brwsr meta value:true.
+                brwsr selectedClasses value:classes.
+            ] ifTrue:[
+                brwsr selectedClasses value:classes.
+            ].
+        ].
+        brwsr selectedProtocols value:(methods collect:[:m | m category]).
+        brwsr selectedMethods value:methods.
+        brwsr immediateUpdate value:false.
     ].
     ^ brwsr
 !
@@ -31034,9 +31959,9 @@
     "add a buffer showing the selected classes only"
 
     self
-	spawnFullBrowserInClass:(self selectedClassesValue first)
-	selector:nil
-	in:#newBrowser.
+        spawnFullBrowserInClass:(self selectedClassesValue first)
+        selector:nil
+        in:#newBrowser.
 
     "Modified: / 28-02-2012 / 16:48:16 / cg"
 !
@@ -31045,13 +31970,22 @@
     "add a buffer showing the selected classes only"
 
     self
-	spawnFullBrowserInClass:(self selectedClassesValue first)
-	selector:nil
-	in:#newBuffer.
+        spawnFullBrowserInClass:(self selectedClassesValue first)
+        selector:nil
+        in:#newBuffer.
 
     "Modified: / 28-02-2012 / 16:48:16 / cg"
 !
 
+classMenuSpawnProjectReferences
+    "open a new browser showing preoject references to the selected project definitions"
+
+    |packages|
+
+    packages := self selectedClassesValue collect:[:each | each package] as:Set.
+    self spawnProjectReferencesBrowserFor:packages in:#newBrowser
+!
+
 classMenuSpawnWithAllSubclasses
     "open a new browser showing the selected classes with all subclasses"
 
@@ -31064,6 +31998,10 @@
     self spawnWithAllSuperclassesIn:#newBrowser
 !
 
+classMenuSpawnWithClassesCoveredByTestcase
+    self spawnWithClassesCoveredByTestcaseIn:#newBrowser
+!
+
 classMenuSpawnWithCommonSuperclass
     "open a new browser showing the selected classes' common superclass"
 
@@ -31096,159 +32034,159 @@
 
     isPrivate := isPrivateWanted.
     isPrivate ifTrue:[
-	ownerClass := currentClass.
-	ownerClass notNil ifTrue:[
-	    ownerClass := ownerClass theNonMetaclass.
-	].
+        ownerClass := currentClass.
+        ownerClass notNil ifTrue:[
+            ownerClass := ownerClass theNonMetaclass.
+        ].
     ].
     aSuperClass isPrivate ifTrue:[
-	isPrivate := true.
-	ownerClass := aSuperClass theNonMetaclass owningClass
+        isPrivate := true.
+        ownerClass := aSuperClass theNonMetaclass owningClass
     ].
 
     isPrivate ifTrue:[
-	metaClassUsedOrNil isNil ifTrue:[
-	    metaClassUsedOrNil := ownerClass theMetaclass class
-	] ifFalse:[
-	]
+        metaClassUsedOrNil isNil ifTrue:[
+            metaClassUsedOrNil := ownerClass theMetaclass class
+        ] ifFalse:[
+        ]
     ].
 
     (metaClassUsedOrNil notNil
     and:[(metaClassUsedOrNil ~~ Metaclass)
-	 and:[metaClassUsedOrNil ~~ PrivateMetaclass]
+         and:[metaClassUsedOrNil ~~ PrivateMetaclass]
     " and:[(metaClassUsedOrNil isSubclassOf:Metaclass) not] " ]) ifTrue:[
-	^ metaClassUsedOrNil
-		classTemplateFor:aSuperClass
-		in:categoryString
-		asNamespace:asNameSpace
-		private:isPrivate
+        ^ metaClassUsedOrNil
+                classTemplateFor:aSuperClass
+                in:categoryString
+                asNamespace:asNameSpace
+                private:isPrivate
     ].
 
     (self javaMode
     or:[aSuperClass notNil and:[aSuperClass isJavaClass]])
     ifTrue:[
-	^ self javaClassTemplateFor:aSuperClass in:categoryString private:isPrivate
+        ^ self javaClassTemplateFor:aSuperClass in:categoryString private:isPrivate
     ].
 
     nsTemplate := ''.
 
     self organizerMode value ~~ OrganizerCanvas organizerModeNamespace ifTrue:[
-	(aSuperClass notNil
-	and:[(superclassesNamespace := aSuperClass nameSpace) ~~ Smalltalk]) ifTrue:[
-	    (superclassesNamespace isNameSpace
-	    or:[superclassesNamespace ~~ ownerClass]) ifTrue:[
-		nsTemplate := superclassesNamespace name , '::'.
-	    ].
-	]
-    ] ifFalse:[
-	(selectedNamespaces := self selectedNamespaces value) size > 0 ifTrue:[
-	    selectedNamespaces size == 1 ifTrue:[
-		selectedNamespaces first ~= BrowserList nameListEntryForALL ifTrue:[
-		    currentNamespace := environment at:selectedNamespaces first asSymbol.
-		]
-	    ]
-	]
+        (aSuperClass notNil
+        and:[(superclassesNamespace := aSuperClass nameSpace) ~~ Smalltalk]) ifTrue:[
+            (superclassesNamespace isNameSpace
+            or:[superclassesNamespace ~~ ownerClass]) ifTrue:[
+                nsTemplate := superclassesNamespace name , '::'.
+            ].
+        ]
+    ] ifFalse:[
+        (selectedNamespaces := self selectedNamespaces value) size > 0 ifTrue:[
+            selectedNamespaces size == 1 ifTrue:[
+                selectedNamespaces first ~= BrowserList nameListEntryForALL ifTrue:[
+                    currentNamespace := environment at:selectedNamespaces first asSymbol.
+                ]
+            ]
+        ]
     ].
 
     s := TextStream on:''.
 
     asNameSpace ifTrue:[
-	s nextPutLine:'NameSpace name:''' , nsTemplate , 'NewNameSpace'''.
-	s cr.
-	s emphasis:(UserPreferences current commentEmphasisAndColor).
-	s nextPutAll:'"
+        s nextPutLine:'NameSpace name:''' , nsTemplate , 'NewNameSpace'''.
+        s cr.
+        s emphasis:(UserPreferences current commentEmphasisAndColor).
+        s nextPutAll:'"
  Replace ''NewNameSpace'' by the desired name.
 
  Create the namespace by ''accepting'',
  either via the menu or the keyboard (usually CMD-A).
 "
 '.
-	^ s contents.
+        ^ s contents.
     ].
 
     currentNamespace isNil ifTrue:[
-	currentNamespace := self currentNamespace.
+        currentNamespace := self currentNamespace.
     ].
     currentClass notNil ifTrue:[
-	currentClass := currentClass theNonMetaclass.
+        currentClass := currentClass theNonMetaclass.
     ].
 
     withNameSpaceDirective :=
-	currentNamespace notNil
-	and:[currentNamespace ~= (BrowserList nameListEntryForALL)
-	and:[currentNamespace ~= Smalltalk]].
+        currentNamespace notNil
+        and:[currentNamespace ~= (BrowserList nameListEntryForALL)
+        and:[currentNamespace ~= Smalltalk]].
 
     withNameSpaceDirective ifTrue:[
-	s nextPutAll:('"{ NameSpace: ''' , currentNamespace name , ''' }"').
-	s cr; cr.
-	aSuperClass nameSpace = currentNamespace ifTrue:[
-	    className := aSuperClass nameWithoutNameSpacePrefix.
-	] ifFalse:[
-	    className := aSuperClass name.
-	].
-    ] ifFalse:[
-	className := aSuperClass name.
+        s nextPutAll:('"{ NameSpace: ''' , currentNamespace name , ''' }"').
+        s cr; cr.
+        aSuperClass nameSpace = currentNamespace ifTrue:[
+            className := aSuperClass nameWithoutNameSpacePrefix.
+        ] ifFalse:[
+            className := aSuperClass name.
+        ].
+    ] ifFalse:[
+        className := aSuperClass name.
     ].
 
     nsTemplate := ''.
     withNameSpaceDirective ifFalse:[
-	self organizerMode value ~~ OrganizerCanvas organizerModeNamespace ifTrue:[
-	    (aSuperClass notNil
-	    and:[(superclassesNamespace := aSuperClass nameSpace) ~~ Smalltalk]) ifTrue:[
-		(superclassesNamespace isNameSpace
-		or:[superclassesNamespace ~~ ownerClass]) ifTrue:[
-		    nsTemplate := superclassesNamespace name , '::'.
-		].
-	    ]
-	].
+        self organizerMode value ~~ OrganizerCanvas organizerModeNamespace ifTrue:[
+            (aSuperClass notNil
+            and:[(superclassesNamespace := aSuperClass nameSpace) ~~ Smalltalk]) ifTrue:[
+                (superclassesNamespace isNameSpace
+                or:[superclassesNamespace ~~ ownerClass]) ifTrue:[
+                    nsTemplate := superclassesNamespace name , '::'.
+                ].
+            ]
+        ].
     ].
 
     cat := categoryString.
     (cat isNil or:[cat startsWith:$*]) ifTrue:[
-	cat := Compiler defaultMethodCategory "/ '** As yet uncategorized **'
+        cat := Compiler defaultMethodCategory "/ '** As yet uncategorized **'
     ].
 
     ((aSuperClass == SimpleDialog) or:[aSuperClass isSubclassOf:SimpleDialog]) ifTrue:[
-	nameProto := 'NewDialog'.
-    ] ifFalse:[
-	((aSuperClass == ApplicationModel) or:[aSuperClass isSubclassOf:ApplicationModel]) ifTrue:[
-	    nameProto := 'NewApplication'.
-	] ifFalse:[
-	    aSuperClass == TestCase ifTrue:[
-		nameProto := 'NewTestCase'.
-	    ] ifFalse:[ aSuperClass == Error ifTrue:[
-		nameProto := 'NewError'.
-	    ] ifFalse:[ aSuperClass == Exception ifTrue:[
-		nameProto := 'NewException'.
-	    ] ifFalse:[ aSuperClass == SharedPool ifTrue:[
-		nameProto := 'NewSharedPool'.
-	    ] ifFalse:[
-		nameProto := 'NewClass'.
-	    ]]]]
-	]
+        nameProto := 'NewDialog'.
+    ] ifFalse:[
+        ((aSuperClass == ApplicationModel) or:[aSuperClass isSubclassOf:ApplicationModel]) ifTrue:[
+            nameProto := 'NewApplication'.
+        ] ifFalse:[
+            aSuperClass == TestCase ifTrue:[
+                nameProto := 'NewTestCase'.
+            ] ifFalse:[ aSuperClass == Error ifTrue:[
+                nameProto := 'NewError'.
+            ] ifFalse:[ aSuperClass == Exception ifTrue:[
+                nameProto := 'NewException'.
+            ] ifFalse:[ aSuperClass == SharedPool ifTrue:[
+                nameProto := 'NewSharedPool'.
+            ] ifFalse:[
+                nameProto := 'NewClass'.
+            ]]]]
+        ]
     ].
 
     i := 1.
 
     isPrivate ifTrue:[
-	namePrefix := ownerClass name , '::'.
-	existingNames := ownerClass privateClasses.
-	existingNames size > 0 ifTrue:[
-	    existingNames := existingNames collect:[:cls | cls name].
-	]
-    ] ifFalse:[
-	namePrefix := ''.
-	existingNames := environment keys
+        namePrefix := ownerClass name , '::'.
+        existingNames := ownerClass privateClasses.
+        existingNames size > 0 ifTrue:[
+            existingNames := existingNames collect:[:cls | cls name].
+        ]
+    ] ifFalse:[
+        namePrefix := ''.
+        existingNames := environment keys
     ].
 
     name := nsTemplate , nameProto , i printString.
     existingNames notNil ifTrue:[
-	nameUsed := namePrefix , name.
-	[nameUsed knownAsSymbol and:[existingNames includes:nameUsed asSymbol]] whileTrue:[
-	    i := i + 1.
-	    name := nsTemplate , nameProto , i printString.
-	    nameUsed := namePrefix , name
-	].
+        nameUsed := namePrefix , name.
+        [nameUsed knownAsSymbol and:[existingNames includes:nameUsed asSymbol]] whileTrue:[
+            i := i + 1.
+            name := nsTemplate , nameProto , i printString.
+            nameUsed := namePrefix , name
+        ].
     ].
 
     s emphasis:#bold.
@@ -31263,24 +32201,24 @@
 
     s nextPutLine:'    instanceVariableNames: '''''.
     aSuperClass == SharedPool ifTrue:[
-	s nextPutLine:'    classVariableNames: ''PoolVar1 PoolVar2...'''.
-    ] ifFalse:[
-	s nextPutLine:'    classVariableNames: '''''.
+        s nextPutLine:'    classVariableNames: ''PoolVar1 PoolVar2...'''.
+    ] ifFalse:[
+        s nextPutLine:'    classVariableNames: '''''.
     ].
     s nextPutLine:'    poolDictionaries: '''''.
     isPrivate ifTrue:[
-	withNameSpaceDirective ifTrue:[
-	    ownerName := ownerClass nameWithoutNameSpacePrefix
-	] ifFalse:[
-	    ownerName := ownerClass name
-	].
-	s nextPutAll:'    privateIn: ' , ownerName
-    ] ifFalse:[
-	s nextPutAll:'    category: '''.
-	cat notNil ifTrue:[
-	    cat printWithQuotesDoubledOn:s
-	].
-	s nextPutAll: ''''
+        withNameSpaceDirective ifTrue:[
+            ownerName := ownerClass nameWithoutNameSpacePrefix
+        ] ifFalse:[
+            ownerName := ownerClass name
+        ].
+        s nextPutAll:'    privateIn: ' , ownerName
+    ] ifFalse:[
+        s nextPutAll:'    category: '''.
+        cat notNil ifTrue:[
+            cat printWithQuotesDoubledOn:s
+        ].
+        s nextPutAll: ''''
     ].
 
     s cr; cr.
@@ -31316,7 +32254,7 @@
 
 debugMenuRecompileMethodsInstrumented
     self selectedMethodsDo:[:eachMethod |
-	self recompileMethodWithInstrumentation:eachMethod
+        self recompileMethodWithInstrumentation:eachMethod
     ].
 
     "Created: / 10-08-2010 / 14:36:33 / cg"
@@ -31328,8 +32266,8 @@
     |lbl1 lbl2|
 
     (class1 isLoaded not or:[class2 isLoaded not]) ifTrue:[
-	self warn:'Cannot compare unloaded classes.'.
-	^ self.
+        self warn:'Cannot compare unloaded classes.'.
+        ^ self.
     ].
 
     self busyLabel:'comparing  ...' with:nil.
@@ -31338,22 +32276,22 @@
     lbl2 := class2 name.
 
     (UserPreferences versionDiffViewerClass)
-	  openOnClass:class1
-	  labelA:lbl1
-	  andClass:class2
-	  labelB:lbl2
-	  title:('comparing ' , lbl1 , ' against ' , lbl2)
-	  ifSame:[ self information:'sources are identical' ].
+          openOnClass:class1
+          labelA:lbl1
+          andClass:class2
+          labelB:lbl2
+          title:('comparing ' , lbl1 , ' against ' , lbl2)
+          ifSame:[ self information:'sources are identical' ].
 
     self normalLabel.
 !
 
 doCopyClass:aClass as:newClassName privateIn:ownerOrNil
     ^ self
-	doCopyClass:aClass
-	as:newClassName
-	privateIn:ownerOrNil
-	ignore:(IdentitySet new)
+        doCopyClass:aClass
+        as:newClassName
+        privateIn:ownerOrNil
+        ignore:(IdentitySet new)
 
     "Modified: / 24-05-2012 / 15:49:49 / cg"
 !
@@ -31364,24 +32302,24 @@
     privateClassesBefore := aClass privateClasses.
 
     ownerOrNil isNil ifTrue:[
-	sel := aClass definitionSelector.
-	realNewClassName := newClassName asSymbol.
-    ] ifFalse:[
-	sel := aClass definitionSelectorPrivate.
-	realNewClassName := (ownerOrNil name , '::' , newClassName) asSymbol.
+        sel := aClass definitionSelector.
+        realNewClassName := newClassName asSymbol.
+    ] ifFalse:[
+        sel := aClass definitionSelectorPrivate.
+        realNewClassName := (ownerOrNil name , '::' , newClassName) asSymbol.
     ].
 
     newClass := aClass superclass
-		perform:sel
-		with:newClassName asSymbol
-		with:aClass instanceVariableString
-		with:aClass classVariableString
-		with:aClass poolDictionaries
-		with:(ownerOrNil ifNil:[aClass category] ifNotNil:[ownerOrNil]).  "/ category: or privateIn:
+                perform:sel
+                with:newClassName asSymbol
+                with:aClass instanceVariableString
+                with:aClass classVariableString
+                with:aClass poolDictionaries
+                with:(ownerOrNil ifNil:[aClass category] ifNotNil:[ownerOrNil]).  "/ category: or privateIn:
 
     newClass isNil ifTrue:[
-	self error:'Internal class-definition error (should not happen)' mayProceed:true.
-	^ nil.
+        self error:'Internal class-definition error (should not happen)' mayProceed:true.
+        ^ nil.
     ].
 
     newMetaclass := newClass class.
@@ -31392,30 +32330,30 @@
     newMetaclass := newClass class.
 
     aClass methodDictionary
-	keysAndValuesDo:[:sel :mthd |
-	    newClass compile:(mthd source) classified:(mthd category)
+        keysAndValuesDo:[:sel :mthd |
+            newClass compile:(mthd source) classified:(mthd category)
     ].
     aClass class methodDictionary
-	keysAndValuesDo:[:sel :mthd |
-	    "/ skip the version method (to avoid confusing the repository)
-	    (AbstractSourceCodeManager isVersionMethodSelector:sel) ifFalse:[
-		newMetaclass compile:(mthd source) classified:(mthd category)
-	    ]
+        keysAndValuesDo:[:sel :mthd |
+            "/ skip the version method (to avoid confusing the repository)
+            (AbstractSourceCodeManager isVersionMethodSelector:sel) ifFalse:[
+                newMetaclass compile:(mthd source) classified:(mthd category)
+            ]
     ].
     setOfClassesToIgnore add:newClass.
 
     privateClassesBefore do:[:eachPrivateClass |
-	(setOfClassesToIgnore includes:eachPrivateClass) ifFalse:[
-	    self
-		doCopyClass:eachPrivateClass
-		as:(eachPrivateClass nameWithoutPrefix)
-		privateIn:newClass
-		ignore:setOfClassesToIgnore.
-	].
+        (setOfClassesToIgnore includes:eachPrivateClass) ifFalse:[
+            self
+                doCopyClass:eachPrivateClass
+                as:(eachPrivateClass nameWithoutPrefix)
+                privateIn:newClass
+                ignore:setOfClassesToIgnore.
+        ].
     ].
 
     (newMetaclass includesSelector:#initialize) ifTrue:[
-	newClass initialize.
+        newClass initialize.
     ].
     newClass package:(Class packageQuerySignal query).
     ^ newClass
@@ -31430,33 +32368,33 @@
     movedClassMethods := OrderedCollection new.
 
     aClass theNonMetaclass methodDictionary keysAndValuesDo:[:sel :mthd |
-	mthd package = oldProject ifTrue:[
-	    "/ JV@2012-02-11
-	    "/ this is required, because otherwise I would no longer be able to
-	    "/ reconstruct my sourcecode (as the connection to the source-file is lost).
-	    mthd makeLocalStringSource.
-	    mthd setPackage:newProject.
-	    movedInstMethods add:mthd.
-	].
+        mthd package = oldProject ifTrue:[
+            "/ JV@2012-02-11
+            "/ this is required, because otherwise I would no longer be able to
+            "/ reconstruct my sourcecode (as the connection to the source-file is lost).
+            mthd makeLocalStringSource.
+            mthd setPackage:newProject.
+            movedInstMethods add:mthd.
+        ].
     ].
     aClass theMetaclass methodDictionary keysAndValuesDo:[:sel :mthd |
-	mthd package = oldProject ifTrue:[
-	    "/ JV@2012-02-11
-	    "/ this is required, because otherwise I would no longer be able to
-	    "/ reconstruct my sourcecode (as the connection to the source-file is lost).
-	    mthd makeLocalStringSource.
-	    mthd setPackage:newProject.
-	    movedClassMethods add:mthd.
-	].
+        mthd package = oldProject ifTrue:[
+            "/ JV@2012-02-11
+            "/ this is required, because otherwise I would no longer be able to
+            "/ reconstruct my sourcecode (as the connection to the source-file is lost).
+            mthd makeLocalStringSource.
+            mthd setPackage:newProject.
+            movedClassMethods add:mthd.
+        ].
     ].
 
     movedInstMethods notEmpty ifTrue:[
-	aClass theNonMetaclass changed:#projectOrganization.
-	environment changed:#projectOrganization with:(Array with:aClass theNonMetaclass with:movedInstMethods).
+        aClass theNonMetaclass changed:#projectOrganization.
+        environment changed:#projectOrganization with:(Array with:aClass theNonMetaclass with:movedInstMethods).
     ].
     movedClassMethods notEmpty ifTrue:[
-	aClass theMetaclass changed:#projectOrganization.
-	environment changed:#projectOrganization with:(Array with:aClass theMetaclass with:movedClassMethods).
+        aClass theMetaclass changed:#projectOrganization.
+        environment changed:#projectOrganization with:(Array with:aClass theMetaclass with:movedClassMethods).
     ]
 
     "Modified: / 09-03-2012 / 23:41:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -31470,20 +32408,19 @@
     "run the selected method"
 
     self withWaitCursorDo:[
-	|m t retVal retvalString|
-
-	m := self theSingleSelectedMethod.
-	t := Time millisecondsToRun:[
-	    retVal := m mclass theNonMetaclass perform:(m selector).
-	].
-	(retVal isString
-	or:[ retVal isLiteral ]) ifTrue:[
-	    retvalString := retVal storeString.
-	]  ifFalse:[
-	    retvalString := retVal printString.
-	].
-	Transcript showCR:'Exec. Time: %1' with:t milliseconds.
-	Transcript showCR:'Answer: %1' with:retvalString.
+        |m cls sel retVal|
+
+        m := self theSingleSelectedMethod.
+        cls := m mclass theNonMetaclass.
+        sel := m selector.
+        [
+            retVal := cls perform:sel.
+        ] benchmark:'Exec. Time: '.
+
+        retVal isLiteral ifTrue:[
+            retVal := retVal storeString.
+        ].
+        Transcript show:'Answer: '; showCR:retVal.
     ]
 
     "Modified: / 19-11-2010 / 12:07:05 / cg"
@@ -31493,11 +32430,11 @@
     "fileOut a class."
 
     ^ self
-	fileOutClass:aClass
-	askForFile:doAsk
-	withCancelAll:withCancelAll
-	format:nil
-	sourceMode:nil
+        fileOutClass:aClass
+        askForFile:doAsk
+        withCancelAll:withCancelAll
+        format:nil
+        sourceMode:nil
 !
 
 fileOutClass:aClass askForFile:doAsk withCancelAll:withCancelAll format:formatSymbolOrNil sourceMode:sourceMode
@@ -31507,72 +32444,72 @@
 
     suffix := self fileSuffixForClass:aClass format:formatSymbolOrNil.
     formatSymbolOrNil notNil ifTrue:[
-	saveName := aClass theNonMetaclass name , '.' , suffix.
+        saveName := aClass theNonMetaclass name , '.' , suffix.
     ].
 
     stillAsking := doAsk.
 
     [stillAsking] whileTrue:[
-	saveName := self
-			fileNameDialogForFileOut:(resources string:'FileOut ''%1'' as:' with:aClass name allBold)
-			default:((Smalltalk fileNameForClass:aClass) , '.' , suffix)
-			withCancelAll:(withCancelAll
-					ifTrue:[
-						  cancelAll := true.
-					       ]
-					ifFalse:nil).
-
-	cancelAll == true ifTrue:[
-	    AbortOperationRequest raise
-	].
-
-	saveName isNil ifTrue:[
-	    ^ self
-	].
-
-	saveName isEmpty ifTrue:[       "/ can no longer happen ...
-	    (self confirm:'Bad name given - try again ?') ifFalse:[
-		^ self.
-	    ].
-	    stillAsking := true.
-	] ifFalse:[
-	    FileSelectionBox lastFileSelectionDirectory:(saveName asFilename directoryName).
-	    stillAsking := false.
-	].
+        saveName := self
+                        fileNameDialogForFileOut:(resources string:'FileOut ''%1'' as:' with:aClass name allBold)
+                        default:((Smalltalk fileNameForClass:aClass) , '.' , suffix)
+                        withCancelAll:(withCancelAll
+                                        ifTrue:[
+                                                  cancelAll := true.
+                                               ]
+                                        ifFalse:nil).
+
+        cancelAll == true ifTrue:[
+            AbortOperationRequest raise
+        ].
+
+        saveName isNil ifTrue:[
+            ^ self
+        ].
+
+        saveName isEmpty ifTrue:[       "/ can no longer happen ...
+            (self confirm:'Bad name given - try again ?') ifFalse:[
+                ^ self.
+            ].
+            stillAsking := true.
+        ] ifFalse:[
+            FileSelectionBox lastFileSelectionDirectory:(saveName asFilename directoryName).
+            stillAsking := false.
+        ].
     ].
 
     self busyLabel:'saving %1' with:aClass name.
     self withWriteCursorDo:[
-	Class fileOutErrorSignal handle:[:ex |
-	    self warn:'Cannot fileOut: %1\(%2)' with:aClass name with:ex description.
-	    self normalLabel.
-	    ex return.
-	] do:[
-	    formatSymbolOrNil == #sif ifTrue:[
-		SmalltalkInterchangeFileManager newForFileOut
-			fileName: saveName;
-			addClass: aClass;
-			fileOut
-	    ] ifFalse:[
-		formatSymbolOrNil == #xml ifTrue:[
-		    saveName notNil ifTrue:[
-			aClass fileOutXMLAs:saveName.
-		    ] ifFalse:[
-			aClass fileOutXML.
-		    ]
-		] ifFalse:[
-		    formatSymbolOrNil == #binary ifTrue:[
-			aClass binaryFileOutOn:(saveName asFilename writeStream binary) sourceMode:sourceMode
-		    ] ifFalse:[
-			saveName notNil ifTrue:[
-			    aClass fileOutAs:saveName.
-			] ifFalse:[
-			    aClass fileOut.
-			]
-		    ]
-		]
-	    ]
-	].
+        Class fileOutErrorSignal handle:[:ex |
+            self warn:'Cannot fileOut: %1\(%2)' with:aClass name with:ex description.
+            self normalLabel.
+            ex return.
+        ] do:[
+            formatSymbolOrNil == #sif ifTrue:[
+                SmalltalkInterchangeFileManager newForFileOut
+                        fileName: saveName;
+                        addClass: aClass;
+                        fileOut
+            ] ifFalse:[
+                formatSymbolOrNil == #xml ifTrue:[
+                    saveName notNil ifTrue:[
+                        aClass fileOutXMLAs:saveName.
+                    ] ifFalse:[
+                        aClass fileOutXML.
+                    ]
+                ] ifFalse:[
+                    formatSymbolOrNil == #binary ifTrue:[
+                        aClass binaryFileOutOn:(saveName asFilename writeStream binary) sourceMode:sourceMode
+                    ] ifFalse:[
+                        saveName notNil ifTrue:[
+                            aClass fileOutAs:saveName.
+                        ] ifFalse:[
+                            aClass fileOut.
+                        ]
+                    ]
+                ]
+            ]
+        ].
     ].
     self normalLabel.
 
@@ -31585,16 +32522,16 @@
     |dirName|
 
     dirName := self
-		askForDirectoryToFileOut:(resources string:'FileOut %1 class(es) in:'
-						    with:aBunchOfClasses size)
-		default:nil.
+                askForDirectoryToFileOut:(resources string:'FileOut %1 class(es) in:'
+                                                    with:aBunchOfClasses size)
+                default:nil.
     dirName isNil ifTrue:[
-	^ self
-    ].
-    self
-	fileOutEachClassIn:aBunchOfClasses
-	in:dirName
-	withFormat:aFormatSymbolOrNil
+        ^ self
+    ].
+    self
+        fileOutEachClassIn:aBunchOfClasses
+        in:dirName
+        withFormat:aFormatSymbolOrNil
 !
 
 generateUndoableChange:nameOfOperation overClasses:classes via:aBlock
@@ -31602,31 +32539,34 @@
      classes with a generator into a user-provided block.
      If classes is nil, the block is called once with a nil class argument."
 
-    |programmingLanguage generator count dict className codeGeneratorClass|
+    |programmingLanguage generator count dict className codeGeneratorClass
+     packageOrNil|
+
+    packageOrNil := self theSingleSelectedProject.
 
     classes notNil ifTrue:[
-	"/ remove this a.s.a.p
-	"/ check if all classes are either smalltalk or java-script
-	(classes
-	    conform:[:cls |
-		|lang|
-
-		lang := cls programmingLanguage.
-		lang isSmalltalk or:[lang isSTXJavaScript]]
-	) ifFalse:[
-	    Dialog warn:('Sorry.\\For now, this works only for Smalltalk classes.' withCRs).
-	    ^ self.
-	].
+        "/ remove this a.s.a.p
+        "/ check if all classes are either smalltalk or java-script
+        (classes
+            conform:[:cls |
+                |lang|
+
+                lang := cls programmingLanguage.
+                lang isSmalltalk or:[lang isSTXJavaScript]]
+        ) ifFalse:[
+            Dialog warn:('Sorry.\\For now, this works only for Smalltalk classes.' withCRs).
+            ^ self.
+        ].
     ].
 
     programmingLanguage := (classes isEmptyOrNil)
-		    ifTrue:[ SmalltalkLanguage instance ]
-		    ifFalse:[ classes first programmingLanguage ].
+                    ifTrue:[ SmalltalkLanguage instance ]
+                    ifFalse:[ classes first programmingLanguage ].
 
     codeGeneratorClass := programmingLanguage codeGeneratorClass.
     codeGeneratorClass isNil ifTrue:[
-	Dialog warn:('Sorry.\\For now, there seems to be no codeGeneratorClass defined for this language.' withCRs).
-	^ self.
+        Dialog warn:('Sorry.\\For now, there seems to be no codeGeneratorClass defined for this language.' withCRs).
+        ^ self.
     ].
 
     generator := codeGeneratorClass new.
@@ -31634,42 +32574,48 @@
 
     count := 0.
     self withWaitCursorDo:[
-	classes isNil ifTrue:[
-	    aBlock value:generator value:nil.
-	] ifFalse:[
-	    classes do:[:eachClass |
-		eachClass isLoaded ifFalse:[
-		    Transcript showCR:'skipping unloaded class: ' , eachClass name.
-		] ifTrue:[
-		    aBlock value:generator value:eachClass.
-		    count := count + 1.
-		]
-	    ].
-	].
-
-	dict := Dictionary new.
-	dict at:1 put:count.
-	dict at:#numClasses put:count.
-	count ~~ 1 ifTrue:[
-	    dict at:#numClassesOrEmpty put:( ' ' , count printString, ' ').
-	    dict at:#inSingleClassOrEmpty put:''.
-	    dict at:#forSingleClassOrEmpty put:''.
-	    dict at:#sForPlural put:'s'.
-	    dict at:#singleClassNameOrNumberOfClasses put:(count printString , ' classes').
-	] ifFalse:[
-	    className := classes first theNonMetaclass name.
-	    dict at:#numClassesOrEmpty put:' '.
-	    dict at:#inSingleClassOrEmpty put:' in ' , className.
-	    dict at:#forSingleClassOrEmpty put:' for ' , className.
-	    dict at:#sForPlural put:''.
-	    dict at:#singleClassNameOrNumberOfClasses put:className.
-	].
-
-	UserInformation handle:[:ex |
-	    self showInfo:(ex messageText).
-	] do:[
-	    generator executeCollectedChangesNamed:(nameOfOperation expandPlaceholdersWith:dict)
-	]
+        classes isNil ifTrue:[
+            aBlock value:generator value:nil.
+        ] ifFalse:[
+            classes do:[:eachClass |
+                eachClass isLoaded ifFalse:[
+                    Transcript showCR:'skipping unloaded class: ' , eachClass name.
+                ] ifTrue:[
+                    packageOrNil notNil ifTrue:[
+                        Class packageQuerySignal answer:packageOrNil do:[
+                            aBlock value:generator value:eachClass.
+                        ]
+                    ] ifFalse:[
+                        aBlock value:generator value:eachClass.
+                    ].
+                    count := count + 1.
+                ]
+            ].
+        ].
+
+        dict := Dictionary new.
+        dict at:1 put:count.
+        dict at:#numClasses put:count.
+        count ~~ 1 ifTrue:[
+            dict at:#numClassesOrEmpty put:( ' ' , count printString, ' ').
+            dict at:#inSingleClassOrEmpty put:''.
+            dict at:#forSingleClassOrEmpty put:''.
+            dict at:#sForPlural put:'s'.
+            dict at:#singleClassNameOrNumberOfClasses put:(count printString , ' classes').
+        ] ifFalse:[
+            className := classes first theNonMetaclass name.
+            dict at:#numClassesOrEmpty put:' '.
+            dict at:#inSingleClassOrEmpty put:' in ' , className.
+            dict at:#forSingleClassOrEmpty put:' for ' , className.
+            dict at:#sForPlural put:''.
+            dict at:#singleClassNameOrNumberOfClasses put:className.
+        ].
+
+        UserInformation handle:[:ex |
+            self showInfo:(ex messageText).
+        ] do:[
+            generator executeCollectedChangesNamed:(nameOfOperation expandPlaceholdersWith:dict)
+        ]
     ]
 
     "Modified: / 21-01-2012 / 11:11:24 / cg"
@@ -31679,9 +32625,9 @@
     "helper for code generators"
 
     self
-	generateUndoableChange:nameOfOperation
-	overClasses:(self selectedClassesValue)
-	via:aBlock
+        generateUndoableChange:nameOfOperation
+        overClasses:(self selectedClassesValue)
+        via:aBlock
 
     "Created: / 21-01-2012 / 10:22:19 / cg"
 !
@@ -31690,9 +32636,9 @@
     "helper for code generators"
 
     self
-	generateUndoableChange:nameOfOperation
-	overClasses:(self selectedClassesValue)
-	via:aBlock
+        generateUndoableChange:nameOfOperation
+        overClasses:(self selectedClassesValue)
+        via:aBlock
 
     "Modified: / 28-02-2012 / 16:49:22 / cg"
 !
@@ -31706,8 +32652,8 @@
 
     languageOfFirstMethod := selMethods first mclass programmingLanguage.
     (selMethods conform:[:mthd | (mthd mclass programmingLanguage) = languageOfFirstMethod]) ifFalse:[
-	Dialog warn:'All methods must be defined in the same programming language'.
-	^ self
+        Dialog warn:'All methods must be defined in the same programming language'.
+        ^ self
     ].
 
     generator := languageOfFirstMethod codeGeneratorClass new.
@@ -31715,27 +32661,27 @@
 
     count := 0.
     self selectedMethodsDo:[:eachClass |
-	aBlock value:generator value:eachClass.
-	count := count + 1.
+        aBlock value:generator value:eachClass.
+        count := count + 1.
     ].
 
     dict := Dictionary new.
     dict at:1 put:count.
     dict at:#numMethods put:count.
     count ~~ 1 ifTrue:[
-	dict at:#numMethodsOrEmpty put:( ' ' , count printString allBold, ' ').
-	dict at:#inSingleMethodOrEmpty put:''.
-	dict at:#forSingleMethodOrEmpty put:''.
-	dict at:#sForPlural put:'s'.
-	dict at:#singleMethodNameOrNumberOfMethods put:(count printString allBold , ' methods').
-    ] ifFalse:[
-	method := self selectedMethodsValue first.
-	methodName := method mclass nameWithoutPrefix , '>>' , method selector allBold.
-	dict at:#numMethodsOrEmpty put:' '.
-	dict at:#inSingleMethodOrEmpty put:' in ' , methodName.
-	dict at:#forSingleMethodOrEmpty put:' for ' , methodName.
-	dict at:#sForPlural put:''.
-	dict at:#singleMethodNameOrNumberOfMethods put:methodName.
+        dict at:#numMethodsOrEmpty put:( ' ' , count printString allBold, ' ').
+        dict at:#inSingleMethodOrEmpty put:''.
+        dict at:#forSingleMethodOrEmpty put:''.
+        dict at:#sForPlural put:'s'.
+        dict at:#singleMethodNameOrNumberOfMethods put:(count printString allBold , ' methods').
+    ] ifFalse:[
+        method := self selectedMethodsValue first.
+        methodName := method mclass nameWithoutPrefix , '>>' , method selector allBold.
+        dict at:#numMethodsOrEmpty put:' '.
+        dict at:#inSingleMethodOrEmpty put:' in ' , methodName.
+        dict at:#forSingleMethodOrEmpty put:' for ' , methodName.
+        dict at:#sForPlural put:''.
+        dict at:#singleMethodNameOrNumberOfMethods put:methodName.
     ].
 
     generator executeCollectedChangesNamed:(nameOfOperation expandPlaceholdersWith:dict)
@@ -31746,7 +32692,7 @@
 
 initializeSelectedPool
     self selectedClassesValue do:[:cls |
-	cls theNonMetaclass initialize
+        cls theNonMetaclass initialize
     ]
 
     "Created: / 28-05-2012 / 09:49:28 / cg"
@@ -31763,14 +32709,14 @@
 
     cls := self theSingleSelectedClass.
     cls isNil ifTrue:[
-	mthd := self theSingleSelectedMethod.
-	mthd notNil ifTrue:[
-	    cls := mthd mclass
-	]
+        mthd := self theSingleSelectedMethod.
+        mthd notNil ifTrue:[
+            cls := mthd mclass
+        ]
     ].
     cls isNil ifTrue:[
-	Dialog warn:'Please select a class or method.'.
-	^ self.
+        Dialog warn:'Please select a class or method.'.
+        ^ self.
     ].
     self startApplication:cls.
 
@@ -31781,25 +32727,25 @@
     "change the class-category of the given classes"
 
     classes do:[:aClass |
-	"/ must be loaded ...
-	aClass theNonMetaclass autoload
+        "/ must be loaded ...
+        aClass theNonMetaclass autoload
     ].
     classes do:[:eachClass |
-	|cls|
-
-	cls := eachClass theNonMetaclass.
-	cls isPrivate ifFalse:[
-	    environment changeCategoryOf:cls to:newCategory.
-	]
+        |cls|
+
+        cls := eachClass theNonMetaclass.
+        cls isPrivate ifFalse:[
+            environment changeCategoryOf:cls to:newCategory.
+        ]
     ].
 
     LastCategoryRenames isNil ifTrue:[
-	LastCategoryRenames := OrderedCollection new.
+        LastCategoryRenames := OrderedCollection new.
     ].
     LastCategoryRenames remove:newCategory ifAbsent:nil.
     LastCategoryRenames addFirst:newCategory.
     LastCategoryRenames size > 10 ifTrue:[
-	LastCategoryRenames removeLast.
+        LastCategoryRenames removeLast.
     ].
 
     "Modified: / 04-09-2013 / 17:45:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -31809,64 +32755,132 @@
     "change the packageID of the given classes
      (and optionally the packageID of any methods (if they are from different packages)"
 
-    |anyClassMoved anyMethodMoved|
-
-    newProject = PackageId noProjectID ifTrue:[
-	(Dialog confirm:(resources
-			    stringWithCRs:'Do you really want to move those items to "%1"?\\(this will actually make them unassigned)'
-			    with:PackageId noProjectID))
-	ifFalse:[
-	    ^ self
-	].
-    ].
+    |anyClassMoved anyMethodMoved classesNotYetInRepository classesAlreadyInRepository
+     sourceInfoPerClassOfClassesAlreadyInRepository oldPackagePerClass newProjectDefinition|
+
+    (newProject = PackageId noProjectID) ifTrue:[
+        (Dialog confirm:(resources
+                            stringWithCRs:'Do you really want to move those items to "%1"?\\(this will actually make them unassigned)'
+                            with:newProject))
+        ifFalse:[
+            ^ self
+        ].
+    ].
+
+    classesNotYetInRepository := OrderedCollection new.
+    classesAlreadyInRepository := OrderedCollection new.
+    sourceInfoPerClassOfClassesAlreadyInRepository := Dictionary new.
+    oldPackagePerClass := Dictionary new.
+
+    classes do:[:eachClass | 
+        |oldProject theClass mgr|
+
+        theClass := eachClass theNonMetaclass.
+        mgr := theClass sourceCodeManager.
+
+        (theClass sourceCodeManager isNil or:[ (mgr newestRevisionOf:theClass) isNil ]) ifTrue:[
+            classesNotYetInRepository add:eachClass
+        ] ifFalse:[
+            classesAlreadyInRepository add:eachClass.
+            sourceInfoPerClassOfClassesAlreadyInRepository at:eachClass put:(mgr sourceInfoOfClass:eachClass).
+            oldPackagePerClass at:eachClass put:(eachClass package).
+        ].
+    ].
+
     anyClassMoved := false.
     anyMethodMoved := false.
     classes do:[:eachClass |
-	|oldProject theClass|
-
-	theClass := eachClass theNonMetaclass.
-	(oldProject := theClass package) ~= newProject ifTrue:[
-	    theClass package:newProject.
-	    self doMoveMethodsOfClass:theClass fromProject:oldProject toProject:newProject.
-	    theClass allPrivateClassesDo:[:eachPrivateClass |
-		self doMoveMethodsOfClass:eachPrivateClass fromProject:oldProject toProject:newProject.
-	    ].
-	    anyClassMoved := true.
-	].
-	(theClass hasUnassignedExtensions and:[newProject ~= PackageId noProjectID]) ifTrue:[
-	    (self confirm:(resources string:'%1 has unassigned extensions - move those methods as well ?' with:theClass name))
-	    ifTrue:[
-		theClass instAndClassSelectorsAndMethodsDo:[:sel :eachMethod |
-		    eachMethod package = PackageId noProjectID ifTrue:[
-			eachMethod package:newProject.
-			anyMethodMoved := true.
-		    ]
-		].
-	    ].
-	].
-
-	theClass hasExtensions ifTrue:[
-	    (self confirm:(resources string:'%1 has extensions in other packages - move those methods as well ?' with:theClass name))
-	    ifTrue:[
-		theClass instAndClassSelectorsAndMethodsDo:[:sel :eachMethod |
-		    (eachMethod package ~= newProject
-		    and:[eachMethod package ~= PackageId noProjectID]) ifTrue:[
-			eachMethod package:newProject.
-			anyMethodMoved := true.
-		    ]
-		].
-	    ].
-	].
-	anyMethodMoved ifTrue:[
-	    theClass changed:#projectOrganization.
-	    theClass theMetaclass changed:#projectOrganization.
-	    environment changed:#projectOrganization with:(Array with:theClass with:oldProject).
-	].
+        |oldProject theClass|
+
+        theClass := eachClass theNonMetaclass.
+        (oldProject := theClass package) ~= newProject ifTrue:[
+            theClass package:newProject.
+            self doMoveMethodsOfClass:theClass fromProject:oldProject toProject:newProject.
+            theClass allPrivateClassesDo:[:eachPrivateClass |
+                self doMoveMethodsOfClass:eachPrivateClass fromProject:oldProject toProject:newProject.
+            ].
+            anyClassMoved := true.
+        ].
+        (theClass hasUnassignedExtensions and:[newProject ~= PackageId noProjectID]) ifTrue:[
+            (self confirm:(resources string:'%1 has unassigned extensions - move those methods as well?' with:theClass name))
+            ifTrue:[
+                theClass instAndClassSelectorsAndMethodsDo:[:sel :eachMethod |
+                    eachMethod package = PackageId noProjectID ifTrue:[
+                        eachMethod package:newProject.
+                        anyMethodMoved := true.
+                    ]
+                ].
+            ].
+        ].
+
+        theClass hasExtensions ifTrue:[
+            (self confirm:(resources string:'%1 has extensions from other packages - move those methods as well?' with:theClass name))
+            ifTrue:[
+                theClass instAndClassSelectorsAndMethodsDo:[:sel :eachMethod |
+                    (eachMethod package ~= newProject
+                    and:[eachMethod package ~= PackageId noProjectID]) ifTrue:[
+                        eachMethod package:newProject.
+                        anyMethodMoved := true.
+                    ]
+                ].
+            ].
+        ].
+        anyMethodMoved ifTrue:[
+            theClass changed:#projectOrganization.
+            theClass theMetaclass changed:#projectOrganization.
+            environment changed:#projectOrganization with:(Array with:theClass with:oldProject).
+        ].
     ].
     anyClassMoved ifTrue:[
-	environment changed:#projectOrganization.
-    ].
-    self rememberLastProjectMoveTo:newProject
+        environment changed:#projectOrganization.
+    ].
+    self rememberLastProjectMoveTo:newProject.
+
+    (Dialog confirm:(resources string:
+                    (classesAlreadyInRepository notEmpty
+                        ifTrue:['Move the classes in the repository now (recommended)?']
+                        ifFalse:['Check the classes into the repository now?']))
+    ) ifFalse:[ ^ self ].
+
+    "remove version methods"
+    classesAlreadyInRepository do:[:cls |
+        cls theMetaclass methodDictionary keys copy do:[:sel |
+            (AbstractSourceCodeManager isVersionMethodSelector: sel) ifTrue:[
+                cls theMetaclass removeSelector:sel.
+                cls setBinaryRevision:nil.
+            ]
+        ].
+    ].
+
+    "now check them in"
+    SourceCodeManagerUtilities default 
+        checkinClasses: (classesAlreadyInRepository , classesNotYetInRepository)
+        withInfo:'Classes moved to other package'. 
+
+    "remove other containers"
+    sourceInfoPerClassOfClassesAlreadyInRepository keysAndValuesDo:[:class :info |
+        SourceCodeManagerUtilities default removeSourceContainerForClass:class usingSourceInfo:info confirm:true warn:true
+    ].
+
+    (Dialog confirm:(resources string:'Update project definitions now (recommended)?')) ifFalse:[ ^ self ].
+
+    newProjectDefinition := newProject asPackageId projectDefinitionClass.    
+    newProjectDefinition isNil ifTrue:[
+        newProjectDefinition := self projectDefinitionDialogFor:newProject.
+        newProjectDefinition isNil ifTrue:[
+            ^ self
+        ].
+        newProjectDefinition compileDescriptionMethods.
+    ].
+
+    sourceInfoPerClassOfClassesAlreadyInRepository keysAndValuesDo:[:class :info |
+        |oldProjectDefinition|
+
+        oldProjectDefinition := (oldPackagePerClass at:class) asPackageId projectDefinitionClass.
+        oldProjectDefinition excludeClasses:{class} usingCompiler:nil.
+    ].
+
+    newProjectDefinition includeClasses:(classesAlreadyInRepository , classesNotYetInRepository) usingCompiler:nil.   
 
     "Modified: / 02-08-2013 / 14:26:03 / cg"
 !
@@ -31883,7 +32897,7 @@
     "change the packageID of the selected classes
      (and optionally the packageID of any methods (if they are from different packages)"
 
-    self moveClasses:(self selectedClassesValue) toProject:newProject
+    self moveClasses:(self selectedClassesValue collect:[:cls | cls theNonMetaclass]) toProject:newProject
 
     "Modified: / 28-02-2012 / 16:59:35 / cg"
 !
@@ -31892,21 +32906,21 @@
     "show a classes documentation (i.e. open doc-View on it)"
 
     Autoload autoloadFailedSignal handle:[:ex |
-	self warn:'autoload failed.
+        self warn:'autoload failed.
 
 Check your source directory and/or
 the abbreviation file for the classes (correct) shortened name.'.
-	ex return.
+        ex return.
     ] do:[
-	|text v|
-
-	text := HTMLDocGenerator htmlDocOf:aClass.
-	text notNil ifTrue:[
-	    v := HTMLDocumentView
-		    openFullOnText:text
-		    inDirectory:(Smalltalk getSystemFileName:'doc/online/english/classDoc').
-	    v nameSpaceForExecution:(aClass nameSpace).
-	]
+        |text v|
+
+        text := HTMLDocGenerator htmlDocOf:aClass.
+        text notNil ifTrue:[
+            v := HTMLDocumentView
+                    openFullOnText:text
+                    inDirectory:(Smalltalk getSystemFileName:'doc/online/english/classDoc').
+            v nameSpaceForExecution:(aClass nameSpace).
+        ]
     ]
 !
 
@@ -31920,7 +32934,7 @@
 
 printOutClassesWithSelector:aSelector
     self selectedClassesWithWaitCursorDo:[:eachClass |
-	self printOutClass:eachClass withSelector:aSelector
+        self printOutClass:eachClass withSelector:aSelector
     ]
 !
 
@@ -31934,86 +32948,54 @@
 !
 
 recompileClassWithInstrumentation:aClass
-    |cls compile|
-
-    "/ cannot compile stuff which the instrumenter itself needs
-    (aClass == IdentityDictionary) ifTrue:[^ self].
-    (aClass == SmallInteger) ifTrue:[^ self].
-
-    self infoLabelHolder value:('recompiling ',aClass name,'...').
-
-    compile :=
-	[:cls :sel :mthd |
-	    ((mthd sends:#subclassResponsibility)
-	    or:[ (mthd sends:#subclassResponsibility:) ]) ifFalse:[
-		mthd hasPrimitiveCode ifFalse:[
-		    cls recompile:sel usingCompiler:InstrumentingCompiler new
-		]
-	    ]
-	].
-
-    (cls := aClass theNonMetaclass)
-	selectorsAndMethodsDo:[:aSelector :aMethod |
-	    aMethod isInstrumented ifFalse:[
-		compile value:cls value:aSelector value:aMethod.
-	    ].
-	].
-
-    (cls := aClass theMetaclass)
-	selectorsAndMethodsDo:[:aSelector :aMethod |
-	    aMethod category ~= 'documentation' ifTrue:[
-		aMethod isInstrumented ifFalse:[
-		    compile value:cls value:aSelector value:aMethod.
-		]
-	    ]
-	].
-
-    self showCoverageInformation value ifFalse:[
-	true "(Dialog confirm:(resources string:'Turn on coverage display now ?'))" ifTrue:[
-	    self showCoverageInformation value:true
-	].
-    ].
+    self recompileClassWithInstrumentation:aClass askForGlobalCoverage:false
 
     "Created: / 10-08-2010 / 14:36:45 / cg"
     "Modified: / 31-05-2012 / 10:36:42 / cg"
 !
 
 recompileClassWithInstrumentation:aClass askForGlobalCoverage:doAsk
-    |cls compile|
+    |cls compile firstMethod|
 
     "/ cannot compile stuff which the instrumenter itself needs
     (aClass == IdentityDictionary) ifTrue:[^ self].
     (aClass == SmallInteger) ifTrue:[^ self].
 
-"/    aClass theNonMetaclass recompileUsingCompilerClass:InstrumentingCompiler.
-"/    aClass theMetaclass recompileUsingCompilerClass:InstrumentingCompiler.
+    firstMethod := true.
 
     compile :=
-	[:cls :sel :mthd |
-	    ((mthd sends:#subclassResponsibility)
-	    or:[ (mthd sends:#subclassResponsibility:) ]) ifFalse:[
-		mthd hasPrimitiveCode ifFalse:[
-		    cls recompile:sel usingCompiler:InstrumentingCompiler new
-		]
-	    ]
-	].
+        [:cls :sel :mthd |
+            (mthd sendsAny:#( #subclassResponsibility #subclassResponsibility:)) ifFalse:[
+                mthd hasPrimitiveCode ifFalse:[
+                    firstMethod ifTrue:[
+                        self showInfo:('Instrumenting ',aClass name,'...').
+                        firstMethod := false.
+                    ].
+                    cls recompile:sel usingCompiler:InstrumentingCompiler new
+                ]
+            ]
+        ].
 
     (cls := aClass theNonMetaclass)
-	selectorsAndMethodsDo:[:aSelector :aMethod |
-	    compile value:cls value:aSelector value:aMethod.
-	].
+        selectorsAndMethodsDo:[:aSelector :aMethod |
+            aMethod isInstrumented ifFalse:[
+                compile value:cls value:aSelector value:aMethod.
+            ].
+        ].
 
     (cls := aClass theMetaclass)
-	selectorsAndMethodsDo:[:aSelector :aMethod |
-	    aMethod category ~= 'documentation' ifTrue:[
-		compile value:cls value:aSelector value:aMethod.
-	    ]
-	].
+        selectorsAndMethodsDo:[:aSelector :aMethod |
+            aMethod category ~= 'documentation' ifTrue:[
+                aMethod isInstrumented ifFalse:[
+                    compile value:cls value:aSelector value:aMethod.
+                ]
+            ]
+        ].
 
     self showCoverageInformation value ifFalse:[
-	true "(Dialog confirm:(resources string:'Turn on coverage display now ?'))" ifTrue:[
-	    self showCoverageInformation value:true
-	].
+        true "(Dialog confirm:(resources string:'Turn on coverage display now ?'))" ifTrue:[
+            self showCoverageInformation value:true
+        ].
     ].
     doAsk ifTrue:[ self askForGlobalCoverageRecording ].
 
@@ -32023,11 +33005,11 @@
 
 recompileMethodWithInstrumentation:aMethod
     (aMethod sends:#subclassResponsibility) ifFalse:[
-	aMethod hasPrimitiveCode ifFalse:[
-	    aMethod mclass
-		recompile:aMethod selector
-		usingCompiler:InstrumentingCompiler new
-	]
+        aMethod hasPrimitiveCode ifFalse:[
+            aMethod mclass
+                recompile:aMethod selector
+                usingCompiler:InstrumentingCompiler new
+        ]
     ]
 
     "Created: / 10-08-2010 / 14:41:17 / cg"
@@ -32040,38 +33022,38 @@
 
     classesToRemove size == 0 ifTrue:[^ self].
     self withWaitCursorDo:[
-	self canUseRefactoringSupport ifFalse:[
-	    classesToRemove do:[:each |
-		each removeFromSystem.
-	    ].
-	    ^ self.
-	].
-
-	pullUpSubclasses ifTrue:[
-	    classesToRemove do:[:eachClass |
-		self performRefactoring:(RemoveClassRefactoring className:eachClass name).
-	    ]
-	] ifFalse:[
-	    numClasses := classesToRemove size.
-	    numClasses > 1 ifTrue:[
-		numClasses == 2 ifTrue:[
-		    nm := 'Remove ', classesToRemove first theNonMetaclass name , ' and ' , classesToRemove second theNonMetaclass name
-		] ifFalse:[
-		    nm := 'Remove ', numClasses printString , ' classes'
-		]
-	    ] ifFalse:[
-		nm := 'Remove ', classesToRemove first theNonMetaclass name
-	    ].
-	    change := CompositeRefactoryChange named:nm.
-	    classesToRemove do:[:eachClass |
-		eachClass programmingLanguage isSmalltalk ifTrue:[
-		    change removeClass:eachClass
-		] ifFalse:[
-		    eachClass removeFromSystem.
-		]
-	    ].
-	    RefactoryChangeManager performChange:change
-	]
+        self canUseRefactoringSupport ifFalse:[
+            classesToRemove do:[:each |
+                each removeFromSystem.
+            ].
+            ^ self.
+        ].
+
+        pullUpSubclasses ifTrue:[
+            classesToRemove do:[:eachClass |
+                self performRefactoring:(RemoveClassRefactoring className:eachClass name).
+            ]
+        ] ifFalse:[
+            numClasses := classesToRemove size.
+            numClasses > 1 ifTrue:[
+                numClasses == 2 ifTrue:[
+                    nm := 'Remove ', classesToRemove first theNonMetaclass name , ' and ' , classesToRemove second theNonMetaclass name
+                ] ifFalse:[
+                    nm := 'Remove ', numClasses printString , ' classes'
+                ]
+            ] ifFalse:[
+                nm := 'Remove ', classesToRemove first theNonMetaclass name
+            ].
+            change := CompositeRefactoryChange named:nm.
+            classesToRemove do:[:eachClass |
+                eachClass programmingLanguage isSmalltalk ifTrue:[
+                    change removeClass:eachClass
+                ] ifFalse:[
+                    eachClass removeFromSystem.
+                ]
+            ].
+            RefactoryChangeManager performChange:change
+        ]
     ]
 
     "Modified: / 11-09-2013 / 04:38:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -32081,49 +33063,58 @@
     "save a classes documentation to a file"
 
     Autoload autoloadFailedSignal handle:[:ex |
-	self warn:'autoload failed.
+        self warn:'autoload failed.
 
 Check your source directory and/or
 the abbreviation file for the classes (correct) shortened name.'.
-	ex return.
+        ex return.
     ] do:[
-	|fileBox dir saveName|
-
-	fileBox := FileSelectionBox
-			title:(resources string:'save HTML doc of ''%1'' as:' with:aClass name)
-			okText:(resources string:'save')
-			abortText:(resources string:'cancel')
-			action:[:fileName | saveName := fileName].
-	fileBox initialText:((Smalltalk fileNameForClass:aClass) , '.html').
-	dir := FileSelectionBox lastFileSelectionDirectory.
-	dir notNil ifTrue:[
-	    fileBox directory:dir.
-	].
-	fileBox showAtPointer.
-	fileBox destroy.
-	saveName isNil ifTrue:[
-	    ^ self
-	].
-	saveName isEmpty ifTrue:[
-	    self warn:'bad name given'.
-	    ^ self
-	].
-	FileSelectionBox lastFileSelectionDirectory:(saveName asFilename directoryName).
-
-	self saveClassDocumentationFor:aClass as:saveName
+        |fileBox dir saveName|
+
+        saveName := Dialog
+                        requestFileName:(resources string:'save HTML doc of ''%1'' as:' with:aClass name)
+                        default:((Smalltalk fileNameForClass:aClass) , '.html')
+                        ok:'Save' abort:'Cancel'
+                        pattern:'*.html'
+                        fromDirectory:nil
+                        forSave:true
+                        whenBoxCreatedEvaluate:nil.
+
+"/        fileBox := FileSelectionBox
+"/                        title:(resources string:'save HTML doc of ''%1'' as:' with:aClass name)
+"/                        okText:(resources string:'save')
+"/                        abortText:(resources string:'cancel')
+"/                        action:[:fileName | saveName := fileName].
+"/        fileBox initialText:((Smalltalk fileNameForClass:aClass) , '.html').
+"/        dir := FileSelectionBox lastFileSelectionDirectory.
+"/        dir notNil ifTrue:[
+"/            fileBox directory:dir.
+"/        ].
+"/        fileBox showAtPointer.
+"/        fileBox destroy.
+        saveName isNil ifTrue:[
+            ^ self
+        ].
+        saveName isEmpty ifTrue:[
+            self warn:'bad name given'.
+            ^ self
+        ].
+        FileSelectionBox lastFileSelectionDirectory:(saveName asFilename directoryName).
+
+        self saveClassDocumentationFor:aClass as:saveName
     ]
 !
 
 saveClassDocumentationFor:aClass as:aFileName
-    "save a classes documentation to a file"
+    "save a class's documentation to a file"
 
     |text f|
 
-    text := HTMLDocGenerator htmlDocOf:aClass.
+    text := HTMLDocGenerator htmlOfflineDocOf:aClass.
     text notNil ifTrue:[
-	f := aFileName asFilename writeStream.
-	f nextPutAll:text asString.
-	f close.
+        f := aFileName asFilename writeStream.
+        f nextPutAll:text asString.
+        f close.
     ]
 !
 
@@ -32135,32 +33126,32 @@
 
 spawnClassBrowserFor:classes in:where
     "browse selected class(es);
-	where is: #newBrowser - open a new browser showing the classes
-	where is: #newBuffer  - add a new buffer showing the classes"
+        where is: #newBrowser - open a new browser showing the classes
+        where is: #newBuffer  - add a new buffer showing the classes"
 
     ^ self spawnClassBrowserFor:classes label:nil in:where
 !
 
 spawnClassBrowserFor:classes in:where select:doSelect
     "browse selected class(es);
-	where is: #newBrowser - open a new browser showing the classes
-	where is: #newBuffer  - add a new buffer showing the classes"
+        where is: #newBrowser - open a new browser showing the classes
+        where is: #newBuffer  - add a new buffer showing the classes"
 
     ^ self spawnClassBrowserFor:classes label:nil in:where select:doSelect
 !
 
 spawnClassBrowserFor:classes label:titleOrNil in:where
     "browse selected class(es);
-	where is: #newBrowser - open a new browser showing the classes
-	where is: #newBuffer  - add a new buffer showing the classes"
+        where is: #newBrowser - open a new browser showing the classes
+        where is: #newBuffer  - add a new buffer showing the classes"
 
     |allClasses|
 
     allClasses := OrderedCollection new.
     classes do:[:eachClass |
-	eachClass theNonMetaclass withAllPrivateClassesDo:[:everyClass |
-	    allClasses add:everyClass
-	].
+        eachClass theNonMetaclass withAllPrivateClassesDo:[:everyClass |
+            allClasses add:everyClass
+        ].
     ].
     ^ self spawnClassBrowserFor:allClasses label:titleOrNil in:where select:true
 
@@ -32169,170 +33160,170 @@
 
 spawnClassBrowserFor:classes label:labelOrNil in:where select:doSelectIn
     "browse selected class(es);
-	where is: #newBrowser - open a new browser showing the classes
-	where is: #newBuffer  - add a new buffer showing the classes"
+        where is: #newBrowser - open a new browser showing the classes
+        where is: #newBuffer  - add a new buffer showing the classes"
 
     |spec meta allClasses selectedClasses selectedProtocols selectedMethods singleClass doSelect|
 
     doSelect := doSelectIn.
     false "(singleSelection := (classes size == 1))" ifTrue:[
-	spec := #singleClassBrowserSpec.
-	singleClass := classes first.
-	meta := singleClass isMeta.
-	doSelect := true.
-    ] ifFalse:[
-	spec := "#fullBrowserSpec. " #multipleClassBrowserSpec.
-	meta := self meta value ? false.
+        spec := #singleClassBrowserSpec.
+        singleClass := classes first.
+        meta := singleClass isMeta.
+        doSelect := true.
+    ] ifFalse:[
+        spec := "#fullBrowserSpec. " #multipleClassBrowserSpec.
+        meta := self meta value ? false.
     ].
 
     allClasses := classes collect:[:cls | cls theNonMetaclass].
     doSelect ifTrue:[
-	selectedClasses := classes copy.
-	navigationState notNil ifTrue:[
-	    selectedProtocols := self selectedProtocols value copy.
-	    selectedMethods := self selectedMethodsValue copy.
-	    (selectedMethods size > 0
-	    and:[ selectedProtocols size == 0 ]) ifTrue:[
-		selectedProtocols := (selectedMethods collect:[:each | each category] as:Set) asOrderedCollection
-	    ].
-	]
-    ].
-
-    ^ self
-	newBrowserOrBufferDependingOn:where
-	label:labelOrNil
-	forSpec:spec
-	setupWith:[:brwsr |
-	    brwsr immediateUpdate value:true.
-	    brwsr classListGenerator value:allClasses.
-	    brwsr meta value:meta.
-	    doSelect ifTrue:[
-		brwsr selectClasses:selectedClasses.
-		selectedProtocols size > 0 ifTrue:[
-		    brwsr selectProtocols:selectedProtocols.
-		].
-		brwsr selectMethods:selectedMethods.
-	    ].
-	    brwsr immediateUpdate value:false.
-
-	    "/ kludge - enforce generator update when meta changes
-	    brwsr meta onChangeEvaluate:[ brwsr classListGenerator changed ].
-	]
+        selectedClasses := classes copy.
+        navigationState notNil ifTrue:[
+            selectedProtocols := self selectedProtocols value copy.
+            selectedMethods := self selectedMethodsValue copy.
+            (selectedMethods size > 0
+            and:[ selectedProtocols size == 0 ]) ifTrue:[
+                selectedProtocols := (selectedMethods collect:[:each | each category] as:Set) asOrderedCollection
+            ].
+        ]
+    ].
+
+    ^ self
+        newBrowserOrBufferDependingOn:where
+        label:labelOrNil
+        forSpec:spec
+        setupWith:[:brwsr |
+            brwsr immediateUpdate value:true.
+            brwsr classListGenerator value:allClasses.
+            brwsr meta value:meta.
+            doSelect ifTrue:[
+                brwsr selectClasses:selectedClasses.
+                selectedProtocols size > 0 ifTrue:[
+                    brwsr selectProtocols:selectedProtocols.
+                ].
+                brwsr selectMethods:selectedMethods.
+            ].
+            brwsr immediateUpdate value:false.
+
+            "/ kludge - enforce generator update when meta changes
+            brwsr meta onChangeEvaluate:[ brwsr classListGenerator changed ].
+        ]
 
     "Modified: / 26-07-2012 / 23:00:31 / cg"
 !
 
 spawnClassBrowserForSearch:searchBlock sortBy:sortByWhat in:openHow label:lbl
     "browse some class(es);
-	openHow is: #newBrowser - open a new browser showing the method(s)
-	openHow is: #newBuffer  - add a new buffer showing the method(s)
-
-	and sortByWhat is:
-	    nil
-	or  #class
-    "
-
-    ^ self
-	spawnClassBrowserForSearch:searchBlock
-	spec:#multipleClassBrowserSpec
-	sortBy:sortByWhat in:openHow label:lbl
+        openHow is: #newBrowser - open a new browser showing the method(s)
+        openHow is: #newBuffer  - add a new buffer showing the method(s)
+
+        and sortByWhat is:
+            nil
+        or  #class
+    "
+
+    ^ self
+        spawnClassBrowserForSearch:searchBlock
+        spec:#multipleClassBrowserSpec
+        sortBy:sortByWhat in:openHow label:lbl
 
     "Modified: / 2.11.2001 / 09:57:35 / cg"
 !
 
 spawnClassBrowserForSearch:searchBlock spec:spec sortBy:sortByWhat in:openHow label:lbl
     "browse some class(es);
-	openHow is: #newBrowser - open a new browser showing the method(s)
-	openHow is: #newBuffer  - add a new buffer showing the method(s)
-
-	and sortByWhat is:
-	    nil
-	or  #class
-    "
-
-    ^ self
-	spawnClassBrowserForSearch:searchBlock
-	spec:spec
-	sortBy:sortByWhat in:openHow label:lbl
-	autoSelectIfOne:true
+        openHow is: #newBrowser - open a new browser showing the method(s)
+        openHow is: #newBuffer  - add a new buffer showing the method(s)
+
+        and sortByWhat is:
+            nil
+        or  #class
+    "
+
+    ^ self
+        spawnClassBrowserForSearch:searchBlock
+        spec:spec
+        sortBy:sortByWhat in:openHow label:lbl
+        autoSelectIfOne:true
 
     "Modified: / 2.11.2001 / 09:58:01 / cg"
 !
 
 spawnClassBrowserForSearch:searchBlock spec:spec sortBy:sortByWhat in:openHow label:lbl autoSelectIfOne:doAutoSelectIfOne
     "browse some class(es);
-	openHow is: #newBrowser - open a new browser showing the method(s)
-	openHow is: #newBuffer  - add a new buffer showing the method(s)
-
-	and sortByWhat is:
-	    nil
-	or  #class
-    "
-
-    ^ self
-	spawnClassBrowserForSearch:searchBlock
-	spec:spec
-	sortBy:sortByWhat in:openHow label:lbl
-	autoSelectIfOne:doAutoSelectIfOne callBack:nil
+        openHow is: #newBrowser - open a new browser showing the method(s)
+        openHow is: #newBuffer  - add a new buffer showing the method(s)
+
+        and sortByWhat is:
+            nil
+        or  #class
+    "
+
+    ^ self
+        spawnClassBrowserForSearch:searchBlock
+        spec:spec
+        sortBy:sortByWhat in:openHow label:lbl
+        autoSelectIfOne:doAutoSelectIfOne callBack:nil
 
     "Modified: / 5.11.2001 / 09:36:13 / cg"
 !
 
 spawnClassBrowserForSearch:searchBlock spec:spec sortBy:sortByWhat in:openHow label:lbl autoSelectIfOne:doAutoSelectIfOne callBack:callBack
     "browse some class(es);
-	openHow is: #newBrowser - open a new browser showing the method(s)
-	openHow is: #newBuffer  - add a new buffer showing the method(s)
-
-	and sortByWhat is:
-	    nil
-	or  #class
+        openHow is: #newBrowser - open a new browser showing the method(s)
+        openHow is: #newBuffer  - add a new buffer showing the method(s)
+
+        and sortByWhat is:
+            nil
+        or  #class
     "
 
     |initialList|
 
     initialList := searchBlock value.
     initialList size == 0 ifTrue:[
-	self warn:(lbl , ' - none found.').
-	^ nil
-    ].
-
-    ^ self
-	newBrowserOrBufferDependingOn:openHow
-	label:lbl
-	forSpec:spec
-	setupWith:[:brwsr |
-	    |generator theClassList|
-
-	    generator := Iterator on:[:whatToDo |
-					    initialList size > 0 ifTrue:[
-						theClassList := initialList.
-						initialList := nil
-					    ] ifFalse:[
-						theClassList isNil ifTrue:[
-						    theClassList := searchBlock value.
-						].
-					    ].
-					    theClassList do:[:aClass |
-						whatToDo value:aClass
-					    ].
-					    theClassList := nil.
-				      ].
-
-	    sortByWhat notNil ifTrue:[brwsr sortBy value:sortByWhat].
-	    brwsr classListGenerator value:generator.
-	    "/ auto-select the first class, if there is only one
-
-	    callBack notNil ifTrue:[callBack value:brwsr].
-	    initialList isNil ifTrue:[
-		"/ newBuffer will evaluate the generator later;
-		"/ newBrowser might have it already evaluated ... (sigh)
-		initialList := theClassList := searchBlock value
-	    ].
-	    (doAutoSelectIfOne and:[initialList size == 1]) ifTrue:[
-		brwsr selectClasses:initialList.
-		brwsr classSelectionChanged.
-	    ].
-	]
+        self warn:(lbl , ' - none found.').
+        ^ nil
+    ].
+
+    ^ self
+        newBrowserOrBufferDependingOn:openHow
+        label:lbl
+        forSpec:spec
+        setupWith:[:brwsr |
+            |generator theClassList|
+
+            generator := Iterator on:[:whatToDo |
+                                            initialList size > 0 ifTrue:[
+                                                theClassList := initialList.
+                                                initialList := nil
+                                            ] ifFalse:[
+                                                theClassList isNil ifTrue:[
+                                                    theClassList := searchBlock value.
+                                                ].
+                                            ].
+                                            theClassList do:[:aClass |
+                                                whatToDo value:aClass
+                                            ].
+                                            theClassList := nil.
+                                      ].
+
+            sortByWhat notNil ifTrue:[brwsr sortBy value:sortByWhat].
+            brwsr classListGenerator value:generator.
+            "/ auto-select the first class, if there is only one
+
+            callBack notNil ifTrue:[callBack value:brwsr].
+            initialList isNil ifTrue:[
+                "/ newBuffer will evaluate the generator later;
+                "/ newBrowser might have it already evaluated ... (sigh)
+                initialList := theClassList := searchBlock value
+            ].
+            (doAutoSelectIfOne and:[initialList size == 1]) ifTrue:[
+                brwsr selectClasses:initialList.
+                brwsr classSelectionChanged.
+            ].
+        ]
 
     "Modified: / 3.11.2001 / 14:11:05 / cg"
     "Created: / 5.11.2001 / 09:35:52 / cg"
@@ -32344,13 +33335,13 @@
     |numClasses lbl classes|
 
     (numClasses := aCollectionOfClasses size) == 1 ifTrue:[
-	lbl := 'References to %1 and its subclasses' bindWith:aCollectionOfClasses first theNonMetaclass.
-    ] ifFalse:[
-	lbl := 'References to %1 classes and their subclasses' bindWith:numClasses
+        lbl := 'References to %1 and its subclasses' bindWith:aCollectionOfClasses first theNonMetaclass.
+    ] ifFalse:[
+        lbl := 'References to %1 classes and their subclasses' bindWith:numClasses
     ].
     classes := Set new.
     aCollectionOfClasses do:[:eachClassInQuestion |
-	classes addAll:(eachClassInQuestion theNonMetaclass withAllSubclasses)
+        classes addAll:(eachClassInQuestion theNonMetaclass withAllSubclasses)
     ].
     ^ self spawnClassReferencesBrowserFor:(classes asOrderedCollection) label:lbl in:openHow
 !
@@ -32362,8 +33353,8 @@
 
     projects := Set new.
     aCollectionOfClasses do:[:eachClass |
-	projects add:eachClass package.
-	eachClass instAndClassSelectorsAndMethodsDo:[:sel :mthd | projects add:(mthd package)].
+        projects add:eachClass package.
+        eachClass instAndClassSelectorsAndMethodsDo:[:sel :mthd | projects add:(mthd package)].
     ].
     self spawnProjectBrowserFor:projects in:openHow
 
@@ -32376,9 +33367,9 @@
     |lbl numClasses|
 
     (numClasses := aCollectionOfClasses size) == 1 ifTrue:[
-	lbl := 'References to ' , aCollectionOfClasses first name
-    ] ifFalse:[
-	lbl := 'References to any of %1 classes' bindWith:numClasses
+        lbl := 'References to ' , aCollectionOfClasses first name
+    ] ifFalse:[
+        lbl := 'References to any of %1 classes' bindWith:numClasses
     ].
     ^ self spawnClassReferencesBrowserFor:aCollectionOfClasses label:lbl in:openHow
 !
@@ -32389,97 +33380,121 @@
     |searchBlock brwsr patternsForCodeSearch|
 
     searchBlock := [
-	|allRefs|
-
-	allRefs := IdentitySet new.
-	aCollectionOfClasses do:[:eachClassInQuestion |
-	    |findRefs classesNameSpace eachNonMetaClassInQuestion symOutsideNamespace symInsideNamespace symInsideOwner refsHere|
-
-	    eachNonMetaClassInQuestion := eachClassInQuestion theNonMetaclass.
-	    classesNameSpace := eachNonMetaClassInQuestion nameSpace.
-
-	    findRefs :=
-		[:setOfClasses :sym :fullNameSym|
-		    self class
-			findMethodsIn:setOfClasses
-			where:[:cls :mthdIn :sel |
-			    |mthd mSource isCandidate isReference usedGlobals|
-
-			    mthd := mthdIn originalMethodIfWrapped.
-
-			    "/ kludge: Lazy methods do not include symbols in the literal array - sigh
-			    mthd isLazyMethod ifTrue:[
-				mSource := mthd source.
-				isCandidate := mSource notNil and:[ mSource includesString:sym].
-			    ] ifFalse:[
-				isCandidate := (mthd referencesLiteral:sym)
-						or:[mthd referencesLiteral:fullNameSym]
-			    ].
-			    isReference := false.
-			    isCandidate ifTrue:[
-				usedGlobals := mthd usedGlobals.
-				isReference := (usedGlobals includes:sym) or:[usedGlobals includes:fullNameSym].
-				isReference ifFalse:[
-				    (mthd referencesLiteral:classesNameSpace name) ifTrue:[
-					isReference := mthd sendsAny:#(#'at:' #'at:ifAbsent:' #'classNamed:')
-				    ].
-				    isReference ifFalse:[
-					classesNameSpace ~= Smalltalk ifTrue:[
-					    (mthd referencesLiteral:#Smalltalk) ifTrue:[
-						isReference := mthd sendsAny:#(#'at:' #'at:ifAbsent:' #'classNamed:')
-					    ].
-					]
-				    ]
-				]
-			    ].
-			    isReference
-			].
-		].
-
-	    symOutsideNamespace := eachNonMetaClassInQuestion name.
-
-	    refsHere := findRefs value:(environment allClasses) value:symOutsideNamespace value:symOutsideNamespace.
-	    allRefs addAll:refsHere.
-
-	    (eachNonMetaClassInQuestion nameSpace notNil
-	    and:[ eachNonMetaClassInQuestion nameSpace ~~ Smalltalk ]) ifTrue:[
-		symInsideNamespace := eachNonMetaClassInQuestion nameWithoutNameSpacePrefix asSymbol.
-		refsHere := findRefs
-				value:(eachNonMetaClassInQuestion topNameSpace allClassesWithAllPrivateClasses)
-				value:symInsideNamespace
-				value:symOutsideNamespace.
-		allRefs addAll:refsHere.
-	    ].
-	    (eachNonMetaClassInQuestion owningClass notNil) ifTrue:[
-		symInsideOwner := eachNonMetaClassInQuestion nameWithoutPrefix asSymbol.
-		refsHere := findRefs
-				value:(Array with:eachNonMetaClassInQuestion owningClass)
-				value:symInsideOwner
-				value:symOutsideNamespace.
-		allRefs addAll:refsHere.
-	    ].
-	].
-	allRefs
+        |allRefs|
+
+        allRefs := IdentitySet new.
+        aCollectionOfClasses do:[:eachClassInQuestion |
+            |findRefs classesNameSpace eachNonMetaClassInQuestion symOutsideNamespace symInsideNamespace symInsideOwner refsHere|
+
+            eachNonMetaClassInQuestion := eachClassInQuestion theNonMetaclass.
+            classesNameSpace := eachNonMetaClassInQuestion nameSpace.
+
+            findRefs :=
+                [:setOfClasses :sym :fullNameSym|
+                    |localNS localNSSym localNameSym|
+
+                    (fullNameSym includesString:'::') ifTrue:[
+                        localNSSym := fullNameSym copyTo:(fullNameSym lastIndexOfSubCollection:'::')-1.
+                        (localNSSym := localNSSym asSymbolIfInterned) notNil ifTrue:[
+                            localNS := Smalltalk at:localNSSym.
+                            localNameSym := fullNameSym copyFrom:(fullNameSym lastIndexOfSubCollection:'::')+2.
+                            localNameSym := localNameSym asSymbolIfInterned
+                        ].
+                    ].
+
+                    self class
+                        findMethodsIn:setOfClasses
+                        where:[:cls :mthdIn :sel |
+                            |mthd mSource isCandidate isReference usedGlobals|
+
+                            mthd := mthdIn originalMethodIfWrapped.
+
+                            "/ kludge: Lazy methods do not include symbols in the literal array - sigh
+                            mthd isLazyMethod ifTrue:[
+                                mSource := mthd source.
+                                isCandidate := mSource notNil and:[ mSource includesString:sym].
+                            ] ifFalse:[
+                                isCandidate := (mthd referencesLiteral:sym)
+                                                or:[(mthd referencesLiteral:fullNameSym)
+                                                or:[ localNameSym notNil
+                                                            and:[(mthd referencesLiteral:localNameSym)
+                                                            and:[ mthd nameSpace = localNS ]]]].
+                            ].
+                            isReference := false.
+                            isCandidate ifTrue:[
+                                usedGlobals := mthd usedGlobals.
+                                isReference := (usedGlobals includes:sym) or:[usedGlobals includes:fullNameSym].
+                                isReference ifFalse:[
+                                    (mthd referencesLiteral:classesNameSpace name) ifTrue:[
+                                        isReference := mthd sendsAny:#(#'at:' #'at:ifAbsent:' #'classNamed:')
+                                    ].
+                                    isReference ifFalse:[
+                                        classesNameSpace ~= Smalltalk ifTrue:[
+                                            (mthd referencesLiteral:#Smalltalk) ifTrue:[
+                                                isReference := mthd sendsAny:#(#'at:' #'at:ifAbsent:' #'classNamed:')
+                                            ].
+                                        ].
+                                    ]
+                                ]
+                            ].
+                            isReference ifFalse:[
+                                "/ also search for class-refs in specs
+                                mthd hasCanvasResource ifTrue:[
+                                    isReference := (mthd refersToLiteral:sym)
+                                                    or:[(mthd refersToLiteral:fullNameSym)
+                                                    or:[ localNameSym notNil
+                                                                and:[(mthd refersToLiteral:localNameSym)
+                                                                and:[ mthd mclass nameSpace = localNS ]]]].
+                                ].
+                            ].
+                            isReference
+                        ].
+                ].
+
+            symOutsideNamespace := eachNonMetaClassInQuestion name.
+
+            refsHere := findRefs value:(environment allClasses) value:symOutsideNamespace value:symOutsideNamespace.
+            allRefs addAll:refsHere.
+
+            (eachNonMetaClassInQuestion nameSpace notNil
+            and:[ eachNonMetaClassInQuestion nameSpace ~~ Smalltalk ]) ifTrue:[
+                symInsideNamespace := eachNonMetaClassInQuestion nameWithoutNameSpacePrefix asSymbol.
+                refsHere := findRefs
+                                value:(eachNonMetaClassInQuestion topNameSpace allClassesWithAllPrivateClasses)
+                                value:symInsideNamespace
+                                value:symOutsideNamespace.
+                allRefs addAll:refsHere.
+            ].
+            (eachNonMetaClassInQuestion owningClass notNil) ifTrue:[
+                symInsideOwner := eachNonMetaClassInQuestion nameWithoutPrefix asSymbol.
+                refsHere := findRefs
+                                value:(Array with:eachNonMetaClassInQuestion owningClass)
+                                value:symInsideOwner
+                                value:symOutsideNamespace.
+                allRefs addAll:refsHere.
+            ].
+        ].
+        allRefs
     ].
 
     brwsr := self spawnMethodBrowserForSearch:searchBlock sortBy:#class in:openHow label:lbl.
     brwsr notNil ifTrue:[
-	"/ setup an autosearch action - when selected, the codeView automatically searches
-	"/ the refactory-searcher is not aware of namespaces (simply compares globals by name);
-	"/ therefore, we setup a multiple pattern search here (sigh)
-	patternsForCodeSearch := OrderedCollection new.
-	aCollectionOfClasses do:[:each |
-	    |nm nm2 nm3|
-
-	    nm := each theNonMetaclass name.
-	    nm2 := each theNonMetaclass nameWithoutPrefix.
-	    nm3 := each theNonMetaclass nameWithoutNameSpacePrefix.
-	    patternsForCodeSearch add:nm.
-	    nm2 ~= nm ifTrue:[ patternsForCodeSearch add:nm2 ].
-	    nm3 ~= nm ifTrue:[ patternsForCodeSearch add:nm3 ].
-	].
-
-	brwsr autoSearchCodePatterns:patternsForCodeSearch "autoSearchPattern:singleClassName ignoreCase:false".
+        "/ setup an autosearch action - when selected, the codeView automatically searches
+        "/ the refactory-searcher is not aware of namespaces (simply compares globals by name);
+        "/ therefore, we setup a multiple pattern search here (sigh)
+        patternsForCodeSearch := OrderedCollection new.
+        aCollectionOfClasses do:[:each |
+            |nm nm2 nm3|
+
+            nm := each theNonMetaclass name.
+            nm2 := each theNonMetaclass nameWithoutPrefix.
+            nm3 := each theNonMetaclass nameWithoutNameSpacePrefix.
+            patternsForCodeSearch add:nm.
+            nm2 ~= nm ifTrue:[ patternsForCodeSearch add:nm2 ].
+            nm3 ~= nm ifTrue:[ patternsForCodeSearch add:nm3 ].
+        ].
+
+        brwsr autoSearchCodePatterns:patternsForCodeSearch "autoSearchPattern:singleClassName ignoreCase:false".
     ].
 
     "Modified (format): / 25-11-2011 / 14:02:17 / cg"
@@ -32487,8 +33502,8 @@
 
 spawnMultipleClassBrowserFor:classes sortBy:sortHow in:where
     "browse selected class(es);
-	where is: #newBrowser - open a new browser showing the classes
-	where is: #newBuffer  - add a new buffer showing the classes"
+        where is: #newBrowser - open a new browser showing the classes
+        where is: #newBuffer  - add a new buffer showing the classes"
 
     |allClasses
      "/ selectedClasses selectedProtocols selectedMethods
@@ -32500,31 +33515,31 @@
 "/    selectedMethods := self selectedMethods value copy.
 
     ^ self
-	newBrowserOrBufferDependingOn:where
-	label:nil
-	forSpec:#multipleClassBrowserSpec
-	setupWith:[:brwsr |
-	    brwsr sortBy value:sortHow.
-	    brwsr immediateUpdate value:true.
-	    brwsr classListGenerator value:allClasses.
-
-	    brwsr meta value:(self meta value).
+        newBrowserOrBufferDependingOn:where
+        label:nil
+        forSpec:#multipleClassBrowserSpec
+        setupWith:[:brwsr |
+            brwsr sortBy value:sortHow.
+            brwsr immediateUpdate value:true.
+            brwsr classListGenerator value:allClasses.
+
+            brwsr meta value:(self meta value).
 "/            brwsr selectClasses:selectedClasses.
 "/            brwsr selectProtocols:selectedProtocols.
 "/            brwsr selectMethods:selectedMethods.
 
-	    "/ kludge - enforce generator update when meta changes
-	    brwsr immediateUpdate value:false.
-	    brwsr meta onChangeEvaluate:[ brwsr classListGenerator changed ].
-	]
+            "/ kludge - enforce generator update when meta changes
+            brwsr immediateUpdate value:false.
+            brwsr meta onChangeEvaluate:[ brwsr classListGenerator changed ].
+        ]
 
     "Modified: / 1.3.2000 / 11:54:08 / cg"
 !
 
 spawnSingleClassBrowserFor:classes in:where
     "browse selected class(es) in a single class (classlist) browser
-	where is: #newBrowser - open a new browser showing the classes
-	where is: #newBuffer  - add a new buffer showing the classes"
+        where is: #newBrowser - open a new browser showing the classes
+        where is: #newBuffer  - add a new buffer showing the classes"
 
     ^ self spawnSingleClassBrowserFor:classes label:nil in:where
 
@@ -32534,8 +33549,8 @@
 
 spawnSingleClassBrowserFor:class label:titleOrNil in:where
     "browse selected class(es) in a single class (classlist) browser
-	where is: #newBrowser - open a new browser showing the classes
-	where is: #newBuffer  - add a new buffer showing the classes"
+        where is: #newBrowser - open a new browser showing the classes
+        where is: #newBuffer  - add a new buffer showing the classes"
 
     ^ self spawnSingleClassBrowserFor:class label:titleOrNil in:where select:true
 
@@ -32545,8 +33560,8 @@
 
 spawnSingleClassBrowserFor:class label:labelOrNil in:where select:doSelectIn
     "browse selected class(es);
-	where is: #newBrowser - open a new browser showing the class
-	where is: #newBuffer  - add a new buffer showing the class"
+        where is: #newBrowser - open a new browser showing the class
+        where is: #newBuffer  - add a new buffer showing the class"
 
     |spec meta allClasses selectedClasses selectedProtocols selectedMethods singleClass doSelect|
 
@@ -32560,37 +33575,37 @@
 
     allClasses := Array with: singleClass theNonMetaclass.
     doSelect ifTrue:[
-	selectedClasses := Array with: singleClass.
-	navigationState notNil ifTrue:[
-	    selectedProtocols := self selectedProtocols value copy.
-	    selectedMethods := self selectedMethodsValue copy.
-	    (selectedMethods size > 0
-	     and:[ selectedProtocols size == 0 ]) ifTrue:[
-		selectedProtocols := (selectedMethods collect:[:each | each category] as:Set) asOrderedCollection
-	    ].
-	]
-    ].
-
-    ^ self
-	newBrowserOrBufferDependingOn:where
-	label:labelOrNil
-	forSpec:spec
-	setupWith:[:brwsr |
-	    brwsr immediateUpdate value:true.
-	    brwsr classListGenerator value:allClasses.
-	    brwsr meta value:meta.
-	    doSelect ifTrue:[
-		brwsr selectClasses:selectedClasses.
-		selectedProtocols size > 0 ifTrue:[
-		    brwsr selectProtocols:selectedProtocols.
-		].
-		brwsr selectMethods:selectedMethods.
-	    ].
-	    brwsr immediateUpdate value:false.
-
-	    "/ kludge - enforce generator update when meta changes
-	    brwsr meta onChangeEvaluate:[ brwsr classListGenerator changed ].
-	]
+        selectedClasses := Array with: singleClass.
+        navigationState notNil ifTrue:[
+            selectedProtocols := self selectedProtocols value copy.
+            selectedMethods := self selectedMethodsValue copy.
+            (selectedMethods size > 0
+             and:[ selectedProtocols size == 0 ]) ifTrue:[
+                selectedProtocols := (selectedMethods collect:[:each | each category] as:Set) asOrderedCollection
+            ].
+        ]
+    ].
+
+    ^ self
+        newBrowserOrBufferDependingOn:where
+        label:labelOrNil
+        forSpec:spec
+        setupWith:[:brwsr |
+            brwsr immediateUpdate value:true.
+            brwsr classListGenerator value:allClasses.
+            brwsr meta value:meta.
+            doSelect ifTrue:[
+                brwsr selectClasses:selectedClasses.
+                selectedProtocols size > 0 ifTrue:[
+                    brwsr selectProtocols:selectedProtocols.
+                ].
+                brwsr selectMethods:selectedMethods.
+            ].
+            brwsr immediateUpdate value:false.
+
+            "/ kludge - enforce generator update when meta changes
+            brwsr meta onChangeEvaluate:[ brwsr classListGenerator changed ].
+        ]
 
     "Created: / 22-07-2011 / 18:37:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 28-02-2012 / 16:36:30 / cg"
@@ -32604,21 +33619,32 @@
     all := IdentitySet new.
     allOrdered := OrderedCollection new.
     self selectedNonMetaclassesDo:[:each |
-	each withAllSubclasses do:[:eachClass |
-	    (all includesIdentical:eachClass) ifFalse:[
-		all add:eachClass.
-		allOrdered add:eachClass
-	    ]
-	]
+        each withAllSubclasses do:[:eachClass |
+            (all includesIdentical:eachClass) ifFalse:[
+                all add:eachClass.
+                allOrdered add:eachClass
+            ]
+        ].
+        "/ For Java interfaces, spawn browser on all classes / interfaces
+        "/ that implement that interface
+        (each isJavaClass and:[ each isInterface ]) ifTrue:[ 
+            self environment allClassesDo:[ :eachClass |
+                (eachClass isJavaClass and:[ eachClass interfaces includesIdentical: each ]) ifTrue:[ 
+                    all add: eachClass.
+                    allOrdered add: eachClass.
+                ].
+            ].
+        ].
     ].
 
     (all removeAllFoundIn:self selectedClassesValue; yourself) isEmpty ifTrue:[
-	self information:'No additional subclasses (same as selected).'.
-	^ self
+        self information:'No additional subclasses (same as selected).'.
+        ^ self
     ].
     brwsr := self spawnMultipleClassBrowserFor:allOrdered sortBy:#doNotSort in:how.
 
     "Modified: / 28-02-2012 / 16:53:07 / cg"
+    "Modified: / 21-01-2015 / 19:20:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 spawnWithAllSuperclassesIn:how
@@ -32629,22 +33655,39 @@
     all := IdentitySet new.
     allOrdered := OrderedCollection new.
     self selectedNonMetaclassesDo:[:each |
-	each withAllSuperclasses reverse do:[:eachClass |
-	    (all includesIdentical:eachClass) ifFalse:[
-		all add:eachClass.
-		allOrdered add:eachClass
-	    ]
-	]
+        each withAllSuperclasses reverseDo:[:eachClass |
+            (all includesIdentical:eachClass) ifFalse:[
+                all add:eachClass.
+                allOrdered add:eachClass
+            ]
+        ]
     ].
     (all removeAllFoundIn:(self selectedClassesValue); yourself) isEmpty ifTrue:[
-	self information:'No additional superclasses (same as selected).'.
-	^ self
+        self information:'No additional superclasses (same as selected).'.
+        ^ self
     ].
     brwsr := self spawnMultipleClassBrowserFor:allOrdered sortBy:#doNotSort in:how.
 
     "Modified: / 28-02-2012 / 16:53:10 / cg"
 !
 
+spawnWithClassesCoveredByTestcaseIn:how
+    "open a new browser showing the classes which are covered
+     by the selected testcase classes"
+
+    |allCovered brwsr|
+
+    allCovered := IdentitySet new.
+
+    self selectedNonMetaclassesDo:[:each |
+        each isTestCaseLike ifTrue:[
+            allCovered addAll:each coveredClasses
+        ]
+    ].
+    allCovered := allCovered asOrderedCollection sort:[:a :b | a name < b name].
+    brwsr := self spawnMultipleClassBrowserFor:allCovered sortBy:nil in:how.
+!
+
 spawnWithCommonSuperclassIn:how
     "open a new browser showing the selected classes' common superclass"
 
@@ -32708,17 +33751,17 @@
 
     class := self theSingleSelectedClass.
     class isNil ifTrue:[
-	class := self classHierarchyTopClass value.
-	class notNil ifTrue:[
-	    self meta value ifTrue:[
-		class := class theMetaclass.
-	    ] ifFalse:[
-		class := class theNonMetaclass.
-	    ]
-	].
+        class := self classHierarchyTopClass value.
+        class notNil ifTrue:[
+            self meta value ifTrue:[
+                class := class theMetaclass.
+            ] ifFalse:[
+                class := class theNonMetaclass.
+            ]
+        ].
     ].
     class notNil ifTrue:[
-	^ Array with:class
+        ^ Array with:class
     ].
     ^ self selectedClasses
 ! !
@@ -32735,9 +33778,9 @@
     "include (add to classList) a class."
 
     self
-	includeClasses:(Array with: aClass)
-	inProject:aClass projectDefinitionClass
-	usingManager:compiler
+        includeClasses:(Array with: aClass)
+        inProject:aClass projectDefinitionClass
+        usingManager:compiler
 
     "Created: / 21-12-2011 / 20:17:48 / cg"
 !
@@ -32761,8 +33804,8 @@
 
     knownTags := Set new.
     aCollectionOfClasses do:[:eachClass |
-	thisClassesTags := eachClass sourceCodeManager knownTagsFor:eachClass.
-	knownTags addAll:thisClassesTags.
+        thisClassesTags := eachClass sourceCodeManager knownTagsFor:eachClass.
+        knownTags addAll:thisClassesTags.
     ].
     ^ knownTags asSortedCollection.
 
@@ -32783,125 +33826,123 @@
     nm := aClass name.
     mgr := SourceCodeManagerUtilities sourceCodeManagerFor:aClass.
     mgr isNil ifTrue:[
-	^ false
+        ^ false
     ].
     rev := aClass binaryRevision.
     rev2 := aClass revision.
     rev isNil ifTrue:[
-	rev := rev2
+        rev := rev2
     ].
     rev isNil ifTrue:[
-	"/
-	"/ class not in repository - allow compare against any other containers newest contents
-	"/
-	self normalLabel.
-
-	pkg := aClass package.
-	(pkg notNil and:[pkg ~= PackageId noProjectID]) ifTrue:[
-	    containerModule := pkg upTo:$:.
-	    containerPackage := pkg copyFrom:(containerModule size + 2).
-	].
-	containerModule size == 0 ifTrue:[
-	    containerModule := (SourceCodeManagerUtilities lastModule) ? Project current repositoryModule.
-	].
-	containerPackage size == 0 ifTrue:[
-	    containerPackage := (SourceCodeManagerUtilities lastPackage) ? Project current package.
-	].
-	rslt := SourceCodeManagerUtilities default
-	    askForContainer:(resources string:'The class seems to have no repository information.\\Do you want to compare it against an existing containers contents ?')
-	    title:'Container to compare' note:nil
-	    initialModule:containerModule
-	    initialPackage:containerPackage
-	    initialFileName:(aClass nameWithoutPrefix , '.st')
-	    forNewContainer:false.
-	rslt isNil ifTrue:[
-	    "/ canel
-	    ^ false
-	].
-	containerModule := rslt at:#module.
-	containerPackage := rslt at:#package.
-	containerFile := rslt at:#fileName.
-	SourceCodeManagerUtilities lastModule:containerModule.
-	SourceCodeManagerUtilities lastPackage:containerPackage.
-    ] ifFalse:[
-	"/
-	"/ class in repository - ask for revision
-	"/
-	newestRev := mgr newestRevisionOf:aClass.
-
-	msg := resources string:'Compare to revision: (empty for newest)'.
-	rev notNil ifTrue:[
-	    msg := msg , '\\' , (resources string:'Current %1 is based upon rev %2.'
-					   with:nm allBold with:rev).
-	    (rev2 notNil and:[rev2 ~= rev]) ifTrue:[
-		msg := msg , '\' , (resources string:'And has been checked into the repository as %1.' with:rev2)
-	    ]
-	].
-	newestRev notNil ifTrue:[
-	    msg := msg , '\' , (resources string:'Newest in reporitory is %1.' with:newestRev)
-	].
-
-	self normalLabel.
-	rev := SourceCodeManagerUtilities default
-		    askForExistingRevision:msg
-		    title:'Compare with repository'
-		    class:aClass
+        "/
+        "/ class not in repository - allow compare against any other containers newest contents
+        "/
+        self normalLabel.
+
+        pkg := aClass package.
+        (pkg notNil and:[pkg ~= PackageId noProjectID]) ifTrue:[
+            containerModule := pkg upTo:$:.
+            containerPackage := pkg copyFrom:(containerModule size + 2).
+        ].
+        containerModule size == 0 ifTrue:[
+            containerModule := (SourceCodeManagerUtilities lastModule) ? Project current repositoryModule.
+        ].
+        containerPackage size == 0 ifTrue:[
+            containerPackage := (SourceCodeManagerUtilities lastPackage) ? Project current package.
+        ].
+        rslt := SourceCodeManagerUtilities default
+            askForContainer:(resources string:'The class seems to have no repository information.\\Do you want to compare it against an existing containers contents ?')
+            title:'Container to compare' note:nil
+            initialModule:containerModule
+            initialPackage:containerPackage
+            initialFileName:(aClass nameWithoutPrefix , '.st')
+            forNewContainer:false.
+        rslt isNil ifTrue:[
+            "/ canel
+            ^ false
+        ].
+        containerModule := rslt at:#module.
+        containerPackage := rslt at:#package.
+        containerFile := rslt at:#fileName.
+        SourceCodeManagerUtilities lastModule:containerModule.
+        SourceCodeManagerUtilities lastPackage:containerPackage.
+    ] ifFalse:[
+        "/
+        "/ class in repository - ask for revision
+        "/
+        newestRev := mgr newestRevisionOf:aClass.
+
+        msg := resources string:'Compare to revision: (empty for newest)'.
+        rev notNil ifTrue:[
+            msg := msg , '\\' , (resources string:'Current %1 is based upon rev %2.'
+                                           with:nm allBold with:rev).
+            (rev2 notNil and:[rev2 ~= rev]) ifTrue:[
+                msg := msg , '\' , (resources string:'And has been checked into the repository as %1.' with:rev2)
+            ]
+        ].
+        newestRev notNil ifTrue:[
+            msg := msg , '\' , (resources string:'Newest in repository is %1.' with:newestRev)
+        ].
+
+        self normalLabel.
+        rev := SourceCodeManagerUtilities default
+                    askForExistingRevision:msg
+                    title:'Compare with repository'
+                    class:aClass
     ].
 
     versionsAreTheSame := false.
     (rev notNil or:[containerFile notNil]) ifFalse:[
-	self normalLabel.
-	^ false
+        self normalLabel.
+        ^ false
     ].
 
     rev notNil ifTrue:[
-	rev withoutSpaces isEmpty ifTrue:[
-	    msg := 'extracting newest %1 (' , (newestRev ? '???') , ')'.
-	    "/ aStream := mgr getMostRecentSourceStreamForClassNamed:nm.
-	    rev := newestRev.
-	    revInfoString := 'newest'.
-	] ifFalse:[
-	    msg := 'extracting previous %1'.
-	    revInfoString := rev
-	].
-	aStream := mgr getSourceStreamFor:aClass revision:rev.
-    ] ifFalse:[
-	msg := 'extracting newest version from ' , containerModule , '/' , containerPackage, '/' , containerFile.
-	aStream := mgr streamForClass:nil fileName:containerFile revision:#newest directory:containerPackage module:containerModule cache:false.
-	revInfoString := '???'
+        rev withoutSpaces isEmpty ifTrue:[
+            msg := 'extracting newest %1 (' , (newestRev ? '???') , ')'.
+            "/ aStream := mgr getMostRecentSourceStreamForClassNamed:nm.
+            rev := newestRev.
+            revInfoString := 'newest'.
+        ] ifFalse:[
+            msg := 'extracting previous %1'.
+            revInfoString := rev
+        ].
+        aStream := mgr getSourceStreamFor:aClass revision:rev.
+    ] ifFalse:[
+        msg := 'extracting newest version from ' , containerModule , '/' , containerPackage, '/' , containerFile.
+        aStream := mgr streamForClass:nil fileName:containerFile revision:#newest directory:containerPackage module:containerModule cache:false.
+        revInfoString := '???'
     ].
     self busyLabel:msg with:nm.
 
     aStream isNil ifTrue:[
-	info := mgr sourceInfoOfClass:aClass.
-	info notNil ifTrue:[
-	    mod := info at:#module ifAbsent:'??'.
-	    dir := info at:#directory ifAbsent:'??'.
-	].
-
-	self warn:(resources
-		     string:'Could not extract source from repository (for module: ''%1'' , directory: ''%2'' , revision: ''%3'')'
-		     with:mod with:dir with:revInfoString).
-	self normalLabel.
-	^ false
+        info := mgr sourceInfoOfClass:aClass.
+        info notNil ifTrue:[
+            mod := info at:#module ifAbsent:'??'.
+            dir := info at:#directory ifAbsent:'??'.
+        ].
+
+        self warn:(resources
+                     string:'Could not extract source from repository (for module: ''%1'' , directory: ''%2'' , revision: ''%3'')'
+                     with:mod with:dir with:revInfoString).
+        self normalLabel.
+        ^ false
     ].
 
     aStream class readErrorSignal handle:[:ex |
-	self warn:('read error while reading extracted source\\' , ex description) withCRs.
-	aStream close.
-	self normalLabel.
-	^ false
+        self warn:('read error while reading extracted source\\' , ex description) withCRs.
+        aStream close.
+        self normalLabel.
+        ^ false
     ] do:[
-	comparedSource := aStream contents asString.
+        comparedSource := aStream contents asString.
     ].
     aStream close.
 
     revInfoString = '(newest)' ifTrue:[
-	|rev|
-
-	(rev := mgr newestRevisionOf:aClass) notNil ifTrue:[
-	    revInfoString := '(newest is ' , rev , ')'
-	]
+        (rev := mgr newestRevisionOf:aClass) notNil ifTrue:[
+            revInfoString := '(newest is ' , rev , ')'
+        ]
     ].
 
     aTwoArgBlock value:comparedSource value:revInfoString.
@@ -32915,18 +33956,18 @@
 askForRepositoryVersionUsingManager:managerOrNil thenWithCurrentVersionDo:aFiveArgBlock
     "helper for compare and patch file generation;
      ask for version, get it, then call aBlock with
-	currentClass, source1, versionNr1, sourceCurrent, currentVersionNr"
-
-    ^ self
-	askForRepositoryVersionUsingManager:managerOrNil
-	withExtensions:true
-	thenWithCurrentVersionDo:aFiveArgBlock
+        currentClass, source1, versionNr1, sourceCurrent, currentVersionNr"
+
+    ^ self
+        askForRepositoryVersionUsingManager:managerOrNil
+        withExtensions:true
+        thenWithCurrentVersionDo:aFiveArgBlock
 !
 
 askForRepositoryVersionUsingManager:managerOrNil withExtensions:withExtensions thenWithCurrentVersionDo:aFiveArgBlock
     "helper for compare and patch file generation;
      ask for version, get it, then call aBlock with
-	currentClass, source1, versionNr1, sourceCurrent, currentVersionNr"
+        currentClass, source1, versionNr1, sourceCurrent, currentVersionNr"
 
     |currentClass
      aStream comparedSource currentSource revInfo rev revString thisRevString mgr
@@ -32936,127 +33977,127 @@
 
     currentClass := self theSingleSelectedLoadedNonMetaclassOrNil.
     currentClass isNil ifTrue:[
-	self warn:'Cannot compare unloaded classes.'.
-	^ false.
+        self warn:'Cannot compare unloaded classes.'.
+        ^ false.
     ].
 
     nm := currentClass name.
     (mgr := managerOrNil) isNil ifTrue:[
-	mgr := currentClass sourceCodeManager.
-	mgr isNil ifTrue:[
-	    ^ false
-	].
+        mgr := currentClass sourceCodeManager.
+        mgr isNil ifTrue:[
+            ^ false
+        ].
     ].
 
     "Use revision of manager"
     rev := currentClass binaryRevision.
     revInfo := currentClass revisionInfoOfManager: mgr.
     revInfo notNil ifTrue:[
-	rev2 := revInfo revision.
+        rev2 := revInfo revision.
     ].
     rev2 notNil ifTrue:[
-	rev := rev2
+        rev := rev2
     ].
     rev isNil ifTrue:[
-	"/
-	"/ class not in repository - allow compare against any other containers newest contents
-	"/
-	self normalLabel.
-
-	pkg := currentClass package.
-	(pkg notNil and:[pkg ~= PackageId noProjectID]) ifTrue:[
-	    containerModule := pkg upTo:$:.
-	    containerPackage := pkg copyFrom:(containerModule size + 2).
-	].
-	containerModule size == 0 ifTrue:[
-	    containerModule := (SourceCodeManagerUtilities lastModule) ? Project current repositoryModule.
-	].
-	containerPackage size == 0 ifTrue:[
-	    containerPackage := (SourceCodeManagerUtilities lastPackage) ? Project current package.
-	].
-	rslt := mgr utilities
-	    askForContainer:(resources string:'The class seems to have no repository information.\\Do you want to compare it against an existing containers contents ?')
-	    title:'Container to compare' note:nil
-	    initialModule:containerModule
-	    initialPackage:containerPackage
-	    initialFileName:(currentClass nameWithoutPrefix , '.st')
-	    forNewContainer:false.
-	rslt isNil ifTrue:[
-	    "/ cancel
-	    ^ false
-	].
-	containerModule := rslt at:#module.
-	containerPackage := rslt at:#package.
-	containerFile := rslt at:#fileName.
-	SourceCodeManagerUtilities lastModule:containerModule.
-	SourceCodeManagerUtilities lastPackage:containerPackage.
-    ] ifFalse:[
-	"/
-	"/ class in repository - ask for revision
-	"/
-	newestRev := mgr newestRevisionOf:currentClass.
-
-	msg := resources string:'Compare to revision: (empty for newest)'.
-	rev notNil ifTrue:[
-	    msg := msg , '\\' , (resources string:'Current %1 is based upon rev %2.'
-					   with:nm allBold with:rev).
-	    (rev2 notNil and:[rev2 ~= rev]) ifTrue:[
-		msg := msg , '\' , (resources string:'And has been checked into the repository as %1.' with:rev2)
-	    ]
-	].
-	newestRev notNil ifTrue:[
-	    msg := msg , '\' , (resources string:'Newest in reporitory is %1.' with:newestRev)
-	].
-
-	self normalLabel.
-	rev := mgr utilities
-		    askForExistingRevision:msg
-		    title:'Compare with repository'
-		    class:currentClass
+        "/
+        "/ class not in repository - allow compare against any other containers newest contents
+        "/
+        self normalLabel.
+
+        pkg := currentClass package.
+        (pkg notNil and:[pkg ~= PackageId noProjectID]) ifTrue:[
+            containerModule := pkg upTo:$:.
+            containerPackage := pkg copyFrom:(containerModule size + 2).
+        ].
+        containerModule size == 0 ifTrue:[
+            containerModule := (SourceCodeManagerUtilities lastModule) ? Project current repositoryModule.
+        ].
+        containerPackage size == 0 ifTrue:[
+            containerPackage := (SourceCodeManagerUtilities lastPackage) ? Project current package.
+        ].
+        rslt := mgr utilities
+            askForContainer:(resources string:'The class seems to have no repository information.\\Do you want to compare it against an existing containers contents ?')
+            title:'Container to compare' note:nil
+            initialModule:containerModule
+            initialPackage:containerPackage
+            initialFileName:(currentClass nameWithoutPrefix , '.st')
+            forNewContainer:false.
+        rslt isNil ifTrue:[
+            "/ cancel
+            ^ false
+        ].
+        containerModule := rslt at:#module.
+        containerPackage := rslt at:#package.
+        containerFile := rslt at:#fileName.
+        SourceCodeManagerUtilities lastModule:containerModule.
+        SourceCodeManagerUtilities lastPackage:containerPackage.
+    ] ifFalse:[
+        "/
+        "/ class in repository - ask for revision
+        "/
+        newestRev := mgr newestRevisionOf:currentClass.
+
+        msg := resources string:'Compare to revision: (empty for newest)'.
+        rev notNil ifTrue:[
+            msg := msg , '\\' , (resources string:'Current %1 is based upon rev %2.'
+                                           with:nm allBold with:rev).
+            (rev2 notNil and:[rev2 ~= rev]) ifTrue:[
+                msg := msg , '\' , (resources string:'And has been checked into the repository as %1.' with:rev2)
+            ]
+        ].
+        newestRev notNil ifTrue:[
+            msg := msg , '\' , (resources string:'Newest in repository is %1.' with:newestRev)
+        ].
+
+        self normalLabel.
+        rev := mgr utilities
+                    askForExistingRevision:msg
+                    title:'Compare with repository'
+                    class:currentClass
     ].
 
     versionsAreTheSame := false.
     (rev notNil or:[containerFile notNil]) ifFalse:[
-	self normalLabel.
-	^ false
+        self normalLabel.
+        ^ false
     ].
 
     rev notNil ifTrue:[
-	rev withoutSpaces isEmpty ifTrue:[
-	    msg := 'extracting newest %1 (' , (newestRev ? '???') , ')'.
-	    "/ aStream := mgr getMostRecentSourceStreamForClassNamed:nm.
-	    rev := newestRev.
-	    revString := 'newest'.
-	] ifFalse:[
-	    msg := 'extracting previous %1'.
-	    revString := rev
-	].
-	aStream := mgr getSourceStreamFor:currentClass revision:rev.
-    ] ifFalse:[
-	msg := 'extracting newest version from ' , containerModule , '/' , containerPackage, '/' , containerFile.
-	aStream := mgr streamForClass:nil fileName:containerFile revision:#newest directory:containerPackage module:containerModule cache:false.
-	revString := '???'
+        rev withoutSpaces isEmpty ifTrue:[
+            msg := 'extracting newest %1 (' , (newestRev ? '???') , ')'.
+            "/ aStream := mgr getMostRecentSourceStreamForClassNamed:nm.
+            rev := newestRev.
+            revString := 'newest'.
+        ] ifFalse:[
+            msg := 'extracting previous %1'.
+            revString := rev
+        ].
+        aStream := mgr getSourceStreamFor:currentClass revision:rev.
+    ] ifFalse:[
+        msg := 'extracting newest version from ' , containerModule , '/' , containerPackage, '/' , containerFile.
+        aStream := mgr streamForClass:nil fileName:containerFile revision:#newest directory:containerPackage module:containerModule cache:false.
+        revString := '???'
     ].
     self busyLabel:msg with:nm.
 
     aStream isNil ifTrue:[
-	info := mgr sourceInfoOfClass:currentClass.
-	info notNil ifTrue:[
-	    mod := info at:#module ifAbsent:'??'.
-	    dir := info at:#directory ifAbsent:'??'.
-	].
-
-	self warn:(resources
-		     string:'Could not extract source from repository (for module: ''%1'' , directory: ''%2'' , revision: ''%3'')'
-		     with:mod with:dir with:revString).
-	^ false
+        info := mgr sourceInfoOfClass:currentClass.
+        info notNil ifTrue:[
+            mod := info at:#module ifAbsent:'??'.
+            dir := info at:#directory ifAbsent:'??'.
+        ].
+
+        self warn:(resources
+                     string:'Could not extract source from repository (for module: ''%1'' , directory: ''%2'' , revision: ''%3'')'
+                     with:mod with:dir with:revString).
+        ^ false
     ].
     aStream class readErrorSignal handle:[:ex |
-	self warn:('read error while reading extracted source\\' , ex description) withCRs.
-	aStream close.
-	^ false
+        self warn:('read error while reading extracted source\\' , ex description) withCRs.
+        aStream close.
+        ^ false
     ] do:[
-	comparedSource := aStream contents asString.
+        comparedSource := aStream contents asString.
     ].
     aStream close.
 
@@ -33068,53 +34109,53 @@
     "/ currentSource := aStream contents asString.
 
     Class fileOutErrorSignal handle:[:ex |
-	ex proceed
+        ex proceed
     ] do:[
-	|numRealExtensionSkipped numUnassignedSkipped|
-
-	numRealExtensionSkipped := numUnassignedSkipped := 0.
-	currentSource := String streamContents:[:s |
-	    currentClass
-		fileOutOn:s
-		withTimeStamp:true
-		withInitialize:true
-		withDefinition:true
-		methodFilter:[:m |
-		    withExtensions ifTrue:[
-			true
-		    ] ifFalse:[
-			m isExtension ifTrue:[
-			    m package == PackageId noProjectID
-				ifTrue:[ numUnassignedSkipped := numUnassignedSkipped + 1 ]
-				ifFalse:[ numRealExtensionSkipped := numRealExtensionSkipped + 1 ].
-			].
-			m isExtension not
-		    ]
-		]
-	].
-	(numRealExtensionSkipped + numUnassignedSkipped) > 0 ifTrue:[
-	    Dialog warn:(resources
-			    stringWithCRs:'The class contains %1 extensions (%2 real, %3 unassigned) - any changes there are NOT included in the patchFile!!\Please check this manually%4.'
-			    with: (numRealExtensionSkipped + numUnassignedSkipped)
-			    with: numRealExtensionSkipped
-			    with: numUnassignedSkipped
-			    with: ((numUnassignedSkipped > 0)
-				    ifTrue:[ resources string:' (hint: move the unassigned extensions to their proper package)' ]
-				    ifFalse:[''] )).
-	].
+        |numRealExtensionSkipped numUnassignedSkipped|
+
+        numRealExtensionSkipped := numUnassignedSkipped := 0.
+        currentSource := String streamContents:[:s |
+            currentClass
+                fileOutOn:s
+                withTimeStamp:true
+                withInitialize:true
+                withDefinition:true
+                methodFilter:[:m |
+                    withExtensions ifTrue:[
+                        true
+                    ] ifFalse:[
+                        m isExtension ifTrue:[
+                            m package == PackageId noProjectID
+                                ifTrue:[ numUnassignedSkipped := numUnassignedSkipped + 1 ]
+                                ifFalse:[ numRealExtensionSkipped := numRealExtensionSkipped + 1 ].
+                        ].
+                        m isExtension not
+                    ]
+                ]
+        ].
+        (numRealExtensionSkipped + numUnassignedSkipped) > 0 ifTrue:[
+            Dialog warn:(resources
+                            stringWithCRs:'The class contains %1 extensions (%2 real, %3 unassigned) - any changes there are NOT included in the patchFile!!\Please check this manually%4.'
+                            with: (numRealExtensionSkipped + numUnassignedSkipped)
+                            with: numRealExtensionSkipped
+                            with: numUnassignedSkipped
+                            with: ((numUnassignedSkipped > 0)
+                                    ifTrue:[ resources string:' (hint: move the unassigned extensions to their proper package)' ]
+                                    ifFalse:[''] )).
+        ].
     ].
 
     thisRevString := currentClass revision.
     thisRevString isNil ifTrue:[
-	thisRevString := 'no revision'
+        thisRevString := 'no revision'
     ].
 
     aFiveArgBlock
-	value:currentClass
-	value:comparedSource
-	value:revString
-	value:currentSource
-	value:thisRevString.
+        value:currentClass
+        value:comparedSource
+        value:revString
+        value:currentSource
+        value:thisRevString.
 
     self normalLabel.
     ^ true
@@ -33129,9 +34170,9 @@
 
     allOwners := Set new.
     classes do:[:each |
-	each owningClass notNil ifTrue:[
-	    allOwners add:each owningClass
-	].
+        each owningClass notNil ifTrue:[
+            allOwners add:each owningClass
+        ].
     ].
     classes := classes reject:[:cls | cls isPrivate].
     classes := classes asSet.
@@ -33139,31 +34180,31 @@
     classes := classes asOrderedCollection "sort:[:a :b | a name < b name]".
 
     ((classes size <= 10)
-	or:[ |answer|
-	     answer := Dialog
-			confirmWithCancel:'Fetch known tags to choose from all classes?\(this may take some time)' withCRs
-			default:false.
-	     answer isNil ifTrue:[^ self].
-	     answer == true
-	   ]
+        or:[ |answer|
+             answer := Dialog
+                        confirmWithCancel:'Fetch known tags to choose from all classes?\(this may take some time)' withCRs
+                        default:false.
+             answer isNil ifTrue:[^ self].
+             answer == true
+           ]
     ) ifTrue:[
-	"/ fetch from all classes
-	knownTags := self allKnownTagsInClasses:classes.
-    ] ifFalse:[
-	"/ only fetch from ProjectDefinitionClasses
-	knownTags := self allKnownTagsInClasses:(classes select:[:cls | cls isProjectDefinition]).
+        "/ fetch from all classes
+        knownTags := self allKnownTagsInClasses:classes.
+    ] ifFalse:[
+        "/ only fetch from ProjectDefinitionClasses
+        knownTags := self allKnownTagsInClasses:(classes select:[:cls | cls isProjectDefinition]).
     ].
     knownTags remove:'stable' ifAbsent:[].
-    knownTags := knownTags asOrderedCollection reverse.
+    knownTags := knownTags asOrderedCollection reversed.
     knownTags notEmpty ifTrue:[
-	knownTags addFirst:nil.
+        knownTags addFirst:nil.
     ].
     knownTags addFirst:'stable'.
 
     tag := Dialog
-		request:(resources string:'Tag (possibly multiple, separated by ";"):')
-		initialAnswer:(CVSSourceCodeManager recentTag)
-		list:knownTags.
+                request:(resources string:'Tag (possibly multiple, separated by ";"):')
+                initialAnswer:(CVSSourceCodeManager recentTag)
+                list:knownTags.
     tag isEmptyOrNil ifTrue:[^ nil ].
 
     CVSSourceCodeManager recentTag:tag.
@@ -33192,65 +34233,65 @@
      is another check for bad selectors in SCM, sigh"
 
     (aManagerOrNil isNil or:[aManagerOrNil performsCompilabilityChecks not]) ifTrue:[
-	errors := self checkCompilabilityOfAll:aCollectionOfClasses withExtensions: true errorsOnly:true.
-	errors notEmptyOrNil ifTrue:[
-	(TextBox openOn:errors title:'Attention: about to check in class with errors' readOnly:true) isNil
-	ifTrue:[
-	    AbortSignal raise
-	].
-	].
+        errors := self checkCompilabilityOfAll:aCollectionOfClasses withExtensions: false "true" errorsOnly:true.
+        errors notEmptyOrNil ifTrue:[
+            (TextBox openOn:errors title:'Attention: about to check in class with errors' readOnly:true) isNil
+            ifTrue:[
+                AbortOperationRequest raise
+            ].
+        ].
     ].
 
     utilities := aManagerOrNil isNil
-		    ifTrue:[ SourceCodeManagerUtilities default ]
-		    ifFalse:[ aManagerOrNil utilities ].
+                    ifTrue:[ SourceCodeManagerUtilities default ]
+                    ifFalse:[ aManagerOrNil utilities ].
 
     self withActivityNotificationsRedirectedToInfoLabelDo:[
-	utilities
-	    checkinClasses:aCollectionOfClasses
-	    withInfo:logInfoOrNil
-	    withCheck:doCheck
-	    usingManager:aManagerOrNil.
+        utilities
+            checkinClasses:aCollectionOfClasses
+            withInfo:logInfoOrNil
+            withCheck:doCheck
+            usingManager:aManagerOrNil.
     ].
 
     classesNotInPackage := aCollectionOfClasses select:[:cls |
-				|pkg def|
-
-				pkg := cls package.
-				pkg notNil ifTrue:[
-				    def := ProjectDefinition definitionClassForPackage:pkg.
-				].
-				def notNil and:[
-				    (def allClassNames includes:cls name) not]
-			   ].
+                                |pkg def|
+
+                                pkg := cls package.
+                                pkg notNil ifTrue:[
+                                    def := ProjectDefinition definitionClassForPackage:pkg.
+                                ].
+                                def notNil and:[
+                                    (def allClassNames includes:cls name) not]
+                           ].
     classesNotInPackage := classesNotInPackage collect:[:cls | cls theNonMetaclass].
 
     classesNotInPackage notEmpty ifTrue:[
-	classesNotInPackage size > 1 ifTrue:[
-	    msg := 'Add %2 classes to their Package definition (Make compiled or autoloaded) ?'
-	] ifFalse:[
-	    msg := 'Add %1 to its Package definition (Make compiled or autoloaded) ?'
-	].
-	answer := Dialog
-		    confirmWithCancel:((resources string:msg
-					with:classesNotInPackage first name
-					with:classesNotInPackage size)
-				      , (resources
-					    stringWithCRs:'\\(Notice: You have to "checkIn build support files" for the package\for the compilation to become effective)')
-				      )
-		    labels:(resources array:#('Cancel' 'Autoloaded' 'Compiled')).
-	answer == nil ifTrue:[^ self ].
-
-	classesNotInPackage do:[:eachClass |
-	    |defClass|
-
-	    defClass := eachClass projectDefinitionClass.
-	    answer == true ifTrue:[
-		defClass includeClasses:{ eachClass } usingCompiler:nil
-	    ] ifFalse:[
-		defClass makeClassesAutoloaded:{ eachClass } usingCompiler:nil
-	    ].
-	].
+        classesNotInPackage size > 1 ifTrue:[
+            msg := 'Add %2 classes to their Package definition (Make compiled or autoloaded) ?'
+        ] ifFalse:[
+            msg := 'Add %1 to its Package definition (Make compiled or autoloaded) ?'
+        ].
+        answer := Dialog
+                    confirmWithCancel:((resources string:msg
+                                        with:classesNotInPackage first name
+                                        with:classesNotInPackage size)
+                                      , (resources
+                                            stringWithCRs:'\\(Notice: You have to "checkIn build support files" for the package\for the compilation to become effective)')
+                                      )
+                    labels:(resources array:#('Cancel' 'Autoloaded' 'Compiled')).
+        answer == nil ifTrue:[^ self ].
+
+        classesNotInPackage do:[:eachClass |
+            |defClass|
+
+            defClass := eachClass projectDefinitionClass.
+            answer == true ifTrue:[
+                defClass includeClasses:{ eachClass } usingCompiler:nil
+            ] ifFalse:[
+                defClass makeClassesAutoloaded:{ eachClass } usingCompiler:nil
+            ].
+        ].
     ].
 
     "Created: / 21-12-2011 / 18:22:58 / cg"
@@ -33264,9 +34305,9 @@
      otherwise ask for the revision."
 
     self
-	checkOutClass:aClass
-	askForRevision:askForRevision
-	usingManager:nil
+        checkOutClass:aClass
+        askForRevision:askForRevision
+        usingManager:nil
 
     "Modified: / 01-03-2007 / 17:47:32 / cg"
 !
@@ -33278,14 +34319,14 @@
      otherwise ask for the revision."
 
     self withActivityNotificationsRedirectedToInfoLabelDo:[
-	(managerOrNil isNil
-	    ifTrue:[SourceCodeManagerUtilities]
-	    ifFalse:[managerOrNil utilities])
-		checkoutClass:aClass askForRevision:askForRevision askForMerge:true.
-	"/ version id may have changed
-	self theSingleSelectedClass notNil ifTrue:[
-	    self updatePackageInfoForClass:self theSingleSelectedClass
-	].
+        (managerOrNil isNil
+            ifTrue:[SourceCodeManagerUtilities]
+            ifFalse:[managerOrNil utilities])
+                checkoutClass:aClass askForRevision:askForRevision askForMerge:true.
+        "/ version id may have changed
+        self theSingleSelectedClass notNil ifTrue:[
+            self updatePackageInfoForClass:self theSingleSelectedClass
+        ].
     ]
 
     "Modified: / 01-03-2007 / 17:47:32 / cg"
@@ -33320,70 +34361,70 @@
     utilities := (aManagerOrNilForDefault ? SourceCodeManager) utilities.
 
     classes isEmpty ifTrue:[
-	Dialog warn:'No classes to checkout'.
+        Dialog warn:'No classes to checkout'.
 "/        SourceCodeManagerUtilities
 "/            checkoutClass:nil
 "/            askForRevision:true
 "/            askForMerge:false.
-	^ self
+        ^ self
     ].
 
     alreadyCheckedOut := IdentitySet new.
 
     "abortAll is handled, and also asked for here!!"
     AbortAllOperationRequest handleAndAnswerQueryIn:[
-	self
-	    classes:classes
-	    nonMetaDo:
-		[:cls |
-
-		  UserInformation handle:[:ex |
-		       classes size > 1 ifTrue:[
-			   Transcript showCR:ex description.
-		       ] ifFalse:[
-			    (Dialog confirm:ex description noLabel:'Cancel') ifFalse:[
-				AbortSignal raise
-			    ].
-		       ].
-		       ex proceed.
-		  ] do:[
-		       self withActivityNotificationsRedirectedToInfoLabelDo:[
-			    utilities
-				checkoutClass:cls
-				askForRevision:askForRevision
-				askForMerge:true
-				askForConfirmation:false.
-		       ].
-		       alreadyCheckedOut add:cls.
-		  ]
-		]
-	    ifUnloaded:
-		[:cls | true]
-	    ifPrivate:
-		[:cls | |owner answer|
-
-		    owner := cls topOwningClass.
-		    (alreadyCheckedOut includes:owner) ifFalse:[
-			((self selectedClassesValue ? #()) includes:owner) ifFalse:[
-			    answer := Dialog
-					confirmWithCancel:(resources string:'Cannot checkOut private class: %1\\Shall the owner ''%2'' be checked out ?'
-									  with:cls nameWithoutPrefix allBold
-									  with:owner name) withCRs
-					default:true.
-			    answer == nil ifTrue:[
-				AbortAllOperationRequest raise    "/ cancel
-			    ].
-			    answer == true ifTrue:[
-				self checkOutClass:owner askForRevision:askForRevision usingManager:aManagerOrNilForDefault.
-				alreadyCheckedOut add:owner.
-			    ].
-			]
-		    ]
-		].
+        self
+            classes:classes
+            nonMetaDo:
+                [:cls |
+
+                  UserInformation handle:[:ex |
+                       classes size > 1 ifTrue:[
+                           Transcript showCR:ex description.
+                       ] ifFalse:[
+                            (Dialog confirm:ex description noLabel:'Cancel') ifFalse:[
+                                AbortSignal raise
+                            ].
+                       ].
+                       ex proceed.
+                  ] do:[
+                       self withActivityNotificationsRedirectedToInfoLabelDo:[
+                            utilities
+                                checkoutClass:cls
+                                askForRevision:askForRevision
+                                askForMerge:true
+                                askForConfirmation:false.
+                       ].
+                       alreadyCheckedOut add:cls.
+                  ]
+                ]
+            ifUnloaded:
+                [:cls | true]
+            ifPrivate:
+                [:cls | |owner answer|
+
+                    owner := cls topOwningClass.
+                    (alreadyCheckedOut includes:owner) ifFalse:[
+                        ((self selectedClassesValue ? #()) includes:owner) ifFalse:[
+                            answer := Dialog
+                                        confirmWithCancel:(resources string:'Cannot checkOut private class: %1\\Shall the owner ''%2'' be checked out ?'
+                                                                          with:cls nameWithoutPrefix allBold
+                                                                          with:owner name) withCRs
+                                        default:true.
+                            answer == nil ifTrue:[
+                                AbortAllOperationRequest raise    "/ cancel
+                            ].
+                            answer == true ifTrue:[
+                                self checkOutClass:owner askForRevision:askForRevision usingManager:aManagerOrNilForDefault.
+                                alreadyCheckedOut add:owner.
+                            ].
+                        ]
+                    ]
+                ].
     ].
     "/ version id may have changed
     self theSingleSelectedClass notNil ifTrue:[
-	self updatePackageInfoForClass:self theSingleSelectedClass
+        self updatePackageInfoForClass:self theSingleSelectedClass
     ].
     self normalLabel.
 
@@ -33391,6 +34432,21 @@
     "Created: / 21-12-2011 / 20:15:33 / cg"
 !
 
+classMenuBrowseAllVersionsInRepository
+    "open a diff-textView showing all versions in the repository."
+
+    |currentClass|
+
+    currentClass := self theSingleSelectedLoadedNonMetaclassOrNil.
+    currentClass isNil ifTrue:[
+        self warn:'Cannot compare unloaded classes.'.
+        ^ self.
+    ].
+    self withWaitCursorDo:[
+        VersionDiffBrowser openOnAllVersionsOfClass:currentClass
+    ]
+!
+
 classMenuCheckIn
     "check a class into the source repository (with checks)"
 
@@ -33438,49 +34494,49 @@
     classesToCheckIn := IdentitySet new.
 
     self
-	classes:classesSelected
-	nonMetaDo:
-	    [:cls |
-	      InformationSignal handle:[:ex |
-		   Transcript showCR:ex description.
-		   ex proceed.
-	      ] do:[
-		   classesToCheckIn add:cls.
-	      ]
-	    ]
-	ifUnloaded:
-	    [:cls |
-		(Dialog confirm:('Cannot checkin unloaded class: %1.' bindWith:cls name allBold)
-		      title:'Cannot Checkin' yesLabel:'OK' noLabel:'Cancel' ) ifFalse:[^ self].
-		false.
-	    ]
-	ifPrivate:
-	    [:cls | |owner answer|
-
-		owner := cls topOwningClass.
-		(classesToCheckIn includes:owner) ifFalse:[
-		    (classesSelected "self selectedClasses value" includes:owner) ifFalse:[
-			answer := Dialog
-				    confirmWithCancel:(resources string:'Cannot checkin private class: %1\\Shall the owner ''%2'' be checked in ?'
-								      with:cls nameWithoutPrefix allBold
-								      with:owner name allBold) withCRs
-				    default:true.
-			answer == nil ifTrue:[
-			    ^ self
-			].
-			answer == true ifTrue:[
-			    classesToCheckIn add:owner.
-			].
-		    ]
-		]
-	    ].
+        classes:classesSelected
+        nonMetaDo:
+            [:cls |
+              InformationSignal handle:[:ex |
+                   Transcript showCR:ex description.
+                   ex proceed.
+              ] do:[
+                   classesToCheckIn add:cls.
+              ]
+            ]
+        ifUnloaded:
+            [:cls |
+                (Dialog confirm:('Cannot checkin unloaded class: %1.' bindWith:cls name allBold)
+                      title:'Cannot Checkin' yesLabel:'OK' noLabel:'Cancel' ) ifFalse:[^ self].
+                false.
+            ]
+        ifPrivate:
+            [:cls | |owner answer|
+
+                owner := cls topOwningClass.
+                (classesToCheckIn includes:owner) ifFalse:[
+                    (classesSelected "self selectedClasses value" includes:owner) ifFalse:[
+                        answer := Dialog
+                                    confirmWithCancel:(resources string:'Cannot checkin private class: %1\\Shall the owner ''%2'' be checked in ?'
+                                                                      with:cls nameWithoutPrefix allBold
+                                                                      with:owner name allBold) withCRs
+                                    default:true.
+                        answer == nil ifTrue:[
+                            ^ self
+                        ].
+                        answer == true ifTrue:[
+                            classesToCheckIn add:owner.
+                        ].
+                    ]
+                ]
+            ].
 
     classesToCheckIn notEmpty ifTrue:[
-	self checkInClasses:classesToCheckIn withInfo:nil withCheck:doCheck usingManager:aManagerOrNil.
+        self checkInClasses:classesToCheckIn withInfo:nil withCheck:doCheck usingManager:aManagerOrNil.
     ].
     "/ version id may have changed
     self theSingleSelectedClass notNil ifTrue:[
-	self updatePackageInfoForClass:self theSingleSelectedClass
+        self updatePackageInfoForClass:self theSingleSelectedClass
     ].
     self normalLabel.
 
@@ -33495,9 +34551,9 @@
      "
 
     ^ self
-	classMenuCheckIn:doCheck
-	classes:(self selectedClassesValue)
-	usingManager:aManagerOrNil
+        classMenuCheckIn:doCheck
+        classes:(self selectedClassesValue)
+        usingManager:aManagerOrNil
 
     "Created: / 21-12-2011 / 18:21:30 / cg"
 !
@@ -33530,9 +34586,9 @@
     "
 
     ^ self
-	classMenuCheckIn:doCheck
-	classes:(ChangeSet current changedClasses)
-	usingManager:aManagerOrNil
+        classMenuCheckIn:doCheck
+        classes:(ChangeSet current changedClasses)
+        usingManager:aManagerOrNil
 
     "Created: / 21-12-2011 / 19:52:50 / cg"
 !
@@ -33553,7 +34609,7 @@
 
     |mgr|
 
-    mgr := Smalltalk at:sourceCodeManagerClassName asSymbol.
+    mgr := Smalltalk classNamed:sourceCodeManagerClassName.
     self assert:(mgr notNil).
     ^ self classMenuCheckInAllChangedClassesUsingManager:mgr
 
@@ -33580,16 +34636,16 @@
 
     projects := Set new.
     self selectedClassesDo:[:eachClass |
-	eachClass instAndClassSelectorsAndMethodsDo:[:sel :mthd | projects add:mthd package].
+        eachClass instAndClassSelectorsAndMethodsDo:[:sel :mthd | projects add:mthd package].
     ].
     projects do:[:eachProject |
-	self
-	    projectMenuCheckInProject:eachProject
-	    classes:false
-	    extensions:true
-	    buildSupport:false
-	    askForMethodsInOtherPackages:false
-	    usingManager:nil.
+        self
+            projectMenuCheckInProject:eachProject
+            classes:false
+            extensions:true
+            buildSupport:false
+            askForMethodsInOtherPackages:false
+            usingManager:nil.
     ].
 !
 
@@ -33599,13 +34655,13 @@
     (self askIfModified:'Code was modified.\\CheckIn (without that modification) anyway ?')
     ifFalse:[^ self].
     self withWaitCursorDo:[
-	self
-	    projectMenuCheckInProject:aProjectID
-	    classes:false
-	    extensions:true
-	    buildSupport:false
-	    askForMethodsInOtherPackages:false
-	    usingManager:nil.
+        self
+            projectMenuCheckInProject:aProjectID
+            classes:false
+            extensions:true
+            buildSupport:false
+            askForMethodsInOtherPackages:false
+            usingManager:nil.
     ]
 
     "Modified: / 08-09-2011 / 04:07:58 / cg"
@@ -33617,13 +34673,13 @@
     (self askIfModified:'Code was modified.\\CheckIn (without that modification) anyway ?')
     ifFalse:[^ self].
     self withWaitCursorDo:[
-	self
-	    projectMenuCheckInProject:aProjectID
-	    classes:false
-	    extensions:true
-	    buildSupport:false
-	    askForMethodsInOtherPackages:false
-	    usingManager:manager.
+        self
+            projectMenuCheckInProject:aProjectID
+            classes:false
+            extensions:true
+            buildSupport:false
+            askForMethodsInOtherPackages:false
+            usingManager:manager.
     ]
 
     "Modified: / 08-09-2011 / 04:07:58 / cg"
@@ -33640,16 +34696,16 @@
 
     projects := Set new.
     self selectedClassesDo:[:eachClass |
-	eachClass instAndClassSelectorsAndMethodsDo:[:sel :mthd | projects add:mthd package].
+        eachClass instAndClassSelectorsAndMethodsDo:[:sel :mthd | projects add:mthd package].
     ].
     projects do:[:eachProject |
-	self
-	    projectMenuCheckInProject:eachProject
-	    classes:false
-	    extensions:true
-	    buildSupport:false
-	    askForMethodsInOtherPackages:false
-	    usingManager:managerOrNil.
+        self
+            projectMenuCheckInProject:eachProject
+            classes:false
+            extensions:true
+            buildSupport:false
+            askForMethodsInOtherPackages:false
+            usingManager:managerOrNil.
     ].
 !
 
@@ -33657,7 +34713,7 @@
     "check a class into the source repository (with checks)"
 
     PerforceSourceCodeManager notNil ifTrue:[
-	self classMenuCheckInUsingManager:PerforceSourceCodeManager
+        self classMenuCheckInUsingManager:PerforceSourceCodeManager
     ].
 
     "Modified: / 21-12-2011 / 18:20:40 / cg"
@@ -33672,7 +34728,7 @@
     doChecks := doChecks asValue.
     self classMenuCheckIn:doChecks usingManager:aManagerOrNil.
     doChecks value ~~ (UserPreferences current at:#checkClassesWhenCheckingIn ifAbsent:true) ifTrue:[
-	UserPreferences current at:#checkClassesWhenCheckingIn put:doChecks value
+        UserPreferences current at:#checkClassesWhenCheckingIn put:doChecks value
     ].
 
     "Created: / 21-12-2011 / 18:20:19 / cg"
@@ -33683,7 +34739,7 @@
 
     |mgr|
 
-    mgr := Smalltalk at:sourceCodeManagerClassName asSymbol.
+    mgr := Smalltalk classNamed:sourceCodeManagerClassName.
     self assert:(mgr notNil).
     self classMenuCheckInUsingManager:mgr
 
@@ -33733,7 +34789,7 @@
 
     |mgr|
 
-    mgr := Smalltalk at:sourceCodeManagerClassName asSymbol.
+    mgr := Smalltalk classNamed:sourceCodeManagerClassName.
     self assert:(mgr notNil).
     self classMenuCheckOutNewestUsingManager: mgr
 !
@@ -33760,7 +34816,7 @@
 
     |mgr|
 
-    mgr := Smalltalk at:sourceCodeManagerClassName asSymbol.
+    mgr := Smalltalk classNamed:sourceCodeManagerClassName.
     self assert:(mgr notNil).
     self classMenuCheckOutUsingManager: mgr
 !
@@ -33792,7 +34848,7 @@
 
     |mgr|
 
-    mgr := Smalltalk at:sourceCodeManagerClassName asSymbol.
+    mgr := Smalltalk classNamed:sourceCodeManagerClassName.
     self assert:(mgr notNil).
     self classMenuCompareAgainstNewestInRepositoryUsingManager:mgr
 
@@ -33808,8 +34864,8 @@
 
     currentClass := self theSingleSelectedLoadedNonMetaclassOrNil.
     currentClass isNil ifTrue:[
-	self warn:'Cannot compare unloaded classes.'.
-	^ self.
+        self warn:'Cannot compare unloaded classes.'.
+        ^ self.
     ].
     mgr := SourceCodeManagerUtilities sourceCodeManagerFor:currentClass.
     self classMenuCompareAgainstOriginalInRepositoryUsingManager:mgr.
@@ -33826,29 +34882,29 @@
 
     currentClass := self theSingleSelectedLoadedNonMetaclassOrNil.
     currentClass isNil ifTrue:[
-	self warn:'Cannot compare unloaded classes.'.
-	^ self.
+        self warn:'Cannot compare unloaded classes.'.
+        ^ self.
     ].
 
     manager isNil ifTrue:[
-	self halt.
-	^ self
+        self halt.
+        ^ self
     ].
     revInfo := currentClass revisionInfoOfManager: manager.
     revInfo ifNil:[
-	self warn:('The class seems to have no repository information for %1.' bindWith: manager managerTypeName).
-	^ self
+        self warn:('The class seems to have no repository information for %1.' bindWith: manager managerTypeName).
+        ^ self
     ].
     rev := revInfo revision.
     rev isNil ifTrue:[
-	self warn:'The class seems to have no repository information.'.
-	^ self
+        self warn:'The class seems to have no repository information.'.
+        ^ self
     ].
     "/ a hack - after a merge, the revision number is changed to xxxm.
     "/ need a better solution for that in the long term
     #fixme.
     (manager == CVSSourceCodeManager and:[ rev endsWith:$m ]) ifTrue:[
-	rev := rev copyButLast:1.
+        rev := rev copyButLast.
     ].
     self classMenuCompareAgainstVersionInRepository:rev usingManager: manager
 !
@@ -33860,7 +34916,7 @@
 
     |mgr|
 
-    mgr := Smalltalk at:sourceCodeManagerClassName asSymbol.
+    mgr := Smalltalk classNamed:sourceCodeManagerClassName.
     self assert:(mgr notNil).
     self classMenuCompareAgainstOriginalInRepositoryUsingManager:mgr
 
@@ -33876,8 +34932,8 @@
 
     currentClass := self theSingleSelectedLoadedNonMetaclassOrNil.
     currentClass isNil ifTrue:[
-	self warn:'Cannot compare unloaded classes.'.
-	^ self.
+        self warn:'Cannot compare unloaded classes.'.
+        ^ self.
     ].
     mgr := SourceCodeManagerUtilities sourceCodeManagerFor:currentClass.
     self classMenuCompareAgainstStableInRepositoryUsingManager:mgr.
@@ -33893,14 +34949,14 @@
 
     currentClass := self theSingleSelectedLoadedNonMetaclassOrNil.
     currentClass isNil ifTrue:[
-	self warn:'Cannot compare unloaded classes.'.
-	^ self.
+        self warn:'Cannot compare unloaded classes.'.
+        ^ self.
     ].
 
     rev := manager revisionForTag:'stable' inClass:currentClass.
     rev isNil ifTrue:[
-	Dialog information:'No revision is tagged as "stable" in the repository'.
-	^ self.
+        Dialog information:'No revision is tagged as "stable" in the repository'.
+        ^ self.
     ].
 
     self classMenuCompareAgainstVersionInRepository:rev usingManager: manager
@@ -33912,7 +34968,7 @@
 
     |mgr|
 
-    mgr := Smalltalk at:sourceCodeManagerClassName asSymbol.
+    mgr := Smalltalk classNamed:sourceCodeManagerClassName.
     self assert:(mgr notNil).
     self classMenuCheckOutUsingManager: mgr
 !
@@ -33928,8 +34984,8 @@
 
     currentClass := self theSingleSelectedLoadedNonMetaclassOrNil.
     currentClass isNil ifTrue:[
-	self warn:'Cannot compare unloaded classes.'.
-	^ self.
+        self warn:'Cannot compare unloaded classes.'.
+        ^ self.
     ].
 
     nm := currentClass name.
@@ -33937,19 +34993,19 @@
     msg := 'extracting revision %1'.
     self busyLabel:msg with:rev.
     self withActivityNotificationsRedirectedToInfoLabelDo:[
-	aStream := manager getSourceStreamFor:currentClass revision:rev.
+        aStream := manager getSourceStreamFor:currentClass revision:rev.
     ].
 
     aStream isNil ifTrue:[
-	self warn:'Could not extract source from repository.'.
-	^ self
+        self warn:'Could not extract source from repository.'.
+        ^ self
     ].
     aStream class readErrorSignal handle:[:ex |
-	self warn:('Read error while reading extracted source:\\' , ex description) withCRs.
-	aStream close.
-	^ self
+        self warn:('Read error while reading extracted source:\\' , ex description) withCRs.
+        aStream close.
+        ^ self
     ] do:[
-	comparedSource := aStream contents asString.
+        comparedSource := aStream contents asString.
     ].
     aStream close.
 
@@ -33964,14 +35020,14 @@
     self busyLabel:'comparing  ...' with:nil.
 
     comparedSource = currentSource ifTrue:[
-	self information:'Versions are identical.'.
-    ] ifFalse:[
-	thisRevString := currentClass revision.
-	thisRevString isNil ifTrue:[
-	    thisRevString := 'no revision'
-	].
-
-	revString := rev.
+        self information:'Versions are identical.'.
+    ] ifFalse:[
+        thisRevString := currentClass revision.
+        thisRevString isNil ifTrue:[
+            thisRevString := 'no revision'
+        ].
+
+        revString := rev.
 "/        "/ this takes some time ... is it worth ?
 "/        (newestRev := manager newestRevisionOf:currentClass) notNil ifTrue:[
 "/            newestRev ~= rev ifTrue:[
@@ -33979,21 +35035,21 @@
 "/            ]
 "/        ].
 
-	self busyLabel:'comparing  ...' with:nil.
-
-	brwsr := (UserPreferences versionDiffViewerClass)
-	      openOnClass:currentClass
-	      labelA:('repository: ' , revString)
-	      sourceA:comparedSource
-	      labelB:('current: (based on: ' , rev , ')')
-	      sourceB:currentSource
-	      title:('comparing ' , currentClass name)
-	      ifSame:[self normalLabel. self information:'Versions are identical.'. ^ self].
-
-	brwsr classChangeSet
-	    classBeingCompared:currentClass;
-	    versionA:rev;
-	    versionB:rev , 'mod'.
+        self busyLabel:'comparing  ...' with:nil.
+
+        brwsr := (UserPreferences versionDiffViewerClass)
+              openOnClass:currentClass
+              labelA:('repository: ' , revString)
+              sourceA:comparedSource
+              labelB:('current: (based on: ' , rev , ')')
+              sourceB:currentSource
+              title:('comparing ' , currentClass name)
+              ifSame:[self normalLabel. self information:'Versions are identical.'. ^ self].
+
+        brwsr classChangeSet
+            classBeingCompared:currentClass;
+            versionA:rev;
+            versionB:rev , 'mod'.
     ].
     self normalLabel.
 
@@ -34015,64 +35071,64 @@
 
     extensionProjectDefinitions := Set new.
     ProjectDefinition allSubclasses do:[:eachProjectDefinition |
-	(eachProjectDefinition extensionClasses includes:currentClass) ifTrue:[
-	    extensionProjectDefinitions add:eachProjectDefinition.
-	].
+        (eachProjectDefinition extensionClasses includes:currentClass) ifTrue:[
+            extensionProjectDefinitions add:eachProjectDefinition.
+        ].
     ].
 
     extensionMethodChangesInImage := ChangeSet forExistingClass:currentClass withExtensions:true extensionsOnly:true.
     extensionMethodChangesInRepository := ChangeSet new.
 
     extensionProjectDefinitions do:[:eachProjectDefinition |
-	|mgr revString info rev package changesHere changesHereForMe|
-
-	package := eachProjectDefinition package.
-	mgr := SourceCodeManagerUtilities sourceCodeManagerFor:eachProjectDefinition.
-	mgr isNil ifTrue:[
-	    Dialog warn:(resources string:'No sourceCodeManager known for %1.' with:eachProjectDefinition package).
-	] ifFalse:[
-	    rev := mgr
-		    newestRevisionInFile:'extensions.st'
-		    directory:(eachProjectDefinition directory)
-		    module:(eachProjectDefinition module).
-	    "/ revString := eachProjectDefinition perform:(mgr nameOfVersionMethodForExtensions) ifNotUnderstood:nil.
-	    "/ revString isNil ifTrue:[
-	    "/    Dialog warn:(resources string:'%1 seems to not have any extensions (loaded)' with:package).
-	    "/] ifFalse:[
-	    "/    info := mgr revisionInfoFromString:revString.
-	    "/    rev := info revision.
-		"/
-		"/ ask for revision
-		"/
+        |mgr revString info rev package changesHere changesHereForMe|
+
+        package := eachProjectDefinition package.
+        mgr := SourceCodeManagerUtilities sourceCodeManagerFor:eachProjectDefinition.
+        mgr isNil ifTrue:[
+            Dialog warn:(resources string:'No sourceCodeManager known for %1.' with:eachProjectDefinition package).
+        ] ifFalse:[
+            rev := mgr
+                    newestRevisionInFile:'extensions.st'
+                    directory:(eachProjectDefinition directory)
+                    module:(eachProjectDefinition module).
+            "/ revString := eachProjectDefinition perform:(mgr nameOfVersionMethodForExtensions) ifNotUnderstood:nil.
+            "/ revString isNil ifTrue:[
+            "/    Dialog warn:(resources string:'%1 seems to not have any extensions (loaded)' with:package).
+            "/] ifFalse:[
+            "/    info := mgr revisionInfoFromString:revString.
+            "/    rev := info revision.
+                "/
+                "/ ask for revision
+                "/
 "/                newestRev := mgr
 "/                                newestRevisionInFile:'extensions.st'
 "/                                directory:(eachProjectDefinition directory)
 "/                                module:(eachProjectDefinition module).
 
-		changesHere := SourceCodeManagerUtilities default
-		    changeSetForExtensionMethodsForPackage:package
-		    revision:rev orAskForRevision:false
-		    usingManager:mgr.
-		changesHereForMe := changesHere select:[:chg | chg isMethodChange
-							       and:[chg changeClass == currentClass]].
-		extensionMethodChangesInRepository addAll:changesHereForMe.
-	    "/ ].
-	].
+                changesHere := SourceCodeManagerUtilities default
+                    changeSetForExtensionMethodsForPackage:package
+                    revision:rev orAskForRevision:false
+                    usingManager:mgr.
+                changesHereForMe := changesHere select:[:chg | chg isMethodChange
+                                                               and:[chg changeClass == currentClass]].
+                extensionMethodChangesInRepository addAll:changesHereForMe.
+            "/ ].
+        ].
     ].
 
     versionsAreTheSame := false.
     diffSet := extensionMethodChangesInImage diffSetsAgainst:extensionMethodChangesInRepository.
     diffSet isEmpty ifTrue:[
-	self information:'Versions are identical.'.
-	^ self
+        self information:'Versions are identical.'.
+        ^ self
     ].
 
     (UserPreferences versionDiffViewerClass)
-	openOnDiffSet:diffSet
-	labelA:'Current (In Image)'
-	labelB:('Repository (%1 extension package(s))' bindWith:extensionProjectDefinitions size)
-	title:'Diffs'
-	ignoreExtensions:false.
+        openOnDiffSet:diffSet
+        labelA:'Current (In Image)'
+        labelB:('Repository (%1 extension package(s))' bindWith:extensionProjectDefinitions size)
+        title:'Diffs'
+        ignoreExtensions:false.
 
     self normalLabel.
 
@@ -34090,20 +35146,20 @@
     currentClass isNil ifTrue:[^ self].
 
     (projectDefinition := currentClass theNonMetaclass) isProjectDefinition ifFalse:[
-	self classMenuCompareClassExtensionsWithRepository.
-	^ self.
+        self classMenuCompareClassExtensionsWithRepository.
+        ^ self.
     ].
     projectsPackage := projectDefinition package.
 
     mgr := SourceCodeManagerUtilities sourceCodeManagerFor:projectDefinition.
     mgr isNil ifTrue:[
-	^ self
+        ^ self
     ].
 
     revString := projectDefinition perform:(mgr nameOfVersionMethodForExtensions) ifNotUnderstood:nil.
     revString isNil ifTrue:[
-	self warn:('%1 seems to not have any extensions (loaded)' bindWith:projectsPackage).
-	^ self.
+        self warn:('%1 seems to not have any extensions (loaded)' bindWith:projectsPackage).
+        ^ self.
     ].
     info := mgr revisionInfoFromString:revString.
     rev := info revision.
@@ -34112,62 +35168,62 @@
     "/ ask for revision
     "/
     newestRev := mgr
-		    newestRevisionInFile:'extensions.st'
-		    directory:(projectDefinition directory)
-		    module:(projectDefinition module).
+                    newestRevisionInFile:'extensions.st'
+                    directory:(projectDefinition directory)
+                    module:(projectDefinition module).
 
     msg := resources string:'Compare to revision: (empty for newest)'.
     rev notNil ifTrue:[
-	msg := msg , '\\' , (resources string:'Current extensions.st is based upon rev %1.'
-				       with:rev).
+        msg := msg , '\\' , (resources string:'Current extensions.st is based upon rev %1.'
+                                       with:rev).
     ].
     newestRev notNil ifTrue:[
-	msg := msg , '\' , (resources string:'Newest in reporitory is %1.'
-				       with:newestRev)
+        msg := msg , '\' , (resources string:'Newest in repository is %1.'
+                                       with:newestRev)
     ].
 
     self normalLabel.
     rev := SourceCodeManagerUtilities default
-		askForExistingRevision:msg
-		title:'Compare Extensions against Revision'
-		class:nil
-		manager:mgr
-		module:projectDefinition module package:projectDefinition directory
-		fileName:'extensions.st'.
+                askForExistingRevision:msg
+                title:'Compare Extensions against Revision'
+                class:nil
+                manager:mgr
+                module:projectDefinition module package:projectDefinition directory
+                fileName:'extensions.st'.
 
     versionsAreTheSame := false.
     rev isNil ifTrue:[
-	self normalLabel.
-	^ self.
+        self normalLabel.
+        ^ self.
     ].
 
     rev withoutSpaces isEmpty ifTrue:[
-	msg := 'extracting newest %1 (' , (newestRev ? '???') , ')'.
-	rev := newestRev.
-	revString := 'newest'.
-    ] ifFalse:[
-	msg := 'extracting previous %1'.
-	revString := rev
+        msg := 'extracting newest %1 (' , (newestRev ? '???') , ')'.
+        rev := newestRev.
+        revString := 'newest'.
+    ] ifFalse:[
+        msg := 'extracting previous %1'.
+        revString := rev
     ].
     changeSetForMethodsInRepository :=
-	SourceCodeManagerUtilities default
-	    changeSetForExtensionMethodsForPackage:projectsPackage
-	    revision:revString orAskForRevision:false
-	    usingManager:mgr.
+        SourceCodeManagerUtilities default
+            changeSetForExtensionMethodsForPackage:projectsPackage
+            revision:revString orAskForRevision:false
+            usingManager:mgr.
 
     changeSetForMethodsInImage := ChangeSet forExistingMethods:(
-				    Method allInstances
-					select:[:m | m package = projectsPackage
-						     and:[ m mclass notNil and:[m isExtension]]]).
+                                    Method allInstances
+                                        select:[:m | m package = projectsPackage
+                                                     and:[ m mclass notNil and:[m isExtension]]]).
 
     diffSet := changeSetForMethodsInImage diffSetsAgainst:changeSetForMethodsInRepository.
 
     (UserPreferences versionDiffViewerClass)
-	openOnDiffSet:diffSet
-	labelA:'Current (In Image)'
-	labelB:'Repository (',rev,')'
-	title:'Diffs'
-	ignoreExtensions:false.
+        openOnDiffSet:diffSet
+        labelA:'Current (In Image)'
+        labelB:'Repository (',rev,')'
+        title:'Diffs'
+        ignoreExtensions:false.
 
     self normalLabel.
 
@@ -34194,14 +35250,14 @@
 
     currentClass := self theSingleSelectedLoadedNonMetaclassOrNil.
     currentClass isNil ifTrue:[
-	self warn:'Cannot compare unloaded classes.'.
-	^ self.
+        self warn:'Cannot compare unloaded classes.'.
+        ^ self.
     ].
 
     nm := currentClass name.
     mgr := SourceCodeManagerUtilities sourceCodeManagerFor:currentClass.
     mgr isNil ifTrue:[
-	^ self
+        ^ self
     ].
     self classMenuCompareTwoRepositoryVersionsUsingManager: mgr
 
@@ -34216,27 +35272,27 @@
 
     currentClass := self theSingleSelectedLoadedNonMetaclassOrNil.
     currentClass isNil ifTrue:[
-	self warn:'Cannot compare unloaded classes.'.
-	^ self.
+        self warn:'Cannot compare unloaded classes.'.
+        ^ self.
     ].
 
     nm := currentClass name.
     mgr := manager.
     mgr isNil ifTrue:[
-	^ self
+        ^ self
     ].
 
     self normalLabel.
     rev1 := manager utilities
-		askForExistingRevision:(resources string:'Compare which revision:')
-		title:(resources string:'Compare which repository version')
-		class:currentClass.
+                askForExistingRevision:(resources string:'Compare which revision:')
+                title:(resources string:'Compare which repository version')
+                class:currentClass.
     rev1 isNil ifTrue:[^ self].
 
     rev2 := manager utilities
-		askForExistingRevision:(resources string:'Against which revision:')
-		title:(resources string:'Against which repository version')
-		class:currentClass.
+                askForExistingRevision:(resources string:'Against which revision:')
+                title:(resources string:'Against which repository version')
+                class:currentClass.
     rev2 isNil ifTrue:[^ self].
 
     source1 := self getClassSourceFor:currentClass revision:rev1 usingManager: manager.
@@ -34245,19 +35301,19 @@
     self busyLabel:'comparing  ...' with:nil.
     versionsAreTheSame := (source1 = source2).
     versionsAreTheSame ifFalse:[
-	self busyLabel:'comparing  ...' with:nil.
-	(UserPreferences versionDiffViewerClass)
-		  openOnClass:currentClass
-		  labelA:(rev1)
-		  sourceA:source1
-		  labelB:(rev2)
-		  sourceB:source2
-		  title:('comparing ' , currentClass name)
-		  ifSame:[versionsAreTheSame := true].
-
-	versionsAreTheSame ifTrue:[
-	    self information:'Versions are identical.'.
-	].
+        self busyLabel:'comparing  ...' with:nil.
+        (UserPreferences versionDiffViewerClass)
+                  openOnClass:currentClass
+                  labelA:(rev1)
+                  sourceA:source1
+                  labelB:(rev2)
+                  sourceB:source2
+                  title:('comparing ' , currentClass name)
+                  ifSame:[versionsAreTheSame := true].
+
+        versionsAreTheSame ifTrue:[
+            self information:'Versions are identical.'.
+        ].
     ].
     self normalLabel.
 
@@ -34270,7 +35326,7 @@
 
     |mgr|
 
-    mgr := Smalltalk at:sourceCodeManagerClassName asSymbol.
+    mgr := Smalltalk classNamed:sourceCodeManagerClassName.
     self assert:(mgr notNil).
     self classMenuCompareTwoRepositoryVersionsUsingManager:mgr
 
@@ -34280,50 +35336,50 @@
 classMenuCompareWithFile
     "compare the class against a version in a file"
 
-    |collectionOfClasses classes classesToUnload current fileName fileVersion remote diffs allDiffs title|
+    |collectionOfClasses current fileName fileVersion diffs allDiffs title|
 
     collectionOfClasses := self selectedClassesValue.
 
     collectionOfClasses do:[:eachClass |
-	|className metaclassName|
-
-	className := eachClass theNonMetaclass name.
-	metaclassName := eachClass theMetaclass name.
-	eachClass isLoaded ifFalse:[
-	    Transcript showCR:('Cannot compare unloaded class: ' , eachClass name).
-	] ifTrue:[
-	    fileName := Dialog requestFileName:'Compare against:'.
-	    fileName isEmptyOrNil ifTrue:[^ self].
-
-	    self busyLabel:'comparing  ...' with:nil.
-
-	    current    := ChangeSet forExistingClass:eachClass theNonMetaclass.
-	    fileVersion := ChangeSet fromFile:fileName.
-
-	    diffs := fileVersion diffSetsAgainst:current.
-	    allDiffs isNil ifTrue:[
-		allDiffs := diffs.
-	    ] ifFalse:[
-		allDiffs changed addAll:(diffs changed).
-		allDiffs onlyInArg addAll:(diffs onlyInArg).
-		allDiffs onlyInReceiver addAll:(diffs onlyInReceiver).
-	    ].
-	].
+        |className metaclassName|
+
+        className := eachClass theNonMetaclass name.
+        metaclassName := eachClass theMetaclass name.
+        eachClass isLoaded ifFalse:[
+            Transcript showCR:('Cannot compare unloaded class: ' , className).
+        ] ifTrue:[
+            fileName := Dialog requestFileName:('Compare against:', className) default:(eachClass theNonMetaclass classFilename).
+            fileName isEmptyOrNil ifTrue:[^ self].
+
+            self busyLabel:'comparing  ...' with:nil.
+
+            current    := ChangeSet forExistingClass:eachClass theNonMetaclass.
+            fileVersion := ChangeSet fromFile:fileName.
+
+            diffs := fileVersion diffSetsAgainst:current.
+            allDiffs isNil ifTrue:[
+                allDiffs := diffs.
+            ] ifFalse:[
+                allDiffs changed addAll:(diffs changed).
+                allDiffs onlyInArg addAll:(diffs onlyInArg).
+                allDiffs onlyInReceiver addAll:(diffs onlyInReceiver).
+            ].
+        ].
     ].
 
     allDiffs isEmpty ifTrue:[
-	self information:'The Versions are Equal.'.
-    ] ifFalse:[
-	title := collectionOfClasses size == 1
-		    ifTrue:['Differences of %1' bindWith:collectionOfClasses first name]
-		    ifFalse:['Differences of %1 classes' bindWith:collectionOfClasses size].
-
-	VersionDiffBrowser
-	    openOnDiffSet:allDiffs
-	    labelA:'Version in File ',fileName
-	    labelB:'Image'
-	    title:title
-	    ignoreExtensions:true.
+        self information:'The Versions are Equal.'.
+    ] ifFalse:[
+        title := collectionOfClasses size == 1
+                    ifTrue:['Differences of %1' bindWith:collectionOfClasses first name]
+                    ifFalse:['Differences of %1 classes' bindWith:collectionOfClasses size].
+
+        VersionDiffBrowser
+            openOnDiffSet:allDiffs
+            labelA:'Version in File ',fileName
+            labelB:'Image'
+            title:title
+            ignoreExtensions:true.
     ].
 
     self normalLabel.
@@ -34343,34 +35399,34 @@
      with the some version found in the repository."
 
     self
-	askForRepositoryVersionUsingManager:manager
-	thenWithCurrentVersionDo:[:currentClass :comparedSource :revStringIn :currentSource :thisRevString |
-	    |versionsAreTheSame revString rev|
-
-	    self busyLabel:'comparing  ...' with:nil.
-	    revString := revStringIn.
-	    versionsAreTheSame := (comparedSource = currentSource).
-	    versionsAreTheSame ifFalse:[
-		revString = '(newest)' ifTrue:[
-		    (rev := manager newestRevisionOf:currentClass) notNil ifTrue:[
-			revString := '(newest is ' , rev , ')'
-		    ]
-		].
-
-		self busyLabel:'comparing  ...' with:nil.
-		(UserPreferences versionDiffViewerClass)
-		      openOnClass:currentClass
-		      labelA:('repository: ' , revString)
-		      sourceA:comparedSource
-		      labelB:('current: (based on: ' , thisRevString , ')')
-		      sourceB:currentSource
-		      title:('comparing ' , currentClass name)
-		      ifSame:[versionsAreTheSame := true].
-	    ].
-	    versionsAreTheSame ifTrue:[
-		self information:'Versions are identical.'.
-	    ].
-	].
+        askForRepositoryVersionUsingManager:manager
+        thenWithCurrentVersionDo:[:currentClass :comparedSource :revStringIn :currentSource :thisRevString |
+            |versionsAreTheSame revString rev|
+
+            self busyLabel:'comparing  ...' with:nil.
+            revString := revStringIn.
+            versionsAreTheSame := (comparedSource = currentSource).
+            versionsAreTheSame ifFalse:[
+                revString = '(newest)' ifTrue:[
+                    (rev := manager newestRevisionOf:currentClass) notNil ifTrue:[
+                        revString := '(newest is ' , rev , ')'
+                    ]
+                ].
+
+                self busyLabel:'comparing  ...' with:nil.
+                (UserPreferences versionDiffViewerClass)
+                      openOnClass:currentClass
+                      labelA:('repository: ' , revString)
+                      sourceA:comparedSource
+                      labelB:('current: (based on: ' , thisRevString , ')')
+                      sourceB:currentSource
+                      title:('comparing ' , currentClass name)
+                      ifSame:[versionsAreTheSame := true].
+            ].
+            versionsAreTheSame ifTrue:[
+                self information:'Versions are identical.'.
+            ].
+        ].
 
     "Modified: / 11-10-2011 / 16:25:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Created: / 21-12-2011 / 20:28:48 / cg"
@@ -34382,7 +35438,7 @@
 
     |mgr|
 
-    mgr := Smalltalk at:sourceCodeManagerClassName asSymbol.
+    mgr := Smalltalk classNamed:sourceCodeManagerClassName.
     self assert:(mgr notNil).
     self classMenuCompareWithRepositoryUsingManager:mgr
 
@@ -34399,58 +35455,58 @@
 
     classesToUnload := IdentitySet new.
     classes :=
-	collectionOfClasses
-	    collect:[:eachClass |
-		|loadedClass|
-
-		eachClass isLoaded ifFalse:[
-		    loadedClass := eachClass autoload.
-		    loadedClass notNil ifTrue:[classesToUnload add:loadedClass].
-		] ifTrue:[
-		    loadedClass := eachClass
-		].
-		loadedClass isNil
-		    ifTrue:nil
-		    ifFalse:[loadedClass theNonMetaclass]]
-	    thenSelect:[:cls | cls notNil].
+        collectionOfClasses
+            collect:[:eachClass |
+                |loadedClass|
+
+                eachClass isLoaded ifFalse:[
+                    loadedClass := eachClass autoload.
+                    loadedClass notNil ifTrue:[classesToUnload add:loadedClass].
+                ] ifTrue:[
+                    loadedClass := eachClass
+                ].
+                loadedClass isNil
+                    ifTrue:nil
+                    ifFalse:[loadedClass theNonMetaclass]]
+            thenSelect:[:cls | cls notNil].
 
     classes do:[:eachClass |
-	|className metaclassName|
-
-	className := eachClass theNonMetaclass name.
-	metaclassName := eachClass theMetaclass name.
-	eachClass isLoaded ifFalse:[
-	    Transcript showCR:('Cannot compare unloaded class: ' , eachClass name).
-	] ifTrue:[
-	    self busyLabel:'comparing  ...' with:nil.
-
-	    current    := ChangeSet forExistingClass:eachClass theNonMetaclass.
-	    remote := (SmallTeam changesOnHost:hostName) select:[:ch | (ch className = className) or:[(ch className = metaclassName)] ].
-
-	    diffs := remote diffSetsAgainst:current.
-	    allDiffs isNil ifTrue:[
-		allDiffs := diffs.
-	    ] ifFalse:[
-		allDiffs changed addAll:(diffs changed).
-		allDiffs onlyInArg addAll:(diffs onlyInArg).
-		allDiffs onlyInReceiver addAll:(diffs onlyInReceiver).
-	    ].
-	].
+        |className metaclassName|
+
+        className := eachClass theNonMetaclass name.
+        metaclassName := eachClass theMetaclass name.
+        eachClass isLoaded ifFalse:[
+            Transcript showCR:('Cannot compare unloaded class: ' , eachClass name).
+        ] ifTrue:[
+            self busyLabel:'comparing  ...' with:nil.
+
+            current    := ChangeSet forExistingClass:eachClass theNonMetaclass.
+            remote := (SmallTeam changesOnHost:hostName) select:[:ch | (ch className = className) or:[(ch className = metaclassName)] ].
+
+            diffs := remote diffSetsAgainst:current.
+            allDiffs isNil ifTrue:[
+                allDiffs := diffs.
+            ] ifFalse:[
+                allDiffs changed addAll:(diffs changed).
+                allDiffs onlyInArg addAll:(diffs onlyInArg).
+                allDiffs onlyInReceiver addAll:(diffs onlyInReceiver).
+            ].
+        ].
     ].
 
     allDiffs isEmpty ifTrue:[
-	self information:'The Versions are Equal.'.
-    ] ifFalse:[
-	title := collectionOfClasses size == 1
-		    ifTrue:['Differences of %1' bindWith:collectionOfClasses first name]
-		    ifFalse:['Differences of %1 classes' bindWith:collectionOfClasses size].
-
-	VersionDiffBrowser
-	    openOnDiffSet:allDiffs
-	    labelA:'Version on Host ',hostName
-	    labelB:'Image'
-	    title:title
-	    ignoreExtensions:false.
+        self information:'The Versions are Equal.'.
+    ] ifFalse:[
+        title := collectionOfClasses size == 1
+                    ifTrue:['Differences of %1' bindWith:collectionOfClasses first name]
+                    ifFalse:['Differences of %1 classes' bindWith:collectionOfClasses size].
+
+        VersionDiffBrowser
+            openOnDiffSet:allDiffs
+            labelA:'Version on Host ',hostName
+            labelB:'Image'
+            title:title
+            ignoreExtensions:false.
     ].
 
     self normalLabel.
@@ -34468,25 +35524,25 @@
 
 classMenuCreatePatchFileAgainstVersionFromRepositoryUsingManager: managerOrNil
     self
-	askForRepositoryVersionUsingManager:managerOrNil
-	withExtensions:false
-	thenWithCurrentVersionDo:[:currentClass :comparedSource :revString :currentSource :thisRevString |
-	    |versionsAreTheSame revString rev current old diffs|
-
-	    self busyLabel:'comparing  ...' with:nil.
-	    versionsAreTheSame := (comparedSource = currentSource).
-	    versionsAreTheSame ifTrue:[
-		Dialog information:'No patches (same version)'
-	    ] ifFalse:[
-		current := ChangeSet fromStream:(currentSource readStream).
-		old := ChangeSet fromStream:(comparedSource readStream).
-
-		diffs := old diffSetsAgainst:current.
-		(versionsAreTheSame := diffs isEmpty) ifFalse:[
-		    self createPatchFileForDiffSet:diffs checkingForVersionBefore:thisRevString.
-		]
-	    ].
-	].
+        askForRepositoryVersionUsingManager:managerOrNil
+        withExtensions:false
+        thenWithCurrentVersionDo:[:currentClass :comparedSource :revString :currentSource :thisRevString |
+            |versionsAreTheSame revString rev current old diffs|
+
+            self busyLabel:'comparing  ...' with:nil.
+            versionsAreTheSame := (comparedSource = currentSource).
+            versionsAreTheSame ifTrue:[
+                Dialog information:'No patches (same version)'
+            ] ifFalse:[
+                current := ChangeSet fromStream:(currentSource readStream).
+                old := ChangeSet fromStream:(comparedSource readStream).
+
+                diffs := old diffSetsAgainst:current.
+                (versionsAreTheSame := diffs isEmpty) ifFalse:[
+                    self createPatchFileForDiffSet:diffs checkingForVersionBefore:thisRevString.
+                ]
+            ].
+        ].
 
     "Created: / 26-09-2012 / 13:10:04 / cg"
 !
@@ -34501,21 +35557,21 @@
 
     currentClass := self theSingleSelectedLoadedNonMetaclassOrNil.
     currentClass isNil ifTrue:[
-	self warn:'Cannot load unloaded classes.'.
-	^ self.
+        self warn:'Cannot load unloaded classes.'.
+        ^ self.
     ].
 
     nm := currentClass name.
     mgr := SourceCodeManagerUtilities sourceCodeManagerFor:currentClass.
     mgr isNil ifTrue:[
-	^ self
+        ^ self
     ].
 
     self normalLabel.
     rev := SourceCodeManagerUtilities default
-		askForExistingRevision:(resources string:'Edit which revision:')
-		title:(resources string:'Edit which repository version')
-		class:currentClass.
+                askForExistingRevision:(resources string:'Edit which revision:')
+                title:(resources string:'Edit which repository version')
+                class:currentClass.
     rev isNil ifTrue:[^ self].
 
     source := self getClassSourceFor:currentClass revision:rev.
@@ -34567,35 +35623,35 @@
     navigationState realModifiedState:false.
 
     self
-	selectedClassesNonMetaDo:
-	    [:cls |
-	       self
-		showRepositoryLogOf:cls short:shortOrNot
-		beforeLogDo:[:s |
-		    self selectedClassesValue size > 1 ifTrue:[
-			s nextPutLine:'-----------------------------------------------------------'.
-			s nextPutLine:('%1 log for %2:'
-					    bindWith:(shortOrNot ifTrue:['Short'] ifFalse:['Full'])
-					    with:cls name).
-			s nextPutLine:'-----------------------------------------------------------'.
-			s cr.
-		    ]
-		]
-	    ]
-	ifUnloaded:
-	    [:cls |
-		true.
-	    ]
-	ifPrivate:
-	    [:cls |
-		|owner|
-		owner := cls owningClass.
-		(self selectedClassesValue includes:owner) ifFalse:[
-		    self warn:'cannot show log of private class: %1\\Please see the log of the owning class (%2).'
-			with:cls nameWithoutPrefix allBold
-			with:owner name.
-		]
-	    ].
+        selectedClassesNonMetaDo:
+            [:cls |
+               self
+                showRepositoryLogOf:cls short:shortOrNot
+                beforeLogDo:[:s |
+                    self selectedClassesValue size > 1 ifTrue:[
+                        s nextPutLine:'-----------------------------------------------------------'.
+                        s nextPutLine:('%1 log for %2:'
+                                            bindWith:(shortOrNot ifTrue:['Short'] ifFalse:['Full'])
+                                            with:cls name).
+                        s nextPutLine:'-----------------------------------------------------------'.
+                        s cr.
+                    ]
+                ]
+            ]
+        ifUnloaded:
+            [:cls |
+                true.
+            ]
+        ifPrivate:
+            [:cls |
+                |owner|
+                owner := cls owningClass.
+                (self selectedClassesValue includes:owner) ifFalse:[
+                    self warn:'cannot show log of private class: %1\\Please see the log of the owning class (%2).'
+                        with:cls nameWithoutPrefix allBold
+                        with:owner name.
+                ]
+            ].
     self normalLabel.
 
     "Modified: / 28-02-2012 / 16:47:53 / cg"
@@ -34619,35 +35675,35 @@
     navigationState realModifiedState:false.
 
     self
-	selectedClassesNonMetaDo:
-	    [:cls |
-	       self
-		showRepositoryLogOf:cls short:shortOrNot usingManager: manager
-		beforeLogDo:[:s |
-		    self selectedClassesValue size > 1 ifTrue:[
-			s nextPutLine:'-----------------------------------------------------------'.
-			s nextPutLine:('%1 log for %2:'
-					    bindWith:(shortOrNot ifTrue:['Short'] ifFalse:['Full'])
-					    with:cls name).
-			s nextPutLine:'-----------------------------------------------------------'.
-			s cr.
-		    ]
-		]
-	    ]
-	ifUnloaded:
-	    [:cls |
-		true.
-	    ]
-	ifPrivate:
-	    [:cls |
-		|owner|
-		owner := cls owningClass.
-		(self selectedClassesValue includes:owner) ifFalse:[
-		    self warn:'cannot show log of private class: %1\\Please see the log of the owning class (%2).'
-			with:cls nameWithoutPrefix allBold
-			with:owner name.
-		]
-	    ].
+        selectedClassesNonMetaDo:
+            [:cls |
+               self
+                showRepositoryLogOf:cls short:shortOrNot usingManager: manager
+                beforeLogDo:[:s |
+                    self selectedClassesValue size > 1 ifTrue:[
+                        s nextPutLine:'-----------------------------------------------------------'.
+                        s nextPutLine:('%1 log for %2:'
+                                            bindWith:(shortOrNot ifTrue:['Short'] ifFalse:['Full'])
+                                            with:cls name).
+                        s nextPutLine:'-----------------------------------------------------------'.
+                        s cr.
+                    ]
+                ]
+            ]
+        ifUnloaded:
+            [:cls |
+                true.
+            ]
+        ifPrivate:
+            [:cls |
+                |owner|
+                owner := cls owningClass.
+                (self selectedClassesValue includes:owner) ifFalse:[
+                    self warn:'cannot show log of private class: %1\\Please see the log of the owning class (%2).'
+                        with:cls nameWithoutPrefix allBold
+                        with:owner name.
+                ]
+            ].
     self normalLabel.
 
     "Created: / 11-10-2011 / 20:32:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -34668,7 +35724,7 @@
 
     |mgr|
 
-    mgr := Smalltalk at:sourceCodeManagerClassName asSymbol.
+    mgr := Smalltalk classNamed:sourceCodeManagerClassName.
     self assert:(mgr notNil).
     self classMenuRevisionLog:false usingManager:mgr
 
@@ -34680,15 +35736,20 @@
     |classes tag tags|
 
     classes := self selectedNonMetaclasses.
-    tag := self askForTagForClasses:classes.
+    SourceCodeManagerError handle:[:ex |
+        Dialog warn:(resources
+                            stringWithCRs:'Could not fetch tag information.\\Please check your sourcecode manager settings.\(and possibly the network for reachability of the repository)').
+    ] do:[
+        tag := self askForTagForClasses:classes.
+    ].
     tag isEmptyOrNil ifTrue:[^ self ].
 
     CVSSourceCodeManager recentTag:tag.
     self withWaitCursorDo:[
-	tags := tag asCollectionOfSubstringsSeparatedByAny:',;'.
-	tags do:[:eachTag |
-	    SourceCodeManagerUtilities default tagClasses:classes as:(eachTag withoutSeparators).
-	].
+        tags := tag asCollectionOfSubstringsSeparatedByAny:',;'.
+        tags do:[:eachTag |
+            SourceCodeManagerUtilities default tagClasses:classes as:(eachTag withoutSeparators).
+        ].
     ]
 
     "Created: / 12-09-2006 / 13:36:59 / cg"
@@ -34721,7 +35782,7 @@
 
     |mgr|
 
-    mgr := Smalltalk at:sourceCodeManagerClassName asSymbol.
+    mgr := Smalltalk classNamed:sourceCodeManagerClassName.
     self assert:(mgr notNil).
     self classMenuShortRevisionLogUsingManager:mgr
 
@@ -34746,8 +35807,8 @@
     |utilities|
 
     utilities := aManagerOrNil isNil
-		    ifTrue:[(SourceCodeManagerUtilities sourceCodeManagerFor:aClass) utilities]
-		    ifFalse:[aManagerOrNil utilities].
+                    ifTrue:[(SourceCodeManagerUtilities sourceCodeManagerFor:aClass) utilities]
+                    ifFalse:[aManagerOrNil utilities].
 
     utilities compareClassWithRepository:aClass askForRevision:false.
     self normalLabel.
@@ -34759,42 +35820,34 @@
 createPatchFileForDiffSet:diffSet checkingForVersionBefore:thisRevString
     "for now, this works only for a diffSet containing only a single class"
 
-    |highest highestString nrString nr fileNamePrefix fileNameMiddle
-     changedClassesAndMetaclasses changedClasses fileName changedOwningClasses generatedPatchFilename tempStream changeSet|
+    |fileNamePrefix fileNameMiddle stxPatchesDir
+     changedClassesAndMetaclasses changedClasses
+     fileName changedOwningClasses generatedPatchFilename
+     tempStream changeSet labels values answer
+     keyFileGeneratorClass browseFile|
 
     "/ find the highest numbered patchfile
-    'stxPatches' asFilename directoryContentsDo:[:fn |
-	(fn includes:$_) ifTrue:[
-	    nrString := fn upTo:$_.
-	    nr := Integer readFrom:nrString onError:nil.
-	    nr notNil ifTrue:[
-		nr > (highest ? -1) ifTrue:[
-		    highest := nr.
-		    highestString := nrString.
-		]
-	    ].
-	].
-    ].
-    highest isNil ifTrue:[
-	fileNamePrefix := '01'
-    ] ifFalse:[
-	fileNamePrefix := (highest+1) printStringLeftPaddedTo:(highestString size) with:$0.
-    ].
+    fileNamePrefix := self nextPatchNumberIn:'stxPatches' asFilename.
 
     changedClassesAndMetaclasses := diffSet changedClasses.
     changedClasses := changedClassesAndMetaclasses collect:[:clsOrMeta | clsOrMeta theNonMetaclass].
     changedOwningClasses := changedClasses collect:[:each | each isPrivate
-								ifTrue:[ each owningClass ]
-								ifFalse:[ each ]] as:Set.
+                                                                ifTrue:[ each owningClass ]
+                                                                ifFalse:[ each ]] as:Set.
     changedOwningClasses := changedOwningClasses asOrderedCollection.
 
     changedOwningClasses size == 1 ifTrue:[
-	fileNameMiddle := changedOwningClasses first nameWithoutPrefix
-    ] ifFalse:[
-	fileNameMiddle := 'patches'
-    ].
-    fileNameMiddle := fileNameMiddle asFilename makeLegalFilename name.
-    fileName := (fileNamePrefix,'_',fileNameMiddle,'.st') asFilename.
+        fileNameMiddle := changedOwningClasses first nameWithoutPrefix
+    ] ifFalse:[
+        fileNameMiddle := 'patches'
+    ].
+    fileNameMiddle := (fileNameMiddle asFilename makeLegalFilename withSuffix:'chg') name.
+    fileName := fileNamePrefix, '_', fileNameMiddle.
+
+    stxPatchesDir := 'stxPatches' asFilename.
+    stxPatchesDir exists ifFalse:[
+        stxPatchesDir recursiveMakeDirectory.
+    ].
 
     tempStream := FileStream newTemporaryIn:'stxPatches'.
     tempStream nextPutLine:('"/ patches to bring %1 to version %2' bindWith:changedClasses first name with:thisRevString).
@@ -34802,27 +35855,82 @@
     tempStream nextPutLine:('"/ first, a guard, to ignore the patch if the library already contains an up-to-date class:').
     tempStream nextPutLine:('"/').
     changedOwningClasses do:[:eachClass |
-	tempStream nextPutLine:('(AbstractSourceCodeManager isRevision:(%2 revision) sameOrAfter:''%1'') ifTrue:[ AbortSignal raiseErrorString:''patch is for older version'' ].'
-			    bindWith:eachClass revision
-			    with:eachClass name).
+        tempStream nextPutLine:('(Smalltalk classNamed:''%2'') isNil ifTrue:[InvalidPatchError raiseErrorString:''patch is for non-existant class %2 (probably for a plugin that is not installed)'']. 
+(''%1'' compareAsVersionNumberWith:%2 revision) < 0 ifTrue:[ InvalidPatchError raiseErrorString:''patch is for older version (%1) of class %2'' ].'
+                            bindWith:eachClass revision
+                            with:eachClass name).
     ].
     tempStream nextPutChunkSeparator; cr; cr.
 
-    changeSet := ChangeSet fromDiffSet:diffSet.
+    "do not add version methods to the patch file.
+     The version header will get new, invalid versions when checked into CVS"
+    changeSet := (ChangeSet fromDiffSet:diffSet) rejectAllVersionMethodChanges.
     changeSet fileOutOn:tempStream.
     tempStream syncData; close.
 
     generatedPatchFilename := ('stxPatches' asFilename construct:fileName).
 
     tempStream fileName renameTo:generatedPatchFilename.
-    (Dialog
-	confirm:('Created new patchFile as: "%1"' bindWith:generatedPatchFilename name)
-	yesLabel:'Show' noLabel:'OK')
-    ifTrue:[
-	UserPreferences fileBrowserClass openOn:generatedPatchFilename
+    browseFile := false.
+
+    labels := #('OK' 'Show').
+    values := #(ok show).
+
+    "/ CG: this hard coded expecco stuff in here should be
+    "/ done by installing an extension method, whenever expecco is loaded,
+    "/ which adds the corresponding item to the browser's menu and adds another method
+
+    (keyFileGeneratorClass := Smalltalk at:#'Expecco::KeyFileGenerator') notNil ifTrue:[
+        "Can generate signed patches"
+        labels := labels , #( 'Generate Signed Patch' ).
+        values := values , #( sign ).
+    ].
+    answer := Dialog
+        confirmWithCancel:('Created new patchFile as: "%1"' bindWith:generatedPatchFilename name)
+        labels:labels values:values default:1.
+
+    answer == #sign ifTrue:[
+        |pkcs7SignedData patchesDir expeccoVersionArray|
+
+        expeccoVersionArray := (Smalltalk at:#'Expecco::Expecco') versionArray.
+        patchesDir := (Smalltalk at:#exept_expecco) packageDirectory / 'patches'
+                        / ('%1.%2.%3' expandPlaceholdersWith:expeccoVersionArray).
+
+        patchesDir exists ifFalse:[
+            "Not an expecco development version - fall back"
+            patchesDir := (Smalltalk at:#'Expecco::Expecco') patchesDir.
+            patchesDir exists ifFalse:[
+                patchesDir recursiveMakeDirectory.
+            ].
+        ].
+        fileNamePrefix := self nextPatchNumberIn:patchesDir.
+        fileName := patchesDir / (fileNamePrefix, '_', fileNameMiddle).
+        generatedPatchFilename moveTo:fileName.
+        generatedPatchFilename := fileName.
+
+        pkcs7SignedData := keyFileGeneratorClass new signExpeccoCode:generatedPatchFilename contentsOfEntireFile.
+        (generatedPatchFilename withSuffix:'expeccoPatch') contents:pkcs7SignedData.
+        generatedPatchFilename := generatedPatchFilename withSuffix:'info'.
+        generatedPatchFilename writingFileDo:[:stream |
+            stream
+                nextPutAll:'Created by: ';
+                nextPutAll:OperatingSystem getFullUserName;
+                nextPutAll:' at: '.
+            Timestamp now printOn:stream.
+            stream cr; close.
+        ].
+        browseFile := true.
+    ].
+    answer == #show ifTrue:[
+        browseFile := true.
+    ].
+
+    browseFile ifTrue:[
+        UserPreferences fileBrowserClass openOn:generatedPatchFilename
     ].
 
     "Created: / 26-09-2012 / 15:13:07 / cg"
+    "Modified: / 17-01-2014 / 11:55:51 / sr"
 !
 
 doCompareClassesWithRepository:collectionOfClasses
@@ -34841,112 +35949,112 @@
 
 
     collectionOfClasses size == 1 ifTrue:[
-	self compareAgainstNewestInRepository:(collectionOfClasses first theNonMetaclass) usingManager:aManagerOrNil.
-	^ self.
+        self compareAgainstNewestInRepository:(collectionOfClasses first theNonMetaclass) usingManager:aManagerOrNil.
+        ^ self.
     ].
 
     classesToUnload := IdentitySet new.
     classes :=
-	collectionOfClasses
-	    collect:[:eachClass |
-		|loadedClass|
-
-		eachClass isLoaded ifFalse:[
-		    loadedClass := eachClass autoload.
-		    loadedClass notNil ifTrue:[classesToUnload add:loadedClass].
-		] ifTrue:[
-		    loadedClass := eachClass
-		].
-		loadedClass isNil
-		    ifTrue:nil
-		    ifFalse:[loadedClass theNonMetaclass]]
-	    thenSelect:[:cls | cls notNil].
+        collectionOfClasses
+            collect:[:eachClass |
+                |loadedClass|
+
+                eachClass isLoaded ifFalse:[
+                    loadedClass := eachClass autoload.
+                    loadedClass notNil ifTrue:[classesToUnload add:loadedClass].
+                ] ifTrue:[
+                    loadedClass := eachClass
+                ].
+                loadedClass isNil
+                    ifTrue:nil
+                    ifFalse:[loadedClass theNonMetaclass]]
+            thenSelect:[:cls | cls notNil].
 
     classes do:[:eachClass |
-	eachClass isLoaded ifFalse:[
-	    Transcript showCR:('Cannot compare unloaded class: ' , eachClass name).
-	] ifTrue:[
-	    aStream := self sourceStreamForRepositorySourceOfClass:eachClass usingManager:aManagerOrNil.
-	    aStream notNil ifTrue:[
-		aStream class readErrorSignal handle:[:ex |
-		    self warn:('read error while reading extracted source\\' , ex description) withCRs.
-		    aStream close.
-		    ^ self
-		] do:[
-		    comparedSource := aStream contents asString.
-		].
-		aStream close.
-
-		self busyLabel:'generating current source ...' with:nil.
-
-		aStream := '' writeStream.
-		Method flushSourceStreamCache.
-		"/ eachClass fileOutOn:aStream withTimeStamp:false.
-		"/ currentSource := aStream contents asString.
-		currentSource := eachClass source asString.
-		aStream close.
-
-		self busyLabel:'comparing  ...' with:nil.
-
-		comparedSource = currentSource ifTrue:[
-		    ((eachClass revision = ((aManagerOrNil ? eachClass sourceCodeManager) newestRevisionOf:eachClass))
-		    and:[eachClass hasUnsavedChanges]) ifTrue:[
-			(self confirm:'Versions are identical.\\Remove entries from changeSet ?' withCRs) ifTrue:[
-			    ChangeSet current condenseChangesForClass:eachClass.
-			].
-		    ] ifFalse:[
-			self information:'Versions are identical.'.
-		    ]
-		] ifFalse:[
-		    thisRevString := eachClass revision.
-		    thisRevString isNil ifTrue:[
-			thisRevString := 'no revision'
-		    ].
-
-		    self busyLabel:'comparing  ...' with:nil.
-
-		    current    := ChangeSet fromStream:(s := currentSource readStream). s close.
-		    repository := ChangeSet fromStream:(s := comparedSource readStream). s close.
-
-		    diffs := repository diffSetsAgainst:current.
-		    allDiffs isNil ifTrue:[
-			allDiffs := diffs.
-		    ] ifFalse:[
-			allDiffs changed addAll:(diffs changed).
-			allDiffs onlyInArg addAll:(diffs onlyInArg).
-			allDiffs onlyInReceiver addAll:(diffs onlyInReceiver).
-		    ].
-		].
-	    ].
-	].
+        eachClass isLoaded ifFalse:[
+            Transcript showCR:('Cannot compare unloaded class: ' , eachClass name).
+        ] ifTrue:[
+            aStream := self sourceStreamForRepositorySourceOfClass:eachClass usingManager:aManagerOrNil.
+            aStream notNil ifTrue:[
+                aStream class readErrorSignal handle:[:ex |
+                    self warn:('read error while reading extracted source\\' , ex description) withCRs.
+                    aStream close.
+                    ^ self
+                ] do:[
+                    comparedSource := aStream contents asString.
+                ].
+                aStream close.
+
+                self busyLabel:'generating current source ...' with:nil.
+
+                aStream := '' writeStream.
+                Method flushSourceStreamCache.
+                "/ eachClass fileOutOn:aStream withTimeStamp:false.
+                "/ currentSource := aStream contents asString.
+                currentSource := eachClass source asString.
+                aStream close.
+
+                self busyLabel:'comparing  ...' with:nil.
+
+                comparedSource = currentSource ifTrue:[
+                    ((eachClass revision = ((aManagerOrNil ? eachClass sourceCodeManager) newestRevisionOf:eachClass))
+                    and:[eachClass hasUnsavedChanges]) ifTrue:[
+                        (self confirm:'Versions are identical.\\Remove entries from changeSet ?' withCRs) ifTrue:[
+                            ChangeSet current condenseChangesForClass:eachClass.
+                        ].
+                    ] ifFalse:[
+                        self information:'Versions are identical.'.
+                    ]
+                ] ifFalse:[
+                    thisRevString := eachClass revision.
+                    thisRevString isNil ifTrue:[
+                        thisRevString := 'no revision'
+                    ].
+
+                    self busyLabel:'comparing  ...' with:nil.
+
+                    current    := ChangeSet fromStream:(s := currentSource readStream). s close.
+                    repository := ChangeSet fromStream:(s := comparedSource readStream). s close.
+
+                    diffs := repository diffSetsAgainst:current.
+                    allDiffs isNil ifTrue:[
+                        allDiffs := diffs.
+                    ] ifFalse:[
+                        allDiffs changed addAll:(diffs changed).
+                        allDiffs onlyInArg addAll:(diffs onlyInArg).
+                        allDiffs onlyInReceiver addAll:(diffs onlyInReceiver).
+                    ].
+                ].
+            ].
+        ].
     ].
 
     allDiffs isEmpty ifTrue:[
-	(classes contains:[:someClass |
-	    (someClass hasUnsavedChanges)])
-	ifTrue:[
-	    (self confirm:(resources
-			    stringWithCRs:'The classes are up-to-date.\\Remove entries from changeSet ?'))
-	    ifTrue:[
-		classes do:[:eachClass |
-		    ChangeSet current condenseChangesForClass:eachClass.
-		]
-	    ].
-	] ifFalse:[
-	    self information:'The classes are up-to-date.'.
-	    ChangeSet current unrememberChangedClasses.
-	].
-    ] ifFalse:[
-	title := collectionOfClasses size == 1
-		    ifTrue:['Differences of %1' bindWith:collectionOfClasses first name]
-		    ifFalse:['Differences of %1 classes' bindWith:collectionOfClasses size].
-
-	VersionDiffBrowser
-	    openOnDiffSet:allDiffs
-	    labelA:'Repository'
-	    labelB:'Image'
-	    title:title
-	    ignoreExtensions:true.
+        (classes contains:[:someClass |
+            (someClass hasUnsavedChanges)])
+        ifTrue:[
+            (self confirm:(resources
+                            stringWithCRs:'The classes are up-to-date.\\Remove entries from changeSet ?'))
+            ifTrue:[
+                classes do:[:eachClass |
+                    ChangeSet current condenseChangesForClass:eachClass.
+                ]
+            ].
+        ] ifFalse:[
+            self information:'The classes are up-to-date.'.
+            ChangeSet current unrememberChangedClasses.
+        ].
+    ] ifFalse:[
+        title := collectionOfClasses size == 1
+                    ifTrue:['Differences of %1' bindWith:collectionOfClasses first name]
+                    ifFalse:['Differences of %1 classes' bindWith:collectionOfClasses size].
+
+        VersionDiffBrowser
+            openOnDiffSet:allDiffs
+            labelA:'Repository'
+            labelB:'Image'
+            title:title
+            ignoreExtensions:true.
     ].
 
     self normalLabel.
@@ -34968,171 +36076,171 @@
 
     classesToUnload := IdentitySet new.
     classes := collectionOfClasses collect:[:eachClass |
-	|loadedClass|
-
-	eachClass isLoaded ifFalse:[
-	    loadedClass := eachClass autoload.
-	    classesToUnload add:loadedClass.
-	] ifTrue:[
-	    loadedClass := eachClass
-	].
-	loadedClass theNonMetaclass
+        |loadedClass|
+
+        eachClass isLoaded ifFalse:[
+            loadedClass := eachClass autoload.
+            classesToUnload add:loadedClass.
+        ] ifTrue:[
+            loadedClass := eachClass
+        ].
+        loadedClass theNonMetaclass
 
     ].
 
     classes do:[:currentClass |
-	nm := currentClass name.
-	mgr := SourceCodeManagerUtilities sourceCodeManagerFor:currentClass.
-	mgr isNil ifTrue:[
-	    (Dialog
-		confirm:('No sourceCode manager defined for %1 - check settings.\\Skip this class ?' bindWith:currentClass name) withCRs)
-	    ifFalse:[
-		^ self
-	    ].
-	].
-	rev := currentClass binaryRevision.
-	rev isNil ifTrue:[
-	    rev := currentClass revision
-	].
-	rev isNil ifTrue:[
-	    "/
-	    "/ class not in repository - allow compare against any other containers newest contents
-	    "/
-	    self normalLabel.
-
-	    pkg := currentClass package.
-	    (pkg notNil and:[pkg ~= PackageId noProjectID]) ifTrue:[
-		containerModule := pkg upTo:$:.
-		containerPackage := pkg copyFrom:(containerModule size + 2).
-	    ].
-	    containerModule size == 0 ifTrue:[
-		containerModule := (SourceCodeManagerUtilities lastModule) ? Project current repositoryModule.
-	    ].
-	    containerPackage size == 0 ifTrue:[
-		containerPackage := (SourceCodeManagerUtilities lastPackage) ? Project current package.
-	    ].
-	    rslt := SourceCodeManagerUtilities default
-		askForContainer:(resources string:'The class seems to have no repository information.\\Do you want to compare it against an existing containers contents ?')
-		title:'Container to compare' note:nil
-		initialModule:containerModule
-		initialPackage:containerPackage
-		initialFileName:(currentClass name , '.st')
-		forNewContainer:false.
-	    rslt isNil ifTrue:[
-		"/ canel
-		^ self
-	    ].
-	    containerModule := rslt at:#module.
-	    containerPackage := rslt at:#package.
-	    containerFile := rslt at:#fileName.
-	    SourceCodeManagerUtilities lastModule:containerModule.
-	    SourceCodeManagerUtilities lastPackage:containerPackage.
-	] ifFalse:[
-	    "/
-	    "/ class in repository - ask for revision
-	    "/
-	    newestRev := mgr newestRevisionOf:currentClass.
-	    rev := newestRev.
-	].
-
-	(rev notNil or:[containerFile notNil]) ifTrue:[
-	    rev notNil ifTrue:[
-		rev withoutSpaces isEmpty ifTrue:[
-		    msg := 'extracting newest %1 (' , (newestRev ? '???') , ')'.
-		    "/ aStream := mgr getMostRecentSourceStreamForClassNamed:nm.
-		    aStream := mgr getSourceStreamFor:currentClass revision:newestRev.
-		    revString := 'newest'.
-		] ifFalse:[
-		    msg := 'extracting previous %1'.
-		    aStream := mgr getSourceStreamFor:currentClass revision:rev.
-		    revString := rev
-		].
-	    ] ifFalse:[
-		msg := 'extracting newest version from ' , containerModule , '/' , containerPackage, '/' , containerFile.
-		aStream := mgr streamForClass:nil fileName:containerFile revision:#newest directory:containerPackage module:containerModule cache:false.
-		revString := '???'
-	    ].
-	    self busyLabel:msg with:nm.
-
-	    aStream isNil ifTrue:[
-		info := mgr sourceInfoOfClass:currentClass.
-		info notNil ifTrue:[
-		    mod := info at:#module ifAbsent:'??'.
-		    dir := info at:#directory ifAbsent:'??'.
-		].
-
-		self warn:(resources
-			     string:'Could not extract source from repository (for module: ''%1'' , directory: ''%2'' , revision: ''%3'')'
-			     with:mod with:dir with:revString).
-		^ self
-	    ].
-	    aStream class readErrorSignal handle:[:ex |
-		self warn:('read error while reading extracted source\\' , ex description) withCRs.
-		aStream close.
-		^ self
-	    ] do:[
-		comparedSource := aStream contents asString.
-	    ].
-	    aStream close.
-
-	    self busyLabel:'generating current source ...' with:nil.
-
-	    aStream := '' writeStream.
-	    Method flushSourceStreamCache.
-	    "/ currentClass fileOutOn:aStream withTimeStamp:false.
-	    "/ currentSource := aStream contents asString.
-	    currentSource := currentClass source asString.
-	    aStream close.
-
-	    self busyLabel:'comparing  ...' with:nil.
-
-	    comparedSource = currentSource ifTrue:[
-		((currentClass revision = newestRev)
-		and:[currentClass hasUnsavedChanges]) ifTrue:[
-		    (self confirm:'Versions are identical.\\Remove entries from changeSet ?' withCRs) ifTrue:[
-			ChangeSet current condenseChangesForClass:currentClass.
-		    ].
-		] ifFalse:[
-		    self information:'Versions are identical.'.
-		]
-	    ] ifFalse:[
-		thisRevString := currentClass revision.
-		thisRevString isNil ifTrue:[
-		    thisRevString := 'no revision'
-		].
-
-		revString = '(newest)' ifTrue:[
-		    (rev := mgr newestRevisionOf:currentClass) notNil ifTrue:[
-			revString := '(newest is ' , rev , ')'
-		    ]
-		].
-
-		self busyLabel:'comparing  ...' with:nil.
-
-		current    := ChangeSet fromStream:(s := currentSource readStream). s close.
-		repository := ChangeSet fromStream:(s := comparedSource readStream). s close.
-		diffs := repository diffSetsAgainst:current.
-		allDiffs isNil ifTrue:[
-		    allDiffs := diffs.
-		] ifFalse:[
-		    allDiffs changed addAll:(diffs changed).
-		    allDiffs onlyInArg addAll:(diffs onlyInArg).
-		    allDiffs onlyInReceiver addAll:(diffs onlyInReceiver).
-		].
-	    ].
-	].
+        nm := currentClass name.
+        mgr := SourceCodeManagerUtilities sourceCodeManagerFor:currentClass.
+        mgr isNil ifTrue:[
+            (Dialog
+                confirm:('No sourceCode manager defined for %1 - check settings.\\Skip this class ?' bindWith:currentClass name) withCRs)
+            ifFalse:[
+                ^ self
+            ].
+        ].
+        rev := currentClass binaryRevision.
+        rev isNil ifTrue:[
+            rev := currentClass revision
+        ].
+        rev isNil ifTrue:[
+            "/
+            "/ class not in repository - allow compare against any other containers newest contents
+            "/
+            self normalLabel.
+
+            pkg := currentClass package.
+            (pkg notNil and:[pkg ~= PackageId noProjectID]) ifTrue:[
+                containerModule := pkg upTo:$:.
+                containerPackage := pkg copyFrom:(containerModule size + 2).
+            ].
+            containerModule size == 0 ifTrue:[
+                containerModule := (SourceCodeManagerUtilities lastModule) ? Project current repositoryModule.
+            ].
+            containerPackage size == 0 ifTrue:[
+                containerPackage := (SourceCodeManagerUtilities lastPackage) ? Project current package.
+            ].
+            rslt := SourceCodeManagerUtilities default
+                askForContainer:(resources string:'The class seems to have no repository information.\\Do you want to compare it against an existing containers contents ?')
+                title:'Container to compare' note:nil
+                initialModule:containerModule
+                initialPackage:containerPackage
+                initialFileName:(currentClass name , '.st')
+                forNewContainer:false.
+            rslt isNil ifTrue:[
+                "/ canel
+                ^ self
+            ].
+            containerModule := rslt at:#module.
+            containerPackage := rslt at:#package.
+            containerFile := rslt at:#fileName.
+            SourceCodeManagerUtilities lastModule:containerModule.
+            SourceCodeManagerUtilities lastPackage:containerPackage.
+        ] ifFalse:[
+            "/
+            "/ class in repository - ask for revision
+            "/
+            newestRev := mgr newestRevisionOf:currentClass.
+            rev := newestRev.
+        ].
+
+        (rev notNil or:[containerFile notNil]) ifTrue:[
+            rev notNil ifTrue:[
+                rev withoutSpaces isEmpty ifTrue:[
+                    msg := 'extracting newest %1 (' , (newestRev ? '???') , ')'.
+                    "/ aStream := mgr getMostRecentSourceStreamForClassNamed:nm.
+                    aStream := mgr getSourceStreamFor:currentClass revision:newestRev.
+                    revString := 'newest'.
+                ] ifFalse:[
+                    msg := 'extracting previous %1'.
+                    aStream := mgr getSourceStreamFor:currentClass revision:rev.
+                    revString := rev
+                ].
+            ] ifFalse:[
+                msg := 'extracting newest version from ' , containerModule , '/' , containerPackage, '/' , containerFile.
+                aStream := mgr streamForClass:nil fileName:containerFile revision:#newest directory:containerPackage module:containerModule cache:false.
+                revString := '???'
+            ].
+            self busyLabel:msg with:nm.
+
+            aStream isNil ifTrue:[
+                info := mgr sourceInfoOfClass:currentClass.
+                info notNil ifTrue:[
+                    mod := info at:#module ifAbsent:'??'.
+                    dir := info at:#directory ifAbsent:'??'.
+                ].
+
+                self warn:(resources
+                             string:'Could not extract source from repository (for module: ''%1'' , directory: ''%2'' , revision: ''%3'')'
+                             with:mod with:dir with:revString).
+                ^ self
+            ].
+            aStream class readErrorSignal handle:[:ex |
+                self warn:('read error while reading extracted source\\' , ex description) withCRs.
+                aStream close.
+                ^ self
+            ] do:[
+                comparedSource := aStream contents asString.
+            ].
+            aStream close.
+
+            self busyLabel:'generating current source ...' with:nil.
+
+            aStream := '' writeStream.
+            Method flushSourceStreamCache.
+            "/ currentClass fileOutOn:aStream withTimeStamp:false.
+            "/ currentSource := aStream contents asString.
+            currentSource := currentClass source asString.
+            aStream close.
+
+            self busyLabel:'comparing  ...' with:nil.
+
+            comparedSource = currentSource ifTrue:[
+                ((currentClass revision = newestRev)
+                and:[currentClass hasUnsavedChanges]) ifTrue:[
+                    (self confirm:'Versions are identical.\\Remove entries from changeSet ?' withCRs) ifTrue:[
+                        ChangeSet current condenseChangesForClass:currentClass.
+                    ].
+                ] ifFalse:[
+                    self information:'Versions are identical.'.
+                ]
+            ] ifFalse:[
+                thisRevString := currentClass revision.
+                thisRevString isNil ifTrue:[
+                    thisRevString := 'no revision'
+                ].
+
+                revString = '(newest)' ifTrue:[
+                    (rev := mgr newestRevisionOf:currentClass) notNil ifTrue:[
+                        revString := '(newest is ' , rev , ')'
+                    ]
+                ].
+
+                self busyLabel:'comparing  ...' with:nil.
+
+                current    := ChangeSet fromStream:(s := currentSource readStream). s close.
+                repository := ChangeSet fromStream:(s := comparedSource readStream). s close.
+                diffs := repository diffSetsAgainst:current.
+                allDiffs isNil ifTrue:[
+                    allDiffs := diffs.
+                ] ifFalse:[
+                    allDiffs changed addAll:(diffs changed).
+                    allDiffs onlyInArg addAll:(diffs onlyInArg).
+                    allDiffs onlyInReceiver addAll:(diffs onlyInReceiver).
+                ].
+            ].
+        ].
     ].
 
     title := collectionOfClasses size == 1
-		ifTrue:['Differences of %1' bindWith:collectionOfClasses first name]
-		ifFalse:['Differences of %1 classes' bindWith:collectionOfClasses size].
+                ifTrue:['Differences of %1' bindWith:collectionOfClasses first name]
+                ifFalse:['Differences of %1 classes' bindWith:collectionOfClasses size].
 
     VersionDiffBrowser
-	openOnDiffSet:allDiffs
-	labelA:'Repository'
-	labelB:'Image'
-	title:title
-	ignoreExtensions:true.
+        openOnDiffSet:allDiffs
+        labelA:'Repository'
+        labelB:'Image'
+        title:title
+        ignoreExtensions:true.
 
     self normalLabel.
 
@@ -35158,17 +36266,17 @@
 
     stream := manager getSourceStreamFor:aClass revision:revision.
     stream isNil ifTrue:[
-	self warn:(resources
-		     string:'Could not extract source of rev %1 from repository'
-		    with:revision).
-	^ nil
+        self warn:(resources
+                     string:'Could not extract source of rev %1 from repository'
+                    with:revision).
+        ^ nil
     ].
     stream class readErrorSignal handle:[:ex |
-	self warn:('read error while reading extracted source\\' , ex description) withCRs.
-	stream close.
-	^ nil
+        self warn:('read error while reading extracted source\\' , ex description) withCRs.
+        stream close.
+        ^ nil
     ] do:[
-	source := stream contents asString.
+        source := stream contents asString.
     ].
     stream close.
     ^ source
@@ -35177,6 +36285,33 @@
     "Created: / 21-12-2011 / 20:25:39 / cg"
 !
 
+nextPatchNumberIn:aDirectory
+    "compute the next consecutive patch number in a directory.
+     Answer a String."
+
+    |highest highestString nrString nr fileNamePrefix|
+
+    "/ find the highest numbered patchfile
+    aDirectory directoryContentsDo:[:fn |
+        (fn includes:$_) ifTrue:[
+            nrString := fn upTo:$_.
+            nr := Integer readFrom:nrString onError:nil.
+            nr notNil ifTrue:[
+                nr > (highest ? -1) ifTrue:[
+                    highest := nr.
+                    highestString := nrString.
+                ]
+            ].
+        ].
+    ].
+    highest isNil ifTrue:[
+        fileNamePrefix := '0001'
+    ] ifFalse:[
+        fileNamePrefix := (highest+1) printStringLeftPaddedTo:(highestString size) with:$0.
+    ].
+    ^ fileNamePrefix.
+!
+
 repositoryHistoryForProjects:projectListOrNil
     "sorry, but this seems to be hardwired for CVS"
 
@@ -35184,138 +36319,138 @@
      ifFalse:[^ self].
 
     self withWaitCursorDo:[
-	|timeGoal moduleFilter moduleFilterHolder repositoryFilter userFilter aStream box y component
-	 timeGoalListPop moduleFilterPop userFilterPop dateList userList|
-
-	timeGoal := 'yesterday' asValue.
-	moduleFilterHolder := nil asValue.
-	userFilter := nil asValue.
-
-	box := Dialog new.
-	(box addTextLabel:(resources string:'Repository change report')) adjust:#left.
-	box addVerticalSpace:20.
-
-	y := box yPosition.
-	component := box addTextLabel:(resources string:'List changes since (yyyy-mm-dd):').
-	component width:0.5; adjust:#right; borderWidth:0.
-	box yPosition:y.
-	timeGoalListPop := box addComboBoxOn:timeGoal tabable:true.
-	timeGoalListPop width:0.5; left:0.5; immediateAccept:true; acceptOnLeave:false; cursorMovementWhenUpdating:#beginOfLine.
-
-	dateList := OrderedCollection new.
-	dateList add:(Timestamp now printStringFormat:'%(year)-%(month)-%(day)').
-	dateList add:((Timestamp now subtractHours:1) printStringFormat:'%(year)-%(month)-%(day) %h:%m').
-	dateList addAll:#('yesterday'
-			  '1 hour ago'
-			  '1 week ago'
-			  '1 month ago'
-			  '1 year ago'
-			  'all'
-			 ).
-
-	timeGoalListPop list:dateList.
-
-	projectListOrNil notNil ifTrue:[
-	    moduleFilter := projectListOrNil collect:[:prj | prj asPackageId module] as:Set.
-	    moduleFilterHolder := nil.
-	] ifFalse:[
-	    y := box yPosition.
-	    component := box addTextLabel:(resources string:'For CVS repository (empty for all):').
-	    component width:0.5; adjust:#right; borderWidth:0.
-	    box yPosition:y.
-	    moduleFilterPop := box addComboBoxOn:moduleFilterHolder tabable:true.
-	    moduleFilterPop width:0.5; left:0.5; immediateAccept:true; acceptOnLeave:false; cursorMovementWhenUpdating:#beginOfLine.
-	    moduleFilterPop list:(SourceCodeManager knownModules asOrderedCollection sort addFirst:'stx'; yourself).
-	].
-
-	y := box yPosition.
-	component := box addTextLabel:(resources string:'For user (empty for all):').
-	component width:0.5; adjust:#right; borderWidth:0.
-	box yPosition:y.
-	userFilterPop := box addComboBoxOn:userFilter tabable:true.
-	userFilterPop width:0.5; left:0.5; immediateAccept:true; acceptOnLeave:false; cursorMovementWhenUpdating:#beginOfLine.
-
-	"Fetch the list of konwn user names (which are possibly used when cheking in):
-	    - Try the repository names (smething like ':method:user@host:....')
-	    - If nothing found, use the login name"
-
-	userList := Set new.
-	SourceCodeManager knownRepositories do:[:eachRepository|
-	    |user idx|
-
-	    (eachRepository includes:$@) ifTrue:[
-		user := eachRepository copyUpTo:$@.
-		idx := user lastIndexOf:$:.
-		idx ~~ 0 ifTrue:[
-		    user := user copyFrom:idx+1.
-		].
-		userList add:user.
-	    ].
-	].
-	userList isEmpty ifTrue:[
-	    userList add:OperatingSystem getLoginName.
-	].
-
-	userFilterPop list:userList asArray sort.
-
-	box addAbortAndOkButtons.
-	box open.
-
-	box accepted ifTrue:[
-	    moduleFilterHolder notNil ifTrue:[
-		moduleFilter := moduleFilterHolder value.
-		moduleFilter size == 0
-		    ifTrue:[moduleFilter := nil]
-		    ifFalse:[moduleFilter := Set with:moduleFilter].
-	    ].
-
-	    moduleFilter notNil ifTrue:[
-		repositoryFilter := moduleFilter
-					collect:[:eachModule|
-					    SourceCodeManager getCVSROOTForModule:eachModule.
-					].
-	    ].
-
-	    userFilter := userFilter value.
-	    userFilter size == 0
-		ifTrue:[userFilter := nil]
-		ifFalse:[userFilter := Array with:userFilter].
-
-	    timeGoal := timeGoal value.
-
-	    self busyLabel:'extracting history ...' with:nil.
-
-	    aStream := WriteStream on:(String new:200).
-	    Processor activeProcess
-		withPriority:Processor activePriority-1 to:Processor activePriority
-	    do:[
-		SourceCodeManager notNil ifTrue:[
-		    SourceCodeManager
-			writeHistoryLogSince:timeGoal
-			filterSTSources:true
-			filterUser:userFilter
-			filterRepository:repositoryFilter
-			filterModules:moduleFilter
-			filterProjects:projectListOrNil
-			to:aStream.
-		] ifFalse:[
-		    aStream nextPutLine:'no history available (no SourceCodeManagement installed)'
-		].
-	    ].
-	    self codeView
-		contents:(aStream contents);
-		modified:false.
-	    navigationState realModifiedState:false.
-
-	    self codeAspect:#repositoryHistory.
-	    self selectedMethods value:nil.
-	    self selectProtocols:nil.
+        |timeGoal moduleFilter moduleFilterHolder repositoryFilter userFilter aStream box y component
+         timeGoalListPop moduleFilterPop userFilterPop dateList userList|
+
+        timeGoal := 'yesterday' asValue.
+        moduleFilterHolder := nil asValue.
+        userFilter := nil asValue.
+
+        box := Dialog new.
+        (box addTextLabel:(resources string:'Repository change report')) adjust:#left.
+        box addVerticalSpace:20.
+
+        y := box yPosition.
+        component := box addTextLabel:(resources string:'List changes since (yyyy-mm-dd):').
+        component width:0.5; adjust:#right; borderWidth:0.
+        box yPosition:y.
+        timeGoalListPop := box addComboBoxOn:timeGoal tabable:true.
+        timeGoalListPop width:0.5; left:0.5; immediateAccept:true; acceptOnLeave:false; cursorMovementWhenUpdating:#beginOfLine.
+
+        dateList := OrderedCollection new.
+        dateList add:(Timestamp now printStringFormat:'%(year)-%(month)-%(day)').
+        dateList add:((Timestamp now subtractHours:1) printStringFormat:'%(year)-%(month)-%(day) %h:%m').
+        dateList addAll:#('yesterday'
+                          '1 hour ago'
+                          '1 week ago'
+                          '1 month ago'
+                          '1 year ago'
+                          'all'
+                         ).
+
+        timeGoalListPop list:dateList.
+
+        projectListOrNil notNil ifTrue:[
+            moduleFilter := projectListOrNil collect:[:prj | prj asPackageId module] as:Set.
+            moduleFilterHolder := nil.
+        ] ifFalse:[
+            y := box yPosition.
+            component := box addTextLabel:(resources string:'For CVS repository (empty for all):').
+            component width:0.5; adjust:#right; borderWidth:0.
+            box yPosition:y.
+            moduleFilterPop := box addComboBoxOn:moduleFilterHolder tabable:true.
+            moduleFilterPop width:0.5; left:0.5; immediateAccept:true; acceptOnLeave:false; cursorMovementWhenUpdating:#beginOfLine.
+            moduleFilterPop list:(SourceCodeManager knownModules asOrderedCollection sort addFirst:'stx'; yourself).
+        ].
+
+        y := box yPosition.
+        component := box addTextLabel:(resources string:'For user (empty for all):').
+        component width:0.5; adjust:#right; borderWidth:0.
+        box yPosition:y.
+        userFilterPop := box addComboBoxOn:userFilter tabable:true.
+        userFilterPop width:0.5; left:0.5; immediateAccept:true; acceptOnLeave:false; cursorMovementWhenUpdating:#beginOfLine.
+
+        "Fetch the list of konwn user names (which are possibly used when cheking in):
+            - Try the repository names (smething like ':method:user@host:....')
+            - If nothing found, use the login name"
+
+        userList := Set new.
+        SourceCodeManager knownRepositories do:[:eachRepository|
+            |user idx|
+
+            (eachRepository includes:$@) ifTrue:[
+                user := eachRepository copyUpTo:$@.
+                idx := user lastIndexOf:$:.
+                idx ~~ 0 ifTrue:[
+                    user := user copyFrom:idx+1.
+                ].
+                userList add:user.
+            ].
+        ].
+        userList isEmpty ifTrue:[
+            userList add:OperatingSystem getLoginName.
+        ].
+
+        userFilterPop list:userList asArray sort.
+
+        box addAbortAndOkButtons.
+        box open.
+
+        box accepted ifTrue:[
+            moduleFilterHolder notNil ifTrue:[
+                moduleFilter := moduleFilterHolder value.
+                moduleFilter size == 0
+                    ifTrue:[moduleFilter := nil]
+                    ifFalse:[moduleFilter := Set with:moduleFilter].
+            ].
+
+            moduleFilter notNil ifTrue:[
+                repositoryFilter := moduleFilter
+                                        collect:[:eachModule|
+                                            SourceCodeManager getCVSROOTForModule:eachModule.
+                                        ].
+            ].
+
+            userFilter := userFilter value.
+            userFilter size == 0
+                ifTrue:[userFilter := nil]
+                ifFalse:[userFilter := Array with:userFilter].
+
+            timeGoal := timeGoal value.
+
+            self busyLabel:'extracting history ...' with:nil.
+
+            aStream := WriteStream on:(String new:200).
+            Processor activeProcess
+                withPriority:Processor activePriority-1 to:Processor activePriority
+            do:[
+                SourceCodeManager notNil ifTrue:[
+                    SourceCodeManager
+                        writeHistoryLogSince:timeGoal
+                        filterSTSources:true
+                        filterUser:userFilter
+                        filterRepository:repositoryFilter
+                        filterModules:moduleFilter
+                        filterProjects:projectListOrNil
+                        to:aStream.
+                ] ifFalse:[
+                    aStream nextPutLine:'no history available (no SourceCodeManagement installed)'
+                ].
+            ].
+            self codeView
+                contents:(aStream contents);
+                modified:false.
+            navigationState realModifiedState:false.
+
+            self codeAspect:#repositoryHistory.
+            self selectedMethods value:nil.
+            self selectProtocols:nil.
 
 "/            self setNoAcceptAction.
 "/            self clearExplainAction.
 
-	    self normalLabel
-	].
+            self normalLabel
+        ].
     ]
 
     "Created: / 12-09-2006 / 15:03:24 / cg"
@@ -35325,145 +36460,145 @@
     "sorry, but this seems to be hardwired for CVS"
 
     manager ~~ CVSSourceCodeManager ifTrue:[
-	self error:'Only supported for CVS'.
+        self error:'Only supported for CVS'.
     ].
 
     (self askIfModified:'Code was modified.\\Show history anyway ?')
      ifFalse:[^ self].
 
     self withWaitCursorDo:[
-	|timeGoal moduleFilter moduleFilterHolder repositoryFilter userFilter aStream box y component
-	 timeGoalListPop moduleFilterPop userFilterPop dateList userList|
-
-	timeGoal := 'yesterday' asValue.
-	moduleFilterHolder := nil asValue.
-	userFilter := nil asValue.
-
-	box := Dialog new.
-	(box addTextLabel:(resources string:'Repository change report')) adjust:#left.
-	box addVerticalSpace:20.
-
-	y := box yPosition.
-	component := box addTextLabel:(resources string:'List changes since (yyyy-mm-dd):').
-	component width:0.5; adjust:#right; borderWidth:0.
-	box yPosition:y.
-	timeGoalListPop := box addComboBoxOn:timeGoal tabable:true.
-	timeGoalListPop width:0.5; left:0.5; immediateAccept:true; acceptOnLeave:false; cursorMovementWhenUpdating:#beginOfLine.
-
-	dateList := OrderedCollection new.
-	dateList add:(Timestamp now printStringFormat:'%(year)-%(month)-%(day)').
-	dateList add:((Timestamp now subtractHours:1) printStringFormat:'%(year)-%(month)-%(day) %h:%m').
-	dateList addAll:#('yesterday'
-			  '1 hour ago'
-			  '1 week ago'
-			  '1 month ago'
-			  '1 year ago'
-			  'all'
-			 ).
-
-	timeGoalListPop list:dateList.
-
-	projectListOrNil notNil ifTrue:[
-	    moduleFilter := projectListOrNil collect:[:prj | prj asPackageId module] as:Set.
-	    moduleFilterHolder := nil.
-	] ifFalse:[
-	    y := box yPosition.
-	    component := box addTextLabel:(resources string:'For CVS repository (empty for all):').
-	    component width:0.5; adjust:#right; borderWidth:0.
-	    box yPosition:y.
-	    moduleFilterPop := box addComboBoxOn:moduleFilterHolder tabable:true.
-	    moduleFilterPop width:0.5; left:0.5; immediateAccept:true; acceptOnLeave:false; cursorMovementWhenUpdating:#beginOfLine.
-	    moduleFilterPop list:(SourceCodeManager knownModules asOrderedCollection sort addFirst:'stx'; yourself).
-	].
-
-	y := box yPosition.
-	component := box addTextLabel:(resources string:'For user (empty for all):').
-	component width:0.5; adjust:#right; borderWidth:0.
-	box yPosition:y.
-	userFilterPop := box addComboBoxOn:userFilter tabable:true.
-	userFilterPop width:0.5; left:0.5; immediateAccept:true; acceptOnLeave:false; cursorMovementWhenUpdating:#beginOfLine.
-
-	"Fetch the list of konwn user names (which are possibly used when cheking in):
-	    - Try the repository names (smething like ':method:user@host:....')
-	    - If nothing found, use the login name"
-
-	userList := Set new.
-	SourceCodeManager knownRepositories do:[:eachRepository|
-	    |user idx|
-
-	    (eachRepository includes:$@) ifTrue:[
-		user := eachRepository copyUpTo:$@.
-		idx := user lastIndexOf:$:.
-		idx ~~ 0 ifTrue:[
-		    user := user copyFrom:idx+1.
-		].
-		userList add:user.
-	    ].
-	].
-	userList isEmpty ifTrue:[
-	    userList add:OperatingSystem getLoginName.
-	].
-
-	userFilterPop list:userList asArray sort.
-
-	box addAbortAndOkButtons.
-	box open.
-
-	box accepted ifTrue:[
-	    moduleFilterHolder notNil ifTrue:[
-		moduleFilter := moduleFilterHolder value.
-		moduleFilter size == 0
-		    ifTrue:[moduleFilter := nil]
-		    ifFalse:[moduleFilter := Set with:moduleFilter].
-	    ].
-
-	    moduleFilter notNil ifTrue:[
-		repositoryFilter := moduleFilter
-					collect:[:eachModule|
-					    SourceCodeManager getCVSROOTForModule:eachModule.
-					].
-	    ].
-
-	    userFilter := userFilter value.
-	    userFilter size == 0
-		ifTrue:[userFilter := nil]
-		ifFalse:[userFilter := Array with:userFilter].
-
-	    timeGoal := timeGoal value.
-
-	    self busyLabel:'extracting history ...' with:nil.
-
-	    aStream := WriteStream on:(String new:200).
-	    Processor activeProcess
-		withPriority:Processor activePriority-1 to:Processor activePriority
-	    do:[
-		SourceCodeManager notNil ifTrue:[
-		    SourceCodeManager
-			writeHistoryLogSince:timeGoal
-			filterSTSources:true
-			filterUser:userFilter
-			filterRepository:repositoryFilter
-			filterModules:moduleFilter
-			filterProjects:projectListOrNil
-			to:aStream.
-		] ifFalse:[
-		    aStream nextPutLine:'no history available (no SourceCodeManagement installed)'
-		].
-	    ].
-	    self codeView
-		contents:(aStream contents);
-		modified:false.
-	    navigationState realModifiedState:false.
-
-	    self codeAspect:#repositoryHistory.
-	    self selectedMethods value:nil.
-	    self selectProtocols:nil.
+        |timeGoal moduleFilter moduleFilterHolder repositoryFilter userFilter aStream box y component
+         timeGoalListPop moduleFilterPop userFilterPop dateList userList|
+
+        timeGoal := 'yesterday' asValue.
+        moduleFilterHolder := nil asValue.
+        userFilter := nil asValue.
+
+        box := Dialog new.
+        box addTextLabel:(resources string:'Repository change report') adjust:#left.
+        box addVerticalSpace:20.
+
+        y := box yPosition.
+        component := box addTextLabel:(resources string:'List changes since (yyyy-mm-dd):') adjust:#right.
+        component width:0.5; borderWidth:0.
+        box yPosition:y.
+        timeGoalListPop := box addComboBoxOn:timeGoal tabable:true.
+        timeGoalListPop width:0.5; left:0.5; immediateAccept:true; acceptOnLeave:false; cursorMovementWhenUpdating:#beginOfLine.
+
+        dateList := OrderedCollection new.
+        dateList add:(Timestamp now printStringFormat:'%(year)-%(month)-%(day)').
+        dateList add:((Timestamp now subtractHours:1) printStringFormat:'%(year)-%(month)-%(day) %h:%m').
+        dateList addAll:#('yesterday'
+                          '1 hour ago'
+                          '1 week ago'
+                          '1 month ago'
+                          '1 year ago'
+                          'all'
+                         ).
+
+        timeGoalListPop list:dateList.
+
+        projectListOrNil notNil ifTrue:[
+            moduleFilter := projectListOrNil collect:[:prj | prj asPackageId module] as:Set.
+            moduleFilterHolder := nil.
+        ] ifFalse:[
+            y := box yPosition.
+            component := box addTextLabel:(resources string:'For CVS repository (empty for all):') adjust:#right.
+            component width:0.5; borderWidth:0.
+            box yPosition:y.
+            moduleFilterPop := box addComboBoxOn:moduleFilterHolder tabable:true.
+            moduleFilterPop width:0.5; left:0.5; immediateAccept:true; acceptOnLeave:false; cursorMovementWhenUpdating:#beginOfLine.
+            moduleFilterPop list:(SourceCodeManager knownModules asOrderedCollection sort addFirst:'stx'; yourself).
+        ].
+
+        y := box yPosition.
+        component := box addTextLabel:(resources string:'For user (empty for all):') adjust:#right.
+        component width:0.5; borderWidth:0.
+        box yPosition:y.
+        userFilterPop := box addComboBoxOn:userFilter tabable:true.
+        userFilterPop width:0.5; left:0.5; immediateAccept:true; acceptOnLeave:false; cursorMovementWhenUpdating:#beginOfLine.
+
+        "Fetch the list of konwn user names (which are possibly used when cheking in):
+            - Try the repository names (smething like ':method:user@host:....')
+            - If nothing found, use the login name"
+
+        userList := Set new.
+        SourceCodeManager knownRepositories do:[:eachRepository|
+            |user idx|
+
+            (eachRepository includes:$@) ifTrue:[
+                user := eachRepository copyUpTo:$@.
+                idx := user lastIndexOf:$:.
+                idx ~~ 0 ifTrue:[
+                    user := user copyFrom:idx+1.
+                ].
+                userList add:user.
+            ].
+        ].
+        userList isEmpty ifTrue:[
+            userList add:OperatingSystem getLoginName.
+        ].
+
+        userFilterPop list:userList asArray sort.
+
+        box addAbortAndOkButtons.
+        box open.
+
+        box accepted ifTrue:[
+            moduleFilterHolder notNil ifTrue:[
+                moduleFilter := moduleFilterHolder value.
+                moduleFilter size == 0
+                    ifTrue:[moduleFilter := nil]
+                    ifFalse:[moduleFilter := Set with:moduleFilter].
+            ].
+
+            moduleFilter notNil ifTrue:[
+                repositoryFilter := moduleFilter
+                                        collect:[:eachModule|
+                                            SourceCodeManager getCVSROOTForModule:eachModule.
+                                        ].
+            ].
+
+            userFilter := userFilter value.
+            userFilter size == 0
+                ifTrue:[userFilter := nil]
+                ifFalse:[userFilter := Array with:userFilter].
+
+            timeGoal := timeGoal value.
+
+            self busyLabel:'extracting history ...' with:nil.
+
+            aStream := WriteStream on:(String new:200).
+            Processor activeProcess
+                withPriority:Processor activePriority-1 to:Processor activePriority
+            do:[
+                SourceCodeManager notNil ifTrue:[
+                    SourceCodeManager
+                        writeHistoryLogSince:timeGoal
+                        filterSTSources:true
+                        filterUser:userFilter
+                        filterRepository:repositoryFilter
+                        filterModules:moduleFilter
+                        filterProjects:projectListOrNil
+                        to:aStream.
+                ] ifFalse:[
+                    aStream nextPutLine:'no history available (no SourceCodeManagement installed)'
+                ].
+            ].
+            self codeView
+                contents:(aStream contents);
+                modified:false.
+            navigationState realModifiedState:false.
+
+            self codeAspect:#repositoryHistory.
+            self selectedMethods value:nil.
+            self selectProtocols:nil.
 
 "/            self setNoAcceptAction.
 "/            self clearExplainAction.
 
-	    self normalLabel
-	].
+            self normalLabel
+        ].
     ]
 
     "Created: / 12-09-2006 / 15:03:24 / cg"
@@ -35472,7 +36607,7 @@
 showRepositoryLogOf:aClass
     "show a classes repository log - append to codeView.
      CAVEAT: that is almost the same code as found in SystemBrowser;
-	     move to SourceCodeManagerUtilities"
+             move to SourceCodeManagerUtilities"
 
     self showRepositoryLogOf:aClass short:false
 !
@@ -35486,7 +36621,7 @@
 showRepositoryLogOf:aClass short:shortOrNot beforeLogDo:aBlock
     "show a classes repository log - append to codeView.
      CAVEAT: that is almost the same code as found in SystemBrowser;
-	     move to SourceCodeManagerUtilities."
+             move to SourceCodeManagerUtilities."
 
     ^ self showRepositoryLogOf:aClass short:shortOrNot usingManager: (aClass sourceCodeManager) beforeLogDo:aBlock
 
@@ -35496,21 +36631,33 @@
 showRepositoryLogOf:aClass short:shortOrNot usingManager: managerOrNil beforeLogDo:aBlock
     "show a classes repository log - append to codeView.
      CAVEAT: that is almost the same code as found in SystemBrowser;
-	     move to SourceCodeManagerUtilities."
+             move to SourceCodeManagerUtilities."
 
     |codeView aStream|
 
     aStream := WriteStream on:(String new:200).
 
     Processor activeProcess
-	withPriority:Processor activePriority-1 to:Processor activePriority
+        withPriority:Processor activePriority-1 to:Processor activePriority
     do:[
-	self busyLabel:'Extracting log of %1' with:aClass name.
-	aBlock value:aStream.
-	(managerOrNil isNil
-		ifTrue:[ SourceCodeManagerUtilities default ]
-		ifFalse:[ managerOrNil utilities ])
-	    repositoryLogOf:aClass short:shortOrNot onto:aStream
+        |utils|
+
+        self busyLabel:'Extracting log of %1' with:aClass name.
+        aBlock value:aStream.
+        utils := managerOrNil isNil
+                ifTrue:[ SourceCodeManagerUtilities default ]
+                ifFalse:[ managerOrNil utilities ].
+
+        SourceCodeManagerError handle:[:ex |
+            Dialog warn:(resources
+                                    stringWithCRs:'Could not fetch revision log of "%1".\\Please check your sourcecode manager settings of %2 for package: "%3".\(and possibly the network for reachability of the repository)'
+                                    with:aClass name
+                                    with:aClass sourceCodeManager managerTypeName
+                                    with:aClass package).
+            ^ self.
+        ] do:[
+            utils repositoryLogOf:aClass short:shortOrNot onto:aStream
+        ]
     ].
 
     self codeAspect:#repositoryLog.
@@ -35519,9 +36666,9 @@
 
     codeView := self codeView.
     codeView contents:(codeView contents ,
-		       Character cr asString ,
-		       Character cr asString ,
-		       aStream contents).
+                       Character cr asString ,
+                       Character cr asString ,
+                       aStream contents).
 
     codeView modified:false.
     navigationState realModifiedState:false.
@@ -35552,82 +36699,82 @@
     mgr := aManagerOrNil ? aClass sourceCodeManager.
     rev := aClass binaryRevision.
     rev isNil ifTrue:[
-	rev := aClass revision
+        rev := aClass revision
     ].
     rev isNil ifTrue:[
-	"/
-	"/ class not in repository - allow compare against any other containers newest contents
-	"/
-	self normalLabel.
-
-	pkg := aClass package.
-	(pkg notNil and:[pkg ~= PackageId noProjectID]) ifTrue:[
-	    containerModule := pkg upTo:$:.
-	    containerPackage := pkg copyFrom:(containerModule size + 2).
-	].
-	containerModule size == 0 ifTrue:[
-	    containerModule := (SourceCodeManagerUtilities lastModule) ? Project current repositoryModule.
-	].
-	containerPackage size == 0 ifTrue:[
-	    containerPackage := (SourceCodeManagerUtilities lastPackage) ? Project current package.
-	].
-	rslt := mgr utilities
-	    askForContainer:(resources
-		    stringWithCRs:'The "%1"-class seems to have no repository information.\\Do you want to compare it against an existing containers contents ?'
-		    with:aClass name)
-	    title:'Container to compare' note:nil
-	    initialModule:containerModule
-	    initialPackage:containerPackage
-	    initialFileName:(aClass name , '.st')
-	    forNewContainer:false.
-	rslt isNil ifTrue:[
-	    "/ cancel
-	    ^ nil
-	].
-	containerModule := rslt at:#module.
-	containerPackage := rslt at:#package.
-	containerFile := rslt at:#fileName.
-	SourceCodeManagerUtilities lastModule:containerModule.
-	SourceCodeManagerUtilities lastPackage:containerPackage.
-    ] ifFalse:[
-	"/
-	"/ class in repository - ask for revision
-	"/
-	newestRev := mgr newestRevisionOf:aClass.
-	rev := newestRev.
+        "/
+        "/ class not in repository - allow compare against any other containers newest contents
+        "/
+        self normalLabel.
+
+        pkg := aClass package.
+        (pkg notNil and:[pkg ~= PackageId noProjectID]) ifTrue:[
+            containerModule := pkg upTo:$:.
+            containerPackage := pkg copyFrom:(containerModule size + 2).
+        ].
+        containerModule size == 0 ifTrue:[
+            containerModule := (SourceCodeManagerUtilities lastModule) ? Project current repositoryModule.
+        ].
+        containerPackage size == 0 ifTrue:[
+            containerPackage := (SourceCodeManagerUtilities lastPackage) ? Project current package.
+        ].
+        rslt := mgr utilities
+            askForContainer:(resources
+                    stringWithCRs:'The "%1"-class seems to have no repository information.\\Do you want to compare it against an existing containers contents ?'
+                    with:aClass name)
+            title:'Container to compare' note:nil
+            initialModule:containerModule
+            initialPackage:containerPackage
+            initialFileName:(aClass name , '.st')
+            forNewContainer:false.
+        rslt isNil ifTrue:[
+            "/ cancel
+            ^ nil
+        ].
+        containerModule := rslt at:#module.
+        containerPackage := rslt at:#package.
+        containerFile := rslt at:#fileName.
+        SourceCodeManagerUtilities lastModule:containerModule.
+        SourceCodeManagerUtilities lastPackage:containerPackage.
+    ] ifFalse:[
+        "/
+        "/ class in repository - ask for revision
+        "/
+        newestRev := mgr newestRevisionOf:aClass.
+        rev := newestRev.
     ].
 
     (rev notNil or:[containerFile notNil]) ifTrue:[
-	rev notNil ifTrue:[
-	    rev withoutSpaces isEmpty ifTrue:[
-		msg := 'extracting newest %1 (' , (newestRev ? '???') , ')'.
-		sourceStream := mgr getSourceStreamFor:aClass revision:newestRev.
-		revString := 'newest'.
-	    ] ifFalse:[
-		msg := 'extracting previous %1'.
-		sourceStream := mgr getSourceStreamFor:aClass revision:rev.
-		revString := rev
-	    ].
-	] ifFalse:[
-	    msg := 'extracting newest version from ' , containerModule , '/' , containerPackage, '/' , containerFile.
-	    sourceStream := mgr streamForClass:nil fileName:containerFile revision:#newest directory:containerPackage module:containerModule cache:false.
-	    revString := '???'
-	].
-	self busyLabel:msg with:(aClass name).
-
-	sourceStream isNil ifTrue:[
-	    info := mgr sourceInfoOfClass:aClass.
-	    info notNil ifTrue:[
-		mod := info at:#module ifAbsent:'??'.
-		dir := info at:#directory ifAbsent:'??'.
-	    ].
-
-	    self warn:(resources
-			 string:'Could not extract source from repository (for module: ''%1'' , directory: ''%2'' , revision: ''%3'')'
-			 with:mod with:dir with:revString).
-	    ^ nil
-	].
-	^ sourceStream
+        rev notNil ifTrue:[
+            rev withoutSpaces isEmpty ifTrue:[
+                msg := 'extracting newest %1 (' , (newestRev ? '???') , ')'.
+                sourceStream := mgr getSourceStreamFor:aClass revision:newestRev.
+                revString := 'newest'.
+            ] ifFalse:[
+                msg := 'extracting previous %1'.
+                sourceStream := mgr getSourceStreamFor:aClass revision:rev.
+                revString := rev
+            ].
+        ] ifFalse:[
+            msg := 'extracting newest version from ' , containerModule , '/' , containerPackage, '/' , containerFile.
+            sourceStream := mgr streamForClass:nil fileName:containerFile revision:#newest directory:containerPackage module:containerModule cache:false.
+            revString := '???'
+        ].
+        self busyLabel:msg with:(aClass name).
+
+        sourceStream isNil ifTrue:[
+            info := mgr sourceInfoOfClass:aClass.
+            info notNil ifTrue:[
+                mod := info at:#module ifAbsent:'??'.
+                dir := info at:#directory ifAbsent:'??'.
+            ].
+
+            self warn:(resources
+                         string:'Could not extract source from repository (for module: ''%1'' , directory: ''%2'' , revision: ''%3'')'
+                         with:mod with:dir with:revString).
+            ^ nil
+        ].
+        ^ sourceStream
     ].
     ^ nil
 
@@ -35645,18 +36792,18 @@
 
     nonMeta := aClass theNonMetaclass.
     (cls := nonMeta whichClassDefinesClassVar:newName) notNil ifTrue:[
-	cls == aClass ifTrue:[
-	    Dialog information:(resources string:'A variable named ''%1'' is already defined in ''%2''.'
-				    with:newName allBold
-				    with:cls name allBold).
-	    ^ self
-	].
-	(Dialog confirm:(resources stringWithCRs:'Attention: a variable named ''%1'' is already defined in ''%2''.\\Proceed ?'
-				with:newName allBold
-				with:cls name allBold))
-	ifFalse:[
-	    ^ self
-	].
+        cls == aClass ifTrue:[
+            Dialog information:(resources string:'A variable named ''%1'' is already defined in ''%2''.'
+                                    with:newName allBold
+                                    with:cls name allBold).
+            ^ self
+        ].
+        (Dialog confirm:(resources stringWithCRs:'Attention: a variable named ''%1'' is already defined in ''%2''.\\Proceed ?'
+                                with:newName allBold
+                                with:cls name allBold))
+        ifFalse:[
+            ^ self
+        ].
     ].
 
     refactoring := AddClassVariableChange add:newName to:nonMeta.
@@ -35678,40 +36825,40 @@
     |refactoring cls generator varName pseudoVarName|
 
     asValueHolder ifTrue:[
-	varName := newName.
-	varName isUppercaseFirst ifTrue:[
-	    varName := varName asLowercaseFirst.
-	].
-	(varName endsWith:'Holder') ifTrue:[
-	    pseudoVarName := varName copyButLast:6.
-	] ifFalse:[
-	    pseudoVarName := varName.
-	    varName := pseudoVarName , 'Holder'.
-	].
-    ] ifFalse:[
-	varName := newName
+        varName := newName.
+        varName isUppercaseFirst ifTrue:[
+            varName := varName asLowercaseFirst.
+        ].
+        (varName endsWith:'Holder') ifTrue:[
+            pseudoVarName := varName copyButLast:6.
+        ] ifFalse:[
+            pseudoVarName := varName.
+            varName := pseudoVarName , 'Holder'.
+        ].
+    ] ifFalse:[
+        varName := newName
     ].
 
     (cls := aClass whichClassDefinesInstVar:varName) notNil ifTrue:[
-	Dialog warn:(resources string:'An instance variable named ''%1'' is already defined in ''%2''.'
-				with:varName allBold
-				with:cls name allBold).
-	^ self
+        Dialog warn:(resources string:'An instance variable named ''%1'' is already defined in ''%2''.'
+                                with:varName allBold
+                                with:cls name allBold).
+        ^ self
     ].
 
 "/    refactoring := AddInstanceVariableRefactoring variable:newName class:aClass.
 "/    refactoring model name:('Add instvar %1 to %2' bindWith:newName with:aClass name).
 
     asValueHolder ifTrue:[
-	generator := SmalltalkCodeGeneratorTool new.
-	generator startCollectChanges.
-
-	generator addChange:(AddInstanceVariableChange add:varName to:aClass).
-	generator createValueHoldersFor:(Array with:varName) in:aClass lazyInitialization:false.
-	generator executeCollectedChangesNamed:'Add ValueHolder'
-    ] ifFalse:[
-	refactoring := AddInstanceVariableChange add:varName to:aClass.
-	self performRefactoring:refactoring.
+        generator := SmalltalkCodeGeneratorTool new.
+        generator startCollectChanges.
+
+        generator addChange:(AddInstanceVariableChange add:varName to:aClass).
+        generator createValueHoldersFor:(Array with:varName) in:aClass lazyInitialization:false.
+        generator executeCollectedChangesNamed:'Add ValueHolder'
+    ] ifFalse:[
+        refactoring := AddInstanceVariableChange add:varName to:aClass.
+        self performRefactoring:refactoring.
     ].
 
     "Modified: / 31-01-2011 / 18:29:55 / cg"
@@ -35722,7 +36869,7 @@
      senders nSenders tree args dialog|
 
     (self askIfModified) ifFalse:[
-	^ self
+        ^ self
     ].
 
     currentMethod := self theSingleSelectedMethod.
@@ -35735,23 +36882,23 @@
 
     tree := cls parseTreeFor:selector.
     tree isNil ifTrue:[
-	self warn: 'Could not parse the method'.
-	^ self
+        self warn: 'Could not parse the method'.
+        ^ self
     ].
     args := tree argumentNames.
     args := args copyWith:('arg%1' bindWith:args size + 1).
 
     selector numArgs == 0 ifTrue:[
-	initialAnswer := selector , ':'.
-	l := 'Enter new selector:'.
-    ] ifFalse:[
-	initialAnswer := selector , 'xxxx:'.
-	l := 'Enter new selector (replace xxxx as desired):'.
+        initialAnswer := selector , ':'.
+        l := 'Enter new selector:'.
+    ] ifFalse:[
+        initialAnswer := selector , 'xxxx:'.
+        l := 'Enter new selector (replace xxxx as desired):'.
     ].
 
     dialog := MethodNameDialogForAddParameter methodNameFor: args initial:initialAnswer.
     nSenders == 0 ifTrue:[
-	dialog askForDefaultValue:false.
+        dialog askForDefaultValue:false.
     ].
     dialog cancelAllVisible value:(AbortAllOperationWantedQuery query).
     dialog renameOnlyVisible value:true.
@@ -35767,7 +36914,7 @@
 
 "/     newSelector := Dialog request:(resources string:l) initialAnswer:initialAnswer.
     newSelector isEmptyOrNil ifTrue:[
-	^ nil "/ cancelled
+        ^ nil "/ cancelled
     ].
 
 "/    nSenders > 0 ifTrue:[
@@ -35781,14 +36928,14 @@
 
     newSelector := newSelector asSymbol.
     refactoring := AddParameterRefactoring
-			addParameterToMethod:selector
-			in:cls
-			newSelector:newSelector
-			initializer:initializer.
+                        addParameterToMethod:selector
+                        in:cls
+                        newSelector:newSelector
+                        initializer:initializer.
 
     (self findSendersOf:selector in:(environment allClasses) andConfirmRefactoring:refactoring) ifTrue:[
-	self performRefactoring:refactoring.
-	self switchToSelector:newSelector
+        self performRefactoring:refactoring.
+        self switchToSelector:newSelector
     ]
 
     "Modified: / 09-02-2011 / 13:54:16 / cg"
@@ -35802,7 +36949,7 @@
 
     varName := self selectedInstanceVariableOrNil.
     varName notNil ifTrue:[
-	self codeMenuConvertToValueHolder:varName
+        self codeMenuConvertToValueHolder:varName
     ]
 !
 
@@ -35813,13 +36960,13 @@
     |refactoring|
 
     (self askIfModified) ifFalse:[
-	^ self
+        ^ self
     ].
 
     (self confirm:'About to rewrite methods...') ifFalse:[^ self].
     refactoring := (ValueHolderRefactoring
-				variable: aString
-				class: (self theSingleSelectedClass whichClassDefinesInstVar: aString)).
+                                variable: aString
+                                class: (self theSingleSelectedClass whichClassDefinesInstVar: aString)).
     self performRefactoring:refactoring.
 !
 
@@ -35835,7 +36982,7 @@
     and:[ (cls := self theSingleSelectedClass) notNil
     and:[ (cls theNonMetaclass classVarNames includes:varName) not
     ]]]]) ifFalse:[
-	^ self.
+        ^ self.
     ].
 
     refactoring := AddClassVariableChange add:varName to:cls theNonMetaclass.
@@ -35864,25 +37011,25 @@
 
     selectedClass := self theSingleSelectedClass.
     selectedClass isNil ifTrue:[
-	mthd := self theSingleSelectedMethod.
-	mthd isNil ifTrue:[
-	    Dialog information:'Please select a class or method'.
-	    ^ self
-	].
-	selectedClass := mthd mclass
+        mthd := self theSingleSelectedMethod.
+        mthd isNil ifTrue:[
+            Dialog information:'Please select a class or method'.
+            ^ self
+        ].
+        selectedClass := mthd mclass
     ].
 
     selectedClass isMeta ifTrue:[
-	LastLiteralReplacementType == #instanceMethod ifTrue:[ LastLiteralReplacementType := #classMethod ].
-	LastLiteralReplacementType == #instanceVariable ifTrue:[ LastLiteralReplacementType := #classVariable ].
+        LastLiteralReplacementType == #instanceMethod ifTrue:[ LastLiteralReplacementType := #classMethod ].
+        LastLiteralReplacementType == #instanceVariable ifTrue:[ LastLiteralReplacementType := #classVariable ].
     ].
     radioModel := RadioButtonGroup new value:(LastLiteralReplacementType ? #classMethod).
 
     initialNewName :=
-	DoWhatIMeanSupport
-	    goodRenameDefaultFor:literalString
-	    lastOld:LastLiteralReplacementOldLiteral
-	    lastNew:LastLiteralReplacementNewName.
+        DoWhatIMeanSupport
+            goodRenameDefaultFor:literalString
+            lastOld:LastLiteralReplacementOldLiteral
+            lastNew:LastLiteralReplacementNewName.
     initialNewName isEmptyOrNil ifTrue:[ initialNewName := literalString "(LastLiteralReplacementNewName ? '')" ].
     initialNewName first isDigit ifTrue:[ initialNewName := 'const_',initialNewName ].
     initialNewName first isLetter ifFalse:[ initialNewName := 'const_XXX_',literalValue className ].
@@ -35890,7 +37037,7 @@
 
     box := DialogBox new.
     box label:'Replacing Literal Constant'.
-    (box addTextLabel:'Replace selected constant by:') adjust:#left.
+    box addTextLabel:'Replace selected constant by:' adjust:#left.
     box addVerticalSpace.
     box addRadioButton:(resources string:'Class Method') on:radioModel value:#classMethod tabable:true.
     box addRadioButton:(resources string:'Class Variable') on:radioModel value:#classVariable tabable:true.
@@ -35918,131 +37065,131 @@
     numMethodsAdded := numMethodsRewritten := 0.
 
     (changeHow == #instanceMethod or:[changeHow == #instanceVariable]) ifTrue:[
-	targetClass := selectedClass theNonMetaclass
-    ] ifFalse:[
-	targetClass := selectedClass theMetaclass
+        targetClass := selectedClass theNonMetaclass
+    ] ifFalse:[
+        targetClass := selectedClass theMetaclass
     ].
 
     (changeHow == #instanceMethod or:[changeHow == #classMethod]) ifTrue:[
-	(targetClass includesSelector:name asSymbol) ifFalse:[
-	    refactoring compile:('%1\    ^ %2' withCRs bindWith:name with:literalString) in:targetClass classified:'constants'.
-	    numMethodsAdded := numMethodsAdded + 1.
-	] ifTrue:[
-	    "/ if the getter already exists, it must return the same literal
-	    mthd := targetClass compiledMethodAt:name asSymbol.
-	    ((ParseTreeSearcher isJustReturningLiteralString:literalString)
-		executeTree:(mthd parseTree) initialAnswer:nil) notNil
-	    ifFalse:[
-		Dialog information:(resources
-					stringWithCRs:'A method named "%1" already exists\with different semantics (does not return "%2")'
-					with:name
-					with:literalString).
-		^ self.
-	    ].
-	].
-    ] ifFalse:[
-	changeHow == #instanceVariable ifTrue:[
-	    (targetClass theNonMetaclass allInstVarNames includes:name) ifTrue:[
-		"/ already present
-		Dialog information:(resources
-					stringWithCRs:'An instance variable named "%1" already exists'
-					with:name).
-		^ self.
-	    ].
-	    refactoring addInstanceVariable:name to:targetClass theNonMetaclass.
-	] ifFalse:[
-	    "/ class variable
-	    (targetClass theNonMetaclass allClassVarNames includes:name) ifTrue:[
-		"/ already present
-		Dialog information:(resources
-					stringWithCRs:'A class variable named "%1" already exists'
-					with:name).
-		^ self.
-	    ].
-	    refactoring addClassVariable:name to:targetClass theNonMetaclass.
-	].
-
-	(targetClass includesSelector:#initialize) ifFalse:[
-	    refactoring compile:('initialize\    %1 := %2.' withCRs bindWith:name with:literalString) in:targetClass classified:'initialization'.
-	    numMethodsAdded := numMethodsAdded + 1.
-	] ifTrue:[
-	    |setToThis setToOther rewriter newSource change|
-
-	    setToThis := setToOther := false.
-
-	    mthd := targetClass compiledMethodAt:#initialize.
-
-	    "/ already a setting for that variable ?
-	    "/ cannot happen now, as we only allow not-already-existing vars in the above code.
-	    "/ if we ever support this, must check if the existing init-code is already correct for the new value
-	    (ParseTreeSearcher new
-			answer:false;
-			matches:('%1 := ``@expr' bindWith:name) do:[:aNode :ans | self halt. false];
-			yourself)
-		executeTree:(mthd parseTree) initialAnswer:false.
-
-	    setToOther ifTrue:[
-		Dialog information:(resources
-					stringWithCRs:'Variable named "%1" is already initialized to a different value'
-					with:name).
-		^ self.
-	    ].
-	    setToThis ifFalse:[
-		"/ sigh - the source rewriter is very limited; it cannot append code yet...
-		rewriter := "ParseTreeSourceRewriter "ParseTreeRewriter new
-				replace: '| `@temps | ``@.stats. '
-				with:('| `@temps | ``@.stats.\    %1 := %2.' withCRs bindWith:name with:literalString).
-
-		rewriter executeTree: mthd parseTree.
-		newSource := rewriter tree formattedCode.
+        (targetClass includesSelector:name asSymbol) ifFalse:[
+            refactoring compile:('%1\    ^ %2' withCRs bindWith:name with:literalString) in:targetClass classified:'constants'.
+            numMethodsAdded := numMethodsAdded + 1.
+        ] ifTrue:[
+            "/ if the getter already exists, it must return the same literal
+            mthd := targetClass compiledMethodAt:name asSymbol.
+            ((ParseTreeSearcher isJustReturningLiteralString:literalString)
+                executeTree:(mthd parseTree) initialAnswer:nil) notNil
+            ifFalse:[
+                Dialog information:(resources
+                                        stringWithCRs:'A method named "%1" already exists\with different semantics (does not return "%2")'
+                                        with:name
+                                        with:literalString).
+                ^ self.
+            ].
+        ].
+    ] ifFalse:[
+        changeHow == #instanceVariable ifTrue:[
+            (targetClass theNonMetaclass allInstVarNames includes:name) ifTrue:[
+                "/ already present
+                Dialog information:(resources
+                                        stringWithCRs:'An instance variable named "%1" already exists'
+                                        with:name).
+                ^ self.
+            ].
+            refactoring addInstanceVariable:name to:targetClass theNonMetaclass.
+        ] ifFalse:[
+            "/ class variable
+            (targetClass theNonMetaclass allClassVarNames includes:name) ifTrue:[
+                "/ already present
+                Dialog information:(resources
+                                        stringWithCRs:'A class variable named "%1" already exists'
+                                        with:name).
+                ^ self.
+            ].
+            refactoring addClassVariable:name to:targetClass theNonMetaclass.
+        ].
+
+        (targetClass includesSelector:#initialize) ifFalse:[
+            refactoring compile:('initialize\    %1 := %2.' withCRs bindWith:name with:literalString) in:targetClass classified:'initialization'.
+            numMethodsAdded := numMethodsAdded + 1.
+        ] ifTrue:[
+            |setToThis setToOther rewriter newSource change|
+
+            setToThis := setToOther := false.
+
+            mthd := targetClass compiledMethodAt:#initialize.
+
+            "/ already a setting for that variable ?
+            "/ cannot happen now, as we only allow not-already-existing vars in the above code.
+            "/ if we ever support this, must check if the existing init-code is already correct for the new value
+            (ParseTreeSearcher new
+                        answer:false;
+                        matches:('%1 := ``@expr' bindWith:name) do:[:aNode :ans | self halt. false];
+                        yourself)
+                executeTree:(mthd parseTree) initialAnswer:false.
+
+            setToOther ifTrue:[
+                Dialog information:(resources
+                                        stringWithCRs:'Variable named "%1" is already initialized to a different value'
+                                        with:name).
+                ^ self.
+            ].
+            setToThis ifFalse:[
+                "/ sigh - the source rewriter is very limited; it cannot append code yet...
+                rewriter := "ParseTreeSourceRewriter "ParseTreeRewriter new
+                                replace: '| `@temps | ``@.stats. '
+                                with:('| `@temps | ``@.stats.\    %1 := %2.' withCRs bindWith:name with:literalString).
+
+                rewriter executeTree: mthd parseTree.
+                newSource := rewriter tree formattedCode.
 
 "/                newSource := rewriter executeReplacementsInSource:mthd source.
 "/                rewriter forgetReplacements.
 
-		change := InteractiveAddMethodChange compile:newSource in:mthd mclass classified:mthd category.
-		refactoring addChange:change.
-		numMethodsRewritten := numMethodsRewritten + 1.
-	    ].
-	]
+                change := InteractiveAddMethodChange compile:newSource in:mthd mclass classified:mthd category.
+                refactoring addChange:change.
+                numMethodsRewritten := numMethodsRewritten + 1.
+            ].
+        ]
     ].
 
     matchingMethods := OrderedCollection new.
     targetClass theNonMetaclass methodDictionary keysAndValuesDo:[:selector :mth |
-	selector ~= name ifTrue:[
-	    (ParseTreeSearcher new)
-		matches:literalString do:[:aNode :answer | matchingMethods add:mth ];
-		executeTree:mth parseTree.
-	].
+        selector ~= name ifTrue:[
+            (ParseTreeSearcher new)
+                matches:literalString do:[:aNode :answer | matchingMethods add:mth ];
+                executeTree:mth parseTree.
+        ].
     ].
     (changeHow == #classVariable or:[changeHow == #classMethod]) ifTrue:[
-	targetClass theMetaclass methodDictionary keysAndValuesDo:[:selector :mth |
-	    selector ~= name ifTrue:[
-		(ParseTreeSearcher new)
-		    matches:literalString do:[:aNode :answer | matchingMethods add:mth ];
-		    executeTree:mth parseTree.
-	    ].
-	].
+        targetClass theMetaclass methodDictionary keysAndValuesDo:[:selector :mth |
+            selector ~= name ifTrue:[
+                (ParseTreeSearcher new)
+                    matches:literalString do:[:aNode :answer | matchingMethods add:mth ];
+                    executeTree:mth parseTree.
+            ].
+        ].
     ].
 
     matchingMethods do:[:mth |
-	|change replacementSource rewriter newSource|
-
-	(changeHow == #instanceVariable or:[changeHow == #classVariable]) ifTrue:[
-	    replacementSource := name.
-	] ifFalse:[
-	    (changeHow == #instanceMethod) ifTrue:[
-		replacementSource := ('self ',name).
-	    ] ifFalse:[
-		mth mclass isMeta ifTrue:[
-		    replacementSource := ('self ',name).
-		] ifFalse:[
-		    replacementSource := ('self class ',name).
-		].
-	    ].
-	].
-	rewriter := ParseTreeSourceRewriter "ParseTreeRewriter" new
-			replace: literalString
-			with: replacementSource.
+        |change replacementSource rewriter newSource|
+
+        (changeHow == #instanceVariable or:[changeHow == #classVariable]) ifTrue:[
+            replacementSource := name.
+        ] ifFalse:[
+            (changeHow == #instanceMethod) ifTrue:[
+                replacementSource := ('self ',name).
+            ] ifFalse:[
+                mth mclass isMeta ifTrue:[
+                    replacementSource := ('self ',name).
+                ] ifFalse:[
+                    replacementSource := ('self class ',name).
+                ].
+            ].
+        ].
+        rewriter := ParseTreeSourceRewriter "ParseTreeRewriter" new
+                        replace: literalString
+                        with: replacementSource.
 
 "/        "/ with the original ParseTreeRewriter, you would
 "/        "/ get a new tree, loose all formatting and some comments...
@@ -36051,32 +37198,32 @@
 "/                    tree.
 "/        newSource := newTree formattedCode.
 
-	"/ so we use the new in-place ParseTreeSourceRewriter
-	rewriter executeTree: mth parseTree.
-	newSource := rewriter executeReplacementsInSource:mth source.
-	rewriter forgetReplacements.
-
-	change := InteractiveAddMethodChange compile:newSource in:mth mclass classified:mth category.
-	refactoring addChange:change.
-	numMethodsRewritten := numMethodsRewritten + 1.
+        "/ so we use the new in-place ParseTreeSourceRewriter
+        rewriter executeTree: mth parseTree.
+        newSource := rewriter executeReplacementsInSource:mth source.
+        rewriter forgetReplacements.
+
+        change := InteractiveAddMethodChange compile:newSource in:mth mclass classified:mth category.
+        refactoring addChange:change.
+        numMethodsRewritten := numMethodsRewritten + 1.
     ].
 
     (numMethodsRewritten+numMethodsAdded) > 1 ifTrue:[
-	informationMessage :=
-	    numMethodsRewritten > 0
-		ifTrue:[
-		    numMethodsAdded > 0
-			ifTrue:[ 'rewrite %1 and add %2 methods' ]
-			ifFalse:[ 'rewrite %1 methods' ] ]
-		ifFalse:[ 'add %2 methods' ].
-	confirmationQuestion := 'OK to ',informationMessage.
-	"/ (Dialog confirm:(resources string:confirmationQuestion with:numMethodsRewritten with:numMethodsAdded)) ifFalse:[^ self].
+        informationMessage :=
+            numMethodsRewritten > 0
+                ifTrue:[
+                    numMethodsAdded > 0
+                        ifTrue:[ 'rewrite %1 and add %2 methods' ]
+                        ifFalse:[ 'rewrite %1 methods' ] ]
+                ifFalse:[ 'add %2 methods' ].
+        confirmationQuestion := 'OK to ',informationMessage.
+        "/ (Dialog confirm:(resources string:confirmationQuestion with:numMethodsRewritten with:numMethodsAdded)) ifFalse:[^ self].
     ].
     self performRefactoring:refactoring.
 
     "/ set the class variable
     (changeHow == #classVariable) ifTrue:[
-	targetClass classVarAt:name asSymbol put:literalValue
+        targetClass classVarAt:name asSymbol put:literalValue
     ].
 
     self showInfo:(resources string:informationMessage with:numMethodsRewritten with:numMethodsAdded).
@@ -36086,29 +37233,29 @@
 
 codeMenuExtractMethod
     self withCurrentMethodsClassAndSelectorDo:[:mClass :mSelector |
-	| refactoring |
-
-	refactoring := (ExtractMethodRefactoring
-			    extract: (self selectedInterval)
-			    from: mSelector
-			    in: mClass).
-
-	refactoring source:self codeView contentsAsString.
-	self performRefactoring:refactoring.
+        | refactoring |
+
+        refactoring := (ExtractMethodRefactoring
+                            extract: (self selectedInterval)
+                            from: mSelector
+                            in: mClass).
+
+        refactoring source:self codeView contentsAsString.
+        self performRefactoring:refactoring.
     ]
 !
 
 codeMenuExtractMethodToComponent
     self withCurrentMethodsClassAndSelectorDo:[:mClass :mSelector |
-	| refactoring |
-
-	refactoring := (ExtractMethodToComponentRefactoring
-			    extract: (self selectedInterval)
-			    from: mSelector
-			    in: mClass).
-
-	refactoring source:self codeView contentsAsString.
-	self performRefactoring:refactoring.
+        | refactoring |
+
+        refactoring := (ExtractMethodToComponentRefactoring
+                            extract: (self selectedInterval)
+                            from: mSelector
+                            in: mClass).
+
+        refactoring source:self codeView contentsAsString.
+        self performRefactoring:refactoring.
     ]
 !
 
@@ -36119,27 +37266,27 @@
 
     (self askIfModified:'Text was modified - please accept first' default:false) ~~ true
     ifTrue:[
-	^ self
+        ^ self
     ].
 
     node := self findNode.
     (node notNil and: [node isValue]) ifFalse: [
-	^ self warn: 'Could not find the node (please select the message expression to extract)'
+        ^ self warn: 'Could not find the node (please select the message expression to extract)'
     ].
 
     (node isMessage and:[node isUnary]) ifTrue:[
-	varName := node selector
-    ] ifFalse:[
-	varName := LastTemporaryVariableName ? 't'.
+        varName := node selector
+    ] ifFalse:[
+        varName := LastTemporaryVariableName ? 't'.
     ].
 
     source := self codeView contentsAsString string.
     codeTree := RBParser
-		parseMethod:source
-		onError: [:str :err ":nodesSoFar" | nil].
+                parseMethod:source
+                onError: [:str :err ":nodesSoFar" | nil].
 
     codeTree notNil ifTrue:[
-	(codeTree body temporaries contains:[:nd | nd name = varName]) ifTrue:[varName := nil].
+        (codeTree body temporaries contains:[:nd | nd name = varName]) ifTrue:[varName := nil].
     ].
 
     newName := Dialog request: 'Enter name for Temporary:' initialAnswer:varName.
@@ -36150,15 +37297,15 @@
     cls := currentMethod mclass.
     selector := currentMethod selector.
     (cls isNil or:[selector isNil]) ifTrue:[
-	self information:'Oops - no class/selector. Please reselect.'.
-	^ self.
+        self information:'Oops - no class/selector. Please reselect.'.
+        ^ self.
     ].
 
     refactoring := (ExtractToTemporaryRefactoring
-				extract: (node sourceInterval)
-				to: newName
-				from: selector
-				in: cls).
+                                extract: (node sourceInterval)
+                                to: newName
+                                from: selector
+                                in: cls).
     refactoring source:self codeView contentsAsString.
     self performRefactoring:refactoring.
 !
@@ -36169,17 +37316,17 @@
     |modifiedBefore|
 
     self hasSingleMethodSelected ifTrue:[
-	modifiedBefore := navigationState modified.
-
-	self formatCode.
-	("autoAcceptFormattedCode" false or:[modifiedBefore not]) ifTrue:[
-	    self codeView accept
-	].
-    ] ifFalse:[
-	self information:'Bulk formatting is currently disabled, because the formatter
+        modifiedBefore := navigationState modified.
+
+        self formatCode.
+        ("autoAcceptFormattedCode" false or:[modifiedBefore not]) ifTrue:[
+            self codeView accept
+        ].
+    ] ifFalse:[
+        self information:'Bulk formatting is currently disabled, because the formatter
 has still problems to layout comments in an acceptable way (although its much better
 than it used to be...) Therefore, please have an eye on each formatted method.'.
-	^ self.
+        ^ self.
 "/        self selectedMethodsDo:[:each |
 "/            self formatMethod:each
 "/        ].
@@ -36194,20 +37341,20 @@
     |currentMethod selector refactoring|
 
     (self askIfModified) ifFalse:[
-	^ self
+        ^ self
     ].
 
     currentMethod := self theSingleSelectedMethod.
     selector := currentMethod selector.
 
     refactoring := InlineAllSelfSendersRefactoring
-			    sendersOf: selector
-			    in: currentMethod mclass.
+                            sendersOf: selector
+                            in: currentMethod mclass.
     refactoring setOption: #inlineExpression toUse: [:ref :string | true].
     self performRefactoring: refactoring.
 
     (self findSendersOf:selector andConfirmRefactoring:refactoring) ifTrue:[
-	self performRefactoring:refactoring.
+        self performRefactoring:refactoring.
     ]
 !
 
@@ -36215,7 +37362,7 @@
     |currentMethod node cls selector refactoring receiverNode inlinedSelector senders rslt|
 
     (self askIfModified) ifFalse:[
-	^ self
+        ^ self
     ].
 
     currentMethod := self theSingleSelectedMethod.
@@ -36224,7 +37371,7 @@
 
     node := self findNode.
     (node isNil or: [node isMessage not]) ifTrue: [
-	^ self warn: 'Could not find message send (please select the messageSelector or part of it)'
+        ^ self warn: 'Could not find message send (please select the messageSelector or part of it)'
     ].
     receiverNode := node receiver.
     inlinedSelector := node selector.
@@ -36232,15 +37379,15 @@
     (receiverNode isVariable
     and: [#('self' 'super') includes: receiverNode name])
     ifTrue:[
-	refactoring := (InlineMethodRefactoring
-				    inline: node sourceInterval
-				    inMethod: selector
-				    forClass: cls)
-    ] ifFalse:[
-	refactoring := (InlineMethodFromComponentRefactoring
-				    inline: node sourceInterval
-				    inMethod: selector
-				    forClass: cls)
+        refactoring := (InlineMethodRefactoring
+                                    inline: node sourceInterval
+                                    inMethod: selector
+                                    forClass: cls)
+    ] ifFalse:[
+        refactoring := (InlineMethodFromComponentRefactoring
+                                    inline: node sourceInterval
+                                    inMethod: selector
+                                    forClass: cls)
     ].
 
 "/    refactoring model name:('inline %1 into %2' bindWith:inlinedSelector with:selector).
@@ -36248,14 +37395,14 @@
     rslt isNil ifTrue:[^ self ].
 
     senders := self class findSendersOf:inlinedSelector
-		    in:environment allClasses
-		    ignoreCase:false
-		    match:false.
+                    in:environment allClasses
+                    ignoreCase:false
+                    match:false.
 
     senders isEmpty ifTrue:[
-	(self confirm:('There seem to be no more senders of ', inlinedSelector , '.\\Remove the implementation in ' , cls name , ' ?') withCRs)
-	ifFalse:[^ self].
-	self doRemoveMethodsUnconfirmed:(Array with:(refactoring inlineClass realClass compiledMethodAt:inlinedSelector)).
+        (self confirm:('There seem to be no more senders of ', inlinedSelector , '.\\Remove the implementation in ' , cls name , ' ?') withCRs)
+        ifFalse:[^ self].
+        self doRemoveMethodsUnconfirmed:(Array with:(refactoring inlineClass realClass compiledMethodAt:inlinedSelector)).
     ].
 
     "Modified: / 17-11-2006 / 13:51:06 / cg"
@@ -36273,7 +37420,7 @@
     |currentMethod cls selector refactoring|
 
     (self askIfModified) ifFalse:[
-	^ self
+        ^ self
     ].
 
     currentMethod := self theSingleSelectedMethod.
@@ -36284,8 +37431,8 @@
     refactoring := InlineParameterRefactoring inlineParameter:parameterName in:cls selector:selector.
 
     (self findSendersOf:selector andConfirmRefactoring:refactoring) ifTrue:[
-	self performRefactoring:refactoring.
-	self switchToSelector:refactoring newSelector.
+        self performRefactoring:refactoring.
+        self switchToSelector:refactoring newSelector.
     ]
 !
 
@@ -36296,26 +37443,26 @@
     |selectedClass definingClass cls|
 
     (self askIfModified) ifFalse:[
-	^ self
+        ^ self
     ].
 
     selectedClass := self theSingleSelectedClass theNonMetaclass.
     cls := definingClass := selectedClass whichClassDefinesClassVar:aString.
 
     definingClass ~~ selectedClass ifTrue:[
-	cls := OptionBox
-		      request:(resources string:'Rewrite methods below %1 (defining) or %2 (selected) ?'
-					 with:definingClass name allBold
-					 with:selectedClass name allBold)
-		      label:'Rewrite which classes'
-		      buttonLabels:(Array with:'cancel' with:definingClass name with:selectedClass name)
-		      values:(Array with:nil with:definingClass with:selectedClass).
-	cls isNil ifTrue:[^ self].
+        cls := OptionBox
+                      request:(resources string:'Rewrite methods below %1 (defining) or %2 (selected) ?'
+                                         with:definingClass name allBold
+                                         with:selectedClass name allBold)
+                      label:'Rewrite which classes'
+                      buttonLabels:(Array with:'Cancel' with:definingClass name with:selectedClass name)
+                      values:(Array with:nil with:definingClass with:selectedClass).
+        cls isNil ifTrue:[^ self].
     ].
 
     (self confirm:(resources string:'About to rewrite references to ''%1'' (in and below %2).'
-			     with:aString allBold
-			     with:cls name)) ifFalse:[^ self].
+                             with:aString allBold
+                             with:cls name)) ifFalse:[^ self].
 
     self performRefactoring:(AbstractClassVariableRefactoring variable:aString class:cls).
 !
@@ -36327,26 +37474,26 @@
     |selectedClass definingClass cls|
 
     (self askIfModified) ifFalse:[
-	^ self
+        ^ self
     ].
 
     selectedClass := self theSingleSelectedClass.
     cls := definingClass := selectedClass whichClassDefinesInstVar:aString.
 
     definingClass ~~ selectedClass ifTrue:[
-	cls := OptionBox
-		      request:(resources string:'Rewrite methods below %1 (defining) or %2 (selected) ?'
-					 with:definingClass name allBold
-					 with:selectedClass name allBold)
-		      label:'Rewrite which classes'
-		      buttonLabels:(Array with:'cancel' with:definingClass name with:selectedClass name)
-		      values:(Array with:nil with:definingClass with:selectedClass).
-	cls isNil ifTrue:[^ self].
+        cls := OptionBox
+                      request:(resources string:'Rewrite methods below %1 (defining) or %2 (selected) ?'
+                                         with:definingClass name allBold
+                                         with:selectedClass name allBold)
+                      label:'Rewrite which classes'
+                      buttonLabels:(Array with:'Cancel' with:definingClass name with:selectedClass name)
+                      values:(Array with:nil with:definingClass with:selectedClass).
+        cls isNil ifTrue:[^ self].
     ].
 
     (self confirm:(resources string:'About to rewrite references to ''%1'' (in and below %2).'
-			     with:aString allBold
-			     with:cls name)) ifFalse:[^ self].
+                             with:aString allBold
+                             with:cls name)) ifFalse:[^ self].
 
     self performRefactoring:(AbstractInstanceVariableRefactoring variable:aString class:cls).
 !
@@ -36359,12 +37506,12 @@
 
     varName := self selectedInstanceVariableOrNil.
     varName notNil ifTrue:[
-	^ self codeMenuMakeAbstractInstanceVariable:varName.
+        ^ self codeMenuMakeAbstractInstanceVariable:varName.
     ].
 
     varName := self selectedClassVariableOrNil.
     varName notNil ifTrue:[
-	^ self codeMenuMakeAbstractClassVariable:varName
+        ^ self codeMenuMakeAbstractClassVariable:varName
     ].
 
     self warn:'Please select either an instance or a class variable (in the codeView or the variableList).'
@@ -36377,12 +37524,12 @@
 
     varNames := self selectedTemporaryVariablesInCodeViewOrNil.
     varNames isEmptyOrNil ifTrue:[
-	self warn:'Please select at least one temporary variable in the code.'.
-	^ self.
+        self warn:'Please select at least one temporary variable in the code.'.
+        ^ self.
     ].
 
     varNames do:[:varName |
-	self codeMenuMakeInstanceVariable:varName.
+        self codeMenuMakeInstanceVariable:varName.
     ].
 !
 
@@ -36390,32 +37537,32 @@
     "make selected local an instvar."
 
     self withCurrentMethodsClassAndSelectorDo:[:mClass :mSelector |
-	|refactoring newClass newMethod|
-
-	refactoring := (TemporaryToInstanceVariableRefactoring
-				class: mClass
-				selector: mSelector
-				variable: aString).
-
-	(self confirm:'About to rewrite methods for ',aString,'...') ifFalse:[^ self].
-
-	"/ cannot delay the update class/method
-	"/ (otherwise, selectedMethod will be wrong for the second variable)
-	immediateUpdate value:true.
-
-	self performRefactoring:refactoring.
-
-	immediateUpdate value:false.
-
-	"/ must reselect manually here
-	newClass := environment classNamed:(mClass name).
-	newMethod := newClass compiledMethodAt:mSelector.
-	newClass ~~ self theSingleSelectedClass ifTrue:[
-	    self selectClass:newClass.
-	].
-	newMethod ~~ self theSingleSelectedMethod ifTrue:[
-	    self selectMethod:newMethod.
-	].
+        |refactoring newClass newMethod|
+
+        refactoring := (TemporaryToInstanceVariableRefactoring
+                                class: mClass
+                                selector: mSelector
+                                variable: aString).
+
+        (self confirm:'About to rewrite methods for ',aString,'...') ifFalse:[^ self].
+
+        "/ cannot delay the update class/method
+        "/ (otherwise, selectedMethod will be wrong for the second variable)
+        immediateUpdate value:true.
+
+        self performRefactoring:refactoring.
+
+        immediateUpdate value:false.
+
+        "/ must reselect manually here
+        newClass := environment classNamed:(mClass name).
+        newMethod := newClass compiledMethodAt:mSelector.
+        newClass ~~ self theSingleSelectedClass ifTrue:[
+            self selectClass:newClass.
+        ].
+        newMethod ~~ self theSingleSelectedMethod ifTrue:[
+            self selectMethod:newMethod.
+        ].
     ].
 !
 
@@ -36426,25 +37573,25 @@
 
     node := self findNode.
     (node isNil or:[node isVariable not]) ifTrue:[
-	^ self warn:'Please select a temporary variable in the code.'
+        ^ self warn:'Please select a temporary variable in the code.'
     ].
 
     varName := node name.
     definingNode := node whoDefines:varName.
     definingNode isNil ifTrue: [
-	self warn:varName , ' is not a temporary variable in the method'.
-	^ self
+        self warn:varName , ' is not a temporary variable in the method'.
+        ^ self
     ].
 
     self withCurrentMethodsClassAndSelectorDo:[:mClass :mSelector |
-	|refactoring|
-
-	refactoring := MoveVariableDefinitionRefactoring
-			    bindTight: (node sourceInterval)
-			    in: mClass
-			    selector: mSelector.
-
-	self performRefactoring: refactoring.
+        |refactoring|
+
+        refactoring := MoveVariableDefinitionRefactoring
+                            bindTight: (node sourceInterval)
+                            in: mClass
+                            selector: mSelector.
+
+        self performRefactoring: refactoring.
     ].
     self switchToMethod:(self theSingleSelectedMethod).
 !
@@ -36457,12 +37604,12 @@
 
     varName := self selectedInstanceVariableOrNil.
     varName notNil ifTrue:[
-	^ self codeMenuProtectInstanceVariable:varName.
+        ^ self codeMenuProtectInstanceVariable:varName.
     ].
 
     varName := self selectedClassVariableOrNil.
     varName notNil ifTrue:[
-	^ self warn:'Sorry: This Refactoring is (currently) only supported for instance variables.'.
+        ^ self warn:'Sorry: This Refactoring is (currently) only supported for instance variables.'.
     ].
 
     self warn:'Please select an instance variable (in the codeView or the variableList).'
@@ -36475,24 +37622,24 @@
     |selectedClass definingClass cls|
 
     (self askIfModified) ifFalse:[
-	^ self
+        ^ self
     ].
 
     selectedClass := self theSingleSelectedClass.
     cls := definingClass := selectedClass whichClassDefinesInstVar:aString.
     definingClass ~~ selectedClass ifTrue:[
-	cls := OptionBox
-		      request:(resources string:'Rewrite methods below %1 (defining) or %2 (selected) ?'
-					 with:definingClass name allBold
-					 with:selectedClass name allBold)
-		      label:'Rewrite which classes'
-		      buttonLabels:(Array with:'cancel' with:definingClass name with:selectedClass name)
-		      values:(Array with:nil with:definingClass with:selectedClass).
-	cls isNil ifTrue:[^ self].
+        cls := OptionBox
+                      request:(resources string:'Rewrite methods below %1 (defining) or %2 (selected) ?'
+                                         with:definingClass name allBold
+                                         with:selectedClass name allBold)
+                      label:'Rewrite which classes'
+                      buttonLabels:(Array with:'Cancel' with:definingClass name with:selectedClass name)
+                      values:(Array with:nil with:definingClass with:selectedClass).
+        cls isNil ifTrue:[^ self].
     ].
     (self confirm:(resources string:'About to rewrite references to ''%1'' (in and below %2).'
-			     with:aString allBold
-			     with:cls name)) ifFalse:[^ self].
+                             with:aString allBold
+                             with:cls name)) ifFalse:[^ self].
 
     self performRefactoring:(ProtectInstanceVariableRefactoring variable:aString class:cls).
 !
@@ -36501,43 +37648,43 @@
     "pull a class variable up to its superclasses"
 
     self withCurrentClassDo:[:cls |
-	|oldName node mthd nonMeta definingClass|
-
-	nonMeta := cls theNonMetaclass.
-
-	node := self findNode.
-	node isNil ifTrue:[
-	    (self hasClassVariableSelectedInCodeView) ifFalse:[
-		oldName := self theSingleSelectedVariable.
-		oldName isNil ifTrue:[
-		    ^ self warn:'Please select a variable'
-		]
-	    ] ifTrue:[
-		oldName := self selectionInCodeView.
-	    ]
-	] ifFalse:[
-	    node isVariable ifFalse:[
-		^ self warn:'Please select a variable'
-	    ].
-	    oldName := node name.
-	].
-
-	definingClass := nonMeta whichClassDefinesClassVar:oldName.
-	definingClass isNil ifTrue:[
-	    self warn:'Oops - could not find the defining class'.
-	    ^ self
-	].
-	definingClass ~~ nonMeta ifTrue:[
-	    (self confirm:'Will pull in ' , definingClass name , ' - OK ?')
-	    ifFalse:[
-		^ self
-	    ].
-	].
-	self codeMenuPullUpClassVariable:oldName inClass:definingClass.
-	mthd notNil ifTrue:[
-	    "/ self switchToSelector:mthd selector.
-	    self switchToMethod:mthd.
-	].
+        |oldName node mthd nonMeta definingClass|
+
+        nonMeta := cls theNonMetaclass.
+
+        node := self findNode.
+        node isNil ifTrue:[
+            (self hasClassVariableSelectedInCodeView) ifFalse:[
+                oldName := self theSingleSelectedVariable.
+                oldName isNil ifTrue:[
+                    ^ self warn:'Please select a variable'
+                ]
+            ] ifTrue:[
+                oldName := self selectionInCodeView.
+            ]
+        ] ifFalse:[
+            node isVariable ifFalse:[
+                ^ self warn:'Please select a variable'
+            ].
+            oldName := node name.
+        ].
+
+        definingClass := nonMeta whichClassDefinesClassVar:oldName.
+        definingClass isNil ifTrue:[
+            self warn:'Oops - could not find the defining class'.
+            ^ self
+        ].
+        definingClass ~~ nonMeta ifTrue:[
+            (self confirm:'Will pull in ' , definingClass name , ' - OK ?')
+            ifFalse:[
+                ^ self
+            ].
+        ].
+        self codeMenuPullUpClassVariable:oldName inClass:definingClass.
+        mthd notNil ifTrue:[
+            "/ self switchToSelector:mthd selector.
+            self switchToMethod:mthd.
+        ].
     ].
 !
 
@@ -36547,16 +37694,16 @@
     |refactoring|
 
     (self askIfModified) ifFalse:[
-	^ self
+        ^ self
     ].
 
     (Dialog
-	confirm:'About to rewrite methods...'
-	title:'About to rewrite methods...'
-	yesLabel:'proceed'
-	noLabel:'cancel')
+        confirm:'About to rewrite methods...'
+        title:'About to rewrite methods...'
+        yesLabel:'proceed'
+        noLabel:'cancel')
     ifFalse:[
-	^ self
+        ^ self
     ].
 
     refactoring := PullUpClassVariableRefactoring variable:oldName class:aClass superclass.
@@ -36567,44 +37714,44 @@
     "pull an instance variable up to its superclasses"
 
     self withCurrentClassDo:[:cls |
-	|oldName node mthd definingClass|
-
-	cls isMeta ifTrue:[
-	    ^ self warn:'Please switch to the non-meta side.'
-	].
-
-	node := self findNode.
-	node isNil ifTrue:[
-	    (self hasInstanceVariableSelectedInCodeView) ifFalse:[
-		oldName := self theSingleSelectedVariable.
-		oldName isNil ifTrue:[
-		    ^ self warn:'Please select a variable'
-		]
-	    ] ifTrue:[
-		oldName := self selectionInCodeView.
-	    ]
-	] ifFalse:[
-	    node isVariable ifFalse:[
-		^ self warn:'Please select a variable'
-	    ].
-	    oldName := node name.
-	].
-	definingClass := cls whichClassDefinesInstVar:oldName.
-	definingClass isNil ifTrue:[
-	    self warn:'Oops - could not find the defining class'.
-	    ^ self
-	].
-	definingClass ~~ cls ifTrue:[
-	    (self confirm:'Will pull in ' , definingClass name , ' - OK ?')
-	    ifFalse:[
-		^ self
-	    ].
-	].
-	self codeMenuPullUpInstanceVariable:oldName inClass:definingClass.
-	mthd notNil ifTrue:[
-	    "/ self switchToSelector:mthd selector.
-	    self switchToMethod:mthd.
-	].
+        |oldName node mthd definingClass|
+
+        cls isMeta ifTrue:[
+            ^ self warn:'Please switch to the non-meta side.'
+        ].
+
+        node := self findNode.
+        node isNil ifTrue:[
+            (self hasInstanceVariableSelectedInCodeView) ifFalse:[
+                oldName := self theSingleSelectedVariable.
+                oldName isNil ifTrue:[
+                    ^ self warn:'Please select a variable'
+                ]
+            ] ifTrue:[
+                oldName := self selectionInCodeView.
+            ]
+        ] ifFalse:[
+            node isVariable ifFalse:[
+                ^ self warn:'Please select a variable'
+            ].
+            oldName := node name.
+        ].
+        definingClass := cls whichClassDefinesInstVar:oldName.
+        definingClass isNil ifTrue:[
+            self warn:'Oops - could not find the defining class'.
+            ^ self
+        ].
+        definingClass ~~ cls ifTrue:[
+            (self confirm:'Will pull in ' , definingClass name , ' - OK ?')
+            ifFalse:[
+                ^ self
+            ].
+        ].
+        self codeMenuPullUpInstanceVariable:oldName inClass:definingClass.
+        mthd notNil ifTrue:[
+            "/ self switchToSelector:mthd selector.
+            self switchToMethod:mthd.
+        ].
     ].
 !
 
@@ -36614,15 +37761,15 @@
     |superClass refactoring|
 
     (self askIfModified) ifFalse:[
-	^ self
+        ^ self
     ].
 
     superClass := aClass superclass.
     superClass isNil ifTrue:[
-	^ self warn:'No superClass to pull variables into.'.
+        ^ self warn:'No superClass to pull variables into.'.
     ].
     superClass == Object ifTrue:[
-	^ self warn:'Cannot pull variables into Object (may not have instVars).'.
+        ^ self warn:'Cannot pull variables into Object (may not have instVars).'.
     ].
 
 "/    (Dialog
@@ -36645,11 +37792,11 @@
 
     varName := self selectedInstanceVariableOrNil.
     varName notNil ifTrue:[
-	^ self codeMenuPullUpInstanceVariable
+        ^ self codeMenuPullUpInstanceVariable
     ].
     varName := self selectedClassVariableOrNil.
     varName notNil ifTrue:[
-	^ self codeMenuPullUpClassVariable
+        ^ self codeMenuPullUpClassVariable
     ].
 
     ^ self warn:'Please select a variable and try again.'
@@ -36659,42 +37806,42 @@
     "push a class variable down to its subclasses"
 
     self withCurrentClassDo:[:cls |
-	|oldName node mthd nonMeta definingClass|
-
-	nonMeta := cls theNonMetaclass.
-
-	node := self findNode.
-	node isNil ifTrue:[
-	    (self hasClassVariableSelectedInCodeView) ifFalse:[
-		oldName := self theSingleSelectedVariable.
-		oldName isNil ifTrue:[
-		    ^ self warn:'Please select a variable'
-		]
-	    ] ifTrue:[
-		oldName := self selectionInCodeView.
-	    ]
-	] ifFalse:[
-	    node isVariable ifFalse:[
-		^ self warn:'Please select a variable'
-	    ].
-	    oldName := node name.
-	].
-	definingClass := nonMeta whichClassDefinesClassVar:oldName.
-	definingClass isNil ifTrue:[
-	    self warn:'Oops - could not find the defining class'.
-	    ^ self
-	].
-	definingClass ~~ nonMeta ifTrue:[
-	    (self confirm:'Will push in ' , definingClass name , ' - OK ?')
-	    ifFalse:[
-		^ self
-	    ].
-	].
-	self codeMenuPushDownClassVariable:oldName inClass:definingClass.
-	mthd notNil ifTrue:[
-	    "/ self switchToSelector:mthd selector.
-	    self switchToMethod:mthd.
-	].
+        |oldName node mthd nonMeta definingClass|
+
+        nonMeta := cls theNonMetaclass.
+
+        node := self findNode.
+        node isNil ifTrue:[
+            (self hasClassVariableSelectedInCodeView) ifFalse:[
+                oldName := self theSingleSelectedVariable.
+                oldName isNil ifTrue:[
+                    ^ self warn:'Please select a variable'
+                ]
+            ] ifTrue:[
+                oldName := self selectionInCodeView.
+            ]
+        ] ifFalse:[
+            node isVariable ifFalse:[
+                ^ self warn:'Please select a variable'
+            ].
+            oldName := node name.
+        ].
+        definingClass := nonMeta whichClassDefinesClassVar:oldName.
+        definingClass isNil ifTrue:[
+            self warn:'Oops - could not find the defining class'.
+            ^ self
+        ].
+        definingClass ~~ nonMeta ifTrue:[
+            (self confirm:'Will push in ' , definingClass name , ' - OK ?')
+            ifFalse:[
+                ^ self
+            ].
+        ].
+        self codeMenuPushDownClassVariable:oldName inClass:definingClass.
+        mthd notNil ifTrue:[
+            "/ self switchToSelector:mthd selector.
+            self switchToMethod:mthd.
+        ].
     ].
 !
 
@@ -36704,16 +37851,16 @@
     |cls refactoring|
 
     (self askIfModified) ifFalse:[
-	^ self
+        ^ self
     ].
 
     (Dialog
-	confirm:'About to rewrite methods...'
-	title:'About to rewrite methods...'
-	yesLabel:'proceed'
-	noLabel:'cancel')
+        confirm:'About to rewrite methods...'
+        title:'About to rewrite methods...'
+        yesLabel:'proceed'
+        noLabel:'cancel')
     ifFalse:[
-	^ self
+        ^ self
     ].
 
     cls := aClass whichClassDefinesClassVar:oldName.
@@ -36725,44 +37872,44 @@
     "push an instance variable down to its subclasses"
 
     self withCurrentClassDo:[:cls |
-	|oldName node mthd definingClass|
-
-	cls isMeta ifTrue:[
-	    ^ self warn:'Please switch to the non-meta side.'
-	].
-
-	node := self findNode.
-	node isNil ifTrue:[
-	    (self hasInstanceVariableSelectedInCodeView) ifFalse:[
-		oldName := self theSingleSelectedVariable.
-		oldName isNil ifTrue:[
-		    ^ self warn:'Please select a variable'
-		]
-	    ] ifTrue:[
-		oldName := self selectionInCodeView.
-	    ]
-	] ifFalse:[
-	    node isVariable ifFalse:[
-		^ self warn:'Please select a variable'
-	    ].
-	    oldName := node name.
-	].
-	definingClass := cls whichClassDefinesInstVar:oldName.
-	definingClass isNil ifTrue:[
-	    self warn:'Oops - could not find the defining class'.
-	    ^ self
-	].
-	definingClass ~~ cls ifTrue:[
-	    (self confirm:'Will pull ''' , oldName , ''' from ' , definingClass name , ' - OK ?')
-	    ifFalse:[
-		^ self
-	    ].
-	].
-	self codeMenuPushDownInstanceVariable:oldName inClass:definingClass.
-	mthd notNil ifTrue:[
-	    "/ self switchToSelector:mthd selector.
-	    self switchToMethod:mthd.
-	].
+        |oldName node mthd definingClass|
+
+        cls isMeta ifTrue:[
+            ^ self warn:'Please switch to the non-meta side.'
+        ].
+
+        node := self findNode.
+        node isNil ifTrue:[
+            (self hasInstanceVariableSelectedInCodeView) ifFalse:[
+                oldName := self theSingleSelectedVariable.
+                oldName isNil ifTrue:[
+                    ^ self warn:'Please select a variable'
+                ]
+            ] ifTrue:[
+                oldName := self selectionInCodeView.
+            ]
+        ] ifFalse:[
+            node isVariable ifFalse:[
+                ^ self warn:'Please select a variable'
+            ].
+            oldName := node name.
+        ].
+        definingClass := cls whichClassDefinesInstVar:oldName.
+        definingClass isNil ifTrue:[
+            self warn:'Oops - could not find the defining class'.
+            ^ self
+        ].
+        definingClass ~~ cls ifTrue:[
+            (self confirm:'Will pull ''' , oldName , ''' from ' , definingClass name , ' - OK ?')
+            ifFalse:[
+                ^ self
+            ].
+        ].
+        self codeMenuPushDownInstanceVariable:oldName inClass:definingClass.
+        mthd notNil ifTrue:[
+            "/ self switchToSelector:mthd selector.
+            self switchToMethod:mthd.
+        ].
     ].
 !
 
@@ -36772,16 +37919,16 @@
     |cls refactoring|
 
     (self askIfModified) ifFalse:[
-	^ self
+        ^ self
     ].
 
     (Dialog
-	confirm:('About to push instance variable ''%1'' down to subclasses which use it...' bindWith:varName allBold)
-	title:('About to pushDown ''%1''...' bindWith:varName)
-	yesLabel:'Proceed'
-	noLabel:'Cancel')
+        confirm:('About to push instance variable ''%1'' down to subclasses which use it...' bindWith:varName allBold)
+        title:('About to pushDown ''%1''...' bindWith:varName)
+        yesLabel:'Proceed'
+        noLabel:'Cancel')
     ifFalse:[
-	^ self
+        ^ self
     ].
     cls := aClass whichClassDefinesInstVar:varName.
     refactoring := PushDownInstanceVariableRefactoring variable:varName class:cls.
@@ -36795,11 +37942,11 @@
 
     varName := self selectedInstanceVariableOrNil.
     varName notNil ifTrue:[
-	^ self codeMenuPushDownInstanceVariable
+        ^ self codeMenuPushDownInstanceVariable
     ].
     varName := self selectedClassVariableOrNil.
     varName notNil ifTrue:[
-	^ self codeMenuPushDownClassVariable
+        ^ self codeMenuPushDownClassVariable
     ].
 
     ^ self warn:'Please select a variable and try again.'
@@ -36811,22 +37958,22 @@
     |cls change methods|
 
     (self askIfModified) ifFalse:[
-	^ self
+        ^ self
     ].
 
     cls := aClass theNonMetaclass whichClassDefinesClassVar:oldName.
 
     methods := self class
-		    findClassRefsTo:oldName
-		    under:cls access:#readOrWrite.
+                    findClassRefsTo:oldName
+                    under:cls access:#readOrWrite.
 "/    methods addAll:(self class
 "/                    findClassRefsTo:oldName
 "/                    under:cls theMetaclass access:#readOrWrite).
     methods notEmpty ifTrue:[
-	(Dialog confirm:(resources
-			    stringWithCRs:'"%1" is still referenced by %2 method(s).\\Remove anyway ?'
-			    with:oldName
-			    with:methods size)) ifFalse:[^ self].
+        (Dialog confirm:(resources
+                            stringWithCRs:'"%1" is still referenced by %2 method(s).\\Remove anyway ?'
+                            with:oldName
+                            with:methods size)) ifFalse:[^ self].
     ].
 
     change := RemoveClassVariableChange remove:oldName from:cls.
@@ -36842,47 +37989,47 @@
 
     cls := aClass whichClassDefinesInstVar:oldName.
     cls isNil ifTrue:[
-	self error:'no class'
+        self error:'no class'
     ].
 
     methods := self class
-		    findInstRefsTo:oldName
-		    under:cls access:#readOrWrite.
+                    findInstRefsTo:oldName
+                    under:cls access:#readOrWrite.
     methods notEmpty ifTrue:[
-	whatTypeOfMethods := 'method'.
-	(methods conform:[:m |
-		    |tree searcher|
-
-		    tree := RBParser
-				parseSearchMethod:m source
-				onError: [:str :pos | nil].
-
-		    searcher := ParseTreeSearcher isGetterOrSetterMethod:oldName.
-		    (searcher executeTree:tree initialAnswer:nil) notNil.
-		]) ifTrue:[ whatTypeOfMethods := 'accessor' ].
-
-	answer := OptionBox
-		    request:(resources
-			    stringWithCRs:'"%1" is still referenced by %2 %3(s).\\Remove these methods ?'
-			    with:oldName
-			    with:methods size
-			    with:whatTypeOfMethods)
-		    label:'Confirm Removal'
-		    image:(WarningBox iconBitmap)
-		    buttonLabels:(resources array:#('Cancel' 'Browse' 'No' 'Remove Methods'))
-		    values:#(#abort #browse false true)
-		    default:#abort
-		    onCancel:#abort.
-	answer == #abort ifTrue:[^ self].
-	answer == #browse ifTrue:[
-	    self class
-		browseMethods:methods
-		title:(resources string:'Methods referring to %1' with:oldName).
-	    ^ self.
-	].
-	answer == true ifTrue:[
-	    self doRemoveMethodsUnconfirmed:methods
-	].
+        whatTypeOfMethods := 'method'.
+        (methods conform:[:m |
+                    |tree searcher|
+
+                    tree := RBParser
+                                parseSearchMethod:m source
+                                onError: [:str :pos | nil].
+
+                    searcher := ParseTreeSearcher isGetterOrSetterMethod:oldName.
+                    (searcher executeTree:tree initialAnswer:nil) notNil.
+                ]) ifTrue:[ whatTypeOfMethods := 'accessor' ].
+
+        answer := OptionBox
+                    request:(resources
+                            stringWithCRs:'"%1" is still referenced by %2 %3(s).\\Remove these methods ?'
+                            with:oldName
+                            with:methods size
+                            with:whatTypeOfMethods)
+                    label:'Confirm Removal'
+                    image:(WarningBox iconBitmap)
+                    buttonLabels:(resources array:#('Cancel' 'Browse' 'No' 'Remove Methods'))
+                    values:#(#abort #browse false true)
+                    default:#abort
+                    onCancel:#abort.
+        answer == #abort ifTrue:[^ self].
+        answer == #browse ifTrue:[
+            self class
+                browseMethods:methods
+                title:(resources string:'Methods referring to %1' with:oldName).
+            ^ self.
+        ].
+        answer == true ifTrue:[
+            self doRemoveMethodsUnconfirmed:methods
+        ].
     ].
 
     refactoring := RemoveInstanceVariableChange remove:oldName from:cls.
@@ -36903,7 +38050,7 @@
     | cls selector refactoring|
 
     (self askIfModified) ifFalse:[
-	^ self
+        ^ self
     ].
 
     cls := self theSingleSelectedMethod mclass.
@@ -36913,8 +38060,8 @@
     refactoring := RemoveParameterRefactoring removeParameter:parameterName in:cls selector:selector.
 
     (self findSendersOf:selector andConfirmRefactoring:refactoring) ifTrue:[
-	self performRefactoring:refactoring.
-	self switchToSelector:refactoring newSelector.
+        self performRefactoring:refactoring.
+        self switchToSelector:refactoring newSelector.
     ]
 !
 
@@ -36922,36 +38069,36 @@
     "rename a class variable"
 
     self withCurrentClassDo:[:cls |
-	|oldName node mthd cls definingClass|
-
-	node := self findNode.
-	node isNil ifTrue:[
-	    (self hasClassVariableSelectedInCodeView) ifFalse:[
-		oldName := self theSingleSelectedVariable.
-		oldName isNil ifTrue:[
-		    ^ self warn:'Please select a variable'
-		]
-	    ] ifTrue:[
-		oldName := self selectionInCodeView.
-	    ]
-	] ifFalse:[
-	    node isVariable ifFalse:[
-		^ self warn:'Please select a variable'
-	    ].
-	    oldName := node name.
-	].
-	definingClass := cls whichClassDefinesClassVar:oldName.
-	definingClass isNil ifTrue:[
-	    self warn:'Oops - could not find the defining class'.
-	    ^ self
-	].
-	definingClass ~~ cls ifTrue:[
-	    (self confirm:'Will rename in ' , definingClass name , ' - OK ?')
-	    ifFalse:[
-		^ self
-	    ].
-	].
-	self codeMenuRenameClassVariable:oldName inClass:definingClass.
+        |oldName node mthd cls definingClass|
+
+        node := self findNode.
+        node isNil ifTrue:[
+            (self hasClassVariableSelectedInCodeView) ifFalse:[
+                oldName := self theSingleSelectedVariable.
+                oldName isNil ifTrue:[
+                    ^ self warn:'Please select a variable'
+                ]
+            ] ifTrue:[
+                oldName := self selectionInCodeView.
+            ]
+        ] ifFalse:[
+            node isVariable ifFalse:[
+                ^ self warn:'Please select a variable'
+            ].
+            oldName := node name.
+        ].
+        definingClass := cls whichClassDefinesClassVar:oldName.
+        definingClass isNil ifTrue:[
+            self warn:'Oops - could not find the defining class'.
+            ^ self
+        ].
+        definingClass ~~ cls ifTrue:[
+            (self confirm:'Will rename in ' , definingClass name , ' - OK ?')
+            ifFalse:[
+                ^ self
+            ].
+        ].
+        self codeMenuRenameClassVariable:oldName inClass:definingClass.
     ].
 !
 
@@ -36961,20 +38108,20 @@
     |newName refactoring cls|
 
     (self askIfModified) ifFalse:[
-	^ self
+        ^ self
     ].
 
     newName := Dialog request:('Enter the new name for classVariable ''%1'':' bindWith:oldName) initialAnswer:oldName.
     newName isEmpty ifTrue:[
-	^ self
+        ^ self
     ].
     (cls := aClass whichClassDefinesClassVar:newName) notNil ifTrue:[
-	(Dialog confirm:(resources string:'Attention: a variable named ''%1'' is already defined in ''%2''.\\Proceed ?'
-				with:newName allBold
-				with:cls name allBold))
-	ifFalse:[
-	    ^ self
-	].
+        (Dialog confirm:(resources string:'Attention: a variable named ''%1'' is already defined in ''%2''.\\Proceed ?'
+                                with:newName allBold
+                                with:cls name allBold))
+        ifFalse:[
+            ^ self
+        ].
     ].
 
     (self confirm:'About to rewrite methods...') ifFalse:[^ self].
@@ -36989,44 +38136,44 @@
     "rename an instance variable"
 
     self withCurrentClassDo:[:cls |
-	|oldName node mthd definingClass|
-
-	cls isMeta ifTrue:[
-	    ^ self warn:'Please switch to the non-meta side.'
-	].
-
-	node := self findNode.
-	node isNil ifTrue:[
-	    (self hasInstanceVariableSelectedInCodeView) ifFalse:[
-		oldName := self theSingleSelectedVariable.
-		oldName isNil ifTrue:[
-		    ^ self warn:'Please select a variable'
-		]
-	    ] ifTrue:[
-		oldName := self selectionInCodeView.
-	    ]
-	] ifFalse:[
-	    node isVariable ifFalse:[
-		^ self warn:'Please select a variable'
-	    ].
-	    oldName := node name.
-	].
-	definingClass := cls whichClassDefinesInstVar:oldName.
-	definingClass isNil ifTrue:[
-	    self warn:'Oops - could not find the defining class'.
-	    ^ self
-	].
-	definingClass ~~ cls ifTrue:[
-	    (self confirm:'Will rename in ' , definingClass name , ' - OK ?')
-	    ifFalse:[
-		^ self
-	    ].
-	].
-	self codeMenuRenameInstanceVariable:oldName inClass:definingClass.
-	mthd notNil ifTrue:[
-	    "/ self switchToSelector:mthd selector.
-	    self switchToMethod:mthd.
-	].
+        |oldName node mthd definingClass|
+
+        cls isMeta ifTrue:[
+            ^ self warn:'Please switch to the non-meta side.'
+        ].
+
+        node := self findNode.
+        node isNil ifTrue:[
+            (self hasInstanceVariableSelectedInCodeView) ifFalse:[
+                oldName := self theSingleSelectedVariable.
+                oldName isNil ifTrue:[
+                    ^ self warn:'Please select a variable'
+                ]
+            ] ifTrue:[
+                oldName := self selectionInCodeView.
+            ]
+        ] ifFalse:[
+            node isVariable ifFalse:[
+                ^ self warn:'Please select a variable'
+            ].
+            oldName := node name.
+        ].
+        definingClass := cls whichClassDefinesInstVar:oldName.
+        definingClass isNil ifTrue:[
+            self warn:'Oops - could not find the defining class'.
+            ^ self
+        ].
+        definingClass ~~ cls ifTrue:[
+            (self confirm:'Will rename in ' , definingClass name , ' - OK ?')
+            ifFalse:[
+                ^ self
+            ].
+        ].
+        self codeMenuRenameInstanceVariable:oldName inClass:definingClass.
+        mthd notNil ifTrue:[
+            "/ self switchToSelector:mthd selector.
+            self switchToMethod:mthd.
+        ].
     ].
 !
 
@@ -37038,29 +38185,29 @@
     (self askIfModified) ifFalse:[ ^ self ].
 
     newName := Dialog
-		    request:(resources
-				string:'Enter new name for %2 variable ''%1'':'
-				with:oldName allBold
-				with:(self meta value ifTrue:['classInstance'] ifFalse:['instance']))
-		    title:(resources string:'Rename Variable')
-		    initialAnswer:oldName.
+                    request:(resources
+                                string:'Enter new name for %2 variable ''%1'':'
+                                with:oldName allBold
+                                with:(self meta value ifTrue:['classInstance'] ifFalse:['instance']))
+                    title:(resources string:'Rename Variable')
+                    initialAnswer:oldName.
     newName isEmptyOrNil ifTrue:[
-	^ self
+        ^ self
     ].
     (cls := aClass whichClassDefinesInstVar:newName) notNil ifTrue:[
-	Dialog warn:(resources string:'Sorry: a variable named ''%1'' is already defined in ''%2''.\\Proceed ?'
-				with:newName allBold
-				with:cls name allBold).
-	^ self
+        Dialog warn:(resources string:'Sorry: a variable named ''%1'' is already defined in ''%2''.\\Proceed ?'
+                                with:newName allBold
+                                with:cls name allBold).
+        ^ self
     ].
 
     (Dialog
-	confirm:(resources string:'About to rewrite methods...')
-	title:(resources string:'About to rewrite methods...')
-	yesLabel:(resources string:'Proceed')
-	noLabel:(resources string:'Cancel'))
+        confirm:(resources string:'About to rewrite methods...')
+        title:(resources string:'About to rewrite methods...')
+        yesLabel:(resources string:'Proceed')
+        noLabel:(resources string:'Cancel'))
     ifFalse:[
-	^ self
+        ^ self
     ].
     cls := aClass whichClassDefinesInstVar:oldName.
 
@@ -37074,12 +38221,12 @@
     |oldName newName node definingNode refactoring mthd initial|
 
     (self askIfModified) ifFalse:[
-	^ self
+        ^ self
     ].
 
     node := self findNode.
     (node isNil or:[node isVariable not]) ifTrue:[
-	^ self warn:'Please select a temporary variable in the code.'
+        ^ self warn:'Please select a temporary variable in the code.'
     ].
 
     oldName := node name.
@@ -37087,23 +38234,23 @@
     definingNode isNil ifTrue: [self warn: oldName , ' is not a temporary variable in the method'. ^ self].
 
     LastVariableRenames isNil ifTrue:[
-	LastVariableRenames := CacheDictionary new:30.
+        LastVariableRenames := CacheDictionary new:30.
     ].
     initial := LastVariableRenames at:oldName ifAbsent:oldName.
 
     newName := Dialog request:('Enter new name for ''%1'':' bindWith:oldName allBold) initialAnswer:initial.
     newName size == 0 ifTrue:[
-	^ self   "/ cancel
+        ^ self   "/ cancel
     ].
     newName = oldName ifTrue: [self warn: 'Same name given.'. ^ self].
 
     LastVariableRenames at:oldName put:newName.
 
     refactoring := RenameTemporaryRefactoring
-			renameTemporaryFrom:node sourceInterval
-			to:newName
-			in:(mthd := self theSingleSelectedMethod) mclass
-			selector:mthd selector.
+                        renameTemporaryFrom:node sourceInterval
+                        to:newName
+                        in:(mthd := self theSingleSelectedMethod) mclass
+                        selector:mthd selector.
     refactoring source:(self codeView contentsAsString).
     refactoring okToRenameAsKnownVariable:true.
 
@@ -37116,6 +38263,22 @@
     self showCoverageInformation value:true.
 !
 
+codeMenuSmellsLikeCodeDuplication
+    "add a 'this method has a smell' annotation"
+
+    (self askIfModified) ifFalse:[
+        ^ self
+    ].
+    self warn:'not yet implemented'.
+
+    self selectedMethodsDo:[:eachMethod |
+        |cls selector|
+
+        cls := eachMethod mclass.
+        selector := eachMethod selector.
+    ].
+!
+
 findNode
     |interval|
 
@@ -37125,15 +38288,15 @@
 
 findNodeForInterval:interval
     ^ DoWhatIMeanSupport
-	findNodeForInterval:interval
-	in:(self codeView contentsAsString string).
+        findNodeForInterval:interval
+        in:(self codeView contentsAsString string).
 !
 
 findNodeForInterval:interval allowErrors:allowErrors
     ^ DoWhatIMeanSupport
-	findNodeForInterval:interval
-	in:(self codeView contentsAsString string)
-	allowErrors:allowErrors.
+        findNodeForInterval:interval
+        in:(self codeView contentsAsString string)
+        allowErrors:allowErrors.
 !
 
 findNodeIn:tree forInterval:interval
@@ -37143,19 +38306,19 @@
 self obsoleteMethodWarning.
     node := nil.
     tree nodesDo:[:each |
-	(each intersectsInterval:interval) ifTrue:[
-	    (node isNil or:[node == each parent]) ifTrue:[
-		node := each
-	    ] ifFalse:[
-		(node parent notNil
-		    and:[node parent isCascade and:[each parent isCascade]]) ifFalse:[^ nil]
-	    ]
-	] ifFalse:[
-	    node notNil ifTrue:[
-		"/ already found one - beyond that one; leave
-		wouldReturn notNil ifTrue:[wouldReturn := node].
-	    ]
-	].
+        (each intersectsInterval:interval) ifTrue:[
+            (node isNil or:[node == each parent]) ifTrue:[
+                node := each
+            ] ifFalse:[
+                (node parent notNil
+                    and:[node parent isCascade and:[each parent isCascade]]) ifFalse:[^ nil]
+            ]
+        ] ifFalse:[
+            node notNil ifTrue:[
+                "/ already found one - beyond that one; leave
+                wouldReturn notNil ifTrue:[wouldReturn := node].
+            ]
+        ].
     ].
 "/ (wouldReturn notNil and:[wouldReturn ~~ node]) ifTrue:[self halt].
     ^ node
@@ -37181,55 +38344,55 @@
     nClasses := classes size.
 
     nClasses > 0 ifTrue:[
-	firstClassName := classes first name allBold.
-	nClasses > 1 ifTrue:[
-	    secondClassName := classes second name allBold.
-	].
+        firstClassName := classes first name allBold.
+        nClasses > 1 ifTrue:[
+            secondClassName := classes second name allBold.
+        ].
     ].
 
     nClasses == 1 ifTrue:[
-	nSenders == 1 ifTrue:[
-	    infoMsg := 'Proceed to rewrite sending method %5'
-	] ifFalse:[
-	    infoMsg := 'Proceed to rewrite %1 sending method(s) in %3'
-	]
-    ] ifFalse:[
-	nClasses == 2 ifTrue:[
-	    infoMsg := 'Proceed to rewrite %1 sending method(s) in %3 and %4'
-	] ifFalse:[
-	    infoMsg := 'Proceed to rewrite %1 sending method(s) in %2 class(es)'
-	]
+        nSenders == 1 ifTrue:[
+            infoMsg := 'Proceed to rewrite sending method %5'
+        ] ifFalse:[
+            infoMsg := 'Proceed to rewrite %1 sending method(s) in %3'
+        ]
+    ] ifFalse:[
+        nClasses == 2 ifTrue:[
+            infoMsg := 'Proceed to rewrite %1 sending method(s) in %3 and %4'
+        ] ifFalse:[
+            infoMsg := 'Proceed to rewrite %1 sending method(s) in %2 class(es)'
+        ]
     ].
 
     infoMsg := resources
-		  string:infoMsg
-		  with:nSenders printString
-		  with:nClasses printString
-		  with:firstClassName
-		  with:secondClassName
-		  with:senders first whoString allBold.
+                  string:infoMsg
+                  with:nSenders printString
+                  with:nClasses printString
+                  with:firstClassName
+                  with:secondClassName
+                  with:senders first whoString allBold.
 
     infoMsg := infoMsg , (resources stringWithCRs:'\for "%1" ?' with:refactoring changeString).
 
     answer := Dialog
-		confirmWithCancel:infoMsg
-		labels:#('Cancel' 'Browse' 'Rewrite' )
-		values:#(nil #browse #rewrite)
-		default:3.
+                confirmWithCancel:infoMsg
+                labels:#('Cancel' 'Browse' 'Rewrite' )
+                values:#(nil #browse #rewrite)
+                default:3.
 
     answer == nil ifTrue:[
-	"/ cancel
-	^ false
+        "/ cancel
+        ^ false
     ].
 
     answer == #browse ifTrue:[
-	brwsr := self
-		    spawnMethodBrowserFor:senders in:#newBuffer
-		    label:'Senders of ' , selector
-		    perMethodInfo:nil
-		    sortBy:#class.
-	brwsr autoSearchPattern:selector.
-	^ false
+        brwsr := self
+                    spawnMethodBrowserFor:senders in:#newBuffer
+                    label:'Senders of ' , selector
+                    perMethodInfo:nil
+                    sortBy:#class.
+        brwsr autoSearchPattern:selector.
+        ^ false
     ].
     ^ true
 
@@ -37247,22 +38410,22 @@
     mthd := self theSingleSelectedMethod.
 
     tree := RBParser
-		    parseMethod:(codeView contentsAsString)
-		    onError: [:aString :position |
-				codeView selectFromCharacterPosition:1 to:position.
-				self showInfo:aString.
-				^ nil "ignore any error"
-			     ].
+                    parseMethod:(codeView contentsAsString)
+                    onError: [:aString :position |
+                                codeView selectFromCharacterPosition:1 to:position.
+                                self showInfo:aString.
+                                ^ nil "ignore any error"
+                             ].
     tree isNil ifTrue:[^ nil].
 
     newText := tree printString.
 
     self doSyntaxColoring value ~~ false ifTrue:[
-	newText := self syntaxHighlightedCodeFor:newText method:mthd.
+        newText := self syntaxHighlightedCodeFor:newText method:mthd.
     ].
     codeView
-	undoableDo:[ codeView replaceContentsWith:newText ]
-	info:'Format'.
+        undoableDo:[ codeView replaceContentsWith:newText ]
+        info:'Format'.
     codeView modified:true.
     navigationState realModifiedState:true.
     ^ newText.
@@ -37270,82 +38433,82 @@
 
 handlingRefactoringErrorDo:aBlock
     ^ Refactoring preconditionSignal
-	handle:[:ex |
-	    |param answer errMsg dialogMsg|
-
-	    errMsg := ex description.
-	    param := ex parameter.
-	    ex willProceed ifTrue:[
-		dialogMsg := (errMsg last == $?)
-				    ifTrue:[errMsg]
-				    ifFalse:[errMsg , '\\Do you want to proceed?' withCRs].
-
-		param notNil ifTrue:[
-		    answer := Dialog
-				choose:dialogMsg
-				labels:#('No' 'No, Browse' 'Yes')
-				values:#(false #browse true)
-				default:true
-		] ifFalse:[
-		    answer := Dialog confirm:dialogMsg
-		].
-
-		answer == #browse ifTrue:[
-		    "/ param is either a collection of classes, or methods;
-
-		    param := param collect:[:each | (each isKindOf:RBAbstractClass) ifTrue:[
-							each realClass
-						    ] ifFalse:[
+        handle:[:ex |
+            |param answer errMsg dialogMsg|
+
+            errMsg := ex description.
+            param := ex parameter.
+            ex willProceed ifTrue:[
+                dialogMsg := (errMsg last == $?)
+                                    ifTrue:[errMsg]
+                                    ifFalse:[errMsg , '\\Do you want to proceed?' withCRs].
+
+                param notNil ifTrue:[
+                    answer := Dialog
+                                choose:dialogMsg
+                                labels:#('No' 'No, Browse' 'Yes')
+                                values:#(false #browse true)
+                                default:true
+                ] ifFalse:[
+                    answer := Dialog confirm:dialogMsg
+                ].
+
+                answer == #browse ifTrue:[
+                    "/ param is either a collection of classes, or methods;
+
+                    param := param collect:[:each | (each isKindOf:RBAbstractClass) ifTrue:[
+                                                        each realClass
+                                                    ] ifFalse:[
 self error:'should not happen' mayProceed:true.
-							(each isKindOf:RBMethod) ifTrue:[
-							] ifFalse:[
-							].
-							each
-						    ]
-					   ].
-
-		    param first isBehavior ifTrue:[
-			self
-			    spawnClassBrowserFor:param
-			    label:'Classes affected by change'
-			    in:#newBrowser
-			    select:false
-		    ] ifFalse:[
-			self
-			    spawnMethodBrowserFor:param
-			    in:#newBrowser
-			    label:'Methods affected by change'
-		    ].
-		    answer := false
-		    "/                    answer := Dialog confirm: (ex description last == $?
-		    "/                                            ifTrue: [ex description]
-		    "/                                            ifFalse: [ex description , '\Do you want to proceed?' withCRs]).
-		].
-		answer ifTrue:[
-		    ex proceed
-		]
-	    ] ifFalse:[
-		param notNil ifTrue:[
-		    (Dialog confirm:errMsg) ifTrue:[
-			ex parameter value
-		    ]
-		] ifFalse:[
-		    ex mayProceed ifTrue:[
-			(Dialog
-			    confirm:('Missing Precondition for refactoring:\\' withCRs , errMsg)
-			    yesLabel:'Proceed Anyway'
-			    noLabel:'Cancel')
-			ifTrue:[
-			    ex proceed.
-			].
-		    ] ifFalse:[
-			Dialog warn:('Refactoring failed:\\' withCRs , errMsg)
-		    ].
-		]
-	    ].
-	    ex return
-	]
-	do:[self topApplication withWaitCursorDo:aBlock]
+                                                        (each isKindOf:RBMethod) ifTrue:[
+                                                        ] ifFalse:[
+                                                        ].
+                                                        each
+                                                    ]
+                                           ].
+
+                    param first isBehavior ifTrue:[
+                        self
+                            spawnClassBrowserFor:param
+                            label:'Classes affected by change'
+                            in:#newBrowser
+                            select:false
+                    ] ifFalse:[
+                        self
+                            spawnMethodBrowserFor:param
+                            in:#newBrowser
+                            label:'Methods affected by change'
+                    ].
+                    answer := false
+                    "/                    answer := Dialog confirm: (ex description last == $?
+                    "/                                            ifTrue: [ex description]
+                    "/                                            ifFalse: [ex description , '\Do you want to proceed?' withCRs]).
+                ].
+                answer ifTrue:[
+                    ex proceed
+                ]
+            ] ifFalse:[
+                param notNil ifTrue:[
+                    (Dialog confirm:errMsg) ifTrue:[
+                        ex parameter value
+                    ]
+                ] ifFalse:[
+                    ex mayProceed ifTrue:[
+                        (Dialog
+                            confirm:('Missing Precondition for refactoring:\\' withCRs , errMsg)
+                            yesLabel:'Proceed Anyway'
+                            noLabel:'Cancel')
+                        ifTrue:[
+                            ex proceed.
+                        ].
+                    ] ifFalse:[
+                        Dialog warn:('Refactoring failed:\\' withCRs , errMsg)
+                    ].
+                ]
+            ].
+            ex return
+        ]
+        do:[self topApplication withWaitCursorDo:aBlock]
 !
 
 operationsMenuRedo
@@ -37353,7 +38516,7 @@
 
     manager := RefactoryChangeManager instance.
     self changeRequest ifTrue:[
-	manager redoOperation.
+        manager redoOperation.
     ]
 !
 
@@ -37362,7 +38525,7 @@
 
     manager := RefactoryChangeManager instance.
     self changeRequest ifTrue:[
-	manager undoOperation.
+        manager undoOperation.
     ]
 !
 
@@ -37374,34 +38537,34 @@
     |rslt|
 
     aRefactoring isNil ifTrue:[
-	^ self
+        ^ self
     ].
 
     rslt := self
-		handlingRefactoringErrorDo:
-		    [
-			| changes |
-			aRefactoring isRefactoryChange ifTrue:[
-			    changes := aRefactoring.
-			    (UserPreferences current confirmRefactorings and:[changes shouldBeConfirmed]) ifTrue:[
-				changes := ChangeSetBrowser2 confirmChanges: changes.
-			    ].
-			    RefactoryChangeManager performChange:changes.
-			] ifFalse:[
-			    UserPreferences current confirmRefactorings ifTrue:[
-				aRefactoring primitiveExecute.
-				changes := aRefactoring changes.
-				changes changes size > 1 ifTrue:[
-				    changes := ChangeSetBrowser2 confirmChanges: changes.
-				    changes := (CompositeRefactoryChange named: (aRefactoring printString)) changes: changes.
-				].
-				RefactoryChangeManager performChange:changes.
-				RefactoringManager instance addRefactoring: aRefactoring performChanges: false.
-			] ifFalse:[
-			    aRefactoring execute
-			    ]
-			].
-		    ].
+                handlingRefactoringErrorDo:
+                    [
+                        | changes |
+                        aRefactoring isRefactoryChange ifTrue:[
+                            changes := aRefactoring.
+                            (UserPreferences current confirmRefactorings and:[changes shouldBeConfirmed]) ifTrue:[
+                                changes := ChangeSetBrowser2 confirmChanges: changes.
+                            ].
+                            RefactoryChangeManager performChange:changes.
+                        ] ifFalse:[
+                            UserPreferences current confirmRefactorings ifTrue:[
+                                aRefactoring primitiveExecute.
+                                changes := aRefactoring changes.
+                                changes changes size > 1 ifTrue:[
+                                    changes := ChangeSetBrowser2 confirmChanges: changes.
+                                    changes := (CompositeRefactoryChange named: (aRefactoring printString)) changes: changes.
+                                ].
+                                RefactoryChangeManager performChange:changes.
+                                RefactoringManager instance addRefactoring: aRefactoring performChanges: false.
+                            ] ifFalse:[
+                                aRefactoring execute
+                            ]
+                        ].
+                    ].
 
     self enqueueDelayedUpdateCodeWithoutAutoSearch.
     ^ rslt
@@ -37419,15 +38582,15 @@
 
     varName := self selectedClassVariableInCodeViewOrNil.
     varName notNil ifTrue:[
-	cls := self theSingleSelectedClass theNonMetaclass whichClassDefinesClassVar:varName.
-	cls notNil ifTrue:[
-	    ^ varName
-	].
+        cls := self theSingleSelectedClass theNonMetaclass whichClassDefinesClassVar:varName.
+        cls notNil ifTrue:[
+            ^ varName
+        ].
     ].
 
     self showingClassVarsInVariableList ifTrue:[
-	varName := self theSingleSelectedVariable.
-	^ varName.
+        varName := self theSingleSelectedVariable.
+        ^ varName.
     ].
 
     ^ nil.
@@ -37442,15 +38605,15 @@
 
     varName := self selectedInstanceVariableInCodeViewOrNil.
     varName notNil ifTrue:[
-	cls := self theSingleSelectedClass whichClassDefinesInstVar:varName.
-	cls notNil ifTrue:[
-	    ^ varName.
-	].
+        cls := self theSingleSelectedClass whichClassDefinesInstVar:varName.
+        cls notNil ifTrue:[
+            ^ varName.
+        ].
     ].
 
     self showingClassVarsInVariableList ifFalse:[
-	varName := self theSingleSelectedVariable.
-	^ varName.
+        varName := self theSingleSelectedVariable.
+        ^ varName.
     ].
 
     ^ nil.
@@ -37471,7 +38634,7 @@
     (self canUseRefactoringSupport) ifFalse:[^ self].
 
     undoString := Dialog request: 'Enter undo stack size:\(i.e.: Number of remembered operations)' withCRs
-			 initialAnswer:(RefactoryChangeManager undoSize printString).
+                         initialAnswer:(RefactoryChangeManager undoSize printString).
 
     undoSize := Integer readFrom:undoString onError:nil.
     undoSize isNil ifTrue: [^self].
@@ -37487,16 +38650,16 @@
     |mthd cls|
 
     (self askIfModified) ifFalse:[
-	^ self
+        ^ self
     ].
 
     (mthd := self theSingleSelectedMethod) notNil ifTrue:[
-	cls := mthd mclass.
-    ] ifFalse:[
-	self codeAspect value ~= SyntaxHighlighter codeAspectClassDefinition ifTrue:[
-	    ^ self warn:'Select either a single class or a single method.'
-	].
-	cls := self theSingleSelectedClass.
+        cls := mthd mclass.
+    ] ifFalse:[
+        self codeAspect value ~= SyntaxHighlighter codeAspectClassDefinition ifTrue:[
+            ^ self warn:'Select either a single class or a single method.'
+        ].
+        cls := self theSingleSelectedClass.
     ].
     aOneArgBlock value:cls.
 
@@ -37507,7 +38670,7 @@
     |currentMethod cls selector|
 
     (self askIfModified) ifFalse:[
-	^ self
+        ^ self
     ].
 
     currentMethod := self theSingleSelectedMethod.
@@ -37525,11 +38688,11 @@
     "clear coverage information for selected classes"
 
     self withWaitCursorDo:[
-	self selectedClassesDo:[:cls |
-	    InstrumentationInfo allInfosOfClass:cls do:[:info |
-		info cleanInfoWithChange:false
-	    ]
-	].
+        self selectedClassesDo:[:cls |
+            InstrumentationInfo allInfosOfClass:cls do:[:info |
+                info cleanInfoWithChange:false
+            ]
+        ].
     ].
     environment changed:#coverageInfo.
     self showCoverageInformation changed.   "/ to force update
@@ -37547,44 +38710,44 @@
     alsoRemoveStatementBreakpoints := nil.    "/ tri-state !!
     anyHaltIgnored := false.
     self selectedMethodsDo:[:mthdArg |
-	|mthd originalMethod cls sel wasWrapped|
-
-	mthd := mthdArg.
-	cls := mthd mclass.
-	cls notNil ifTrue:[
-	    sel := mthd selector.
-	    wasWrapped := mthd isWrapped.
-
-	    doClearAnyPreviousWrap ifTrue:[
-		wasWrapped ifTrue:[
-		    originalMethod := mthd originalMethod.
-		    mthd clearBreakPoint.
-		    mthd := originalMethod.
-		    sel isNil ifTrue:[sel := mthd selector].
-		].
-	    ].
-
-	    aSelector == #changeUpdateTrace ifTrue:[
-		MessageTracer traceUpdateMethod:mthd on:Transcript
-	    ] ifFalse:[
-		aSelector numArgs == 0 ifTrue:[
-		    mthd perform:aSelector.
-		] ifFalse:[
-		    mthd perform:aSelector with:argumentOrNil.
-		]
-	    ].
-
-	    (aSelector == #clearBreakPoint) ifTrue:[
-		mthd isMethodWithBreakpoints ifTrue:[
-		    (wasWrapped and:[alsoRemoveStatementBreakpoints isNil]) ifTrue:[
-			alsoRemoveStatementBreakpoints := Dialog confirm:'Also clear statement break/tracepoints?'.
-			alsoRemoveStatementBreakpoints isNil ifTrue:[ ^ self ].
-		    ].
-		    (wasWrapped not or:[alsoRemoveStatementBreakpoints == true]) ifTrue:[
-			mthd restoreOriginalMethod
-		    ]
-		].
-	    ].
+        |mthd originalMethod cls sel wasWrapped|
+
+        mthd := mthdArg.
+        cls := mthd mclass.
+        cls notNil ifTrue:[
+            sel := mthd selector.
+            wasWrapped := mthd isWrapped.
+
+            doClearAnyPreviousWrap ifTrue:[
+                wasWrapped ifTrue:[
+                    originalMethod := mthd originalMethod.
+                    mthd clearBreakPoint.
+                    mthd := originalMethod.
+                    sel isNil ifTrue:[sel := mthd selector].
+                ].
+            ].
+
+            aSelector == #changeUpdateTrace ifTrue:[
+                MessageTracer traceUpdateMethod:mthd on:Transcript
+            ] ifFalse:[
+                aSelector numArgs == 0 ifTrue:[
+                    mthd perform:aSelector.
+                ] ifFalse:[
+                    mthd perform:aSelector with:argumentOrNil.
+                ]
+            ].
+
+            (aSelector == #clearBreakPoint) ifTrue:[
+                mthd isMethodWithBreakpoints ifTrue:[
+                    (wasWrapped and:[alsoRemoveStatementBreakpoints isNil]) ifTrue:[
+                        alsoRemoveStatementBreakpoints := Dialog confirm:'Also clear statement break/tracepoints?'.
+                        alsoRemoveStatementBreakpoints isNil ifTrue:[ ^ self ].
+                    ].
+                    (wasWrapped not or:[alsoRemoveStatementBreakpoints == true]) ifTrue:[
+                        mthd restoreOriginalMethod
+                    ]
+                ].
+            ].
 
 "/            sel isNil ifTrue:[sel := mthd selector].
 "/            (sel isNil
@@ -37593,22 +38756,22 @@
 "/                sel := originalMethod selector
 "/            ].
 
-	    anyHaltIgnored := anyHaltIgnored
-				and:[
-				    DebugView
-					isHaltToBeIgnoredIn:mthd
-					atLineNr:1
-					context:nil
-					modifyEntryCount:false
-				]
-	]
+            anyHaltIgnored := anyHaltIgnored
+                                and:[
+                                    DebugView
+                                        isHaltToBeIgnoredIn:mthd
+                                        atLineNr:1
+                                        context:nil
+                                        modifyEntryCount:false
+                                ]
+        ]
     ].
 
     anyHaltIgnored ifTrue:[
-	(Dialog confirm:'Some halts/breakpoints are currently ignored (in the debugger).\Stop ignoring now?')
-	ifTrue:[
-	    DebugView stopIgnoringHalts
-	]
+        (Dialog confirm:'Some halts/breakpoints are currently ignored (in the debugger).\Stop ignoring now?')
+        ifTrue:[
+            DebugView stopIgnoringHalts
+        ]
     ].
 !
 
@@ -37649,17 +38812,16 @@
 
     "/ resources := ResourcePack for:self class.
 
-    Dialog aboutToOpenBoxNotificationSignal
-	handle:[:ex |
-	    ex box window minExtent:300@300.
-	] do:[
-	    class := Dialog
-			 choose:(resources string:'Break for (Sub-)Instances of')
-			 fromList:classList
-			 lines:20
-			 initialSelection:initialSelection
-			 title:(resources string:'Break for some Instances only').
-	].
+    Dialog modifyingBoxWith:[:box |
+        box window minExtent:300@300.
+    ] do:[
+        class := Dialog
+                     choose:(resources string:'Break for (Sub-)Instances of')
+                     fromList:classList
+                     lines:20
+                     initialSelection:initialSelection
+                     title:(resources string:'Break for some Instances only').
+    ].
 
     class isNil ifTrue:[^ self].
 "/    LastBreakPointClassName := class name.
@@ -37732,18 +38894,18 @@
 '.
 
     LastBreakPointConditionString isNil ifTrue:[
-	LastBreakPointConditionString := template.
+        LastBreakPointConditionString := template.
     ].
 
     "/ resources := ResourcePack for:self class.
 
     textHolder := ValueHolder new.
     dialog := Dialog
-		 forRequestText:(resources string:'Enter condition for breakpoint')
-		 lines:20
-		 columns:70
-		 initialAnswer:LastBreakPointConditionString
-		 model:textHolder.
+                 forRequestText:(resources string:'Enter condition for breakpoint')
+                 lines:20
+                 columns:70
+                 initialAnswer:LastBreakPointConditionString
+                 model:textHolder.
     dialog addButton:(Button label:'Template' action:[textHolder value:template. textHolder changed:#value.]).
     dialog open.
     dialog accepted ifFalse:[^ self].
@@ -37753,8 +38915,8 @@
 
     conditionBlock := Parser evaluate:conditionBlockString.
     conditionBlock isBlock ifFalse:[
-	self error:'bad input'.
-	^ self
+        self error:'bad input'.
+        ^ self
     ].
 
     self commonTraceHelperWith:#breakPointIf: with:conditionBlock clear:true
@@ -37772,63 +38934,63 @@
 
     processes := ProcessorScheduler knownProcesses asOrderedCollection.
     processes := processes select:[:aProcess |
-			aProcess notNil
-			and:[aProcess isDead not]
-		 ].
+                        aProcess notNil
+                        and:[aProcess isDead not]
+                 ].
     processes := processes sort:[:a :b | a id < b id].
     processNames := processes collect:[:aProcess |
-			|pName theGroup topViews topView topLabel winLabel
-			 busyOrNot iconifiedOrNot sensor pending |
-
-			pName := aProcess nameOrId.
-
-			"/ if its a windowGroup process,
-			"/ fetch its first topViews name and add.
-			"/ (allows selecting among multiple browsers ...)
-			winLabel := ''.
-
-			theGroup := windowGroups detect:[:g | g process == aProcess] ifNone:nil.
-			theGroup notNil ifTrue:[
-			    theGroup isModal ifTrue:[theGroup := (theGroup previousGroup ? theGroup)].
-			    topViews := theGroup topViews select:[:v | v isTopView].
-			    topViews size > 0 ifTrue:[
-				topView := topViews detect:[:v | v isCollapsed not] ifNone:nil.
-				topView isNil ifTrue:[ topView := topViews detect:[:v | v application notNil] ifNone:nil].
-				topView isNil ifTrue:[ topView := topViews first ].
-				topLabel := (topView label ? '').
-
-				busyOrNot := ''.
-				aProcess isDebugged ifTrue:[
-				    busyOrNot := ' debug'
-				] ifFalse:[
-				    (sensor := theGroup sensor) notNil ifTrue:[
-					(pending := sensor pendingEvent) notNil ifTrue:[
-					    (Timestamp now - pending timeStamp) > 1 ifTrue:[
-						(aProcess isDebugged) ifTrue:[
-						    busyOrNot := ' debug'
-						] ifFalse:[
-						    busyOrNot := ' busy'
-						].
-					    ]
-					]
-				    ].
-				].
-				iconifiedOrNot := ''.
-				topView isCollapsed ifTrue:[
-				    iconifiedOrNot := ' iconified' colorizeAllWith:Color blue.
-				].
-				busyOrNot notEmptyOrNil ifTrue:[
-				    busyOrNot := busyOrNot allBold colorizeAllWith:Color red
-				].
-				winLabel := '  ("' , topLabel , '"',busyOrNot,iconifiedOrNot, ')'
-			    ].
-			] ifFalse:[
-			    (aProcess isDebugged) ifTrue:[
-				winLabel := ' (debug)' allBold colorizeAllWith:Color red
-			    ].
-			].
-			aProcess id printString , ' [' , pName , ']' , winLabel
-		    ].
+                        |pName theGroup topViews topView topLabel winLabel
+                         busyOrNot iconifiedOrNot sensor pending |
+
+                        pName := aProcess nameOrId.
+
+                        "/ if its a windowGroup process,
+                        "/ fetch its first topViews name and add.
+                        "/ (allows selecting among multiple browsers ...)
+                        winLabel := ''.
+
+                        theGroup := windowGroups detect:[:g | g process == aProcess] ifNone:nil.
+                        theGroup notNil ifTrue:[
+                            theGroup isModal ifTrue:[theGroup := (theGroup previousGroup ? theGroup)].
+                            topViews := theGroup topViews select:[:v | v isTopView].
+                            topViews size > 0 ifTrue:[
+                                topView := topViews detect:[:v | v isCollapsed not] ifNone:nil.
+                                topView isNil ifTrue:[ topView := topViews detect:[:v | v application notNil] ifNone:nil].
+                                topView isNil ifTrue:[ topView := topViews first ].
+                                topLabel := (topView label ? '').
+
+                                busyOrNot := ''.
+                                aProcess isDebugged ifTrue:[
+                                    busyOrNot := ' debug'
+                                ] ifFalse:[
+                                    (sensor := theGroup sensor) notNil ifTrue:[
+                                        (pending := sensor pendingEvent) notNil ifTrue:[
+                                            (Timestamp now secondDeltaFrom: pending timeStamp) > 1 ifTrue:[
+                                                (aProcess isDebugged) ifTrue:[
+                                                    busyOrNot := ' debug'
+                                                ] ifFalse:[
+                                                    busyOrNot := ' busy'
+                                                ].
+                                            ]
+                                        ]
+                                    ].
+                                ].
+                                iconifiedOrNot := ''.
+                                topView isCollapsed ifTrue:[
+                                    iconifiedOrNot := ' iconified' colorizeAllWith:Color blue.
+                                ].
+                                busyOrNot notEmptyOrNil ifTrue:[
+                                    busyOrNot := busyOrNot allBold colorizeAllWith:Color red
+                                ].
+                                winLabel := '  ("' , topLabel , '"',busyOrNot,iconifiedOrNot, ')'
+                            ].
+                        ] ifFalse:[
+                            (aProcess isDebugged) ifTrue:[
+                                winLabel := ' (debug)' allBold colorizeAllWith:Color red
+                            ].
+                        ].
+                        aProcess id printString , ' [' , pName , ']' , winLabel
+                    ].
 
     "/ let user specify which one ...
 
@@ -37837,9 +38999,9 @@
     box list:processNames.
     box label:(resources string:'process selection').
     box title:(resources
-		string:'Stop if method is executed by process:\\(current process is %1)'
-		with:(Processor activeProcess id)
-		with:(Processor activeProcess nameOrId)) withCRs.
+                string:'Stop if method is executed by process:\\(current process is %1)'
+                with:(Processor activeProcess id)
+                with:(Processor activeProcess nameOrId)) withCRs.
     box action:[:selection | selectedProcessIndex := box selectionIndex].
     box initialSelection:(processes identityIndexOf:Processor activeProcess).
     box extent:(450 @ 350).
@@ -37847,10 +39009,10 @@
     box destroy.
 
     selectedProcessIndex notNil ifTrue:[
-	self
-	    commonTraceHelperWith:#breakPointInProcess:
-	    with:(processes at:selectedProcessIndex)
-	    clear:true
+        self
+            commonTraceHelperWith:#breakPointInProcess:
+            with:(processes at:selectedProcessIndex)
+            clear:true
     ].
 
     "Created: / 14-10-1996 / 15:40:53 / cg"
@@ -37862,7 +39024,7 @@
     "clear all coverage information"
 
     self withWaitCursorDo:[
-	InstrumentedMethod cleanAllInfoWithChange:false
+        InstrumentedMethod cleanAllInfoWithChange:false
     ].
     environment changed:#coverageInfo.
     self showCoverageInformation changed.   "/ to force update
@@ -37878,8 +39040,8 @@
 
 debugMenuEnableGlobalCoverageRecording
     InstrumentationContext new
-	coverageOnly:true;
-	beActiveEverywhere
+        coverageOnly:true;
+        beActiveEverywhere
 
     "Created: / 21-09-2011 / 19:17:42 / cg"
 !
@@ -37909,40 +39071,40 @@
     |callingMethods allMethods|
 
     OOM::MetricVisualizer isNil ifTrue:[
-	Dialog information:'Missing class: OOM::MetricVisualizer'.
-	^ self.
+        Dialog information:'Missing class: OOM::MetricVisualizer'.
+        ^ self.
     ].
 
     callingMethods := Set new.
     methods
-	do:[:eachMethod |
-	    |info|
-
-	    InstrumentingCompiler callersOf:eachMethod do:[:callingMethod |
-		callingMethod == eachMethod ifFalse:[
-		    callingMethods add:callingMethod
-		]
-	    ]
-	].
+        do:[:eachMethod |
+            |info|
+
+            InstrumentingCompiler callersOf:eachMethod do:[:callingMethod |
+                callingMethod == eachMethod ifFalse:[
+                    callingMethods add:callingMethod
+                ]
+            ]
+        ].
 
     callingMethods removeAllFoundIn:methods.
     callingMethods do:[:caller |
-	"/ dont do primitives...
-	caller hasPrimitiveCode ifFalse:[
-	    caller mclass notNil ifTrue:[
-		caller isInstrumented ifFalse:[
-		    InstrumentingCompiler compileMethod:caller
-		].
-	    ]
-	].
+        "/ dont do primitives...
+        caller hasPrimitiveCode ifFalse:[
+            caller mclass notNil ifTrue:[
+                caller isInstrumented ifFalse:[
+                    InstrumentingCompiler compileMethod:caller
+                ].
+            ]
+        ].
     ].
 
     allMethods := Set withAll:methods.
     allMethods addAll:callingMethods.
 
     OOM::MetricVisualizer
-	openViewerOnDiagramForMethods:allMethods
-	setupWith:[:viewer | viewer set_DynamicMethodInvocationDiagram]
+        openViewerOnDiagramForMethods:allMethods
+        setupWith:[:viewer | viewer set_DynamicMethodInvocationDiagram]
 
     "Created: / 27-04-2010 / 14:07:07 / cg"
 !
@@ -37958,10 +39120,13 @@
 debugMenuRemoveAllBreakpoints
     "remove all breakpoints in the system"
 
-    (MessageTracer notNil and:[MessageTracer isLoaded]) ifTrue:[
-	self withExecuteCursorDo:[
-	    MessageTracer unwrapAllMethods
-	]
+    self withExecuteCursorDo:[
+        (MessageTracer notNil and:[MessageTracer isLoaded]) ifTrue:[
+            MessageTracer unwrapAllMethods.
+        ].
+        (MethodWithBreakpoints notNil and:[MessageTracer isLoaded]) ifTrue:[
+            MethodWithBreakpoints removeAllBreakpoints.
+        ].
     ]
 !
 
@@ -38088,10 +39253,10 @@
 
     testedClasses := Set new.
     self selectedNonAbstractTestCaseClassesDo:[:eachClass |
-	testedClasses addAll:(eachClass coveredClasses).
+        testedClasses addAll:(eachClass coveredClasses).
     ].
     testedClasses do:[:eachClass |
-	self recompileClassWithInstrumentation:eachClass
+        self recompileClassWithInstrumentation:eachClass
     ].
 
     self infoLabelHolder value:nil.
@@ -38122,78 +39287,79 @@
 runTestCasesWithDebug:withDebug protocols:protocolsOrNil
     "run selected testcases"
 
-    |t embeddedTestRunner|
+    |embeddedTestRunner|
 
     embeddedTestRunner := self navigationState applicationOfComponent:#TestRunnerEmbedded.
     embeddedTestRunner notNil ifTrue:[
-	withDebug ifTrue:[
-	    embeddedTestRunner runWithDebug
-	] ifFalse:[
-	    embeddedTestRunner run
-	].
-	^ self
+        withDebug ifTrue:[
+            embeddedTestRunner runWithDebug
+            "/ embeddedTestRunner debug
+        ] ifFalse:[
+            embeddedTestRunner run
+        ].
+        ^ self
     ].
 
     [
-	t := Time millisecondsToRun:
-	    [
-		self
-		    selectedNonAbstractTestCaseClassesDo:[:cls |
-			|isCompleteSuite suite selectors toRun result|
-
-			(protocolsOrNil isEmptyOrNil
-			or:[ protocolsOrNil includes:BrowserList nameListEntryForALL ]) ifTrue:[
-			    isCompleteSuite := true.
-			    suite := cls buildSuite.
-			] ifFalse:[
-			    isCompleteSuite := false.
-			    (selectors := self selectedSelectors) isEmptyOrNil ifTrue:[
-				selectors := OrderedCollection new.
-				self
-				    selectedProtocolMethodsDo:[:cls :category :sel :mthd |
-					(cls isTestCaseLike and:[ cls isAbstract not ]) ifTrue:[
-					    (cls isTestSelector:sel) ifTrue:[
-						selectors add:sel
-					    ].
-					].
-				    ].
-			    ].
-			    suite := cls buildSuiteFromMethods:selectors.
-			].
-			self busyLabel:'running test %1 ...' with:cls name.
-			toRun := suite tests size.
-			withDebug ifTrue:[
-			    result := TestResultForRunWithDebug new.
-			] ifFalse:[
-			    result := TestResult defaultResultClass new.
-			].
-			suite
-			    run:result
-			    beforeEachDo:[:case :result |
-				self showInfo:('To Run: %1 ; executing %2...'
-					    bindWith:toRun
-					    with:case printString).
-			    ]
-			    afterEachDo:[:case :result | toRun := toRun - 1. ].
-
-			Transcript showCR:(result printString).
-			result hasPassed ifTrue:[
-			    result passedCount > 0 ifTrue:[
-				self showInfo:(result printString asText colorizeAllWith:Color black on:Color green).
-			    ].
-			] ifFalse:[
-			    self showInfo:(result printString asText colorizeAllWith:Color black on:Color red).
-			].
-		    ].
-	    ].
-    ] ensure:[
-	self normalLabel.
-    ].
-    Transcript show:'test execution time: '; showCR:(TimeDuration new setMilliseconds:t).
+        [
+            self
+                selectedNonAbstractTestCaseClassesDo:[:cls |
+                    |isCompleteSuite suite selectors toRun result|
+
+                    (protocolsOrNil isEmptyOrNil
+                        or:[ protocolsOrNil includes:BrowserList nameListEntryForALL ])
+                            ifTrue:[
+                                isCompleteSuite := true.
+                                suite := cls buildSuite.
+                            ]
+                            ifFalse:[
+                                isCompleteSuite := false.
+                                (selectors := self selectedSelectors) isEmptyOrNil ifTrue:[
+                                    selectors := OrderedCollection new.
+                                    self
+                                        selectedProtocolMethodsDo:[:cls :category :sel :mthd |
+                                            (cls isTestCaseLike and:[ cls isAbstract not ]) ifTrue:[
+                                                (cls isTestSelector:sel) ifTrue:[
+                                                    selectors add:sel
+                                                ].
+                                            ].
+                                        ].
+                                ].
+                                suite := cls buildSuiteFromMethods:selectors.
+                            ].
+                    self busyLabel:'running test %1 ...' with:cls name.
+                    toRun := suite tests size.
+                    withDebug ifTrue:[
+                        result := TestResultForRunWithDebug new.
+                    ] ifFalse:[
+                        result := TestResult new.
+                    ].
+                    suite
+                        run:result
+                        beforeEachDo:[:case :result |
+                            self showInfo:('To Run: %1 ; executing %2...' bindWith:toRun
+                                        with:case printString).
+                        ]
+                        afterEachDo:[:case :result | toRun := toRun - 1. ]
+                        debug: withDebug.
+
+                    result hasPassed ifTrue:[
+                        result passedCount > 0 ifTrue:[
+                            self showInfo:(result printString asText colorizeAllWith:Color black
+                                        on:Color green).
+                        ].
+                    ] ifFalse:[
+                        self showInfo:(result printString asText colorizeAllWith:Color black
+                                    on:Color red).
+                    ].
+                ].
+        ] benchmark:'test exec time: '.
+    ] ensure:[ self normalLabel ].
 
     "Created: / 05-08-2006 / 17:32:06 / cg"
     "Modified: / 06-07-2011 / 14:07:52 / cg"
     "Modified: / 21-08-2011 / 13:54:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 26-12-2013 / 22:01:37 / f.urbach"
 !
 
 selectedNonAbstractTestCaseClassesDo:aBlock
@@ -38205,20 +39371,20 @@
 
     selectedClasses := self selectedClassesValue.
     selectedClasses isEmptyOrNil ifTrue:[
-	selectedClasses := self selectedCategoryClasses
+        selectedClasses := self selectedCategoryClasses
     ].
 
     selectedClasses do:[:eachClass |
-	|cls|
-
-	cls := eachClass.
-	cls isLoaded ifFalse:[
-	    cls := eachClass autoload.
-	].
-	cls := cls theNonMetaclass.
-	(cls isTestCaseLike and:[cls isAbstract not]) ifTrue:[
-	    aBlock value:cls
-	]
+        |cls|
+
+        cls := eachClass.
+        cls isLoaded ifFalse:[
+            cls := eachClass autoload.
+        ].
+        cls := cls theNonMetaclass.
+        (cls isTestCaseLike and:[cls isAbstract not]) ifTrue:[
+            aBlock value:cls
+        ]
     ].
 
     "Modified: / 28-02-2012 / 16:52:45 / cg"
@@ -38269,8 +39435,8 @@
     classes := self selectedMethodsClasses asOrderedCollection.
 
     ^ self
-	classMenuCheckIn:true
-	classes:classes
+        classMenuCheckIn:true
+        classes:classes
 
     "Modified: / 18-11-2011 / 18:49:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 28-02-2012 / 09:12:37 / cg"
@@ -38284,9 +39450,9 @@
     classes := self selectedMethodsClasses asOrderedCollection.
 
     ^ self
-	classMenuCheckIn:true
-	classes:classes
-	usingManager: manager.
+        classMenuCheckIn:true
+        classes:classes
+        usingManager: manager.
 
     "Created: / 18-11-2011 / 18:49:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Created: / 21-12-2011 / 20:18:09 / cg"
@@ -38297,7 +39463,7 @@
 
     |mgr|
 
-    mgr := Smalltalk at:sourceCodeManagerClassName asSymbol.
+    mgr := Smalltalk classNamed:sourceCodeManagerClassName.
     self assert:(mgr notNil).
     ^self methodListMenuCheckInClassUsingManager: mgr
 !
@@ -38332,10 +39498,10 @@
 
 methodListMenuFileOutAllAsWithFormat:aFormatSymbolOrNil
     "fileOut all methods from the list -  file format as specified by the argument:
-	nil     - standard format
-	#xml    - XML standard format
-	#sif    - SIF (smalltalk interchange file) standard format
-	#binary - ST/X binary format
+        nil     - standard format
+        #xml    - XML standard format
+        #sif    - SIF (smalltalk interchange file) standard format
+        #binary - ST/X binary format
     "
 
     |methods|
@@ -38344,10 +39510,10 @@
     methods size == 0 ifTrue:[ ^ self ].
 
     self
-	fileOutMethods:methods
-	format:aFormatSymbolOrNil
-	fileNameTemplate:'someMethods'
-	boxTitle:'FileOut all listed methods as:'
+        fileOutMethods:methods
+        format:aFormatSymbolOrNil
+        fileNameTemplate:'someMethods'
+        boxTitle:'FileOut all listed methods as:'
 
     "Created: / 15.11.2001 / 17:53:22 / cg"
     "Modified: / 15.11.2001 / 18:00:20 / cg"
@@ -38462,23 +39628,23 @@
     brwsr := self spawnFullBrowserInClass:nil selector:nil in:where.
 
     classes size > 0 ifTrue:[
-	brwsr immediateUpdate value:true.
-	brwsr selectedCategories value:(classes collect:[:each | each theNonMetaclass category] as:Set) asOrderedCollection.
-	anyNonMeta := classes contains:[:any | any isMeta not].
-	anyMeta := classes contains:[:any | any isMeta].
-	anyMeta ifFalse:[
-	    brwsr selectedClasses value:classes
-	] ifTrue:[
-	    anyNonMeta ifFalse:[
-		brwsr meta value:true.
-		brwsr selectedClasses value:classes.
-	    ]
-	].
-	methods size == 1 ifTrue:[
-	    brwsr selectProtocols:(methods collect:[:each | each category]) asSet asOrderedCollection.
-	    brwsr selectedMethods value:methods
-	].
-	brwsr immediateUpdate value:false.
+        brwsr immediateUpdate value:true.
+        brwsr selectedCategories value:(classes collect:[:each | each theNonMetaclass category] as:Set) asOrderedCollection.
+        anyNonMeta := classes contains:[:any | any isMeta not].
+        anyMeta := classes contains:[:any | any isMeta].
+        anyMeta ifFalse:[
+            brwsr selectedClasses value:classes
+        ] ifTrue:[
+            anyNonMeta ifFalse:[
+                brwsr meta value:true.
+                brwsr selectedClasses value:classes.
+            ]
+        ].
+        methods size == 1 ifTrue:[
+            brwsr selectProtocols:(methods collect:[:each | each category]) asSet asOrderedCollection.
+            brwsr selectedMethods value:methods
+        ].
+        brwsr immediateUpdate value:false.
     ].
     ^ brwsr
 
@@ -38498,9 +39664,9 @@
 
     selectedNameSpaces := self selectedNamespaces value.
     selectedNameSpaceClasses := environment allClasses select:[:eachClass |
-								  eachClass isPrivate not
-								  and:[selectedNameSpaces includes:eachClass nameSpace name]
-							     ] .
+                                                                  eachClass isPrivate not
+                                                                  and:[selectedNameSpaces includes:eachClass nameSpace name]
+                                                             ] .
 
     self checkOutClasses:selectedNameSpaceClasses askForRevision:true
 !
@@ -38512,27 +39678,27 @@
 
     nm := Dialog request:(resources string:'Name of new NameSpace:').
     (nm isNil or:[(nm := nm withoutSeparators) size == 0]) ifTrue:[
-	^ self
+        ^ self
     ].
     existing := environment at:nm asSymbol ifAbsent:nil.
     existing notNil ifTrue:[
-	existing isNameSpace ifTrue:[
-	    self warn:'A NameSpace named ''%1'' alread exists.' with:nm.
-	    ^ self
-	].
-	existing isBehavior ifFalse:[
-	    self warn:'A class named ''%1'' alread exists.' with:nm.
-	    ^ self
-	].
-	self warn:'A global named ''%1'' alread exists.\(Currently bound to %2)' with:nm with:existing classNameWithArticle.
-	^ self
+        existing isNameSpace ifTrue:[
+            self warn:'A NameSpace named ''%1'' alread exists.' with:nm.
+            ^ self
+        ].
+        existing isBehavior ifFalse:[
+            self warn:'A class named ''%1'' alread exists.' with:nm.
+            ^ self
+        ].
+        self warn:'A global named ''%1'' alread exists.\(Currently bound to %2)' with:nm with:existing classNameWithArticle.
+        ^ self
     ].
     Class nameSpaceQuerySignal answer:Smalltalk do:[
-	ns := NameSpace fullName:nm.
+        ns := NameSpace fullName:nm.
     ].
     ns isNil ifTrue:[
-	self warn:'Could not create new NameSpace ''%1''.' with:nm.
-	^ self
+        self warn:'Could not create new NameSpace ''%1''.' with:nm.
+        ^ self
     ].
     self selectedNamespaces value:(Array with:nm)
 
@@ -38543,12 +39709,12 @@
     "remove the selected namespace(s)"
 
     self selectedNamespacesValue do:[:nm |
-	|ns|
-
-	nm ~= BrowserList nameListEntryForALL ifTrue:[
-	    ns := environment at:nm asSymbol.
-	    environment removeClass:ns.
-	]
+        |ns|
+
+        nm ~= BrowserList nameListEntryForALL ifTrue:[
+            ns := environment at:nm asSymbol.
+            environment removeClass:ns.
+        ]
     ].
 !
 
@@ -38579,35 +39745,35 @@
 
 spawnNamespaceBrowserFor:namespaces in:where
     "browse selected namespace(s);
-	where is: #newBrowser - open a new browser showing the namespaces
-	where is: #newBuffer  - add a new buffer showing the namespaces"
+        where is: #newBrowser - open a new browser showing the namespaces
+        where is: #newBuffer  - add a new buffer showing the namespaces"
 
     |spec namespaceList singleSelection selectedClasses|
 
     (singleSelection := namespaces size == 1) ifTrue:[
-	spec := #singleNameSpaceBrowserSpec.
-	spec := #singleNameSpaceFullBrowserSpec.
-    ] ifFalse:[
-	spec := #multipleNameSpaceBrowserSpec.
-	spec := #multipleNameSpaceFullBrowserSpec.
+        spec := #singleNameSpaceBrowserSpec.
+        spec := #singleNameSpaceFullBrowserSpec.
+    ] ifFalse:[
+        spec := #multipleNameSpaceBrowserSpec.
+        spec := #multipleNameSpaceFullBrowserSpec.
     ].
 
     namespaceList := namespaces copy.
     selectedClasses := self selectedClassesValue.
 
     self
-	newBrowserOrBufferDependingOn:where
-	label:nil
-	forSpec:spec
-	setupWith:[:brwsr |
-	    "/ setup for a constant list ...
-
-	    "/ brwsr immediateUpdate value:true.
-	    brwsr organizerMode value:(OrganizerCanvas organizerModeNamespace).
-	    brwsr nameSpaceListGenerator value:namespaceList.
-	    brwsr selectNamespaces:(singleSelection ifTrue:[namespaceList] ifFalse:[#()]).
-	    "/ brwsr immediateUpdate value:false.
-	]
+        newBrowserOrBufferDependingOn:where
+        label:nil
+        forSpec:spec
+        setupWith:[:brwsr |
+            "/ setup for a constant list ...
+
+            "/ brwsr immediateUpdate value:true.
+            brwsr organizerMode value:(OrganizerCanvas organizerModeNamespace).
+            brwsr nameSpaceListGenerator value:namespaceList.
+            brwsr selectNamespaces:(singleSelection ifTrue:[namespaceList] ifFalse:[#()]).
+            "/ brwsr immediateUpdate value:false.
+        ]
 
     "Modified: / 28-02-2012 / 16:53:04 / cg"
 ! !
@@ -38635,35 +39801,34 @@
 !
 
 openSettingsDialogAndSelect: settingsClassToSelectOrNil
-    |settingsList settingsApp|
+    |settingsList|
 
     settingsList :=
-	#(
-	    #('Editor'                  #'AbstractSettingsApplication::EditSettingsAppl'                )
-	    #('Editor/Code Editor 2'    #'Tools::CodeView2SettingsAppl'                                 )
-	    #('Editor/Syntax Color'     #'AbstractSettingsApplication::SyntaxColorSettingsAppl'         )
-	    #('Editor/Code Format'      #'AbstractSettingsApplication::SourceCodeFormatSettingsAppl'    )
-	    #('System Browser'          #'AbstractSettingsApplication::SystemBrowserSettingsAppl'       )
-	    #('Compiler'                #'AbstractSettingsApplication::GeneralCompilerSettingsAppl'     )
-	    #('Compiler/ByteCode'       #'AbstractSettingsApplication::ByteCodeCompilerSettingsAppl'    )
-	    #('Source Code Management'  #'AbstractSettingsApplication::SourceCodeManagementSettingsAppl')
-	    "/ see initializeSettingsList for how the following is expanded...
-	    #('Source Code Management/[% managerTypeName]'
-						'[ AbstractSourceCodeManager availableManagers
-						     collect:[:each | each settingsApplicationClass] ]'
-													    '[% defaultIcon]' )
-	).
-
-    settingsApp := SettingsDialog new.
-    "/ settingsApp requestor:self.
-    settingsApp installSettingsEntries:settingsList expand: true.
-    settingsApp allButOpen.
-    settingsApp showRoot: false.
-    settingsClassToSelectOrNil notNil ifTrue:[
-	settingsApp selectItemWithClass: settingsClassToSelectOrNil.
-    ].
-    settingsApp window label:('System Browser Settings').
-    settingsApp openWindow.
+        OrderedCollection new
+            addAll:
+                #(
+                    #('Editor'                  #'AbstractSettingsApplication::EditSettingsAppl'                )
+                    #('Editor/Code Editor 2'    #'Tools::CodeView2SettingsAppl'                                 )
+                    #('Editor/Syntax Color'     #'AbstractSettingsApplication::SyntaxColorSettingsAppl'         )
+                    #('Editor/Code Format'      #'AbstractSettingsApplication::SourceCodeFormatSettingsAppl'    )
+                    #('System Browser'          #'AbstractSettingsApplication::SystemBrowserSettingsAppl'       )
+                    #('Compiler'                #'AbstractSettingsApplication::GeneralCompilerSettingsAppl'     )
+                    #('Compiler/ByteCode'       #'AbstractSettingsApplication::ByteCodeCompilerSettingsAppl'    )
+                    #('Source Code Management'  #'AbstractSettingsApplication::SourceCodeManagementSettingsAppl')
+                );
+            add:
+                "/ see initializeSettingsList for how the following is expanded...
+                {'Source Code Management/[% managerTypeName]' .
+                                        [ AbstractSourceCodeManager availableManagers
+                                                     collect:[:each | each settingsApplicationClass] ] .
+                                                                                      '[% defaultIcon]' };
+            yourself.
+
+    SettingsDialog
+        openWithList:(AbstractLauncherApplication expandSettingsList: settingsList)
+        label:(resources string:'System Browser Settings')
+        initialSettingsClass:settingsClassToSelectOrNil
+
 
     "Created: / 15-10-2011 / 12:01:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 14-02-2012 / 15:35:18 / cg"
@@ -38685,9 +39850,9 @@
 
 classMenuCheckInBuildSupportFiles
     self selectedNonMetaclassesDo:[:eachClass |
-	eachClass isProjectDefinition ifTrue:[
-	    self projectMenuCheckInBuildSupportFilesForProject:eachClass package usingManager:nil.
-	]
+        eachClass isProjectDefinition ifTrue:[
+            self projectMenuCheckInBuildSupportFilesForProject:eachClass package usingManager:nil.
+        ]
     ]
 
     "Created: / 09-08-2006 / 19:04:52 / fm"
@@ -38696,9 +39861,9 @@
 
 classMenuCheckInBuildSupportFilesUsingManager:aManagerOrNil
     self selectedNonMetaclassesDo:[:eachClass |
-	eachClass isProjectDefinition ifTrue:[
-	    self projectMenuCheckInBuildSupportFilesForProject:eachClass package definition:eachClass usingManager:aManagerOrNil
-	]
+        eachClass isProjectDefinition ifTrue:[
+            self projectMenuCheckInBuildSupportFilesForProject:eachClass package definition:eachClass usingManager:aManagerOrNil
+        ]
     ]
 
     "Modified: / 11-10-2011 / 23:16:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -38708,19 +39873,30 @@
 classMenuCheckInBuildSupportFilesUsingManagerNamed:sourceCodeManagerClassName
     |mgr|
 
-    mgr := Smalltalk at:sourceCodeManagerClassName asSymbol.
+    mgr := Smalltalk classNamed:sourceCodeManagerClassName.
     self assert:(mgr notNil).
     self classMenuCheckInBuildSupportFilesUsingManager:mgr
 
     "Created: / 22-12-2011 / 14:04:45 / cg"
 !
 
+classMenuCopyClassNamesToClipboard
+    |stream|
+
+    stream := '' writeStream.
+    self selectedClassesValue do:[:cls |
+        stream nextPutLine:(cls theNonMetaclass name)
+    ].
+
+    self window setClipboardText:stream contents
+!
+
 classMenuCopySourceToClipboard
     |stream|
 
     stream := '' writeStream.
     self selectedClassesValue do:[:cls |
-	cls theNonMetaclass fileOutOn:stream.
+        cls theNonMetaclass fileOutOn:stream.
     ].
 
     self window setClipboardText:stream contents
@@ -38730,9 +39906,9 @@
 
 classMenuFileOutBuildSupportFiles
     self selectedNonMetaclassesDo:[:eachClass |
-	eachClass isProjectDefinition ifTrue:[
-	    self projectMenuFileOutBuildSupportFilesForProject:eachClass package
-	]
+        eachClass isProjectDefinition ifTrue:[
+            self projectMenuFileOutBuildSupportFilesForProject:eachClass package
+        ]
     ]
 !
 
@@ -38741,11 +39917,11 @@
     |utilities|
 
     PerforceSourceCodeManager notNil ifTrue:[
-	utilities := PerforceSourceCodeManager utilities.
-
-	self withActivityNotificationsRedirectedToInfoLabelDo:[
-	    utilities submit.
-	].
+        utilities := PerforceSourceCodeManager utilities.
+
+        self withActivityNotificationsRedirectedToInfoLabelDo:[
+            utilities submit.
+        ].
     ]
     "Created: / 09-08-2006 / 19:04:52 / fm"
     "Modified: / 12-09-2006 / 13:53:28 / cg"
@@ -38758,19 +39934,19 @@
     |baseVersionTag patchVersionTag knownTags|
 
     ((classes size <= 10)
-	or:[ |answer|
-	     answer := Dialog
-			confirmWithCancel:'Fetch known tags to choose from all classes?\(this may take some time)' withCRs
-			default:false.
-	     answer isNil ifTrue:[^ self].
-	     answer == true
-	   ]
+        or:[ |answer|
+             answer := Dialog
+                        confirmWithCancel:'Fetch known tags to choose from all classes?\(this may take some time)' withCRs
+                        default:false.
+             answer isNil ifTrue:[^ self].
+             answer == true
+           ]
     ) ifTrue:[
-	"/ fetch from all classes
-	knownTags := self allKnownTagsInClasses:classes.
-    ] ifFalse:[
-	"/ only fetch from ProjectDefinitionClasses
-	knownTags := self allKnownTagsInClasses:(classes select:[:cls | cls isProjectDefinition]).
+        "/ fetch from all classes
+        knownTags := self allKnownTagsInClasses:classes.
+    ] ifFalse:[
+        "/ only fetch from ProjectDefinitionClasses
+        knownTags := self allKnownTagsInClasses:(classes select:[:cls | cls isProjectDefinition]).
     ].
 
     baseVersionTag := Dialog request:'Tag of Base Version:' initialAnswer:LastBaseVersionTag list:knownTags.
@@ -38794,71 +39970,71 @@
     fullPatchSet := ChangeSet new.
 
     classes do:[:eachClass |
-	|tagRevisionMapping baseVersion patchVersion baseVersionSource patchVersionSource
-	 baseChangeSet patchChangeSet diffSet thisPatchSet|
-
-	tagRevisionMapping := eachClass sourceCodeManager knownTagsAndRevisionsFor:eachClass.
-	(tagRevisionMapping includesKey:patchVersionTag) ifTrue:[
-	    (tagRevisionMapping includesKey:baseVersionTag) ifTrue:[
-		"/ versions?
-		baseVersion := tagRevisionMapping at:baseVersionTag.
-		patchVersion := tagRevisionMapping at:patchVersionTag.
-
-		baseVersion ~= patchVersion ifTrue:[
-		    "/ change-sets...
-		    baseVersionSource := self getClassSourceFor:eachClass revision:baseVersionTag.
-		    patchVersionSource := self getClassSourceFor:eachClass revision:patchVersionTag.
-
-		    (baseVersionSource notNil and:[patchVersionSource notNil]) ifTrue:[
-			baseChangeSet := ChangeSet fromStream:baseVersionSource readStream.
-			patchChangeSet := ChangeSet fromStream:patchVersionSource readStream.
-		    ].
-
-		    diffSet := baseChangeSet diffSetsAgainst:patchChangeSet.
-		    thisPatchSet := ChangeSet fromDiffSet:diffSet.
-
-		    fullPatchSet addAll:thisPatchSet.
-		].
-	    ]
-	]
+        |tagRevisionMapping baseVersion patchVersion baseVersionSource patchVersionSource
+         baseChangeSet patchChangeSet diffSet thisPatchSet|
+
+        tagRevisionMapping := eachClass sourceCodeManager knownTagsAndRevisionsFor:eachClass.
+        (tagRevisionMapping includesKey:patchVersionTag) ifTrue:[
+            (tagRevisionMapping includesKey:baseVersionTag) ifTrue:[
+                "/ versions?
+                baseVersion := tagRevisionMapping at:baseVersionTag.
+                patchVersion := tagRevisionMapping at:patchVersionTag.
+
+                baseVersion ~= patchVersion ifTrue:[
+                    "/ change-sets...
+                    baseVersionSource := self getClassSourceFor:eachClass revision:baseVersionTag.
+                    patchVersionSource := self getClassSourceFor:eachClass revision:patchVersionTag.
+
+                    (baseVersionSource notNil and:[patchVersionSource notNil]) ifTrue:[
+                        baseChangeSet := ChangeSet fromStream:baseVersionSource readStream.
+                        patchChangeSet := ChangeSet fromStream:patchVersionSource readStream.
+                    ].
+
+                    diffSet := baseChangeSet diffSetsAgainst:patchChangeSet.
+                    thisPatchSet := ChangeSet fromDiffSet:diffSet.
+
+                    fullPatchSet addAll:thisPatchSet.
+                ].
+            ]
+        ]
     ].
     fullPatchSet size == 0 ifTrue:[
-	Dialog information:'Patch-Set is empty; nothing to generate.'.
-	^ self.
+        Dialog information:'Patch-Set is empty; nothing to generate.'.
+        ^ self.
     ].
 
     Expecco::KeyFileGenerator isNil ifTrue:[
-	buttonLabels := #('Cancel' 'Browse' 'Save as Patch...' ).
-	buttonValues := #(nil browse saveAsPatchFile ).
-    ] ifFalse:[
-	buttonLabels := #('Cancel' 'Browse' 'Save as Signed Patch...' 'Save as Patch...' ).
-	buttonValues := #(nil browse saveAsSignedPatchFile saveAsPatchFile ).
+        buttonLabels := #('Cancel' 'Browse' 'Save as Patch...' ).
+        buttonValues := #(nil browse saveAsPatchFile ).
+    ] ifFalse:[
+        buttonLabels := #('Cancel' 'Browse' 'Save as Signed Patch...' 'Save as Patch...' ).
+        buttonValues := #(nil browse saveAsSignedPatchFile saveAsPatchFile ).
     ].
 
     answer := OptionBox
-	request:('PatchSet contains %1 individual changes.\\Proceed how?' bindWith:fullPatchSet size) withCRs
-	label:'Patch-Set Generated'
-	buttonLabels:(resources array:buttonLabels)
-	values:buttonValues
-	default:#saveAsPatchFile.
+        request:('PatchSet contains %1 individual changes.\\Proceed how?' bindWith:fullPatchSet size) withCRs
+        label:'Patch-Set Generated'
+        buttonLabels:(resources array:buttonLabels)
+        values:buttonValues
+        default:#saveAsPatchFile.
 
     (answer isNil) ifTrue:[ ^ self ].
 
     answer == #browse ifTrue:[
-	(UserPreferences current changeSetBrowserClass) openOn:fullPatchSet.
-	^ self.
+        (UserPreferences current changeSetBrowserClass) openOn:fullPatchSet.
+        ^ self.
     ].
 
     fileName := Dialog
-		    requestFileNameForSave:'Name of PatchFile'
-		    default:('%1_to_%2.patch' bindWith:baseVersionTag with:patchVersionTag).
+                    requestFileNameForSave:'Name of PatchFile'
+                    default:('%1_to_%2.patch' bindWith:baseVersionTag with:patchVersionTag).
     answer == #saveAsPatchFile ifTrue:[
-	fullPatchSet saveToFile:fileName.
-	^ self.
+        fullPatchSet saveToFile:fileName.
+        ^ self.
     ].
     answer == #saveAsSignedPatchFile ifTrue:[
-	fullPatchSet saveSignedToFile:fileName.
-	^ self.
+        fullPatchSet saveSignedToFile:fileName.
+        ^ self.
     ].
 
     "Created: / 08-02-2011 / 09:44:36 / cg"
@@ -38869,12 +40045,12 @@
     "update all definitions (contents + version stuff)"
 
     self
-	generateUndoableChange:'Generate Project Definitions'
-	overClasses:classes
-	via:[:generator :eachClass |
-	    eachClass theNonMetaclass
-		updateMethodsCodeUsingCompiler:generator
-		ignoreOldDefinition:false
+        generateUndoableChange:'Generate Project Definitions'
+        overClasses:classes
+        via:[:generator :eachClass |
+            eachClass theNonMetaclass
+                updateMethodsCodeUsingCompiler:generator
+                ignoreOldDefinition:false
 
 "/            Class packageQuerySignal
 "/                answer:eachClass package
@@ -38889,7 +40065,7 @@
 "/                            ]
 "/                        ignoreOldDefinition:false
 "/                ].
-	].
+        ].
 
     "Created: / 10-08-2006 / 16:33:07 / cg"
     "Modified: / 14-09-2006 / 10:53:13 / cg"
@@ -38901,19 +40077,19 @@
     |tempFile stream|
 
     [
-	tempFile := Filename newTemporary.
-	[
-	    stream := tempFile writeStream.
-
-	    classes do:[:cls |
-		cls theNonMetaclass fileOutOn:stream.
-	    ].
-	] ensure:[
-	    stream close.
-	].
-	self sendFileViaEmail:tempFile subject:subject.
+        tempFile := Filename newTemporary.
+        [
+            stream := tempFile writeStream.
+
+            classes do:[:cls |
+                cls theNonMetaclass fileOutOn:stream.
+            ].
+        ] ensure:[
+            stream close.
+        ].
+        self sendFileViaEmail:tempFile subject:subject.
     ] ensure:[
-	tempFile delete
+        tempFile delete
     ].
 
     "Created: / 20-09-2007 / 15:01:42 / cg"
@@ -38923,204 +40099,204 @@
     |bindings listOfObsoleteContainers listOfObsoleteContainerAssocs menuPerformer|
 
     needExtensionsContainer ~~ hasExtensionContainer ifTrue:[
-	self halt
+        self halt
     ].
     listOfObsoleteContainers := OrderedCollection new.
     listOfObsoleteContainerAssocs := OrderedCollection new.
     obsoleteContainers do:[:eachAssoc |
-	eachAssoc value do:[:eachObsolete |
-	    listOfObsoleteContainerAssocs add:eachAssoc key -> eachObsolete.
-	    listOfObsoleteContainers add:eachObsolete , ' (in ' , eachAssoc key , ')'
-	]
+        eachAssoc value do:[:eachObsolete |
+            listOfObsoleteContainerAssocs add:eachAssoc key -> eachObsolete.
+            listOfObsoleteContainers add:eachObsolete , ' (in ' , eachAssoc key , ')'
+        ]
     ].
     bindings := IdentityDictionary new.
     bindings at:#listOfObsoleteContainers put:listOfObsoleteContainers.
     bindings at:#listOfClassesWithRepositoryMismatches
-	put:classesWithRepositoryMismatches.
+        put:classesWithRepositoryMismatches.
     bindings at:#listOfClassesWithMissingContainer
-	put:classesWithMissingContainer.
+        put:classesWithMissingContainer.
     bindings at:#listOfClassesWhichHaveBeenModified
-	put:classesWhichHaveBeenModified.
+        put:classesWhichHaveBeenModified.
     bindings at:#listOfClassesWithNewerVersionInRepository
-	put:classesWithNewerVersionInRepository.
+        put:classesWithNewerVersionInRepository.
     bindings at:#obsoleteContainersBoxVisible
-	put:listOfObsoleteContainers size > 0.
+        put:listOfObsoleteContainers size > 0.
     bindings at:#classesWithInvalidInfoBoxVisible
-	put:classesWithRepositoryMismatches size > 0.
+        put:classesWithRepositoryMismatches size > 0.
     bindings at:#classesWithoutContainerBoxVisible
-	put:classesWithMissingContainer size > 0.
+        put:classesWithMissingContainer size > 0.
     bindings at:#classesWhichHaveBeenModifiedBoxVisible
-	put:classesWhichHaveBeenModified size > 0.
+        put:classesWhichHaveBeenModified size > 0.
     bindings at:#classesWithNewerVersionInRepositoryBoxVisible
-	put:classesWithNewerVersionInRepository size > 0.
+        put:classesWithNewerVersionInRepository size > 0.
     bindings at:#selectedClassesWithMissingContainer put:ValueHolder new.
     bindings at:#selectedClassesWithRepositoryMismatches put:ValueHolder new.
     bindings at:#selectedObsoleteContainers put:ValueHolder new.
     bindings at:#selectedClassesWhichHaveBeenModified put:ValueHolder new.
     bindings at:#selectedClassesWithNewerVersionInRepository
-	put:ValueHolder new.
+        put:ValueHolder new.
     menuPerformer := Plug new.
     menuPerformer respondTo:#classMenuFileOutAs
-	with:[
-	    |classes|
-
-	    classes := (bindings at:#selectedClassesWithMissingContainer) value
-			collect:[:idx | classesWithMissingContainer at:idx].
-	    classes do:[:cls |
-		self
-		    fileOutClass:cls
-		    askForFile:true
-		    withCancelAll:false
-		    format:nil
-		    sourceMode:nil
-	    ]
-	].
+        with:[
+            |classes|
+
+            classes := (bindings at:#selectedClassesWithMissingContainer) value
+                        collect:[:idx | classesWithMissingContainer at:idx].
+            classes do:[:cls |
+                self
+                    fileOutClass:cls
+                    askForFile:true
+                    withCancelAll:false
+                    format:nil
+                    sourceMode:nil
+            ]
+        ].
     menuPerformer respondTo:#classMenuCheckIn
-	with:[
-	    |classes|
-
-	    classes := (bindings at:#selectedClassesWithMissingContainer) value
-			collect:[:idx | classesWithMissingContainer at:idx].
-	    SourceCodeManagerUtilities default
-		checkinClasses:classes
-		withInfo:nil
-		withCheck:true
-	].
+        with:[
+            |classes|
+
+            classes := (bindings at:#selectedClassesWithMissingContainer) value
+                        collect:[:idx | classesWithMissingContainer at:idx].
+            SourceCodeManagerUtilities default
+                checkinClasses:classes
+                withInfo:nil
+                withCheck:true
+        ].
     menuPerformer respondTo:#classMenuSpawnClass
-	with:[
-	    |classes|
-
-	    classes := (bindings at:#selectedClassesWithMissingContainer) value
-			collect:[:idx | classesWithMissingContainer at:idx].
-	    self spawnClassBrowserFor:classes in:#newBrowser
-	].
+        with:[
+            |classes|
+
+            classes := (bindings at:#selectedClassesWithMissingContainer) value
+                        collect:[:idx | classesWithMissingContainer at:idx].
+            self spawnClassBrowserFor:classes in:#newBrowser
+        ].
     menuPerformer respondTo:#classMenuRemove
-	with:[
-	    |classes classesToRemove|
-
-	    classes := (bindings at:#selectedClassesWithMissingContainer) value
-			collect:[:idx | classesWithMissingContainer at:idx].
-	    classes do:[:cls |
-		classesToRemove := OrderedCollection new.
-		self
-		    addClassesToRemoveForClass:cls
-		    to:classesToRemove
-		    removingSubclasses:true
-		    withCancel:nil.
-		self removeClasses:classesToRemove pullUpSubclasses:false
-	    ]
-	].
+        with:[
+            |classes classesToRemove|
+
+            classes := (bindings at:#selectedClassesWithMissingContainer) value
+                        collect:[:idx | classesWithMissingContainer at:idx].
+            classes do:[:cls |
+                classesToRemove := OrderedCollection new.
+                self
+                    addClassesToRemoveForClass:cls
+                    to:classesToRemove
+                    removingSubclasses:true
+                    withCancel:nil.
+                self removeClasses:classesToRemove pullUpSubclasses:false
+            ]
+        ].
     menuPerformer respondTo:#classMenu2SpawnClass
-	with:[
-	    |classes|
-
-	    classes := (bindings at:#selectedClassesWithNewerVersionInRepository)
-			value collect:[:idx | classesWithNewerVersionInRepository at:idx].
-	    self spawnClassBrowserFor:classes in:#newBrowser
-	].
+        with:[
+            |classes|
+
+            classes := (bindings at:#selectedClassesWithNewerVersionInRepository)
+                        value collect:[:idx | classesWithNewerVersionInRepository at:idx].
+            self spawnClassBrowserFor:classes in:#newBrowser
+        ].
     menuPerformer respondTo:#classMenu2CheckOutNewest
-	with:[
-	    |classes|
-
-	    classes := (bindings at:#selectedClassesWithNewerVersionInRepository)
-			value collect:[:idx | classesWithNewerVersionInRepository at:idx].
-	    self checkOutClasses:classes askForRevision:false
-	].
+        with:[
+            |classes|
+
+            classes := (bindings at:#selectedClassesWithNewerVersionInRepository)
+                        value collect:[:idx | classesWithNewerVersionInRepository at:idx].
+            self checkOutClasses:classes askForRevision:false
+        ].
     menuPerformer respondTo:#classMenu2CompareAgainstNewestInRepository
-	with:[
-	    |classes|
-
-	    classes := (bindings at:#selectedClassesWithNewerVersionInRepository)
-			value collect:[:idx | classesWithNewerVersionInRepository at:idx].
-	    classes do:[:cls |
-		self compareAgainstNewestInRepository:cls
-	    ]
-	].
+        with:[
+            |classes|
+
+            classes := (bindings at:#selectedClassesWithNewerVersionInRepository)
+                        value collect:[:idx | classesWithNewerVersionInRepository at:idx].
+            classes do:[:cls |
+                self compareAgainstNewestInRepository:cls
+            ]
+        ].
     menuPerformer respondTo:#classMenu3FileOutAs
-	with:[
-	    |classes|
-
-	    classes := (bindings at:#selectedClassesWhichHaveBeenModified) value
-			collect:[:idx | classesWhichHaveBeenModified at:idx].
-	    classes do:[:cls |
-		self
-		    fileOutClass:cls
-		    askForFile:true
-		    withCancelAll:false
-		    format:nil
-		    sourceMode:nil
-	    ]
-	].
+        with:[
+            |classes|
+
+            classes := (bindings at:#selectedClassesWhichHaveBeenModified) value
+                        collect:[:idx | classesWhichHaveBeenModified at:idx].
+            classes do:[:cls |
+                self
+                    fileOutClass:cls
+                    askForFile:true
+                    withCancelAll:false
+                    format:nil
+                    sourceMode:nil
+            ]
+        ].
     menuPerformer respondTo:#classMenu3CheckIn
-	with:[
-	    |classes|
-
-	    classes := (bindings at:#selectedClassesWhichHaveBeenModified) value
-			collect:[:idx | classesWhichHaveBeenModified at:idx].
-
-	    SourceCodeManagerUtilities default
-		checkinClasses:classes
-		withInfo:nil
-		withCheck:true
-	].
+        with:[
+            |classes|
+
+            classes := (bindings at:#selectedClassesWhichHaveBeenModified) value
+                        collect:[:idx | classesWhichHaveBeenModified at:idx].
+
+            SourceCodeManagerUtilities default
+                checkinClasses:classes
+                withInfo:nil
+                withCheck:true
+        ].
     menuPerformer respondTo:#classMenu3SpawnClass
-	with:[
-	    |classes|
-
-	    classes := (bindings at:#selectedClassesWhichHaveBeenModified) value
-			collect:[:idx | classesWhichHaveBeenModified at:idx].
-	    self spawnClassBrowserFor:classes in:#newBrowser
-	].
+        with:[
+            |classes|
+
+            classes := (bindings at:#selectedClassesWhichHaveBeenModified) value
+                        collect:[:idx | classesWhichHaveBeenModified at:idx].
+            self spawnClassBrowserFor:classes in:#newBrowser
+        ].
     menuPerformer respondTo:#classMenu3CompareAgainstNewestInRepository
-	with:[
-	    |classes|
-
-	    classes := (bindings at:#selectedClassesWhichHaveBeenModified) value
-			collect:[:idx | classesWhichHaveBeenModified at:idx].
-	    classes do:[:cls |
-		self compareAgainstNewestInRepository:cls
-	    ]
-	].
+        with:[
+            |classes|
+
+            classes := (bindings at:#selectedClassesWhichHaveBeenModified) value
+                        collect:[:idx | classesWhichHaveBeenModified at:idx].
+            classes do:[:cls |
+                self compareAgainstNewestInRepository:cls
+            ]
+        ].
     menuPerformer respondTo:#classMenu4CheckOut
-	with:[
-	    |containers|
-
-	    containers := (bindings at:#selectedObsoleteContainers) value.
-	    containers do:[:container |
-		|def packageID moduleDir packageDir fileName|
-
-		def := listOfObsoleteContainerAssocs at:container.
-		packageID := def key.
-		moduleDir := packageID upTo:$:.
-		packageDir := packageID copyFrom:moduleDir size + 2.
-		fileName := def value.
-
-		"/ check out that module ...
-		SourceCodeManager
-		    checkoutModule:moduleDir
-		    directory:packageDir
-		    andDo:[:tempDir |
-			"/                                       (Dialog confirm:'FileIn ' , fileName , ' ?') ifTrue:[
-
-
-			Smalltalk fileIn:(tempDir asFilename construct:fileName)
-			"/                                       ]
-		    ]
-	    ]
-	].
+        with:[
+            |containers|
+
+            containers := (bindings at:#selectedObsoleteContainers) value.
+            containers do:[:container |
+                |def packageID moduleDir packageDir fileName|
+
+                def := listOfObsoleteContainerAssocs at:container.
+                packageID := def key.
+                moduleDir := packageID upTo:$:.
+                packageDir := packageID copyFrom:moduleDir size + 2.
+                fileName := def value.
+
+                "/ check out that module ...
+                SourceCodeManager
+                    checkoutModule:moduleDir
+                    directory:packageDir
+                    andDo:[:tempDir |
+                        "/                                       (Dialog confirm:'FileIn ' , fileName , ' ?') ifTrue:[
+
+
+                        Smalltalk fileIn:(tempDir asFilename construct:fileName)
+                        "/                                       ]
+                    ]
+            ]
+        ].
     bindings at:#classesWithMissingContainerPopupMenu
-	put:self class classesWithMissingContainerPopupMenu.
+        put:self class classesWithMissingContainerPopupMenu.
     bindings at:#classesWithNewerVersionInRepositoryPopupMenu
-	put:self class classesWithNewerVersionInRepositoryPopupMenu.
+        put:self class classesWithNewerVersionInRepositoryPopupMenu.
     bindings at:#classesWhichHaveBeenModifiedPopupMenu
-	put:self class classesWhichHaveBeenModifiedPopupMenu.
+        put:self class classesWhichHaveBeenModifiedPopupMenu.
     bindings at:#obsoleteContainersPopupMenu
-	put:self class obsoleteContainersPopupMenu.
+        put:self class obsoleteContainersPopupMenu.
     bindings at:#dialogMenuPerformer put:menuPerformer.
 
     SimpleDialog new
-	openSpec:(self class repositoryConsistencyDialogSpec)
-	withBindings:bindings
+        openSpec:(self class repositoryConsistencyDialogSpec)
+        withBindings:bindings
 
     "Modified: / 23-08-2006 / 14:08:28 / cg"
     "Modified (format): / 01-07-2011 / 17:16:31 / cg"
@@ -39131,24 +40307,24 @@
 
     projectClasses := OrderedCollection new.
     self selectedProjectsDo:[:packageID |
-	|defClass answer|
-
-	defClass := ProjectDefinition definitionClassForPackage:packageID createIfAbsent:false.
-	defClass isNil ifTrue:[
-	    answer := Dialog
-			confirm:(resources
-				stringWithCRs:'Missing ProjectDefinition for %1\\Create ?'
-				with:packageID allBold)
-			withCancel:(self selectedProjects value size > 1)
-			default: true.
-	    answer isNil ifTrue:[^ self ].
-	    answer == true ifTrue:[
-		defClass := self projectDefinitionDialogFor:packageID.
-	    ].
-	].
-	defClass notNil ifTrue:[
-	    projectClasses add:defClass.
-	]
+        |defClass answer|
+
+        defClass := ProjectDefinition definitionClassForPackage:packageID createIfAbsent:false.
+        defClass isNil ifTrue:[
+            answer := Dialog
+                        confirm:(resources
+                                stringWithCRs:'Missing ProjectDefinition for %1\\Create ?'
+                                with:packageID allBold)
+                        withCancel:(self selectedProjects value size > 1)
+                        default: true.
+            answer isNil ifTrue:[^ self ].
+            answer == true ifTrue:[
+                defClass := self projectDefinitionDialogFor:packageID.
+            ].
+        ].
+        defClass notNil ifTrue:[
+            projectClasses add:defClass.
+        ]
     ].
 
     ^ projectClasses
@@ -39162,47 +40338,47 @@
      projectDefinitionClass y defaultProjectType setupDefaultType|
 
     setupDefaultType :=
-	[:package |
-	    |classesInPackage|
-
-	    classesInPackage := environment allClassesInPackage:package.
-	    classesInPackage isEmpty ifTrue:[
-		defaultProjectType := LastNewProjectType ? ProjectDefinition guiApplicationType
-	    ] ifFalse:[
-		(classesInPackage contains:[:cls | cls isBrowserStartable]) ifTrue:[
-		    (classesInPackage contains:[:cls | cls isVisualStartable])
-			ifTrue:[ defaultProjectType := ProjectDefinition guiApplicationType]
-			ifFalse:[ defaultProjectType := ProjectDefinition nonGuiApplicationType]
-		] ifFalse:[
-		    defaultProjectType := ProjectDefinition libraryType
-		].
-	    ]
-	].
+        [:package |
+            |classesInPackage|
+
+            classesInPackage := environment allClassesInPackage:package.
+            classesInPackage isEmpty ifTrue:[
+                defaultProjectType := LastNewProjectType ? ProjectDefinition guiApplicationType
+            ] ifFalse:[
+                (classesInPackage contains:[:cls | cls isBrowserStartable]) ifTrue:[
+                    (classesInPackage contains:[:cls | cls isVisualStartable])
+                        ifTrue:[ defaultProjectType := ProjectDefinition guiApplicationType]
+                        ifFalse:[ defaultProjectType := ProjectDefinition nonGuiApplicationType]
+                ] ifFalse:[
+                    defaultProjectType := ProjectDefinition libraryType
+                ].
+            ]
+        ].
 
     aProjectIDOrNil notNil ifTrue:[
-	initial := aProjectIDOrNil.
-	boxLabel := 'Create ProjectDefinition Class'.
-
-	setupDefaultType value:aProjectIDOrNil.
-    ] ifFalse:[
-	initial := 'module:directory'.
-	currentProject := self theSingleSelectedProject.
-	(currentProject notNil and:[ currentProject ~= PackageId noProjectID ]) ifTrue:[
-	    initial := currentProject.
-	    (initial includes:$:) ifTrue:[
-		(ProjectDefinition definitionClassForPackage:initial) notNil ifTrue:[
-		    initial := initial , '/','newProject' allBold.
-		].
-	    ] ifFalse:[
-		initial := initial , ':module/','newProject' allBold.
-	    ].
-	] ifFalse:[
-	    initial := OperatingSystem getLoginName , ':module/','newProject' allBold.
-	].
-
-	defaultProjectType := ProjectDefinition defaultProjectType.
-	setupDefaultType value:initial.
-	boxLabel := 'Create New Project'.
+        initial := aProjectIDOrNil.
+        boxLabel := 'Create ProjectDefinition Class'.
+
+        setupDefaultType value:aProjectIDOrNil.
+    ] ifFalse:[
+        initial := 'module:directory'.
+        currentProject := self theSingleSelectedProject.
+        (currentProject notNil and:[ currentProject ~= PackageId noProjectID ]) ifTrue:[
+            initial := currentProject.
+            (initial includes:$:) ifTrue:[
+                (ProjectDefinition definitionClassForPackage:initial) notNil ifTrue:[
+                    initial := initial , '/','newProject' allBold.
+                ].
+            ] ifFalse:[
+                initial := initial , ':module/','newProject' allBold.
+            ].
+        ] ifFalse:[
+            initial := OperatingSystem getLoginName , ':module/','newProject' allBold.
+        ].
+
+        defaultProjectType := ProjectDefinition defaultProjectType.
+        setupDefaultType value:initial.
+        boxLabel := 'Create New Project'.
     ].
 
     packageIDHolder := ValueHolder with:initial.
@@ -39213,32 +40389,30 @@
 
     y := box yPosition.
     box addVerticalSpace.
-    label := box addTextLabel:(resources string:'Package-ID (module:directory):').
-    label adjust:#right.
+    label := box addTextLabel:(resources string:'Package-ID (module:directory):') adjust:#right.
     label width:0.3; left:0.0; leftInset:3.
 
     box yPosition:y.
     nameField := box addInputFieldOn:packageIDHolder tabable:true.
     nameField width:0.7; left:0.3; rightInset:3.
     aProjectIDOrNil notNil ifTrue:[
-	nameField readOnly:true.
-    ] ifFalse:[
-	nameField acceptOnLeave:true.
-	nameField immediateAccept:true.
-	nameField entryCompletionBlock:(DoWhatIMeanSupport packageNameEntryCompletionBlock).
+        nameField readOnly:true.
+    ] ifFalse:[
+        nameField acceptOnLeave:true.
+        nameField immediateAccept:true.
+        nameField entryCompletionBlock:(DoWhatIMeanSupport packageNameEntryCompletionBlock).
     ].
     (initial includesString:'module/') ifTrue:[
-	nameField selectFrom:(initial findString:'module').
-    ] ifFalse:[
-	(initial includesString:'newProject') ifTrue:[
-	    nameField selectFrom:(initial findString:'newProject').
-	].
+        nameField selectFrom:(initial findString:'module').
+    ] ifFalse:[
+        (initial includesString:'newProject') ifTrue:[
+            nameField selectFrom:(initial findString:'newProject').
+        ].
     ].
 
     y := box yPosition.
     box addVerticalSpace.
-    label := box addTextLabel:(resources string:'Type:').
-    label adjust:#right.
+    label := box addTextLabel:(resources string:'Type:') adjust:#right.
     label width:0.3; left:0.0; leftInset:3.
     box yPosition:y.
 
@@ -39253,29 +40427,29 @@
     box open.
 
     box accepted ifFalse:[
-	^ nil
+        ^ nil
     ].
 
     LastNewProjectType := projectTypeHolder value.
 
     self withWaitCursorDo:[
-	aProjectIDOrNil notNil ifTrue:[
-	    newProjectID := aProjectIDOrNil.
-	] ifFalse:[
-	    newProjectID := packageIDHolder value.
-	    newProjectID notEmptyOrNil ifTrue:[
-		newProjectID := newProjectID string.
-		"/ self immediateUpdate value:true.
-		self projectListApp addAdditionalProject:newProjectID.
-		"/ self immediateUpdate value:false.
-		self selectProject:newProjectID.
-		self selectedClasses value:#().
-	    ].
-	].
-	projectDefinitionClass := ProjectDefinition
-				    definitionClassForPackage:newProjectID
-				    projectType: (projectTypeHolder value)
-				    createIfAbsent:true.
+        aProjectIDOrNil notNil ifTrue:[
+            newProjectID := aProjectIDOrNil.
+        ] ifFalse:[
+            newProjectID := packageIDHolder value.
+            newProjectID notEmptyOrNil ifTrue:[
+                newProjectID := newProjectID string.
+                "/ self immediateUpdate value:true.
+                self projectListApp addAdditionalProject:newProjectID.
+                "/ self immediateUpdate value:false.
+                self selectProject:newProjectID.
+                self selectedClasses value:#().
+            ].
+        ].
+        projectDefinitionClass := ProjectDefinition
+                                    definitionClassForPackage:newProjectID
+                                    projectType: (projectTypeHolder value)
+                                    createIfAbsent:true.
     ].
     ^ projectDefinitionClass
 
@@ -39290,6 +40464,13 @@
     self information:'Sorry - this functionality is not yet implemented'
 !
 
+projectMenuBrowsePackageDirectory
+    "open a filebrowser in the package directory"
+
+    UserPreferences fileBrowserClass
+        openIn:(self theSingleSelectedProject asPackageId packageDirectory)
+!
+
 projectMenuBuild
     self projectMenuBuildExeOnly:false
 
@@ -39310,31 +40491,31 @@
 
     projectDefinition := projectDefinitionClasses firstIfEmpty:nil.
     projectDefinition isNil ifTrue:[
-	^ self
+        ^ self
     ].
 
     Tools::ProjectBuilderAssistantApplication new
-	projectType:projectDefinition projectType.
+        projectType:projectDefinition projectType.
 
     Transcript isView ifTrue:[
-	Transcript topView raise.
+        Transcript topView raise.
     ].
 
     projectBuilder := Tools::ProjectBuilder new.
     projectBuilder
-	makeExeOnly:exeOnly;
-	package:projectToBuild;
-	"/ build
-	buildWithColorizedOutputTo:Transcript.
+        makeExeOnly:exeOnly;
+        package:projectToBuild;
+        "/ build
+        buildWithColorizedOutputTo:Transcript.
 
     buildDir := projectToBuild asPackageId pathRelativeToTopDirectory:projectBuilder buildDirectory.
 
     OperatingSystem isMSWINDOWSlike ifTrue:[
-	self activityNotification:'Showing result in explorer.'.
-	buildDir asFilename openExplorer
-    ] ifFalse:[
-	self activityNotification:'Showing result in filebrowser.'.
-	FileBrowserV2 openOnDirectory:buildDir
+        self activityNotification:'Showing result in explorer.'.
+        buildDir asFilename openExplorer
+    ] ifFalse:[
+        self activityNotification:'Showing result in filebrowser.'.
+        FileBrowserV2 openOnDirectory:buildDir
     ].
 
     "Created: / 21-01-2012 / 13:53:34 / cg"
@@ -39344,14 +40525,14 @@
     |package dfnClass|
 
     (package := self theSingleSelectedProject) isNil ifTrue:[
-	Dialog warn:'Please select exactly one package.'.
-	^ self.
+        Dialog warn:'Please select exactly one package.'.
+        ^ self.
     ].
     dfnClass := ProjectDefinition definitionClassForPackage:package.
     dfnClass notNil ifTrue:[
-	Tools::ProjectBuilderAssistantApplication openOn:dfnClass.
-    ] ifFalse:[
-	Tools::ProjectBuilderAssistantApplication openOnPackage:package.
+        Tools::ProjectBuilderAssistantApplication openOn:dfnClass.
+    ] ifFalse:[
+        Tools::ProjectBuilderAssistantApplication openOnPackage:package.
     ].
 
     "Created: / 20-07-2012 / 12:32:34 / cg"
@@ -39362,12 +40543,12 @@
     <resource: #obsolete> "use ...Using:manager variant"
 
     self selectedProjectsDo:[:packageToCheckIn |
-	self
-	    projectMenuCheckInProject:packageToCheckIn
-	    classes:true
-	    extensions:true
-	    buildSupport:true
-	    usingManager: nil.
+        self
+            projectMenuCheckInProject:packageToCheckIn
+            classes:true
+            extensions:true
+            buildSupport:true
+            usingManager: nil.
     ]
 
     "Modified: / 09-08-2006 / 18:57:28 / fm"
@@ -39378,12 +40559,12 @@
 
 projectMenuCheckInAllUsingManager: manager
     self selectedProjectsDo:[:packageToCheckIn |
-	self
-	    projectMenuCheckInProject:packageToCheckIn
-	    classes:true
-	    extensions:true
-	    buildSupport:true
-	    usingManager: manager
+        self
+            projectMenuCheckInProject:packageToCheckIn
+            classes:true
+            extensions:true
+            buildSupport:true
+            usingManager: manager
     ]
 
     "Modified: / 09-08-2006 / 18:57:28 / fm"
@@ -39395,7 +40576,7 @@
 
     |mgr|
 
-    mgr := Smalltalk at:sourceCodeManagerClassName asSymbol.
+    mgr := Smalltalk classNamed:sourceCodeManagerClassName.
     self assert:(mgr notNil).
     ^self projectMenuCheckInAllUsingManager: mgr
 
@@ -39408,7 +40589,7 @@
     <resource: #obsolete> "use ...Using:manager variant"
 
     self selectedProjectsDo:[:packageToCheckIn |
-	self projectMenuCheckInBuildSupportFilesForProject:packageToCheckIn
+        self projectMenuCheckInBuildSupportFilesForProject:packageToCheckIn
     ]
 
     "Created: / 09-08-2006 / 19:04:52 / fm"
@@ -39423,15 +40604,15 @@
 
     defClass := ProjectDefinition definitionClassForPackage:packageID createIfAbsent:false.
     defClass isNil ifTrue:[
-	defClass := self projectDefinitionDialogFor:packageID.
-	defClass isNil ifTrue:[ ^ self ].
-	defClass compileDescriptionMethods.
+        defClass := self projectDefinitionDialogFor:packageID.
+        defClass isNil ifTrue:[ ^ self ].
+        defClass compileDescriptionMethods.
     ].
 
     mgr := SourceCodeManagerUtilities default sourceCodeManagerFor:defClass.
     mgr isNil ifTrue:[
-	self warn:'No sourceCode manager - cannot checkin.'.
-	^ self.
+        self warn:'No sourceCode manager - cannot checkin.'.
+        ^ self.
     ].
     self projectMenuCheckInBuildSupportFilesForProject:packageID definition:defClass usingManager:mgr
 
@@ -39443,7 +40624,7 @@
 
 projectMenuCheckInBuildSupportFilesForProject:packageID definition:defClass usingManager:mgr
     (mgr ? (AbstractSourceCodeManager managerForPackage:packageID)) utilities
-	checkinPackage:packageID classes:false extensions:false buildSupport:true askForMethodsInOtherPackages:false.
+        checkinPackage:packageID classes:false extensions:false buildSupport:true askForMethodsInOtherPackages:false.
 !
 
 projectMenuCheckInBuildSupportFilesForProject:packageID usingManager: manager
@@ -39451,9 +40632,9 @@
 
     defClass := ProjectDefinition definitionClassForPackage:packageID createIfAbsent:false.
     defClass isNil ifTrue:[
-	defClass := self projectDefinitionDialogFor:packageID.
-	defClass isNil ifTrue:[ ^ self ].
-	defClass compileDescriptionMethods.
+        defClass := self projectDefinitionDialogFor:packageID.
+        defClass isNil ifTrue:[ ^ self ].
+        defClass compileDescriptionMethods.
     ].
 
     self projectMenuCheckInBuildSupportFilesForProject:packageID definition:defClass usingManager:manager
@@ -39468,7 +40649,7 @@
 
 projectMenuCheckInBuildSupportFilesUsingManager: manager
     self selectedProjectsDo:[:packageToCheckIn |
-	self projectMenuCheckInBuildSupportFilesForProject:packageToCheckIn usingManager: manager
+        self projectMenuCheckInBuildSupportFilesForProject:packageToCheckIn usingManager: manager
     ]
 
     "Created: / 09-08-2006 / 19:04:52 / fm"
@@ -39480,7 +40661,7 @@
 projectMenuCheckInBuildSupportFilesUsingManagerNamed: sourceCodeManagerClassName
     |mgr|
 
-    mgr := Smalltalk at:sourceCodeManagerClassName asSymbol.
+    mgr := Smalltalk classNamed:sourceCodeManagerClassName.
     self assert:(mgr notNil).
     ^self projectMenuCheckInBuildSupportFilesUsingManager: mgr
 
@@ -39493,11 +40674,11 @@
     <resource: #obsolete> "use ...Using:manager variant"
 
     self selectedProjectsDo:[:packageToCheckIn |
-	self
-	    projectMenuCheckInProject:packageToCheckIn
-	    classes:true
-	    extensions:false
-	    buildSupport:false
+        self
+            projectMenuCheckInProject:packageToCheckIn
+            classes:true
+            extensions:false
+            buildSupport:false
     ]
 
     "Modified: / 15-10-2011 / 20:22:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -39505,12 +40686,12 @@
 
 projectMenuCheckInClassesUsingManager: manager
     self selectedProjectsDo:[:packageToCheckIn |
-	self
-	    projectMenuCheckInProject:packageToCheckIn
-	    classes:true
-	    extensions:false
-	    buildSupport:false
-	    usingManager: manager
+        self
+            projectMenuCheckInProject:packageToCheckIn
+            classes:true
+            extensions:false
+            buildSupport:false
+            usingManager: manager
     ]
 
     "Created: / 15-10-2011 / 20:21:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -39520,7 +40701,7 @@
 projectMenuCheckInClassesUsingManagerNamed: sourceCodeManagerClassName
     |mgr|
 
-    mgr := Smalltalk at:sourceCodeManagerClassName asSymbol.
+    mgr := Smalltalk classNamed:sourceCodeManagerClassName.
     self assert:(mgr notNil).
     self projectMenuCheckInClassesUsingManager: mgr
 
@@ -39533,11 +40714,11 @@
     <resource: #obsolete> "use ...Using:manager variant"
 
     self selectedProjectsDo:[:packageToCheckIn |
-	self
-	    projectMenuCheckInProject:packageToCheckIn
-	    classes:false
-	    extensions:true
-	    buildSupport:false
+        self
+            projectMenuCheckInProject:packageToCheckIn
+            classes:false
+            extensions:true
+            buildSupport:false
     ]
 
     "Modified: / 15-10-2011 / 20:22:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -39546,12 +40727,12 @@
 projectMenuCheckInExtensionsUsingManager: manager
 
     self selectedProjectsDo:[:packageToCheckIn |
-	self
-	    projectMenuCheckInProject:packageToCheckIn
-	    classes:false
-	    extensions:true
-	    buildSupport:false
-	    usingManager: manager
+        self
+            projectMenuCheckInProject:packageToCheckIn
+            classes:false
+            extensions:true
+            buildSupport:false
+            usingManager: manager
     ]
 
     "Created: / 15-10-2011 / 20:06:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -39561,7 +40742,7 @@
 projectMenuCheckInExtensionsUsingManagerNamed: sourceCodeManagerClassName
     |mgr|
 
-    mgr := Smalltalk at:sourceCodeManagerClassName asSymbol.
+    mgr := Smalltalk classNamed:sourceCodeManagerClassName.
     self assert:(mgr notNil).
     self projectMenuCheckInExtensionsUsingManager: mgr
 
@@ -39574,11 +40755,11 @@
     <resource: #obsolete>
 
     ^ self
-	projectMenuCheckInProject:packageToCheckIn
-	classes:doClasses
-	extensions:doExtensions
-	buildSupport:doBuild
-	askForMethodsInOtherPackages:true
+        projectMenuCheckInProject:packageToCheckIn
+        classes:doClasses
+        extensions:doExtensions
+        buildSupport:doBuild
+        askForMethodsInOtherPackages:true
 
     "Modified: / 21-08-2006 / 19:43:22 / cg"
     "Modified: / 13-10-2011 / 11:07:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -39600,14 +40781,14 @@
 
     "/ classes ...
     classes do:[:aClass | |owner classPackage|
-	(owner := aClass owningClass) notNil ifTrue:[
-	    classPackage := aClass topOwningClass package
-	] ifFalse:[
-	    classPackage := aClass package
-	].
-	(classPackage = packageToCheckIn) ifTrue:[
-	    classesToCheckIn add:aClass.
-	].
+        (owner := aClass owningClass) notNil ifTrue:[
+            classPackage := aClass topOwningClass package
+        ] ifFalse:[
+            classPackage := aClass package
+        ].
+        (classPackage = packageToCheckIn) ifTrue:[
+            classesToCheckIn add:aClass.
+        ].
     ].
 
     "/ cg: O(n^2) algorithm
@@ -39617,186 +40798,186 @@
 
     "/ individual methods ...
     classes do:[:aClass |
-	aClass isMeta ifFalse:[
-	    "/ ... whose class is not in the chechIn-set
-	    (classesToCheckIn includes:aClass) ifFalse:[
-		aClass instAndClassSelectorsAndMethodsDo:[:sel :mthd |
-		    "/ methods in this project ...
-		    (mthd package = packageToCheckIn) ifTrue:[
-			methodsToCheckIn add:mthd
-		    ]
-		]
-	    ].
-	].
+        aClass isMeta ifFalse:[
+            "/ ... whose class is not in the chechIn-set
+            (classesToCheckIn includes:aClass) ifFalse:[
+                aClass instAndClassSelectorsAndMethodsDo:[:sel :mthd |
+                    "/ methods in this project ...
+                    (mthd package = packageToCheckIn) ifTrue:[
+                        methodsToCheckIn add:mthd
+                    ]
+                ]
+            ].
+        ].
     ].
 
     doExtensions ifTrue:[
-	methodsToCheckIn notEmpty ifTrue:[
-	    doClasses ifTrue:[
-		msg := '%1 classes (%4 changed) '.
-	    ] ifFalse:[
-		msg := ''.
-	    ].
-	    doExtensions ifTrue:[
-		doClasses ifTrue:[
-		    msg := msg , 'and '.
-		].
-		msg := msg , '%2 extensions '.
-	    ].
-	    msg := msg , 'of project "%3"'.
-
-	    checkinInfo := SourceCodeManagerUtilities default
-			getCheckinInfoFor:(msg
-						    bindWith:classesToCheckIn size
-						    with:methodsToCheckIn size
-						    with:packageToCheckIn allBold
-						    with:classesInChangeSet size)
-			initialAnswer:nil
-			withQuickOption:(classesToCheckIn size > 0).
-	    checkinInfo isNil ifTrue:[
-		^ self.
-	    ].
-	    (SourceCodeManagerUtilities default
-		checkinExtensionMethods:methodsToCheckIn
-		forPackage:packageToCheckIn
-		withInfo:checkinInfo)
-	    ifFalse:[
-		self warn:'Could not check in extensions for project %1' with:packageToCheckIn.
-		^ self.
-	    ]
-	] ifFalse:[
-	    "/ there may have been extension-methods previously - if so, remove them
-	    (SourceCodeManager
-		checkForExistingContainer:'extensions.st' inPackage:packageToCheckIn)
-	    ifTrue:[
+        methodsToCheckIn notEmpty ifTrue:[
+            doClasses ifTrue:[
+                msg := '%1 classes (%4 changed) '.
+            ] ifFalse:[
+                msg := ''.
+            ].
+            doExtensions ifTrue:[
+                doClasses ifTrue:[
+                    msg := msg , 'and '.
+                ].
+                msg := msg , '%2 extensions '.
+            ].
+            msg := msg , 'of project "%3"'.
+
+            checkinInfo := SourceCodeManagerUtilities default
+                        getCheckinInfoFor:(msg
+                                                    bindWith:classesToCheckIn size
+                                                    with:methodsToCheckIn size
+                                                    with:packageToCheckIn allBold
+                                                    with:classesInChangeSet size)
+                        initialAnswer:nil
+                        withQuickOption:(classesToCheckIn size > 0).
+            checkinInfo isNil ifTrue:[
+                ^ self.
+            ].
+            (SourceCodeManagerUtilities default
+                checkinExtensionMethods:methodsToCheckIn
+                forPackage:packageToCheckIn
+                withInfo:checkinInfo)
+            ifFalse:[
+                self warn:'Could not check in extensions for project %1' with:packageToCheckIn.
+                ^ self.
+            ]
+        ] ifFalse:[
+            "/ there may have been extension-methods previously - if so, remove them
+            (SourceCodeManager
+                checkForExistingContainer:'extensions.st' inPackage:packageToCheckIn)
+            ifTrue:[
 "/ self halt.
-		(SourceCodeManagerUtilities default
-		    checkinExtensionMethods:#()
-		    forPackage:packageToCheckIn
-		    withInfo:'No extensions any more')
-		ifFalse:[
-		    self warn:'Could not check in extensions for project %1' with:packageToCheckIn.
-		    ^ self.
-		]
-	    ]
-	].
+                (SourceCodeManagerUtilities default
+                    checkinExtensionMethods:#()
+                    forPackage:packageToCheckIn
+                    withInfo:'No extensions any more')
+                ifFalse:[
+                    self warn:'Could not check in extensions for project %1' with:packageToCheckIn.
+                    ^ self.
+                ]
+            ]
+        ].
     ].
 
     checkinInfo isNil ifTrue:[
-	checkinInfo := SourceCodeManagerUtilities default
-		    getCheckinInfoFor:('%1 classes (%4 changed) and %2 extensions for project "%3"'
-							bindWith:classesToCheckIn size
-							with:methodsToCheckIn size
-							with:packageToCheckIn allBold
-							with:classesInChangeSet size)
-		    initialAnswer:nil
-		    withQuickOption:(classesToCheckIn size > 0).
-	checkinInfo isNil ifTrue:[
-	    ^ self.
-	].
+        checkinInfo := SourceCodeManagerUtilities default
+                    getCheckinInfoFor:('%1 classes (%4 changed) and %2 extensions for project "%3"'
+                                                        bindWith:classesToCheckIn size
+                                                        with:methodsToCheckIn size
+                                                        with:packageToCheckIn allBold
+                                                        with:classesInChangeSet size)
+                    initialAnswer:nil
+                    withQuickOption:(classesToCheckIn size > 0).
+        checkinInfo isNil ifTrue:[
+            ^ self.
+        ].
     ].
 
     checkinInfo quickCheckIn ifTrue:[
-	(checkinInfo isStable or:[checkinInfo tagIt]) ifTrue:[
-	    classesToTag := classesToCheckIn.
-	    originalCheckinInfo := checkinInfo.
-	    checkinInfo := checkinInfo copy.
-	    checkinInfo isStable:false.
-	    checkinInfo tag:nil.
-	].
-	classesToCheckIn := classesInChangeSet.
+        (checkinInfo isStable or:[checkinInfo tagIt]) ifTrue:[
+            classesToTag := classesToCheckIn.
+            originalCheckinInfo := checkinInfo.
+            checkinInfo := checkinInfo copy.
+            checkinInfo isStable:false.
+            checkinInfo tag:nil.
+        ].
+        classesToCheckIn := classesInChangeSet.
     ].
 
     "/ check if any of the classes contains methods for other packages ...
     classesToCheckIn do:[:eachClass |
-	eachClass instAndClassMethodsDo:[:eachMethod |
-	    |mPgk|
-
-	    mPgk := eachMethod package.
-	    (mPgk = packageToCheckIn) ifFalse:[
-		mPgk == PackageId noProjectID ifTrue:[
-		    looseMethods add:eachMethod
-		] ifFalse:[
-		    methodsInOtherPackages add:eachMethod
-		]
-	    ]
-	].
+        eachClass instAndClassMethodsDo:[:eachMethod |
+            |mPgk|
+
+            mPgk := eachMethod package.
+            (mPgk = packageToCheckIn) ifFalse:[
+                mPgk == PackageId noProjectID ifTrue:[
+                    looseMethods add:eachMethod
+                ] ifFalse:[
+                    methodsInOtherPackages add:eachMethod
+                ]
+            ]
+        ].
     ].
 
     askForMethodsInOtherPackages ifTrue:[
-	methodsInOtherPackages notEmpty ifTrue:[
-	    otherPackages := Set new.
-	    methodsInOtherPackages do:[:eachMethod | otherPackages add:eachMethod package].
-
-	    methodsInOtherPackages size == 1 ifTrue:[
-		msg := 'The ''%4'' method in ''%5'' is contained in the ''%2'' package.'.
-		msg := msg , '\\This method will remain in its package.'.
-	    ] ifFalse:[
-		otherPackages size == 1 ifTrue:[
-		    msg := 'The %1 methods from the %2 package will remain in its package.'
-		] ifFalse:[
-		    msg := 'The %1 methods from %3 other packages will remain in their packages.'
-		].
-		msg := msg , '\\Hint: if these are meant to belong to this package,'.
-		msg := msg , '\move them first, then repeat the checkin operation.'.
-	    ].
-	    msg := msg withCRs.
-	    msg := msg bindWith:methodsInOtherPackages size
-			   with:otherPackages first allBold
-			   with:otherPackages size
-			   with:methodsInOtherPackages first selector allBold
-			   with:methodsInOtherPackages first mclass name allBold.
-	    (Dialog confirm:msg noLabel:(resources string:'Cancel')) ifFalse:[^ self].
-	].
+        methodsInOtherPackages notEmpty ifTrue:[
+            otherPackages := Set new.
+            methodsInOtherPackages do:[:eachMethod | otherPackages add:eachMethod package].
+
+            methodsInOtherPackages size == 1 ifTrue:[
+                msg := 'The ''%4'' method in ''%5'' is contained in the ''%2'' package.'.
+                msg := msg , '\\This method will remain in its package.'.
+            ] ifFalse:[
+                otherPackages size == 1 ifTrue:[
+                    msg := 'The %1 methods from the %2 package will remain in its package.'
+                ] ifFalse:[
+                    msg := 'The %1 methods from %3 other packages will remain in their packages.'
+                ].
+                msg := msg , '\\Hint: if these are meant to belong to this package,'.
+                msg := msg , '\move them first, then repeat the checkin operation.'.
+            ].
+            msg := msg withCRs.
+            msg := msg bindWith:methodsInOtherPackages size
+                           with:otherPackages first allBold
+                           with:otherPackages size
+                           with:methodsInOtherPackages first selector allBold
+                           with:methodsInOtherPackages first mclass name allBold.
+            (Dialog confirm:msg noLabel:(resources string:'Cancel')) ifFalse:[^ self].
+        ].
     ].
 
     doClasses ifTrue:[
-	classesToCheckIn notEmpty ifTrue:[
-	    looseMethods notEmpty ifTrue:[
-		looseMethods size == 1 ifTrue:[
-		    msg := 'The ''%2'' method in ''%3'' is unassigned (loose).'.
-		    msg := msg , '\\If you proceed, this method will be moved to the ''%4'' package'.
-		    msg := msg , '\\Hint: if this is meant to be an extension of another package,'.
-		    msg := msg , '\cancel and move it to the appropriate package first.'.
-		] ifFalse:[
-		    msg := 'There are %1 unassigned (loose) methods in classes from this project.'.
-		    msg := msg , '\\If you proceed, those will be moved to the ''%4'' package ?'.
-		    msg := msg , '\\Hint: if these are meant to be extensions of another package,'.
-		    msg := msg , '\cancel and move them to the appropriate package first.'.
-		].
-		doClasses ifTrue:[
-		    msg := msg , '\\If you answer with "No" here, you will be asked for each class individually.'.
-		].
-		msg := msg withCRs.
-		msg := msg bindWith:looseMethods size
-			       with:(looseMethods isEmpty ifTrue:[''] ifFalse:[looseMethods first selector allBold])
-			       with:(looseMethods isEmpty ifTrue:[''] ifFalse:[looseMethods first mclass name allBold])
-			       with:packageToCheckIn allBold.
-		(Dialog confirm:msg noLabel:(resources string:'Cancel')) ifFalse:[^ self].
-
-		looseMethods do:[:mthd |
-		    mthd package:packageToCheckIn
-		].
-	    ].
-	    SourceCodeManagerUtilities default checkinClasses:classesToCheckIn withInfo:checkinInfo.
-	].
-
-	originalCheckinInfo notNil ifTrue:[
-	    originalCheckinInfo isStable ifTrue:[
-		classesToTag do:[:eachClass |
-		    SourceCodeManagerUtilities default tagClass:eachClass as:#stable
-		].
-	    ].
-	    originalCheckinInfo tagIt ifTrue:[
-		classesToTag do:[:eachClass |
-		    SourceCodeManagerUtilities default tagClass:eachClass as:(originalCheckinInfo tag)
-		].
-	    ].
-	].
+        classesToCheckIn notEmpty ifTrue:[
+            looseMethods notEmpty ifTrue:[
+                looseMethods size == 1 ifTrue:[
+                    msg := 'The ''%2'' method in ''%3'' is unassigned (loose).'.
+                    msg := msg , '\\If you proceed, this method will be moved to the ''%4'' package'.
+                    msg := msg , '\\Hint: if this is meant to be an extension of another package,'.
+                    msg := msg , '\cancel and move it to the appropriate package first.'.
+                ] ifFalse:[
+                    msg := 'There are %1 unassigned (loose) methods in classes from this project.'.
+                    msg := msg , '\\If you proceed, those will be moved to the ''%4'' package ?'.
+                    msg := msg , '\\Hint: if these are meant to be extensions of another package,'.
+                    msg := msg , '\cancel and move them to the appropriate package first.'.
+                ].
+                doClasses ifTrue:[
+                    msg := msg , '\\If you answer with "No" here, you will be asked for each class individually.'.
+                ].
+                msg := msg withCRs.
+                msg := msg bindWith:looseMethods size
+                               with:(looseMethods isEmpty ifTrue:[''] ifFalse:[looseMethods first selector allBold])
+                               with:(looseMethods isEmpty ifTrue:[''] ifFalse:[looseMethods first mclass name allBold])
+                               with:packageToCheckIn allBold.
+                (Dialog confirm:msg noLabel:(resources string:'Cancel')) ifFalse:[^ self].
+
+                looseMethods do:[:mthd |
+                    mthd package:packageToCheckIn
+                ].
+            ].
+            SourceCodeManagerUtilities default checkinClasses:classesToCheckIn withInfo:checkinInfo.
+        ].
+
+        originalCheckinInfo notNil ifTrue:[
+            originalCheckinInfo isStable ifTrue:[
+                classesToTag do:[:eachClass |
+                    SourceCodeManagerUtilities default tagClass:eachClass as:#stable
+                ].
+            ].
+            originalCheckinInfo tagIt ifTrue:[
+                classesToTag do:[:eachClass |
+                    SourceCodeManagerUtilities default tagClass:eachClass as:(originalCheckinInfo tag)
+                ].
+            ].
+        ].
     ].
 
     doBuild ifTrue:[
-	self projectMenuCheckInBuildSupportFilesForProject:packageToCheckIn
+        self projectMenuCheckInBuildSupportFilesForProject:packageToCheckIn
     ].
 
     self normalLabel.
@@ -39809,22 +40990,22 @@
     |utilities|
 
     manager isNil ifTrue:[
-	utilities := (AbstractSourceCodeManager managerForPackage:packageToCheckIn) utilities.
-    ] ifFalse:[
-	utilities := manager utilities.
+        utilities := (AbstractSourceCodeManager managerForPackage:packageToCheckIn) utilities.
+    ] ifFalse:[
+        utilities := manager utilities.
     ].
 
     AbortAllOperationRequest catch:[
-	self withActivityNotificationsRedirectedToInfoLabelDo:[
-	    self withWaitCursorDo:[
-		utilities
-		    checkinPackage:packageToCheckIn
-		    classes:doClasses
-		    extensions:doExtensions
-		    buildSupport:doBuild
-		    askForMethodsInOtherPackages:askForMethodsInOtherPackages
-	    ]
-	]
+        self withActivityNotificationsRedirectedToInfoLabelDo:[
+            self withWaitCursorDo:[
+                utilities
+                    checkinPackage:packageToCheckIn
+                    classes:doClasses
+                    extensions:doExtensions
+                    buildSupport:doBuild
+                    askForMethodsInOtherPackages:askForMethodsInOtherPackages
+            ]
+        ]
     ]
 
     "Created: / 13-10-2011 / 10:40:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -39833,12 +41014,12 @@
 
 projectMenuCheckInProject:packageToCheckIn classes:doClasses extensions:doExtensions buildSupport:doBuild usingManager: manager
     ^ self
-	projectMenuCheckInProject:packageToCheckIn
-	classes:doClasses
-	extensions:doExtensions
-	buildSupport:doBuild
-	askForMethodsInOtherPackages:true
-	usingManager: manager
+        projectMenuCheckInProject:packageToCheckIn
+        classes:doClasses
+        extensions:doExtensions
+        buildSupport:doBuild
+        askForMethodsInOtherPackages:true
+        usingManager: manager
 
     "Modified: / 21-08-2006 / 19:43:22 / cg"
     "Created: / 13-10-2011 / 10:37:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -39857,11 +41038,11 @@
 
 projectMenuCheckOutExtensions
     self selectedProjectsDo:[:packageToCheckOut |
-	SourceCodeManagerUtilities
-	    checkoutExtensionMethodsForPackage:packageToCheckOut
-	    askForRevision:true
-	    askForMerge:true
-	    usingManager:(SourceCodeManager defaultManager)
+        SourceCodeManagerUtilities
+            checkoutExtensionMethodsForPackage:packageToCheckOut
+            askForRevision:true
+            askForMerge:true
+            usingManager:(SourceCodeManager defaultManager)
     ]
 
     "Created: / 10-08-2006 / 18:16:51 / cg"
@@ -39874,24 +41055,24 @@
      or merge-in the repository version."
 
     (Dialog confirm:('This functionality is not yet completely implemented.'
-		, String lf
-		,'For now, only existing classes are updated - no new classes are added or old ones removed.'
-		, String lf
-		, 'Please use the import-structure function to get new definitions.')) ifFalse:[^ self].
+                , String lf
+                ,'For now, only existing classes are updated - no new classes are added or old ones removed.'
+                , String lf
+                , 'Please use the import-structure function to get new definitions.')) ifFalse:[^ self].
 
     self selectedProjects value do:[:eachPackageID |
-	|definitionClass mgr classes|
-
-	definitionClass := ProjectDefinition definitionClassForPackage:eachPackageID.
-	definitionClass isNil ifTrue:[
-	    mgr := SourceCodeManager
-	] ifFalse:[
-	    mgr := SourceCodeManagerUtilities sourceCodeManagerFor:definitionClass
-	].
-
-	classes := environment allClassesInPackage:eachPackageID.
-	classes := classes reject:[:cls | cls isPrivate ].
-	self checkOutClasses:classes askForRevision:false usingManager: mgr.
+        |definitionClass mgr classes|
+
+        definitionClass := ProjectDefinition definitionClassForPackage:eachPackageID.
+        definitionClass isNil ifTrue:[
+            mgr := SourceCodeManager
+        ] ifFalse:[
+            mgr := SourceCodeManagerUtilities sourceCodeManagerFor:definitionClass
+        ].
+
+        classes := environment allClassesInPackage:eachPackageID.
+        classes := classes reject:[:cls | cls isPrivate ].
+        self checkOutClasses:classes askForRevision:false usingManager: mgr.
     ].
 "/    self checkOutClasses:(self selectedProjectClasses) askForRevision:false.
 ^ self.
@@ -40083,14 +41264,75 @@
     "Modified: / 10-02-2012 / 17:32:39 / cg"
 !
 
+projectMenuCheckOutNewestUsingManager: manager
+
+    "/ If manager is CVSSourceCodeManager, call the old method
+    "/ until code is moved to CVSSourceCodeManager
+    manager == CVSSourceCodeManager ifTrue:[
+        self projectMenuCheckOutNewest.
+        ^ self.
+    ].
+    self projectMenuCheckOutUsingManager: manager askForRevision: false.
+
+    "Created: / 01-04-2014 / 16:59:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 04-04-2014 / 11:13:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+projectMenuCheckOutNewestUsingManagerNamed: sourceCodeManagerClassName
+    |mgr|
+
+    mgr := Smalltalk classNamed:sourceCodeManagerClassName.
+    self assert:(mgr notNil).
+    self projectMenuCheckOutNewestUsingManager: mgr
+
+    "Created: / 01-04-2014 / 16:50:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+projectMenuCheckOutUsingManager:manager
+
+    "/ If manager is CVSSourceCodeManager, call the old method
+    "/ until code is moved to CVSSourceCodeManager
+    manager == CVSSourceCodeManager ifTrue:[
+        self projectMenuCheckOut.
+        ^ self.
+    ].
+    self projectMenuCheckOutUsingManager: manager askForRevision: true.
+
+    "Created: / 01-04-2014 / 16:57:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified (format): / 01-04-2014 / 21:24:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+projectMenuCheckOutUsingManager:manager askForRevision: askForRevision
+    | selectedProjects |
+
+    selectedProjects := self selectedProjects value.
+    (selectedProjects includes:(BrowserList nameListEntryForALL)) ifTrue:[
+        selectedProjects := environment allProjectIDs.
+    ].
+
+    manager utilities checkOutPackages: selectedProjects askForRevision: askForRevision
+
+    "Created: / 01-04-2014 / 21:23:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+projectMenuCheckOutUsingManagerNamed: sourceCodeManagerClassName
+    |mgr|
+
+    mgr := Smalltalk classNamed:sourceCodeManagerClassName.
+    self assert:(mgr notNil).
+    self projectMenuCheckOutUsingManager: mgr
+
+    "Created: / 01-04-2014 / 16:51:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 projectMenuCheckPackageIntegrity
     "Runs ProjectChecker on selected packages"
 
     self selectedProjectsDo:[:package |
-	Tools::ProjectCheckerBrowser new
-	    projectChecker: (ProjectChecker forPackage: package);
-	    open;
-	    doCheckAgain
+        Tools::ProjectCheckerBrowser new
+            projectChecker: (ProjectChecker forPackage: package);
+            open;
+            doCheckAgain
     ]
 
     "Created: / 26-07-2012 / 12:30:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -40115,175 +41357,175 @@
     "
 
     self withWaitCursorDo:[
-	|classesToLoad classesToUnload classesWithMissingContainer classesWithRepositoryMismatches
-	 obsoleteContainers allChangeSets answer needExtensionsContainer hasExtensionContainer
-	 classesWithNewerVersionInRepository classesWhichHaveBeenModified|
-
-	classesWithRepositoryMismatches := OrderedCollection new.
-	classesWithMissingContainer := OrderedCollection new.
-	obsoleteContainers := OrderedCollection new.
-	classesWithNewerVersionInRepository := OrderedCollection new.
-	classesWhichHaveBeenModified := OrderedCollection new.
-
-	self selectedProjectsDo:[:packageToCheck |
-	    |containerModule containerPackage containers allContainers
-	     hasLoadAll hasMakeProto hasMakeSpec hasBcMakefile hasNtMakefile hasAbbrev
-	     otherFiles classesInProject |
-
-	    containerModule := packageToCheck upTo:$:.
-	    containerPackage := packageToCheck copyFrom:(containerModule size + 2).
-
-	    self busyLabel:'Checking ' , packageToCheck , '...'.
-
-	    allContainers := aManager getExistingContainersInModule:containerModule directory:containerPackage.
-	    allContainers := allContainers reject:[:each | (each startsWith:'.') ].
-
-	    hasLoadAll := allContainers includes:'loadAll'.
-	    hasMakeProto := allContainers includes:'Make.proto'.
-	    hasMakeSpec := allContainers includes:'Make.spec'.
-	    hasBcMakefile := allContainers includes:'bc.mak'.
-	    hasNtMakefile := allContainers includes:'nt.mak'.
-	    hasAbbrev := allContainers includes:'abbrev.stc'.
-	    hasExtensionContainer := allContainers includes:'extensions.st'.
-
-	    containers := allContainers copyAsOrderedCollection.
-	    containers removeAllFoundIn:#('loadAll' 'Make.proto' 'Make.spec' 'nt.mak' 'bc.mak' 'abbrev.stc' 'extensions.st').
-	    otherFiles := containers reject:[:each | (each asFilename hasSuffix:'st') ].
-	    containers removeAllFoundIn:otherFiles.
-
-	    classesInProject := IdentitySet new.
-	    needExtensionsContainer := false.
-	    environment allClassesDo:[:aClass |
-		(packageToCheck = aClass package) ifTrue:[
-		    aClass isPrivate ifFalse:[
-			classesInProject add:aClass .
-		    ]
-		] ifFalse:[
-		    needExtensionsContainer := needExtensionsContainer or:[aClass hasExtensionsFrom:packageToCheck].
-		]
-	    ].
-
-	    "/ load unloaded classes...
-	    classesToLoad := OrderedCollection new.
-	    classesInProject do:[:eachClassInProject |
-		eachClassInProject isLoaded ifFalse:[
-		    classesToLoad add:eachClassInProject
-		].
-	    ].
-	    classesToLoad size > 0 ifTrue:[
-		answer := Dialog confirmWithCancel:(resources string:'%1 class(es) are not loaded.\(Unloaded classes will be skipped when checking)\\Load them first ?'
-							      with:classesToLoad size) withCRs
-				 default:false.
-		answer isNil ifTrue:[^ self].
-
-		answer ifTrue:[
-		    classesToUnload := OrderedCollection new.
-		    classesInProject do:[:eachClassInProject |
-			eachClassInProject isLoaded ifFalse:[
-			    eachClassInProject autoload.
-			    classesToUnload add:eachClassInProject
-			].
-		    ].
-		].
-	    ].
-
-	    "/ any class without container ?
-	    classesInProject do:[:eachClassInProject |
-		|mgr info classesModule classesPackageDir classesContainerFileName|
-
-		eachClassInProject isPrivate ifFalse:[
-		  "/ eachClassInProject isLoaded ifTrue:[
-		    self busyLabel:'Checking ' , packageToCheck , ' - ' , eachClassInProject name.
-
-		    mgr := aManager utilities sourceCodeManagerFor:eachClassInProject.
-		    info := mgr sourceInfoOfClass:eachClassInProject.
-		    info isNil ifTrue:[
-			"/ no container for that class
-		    ] ifFalse:[
-			(info includesKey:#module) ifTrue:[
-			    classesModule := (info at:#module).
-			].
-			(info includesKey:#directory) ifTrue:[
-			    classesPackageDir := (info at:#directory).
-			].
-			classesContainerFileName := mgr containerFromSourceInfo:info.
-
-			"/ module & packageDir must match
-			((classesModule ~= containerModule)
-			or:[classesPackageDir ~= containerPackage]) ifTrue:[
-			    classesWithRepositoryMismatches add:eachClassInProject
-			].
-			(containers includes:classesContainerFileName) ifFalse:[
-			    classesWithMissingContainer add:eachClassInProject.
-			] ifTrue:[
-			    eachClassInProject isLoaded ifTrue:[
-				eachClassInProject revision ~= (mgr newestRevisionOf:eachClassInProject)
-				ifTrue:[
-				    classesWithNewerVersionInRepository add:eachClassInProject.
-				].
-			    ].
-			].
-			containers remove:classesContainerFileName ifAbsent:nil.
-		    ].
-		].
-	    ].
-
-	    "/ any container left ?
-	    containers notEmpty ifTrue:[
-		obsoleteContainers add:(packageToCheck -> containers).
-	    ].
-
-	    "/ any version mismatches ?
-	    classesInProject do:[:eachClassInProject |
-	      eachClassInProject isLoaded ifTrue:[
-		(classesWithMissingContainer includes:eachClassInProject) ifFalse:[
-		    (classesWithRepositoryMismatches includes:eachClassInProject) ifFalse:[
-			"/ class modified ?
-			allChangeSets isNil ifTrue:[
-			    allChangeSets := ChangeSet allInstances.
-			].
-			(allChangeSets contains:[:aChangeSet |
-			    (eachClassInProject hasUnsavedChanges)
-			    or:[eachClassInProject allPrivateClasses contains:[:aPrivateClass |
-				    aPrivateClass hasUnsavedChanges]]
-			])
-			ifTrue:[
-			    classesWhichHaveBeenModified add:eachClassInProject
-			]
-		    ]
-		]
-	      ]
-	    ].
-
-	    classesToUnload size >0 ifTrue:[
-		answer := Dialog confirm:(resources string:'%1 class(es) were loaded - unload them now ?'
-					  with:classesToLoad size)
-				 default:false.
-		answer ifTrue:[
-		    "/ unload classes which have been loaded temporarily
-		    classesToUnload do:[:eachClassToUnload |
-			eachClassToUnload unload
-		    ].
-		]
-	    ]
-	].
-
-	(obsoleteContainers notEmpty
-	or:[ classesWithRepositoryMismatches notEmpty
-	or:[ classesWithMissingContainer notEmpty
-	or:[ classesWhichHaveBeenModified notEmpty
-	or:[ classesWithNewerVersionInRepository notEmpty
-	or:[ needExtensionsContainer ~~ hasExtensionContainer ]]]]])
-	ifTrue:[
-	    self
-		openRepositoryConsistencyDialogForObsoleteContainers:obsoleteContainers
-		classesWithRepositoryMismatches:classesWithRepositoryMismatches
-		classesWithMissingContainer:classesWithMissingContainer
-		classesWhichHaveBeenModified:classesWhichHaveBeenModified
-		classesWithNewerVersionInRepository:classesWithNewerVersionInRepository
-		needExtensionsContainer:needExtensionsContainer
-		hasExtensionContainer:hasExtensionContainer
-	]
+        |classesToLoad classesToUnload classesWithMissingContainer classesWithRepositoryMismatches
+         obsoleteContainers allChangeSets answer needExtensionsContainer hasExtensionContainer
+         classesWithNewerVersionInRepository classesWhichHaveBeenModified|
+
+        classesWithRepositoryMismatches := OrderedCollection new.
+        classesWithMissingContainer := OrderedCollection new.
+        obsoleteContainers := OrderedCollection new.
+        classesWithNewerVersionInRepository := OrderedCollection new.
+        classesWhichHaveBeenModified := OrderedCollection new.
+
+        self selectedProjectsDo:[:packageToCheck |
+            |containerModule containerPackage containers allContainers
+             hasLoadAll hasMakeProto hasMakeSpec hasBcMakefile hasNtMakefile hasAbbrev
+             otherFiles classesInProject |
+
+            containerModule := packageToCheck upTo:$:.
+            containerPackage := packageToCheck copyFrom:(containerModule size + 2).
+
+            self busyLabel:'Checking ' , packageToCheck , '...'.
+
+            allContainers := aManager getExistingContainersInModule:containerModule directory:containerPackage.
+            allContainers := allContainers reject:[:each | (each startsWith:'.') ].
+
+            hasLoadAll := allContainers includes:'loadAll'.
+            hasMakeProto := allContainers includes:'Make.proto'.
+            hasMakeSpec := allContainers includes:'Make.spec'.
+            hasBcMakefile := allContainers includes:'bc.mak'.
+            hasNtMakefile := allContainers includes:'nt.mak'.
+            hasAbbrev := allContainers includes:'abbrev.stc'.
+            hasExtensionContainer := allContainers includes:'extensions.st'.
+
+            containers := allContainers copyAsOrderedCollection.
+            containers removeAllFoundIn:#('loadAll' 'Make.proto' 'Make.spec' 'nt.mak' 'bc.mak' 'abbrev.stc' 'extensions.st').
+            otherFiles := containers reject:[:each | (each asFilename hasSuffix:'st') ].
+            containers removeAllFoundIn:otherFiles.
+
+            classesInProject := IdentitySet new.
+            needExtensionsContainer := false.
+            environment allClassesDo:[:aClass |
+                (packageToCheck = aClass package) ifTrue:[
+                    aClass isPrivate ifFalse:[
+                        classesInProject add:aClass .
+                    ]
+                ] ifFalse:[
+                    needExtensionsContainer := needExtensionsContainer or:[aClass hasExtensionsFrom:packageToCheck].
+                ]
+            ].
+
+            "/ load unloaded classes...
+            classesToLoad := OrderedCollection new.
+            classesInProject do:[:eachClassInProject |
+                eachClassInProject isLoaded ifFalse:[
+                    classesToLoad add:eachClassInProject
+                ].
+            ].
+            classesToLoad size > 0 ifTrue:[
+                answer := Dialog confirmWithCancel:(resources string:'%1 class(es) are not loaded.\(Unloaded classes will be skipped when checking)\\Load them first ?'
+                                                              with:classesToLoad size) withCRs
+                                 default:false.
+                answer isNil ifTrue:[^ self].
+
+                answer ifTrue:[
+                    classesToUnload := OrderedCollection new.
+                    classesInProject do:[:eachClassInProject |
+                        eachClassInProject isLoaded ifFalse:[
+                            eachClassInProject autoload.
+                            classesToUnload add:eachClassInProject
+                        ].
+                    ].
+                ].
+            ].
+
+            "/ any class without container ?
+            classesInProject do:[:eachClassInProject |
+                |mgr info classesModule classesPackageDir classesContainerFileName|
+
+                eachClassInProject isPrivate ifFalse:[
+                  "/ eachClassInProject isLoaded ifTrue:[
+                    self busyLabel:'Checking ' , packageToCheck , ' - ' , eachClassInProject name.
+
+                    mgr := aManager utilities sourceCodeManagerFor:eachClassInProject.
+                    info := mgr sourceInfoOfClass:eachClassInProject.
+                    info isNil ifTrue:[
+                        "/ no container for that class
+                    ] ifFalse:[
+                        (info includesKey:#module) ifTrue:[
+                            classesModule := (info at:#module).
+                        ].
+                        (info includesKey:#directory) ifTrue:[
+                            classesPackageDir := (info at:#directory).
+                        ].
+                        classesContainerFileName := mgr containerFromSourceInfo:info.
+
+                        "/ module & packageDir must match
+                        ((classesModule ~= containerModule)
+                        or:[classesPackageDir ~= containerPackage]) ifTrue:[
+                            classesWithRepositoryMismatches add:eachClassInProject
+                        ].
+                        (containers includes:classesContainerFileName) ifFalse:[
+                            classesWithMissingContainer add:eachClassInProject.
+                        ] ifTrue:[
+                            eachClassInProject isLoaded ifTrue:[
+                                eachClassInProject revision ~= (mgr newestRevisionOf:eachClassInProject)
+                                ifTrue:[
+                                    classesWithNewerVersionInRepository add:eachClassInProject.
+                                ].
+                            ].
+                        ].
+                        containers remove:classesContainerFileName ifAbsent:nil.
+                    ].
+                ].
+            ].
+
+            "/ any container left ?
+            containers notEmpty ifTrue:[
+                obsoleteContainers add:(packageToCheck -> containers).
+            ].
+
+            "/ any version mismatches ?
+            classesInProject do:[:eachClassInProject |
+              eachClassInProject isLoaded ifTrue:[
+                (classesWithMissingContainer includes:eachClassInProject) ifFalse:[
+                    (classesWithRepositoryMismatches includes:eachClassInProject) ifFalse:[
+                        "/ class modified ?
+                        allChangeSets isNil ifTrue:[
+                            allChangeSets := ChangeSet allInstances.
+                        ].
+                        (allChangeSets contains:[:aChangeSet |
+                            (eachClassInProject hasUnsavedChanges)
+                            or:[eachClassInProject allPrivateClasses contains:[:aPrivateClass |
+                                    aPrivateClass hasUnsavedChanges]]
+                        ])
+                        ifTrue:[
+                            classesWhichHaveBeenModified add:eachClassInProject
+                        ]
+                    ]
+                ]
+              ]
+            ].
+
+            classesToUnload size >0 ifTrue:[
+                answer := Dialog confirm:(resources string:'%1 class(es) were loaded - unload them now ?'
+                                          with:classesToLoad size)
+                                 default:false.
+                answer ifTrue:[
+                    "/ unload classes which have been loaded temporarily
+                    classesToUnload do:[:eachClassToUnload |
+                        eachClassToUnload unload
+                    ].
+                ]
+            ]
+        ].
+
+        (obsoleteContainers notEmpty
+        or:[ classesWithRepositoryMismatches notEmpty
+        or:[ classesWithMissingContainer notEmpty
+        or:[ classesWhichHaveBeenModified notEmpty
+        or:[ classesWithNewerVersionInRepository notEmpty
+        or:[ needExtensionsContainer ~~ hasExtensionContainer ]]]]])
+        ifTrue:[
+            self
+                openRepositoryConsistencyDialogForObsoleteContainers:obsoleteContainers
+                classesWithRepositoryMismatches:classesWithRepositoryMismatches
+                classesWithMissingContainer:classesWithMissingContainer
+                classesWhichHaveBeenModified:classesWhichHaveBeenModified
+                classesWithNewerVersionInRepository:classesWithNewerVersionInRepository
+                needExtensionsContainer:needExtensionsContainer
+                hasExtensionContainer:hasExtensionContainer
+        ]
     ].
     self normalLabel
 
@@ -40294,12 +41536,12 @@
     "remove all changes for the selected project(s) from the changeSet"
 
     (self confirm:'This will remove all changes for the selected project(s) from the changeSet.\\Really cleanup ?' withCRs)
-	ifFalse:[ ^ self].
+        ifFalse:[ ^ self].
 
     self withWaitCursorDo:[
-	self selectedProjectsDo:[:eachProject |
-	    ChangeSet current condenseChangesForPackage:eachProject
-	].
+        self selectedProjectsDo:[:eachProject |
+            ChangeSet current condenseChangesForPackage:eachProject
+        ].
     ]
 
     "Created: / 26-10-2006 / 19:41:27 / cg"
@@ -40312,9 +41554,9 @@
     <resource: #obsolete> "use ...Using:manager variant"
 
     self withWaitCursorDo:[
-	self selectedProjects value do:[:eachProject |
-	    SourceCodeManagerUtilities default compareProjectWithRepository:eachProject
-	].
+        self selectedProjects value do:[:eachProject |
+            SourceCodeManagerUtilities default compareProjectWithRepository:eachProject
+        ].
     ].
 
     "Created: / 12-10-2006 / 17:41:55 / cg"
@@ -40327,15 +41569,13 @@
      against the the newest version found in the repository."
 
     self withWaitCursorDo:[
-	self selectedProjects value do:[:eachProject |
-	    manager utilities compareProjectWithRepository:eachProject
-	].
+        manager utilities comparePackages: self selectedProjects value askForRevision: false.
     ].
 
     "Modified: / 12-10-2006 / 21:46:14 / cg"
     "Created: / 15-10-2011 / 23:10:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Created: / 21-12-2011 / 20:29:20 / cg"
-    "Modified: / 16-01-2012 / 18:45:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 04-04-2014 / 15:38:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 projectMenuCompareAgainstNewestInRepositoryUsingManagerNamed: sourceCodeManagerClassName
@@ -40344,7 +41584,7 @@
 
     |mgr|
 
-    mgr := Smalltalk at:sourceCodeManagerClassName asSymbol.
+    mgr := Smalltalk classNamed:sourceCodeManagerClassName.
     self assert:(mgr notNil).
     ^self projectMenuCompareAgainstNewestInRepositoryUsingManager: mgr
 
@@ -40363,33 +41603,13 @@
     "Comparing the current (in-image) version of the project(s)
      against some older version found in the repository."
 
-    |dateFormat string dateOrNil symbolicName|
-
-    dateFormat := UserPreferences current dateInputFormat.
-    string := Dialog
-		request:(resources
-			string:'Compare with version from date (%1) or tag (any other format):'
-			with:dateFormat)
-		initialAnswer:(Date today printStringFormat:dateFormat).
-
-    string isEmptyOrNil ifTrue:[^ self].
-    dateOrNil := Date readFrom:string printFormat:dateFormat onError:nil.
-    dateOrNil isNil ifTrue:[
-	symbolicName := string
-    ].
-
     self withWaitCursorDo:[
-	self selectedProjects value do:[:eachProject |
-	    dateOrNil notNil ifTrue:[
-		aManager utilities compareProject:eachProject withRepositoryVersionFrom:dateOrNil
-	    ] ifFalse:[
-		aManager utilities compareProject:eachProject withRepositoryVersionTaggedAs:symbolicName
-	    ]
-	].
+        aManager utilities comparePackages: self selectedProjects value askForRevision: true.
     ].
 
     "Created: / 12-10-2006 / 17:41:55 / cg"
     "Modified: / 12-10-2006 / 21:46:14 / cg"
+    "Modified: / 04-04-2014 / 15:36:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 projectMenuCompareAgainstStableInRepository
@@ -40404,14 +41624,39 @@
      against the stable version found in the repository."
 
     self withWaitCursorDo:[
-	self selectedProjects value do:[:eachProject |
-	    aManager utilities compareProject:eachProject withRepositoryVersionTaggedAs:'stable'
-	].
+        self selectedProjects value do:[:eachProject |
+            aManager utilities compareProject:eachProject withRepositoryVersionTaggedAs:'stable'
+        ].
     ].
 !
 
 projectMenuDocumentation
-    self information:'Sorry - this functionality is not yet implemented'
+    "save class documentation for each of the package's classes to a directory"
+
+    self projectMenuDocumentationUsing:HTMLDocGenerator
+!
+
+projectMenuDocumentationForJavaScript
+    "save class documentation for each of the package's classes to a directory"
+
+    self projectMenuDocumentationUsing:HTMLDocGeneratorForJavaScript
+!
+
+projectMenuDocumentationUsing:generator
+    "save class documentation for each of the package's classes to a directory"
+
+    |directory|
+
+    directory := Dialog
+                    requestDirectoryName:'Save class documentation in'
+                    default:(LastClassDocDirectory ? 'doc/classDoc').
+
+    directory isEmptyOrNil ifTrue:[^ self].
+    LastClassDocDirectory := directory.
+
+    directory := directory asFilename.
+    directory recursiveMakeDirectory.
+    self saveProjectClassDocumentationIn:directory using:generator
 !
 
 projectMenuFileOutAs
@@ -40421,7 +41666,8 @@
 !
 
 projectMenuFileOutAsWithFormat:aFormatSymbolOrNil
-    |currentProject selectedProjects suffix saveName fileName "methodsToFileOut fileNameForExtensions" mgr s classesToFileout|
+    |currentProject selectedProjects suffix saveName fileName tmpFilename
+     "methodsToFileOut fileNameForExtensions" mgr s classesToFileout|
 
     selectedProjects := self selectedProjectsValue.
     currentProject := self theSingleSelectedProject.
@@ -40439,7 +41685,11 @@
             aFormatSymbolOrNil == #binary ifTrue:[
                 suffix := '.cls'
             ] ifFalse:[
-                suffix := '.st'
+                aFormatSymbolOrNil == #vsePackage ifTrue:[
+                    suffix := '.pkg'
+                ] ifFalse:[
+                    suffix := '.st'
+                ]
             ]
         ]
     ].
@@ -40508,31 +41758,60 @@
         ^ self
     ].
 
-    aFormatSymbolOrNil isNil ifTrue:[
-        self busyLabel:'writing...'.
-        s := fileName asFilename writeStream.
-        classesToFileout := OrderedCollection withAll:(self selectedProjectClasses).
-        classesToFileout topologicalSort:[:a :b | b isSubclassOf:a].
-
-        classesToFileout do:[:eachClass |
-            eachClass fileOutOn:s.
-        ].
-
-        Smalltalk allClassesDo:[:eachClass |
-            eachClass instAndClassSelectorsAndMethodsDo:[:sel :mthd |
-                |mPckg|
-
-                mPckg := mthd package.
-                (mPckg = currentProject and:[mPckg ~= eachClass package]) ifTrue:[
-                    eachClass
-                        fileOutCategory:mthd category
-                        methodFilter:[:m | m == mthd]
-                        on:s.
-                    s cr.
-                ]
-            ]
+    ((aFormatSymbolOrNil == #vsePackage) or:[ aFormatSymbolOrNil == #vse ]) ifTrue:[
+        self busyLabel:'writing VSE...'.
+        tmpFilename := fileName asFilename withSuffix:'part'.
+        s := tmpFilename writeStream.
+        s lineEndCRLF.
+        [
+            ((aFormatSymbolOrNil == #vsePackage)
+                    ifTrue:[ VSEPackageFileSourceWriter ]
+                    ifFalse:[ VSEChunkFileSourceWriter ])
+                fileOutPackage:currentProject on:s.
+        ] ifCurtailed:[
+            s close.
+            tmpFilename remove
         ].
         s close.
+        tmpFilename renameTo:(fileName asFilename).
+        self normalLabel.
+        ^ self.
+    ].
+
+    (aFormatSymbolOrNil isNil) ifTrue:[
+        self busyLabel:'writing...'.
+        tmpFilename := fileName asFilename withSuffix:'part'.
+        s := tmpFilename writeStream.
+        [
+
+            classesToFileout := OrderedCollection withAll:(self selectedProjectClasses).
+            classesToFileout topologicalSort:[:a :b | b isSubclassOf:a].
+
+            classesToFileout do:[:eachClass |
+                eachClass fileOutOn:s.
+            ].
+
+            "/ fileout extensions
+            Smalltalk allClassesDo:[:eachClass |
+                eachClass instAndClassSelectorsAndMethodsDo:[:sel :mthd |
+                    |mPckg|
+
+                    mPckg := mthd package.
+                    (mPckg = currentProject and:[mPckg ~= eachClass package]) ifTrue:[
+                        eachClass
+                            fileOutCategory:mthd category
+                            methodFilter:[:m | m == mthd]
+                            on:s.
+                        s cr.
+                    ]
+                ]
+            ].
+        ] ifCurtailed:[
+            s close.
+            tmpFilename remove
+        ].
+        s close.
+        tmpFilename renameTo:(fileName asFilename).
         self normalLabel.
         ^ self.
     ].
@@ -40547,8 +41826,7 @@
     ].
 
 
-
-    self shouldImplement.
+    self shouldImplement:'support for:',aFormatSymbolOrNil asString.
 
     "Modified: / 27-10-2010 / 11:34:45 / cg"
     "Modified: / 12-01-2014 / 23:25:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -40556,7 +41834,7 @@
 
 projectMenuFileOutBuildSupportFiles
     self selectedProjectsDo:[:packageToCheckIn |
-	self projectMenuFileOutBuildSupportFilesForProject:packageToCheckIn
+        self projectMenuFileOutBuildSupportFilesForProject:packageToCheckIn
     ]
 !
 
@@ -40564,61 +41842,61 @@
     |directory defClass foundPackageDir packageID fullPathName|
 
     defClass := ProjectDefinition definitionClassForPackage:packageIDSymbol
-		createIfAbsent:false.
+                createIfAbsent:false.
     defClass isNil ifTrue:[
-	defClass := self projectDefinitionDialogFor:packageID.
-	defClass isNil ifTrue:[
-	    ^ self
-	].
-	defClass compileDescriptionMethods.
+        defClass := self projectDefinitionDialogFor:packageID.
+        defClass isNil ifTrue:[
+            ^ self
+        ].
+        defClass compileDescriptionMethods.
     ].
 
     self validateProjectDefinition:defClass.
 
     defClass hasAllCompiledClassesFullyLoaded ifFalse:[
-	(Dialog
-	    confirm:('%1: the dependency information as generated will be incomplete,%<cr>because some compiled class(es) are not loaded (see Transcript).%<cr>%<cr>%2%<cr>Continue anyway ?'
-		    bindWith:defClass name
-		    with:('Warning: these classes will be excluded from the list of compiled classes.'
-			    allBold)))
-		ifFalse:[ ^ self. ]
+        (Dialog
+            confirm:('%1: the dependency information as generated will be incomplete,%<cr>because some compiled class(es) are not loaded (see Transcript).%<cr>%<cr>%2%<cr>Continue anyway ?'
+                    bindWith:defClass name
+                    with:('Warning: these classes will be excluded from the list of compiled classes.'
+                            allBold)))
+                ifFalse:[ ^ self. ]
     ].
     packageID := packageIDSymbol asPackageId.
     directory := packageID directory.
     Smalltalk packagePath
-	detect:[:eachDir |
-	    |thisPackageDir|
-
-	    thisPackageDir := packageID pathRelativeToTopDirectory:eachDir.
-	    thisPackageDir exists ifTrue:[
-		foundPackageDir := thisPackageDir.
-		true.
-	    ] ifFalse:[ false ].
-	].
+        detect:[:eachDir |
+            |thisPackageDir|
+
+            thisPackageDir := packageID pathRelativeToTopDirectory:eachDir.
+            thisPackageDir exists ifTrue:[
+                foundPackageDir := thisPackageDir.
+                true.
+            ] ifFalse:[ false ].
+        ].
     directory := Dialog
-		requestDirectoryName:'Directory Where to Generate Build Support Files?'
-		default:foundPackageDir.
+                requestDirectoryName:'Directory Where to Generate Build Support Files?'
+                default:foundPackageDir.
     directory isNil ifTrue:[
-	^ self.
+        ^ self.
     ].
     directory := directory asFilename.
     directory exists ifFalse:[
-	Dialog warn:'Directory does not exists!!'.
-	^ self.
+        Dialog warn:'Directory does not exists!!'.
+        ^ self.
     ].
     self activityNotification:(resources
-		string:'generating build-support files...').
+                string:'generating build-support files...').
 
     self withActivityNotificationsRedirectedToInfoLabelDo:[
-	defClass forEachFileNameAndGeneratedContentsDo:[:fileName :fileContents |
-	    self showInfo:(resources string:'filing out %1...' with:fileName).
-	    fullPathName := directory construct:fileName.
-	    fullPathName directory exists ifFalse:[
-		"take care for files like 'autopackage/default.apspec'"
-		fullPathName directory makeDirectory.
-	    ].
-	    fullPathName contents:fileContents.
-	].
+        defClass forEachFileNameAndGeneratedContentsDo:[:fileName :fileContents |
+            self showInfo:(resources string:'filing out %1...' with:fileName).
+            fullPathName := directory construct:fileName.
+            fullPathName directory exists ifFalse:[
+                "take care for files like 'autopackage/default.apspec'"
+                fullPathName directory makeDirectory.
+            ].
+            fullPathName contents:fileContents.
+        ].
     ].
     self activityNotification:nil.
 
@@ -40650,40 +41928,40 @@
 
     currentProject := self theSingleSelectedProject ? 'selected projects'.
     dirName := self
-		askForDirectoryToFileOut:(resources string:'FileOut %1 in:'
-						    with:currentProject)
-		default:nil.
+                askForDirectoryToFileOut:(resources string:'FileOut %1 in:'
+                                                    with:currentProject)
+                default:nil.
     dirName isNil ifTrue:[
-	^ self
+        ^ self
     ].
     dirName asFilename exists ifFalse:[
-	dirName asFilename recursiveMakeDirectory
-    ].
-
-    self
-	fileOutEachClassIn:self selectedProjectClasses
-	in:dirName
-	withFormat:aFormatSymbolOrNil.
+        dirName asFilename recursiveMakeDirectory
+    ].
+
+    self
+        fileOutEachClassIn:self selectedProjectClasses
+        in:dirName
+        withFormat:aFormatSymbolOrNil.
 
     "/ extensions...
     methodsToFileOut := OrderedCollection new.
     environment allClassesDo:[:eachClass |
-	eachClass instAndClassSelectorsAndMethodsDo:[:sel :mthd |
-	    |mPckg|
-
-	    mPckg := mthd package.
-	    (mPckg = currentProject and:[mPckg ~= eachClass package]) ifTrue:[
-		methodsToFileOut add:mthd
-	    ]
-	]
+        eachClass instAndClassSelectorsAndMethodsDo:[:sel :mthd |
+            |mPckg|
+
+            mPckg := mthd package.
+            (mPckg = currentProject and:[mPckg ~= eachClass package]) ifTrue:[
+                methodsToFileOut add:mthd
+            ]
+        ]
     ].
     dirName := dirName asFilename.
     fileNameForExtensions := (dirName construct:'extensions') withSuffix:(self fileSuffixForFormat:aFormatSymbolOrNil).
     self
-	fileOutMethods:methodsToFileOut
-	format:aFormatSymbolOrNil
-	toFile:fileNameForExtensions
-	withPackage:true
+        fileOutMethods:methodsToFileOut
+        format:aFormatSymbolOrNil
+        toFile:fileNameForExtensions
+        withPackage:true
 
     "Modified: / 05-09-2011 / 22:02:48 / cg"
 !
@@ -40694,6 +41972,12 @@
     self projectMenuFileOutEachInWithFormat:#sif
 !
 
+projectMenuFileOutEachVSEIn
+    "fileOut selected projects as individual files - visual smalltalk enterprise format"
+
+    self projectMenuFileOutEachInWithFormat:#vse
+!
+
 projectMenuFileOutEachXMLIn
     "fileOut selected projects as individual files - xml format"
 
@@ -40706,6 +41990,22 @@
     self projectMenuFileOutAsWithFormat:#sif
 !
 
+projectMenuFileOutVSEAs
+    "fileOut selected projects - visual smalltalk enterprise format"
+
+    self projectMenuFileOutAsWithFormat:#vse
+!
+
+projectMenuFileOutVSEFormatAs
+    self projectMenuFileOutAsWithFormat:#vse
+!
+
+projectMenuFileOutVSEPackageFormatAs
+    "fileOut selected projects - visual smalltalk enterprise format"
+
+    self projectMenuFileOutAsWithFormat:#vsePackage
+!
+
 projectMenuFileOutXMLAs
     "fileOut selected projects - xml format"
 
@@ -40719,42 +42019,42 @@
 
     differentClasses := OrderedCollection new.
     self withWaitCursorDo:[
-	self selectedProjectsDo:[:eachProject |
-	    |module directory perProjectInfo classesInImage
-	     autoloadedClassesInImage filesInImage autoloadedFilesInImage
-	     classesNotInRepository classesDeletedInRepository filesNotInImage|
-
-	    module := eachProject asPackageId module.
-	    directory := eachProject asPackageId directory.
-
-	    perProjectInfo := SourceCodeManager revisionsInModule:module directory:directory taggedAs:aSymbolicTag.
-	    perProjectInfo := perProjectInfo ? #().
-	    perProjectInfo := perProjectInfo select:[:info | info key asFilename hasSuffix:'st'].
-	    perProjectInfo := Dictionary withAssociations:perProjectInfo.
-
-	    classesInImage := environment allClassesInPackage:eachProject.
-	    autoloadedClassesInImage := classesInImage reject:[:cls | cls isLoaded].
-	    classesInImage := classesInImage select:[:cls | cls isLoaded and:[cls isPrivate not]].
+        self selectedProjectsDo:[:eachProject |
+            |module directory perProjectInfo classesInImage
+             autoloadedClassesInImage filesInImage autoloadedFilesInImage
+             classesNotInRepository classesDeletedInRepository filesNotInImage|
+
+            module := eachProject asPackageId module.
+            directory := eachProject asPackageId directory.
+
+            perProjectInfo := SourceCodeManager revisionsInModule:module directory:directory taggedAs:aSymbolicTag.
+            perProjectInfo := perProjectInfo ? #().
+            perProjectInfo := perProjectInfo select:[:info | info key asFilename hasSuffix:'st'].
+            perProjectInfo := Dictionary withAssociations:perProjectInfo.
+
+            classesInImage := environment allClassesInPackage:eachProject.
+            autoloadedClassesInImage := classesInImage reject:[:cls | cls isLoaded].
+            classesInImage := classesInImage select:[:cls | cls isLoaded and:[cls isPrivate not]].
 "/            filesInImage := classesInImage collect:[:cls | cls classBaseFilename] as:Set.
 "/            autoloadedFilesInImage := autoloadedClassesInImage collect:[:cls | cls classBaseFilename] as:Set.
 "/            "/ any differences ?
 "/            classesNotInRepository := classesInImage reject:[:cls | (perProjectInfo includesKey:cls classBaseFilename)].
 "/            classesDeletedInRepository := classesInImage select:[:cls | (perProjectInfo at:cls classBaseFilename ifAbsent:nil) == #deleted].
-	    perProjectInfo := perProjectInfo reject:[:v | v == #deleted].
+            perProjectInfo := perProjectInfo reject:[:v | v == #deleted].
 "/            filesNotInImage := perProjectInfo keys reject:[:file | (filesInImage includes:file)].
 "/            filesNotInImage := filesNotInImage reject:[:file | (autoloadedFilesInImage includes:file)].
 "/            filesNotInImage remove:'extensions.st' ifAbsent:[].
 
-	    classesInImage do:[:eachClass |
-		eachClass revision ~= (perProjectInfo at:eachClass classBaseFilename ifAbsent:nil) ifTrue:[
-		    differentClasses add:eachClass
-		]
-	    ].
-	].
-	self
-	    spawnClassBrowserFor:differentClasses
-	    label:(resources string:'Classes different from "%1" Version' with:aSymbolicTag)
-	    in:#newBuffer
+            classesInImage do:[:eachClass |
+                eachClass revision ~= (perProjectInfo at:eachClass classBaseFilename ifAbsent:nil) ifTrue:[
+                    differentClasses add:eachClass
+                ]
+            ].
+        ].
+        self
+            spawnClassBrowserFor:differentClasses
+            label:(resources string:'Classes different from "%1" Version' with:aSymbolicTag)
+            in:#newBuffer
     ].
 !
 
@@ -40778,7 +42078,7 @@
 
 projectMenuGenerateBuildSupportFiles
     self selectedProjectsDo:[:packageToCheckIn |
-	self projectMenuGenerateBuildSupportFilesForProject:packageToCheckIn
+        self projectMenuGenerateBuildSupportFilesForProject:packageToCheckIn
     ]
 
     "Created: / 09-08-2006 / 19:04:52 / fm"
@@ -40790,9 +42090,9 @@
 
     defClass := ProjectDefinition definitionClassForPackage:packageID createIfAbsent:false.
     defClass isNil ifTrue:[
-	defClass := self projectDefinitionDialogFor:packageID.
-	defClass isNil ifTrue:[ ^ self ].
-	defClass compileDescriptionMethods.
+        defClass := self projectDefinitionDialogFor:packageID.
+        defClass isNil ifTrue:[ ^ self ].
+        defClass compileDescriptionMethods.
     ].
 
     self projectMenuGenerateBuildSupportFilesForProject:packageID definition:defClass
@@ -40804,22 +42104,22 @@
     self validateProjectDefinition:defClass.
 
     dirName := self
-		askForDirectoryToFileOut:(resources string:'Generate Build Support Files for %1 in:'
-						    with:packageID)
-		default:nil.
+                askForDirectoryToFileOut:(resources string:'Generate Build Support Files for %1 in:'
+                                                    with:packageID)
+                default:nil.
     dirName isNil ifTrue:[
-	^ self
+        ^ self
     ].
     directory := dirName asFilename.
     directory exists ifFalse:[
-	directory recursiveMakeDirectory
+        directory recursiveMakeDirectory
     ].
 
     self activityNotification:(resources string:'generating build-support files...').
     self withActivityNotificationsRedirectedToInfoLabelDo:[
-	defClass forEachFileNameAndGeneratedContentsDo:[:fileName :fileContents |
-	    (directory construct:fileName) contents:fileContents.
-	].
+        defClass forEachFileNameAndGeneratedContentsDo:[:fileName :fileContents |
+            (directory construct:fileName) contents:fileContents.
+        ].
     ].
 
     self activityNotification:nil.
@@ -40860,256 +42160,256 @@
 
     default := LastImportedPackage.
     default isNil ifTrue:[
-	currentProject := self theSingleSelectedProject.
-	currentProject isNil ifTrue:[
-	    default := 'module:package'.
-	] ifFalse:[
-	    module := currentProject upTo:$:.
-	    module size + 2 > currentProject size ifTrue:[
-		default := currentProject , ':*'
-	    ] ifFalse:[
-		default := currentProject , '/*'
-	    ].
-	].
+        currentProject := self theSingleSelectedProject.
+        currentProject isNil ifTrue:[
+            default := 'module:package'.
+        ] ifFalse:[
+            module := currentProject upTo:$:.
+            module size + 2 > currentProject size ifTrue:[
+                default := currentProject , ':*'
+            ] ifFalse:[
+                default := currentProject , '/*'
+            ].
+        ].
     ].
 
     SourceCodeManager notNil ifTrue:[
-	fromWhere := 'repository'
-    ] ifFalse:[
-	fromWhere := 'file system'
+        fromWhere := 'repository'
+    ] ifFalse:[
+        fromWhere := 'file system'
     ].
 
     msg := 'Name of package to import '.
     doLoadClasses ifFalse:[
-	msg := msg , '(i.e. install as autoloaded) '.
+        msg := msg , '(i.e. install as autoloaded) '.
     ].
     msg := msg , 'from ' , fromWhere , ':\'.
     msg := msg , '   use ''module:*'' to import a complete module;\'.
     msg := msg , '   use ''module:package'' to import a package with all of its subpackages;\'.
     msg := msg , '   use ''module:package/*'' to import subpackages only.'.
     pkg := Dialog
-		request:msg withCRs
-		initialAnswer:default.
+                request:msg withCRs
+                initialAnswer:default.
     pkg size == 0 ifTrue:[^ self].
     LastImportedPackage := pkg.
 
     "/ see if such a module/package exists in the repository
     module := pkg asPackageId module.
     module size + 2 > pkg size ifTrue:[
-	package := checkedOutPackageDir := nil.  "/ i.e. all
-    ] ifFalse:[
-	package := checkedOutPackageDir := pkg asPackageId directory.
-	(package includesMatchCharacters) ifTrue:[
-	    "if the match-char is not at the end..."
-	    ((package endsWith:'/*') and:[ (package copyButLast:2) includesMatchCharacters not ])
-	    ifTrue:[
-		checkedOutPackageDir := package copyButLast:2
-	    ] ifFalse:[
-		checkedOutPackageDir := nil.      "/ must check out everything and filter
-	    ]
-	].
+        package := checkedOutPackageDir := nil.  "/ i.e. all
+    ] ifFalse:[
+        package := checkedOutPackageDir := pkg asPackageId directory.
+        (package includesMatchCharacters) ifTrue:[
+            "if the match-char is not at the end..."
+            ((package endsWith:'/*') and:[ (package copyButLast:2) includesMatchCharacters not ])
+            ifTrue:[
+                checkedOutPackageDir := package copyButLast:2
+            ] ifFalse:[
+                checkedOutPackageDir := nil.      "/ must check out everything and filter
+            ]
+        ].
     ].
 
     managerOrNil notNil ifTrue:[
-	sourceCodeManager := managerOrNil.
-    ] ifFalse:[
-	sourceCodeManager := (AbstractSourceCodeManager managerForPackage:module) ? AbstractSourceCodeManager defaultManager.
+        sourceCodeManager := managerOrNil.
+    ] ifFalse:[
+        sourceCodeManager := (AbstractSourceCodeManager managerForPackage:module) ? AbstractSourceCodeManager defaultManager.
     ].
 
     UnimplementedFunctionalityError,SourceCodeManagerError handle:[:ex |
-	|msg1 msg2|
-
-	(UnimplementedFunctionalityError handles:ex) ifTrue:[
-	    msg1 := 'Cannot access module "%1".\\'.
-	    msg2 := 'Missing functionality in the "%2"-source code manager.'.
-	] ifFalse:[
-	    msg1 := 'Cannot access module "%1".\\'.
-	    msg2 := ex errorString ? ('No module "%1" in the repository (%2).').
-	].
-
-	(Dialog confirm:
-		    (resources stringWithCRs:msg1 with:module)
-		    ,(resources string:msg2 with:module with:sourceCodeManager managerTypeName)
-		    ,(resources stringWithCRs:('\\Import from the filesystem ?')))
-	ifFalse:[
-	    ^ self.
-	].
-	importFromFilesystem := true.
-
-	checkedOutPackageDir isNil ifTrue:[
-	    default := Smalltalk projectDirectoryForPackage:module.
-	] ifFalse:[
-	    default := Smalltalk projectDirectoryForPackage:pkg.
-	].
-	(default notNil
-	    and:[ (default := default asFilename) exists
-	    and:[ default isDirectory ]])
-	ifFalse:[
-	    default := nil.
-	].
-
-	importDirectory := Dialog
-			    requestDirectoryName:(resources
-						    string:'Import "%1" from Directory:'
-						    with:pkg)
-			    default:default.
-	importDirectory isEmptyOrNil ifTrue:[
-	    ^ self
-	].
-	importDirectory := importDirectory asFilename pathName asFilename.
+        |msg1 msg2|
+
+        (UnimplementedFunctionalityError handles:ex) ifTrue:[
+            msg1 := 'Cannot access module "%1".\\'.
+            msg2 := 'Missing functionality in the "%2"-source code manager.'.
+        ] ifFalse:[
+            msg1 := 'Cannot access module "%1".\\'.
+            msg2 := ex errorString ? ('No module "%1" in the repository (%2).').
+        ].
+
+        (Dialog confirm:
+                    (resources stringWithCRs:msg1 with:module)
+                    ,(resources string:msg2 with:module with:sourceCodeManager managerTypeName)
+                    ,(resources stringWithCRs:('\\Import from the filesystem ?')))
+        ifFalse:[
+            ^ self.
+        ].
+        importFromFilesystem := true.
+
+        checkedOutPackageDir isNil ifTrue:[
+            default := Smalltalk projectDirectoryForPackage:module.
+        ] ifFalse:[
+            default := Smalltalk projectDirectoryForPackage:pkg.
+        ].
+        (default notNil
+            and:[ (default := default asFilename) exists
+            and:[ default isDirectory ]])
+        ifFalse:[
+            default := nil.
+        ].
+
+        importDirectory := Dialog
+                            requestDirectoryName:(resources
+                                                    string:'Import "%1" from Directory:'
+                                                    with:pkg)
+                            default:default.
+        importDirectory isEmptyOrNil ifTrue:[
+            ^ self
+        ].
+        importDirectory := importDirectory asFilename pathName asFilename.
     ] do:[
-	sourceCodeManager isNil ifTrue:[ SourceCodeManagerError raise ].
-	(sourceCodeManager checkForExistingModule:module) ifFalse:[
-	    self warn:(resources string:'No module "%1" in the repository.' with:module).
-	    ^ self.
-	].
-	checkedOutPackageDir notNil ifTrue:[
-	    (sourceCodeManager checkForExistingModule:module directory:checkedOutPackageDir) ifFalse:[
-		self warn:(resources string:'No package "%1" in the repository (but the module "%2" exists).' with:checkedOutPackageDir with:module).
-		^ self
-	    ]
-	].
+        sourceCodeManager isNil ifTrue:[ SourceCodeManagerError raise ].
+        (sourceCodeManager checkForExistingModule:module) ifFalse:[
+            self warn:(resources string:'No module "%1" in the repository.' with:module).
+            ^ self.
+        ].
+        checkedOutPackageDir notNil ifTrue:[
+            (sourceCodeManager checkForExistingModule:module directory:checkedOutPackageDir) ifFalse:[
+                self warn:(resources string:'No package "%1" in the repository (but the module "%2" exists).' with:checkedOutPackageDir with:module).
+                ^ self
+            ]
+        ].
     ].
 
     "/ check out that module ...
     importFromDirectoryAction :=
-	[:tempDir |
-	    |filesThere skip|
-
-	    numImported := numSkipped := 0.
-	    tempDir asFilename withAllDirectoriesDo:[:eachDir |
-		|relDir theProject anyFound anyUnsavedClass|
-
-		( #( 'CVS' 'bitmaps' 'resources' ) includes:eachDir baseName)
-		ifFalse:[
-		    relDir := eachDir name.
-		    (relDir startsWith:tempDir name) ifTrue:[
-			relDir := relDir copyFrom:tempDir name size + 2.
-		    ] ifFalse:[
-			self halt:'mhmh - can this happen ?'.
-		    ].
-		    checkedOutPackageDir notNil ifTrue:[
-			relDir size > 0 ifTrue:[
-			    relDir := checkedOutPackageDir asFilename constructString:relDir
-			] ifFalse:[
-			    relDir := checkedOutPackageDir
-			]
-		    ].
-		    relDir := relDir copyReplaceAll:$\ with:$/.
-		    relDir size > 0 ifTrue:[
-			theProject := module , ':' , relDir
-		    ] ifFalse:[
-			theProject := module
-		    ].
-
-		    skip := false.
-
-		    (checkedOutPackageDir isNil and:[package notNil]) ifTrue:[
-			skip := (package ~= (relDir , '/*') ) and:[ (package match:relDir) not ].
-		    ].
-		    anyFound := false.
-		    skip ifTrue:[
-			numSkipped := numSkipped + 1.
-		    ] ifFalse:[
-			Transcript showCR:('processing ' , relDir , '...').
-
-			filesThere := eachDir directoryContents select:[:eachFile | eachFile asFilename hasSuffix:'st'].
-			filesThere isEmpty ifTrue:[
-			    Transcript showCR:(eachDir pathName , ': no smalltalk files in package.').
-			] ifFalse:[
-			    anyFound := true.
-			    "/ cannot simply fileIn that stuff (because of load order)
-			    "/ instead, create a change set containing all class definitions,
-			    "/ and define them first ...
-			    filePerClassDefintion := Dictionary new.
-			    classDefs := ChangeSet new.
-			    filesThere do:[:eachSTFile |
-				|s classDefinitions chgSet|
-
-				s := (eachDir asFilename construct:eachSTFile) readStream.
-				chgSet := ChangeSet fromStream:s.
-				s close.
-				classDefinitions := chgSet select:[:change | change isClassDefinitionChange and:[change isPrivateClassDefinitionChange not]].
-				classDefinitions do:[:def | filePerClassDefintion at:def put:eachSTFile].
-				classDefs addAll:classDefinitions.
-			    ].
-
-			    "/ now, install ...
-			    classDefs do:[:eachClassDefinition |
-				|cls oldPackage|
-
-				eachClassDefinition package:theProject.
-				eachClassDefinition installAsAutoloadedClassIfPublicWithFilename:(filePerClassDefintion at:eachClassDefinition).
-				(cls := eachClassDefinition changeClass) notNil ifTrue:[
-				    (oldPackage := cls package) ~= theProject ifTrue:[
-					(Dialog confirm:('There is already a class named "%1" in the "%2"-pacakge.\\Move it to the "%3"-package?' withCRs
-						    bindWith:cls name allBold
-						    with:oldPackage allBold
-						    with:theProject allBold)) ifTrue:[
-					    cls package:theProject.
-					    cls instAndClassMethodsDo:[:m | m package = oldPackage ifTrue:[ m package:theProject]].
-					]
-				    ].
-				].
-			    ].
-
-			    doLoadClasses ifTrue:[
-
-				anyUnsavedClass := classDefs
-						    contains:[:someClassDefinition |
-							|cls|
-
-							((cls := someClassDefinition changeClass) notNil
-							and:[cls isLoaded
-							and:[ChangeSet current includesChangeForClassOrMetaclass:cls]])
-						    ].
-				anyUnsavedClass ifTrue:[
-				    (Dialog
-					confirm:'There is at least one unsaved class (changed but not yet checked in) in the project.\\Load (i.e. overwrite) ?' withCRs)
-				    ifFalse:[ AbortSignal raise ].
-				].
-
-				filesThere do:[:eachSTFile |
-				    Transcript showCR:('  loading ' , (eachDir asFilename constructString:eachSTFile) , '...').
-				    self activityNotification:('loading ',eachSTFile,'...').
-				    Class packageQuerySignal answer:theProject do:[
-					Smalltalk fileIn:(eachDir asFilename construct:eachSTFile).
-				    ]
-				].
-				numImported := numImported + 1.
-			    ].
-			].
-		    ].
-		    (anyFound and:[theProject notNil]) ifTrue:[
-			self projectListApp addAdditionalProject:theProject.
-		    ]
-		]
-	    ]
-	].
+        [:tempDir |
+            |filesThere skip|
+
+            numImported := numSkipped := 0.
+            tempDir asFilename withAllDirectoriesDo:[:eachDir |
+                |relDir theProject anyFound anyUnsavedClass|
+
+                ( #( 'CVS' 'bitmaps' 'resources' ) includes:eachDir baseName)
+                ifFalse:[
+                    relDir := eachDir name.
+                    (relDir startsWith:tempDir name) ifTrue:[
+                        relDir := relDir copyFrom:tempDir name size + 2.
+                    ] ifFalse:[
+                        self halt:'mhmh - can this happen ?'.
+                    ].
+                    checkedOutPackageDir notNil ifTrue:[
+                        relDir size > 0 ifTrue:[
+                            relDir := checkedOutPackageDir asFilename constructString:relDir
+                        ] ifFalse:[
+                            relDir := checkedOutPackageDir
+                        ]
+                    ].
+                    relDir := relDir asUnixFilenameString.
+                    relDir size > 0 ifTrue:[
+                        theProject := module , ':' , relDir
+                    ] ifFalse:[
+                        theProject := module
+                    ].
+
+                    skip := false.
+
+                    (checkedOutPackageDir isNil and:[package notNil]) ifTrue:[
+                        skip := (package ~= (relDir , '/*') ) and:[ (package match:relDir) not ].
+                    ].
+                    anyFound := false.
+                    skip ifTrue:[
+                        numSkipped := numSkipped + 1.
+                    ] ifFalse:[
+                        Transcript showCR:('processing ' , relDir , '...').
+
+                        filesThere := eachDir directoryContents select:[:eachFile | eachFile asFilename hasSuffix:'st'].
+                        filesThere isEmpty ifTrue:[
+                            Transcript showCR:(eachDir pathName , ': no smalltalk files in package.').
+                        ] ifFalse:[
+                            anyFound := true.
+                            "/ cannot simply fileIn that stuff (because of load order)
+                            "/ instead, create a change set containing all class definitions,
+                            "/ and define them first ...
+                            filePerClassDefintion := Dictionary new.
+                            classDefs := ChangeSet new.
+                            filesThere do:[:eachSTFile |
+                                |s classDefinitions chgSet|
+
+                                s := (eachDir asFilename construct:eachSTFile) readStream.
+                                chgSet := ChangeSet fromStream:s.
+                                s close.
+                                classDefinitions := chgSet select:[:change | change isClassDefinitionChange and:[change isPrivateClassDefinitionChange not]].
+                                classDefinitions do:[:def | filePerClassDefintion at:def put:eachSTFile].
+                                classDefs addAll:classDefinitions.
+                            ].
+
+                            "/ now, install ...
+                            classDefs do:[:eachClassDefinition |
+                                |cls oldPackage|
+
+                                eachClassDefinition package:theProject.
+                                eachClassDefinition installAsAutoloadedClassIfPublicWithFilename:(filePerClassDefintion at:eachClassDefinition).
+                                (cls := eachClassDefinition changeClass) notNil ifTrue:[
+                                    (oldPackage := cls package) ~= theProject ifTrue:[
+                                        (Dialog confirm:('There is already a class named "%1" in the "%2"-pacakge.\\Move it to the "%3"-package?' withCRs
+                                                    bindWith:cls name allBold
+                                                    with:oldPackage allBold
+                                                    with:theProject allBold)) ifTrue:[
+                                            cls package:theProject.
+                                            cls instAndClassMethodsDo:[:m | m package = oldPackage ifTrue:[ m package:theProject]].
+                                        ]
+                                    ].
+                                ].
+                            ].
+
+                            doLoadClasses ifTrue:[
+
+                                anyUnsavedClass := classDefs
+                                                    contains:[:someClassDefinition |
+                                                        |cls|
+
+                                                        ((cls := someClassDefinition changeClass) notNil
+                                                        and:[cls isLoaded
+                                                        and:[ChangeSet current includesChangeForClassOrMetaclass:cls]])
+                                                    ].
+                                anyUnsavedClass ifTrue:[
+                                    (Dialog
+                                        confirm:'There is at least one unsaved class (changed but not yet checked in) in the project.\\Load (i.e. overwrite) ?' withCRs)
+                                    ifFalse:[ AbortSignal raise ].
+                                ].
+
+                                filesThere do:[:eachSTFile |
+                                    Transcript showCR:('  loading ' , (eachDir asFilename constructString:eachSTFile) , '...').
+                                    self activityNotification:('loading ',eachSTFile,'...').
+                                    Class packageQuerySignal answer:theProject do:[
+                                        Smalltalk fileIn:(eachDir asFilename construct:eachSTFile).
+                                    ]
+                                ].
+                                numImported := numImported + 1.
+                            ].
+                        ].
+                    ].
+                    (anyFound and:[theProject notNil]) ifTrue:[
+                        self projectListApp addAdditionalProject:theProject.
+                    ]
+                ]
+            ]
+        ].
 
     importFromFilesystem ifTrue:[
-	importFromDirectoryAction value:importDirectory
-    ] ifFalse:[
-	"/ check out that module ...
-	SourceCodeManagerError handle:[:ex |
-	    Dialog warn:ex description
-	] do:[
-	    sourceCodeManager
-		checkoutModule:module
-		directory:checkedOutPackageDir
-		andDo:importFromDirectoryAction.
-	].
+        importFromDirectoryAction value:importDirectory
+    ] ifFalse:[
+        "/ check out that module ...
+        SourceCodeManagerError handle:[:ex |
+            Dialog warn:ex description
+        ] do:[
+            sourceCodeManager
+                checkoutModule:module
+                directory:checkedOutPackageDir
+                andDo:importFromDirectoryAction.
+        ].
     ].
 
     numImported == 0 ifTrue:[
-	numSkipped ~~ 0 ifTrue:[
-	    (package endsWith:'*') ifTrue:[
-		self information:('Nothing imported. Notice:\You may want to try ''' ,
-				 (package copyButLast:2) , ''' (i.e. not the matching sub-packages).') withCRs
-	    ] ifFalse:[
-		self information:'Nothing imported.'
-	    ]
-	].
+        numSkipped ~~ 0 ifTrue:[
+            (package endsWith:'*') ifTrue:[
+                self information:('Nothing imported. Notice:\You may want to try ''' ,
+                                 (package copyButLast:2) , ''' (i.e. not the matching sub-packages).') withCRs
+            ] ifFalse:[
+                self information:'Nothing imported.'
+            ]
+        ].
     ].
     LastImportedPackage := nil.
 
@@ -41129,7 +42429,7 @@
 
     |mgr|
 
-    mgr := Smalltalk at:sourceCodeManagerClassName asSymbol.
+    mgr := Smalltalk classNamed:sourceCodeManagerClassName.
     self assert:(mgr notNil).
     self projectMenuImport:true usingManager:mgr
 
@@ -41141,7 +42441,7 @@
 
     |mgr|
 
-    mgr := Smalltalk at:sourceCodeManagerClassName asSymbol.
+    mgr := Smalltalk classNamed:sourceCodeManagerClassName.
     self assert:(mgr notNil).
     self projectMenuImport:false usingManager:mgr
 
@@ -41152,49 +42452,57 @@
     |projects projectsString alreadyWarned|
 
     LastLoadedPackages isNil ifTrue:[
-	LastLoadedPackages := OrderedCollection new.
+        LastLoadedPackages := OrderedCollection new.
     ].
 
     projects := self selectedProjects value.
     projects isEmptyOrNil ifTrue:[
-	projectsString := Dialog
-			    request:'Load which package(s):'
-			    initialAnswer:projectsString
-			    list:LastLoadedPackages.
-	projectsString size == 0 ifTrue:[^  self].
-	projects := projectsString asCollectionOfWords.
+        NewLauncher notNil ifTrue:[
+            "/ use the >>much better<< Launcher-load-package dialog
+            NewLauncher openLoadPackageDialog.
+            ^ self.
+        ].
+
+        projectsString := Dialog
+                            request:'Load which package(s):'
+                            initialAnswer:projectsString
+                            list:LastLoadedPackages.
+        projectsString size == 0 ifTrue:[^  self].
+        projects := projectsString asCollectionOfWords.
     ].
 
     alreadyWarned := Set new.
 
     projects do:[:packageToLoad |
-	LastLoadedPackages remove:packageToLoad ifAbsent:nil.
-	LastLoadedPackages addFirst:packageToLoad.
-	LastLoadedPackages size > 20 ifTrue:[
-	    LastLoadedPackages removeLast.
-	].
-	(Smalltalk loadPackage:packageToLoad) ifFalse:[
-	    Dialog warn:'Failed to load package: ',packageToLoad.
-	    alreadyWarned add:packageToLoad.
-	]
+        LastLoadedPackages remove:packageToLoad ifAbsent:nil.
+        LastLoadedPackages addFirst:packageToLoad.
+        LastLoadedPackages size > 20 ifTrue:[
+            LastLoadedPackages removeLast.
+        ].
+        [
+            Smalltalk loadPackage:packageToLoad.
+        ] on:PackageLoadError do:[:ex|
+            Dialog warn:'Failed to load package: ', packageToLoad.
+            alreadyWarned add:packageToLoad.
+        ]
     ].
 
     "/ any autoloaded?
     projects do:[:packageToLoad |
-	|dfn|
-
-	dfn := packageToLoad asPackageId projectDefinitionClass.
-	dfn isNil ifTrue:[
-	    (alreadyWarned includes:packageToLoad) ifFalse:[
-		Dialog warn:'Not loaded:: ',packageToLoad
-	    ].
-	] ifFalse:[
-	    dfn hasAllClassesFullyLoaded ifFalse:[
-		(Dialog confirm:'Load autoloaded classes now?') ifTrue:[
-		    dfn loadAllAutoloadedClasses
-		]
-	    ]
-	].
+        |dfn|
+
+        dfn := packageToLoad asPackageId projectDefinitionClass.
+        dfn isNil ifTrue:[
+            (alreadyWarned includes:packageToLoad) ifFalse:[
+                Dialog warn:'Not loaded:: ',packageToLoad
+            ].
+        ] ifFalse:[
+            dfn hasAllClassesFullyLoaded ifFalse:[
+                (Dialog confirm:'Load autoloaded classes now?') ifTrue:[
+                    dfn loadAllAutoloadedClasses
+                ]
+            ]
+        ].
     ].
 
     "Modified: / 14-09-2006 / 17:38:00 / cg"
@@ -41204,8 +42512,8 @@
     "fileOut selected classes (chunk format) and eMail to someone"
 
     self
-	mailClasses:self selectedProjectClasses
-	subject:'Project Source from Browser'
+        mailClasses:self selectedProjectClasses
+        subject:'Project Source from Browser'
 
     "Modified: / 20-09-2007 / 15:03:00 / cg"
 !
@@ -41217,10 +42525,10 @@
 
     theProject := Project projectWithId:id.
     theProject isNil ifTrue:[
-	"/ create it
-	theProject := Project new.
-	theProject name:id.
-	theProject package:id.
+        "/ create it
+        theProject := Project new.
+        theProject name:id.
+        theProject package:id.
     ].
 
     Project current:theProject.
@@ -41247,27 +42555,27 @@
     resultStream := WriteStream on:String new.
 
     self
-	projectMenuWithAllClassesLoadedDo:[:module :package :classesInProject |
-	    |moduleAndPackage text metrics allClasses|
-
-	    moduleAndPackage := module , ':' , package.
-	    self busyLabel:'Computing metrics for ' , moduleAndPackage , '...'.
-	    Transcript showCR:'Computing metrics for ' , moduleAndPackage , '...'.
-
-	    allClasses := OrderedCollection new.
-	    allClasses addAll:classesInProject.
-	    classesInProject do:[:eachClass |
-		allClasses addAll:(eachClass allPrivateClasses).
-	    ].
-
-	    metrics := OOM::MetricsSummaryGenerator new.
-	    metrics computeMetricsForClasses:allClasses.
-	    text := metrics generateSummaryReport.
-
-	    resultStream nextPutLine:'Package: ', moduleAndPackage.
-	    resultStream cr.
-	    resultStream nextPutLine:text.
-	].
+        projectMenuWithAllClassesLoadedDo:[:module :package :classesInProject |
+            |moduleAndPackage text metrics allClasses|
+
+            moduleAndPackage := module , ':' , package.
+            self busyLabel:'Computing metrics for ' , moduleAndPackage , '...'.
+            Transcript showCR:'Computing metrics for ' , moduleAndPackage , '...'.
+
+            allClasses := OrderedCollection new.
+            allClasses addAll:classesInProject.
+            classesInProject do:[:eachClass |
+                allClasses addAll:(eachClass allPrivateClasses).
+            ].
+
+            metrics := OOM::MetricsSummaryGenerator new.
+            metrics computeMetricsForClasses:allClasses.
+            text := metrics generateSummaryReport.
+
+            resultStream nextPutLine:'Package: ', moduleAndPackage.
+            resultStream cr.
+            resultStream nextPutLine:text.
+        ].
 
     codeView contents:(resultStream contents).
 
@@ -41281,24 +42589,24 @@
 
     projectDefinitionClass := self projectDefinitionDialogFor:nil.
     projectDefinitionClass isNil ifTrue:[
-	^ self
+        ^ self
     ].
 
     package := projectDefinitionClass package.
     Class packageQuerySignal answer:package
     do:[
-	projectDefinitionClass compileDescriptionMethods.
-	self selectClass:projectDefinitionClass.
-	category := projectDefinitionClass name copyReplaceAll:$_ with:$-.
-
-	projectDefinitionClass isApplicationDefinition ifTrue:[
-	    appClassName := Dialog
-				request:(resources stringWithCRs:'Create initial application class?\(Enter name or cancel)').
-	    appClassName notEmptyOrNil ifTrue:[
-		(appClass := environment classNamed:appClassName) notNil ifTrue:[
-		    Dialog warn:(resources stringWithCRs:'Application class already exists\(in "%1")' with:appClass package).
-		] ifFalse:[
-		    theCode := '
+        projectDefinitionClass compileDescriptionMethods.
+        self selectClass:projectDefinitionClass.
+        category := projectDefinitionClass name copyReplaceAll:$_ with:$-.
+
+        projectDefinitionClass isApplicationDefinition ifTrue:[
+            appClassName := Dialog
+                                request:(resources stringWithCRs:'Create initial application class?\(Enter name or cancel)').
+            appClassName notEmptyOrNil ifTrue:[
+                (appClass := environment classNamed:appClassName) notNil ifTrue:[
+                    Dialog warn:(resources stringWithCRs:'Application class already exists\(in "%1")' with:appClass package).
+                ] ifFalse:[
+                    theCode := '
 ApplicationModel subclass: #''%1''
     instanceVariableNames:'' ''
     classVariableNames:'' ''
@@ -41306,36 +42614,37 @@
     category:''%2''
 '                   bindWith:appClassName with:category.
 
-		    self canUseRefactoringSupport ifTrue:[
-			change := AddClassChange definition: theCode.
-			change name:('Create application class %1' bindWith:appClassName).
-			RefactoryChangeManager performChange:change
-		    ] ifFalse:[
-			self
-			    doAcceptClassDefinition:theCode
-			    usingCompiler:Compiler.
-		    ].
-		    appClass := environment classNamed:appClassName.
-		    appClass package:package.
-		    self classMenuGenerateApplicationCodeForClasses:{ appClass }.
-		    appClass instAndClassMethodsDo:[:m | m package:package].
-		].
-	    ] ifFalse:[
-		appClassName := nil "/ for xxx below
-	    ].
-	    defaultStartupClassName := (appClassName ? 'xxx'),'Start'.
-	    (environment classNamed:defaultStartupClassName) notNil ifTrue:[
-		defaultStartupClassName := nil
-	    ].
-	    startupClassName := Dialog
-				    request:(resources
-					stringWithCRs:'Create startup class (e.g. main)?\(Enter name or cancel)')
-				    initialAnswer:defaultStartupClassName.
-	    startupClassName notEmptyOrNil ifTrue:[
-		(startupClass := environment classNamed:startupClassName) notNil ifTrue:[
-		    Dialog warn:(resources stringWithCRs:'Startup class already exists\(in "%1")' with:startupClass package).
-		] ifFalse:[
-		    theCode := '
+                    self canUseRefactoringSupport ifTrue:[
+                        change := AddClassChange definition: theCode.
+                        "/ change changeClassName:appClassName asSymbol.
+                        change name:('Create application class %1' bindWith:appClassName).
+                        RefactoryChangeManager performChange:change
+                    ] ifFalse:[
+                        self
+                            doAcceptClassDefinition:theCode
+                            usingCompiler:Compiler.
+                    ].
+                    appClass := environment classNamed:appClassName.
+                    appClass package:package.
+                    self classMenuGenerateApplicationCodeForClasses:{ appClass }.
+                    appClass instAndClassMethodsDo:[:m | m package:package].
+                ].
+            ] ifFalse:[
+                appClassName := nil "/ for xxx below
+            ].
+            defaultStartupClassName := (appClassName ? 'xxx'),'Start'.
+            (environment classNamed:defaultStartupClassName) notNil ifTrue:[
+                defaultStartupClassName := nil
+            ].
+            startupClassName := Dialog
+                                    request:(resources
+                                        stringWithCRs:'Create startup class (e.g. main)?\(Enter name or cancel)')
+                                    initialAnswer:defaultStartupClassName.
+            startupClassName notEmptyOrNil ifTrue:[
+                (startupClass := environment classNamed:startupClassName) notNil ifTrue:[
+                    Dialog warn:(resources stringWithCRs:'Startup class already exists\(in "%1")' with:startupClass package).
+                ] ifFalse:[
+                    theCode := '
 StandaloneStartup subclass: #''%1''
     instanceVariableNames:'' ''
     classVariableNames:'' ''
@@ -41343,40 +42652,45 @@
     category:''%2''
 '                           bindWith:startupClassName with:category.
 
-		    self canUseRefactoringSupport ifTrue:[
-			change := AddClassChange definition: theCode.
-			change name:('Create startup class %1' bindWith:startupClassName).
-			RefactoryChangeManager performChange:change
-		    ] ifFalse:[
-			self doAcceptClassDefinition:theCode usingCompiler:Compiler.
-		    ].
-		    (startupClass := environment classNamed:startupClassName) notNil ifTrue:[
-			startupClass package:package.
-		    ]
-		].
-
-		"/ update the classList, again
-		projectDefinitionClass compileDescriptionMethods.
-		"/ generate startupClass code
-
-		startupClass notNil ifTrue:[
-		    SmalltalkCodeGeneratorTool
-			    compile:(projectDefinitionClass startupClassName_codeFor:(startupClass name))
-			    forClass:projectDefinitionClass theMetaclass
-			    inCategory:'description - startup'.
-
-		    self classMenuGenerateApplicationCodeForClasses:{ startupClass }.
-		    startupClass instAndClassMethodsDo:[:m | m package:package].
-		].
-	    ].
-	    self selectClass:(appClass ? startupClass ? projectDefinitionClass).
-	]
+                    self canUseRefactoringSupport ifTrue:[
+                        change := AddClassChange definition: theCode.
+                        "/ change changeClassName:startupClassName asSymbol.
+                        change name:('Create startup class %1' bindWith:startupClassName).
+                        RefactoryChangeManager performChange:change
+                    ] ifFalse:[
+                        self doAcceptClassDefinition:theCode usingCompiler:Compiler.
+                    ].
+                    (startupClass := environment classNamed:startupClassName) notNil ifTrue:[
+                        startupClass package:package.
+                    ]
+                ].
+
+                "/ update the classList, again
+                projectDefinitionClass compileDescriptionMethods.
+                "/ generate startupClass code
+
+                startupClass notNil ifTrue:[
+                    SmalltalkCodeGeneratorTool
+                            compile:(projectDefinitionClass startupClassName_codeFor:(startupClass name))
+                            forClass:projectDefinitionClass theMetaclass
+                            inCategory:'description - startup'.
+
+                    self classMenuGenerateApplicationCodeForClasses:{ startupClass }.
+                    startupClass instAndClassMethodsDo:[:m | m package:package].
+                ].
+            ].
+            self selectClass:(appClass ? startupClass ? projectDefinitionClass).
+        ]
     ].
 
     "Modified: / 23-07-2012 / 13:44:04 / cg"
     "Modified: / 04-09-2013 / 17:46:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+projectMenuOpenResourceFileEditor
+    Tools::InternationalLanguageTranslationEditor openOnPackage:self theSingleSelectedProject
+!
+
 projectMenuProperties
     |project defClass|
 
@@ -41384,22 +42698,22 @@
     project isNil ifTrue:[^ self ].
 
     project asPackageId directory isEmptyOrNil ifTrue:[
-	Dialog warn:(resources
-			    stringWithCRs:'"%1" is a topLevel module identifier.\\Real packages are required to consist of module:directory (i.e. %1:xxx).\Please create a package below this module first'
-			    with:(ProjectDefinition initialClassNameForDefinitionOf:project)).
+        Dialog warn:(resources
+                            stringWithCRs:'"%1" is a topLevel module identifier.\\Real packages are required to consist of module:directory (i.e. %1:xxx).\Please create a package below this module first'
+                            with:(ProjectDefinition projectDefinitionClassNameForDefinitionOf:project)).
     ].
 
     defClass := ProjectDefinition definitionClassForPackage:project.
     defClass isNil ifTrue:[
-	Dialog warn:(resources
-			    string:'Missing ProjectDefinition class: %1'
-			    with:(ProjectDefinition initialClassNameForDefinitionOf:project)).
-	^ self
+        Dialog warn:(resources
+                            string:'Missing ProjectDefinition class: %1'
+                            with:(ProjectDefinition projectDefinitionClassNameForDefinitionOf:project)).
+        ^ self
     ].
 
     Tools::ProjectDefinitionEditor new
-	definitionClass:defClass;
-	open
+        definitionClass:defClass;
+        open
 
     "Modified: / 20-01-2012 / 16:36:32 / cg"
 !
@@ -41408,21 +42722,21 @@
     |selectedProjects allIncluded projectDefinitionClasses|
 
     self selectedProjectClasses do:[:eachClass |
-	self recompileClass:eachClass
+        self recompileClass:eachClass
     ].
 
     "/ do not forget extensions
     selectedProjects := self selectedProjects value.
     allIncluded := selectedProjects includes:(BrowserList nameListEntryForALL).
     allIncluded ifTrue:[
-	projectDefinitionClasses :=
-	    ProjectDefinition withAllSubclasses reject:[:c | c isAbstract].
-    ] ifFalse:[
-	projectDefinitionClasses :=
-	    selectedProjects collect:[:p | p asPackageId projectDefinitionClass].
+        projectDefinitionClasses :=
+            ProjectDefinition withAllSubclasses reject:[:c | c isAbstract].
+    ] ifFalse:[
+        projectDefinitionClasses :=
+            selectedProjects collect:[:p | p asPackageId projectDefinitionClass].
     ].
     projectDefinitionClasses do:[:each |
-	each extensionMethods do:[:mthd | mthd mclass recompile:mthd selector].
+        each extensionMethods do:[:mthd | mthd mclass recompile:mthd selector].
     ].
 
     "Created: / 31-05-2012 / 12:03:19 / cg"
@@ -41430,7 +42744,7 @@
 
 projectMenuRecompileInstrumented
     self selectedProjectClasses do:[:eachClass |
-	self recompileClassWithInstrumentation:eachClass
+        self recompileClassWithInstrumentation:eachClass
     ].
     self infoLabelHolder value:nil.
     self askForGlobalCoverageRecording.
@@ -41450,14 +42764,14 @@
 
 projectMenuRemove
     (self selectedProjects value includes:(BrowserList nameListEntryForALL)) ifTrue:[
-	self warn:'I won''t do that !!'.
-	^ self
+        self warn:'I won''t do that !!'.
+        ^ self
     ].
 
     self withWaitCursorDo:[
-	self selectedProjectsDo:[:packageToRemove |
-	    self projectMenuRemoveProject:packageToRemove
-	]
+        self selectedProjectsDo:[:packageToRemove |
+            self projectMenuRemoveProject:packageToRemove
+        ]
     ]
 !
 
@@ -41472,60 +42786,60 @@
     "/ classes ...
     "/ ... and individual methods (extensions)
     environment allClassesDo:[:aClass |
-	(aClass package = projectToRemove) ifTrue:[
-	    classesToRemove add:aClass.
-	] ifFalse:[
-	    aClass instAndClassSelectorsAndMethodsDo:[:sel :mthd |
-		(mthd package = projectToRemove) ifTrue:[
-		    methodsToRemove add:mthd
-		]
-	    ].
-	]
+        (aClass package = projectToRemove) ifTrue:[
+            classesToRemove add:aClass.
+        ] ifFalse:[
+            aClass instAndClassSelectorsAndMethodsDo:[:sel :mthd |
+                (mthd package = projectToRemove) ifTrue:[
+                    methodsToRemove add:mthd
+                ]
+            ].
+        ]
     ].
 
     msg := 'Remove project ''%1'' with\'.
     classesToRemove size > 0 ifTrue:[
-	classesToRemove size == 1 ifTrue:[
-	    msg := msg , '1 class'.
-	] ifFalse:[
-	    msg := msg , '%2 classes'.
-	].
-	methodsToRemove size > 0 ifTrue:[
-	    msg := msg , ' and '
-	]
+        classesToRemove size == 1 ifTrue:[
+            msg := msg , '1 class'.
+        ] ifFalse:[
+            msg := msg , '%2 classes'.
+        ].
+        methodsToRemove size > 0 ifTrue:[
+            msg := msg , ' and '
+        ]
     ].
     methodsToRemove size > 0 ifTrue:[
-	methodsToRemove size == 1 ifTrue:[
-	    msg := msg , '1 method extension in another class'.
-	] ifFalse:[
-	    msg := msg , '%3 method extensions in other classes'.
-	]
+        methodsToRemove size == 1 ifTrue:[
+            msg := msg , '1 method extension in another class'.
+        ] ifFalse:[
+            msg := msg , '%3 method extensions in other classes'.
+        ]
     ].
     msg := msg , '.'.
 
     (classesToRemove contains:[:someClass | someClass wasAutoloaded]) ifTrue:[
-	msg := msg , '\\Notice: this is a real remove (no autoload stubs will remain)'.
+        msg := msg , '\\Notice: this is a real remove (no autoload stubs will remain)'.
     ].
 
     msg := msg
-	    bindWith:projectToRemove string allBold
-	    with:classesToRemove size
-	    with:methodsToRemove size.
+            bindWith:projectToRemove string allBold
+            with:classesToRemove size
+            with:methodsToRemove size.
     msg := msg withCRs.
 
     (classesToRemove size > 0
     or:[methodsToRemove size > 0]) ifTrue:[
-	(Dialog confirm:msg) ifFalse:[^ self].
+        (Dialog confirm:msg) ifFalse:[^ self].
     ].
 
     self withWaitCursorDo:[
-	methodsToRemove do:[:eachMethod |
-	    eachMethod mclass removeSelector:eachMethod selector.
-	].
-	classesToRemove do:[:eachClass |
-	    eachClass removeFromSystem.
-	].
-	self projectListApp removeAdditionalProjects:(Array with:projectToRemove).
+        methodsToRemove do:[:eachMethod |
+            eachMethod mclass removeSelector:eachMethod selector.
+        ].
+        classesToRemove do:[:eachClass |
+            eachClass removeFromSystem.
+        ].
+        self projectListApp removeAdditionalProjects:(Array with:projectToRemove).
     ].
     self normalLabel.
 !
@@ -41551,7 +42865,7 @@
 projectMenuRepositoryHistoryUsingManagerNamed: sourceCodeManagerClassName
     |mgr|
 
-    mgr := Smalltalk at:sourceCodeManagerClassName asSymbol.
+    mgr := Smalltalk classNamed:sourceCodeManagerClassName.
     self assert:(mgr notNil).
     self projectMenuRepositoryHistoryUsingManager: mgr
 !
@@ -41564,37 +42878,43 @@
     self information:'Sorry - this functionality is not yet implemented'
 !
 
+projectMenuRewrite
+    MethodRewriter new
+        projects: self selectedProjectsValue;
+        open
+!
+
 projectMenuSetTagOfBuildSupportFilesUsingManager:aManager
     |tag|
 
     SourceCodeManagerError handle:[:ex |
-	Dialog
-	    warn:(resources
-			stringWithCRs:'CVS Error:\\%1'
-			with:ex description).
+        Dialog
+            warn:(resources
+                        stringWithCRs:'CVS Error:\\%1'
+                        with:ex description).
     ] do:[
-	self selectedProjectsDo:[:prj |
-	    |packageId defClass pathes|
-
-	    packageId := prj asPackageId.
-	    defClass := ProjectDefinition definitionClassForPackage:packageId createIfAbsent:false.
-
-	    tag := self askForTagForClasses:{ defClass }.
-	    tag isEmptyOrNil ifTrue:[^ self ].
-
-	    self withWaitCursorDo: [
-		pathes := OrderedCollection new.
-		defClass forEachFileNameAndGeneratedContentsDo:[:fileName :fileContents |
-		    pathes add:(packageId pathRelativeToTopDirectory,'/',fileName).  "/ always unix names
-		].
-
-		aManager
-		    setSymbolicName:tag
-		    revision:nil
-		    overWrite:true
-		    pathes:pathes
-	    ].
-	]
+        self selectedProjectsDo:[:prj |
+            |packageId defClass pathes|
+
+            packageId := prj asPackageId.
+            defClass := ProjectDefinition definitionClassForPackage:packageId createIfAbsent:false.
+
+            tag := self askForTagForClasses:{ defClass }.
+            tag isEmptyOrNil ifTrue:[^ self ].
+
+            self withWaitCursorDo: [
+                pathes := OrderedCollection new.
+                defClass forEachFileNameAndGeneratedContentsDo:[:fileName :fileContents |
+                    pathes add:(packageId pathRelativeToTopDirectory,'/',fileName).  "/ always unix names
+                ].
+
+                aManager
+                    setSymbolicName:tag
+                    revision:nil
+                    overWrite:true
+                    pathes:pathes
+            ].
+        ]
     ].
 
     "Created: / 29-07-2013 / 09:49:58 / cg"
@@ -41603,7 +42923,7 @@
 projectMenuSetTagOfBuildSupportFilesUsingManagerNamed: sourceCodeManagerClassName
     |mgr|
 
-    mgr := Smalltalk at:sourceCodeManagerClassName asSymbol.
+    mgr := Smalltalk classNamed:sourceCodeManagerClassName.
     self assert:(mgr notNil).
     self projectMenuSetTagOfBuildSupportFilesUsingManager: mgr
 !
@@ -41615,13 +42935,13 @@
     tag isEmptyOrNil ifTrue:[^ self ].
 
     self withWaitCursorDo: [
-	allClasses := OrderedCollection new.
-	self selectedProjectsDo:[:packageToTag |
-	    allClasses addAll:((Smalltalk allClassesInPackage:packageToTag)
-				    asOrderedCollection reject:[:cls | cls isPrivate]).
-	].
-
-	aManager utilities tagClasses:allClasses as:tag.
+        allClasses := OrderedCollection new.
+        self selectedProjectsDo:[:packageToTag |
+            allClasses addAll:((Smalltalk allClassesInPackage:packageToTag)
+                                    asOrderedCollection reject:[:cls | cls isPrivate]).
+        ].
+
+        aManager utilities tagClasses:allClasses as:tag.
     ]
 
     "Created: / 12-09-2006 / 13:25:09 / cg"
@@ -41632,7 +42952,7 @@
 projectMenuSetTagUsingManagerNamed: sourceCodeManagerClassName
     |mgr|
 
-    mgr := Smalltalk at:sourceCodeManagerClassName asSymbol.
+    mgr := Smalltalk classNamed:sourceCodeManagerClassName.
     self assert:(mgr notNil).
     self projectMenuSetTagUsingManager: mgr
 !
@@ -41643,89 +42963,89 @@
     |package defClass newFile oldFile editor differ theFile missingName|
 
     self hasProjectDefinitionSelected ifTrue:[
-	self hasSingleClassSelected ifTrue:[
-	    defClass := self theSingleSelectedClass
-	].
-	defClass isNil ifTrue:[
-	    self warn:(resources string:'Please select a single project definition class').
-	    ^ self.
-	].
-	defClass := defClass theNonMetaclass.
-	package := defClass package.
-    ] ifFalse:[
-	self hasSingleProjectSelected ifTrue:[
-	    package := self theSingleSelectedProject.
-	    defClass := ProjectDefinition definitionClassForPackage:package.
-	    defClass isNil ifTrue:[
-		self warn:(resources string:'Missing project definition class (%1)\for package: %2.'
-			with:(ProjectDefinition initialClassNameForDefinitionOf:package)
-			with:package allBold).
-		^ self.
-	    ].
-	]
+        self hasSingleClassSelected ifTrue:[
+            defClass := self theSingleSelectedClass
+        ].
+        defClass isNil ifTrue:[
+            self warn:(resources string:'Please select a single project definition class').
+            ^ self.
+        ].
+        defClass := defClass theNonMetaclass.
+        package := defClass package.
+    ] ifFalse:[
+        self hasSingleProjectSelected ifTrue:[
+            package := self theSingleSelectedProject.
+            defClass := ProjectDefinition definitionClassForPackage:package.
+            defClass isNil ifTrue:[
+                self warn:(resources string:'Missing project definition class (%1)\for package: %2.'
+                        with:(ProjectDefinition projectDefinitionClassNameForDefinitionOf:package)
+                        with:package allBold).
+                ^ self.
+            ].
+        ]
     ].
 
     theFile := whichFile.
     theFile = 'lib.rc' ifTrue:[
-	theFile := defClass rcFilename.
+        theFile := defClass rcFilename.
     ].
     theFile = 'app.nsi' ifTrue:[
-	theFile := defClass nsiFilename.
+        theFile := defClass nsiFilename.
     ].
 
     (missingName := defClass allClassNames "compiled_classNames"
-	detect:[:aName |
-	    |cls|
-
-	    cls := environment at:aName asSymbol.
-	    cls isNil
-	]
-	ifNone:nil)
+        detect:[:aName |
+            |cls|
+
+            cls := environment at:aName asSymbol.
+            cls isNil
+        ]
+        ifNone:nil)
     notNil ifTrue:[
-	(Dialog confirm:(resources stringWithCRs:'Some class (%1) from the list of compiled classes is missing in the image!!\\Continue anyway ?'
-				    with:missingName))
-	ifFalse:[^ self ].
+        (Dialog confirm:(resources stringWithCRs:'Some class (%1) from the list of compiled classes is missing in the image!!\\Continue anyway ?'
+                                    with:missingName))
+        ifFalse:[^ self ].
     ].
 
     whichFile = 'abbrev.stc' ifTrue:[
-	(defClass compiled_classNames
-	    contains:[:aName |
-		|cls|
-
-		cls := environment at:aName asSymbol.
-		cls notNil and:[cls isLoaded not]
-	    ])
-	ifTrue:[
-	    (Dialog confirm:'Autoload missing class(es) ?\\Notice: generated abbrev.stc file is wrong if autoloaded classes are unloaded' withCRs) ifTrue:[
-		defClass compiled_classNames do:[:aName |
-		    (environment at:aName asSymbol) autoload
-		].
-	    ].
-	].
+        (defClass compiled_classNames
+            contains:[:aName |
+                |cls|
+
+                cls := environment at:aName asSymbol.
+                cls notNil and:[cls isLoaded not]
+            ])
+        ifTrue:[
+            (Dialog confirm:'Autoload missing class(es) ?\\Notice: generated abbrev.stc file is wrong if autoloaded classes are unloaded' withCRs) ifTrue:[
+                defClass compiled_classNames do:[:aName |
+                    (environment at:aName asSymbol) autoload
+                ].
+            ].
+        ].
     ].
 
     [
-	newFile := defClass generateFile:theFile.
+        newFile := defClass generateFile:theFile.
     ] on:Error do:[:ex|
-	self errorNotify:ex description.
-	^ self.
+        self errorNotify:ex description.
+        ^ self.
     ].
 
     SourceCodeManager notNil ifTrue:[
-	oldFile := SourceCodeManager
-			getFile:theFile
-			revision:#newest
-			directory:(package asPackageId directory)
-			module:(package asPackageId module).
+        oldFile := SourceCodeManager
+                        getFile:theFile
+                        revision:#newest
+                        directory:(package asPackageId directory)
+                        module:(package asPackageId module).
     ].
     oldFile isNil ifTrue:[
-	editor := EditTextView openOnModel:newFile.
-	editor topView label:(resources string:'Generated %1' with:theFile).
-    ] ifFalse:[
-	differ := DiffCodeView
-		openOn:oldFile label:(resources string:'Newest %1 in Repository' with:theFile)
-		and:newFile label:(resources string:'Generated %1' with:theFile)
-		title:(resources string:'Comparing %1' with:whichFile).
+        editor := EditTextView openOnModel:newFile.
+        editor topView label:(resources string:'Generated %1' with:theFile).
+    ] ifFalse:[
+        differ := DiffCodeView
+                openOn:oldFile label:(resources string:'Newest %1 in Repository' with:theFile)
+                and:newFile label:(resources string:'Generated %1' with:theFile)
+                title:(resources string:'Comparing %1' with:whichFile).
     ].
 
     "Created: / 29-08-2006 / 15:35:44 / cg"
@@ -41738,88 +43058,88 @@
     |package defClass newFile oldFile editor differ theFile missingName|
 
     self hasProjectDefinitionSelected ifTrue:[
-	self hasSingleClassSelected ifTrue:[
-	    defClass := self theSingleSelectedClass
-	].
-	defClass isNil ifTrue:[
-	    self warn:(resources string:'Please select a single project definition class').
-	    ^ self.
-	].
-	defClass := defClass theNonMetaclass.
-	package := defClass package.
-    ] ifFalse:[
-	self hasSingleProjectSelected ifTrue:[
-	    package := self theSingleSelectedProject.
-	    defClass := ProjectDefinition definitionClassForPackage:package.
-	    defClass isNil ifTrue:[
-		self warn:(resources string:'Missing project definition class (%1)\for package: %2.'
-			with:(ProjectDefinition initialClassNameForDefinitionOf:package)
-			with:package allBold).
-		^ self.
-	    ].
-	]
+        self hasSingleClassSelected ifTrue:[
+            defClass := self theSingleSelectedClass
+        ].
+        defClass isNil ifTrue:[
+            self warn:(resources string:'Please select a single project definition class').
+            ^ self.
+        ].
+        defClass := defClass theNonMetaclass.
+        package := defClass package.
+    ] ifFalse:[
+        self hasSingleProjectSelected ifTrue:[
+            package := self theSingleSelectedProject.
+            defClass := ProjectDefinition definitionClassForPackage:package.
+            defClass isNil ifTrue:[
+                self warn:(resources string:'Missing project definition class (%1)\for package: %2.'
+                        with:(ProjectDefinition projectDefinitionClassNameForDefinitionOf:package)
+                        with:package allBold).
+                ^ self.
+            ].
+        ]
     ].
 
     theFile := whichFile.
     theFile = 'lib.rc' ifTrue:[
-	theFile := defClass rcFilename.
+        theFile := defClass rcFilename.
     ].
     theFile = 'app.nsi' ifTrue:[
-	theFile := defClass nsiFilename.
+        theFile := defClass nsiFilename.
     ].
 
     (missingName := defClass allClassNames "compiled_classNames"
-	detect:[:aName |
-	    |cls|
-
-	    cls := environment at:aName asSymbol.
-	    cls isNil
-	]
-	ifNone:nil)
+        detect:[:aName |
+            |cls|
+
+            cls := environment at:aName asSymbol.
+            cls isNil
+        ]
+        ifNone:nil)
     notNil ifTrue:[
-	(Dialog confirm:(resources stringWithCRs:'Some class (%1) from the list of compiled classes is missing in the image!!\\Continue anyway ?'
-				    with:missingName))
-	ifFalse:[^ self ].
+        (Dialog confirm:(resources stringWithCRs:'Some class (%1) from the list of compiled classes is missing in the image!!\\Continue anyway ?'
+                                    with:missingName))
+        ifFalse:[^ self ].
     ].
 
     whichFile = 'abbrev.stc' ifTrue:[
-	(defClass compiled_classNames
-	    contains:[:aName |
-		|cls|
-
-		cls := environment at:aName asSymbol.
-		cls notNil and:[cls isLoaded not]
-	    ])
-	ifTrue:[
-	    (Dialog confirm:'Autoload missing class(es) ?\\Notice: generated abbrev.stc file is wrong if autoloaded classes are unloaded' withCRs) ifTrue:[
-		defClass compiled_classNames do:[:aName |
-		    (environment at:aName asSymbol) autoload
-		].
-	    ].
-	].
+        (defClass compiled_classNames
+            contains:[:aName |
+                |cls|
+
+                cls := environment at:aName asSymbol.
+                cls notNil and:[cls isLoaded not]
+            ])
+        ifTrue:[
+            (Dialog confirm:'Autoload missing class(es) ?\\Notice: generated abbrev.stc file is wrong if autoloaded classes are unloaded' withCRs) ifTrue:[
+                defClass compiled_classNames do:[:aName |
+                    (environment at:aName asSymbol) autoload
+                ].
+            ].
+        ].
     ].
 
     [
-	newFile := defClass generateFile:theFile.
+        newFile := defClass generateFile:theFile.
     ] on:Error do:[:ex|
-	self errorNotify:ex description.
-	^ self.
+        self errorNotify:ex description.
+        ^ self.
     ].
 
     manager notNil ifTrue:[
-	oldFile := manager
-			getFile:theFile
-			revision:#newest
-			directory:(package asPackageId directory)
-			module:(package asPackageId module).
+        oldFile := manager
+                        getFile:theFile
+                        revision:#newest
+                        directory:(package asPackageId directory)
+                        module:(package asPackageId module).
     ].
     oldFile isNil ifTrue:[
-	editor := EditTextView openOnModel:newFile.
-	editor topView label:(resources string:'Generated %1' with:theFile).
-    ] ifFalse:[
-	differ := DiffCodeView
-		openOn:oldFile label:(resources string:'Newest %1 in Repository' with:theFile)
-		and:newFile label:(resources string:'Generated %1' with:theFile).
+        editor := EditTextView openOnModel:newFile.
+        editor topView label:(resources string:'Generated %1' with:theFile).
+    ] ifFalse:[
+        differ := DiffCodeView
+                openOn:oldFile label:(resources string:'Newest %1 in Repository' with:theFile)
+                and:newFile label:(resources string:'Generated %1' with:theFile).
     ].
 
     "Modified: / 12-09-2011 / 16:03:28 / cg"
@@ -41830,9 +43150,7 @@
 projectMenuSmalllintCheck: what
     "perform all checks on the selected project's class(es)."
 
-    self
-	smalllintCheck:self selectedPackagesAsEnvironment
-	against: what
+    self smalllintRun:what onEnvironment:self selectedPackagesAsEnvironment
 
     "Created: / 05-05-2012 / 10:19:44 / cg"
 !
@@ -41874,13 +43192,25 @@
 !
 
 projectMenuSpawnPreRequirerBuffer
-    "open a browser showing projects which have the selected project(s) as prerequisite"
+    "add a buffer showing projects which have the selected project(s) as prerequisite"
 
     self spawnProjectPreRequirerBrowserFor:(self selectedProjects value) in:#newBuffer
 
     "Created: / 23-01-2007 / 19:23:32 / cg"
 !
 
+projectMenuSpawnReferencesBrowser
+    "open a browser showing projects which have the selected project(s) as prerequisite or subProject"
+
+    self spawnProjectReferencesBrowserFor:(self selectedProjects value) in:#newBrowser
+!
+
+projectMenuSpawnReferencesBuffer
+    "add a buffer showing projects which have the selected project(s) as prerequisite or subProject"
+
+    self spawnProjectReferencesBrowserFor:(self selectedProjects value) in:#newBuffer
+!
+
 projectMenuUpdate
     self projectListApp forceUpdateList
 !
@@ -41902,96 +43232,96 @@
     SourceCodeManager isNil ifTrue:[^ self warn:'No SourceCodeManagement is configured.'].
 
     self withWaitCursorDo:[
-	|classesToLoad classesToUnload answer outStream classesSorted|
-
-	self selectedProjectsDo:[:packageToCheck |
-	    |module package containers classesInProject classesWithoutContainer|
-
-	    module := packageToCheck asPackageId module.
-	    package := packageToCheck asPackageId directory.
+        |classesToLoad classesToUnload answer outStream classesSorted|
+
+        self selectedProjectsDo:[:packageToCheck |
+            |module package containers classesInProject classesWithoutContainer|
+
+            module := packageToCheck asPackageId module.
+            package := packageToCheck asPackageId directory.
 
 "/            containers := SourceCodeManager getExistingContainersInModule:module package:package.
 "/            containers := containers select:[:each | (each startsWith:'.') not].
 
-	    classesInProject := IdentitySet new.
-	    environment allClassesDo:[:aClass |
-		(packageToCheck = aClass package) ifTrue:[
-		    aClass isPrivate ifFalse:[
-			aClass isObsolete ifTrue:[
-			    Transcript showCR:'skipping obsolete class: ' , aClass name.
-			] ifFalse:[
-			    classesInProject add:aClass .
-			]
-		    ]
-		]
-	    ].
-
-	    "/ load unloaded classes...
-	    classesToLoad := OrderedCollection new.
-	    classesInProject do:[:eachClassInProject |
-		eachClassInProject isLoaded ifFalse:[
-		    classesToLoad add:eachClassInProject
-		].
-	    ].
-	    classesToLoad size > 0 ifTrue:[
-		answer := Dialog confirmWithCancel:(resources string:'%1 class(es) are not loaded.\In order to proceed, these must be loaded first.\\Load them now ?'
-							      with:classesToLoad size) withCRs
-				 default:false.
-		answer isNil ifTrue:[^ self].
-
-		answer ifTrue:[
-		    self busyLabel:'Autoloading all classes in ' , packageToCheck , '...'.
-
-		    classesToUnload := OrderedCollection new.
-		    classesInProject do:[:eachClassInProject |
-			eachClassInProject isLoaded ifFalse:[
-			    eachClassInProject autoload.
-			    classesToUnload add:eachClassInProject
-			].
-		    ].
-		].
-	    ].
-
-	    self busyLabel:'Checking for classes without container in ' , packageToCheck , '...'.
-
-	    "/ any class without container ?
-	    classesWithoutContainer := IdentitySet new.
-
-	    classesInProject do:[:eachClassInProject |
-		|mgr info classesModule classesPackageDir classesContainerFileName|
-
-		eachClassInProject isPrivate ifFalse:[
-		    mgr := SourceCodeManagerUtilities sourceCodeManagerFor:eachClassInProject.
-		    info := mgr sourceInfoOfClass:eachClassInProject.
-		    info isNil ifTrue:[
-			"/ no container for that class
-			classesWithoutContainer add:eachClassInProject
-		    ].
-		].
-	    ].
-
-	    "/ any container left ?
-	    classesWithoutContainer notEmpty ifTrue:[
-		answer := Dialog warn:(resources string:'%1 class(es) have no container in the repository.\\Please do not forget to check them in.'
-							      with:classesToLoad size) withCRs.
-	    ].
-
-	    aBlock value:module value:package value:classesInProject.
-
-	    classesToUnload size >0 ifTrue:[
-		answer := Dialog confirm:(resources string:'%1 class(es) were loaded - unload them now ?'
-					  with:classesToLoad size)
-				 default:false.
-		answer ifTrue:[
-		    self busyLabel:'Unloading autoloaded classes in ' , packageToCheck , '...'.
-
-		    "/ unload classes which have been loaded temporarily
-		    classesToUnload do:[:eachClassToUnload |
-			eachClassToUnload unload
-		    ].
-		]
-	    ]
-	].
+            classesInProject := IdentitySet new.
+            environment allClassesDo:[:aClass |
+                (packageToCheck = aClass package) ifTrue:[
+                    aClass isPrivate ifFalse:[
+                        aClass isObsolete ifTrue:[
+                            Transcript showCR:'skipping obsolete class: ' , aClass name.
+                        ] ifFalse:[
+                            classesInProject add:aClass .
+                        ]
+                    ]
+                ]
+            ].
+
+            "/ load unloaded classes...
+            classesToLoad := OrderedCollection new.
+            classesInProject do:[:eachClassInProject |
+                eachClassInProject isLoaded ifFalse:[
+                    classesToLoad add:eachClassInProject
+                ].
+            ].
+            classesToLoad size > 0 ifTrue:[
+                answer := Dialog confirmWithCancel:(resources string:'%1 class(es) are not loaded.\In order to proceed, these must be loaded first.\\Load them now ?'
+                                                              with:classesToLoad size) withCRs
+                                 default:false.
+                answer isNil ifTrue:[^ self].
+
+                answer ifTrue:[
+                    self busyLabel:'Autoloading all classes in ' , packageToCheck , '...'.
+
+                    classesToUnload := OrderedCollection new.
+                    classesInProject do:[:eachClassInProject |
+                        eachClassInProject isLoaded ifFalse:[
+                            eachClassInProject autoload.
+                            classesToUnload add:eachClassInProject
+                        ].
+                    ].
+                ].
+            ].
+
+            self busyLabel:'Checking for classes without container in ' , packageToCheck , '...'.
+
+            "/ any class without container ?
+            classesWithoutContainer := IdentitySet new.
+
+            classesInProject do:[:eachClassInProject |
+                |mgr info classesModule classesPackageDir classesContainerFileName|
+
+                eachClassInProject isPrivate ifFalse:[
+                    mgr := SourceCodeManagerUtilities sourceCodeManagerFor:eachClassInProject.
+                    info := mgr sourceInfoOfClass:eachClassInProject.
+                    info isNil ifTrue:[
+                        "/ no container for that class
+                        classesWithoutContainer add:eachClassInProject
+                    ].
+                ].
+            ].
+
+            "/ any container left ?
+            classesWithoutContainer notEmpty ifTrue:[
+                answer := Dialog warn:(resources string:'%1 class(es) have no container in the repository.\\Please do not forget to check them in.'
+                                                              with:classesToLoad size) withCRs.
+            ].
+
+            aBlock value:module value:package value:classesInProject.
+
+            classesToUnload size >0 ifTrue:[
+                answer := Dialog confirm:(resources string:'%1 class(es) were loaded - unload them now ?'
+                                          with:classesToLoad size)
+                                 default:false.
+                answer ifTrue:[
+                    self busyLabel:'Unloading autoloaded classes in ' , packageToCheck , '...'.
+
+                    "/ unload classes which have been loaded temporarily
+                    classesToUnload do:[:eachClassToUnload |
+                        eachClassToUnload unload
+                    ].
+                ]
+            ]
+        ].
     ].
     self normalLabel
 
@@ -42030,22 +43360,22 @@
     projectList2 selectedProjects value:#('stx').
 
     packageHull := [:packageIDs | environment allProjectIDs select:[:p | packageIDs
-									contains:[:packageId |
-									    p = packageId
-									    or:[ (p startsWith:packageId,':')
-									    or:[ (p startsWith:packageId,'/') ]]]
-								  ]
-		   ].
+                                                                        contains:[:packageId |
+                                                                            p = packageId
+                                                                            or:[ (p startsWith:packageId,':')
+                                                                            or:[ (p startsWith:packageId,'/') ]]]
+                                                                  ]
+                   ].
 
     knownTags1 := (self allKnownTagsInClasses:((packageHull value:projectList1 selectedProjects value)
-						collect:[:id | ProjectDefinition definitionClassForPackage:id]
-						thenSelect:[:c | c notNil]))
-			asOrderedCollection reverse.
+                                                collect:[:id | ProjectDefinition definitionClassForPackage:id]
+                                                thenSelect:[:c | c notNil]))
+                        asOrderedCollection reverse.
 
     knownTags2 := (self allKnownTagsInClasses:((packageHull value:projectList2 selectedProjects value)
-						collect:[:id | ProjectDefinition definitionClassForPackage:id]
-						thenSelect:[:c | c notNil]))
-			asOrderedCollection reverse.
+                                                collect:[:id | ProjectDefinition definitionClassForPackage:id]
+                                                thenSelect:[:c | c notNil]))
+                        asOrderedCollection reverse.
 
     dialog := Dialog new.
     dialog addCheckBox:'Cache tag -> revision mappings (speedup)' on:(cacheTagMappingsHolder := true asValue) tabable:true.
@@ -42070,36 +43400,36 @@
     dialog accepted ifFalse:[ ^ self].
 
     cacheTagMappingsHolder value ifTrue:[
-	CachedTagToRevisionMapping isNil ifTrue:[
-	    CachedTagToRevisionMapping := Dictionary new
-	].
+        CachedTagToRevisionMapping isNil ifTrue:[
+            CachedTagToRevisionMapping := Dictionary new
+        ].
     ].
 
     packagesToFindMissing := projectList1 selectedProjects value.
     packagesToFindCalled := projectList2 selectedProjects value.
 
     classesToFindMissing := environment allClasses select:[:cls |
-				|p|
-
-				p := cls package.
-				p notNil
-				    and:[cls isPrivate not
-				    and:[ packagesToFindMissing contains:[:p2 | (p2 = p)
-										or:[(p startsWith:(p2,'/'))
-										or:[p startsWith:(p2,':')]]]]]
-			    ].
+                                |p|
+
+                                p := cls package.
+                                p notNil
+                                    and:[cls isPrivate not
+                                    and:[ packagesToFindMissing contains:[:p2 | (p2 = p)
+                                                                                or:[(p startsWith:(p2,'/'))
+                                                                                or:[p startsWith:(p2,':')]]]]]
+                            ].
     classesToFindMissing := classesToFindMissing asOrderedCollection sort:[:a :b | a name < b name].
 
     classesToFindCalled := environment allClasses select:[:cls |
-				|p|
-
-				p := cls package.
-				p notNil
-				    and:[cls isPrivate not
-				    and:[ packagesToFindCalled contains:[:p2 | (p2 = p)
-										or:[(p startsWith:(p2,'/'))
-										or:[p startsWith:(p2,':')]]]]]
-			    ].
+                                |p|
+
+                                p := cls package.
+                                p notNil
+                                    and:[cls isPrivate not
+                                    and:[ packagesToFindCalled contains:[:p2 | (p2 = p)
+                                                                                or:[(p startsWith:(p2,'/'))
+                                                                                or:[p startsWith:(p2,':')]]]]]
+                            ].
     classesToFindCalled := classesToFindCalled asOrderedCollection sort:[:a :b | a name < b name].
 
 "/ CachedMethodsImplemented := methodsImplemented.
@@ -42107,126 +43437,144 @@
 methodsImplemented isNil ifTrue:[
     methodsImplemented := Set new.
     classesToFindCalled do:[:eachClass |
-	|tag stream changeSet|
-
-	(eachClass isLoaded or:[skipAutoloaded not]) ifTrue:[
-	    [
-		|rev|
-
-		tag := releaseHolder2 value.
-		cacheTagMappingsHolder value ifTrue:[
-		    rev := (CachedTagToRevisionMapping at:tag ifAbsentPut:[Dictionary new])
-				at:eachClass name ifAbsent:nil.
-		].
-		rev isNil ifTrue:[
-		    rev := manager utilities
-				revisionForSymbolicName:tag
-				class:eachClass
-				fileName:(eachClass classFilename)
-				directory:(eachClass package asPackageId directory)
-				module:(eachClass package asPackageId module)
-				manager:manager.
-		].
-
-		rev isNil ifTrue:[
-		    Dialog warn:(resources string:'No version of %1 tagged as %2' with:eachClass name with:tag).
-		] ifFalse:[
-		    self activityNotification:'reading ',eachClass name,'...'.
-		    stream := manager getSourceStreamFor:eachClass revision:rev.
-		    stream isNil ifTrue:[
-			"/ class is autoloaded AND does not have a computable class name (would need conultation of abbrev file)
-			Dialog warn:(resources string:'Cannot extract source of %1 (rev %2)' with:eachClass name with:rev).
-		    ] ifFalse:[
-			changeSet := ChangeSet fromStream:stream.
-			methodsImplemented addAll:(changeSet changeSelectors).
-		    ].
-		    cacheTagMappingsHolder value ifTrue:[
-			(CachedTagToRevisionMapping at:tag ifAbsentPut:[Dictionary new])
-				at:eachClass name put:rev.
-		    ].
-		].
-	    ] ensure:[
-		stream notNil ifTrue:[ stream close ].
-	    ].
-	].
+        |tag stream changeSet|
+
+        (eachClass isLoaded or:[skipAutoloaded not]) ifTrue:[
+            [
+                |rev|
+
+                tag := releaseHolder2 value.
+                cacheTagMappingsHolder value ifTrue:[
+                    rev := (CachedTagToRevisionMapping at:tag ifAbsentPut:[Dictionary new])
+                                at:eachClass name ifAbsent:nil.
+                ].
+                rev isNil ifTrue:[
+                    rev := manager utilities
+                                revisionForSymbolicName:tag
+                                class:eachClass
+                                fileName:(eachClass classFilename)
+                                directory:(eachClass package asPackageId directory)
+                                module:(eachClass package asPackageId module)
+                                manager:manager.
+                ].
+
+                rev isNil ifTrue:[
+                    Dialog warn:(resources string:'No version of %1 tagged as %2' with:eachClass name with:tag).
+                ] ifFalse:[
+                    self activityNotification:'reading ',eachClass name,'...'.
+                    stream := manager getSourceStreamFor:eachClass revision:rev.
+                    stream isNil ifTrue:[
+                        "/ class is autoloaded AND does not have a computable class name (would need conultation of abbrev file)
+                        Dialog warn:(resources string:'Cannot extract source of %1 (rev %2)' with:eachClass name with:rev).
+                    ] ifFalse:[
+                        changeSet := ChangeSet fromStream:stream.
+                        methodsImplemented addAll:(changeSet changeSelectors).
+                    ].
+                    cacheTagMappingsHolder value ifTrue:[
+                        (CachedTagToRevisionMapping at:tag ifAbsentPut:[Dictionary new])
+                                at:eachClass name put:rev.
+                    ].
+                ].
+            ] ensure:[
+                stream notNil ifTrue:[ stream close ].
+            ].
+        ].
     ].
 ].
 
     classesToFindMissing do:[:eachClass |
-	|tag stream changeSet|
-
-	(eachClass isLoaded or:[skipAutoloaded not]) ifTrue:[
-	    [
-		|rev|
-
-		tag := releaseHolder1 value.
-		cacheTagMappingsHolder value ifTrue:[
-		    rev := (CachedTagToRevisionMapping at:tag ifAbsentPut:[Dictionary new])
-				at:eachClass name ifAbsent:nil.
-		].
-		rev isNil ifTrue:[
-		    rev := manager utilities
-				revisionForSymbolicName:tag
-				class:eachClass
-				fileName:(eachClass classFilename)
-				directory:(eachClass package asPackageId directory)
-				module:(eachClass package asPackageId module)
-				manager:manager.
-		].
-
-		rev isNil ifTrue:[
-		    Dialog warn:(resources string:'No version of %1 tagged as %2' with:eachClass name with:tag).
-		] ifFalse:[
-		    self activityNotification:'reading ',eachClass name,'...'.
-		    stream := manager getSourceStreamFor:eachClass revision:rev.
-		    stream isNil ifTrue:[
-			"/ class is autoloaded AND does not have a computable class name (would need conultation of abbrev file)
-			Dialog warn:(resources string:'Cannot extract source of %1 (rev %2)' with:eachClass name with:rev).
-		    ] ifFalse:[
-			changeSet := ChangeSet fromStream:stream.
-			changeSet do:[:each |
-			    |tree messagesSent|
-
-			    messagesSent := Set new.
-			    each isMethodCodeChange ifTrue:[
-				tree := RBParser parseMethod:(each source) onError:[:aString :pos | nil].
-				tree notNil ifTrue:[
-				    tree nodesDo:[:eachNode |
-					eachNode isMessage ifTrue:[
-					    messagesSent add:( eachNode selector ).
+        |tag stream changeSet|
+
+        (eachClass isLoaded or:[skipAutoloaded not]) ifTrue:[
+            [
+                |rev|
+
+                tag := releaseHolder1 value.
+                cacheTagMappingsHolder value ifTrue:[
+                    rev := (CachedTagToRevisionMapping at:tag ifAbsentPut:[Dictionary new])
+                                at:eachClass name ifAbsent:nil.
+                ].
+                rev isNil ifTrue:[
+                    rev := manager utilities
+                                revisionForSymbolicName:tag
+                                class:eachClass
+                                fileName:(eachClass classFilename)
+                                directory:(eachClass package asPackageId directory)
+                                module:(eachClass package asPackageId module)
+                                manager:manager.
+                ].
+
+                rev isNil ifTrue:[
+                    Dialog warn:(resources string:'No version of %1 tagged as %2' with:eachClass name with:tag).
+                ] ifFalse:[
+                    self activityNotification:'reading ',eachClass name,'...'.
+                    stream := manager getSourceStreamFor:eachClass revision:rev.
+                    stream isNil ifTrue:[
+                        "/ class is autoloaded AND does not have a computable class name (would need conultation of abbrev file)
+                        Dialog warn:(resources string:'Cannot extract source of %1 (rev %2)' with:eachClass name with:rev).
+                    ] ifFalse:[
+                        changeSet := ChangeSet fromStream:stream.
+                        changeSet do:[:each |
+                            |tree messagesSent|
+
+                            messagesSent := Set new.
+                            each isMethodCodeChange ifTrue:[
+                                tree := RBParser parseMethod:(each source) onError:[:aString :pos | nil].
+                                tree notNil ifTrue:[
+                                    tree nodesDo:[:eachNode |
+                                        eachNode isMessage ifTrue:[
+                                            messagesSent add:( eachNode selector ).
 self halt.
-					] ifFalse:[
-					    eachNode isVariable ifTrue:[
+                                        ] ifFalse:[
+                                            eachNode isVariable ifTrue:[
 self halt.
-					    ]
-					]
-				    ].
-				].
-
-				tree halt.
-			    ].
-			]
-		    ].
-		    cacheTagMappingsHolder value ifTrue:[
-			(CachedTagToRevisionMapping at:tag ifAbsentPut:[Dictionary new])
-				at:eachClass name put:rev.
-		    ].
-		].
-	    ] ensure:[
-		stream notNil ifTrue:[ stream close ].
-	    ].
-	].
+                                            ]
+                                        ]
+                                    ].
+                                ].
+
+                                tree halt.
+                            ].
+                        ]
+                    ].
+                    cacheTagMappingsHolder value ifTrue:[
+                        (CachedTagToRevisionMapping at:tag ifAbsentPut:[Dictionary new])
+                                at:eachClass name put:rev.
+                    ].
+                ].
+            ] ensure:[
+                stream notNil ifTrue:[ stream close ].
+            ].
+        ].
     ].
     self halt.
 !
 
+saveProjectClassDocumentationIn:aDirectory using:docGenerator
+    "save class documentation for each of the package's classes to a directory"
+
+    self selectedProjectClasses do:[:eachClass |
+        |text f fn|
+
+        self infoLabelHolder value:'Generating doc for ',eachClass name, '...'.
+        text := docGenerator htmlDocOf:eachClass.
+        text notNil ifTrue:[
+            fn := eachClass classFilename asFilename withSuffix:'html'.
+            f := (aDirectory construct:fn) writeStream.
+            f nextPutAll:text asString.
+            f close.
+        ]
+    ].
+    self infoLabelHolder value:'Done.'.
+!
+
 selectedProjectsDo:aBlock
     |selectedProjects allProjects|
 
     selectedProjects := self selectedProjects value ? #().
     (selectedProjects includes:(BrowserList nameListEntryForALL)) ifTrue:[
-	allProjects := environment allClasses collect:[:eachClass | eachClass package] as:Set.
-	selectedProjects := allProjects select:[:each| each notNil].
+        allProjects := environment allClasses collect:[:eachClass | eachClass package] as:Set.
+        selectedProjects := allProjects select:[:each| each notNil].
     ].
     selectedProjects := selectedProjects asOrderedCollection.
     selectedProjects sort do:aBlock
@@ -42234,64 +43582,74 @@
 
 spawnProjectBrowserFor:projects in:where
     "browse selected project(s);
-	where is: #newBrowser - open a new browser showing the projects
-	where is: #newBuffer  - add a new buffer showing the projects"
+        where is: #newBrowser - open a new browser showing the projects
+        where is: #newBuffer  - add a new buffer showing the projects"
+
+    ^ self spawnProjectBrowserFor:projects label:nil in:where
+!
+
+spawnProjectBrowserFor:projects label:labelOrNil in:where
+    "browse selected project(s);
+        where is: #newBrowser - open a new browser showing the projects
+        where is: #newBuffer  - add a new buffer showing the projects"
 
     |spec projectList singleSelection brwsr|
 
     (singleSelection := projects size == 1) ifTrue:[
-	"/ spec := #singleProjectBrowserSpec.
-	spec := #singleProjectFullBrowserSpec.
-    ] ifFalse:[
-	"/ spec := #multipleProjectBrowserSpec.
-	spec := #multipleProjectFullBrowserSpec.
+        "/ spec := #singleProjectBrowserSpec.
+        spec := #singleProjectFullBrowserSpec.
+    ] ifFalse:[
+        "/ spec := #multipleProjectBrowserSpec.
+        spec := #multipleProjectFullBrowserSpec.
     ].
 
     projectList := projects copy.
 
     brwsr := self
-	newBrowserOrBufferDependingOn:where
-	label:nil
-	forSpec:spec
-	setupWith:[:brwsr |
-	    "/ setup for a constant list ...
-
-	    brwsr projectListApp includedPseudoEntryForChanged:false.
-
-	    brwsr immediateUpdate value:true.
-	    brwsr projectListApp slaveMode:false.
-	    brwsr organizerMode value:#project.
-	    brwsr projectListGenerator value:projectList.
-	    brwsr packageFilter value:projectList.
-	    brwsr selectProject:(singleSelection ifTrue:[projectList anElement] ifFalse:[BrowserList nameListEntryForALL]).
-	    brwsr selectCategory:(BrowserList nameListEntryForALL).
-	    brwsr immediateUpdate value:false.
-	].
+        newBrowserOrBufferDependingOn:where
+        label:labelOrNil
+        forSpec:spec
+        setupWith:[:brwsr |
+            "/ setup for a constant list ...
+
+            brwsr projectListApp includedPseudoEntryForChanged:false.
+
+            brwsr immediateUpdate value:true.
+            brwsr projectListApp slaveMode:false.
+            brwsr organizerMode value:#project.
+            brwsr projectListGenerator value:projectList.
+            brwsr packageFilter value:projectList.
+            brwsr selectProject:(singleSelection ifTrue:[projectList anElement] ifFalse:[BrowserList nameListEntryForALL]).
+            brwsr selectCategory:(BrowserList nameListEntryForALL).
+            brwsr immediateUpdate value:false.
+        ].
+
+    ^ brwsr
 
     "Modified: / 23-01-2007 / 19:42:18 / cg"
 !
 
 spawnProjectExtensionBrowserFor:projects in:where
     "browse selected project(s) extensions;
-	where is: #newBrowser - open a new browser showing the projects
-	where is: #newBuffer  - add a new buffer showing the projects"
+        where is: #newBrowser - open a new browser showing the projects
+        where is: #newBuffer  - add a new buffer showing the projects"
 
     |classes title|
 
     classes := environment allClasses
-		reject:[:each | (projects includes:each package) ].
+                reject:[:each | (projects includes:each package) ].
 
     projects size == 1 ifTrue:[
-	title := 'Extensions for Project ''' , projects first , ''''
-    ] ifFalse:[
-	title := 'Extensions for Projects'
-    ].
-
-    ^ self
-	browseMenuClassExtensionsFor:projects
-	in:classes
-	label:title
-	openAs:where
+        title := 'Extensions for Project ''' , projects first , ''''
+    ] ifFalse:[
+        title := 'Extensions for Projects'
+    ].
+
+    ^ self
+        browseMenuClassExtensionsFor:projects
+        in:classes
+        label:title
+        openAs:where
 !
 
 spawnProjectPreRequirerBrowserFor:someProjects in:how
@@ -42301,27 +43659,55 @@
 
     requirer := Set new.
     ProjectDefinition allSubclassesDo:[:eachProjectDefinition |
-	(eachProjectDefinition effectivePreRequisites includesAny:someProjects) ifTrue:[
-	    requirer add:(eachProjectDefinition package).
-	]
+        (eachProjectDefinition effectivePreRequisites includesAny:someProjects) ifTrue:[
+            requirer add:(eachProjectDefinition package).
+        ]
     ].
     requirer isEmpty ifTrue:[
-	Dialog warn:'Noone seems to require this package (not found in any prerequisites).'.
-	^ self.
+        Dialog warn:'Noone seems to require this package (not found in any prerequisites).'.
+        ^ self.
     ].
     self spawnProjectBrowserFor:(requirer asOrderedCollection sort) in:how
 
     "Created: / 23-01-2007 / 19:25:00 / cg"
 !
 
+spawnProjectReferencesBrowserFor:collectionOfPackageIds in:openHow
+    "add a buffer / open a new browser showing references to the given packageIDs
+     from other projects (i.e. prerequisites, subprojects etc.)"
+
+    |packages lbl|
+
+    packages := Set new.
+    ProjectDefinition allSubclasses do:[:eachProjectDefinition |
+        eachProjectDefinition preRequisites do:[:eachPrereqPackage |
+            (collectionOfPackageIds includes:eachPrereqPackage) ifTrue:[
+                packages add:eachProjectDefinition package
+            ].
+        ].
+        eachProjectDefinition subProjects do:[:eachSubProject |
+            (collectionOfPackageIds includes:eachSubProject) ifTrue:[
+                packages add:eachProjectDefinition package
+            ].
+        ].
+    ].
+    collectionOfPackageIds size == 1 ifTrue:[
+        lbl := resources string:'References to package "%1"' with:collectionOfPackageIds first
+    ] ifFalse:[
+        lbl := resources string:'References to any of %1 packages' with:collectionOfPackageIds size
+    ].
+
+    self spawnProjectBrowserFor:packages label:lbl in:openHow
+!
+
 updateProjectContentsDefinitionsIn:classes regenerate:doRegenerate
     self
-	generateUndoableChange:(doRegenerate ifTrue:'Generate Project Definitions' ifFalse:'Update Project Definitions')
-	overClasses:classes
-	via:[:generator :eachClass |
-	    eachClass theNonMetaclass
-		updateContentsMethodsCodeUsingCompiler:generator
-		ignoreOldDefinition:doRegenerate.
+        generateUndoableChange:(doRegenerate ifTrue:'Generate Project Definitions' ifFalse:'Update Project Definitions')
+        overClasses:classes
+        via:[:generator :eachClass |
+            eachClass theNonMetaclass
+                updateContentsMethodsCodeUsingCompiler:generator
+                ignoreOldDefinition:doRegenerate.
 
 "/            Class packageQuerySignal
 "/                answer:eachClass package
@@ -42336,7 +43722,7 @@
 "/                            ]
 "/                        ignoreOldDefinition:doRegenerate
 "/                ].
-	].
+        ].
 
     "Created: / 10-10-2006 / 21:05:14 / cg"
     "Modified: / 23-10-2006 / 11:01:42 / cg"
@@ -42361,10 +43747,10 @@
      Will eventually update the Project-object"
 
     self withWaitCursorDo:[
-	self selectedProtocolMethodsDo:[:cls :protocol :sel :eachMethod |
-	    eachMethod package:newProject.
-	].
-	self rememberLastProjectMoveTo:newProject
+        self selectedProtocolMethodsDo:[:cls :protocol :sel :eachMethod |
+            eachMethod package:newProject.
+        ].
+        self rememberLastProjectMoveTo:newProject
     ].
 
     "Modified: / 08-09-2011 / 04:17:32 / cg"
@@ -42383,42 +43769,42 @@
     protocols := Set new.
     methods := IdentitySet new.
     self selectedProtocolMethodsDo:[:cls :protocol :sel :eachMethod |
-	classes add:cls.
-	protocols add:protocol.
-	methods add:eachMethod.
+        classes add:cls.
+        protocols add:protocol.
+        methods add:eachMethod.
     ].
     numClasses := classes size.
     numProtocols := protocols size.
     numMethods := methods size.
 
     numMethods ~~ 0 ifTrue:[
-	numMethods == 1 ifTrue:[
-	    msg := resources
-			string:'Really remove %1 from ''%2'''
-			with:(methods first selector allBold)
-			with:classes first name allBold.
-	] ifFalse:[
-	    msg := 'Really remove %1 methods'.
-	    numProtocols > 1 ifTrue:[
-		msg := msg , ' (in %3 categories)'
-	    ] ifFalse:[
-		msg := msg , ' categorized as ''%4'''
-	    ].
-	    numClasses > 1 ifTrue:[
-		msg := msg , ' from %2 classes'
-	    ] ifFalse:[
-		msg := msg , ' from ''%5'''
-	    ].
-	    msg := msg , ' ?'.
-	    msg := resources
-			string:msg
-			with:numMethods printString
-			with:numClasses printString
-			with:numProtocols printString
-			with:protocols first allBold
-			with:classes first name allBold.
-	].
-	(self confirm:msg) ifFalse:[^ self].
+        numMethods == 1 ifTrue:[
+            msg := resources
+                        string:'Really remove %1 from ''%2'''
+                        with:(methods first selector allBold)
+                        with:classes first name allBold.
+        ] ifFalse:[
+            msg := 'Really remove %1 methods'.
+            numProtocols > 1 ifTrue:[
+                msg := msg , ' (in %3 categories)'
+            ] ifFalse:[
+                msg := msg , ' categorized as ''%4'''
+            ].
+            numClasses > 1 ifTrue:[
+                msg := msg , ' from %2 classes'
+            ] ifFalse:[
+                msg := msg , ' from ''%5'''
+            ].
+            msg := msg , ' ?'.
+            msg := resources
+                        string:msg
+                        with:numMethods printString
+                        with:numClasses printString
+                        with:numProtocols printString
+                        with:protocols first allBold
+                        with:classes first name allBold.
+        ].
+        (self confirm:msg) ifFalse:[^ self].
     ].
     classes := protocols := nil.
 
@@ -42429,12 +43815,12 @@
     "/ kludge: remove the simulated entries ...
     methodCategoryListApp := self methodCategoryListApp.
     methodCategoryListApp notNil ifTrue:[
-	self selectedClassesDo:[:cls |
-	    methodCategoryListApp
-		    removeAdditionalProtocol:self selectedProtocols value
-		    forClass:cls.
-	].
-	methodCategoryListApp updateList.
+        self selectedClassesDo:[:cls |
+            methodCategoryListApp
+                    removeAdditionalProtocol:self selectedProtocols value
+                    forClass:cls.
+        ].
+        methodCategoryListApp updateList.
     ]
 !
 
@@ -42448,12 +43834,12 @@
     printStream := Printer new.
 
     (self selectedClassesValue) do:[:eachClass |
-	(self selectedProtocols value sort) do:[:eachProtocol |
-	    (eachClass methodDictionary contains:[:m | m category = eachProtocol])
-	    ifTrue:[
-		eachClass perform:aSelector with:eachProtocol with:printStream.
-	    ].
-	].
+        (self selectedProtocols value sort) do:[:eachProtocol |
+            (eachClass methodDictionary contains:[:m | m category = eachProtocol])
+            ifTrue:[
+                eachClass perform:aSelector with:eachProtocol with:printStream.
+            ].
+        ].
     ].
 
     printStream close
@@ -42464,9 +43850,7 @@
 protocolCheckMenuSmalllintCheck: what
     "perform all checks on the selected class(es)."
 
-    self
-	smalllintCheck:self selectedProtocolsAsEnvironment
-	against: what
+    self smalllintRun:what onEnvironment:self selectedProtocolsAsEnvironment
 
     "Modified: / 28-12-2008 / 14:42:01 / bazantj <enter your email here>"
     "Modified: / 13-01-2009 / 13:20:48 / Jiri Bazant <bazanj2@fel.cvut.cz>"
@@ -42491,10 +43875,10 @@
     methods := methods select:[:eachMethod| protocols includes:eachMethod category].
 
     self
-	fileOutMethods:methods
-	format:nil
-	fileNameTemplate:self currentClass name , '-' , protocols first
-	boxTitle:'FileOut protocol as:'
+        fileOutMethods:methods
+        format:nil
+        fileNameTemplate:self currentClass name , '-' , protocols first
+        boxTitle:'FileOut protocol as:'
 !
 
 protocolMenuGenerateCommonProtocols
@@ -42503,18 +43887,18 @@
     |protocols|
 
     self hasMetaSelected ifTrue:[
-	protocols := #('instance creation' 'documentation' 'defaults')
-    ] ifFalse:[
-	protocols := #('accessing' 'adding & removing' 'testing' 'initialization' 'queries' 'private'
-		       'printing & storing' 'change & update')
+        protocols := #('instance creation' 'documentation' 'defaults')
+    ] ifFalse:[
+        protocols := #('accessing' 'adding & removing' 'testing' 'initialization' 'queries' 'private'
+                       'printing & storing' 'change & update')
     ].
 
     protocols do:[:newProtocol |
 "/        self immediateUpdate value:true.
-	self selectedClassesDo:[:cls |
-	    self methodCategoryListApp addAdditionalProtocol:newProtocol forClass:cls.
-	].
-	self clearAutoSelectOfLastSelectedProtocol.
+        self selectedClassesDo:[:cls |
+            self methodCategoryListApp addAdditionalProtocol:newProtocol forClass:cls.
+        ].
+        self clearAutoSelectOfLastSelectedProtocol.
 "/        self immediateUpdate value:false.
     ].
 !
@@ -42523,10 +43907,10 @@
     "these are needed so often; let the browser do it for me"
 
     self selectedClassesDo:[:cls |
-	self methodCategoryListApp addAdditionalProtocol:'documentation' forClass:cls.
-	(cls includesSelector:#documentation) ifFalse:[
-	    cls programmingLanguage codeGeneratorClass createDocumentationMethodFor:cls
-	].
+        self methodCategoryListApp addAdditionalProtocol:'documentation' forClass:cls.
+        (cls includesSelector:#documentation) ifFalse:[
+            cls programmingLanguage codeGeneratorClass createDocumentationMethodFor:cls
+        ].
     ].
     self clearAutoSelectOfLastSelectedProtocol.
 !
@@ -42540,27 +43924,27 @@
     "/ provide a reasonable default in the pull-down-list
     currentClass := self anySelectedClass.
     currentClass isNil ifTrue:[
-	m := self anySelectedMethod.
-	currentClass := m mclass.
+        m := self anySelectedMethod.
+        currentClass := m mclass.
     ].
 
     LastMethodMoveOrCopyTargetClass notNil ifTrue:[
-	initial := LastMethodMoveOrCopyTargetClass.
+        initial := LastMethodMoveOrCopyTargetClass.
     ].
 
     initial isNil ifTrue:[
-	(sup := currentClass superclass) notNil ifTrue:[
-	    initial := sup name
-	] ifFalse:[
-	    initial := nil.
-	].
-    ].
-
-    supers := (currentClass allSuperclasses reverse collect:[:cls | cls name]).
+        (sup := currentClass superclass) notNil ifTrue:[
+            initial := sup name
+        ] ifFalse:[
+            initial := nil.
+        ].
+    ].
+
+    supers := (currentClass allSuperclasses reversed collect:[:cls | cls name]).
     subs := (currentClass allSubclasses collect:[:cls | cls name]).
     list := supers.
     (supers notEmpty and:[subs notEmpty]) ifTrue:[
-	list := list , (Array with:'---- ' , currentClass name , ' ----')
+        list := list , (Array with:'---- ' , currentClass name , ' ----')
     ].
     list := list , subs.
 
@@ -42579,97 +43963,97 @@
 "/    newClassName := (holders at:#className) value.
 
     doWhat == #copy ifTrue:[
-	reqString := 'Copy selected protocols method(s) to which class:'.
-	okLabel := 'Copy'.
-	title := 'Copy protocol'.
-    ] ifFalse:[
-	reqString := 'Move selected protocols method(s) to which class:'.
-	okLabel := 'Move'.
-	title := 'Move protocol'.
+        reqString := 'Copy selected protocols method(s) to which class:'.
+        okLabel := 'Copy'.
+        title := 'Copy protocol'.
+    ] ifFalse:[
+        reqString := 'Move selected protocols method(s) to which class:'.
+        okLabel := 'Move'.
+        title := 'Move protocol'.
     ].
 
     newClassName := Dialog
-		    request:(resources string:reqString)
-		    initialAnswer:initial
-		    okLabel:(resources string:okLabel)
-		    title:(resources string:title)
-		    onCancel:nil
-		    list:list
-		    entryCompletionBlock:(DoWhatIMeanSupport classNameEntryCompletionBlock).
+                    request:(resources string:reqString)
+                    initialAnswer:initial
+                    okLabel:(resources string:okLabel)
+                    title:(resources string:title)
+                    onCancel:nil
+                    list:list
+                    entryCompletionBlock:(DoWhatIMeanSupport classNameEntryCompletionBlock).
     newClassName isNil ifTrue:[^ self].
     (newClassName startsWith:'---- ') ifTrue:[^ self].
 
     newClass := environment classNamed:newClassName.
     newClass isNil ifTrue:[
-	self warn:'no such class: ', newClassName.
-	^ self
+        self warn:'no such class: ', newClassName.
+        ^ self
     ].
 
     LastMethodMoveOrCopyTargetClass := newClassName.
 
     self meta value ifTrue:[
-	newClass := newClass theMetaclass
-    ] ifFalse:[
-	newClass := newClass theNonMetaclass
+        newClass := newClass theMetaclass
+    ] ifFalse:[
+        newClass := newClass theNonMetaclass
     ].
 
     (self canUseRefactoringSupport) ifTrue:[
-	changes := CompositeRefactoryChange named:((doWhat == #copy) ifTrue:['Copy protocol(s)'] ifFalse:['Move protocol(s)']).
+        changes := CompositeRefactoryChange named:((doWhat == #copy) ifTrue:['Copy protocol(s)'] ifFalse:['Move protocol(s)']).
     ].
 
     self selectedProtocolMethodsDo:[:cls :protocol :sel :methodToCopyOrMove |
-	|question msg selectorToCopyOrMove dontDoIt newMethod|
-
-	"/ skip the version method (to avoid confusing the repository)
-	((AbstractSourceCodeManager isVersionMethodSelector:sel) and:[newClass isMeta]) ifFalse:[
-	    dontDoIt := false.
-	    selectorToCopyOrMove := methodToCopyOrMove selector.
-	    (newClass includesSelector:selectorToCopyOrMove) ifTrue:[
-		question := (doWhat == #copy)
-			ifTrue:['%1 already implements #%2\\Copy anyway ?']
-			ifFalse:['%1 already implements #%2\\Move anyway ?'].
-
-		(self confirm:(resources string:question
-					  with:newClass name allBold
-					  with:selectorToCopyOrMove) withCRs) ifFalse:[
-		    dontDoIt := true
-		]
-	    ].
-	    dontDoIt ifFalse:[
-		lastMethodMoveClass := newClassName.
-
-		changes notNil ifTrue:[
-		    changes
-			    compile: (methodToCopyOrMove source)
-			    in: newClass
-			    classified: (methodToCopyOrMove category).
-		    newMethod := #dummy. "/ to make following if happy
-		] ifFalse:[
-		    newMethod := newClass
-					compile:(methodToCopyOrMove source)
-					classified:(methodToCopyOrMove category).
-		].
-
-		(newMethod isNil or:[newMethod == #Error]) ifTrue:[
-		    msg := (doWhat == #copy)
-			       ifTrue:['#%1 not copied - compilation failed due to an error']
-			       ifFalse:['#%1 not moved - compilation failed due to an error'].
-		    self warn:(resources string:msg with:selectorToCopyOrMove)
-		] ifFalse:[
-		    (doWhat == #move) ifTrue:[
-			changes notNil ifTrue:[
-			    changes removeMethod: selectorToCopyOrMove from: (methodToCopyOrMove mclass)
-			] ifFalse:[
-			    (methodToCopyOrMove mclass) removeSelector:selectorToCopyOrMove.
-			]
-		    ]
-		]
-	    ]
-	]
+        |question msg selectorToCopyOrMove dontDoIt newMethod|
+
+        "/ skip the version method (to avoid confusing the repository)
+        ((AbstractSourceCodeManager isVersionMethodSelector:sel) and:[newClass isMeta]) ifFalse:[
+            dontDoIt := false.
+            selectorToCopyOrMove := methodToCopyOrMove selector.
+            (newClass includesSelector:selectorToCopyOrMove) ifTrue:[
+                question := (doWhat == #copy)
+                        ifTrue:['%1 already implements #%2\\Copy anyway ?']
+                        ifFalse:['%1 already implements #%2\\Move anyway ?'].
+
+                (self confirm:(resources string:question
+                                          with:newClass name allBold
+                                          with:selectorToCopyOrMove) withCRs) ifFalse:[
+                    dontDoIt := true
+                ]
+            ].
+            dontDoIt ifFalse:[
+                lastMethodMoveClass := newClassName.
+
+                changes notNil ifTrue:[
+                    changes
+                            compile: (methodToCopyOrMove source)
+                            in: newClass
+                            classified: (methodToCopyOrMove category).
+                    newMethod := #dummy. "/ to make following if happy
+                ] ifFalse:[
+                    newMethod := newClass
+                                        compile:(methodToCopyOrMove source)
+                                        classified:(methodToCopyOrMove category).
+                ].
+
+                (newMethod isNil or:[newMethod == #Error]) ifTrue:[
+                    msg := (doWhat == #copy)
+                               ifTrue:['#%1 not copied - compilation failed due to an error']
+                               ifFalse:['#%1 not moved - compilation failed due to an error'].
+                    self warn:(resources string:msg with:selectorToCopyOrMove)
+                ] ifFalse:[
+                    (doWhat == #move) ifTrue:[
+                        changes notNil ifTrue:[
+                            changes removeMethod: selectorToCopyOrMove from: (methodToCopyOrMove mclass)
+                        ] ifFalse:[
+                            (methodToCopyOrMove mclass) removeSelector:selectorToCopyOrMove.
+                        ]
+                    ]
+                ]
+            ]
+        ]
     ].
 
     changes notNil ifTrue:[
-	RefactoryChangeManager performChange: changes
+        RefactoryChangeManager performChange: changes
     ].
 !
 
@@ -42687,7 +44071,7 @@
 
     newProject := self askForProject:'Move all methods in protocol(s) to which project:'.
     newProject notNil ifTrue:[
-	self doMoveSelectedProtocolsToProject:newProject.
+        self doMoveSelectedProtocolsToProject:newProject.
     ].
 !
 
@@ -42697,7 +44081,7 @@
      cls suggestion|
 
     LastNewProtocols notEmptyOrNil ifTrue:[
-	suggestion := LastNewProtocols first.
+        suggestion := LastNewProtocols first.
     ].
 
 "/    allMethodCategories := Set new.
@@ -42706,61 +44090,61 @@
 "/    ].
 "/
     SharedMethodCategoryCache isNil ifTrue:[
-	SharedMethodCategoryCache := MethodCategoryCache new
+        SharedMethodCategoryCache := MethodCategoryCache new
     ].
     allMethodCategories := SharedMethodCategoryCache allMethodCategories.
 
     "/ remove existing ones ...
     (cls := self theSingleSelectedClass) notNil ifTrue:[
-	classesMethodCategories := cls categories asSet.
-	someMethodCategories := allMethodCategories select:[:cat | (classesMethodCategories includes:cat) not].
+        classesMethodCategories := cls categories asSet.
+        someMethodCategories := allMethodCategories select:[:cat | (classesMethodCategories includes:cat) not].
 "/        someMethodCategories removeAllFoundIn:classesMethodCategories.
-	(classesMethodCategories includes:suggestion) ifTrue:[
-	    suggestion := nil.
-	].
+        (classesMethodCategories includes:suggestion) ifTrue:[
+            suggestion := nil.
+        ].
     ].
 
     someMethodCategories := (someMethodCategories ? allMethodCategories) asOrderedCollection sort.
 
     someRecentlyVisitedMethodCategories := self methodCategoryListApp lastSelectedProtocols.
     someRecentlyVisitedMethodCategories notEmptyOrNil ifTrue:[
-	someRecentlyVisitedMethodCategories := someRecentlyVisitedMethodCategories asOrderedCollection sort.
-	someMethodCategories addFirst:''.
-	someMethodCategories addAllFirst:someRecentlyVisitedMethodCategories.
-	suggestion isNil ifTrue:[
-	    suggestion := someRecentlyVisitedMethodCategories first
-	].
+        someRecentlyVisitedMethodCategories := someRecentlyVisitedMethodCategories asOrderedCollection sort.
+        someMethodCategories addFirst:''.
+        someMethodCategories addAllFirst:someRecentlyVisitedMethodCategories.
+        suggestion isNil ifTrue:[
+            suggestion := someRecentlyVisitedMethodCategories first
+        ].
     ].
 
     newProtocol := self
-			askForMethodCategory:'Name of new protocol:\(Tab for completion)' withCRs
-			title:'New MethodCategory'
-			okLabel:'Create'
-			list:someMethodCategories
-			recentList:LastNewProtocols
-			initialAnswer:suggestion.
+                        askForMethodCategory:'Name of new protocol:\(Tab for completion)' withCRs
+                        title:'New MethodCategory'
+                        okLabel:'Create'
+                        list:someMethodCategories
+                        recentList:LastNewProtocols
+                        initialAnswer:suggestion.
 
     newProtocol isNil ifTrue:[^ self].
     newProtocol isWideString ifTrue:[
-	Dialog warn:'Sorry - for now, non-ascii categories are not allowed (no 2-byte symbols).'.
-	^ self.
+        Dialog warn:'Sorry - for now, non-ascii categories are not allowed (no 2-byte symbols).'.
+        ^ self.
     ].
 
     self immediateUpdate value:true.
     self selectedClassesDo:[:cls |
-	self methodCategoryListApp addAdditionalProtocol:newProtocol forClass:cls.
+        self methodCategoryListApp addAdditionalProtocol:newProtocol forClass:cls.
     ].
     self selectProtocol:newProtocol.
     self clearAutoSelectOfLastSelectedProtocol.
     self immediateUpdate value:false.
 
     LastNewProtocols isNil ifTrue:[
-	LastNewProtocols := OrderedCollection new
+        LastNewProtocols := OrderedCollection new
     ].
     LastNewProtocols remove:newProtocol ifAbsent:[].
     LastNewProtocols addFirst:newProtocol.
     LastNewProtocols size > 10 ifTrue:[
-	LastNewProtocols removeLast
+        LastNewProtocols removeLast
     ].
 
     "Modified: / 25.2.2000 / 00:56:04 / cg"
@@ -42797,30 +44181,30 @@
     self hasProtocolSelected ifFalse:[^ self].
 
     LastProtocolRenames isNil ifTrue:[
-	LastProtocolRenames := OrderedCollection new.
+        LastProtocolRenames := OrderedCollection new.
     ].
     currentMethodCategory := self theSingleSelectedProtocol.
     currentMethodCategory isNil ifTrue:[
-	LastProtocolRenames size > 0 ifTrue:[
-	    last := LastProtocolRenames last
-	].
-    ] ifFalse:[
-	currentMethodCategory := currentMethodCategory string.
-
-	last := LastProtocolRenames detect:[:ren | ren key = currentMethodCategory] ifNone:nil.
-	last notNil ifTrue:[
-	    suggestion := last value
-	]
+        LastProtocolRenames size > 0 ifTrue:[
+            last := LastProtocolRenames last
+        ].
+    ] ifFalse:[
+        currentMethodCategory := currentMethodCategory string.
+
+        last := LastProtocolRenames detect:[:ren | ren key = currentMethodCategory] ifNone:nil.
+        last notNil ifTrue:[
+            suggestion := last value
+        ]
     ].
     last isNil ifTrue:[
-	suggestion := currentMethodCategory
+        suggestion := currentMethodCategory
     ].
 
     currentMethodCategory isNil ifTrue:[
-	msg := resources string:'Rename selected categories to:'
-    ] ifFalse:[
-	msg := resources string:'Rename method category ''%1'' to:'
-			 with:currentMethodCategory allBold
+        msg := resources string:'Rename selected categories to:'
+    ] ifFalse:[
+        msg := resources string:'Rename method category ''%1'' to:'
+                         with:currentMethodCategory allBold
     ].
 "/    box := self class
 "/                enterBoxTitle:msg
@@ -42836,31 +44220,31 @@
 
     "/ offer the current classes's protocols in the dialog
     (selClasses := self selectedClassesValue) notEmptyOrNil ifTrue:[
-	selClasses do:[:eachClass |
-	    someCategories addAll:(eachClass categories).
-	]
-    ] ifFalse:[
-	"/ offer the current method-classes' protocols in the dialog
-	(selMethods := self selectedMethodsValue) notNil ifTrue:[
-	    selMethods do:[:eachMethod | |cls|
-		(cls := eachMethod mclass) notNil ifTrue:[
-		    someCategories addAll:cls categories
-		]
-	    ]
-	]
+        selClasses do:[:eachClass |
+            someCategories addAll:(eachClass categories).
+        ]
+    ] ifFalse:[
+        "/ offer the current method-classes' protocols in the dialog
+        (selMethods := self selectedMethodsValue) notNil ifTrue:[
+            selMethods do:[:eachMethod | |cls|
+                (cls := eachMethod mclass) notNil ifTrue:[
+                    someCategories addAll:cls categories
+                ]
+            ]
+        ]
     ].
     someCategories := someCategories asOrderedCollection sort.
     someCategories notEmpty ifTrue:[
-	someCategories add:''.
+        someCategories add:''.
     ].
     someCategories addAll:(environment allMethodCategories reject:[:cat | (someCategories includes:cat) ]) asOrderedCollection sort.
 
     newCategory := self
-			askForMethodCategory:msg
-			title:'Rename MethodCategory'
-			okLabel:'Rename'
-			list:someCategories
-			initialAnswer:suggestion.
+                        askForMethodCategory:msg
+                        title:'Rename MethodCategory'
+                        okLabel:'Rename'
+                        list:someCategories
+                        initialAnswer:suggestion.
 
     newCategory isNil ifTrue:[^ self].
     newCategory := newCategory withoutSeparators.
@@ -42869,42 +44253,42 @@
     newCategory = currentMethodCategory ifTrue:[^ self].
 
     newCategory isWideString ifTrue:[
-	Dialog warn:'Sorry - for now, non-ascii categories are not allowed (no 2-byte symbols).'.
-	^ self.
+        Dialog warn:'Sorry - for now, non-ascii categories are not allowed (no 2-byte symbols).'.
+        ^ self.
     ].
 
     self withWaitCursorDo:[
-	LastProtocolRenames := LastProtocolRenames select:[:ren | ren key ~= currentMethodCategory].
-	LastProtocolRenames addLast:(currentMethodCategory -> newCategory).
-	LastProtocolRenames size > 20 ifTrue:[LastProtocolRenames removeFirst].
-
-	methodCategoryListApp := self methodCategoryListApp.
-
-	newCategory := newCategory asSymbol.
-	self selectedProtocolsDo:[:cls :protocol |
-	    |methods|
-
-	    methods := cls methodDictionary values select:[:m | m category = protocol].
-	    self moveMethods:methods toProtocol:newCategory.
+        LastProtocolRenames := LastProtocolRenames select:[:ren | ren key ~= currentMethodCategory].
+        LastProtocolRenames addLast:(currentMethodCategory -> newCategory).
+        LastProtocolRenames size > 20 ifTrue:[LastProtocolRenames removeFirst].
+
+        methodCategoryListApp := self methodCategoryListApp.
+
+        newCategory := newCategory asSymbol.
+        self selectedProtocolsDo:[:cls :protocol |
+            |methods|
+
+            methods := cls methodDictionary values select:[:m | m category = protocol].
+            self moveMethods:methods toProtocol:newCategory.
 
 "/            cls renameCategory:protocol to:newCategory.
-	    "/ kludge - must also rename in addedProtocols
-	    methodCategoryListApp notNil ifTrue:[
-		methodCategoryListApp renameAdditionalProtocol:protocol to:newCategory forClass:cls.
-	    ]
-	].
-	methodCategoryListApp notNil ifTrue:[
-	    (self selectedClassesValue) do:[:cls |
-		"/ kludge - must also rename in addedProtocols
-		methodCategoryListApp renameAdditionalProtocol:currentMethodCategory to:newCategory forClass:cls.
-	    ].
-
-	    methodCategoryListApp updateList.
-	].
-
-	self immediateUpdate value:true.
-	self selectProtocol:newCategory.
-	self immediateUpdate value:false.
+            "/ kludge - must also rename in addedProtocols
+            methodCategoryListApp notNil ifTrue:[
+                methodCategoryListApp renameAdditionalProtocol:protocol to:newCategory forClass:cls.
+            ]
+        ].
+        methodCategoryListApp notNil ifTrue:[
+            (self selectedClassesValue) do:[:cls |
+                "/ kludge - must also rename in addedProtocols
+                methodCategoryListApp renameAdditionalProtocol:currentMethodCategory to:newCategory forClass:cls.
+            ].
+
+            methodCategoryListApp updateList.
+        ].
+
+        self immediateUpdate value:true.
+        self selectProtocol:newCategory.
+        self immediateUpdate value:false.
     ]
 
     "Modified: / 28-02-2012 / 17:00:47 / cg"
@@ -42914,9 +44298,9 @@
     "open a new browser showing the selected category only"
 
     ^ self
-	spawnProtocolBrowserFor:(self selectedClassesValue)
-	and:(self selectedProtocols value)
-	in:#newBrowser
+        spawnProtocolBrowserFor:(self selectedClassesValue)
+        and:(self selectedProtocols value)
+        in:#newBrowser
 
     "Modified: / 28-02-2012 / 17:00:28 / cg"
 !
@@ -42925,9 +44309,9 @@
     "add a new buffer showing the selected category only"
 
     ^ self
-	spawnProtocolBrowserFor:(self selectedClassesValue)
-	and:(self selectedProtocols value)
-	in:#newBuffer
+        spawnProtocolBrowserFor:(self selectedClassesValue)
+        and:(self selectedProtocols value)
+        in:#newBuffer
 
     "Modified: / 28-02-2012 / 16:54:00 / cg"
 !
@@ -42936,16 +44320,16 @@
     "open a new browser showing all methods (from all classes) in that category"
 
     ^ self
-	spawnFullProtocolBrowserFor:(self selectedProtocols value)
-	in:#newBrowser
+        spawnFullProtocolBrowserFor:(self selectedProtocols value)
+        in:#newBrowser
 !
 
 protocolMenuSpawnFullCategoryBuffer
     "add a new buffer showing all methods (from all classes) in that category"
 
     ^ self
-	spawnFullProtocolBrowserFor:(self selectedProtocols value)
-	in:#newBuffer
+        spawnFullProtocolBrowserFor:(self selectedProtocols value)
+        in:#newBuffer
 !
 
 protocolMenuSpawnMatchingFullCategoryBrowser
@@ -42971,13 +44355,13 @@
 
     matchingProtocols := Set new.
     environment allClassesAndMetaclassesDo:[:eachClass |
-	eachClass isLoaded ifTrue:[
-	    eachClass categories do:[:cat |
-		(pattern match:cat) ifTrue:[
-		    matchingProtocols add:cat.
-		]
-	    ]
-	]
+        eachClass isLoaded ifTrue:[
+            eachClass categories do:[:cat |
+                (pattern match:cat) ifTrue:[
+                    matchingProtocols add:cat.
+                ]
+            ]
+        ]
     ].
     ^ self spawnFullProtocolBrowserFor:matchingProtocols in:openHow
 !
@@ -42986,10 +44370,10 @@
     |methodCategoryListApp|
 
     (methodCategoryListApp := self methodCategoryListApp) notNil ifTrue:[
-	(self selectedClassesValue) do:[:aClass |
-	    methodCategoryListApp removeAllAdditionalProtocolForClass:aClass
-	].
-	methodCategoryListApp forceUpdateList
+        (self selectedClassesValue) do:[:aClass |
+            methodCategoryListApp removeAllAdditionalProtocolForClass:aClass
+        ].
+        methodCategoryListApp forceUpdateList
     ]
 
     "Modified: / 28-02-2012 / 16:53:56 / cg"
@@ -42997,125 +44381,125 @@
 
 spawnFullProtocolBrowserFor:protocols in:where
     "browse selected protocols;
-	where is: #newBrowser - open a new browser showing the classes
-	where is: #newBuffer  - add a new buffer showing the classes"
+        where is: #newBrowser - open a new browser showing the classes
+        where is: #newBuffer  - add a new buffer showing the classes"
 
     |spec lbl|
 
     protocols size == 1 ifTrue:[
-	spec := #singleFullProtocolBrowserSpec.
-	lbl := protocols first , ' [full Protocol]'
-    ] ifFalse:[
-	spec := #multipleFullProtocolBrowserSpec.
-	lbl := '[full Protocols]'
+        spec := #singleFullProtocolBrowserSpec.
+        lbl := protocols first , ' [full Protocol]'
+    ] ifFalse:[
+        spec := #multipleFullProtocolBrowserSpec.
+        lbl := '[full Protocols]'
     ].
     "/ selectedMethods := self selectedMethods value copy.
 
     ^ self
-	newBrowserOrBufferDependingOn:where
-	label:lbl
-	forSpec:spec
-	setupWith:[:brwsr |
-	    |generator protocolList|
-
-	    protocolList := protocols collect:[:each | each string].
-
-	    "/ setup a special generator ...
-
-	    generator :=
-		Iterator on:[:whatToDo |
-				|all protocols|
-
-				protocols := protocolList.
-				"/ protocols := (brwsr selectedProtocols value) ? protocolList.
-
-				all := protocols includes:(BrowserList nameListEntryForALL).
-				self withWaitCursorDo:[
-				    environment allClassesAndMetaclassesDo:[:eachClass |
-					eachClass categories do:[:cat |
-					    (all or:[protocols includes:cat]) ifTrue:[
-						whatToDo value:eachClass value:cat.
-					    ]
-					]
-				    ]
-				].
-			  ].
-
-	    brwsr noAllItem value:true.
-	    brwsr sortBy value:#class.
+        newBrowserOrBufferDependingOn:where
+        label:lbl
+        forSpec:spec
+        setupWith:[:brwsr |
+            |generator protocolList|
+
+            protocolList := protocols collect:[:each | each string].
+
+            "/ setup a special generator ...
+
+            generator :=
+                Iterator on:[:whatToDo |
+                                |all protocols|
+
+                                protocols := protocolList.
+                                "/ protocols := (brwsr selectedProtocols value) ? protocolList.
+
+                                all := protocols includes:(BrowserList nameListEntryForALL).
+                                self withWaitCursorDo:[
+                                    environment allClassesAndMetaclassesDo:[:eachClass |
+                                        eachClass categories do:[:cat |
+                                            (all or:[protocols includes:cat]) ifTrue:[
+                                                whatToDo value:eachClass value:cat.
+                                            ]
+                                        ]
+                                    ]
+                                ].
+                          ].
+
+            brwsr noAllItem value:true.
+            brwsr sortBy value:#class.
 "/            brwsr immediateUpdate value:true.
-	    "/ kludge - need a dummy organizer (with constant classList/protocolList)
-	    brwsr withWaitCursorDo:[
-		brwsr protocolListGenerator value:generator.
-		protocolList size == 1 ifTrue:[brwsr selectProtocols:protocolList copy].
-	    ].
-	    "/ brwsr selectMethods:selectedMethods.
+            "/ kludge - need a dummy organizer (with constant classList/protocolList)
+            brwsr withWaitCursorDo:[
+                brwsr protocolListGenerator value:generator.
+                protocolList size == 1 ifTrue:[brwsr selectProtocols:protocolList copy].
+            ].
+            "/ brwsr selectMethods:selectedMethods.
 "/            brwsr immediateUpdate value:false.
-	]
+        ]
 !
 
 spawnProtocolBrowserFor:classes and:protocols in:where
     "browse selected protocols;
-	where is: #newBrowser - open a new browser showing the classes
-	where is: #newBuffer  - add a new buffer showing the classes"
+        where is: #newBrowser - open a new browser showing the classes
+        where is: #newBuffer  - add a new buffer showing the classes"
 
     |spec selectedMethods singleSelection|
 
     (singleSelection := protocols size) == 1 ifTrue:[
-	spec := #singleProtocolBrowserSpec.
-    ] ifFalse:[
-	spec := #multipleProtocolBrowserSpec.
+        spec := #singleProtocolBrowserSpec.
+    ] ifFalse:[
+        spec := #multipleProtocolBrowserSpec.
     ].
     selectedMethods := self selectedMethodsValue copy.
 
     ^ self
-	newBrowserOrBufferDependingOn:where
-	label:nil
-	forSpec:spec
-	setupWith:[:brwsr |
-	    |generator classList protocolList|
-
-	    classList := classes copy.
-	    protocolList := protocols collect:[:each | each string].
-
-	    brwsr selectClasses:classList.
-	    "/ setup a special generator ...
-
-	    generator :=
-		Iterator on:[:whatToDo |
-				|all remainingClasses remainingCategories|
-
-				remainingClasses := classList copy asIdentitySet.
-				remainingCategories := protocolList copy asSet.
-
-				all := protocolList includes:(BrowserList nameListEntryForALL).
-
-				classList do:[:aClass |
-				    aClass methodDictionary keysAndValuesDo:[:sel :mthd |
-					|cat|
-
-					cat := mthd category.
-					(all
-					or:[protocolList includes:cat]) ifTrue:[
-					    whatToDo value:aClass value:cat.
-					    remainingClasses remove:aClass ifAbsent:nil.
-					    remainingCategories remove:cat ifAbsent:nil.
-					]
-				    ]
-				].
-				remainingClasses do:[:aClass |
-				    whatToDo value:aClass value:nil.
-				].
-			  ].
-
-	    "/ kludge - need a dummy organizer (with constant classList/protocolList)
-	    brwsr immediateUpdate value:true.
-	    brwsr protocolListGenerator value:generator.
-	    brwsr selectProtocols:protocolList copy.
-	    brwsr selectMethods:selectedMethods.
-
-	    brwsr immediateUpdate value:false.
-	]
+        newBrowserOrBufferDependingOn:where
+        label:nil
+        forSpec:spec
+        setupWith:[:brwsr |
+            |generator classList protocolList|
+
+            classList := classes copy.
+            protocolList := protocols collect:[:each | each string].
+
+            brwsr selectClasses:classList.
+            "/ setup a special generator ...
+
+            generator :=
+                Iterator on:[:whatToDo |
+                                |all remainingClasses remainingCategories|
+
+                                remainingClasses := classList copy asIdentitySet.
+                                remainingCategories := protocolList copy asSet.
+
+                                all := protocolList includes:(BrowserList nameListEntryForALL).
+
+                                classList do:[:aClass |
+                                    aClass methodDictionary keysAndValuesDo:[:sel :mthd |
+                                        |cat|
+
+                                        cat := mthd category.
+                                        (all
+                                        or:[protocolList includes:cat]) ifTrue:[
+                                            whatToDo value:aClass value:cat.
+                                            remainingClasses remove:aClass ifAbsent:nil.
+                                            remainingCategories remove:cat ifAbsent:nil.
+                                        ]
+                                    ]
+                                ].
+                                remainingClasses do:[:aClass |
+                                    whatToDo value:aClass value:nil.
+                                ].
+                          ].
+
+            "/ kludge - need a dummy organizer (with constant classList/protocolList)
+            brwsr immediateUpdate value:true.
+            brwsr protocolListGenerator value:generator.
+            brwsr selectProtocols:protocolList copy.
+            brwsr selectMethods:selectedMethods.
+
+            brwsr immediateUpdate value:false.
+        ]
 
     "Modified: / 28-02-2012 / 16:34:54 / cg"
 ! !
@@ -43130,13 +44514,13 @@
      otherwise, a match pattern is allowed and a multi-class browser is opened."
 
     ^ self class
-	askForClassToSearch:doWhatByDefault
-	single:singleClass
-	msgTail:msgTail
-	resources:resourcesOrNil
-	filter:nil
-	forBrowser:self
-	thenDo:aBlock
+        askForClassToSearch:doWhatByDefault
+        single:singleClass
+        msgTail:msgTail
+        resources:resourcesOrNil
+        filter:nil
+        forBrowser:self
+        thenDo:aBlock
 !
 
 askForClassToSearch:doWhatByDefault single:singleClass msgTail:msgTail thenDo:aBlock
@@ -43147,11 +44531,11 @@
      otherwise, a match pattern is allowed and a multi-class browser is opened."
 
     ^ self
-	askForClassToSearch:doWhatByDefault
-	single:singleClass
-	msgTail:msgTail
-	resources:resources
-	thenDo:aBlock
+        askForClassToSearch:doWhatByDefault
+        single:singleClass
+        msgTail:msgTail
+        resources:resources
+        thenDo:aBlock
 !
 
 findClass:classNameArg single:singleClass in:doWhat
@@ -43160,124 +44544,124 @@
     className := classNameArg.
 
     singleClass ifTrue:[
-	className includesMatchCharacters ifFalse:[
-	    currentNamespace := self currentNamespace.
-
-	    aliases := environment
-			keysAndValuesSelect:[:nm :val | (nm sameAs:classNameArg) ]
-			thenCollect:[:nm :val | val isNil
-						    ifTrue:[ nil ]
-						    ifFalse:[
-							val isBehavior
-							    ifTrue:[val]
-							    ifFalse:[val class]]].
-	    aliases := aliases select:[:cls | cls notNil].
-
-	    classes := (self class classesWithNameSimilarTo:className from:currentNamespace) asOrderedCollection.
-	    classes := classes reject:[:each | each isRealNameSpace].
-
-	    aliases := aliases reject:[:eachAlias | (classes includesIdentical:eachAlias)].
-	    classes addAll:aliases.
-
-	    class := classes firstIfEmpty:nil.
-	    class isNil ifTrue:[
-		className := self askForClassNameMatching:className.
-		"/ ^ self warn:('No such class: ' , className).
-	    ] ifFalse:[
-		classes size == 1 ifTrue:[
-		    className := class name
-		] ifFalse:[
-		    classNames := classes collect:[:each| (each name?'') , ' (',(each package?'?'),')'].
-		    classNameArg includesMatchCharacters ifFalse:[
-			classNames := classNames
-					collect:[:nm |
-					    |idx|
-					    idx := nm asLowercase indexOfSubCollection:classNameArg asLowercase.
-					    idx == 0 ifTrue:[
-						nm
-					    ] ifFalse:[
-						nm asText emphasizeFrom:idx to:idx+classNameArg size-1 with:#bold
-					    ]
-					]
-		    ].
-
-		    box := self listBoxTitle:('Multiple class with name similar to/containing ''',classNameArg allBold,'''\\Select class to switch to:') withCRs
-				      okText:'OK'
-					list:classNames "asSortedCollection".
-		    box initialText:(classes first name).
-		    box entryCompletionBlock:(DoWhatIMeanSupport classNameEntryCompletionBlock).
-		    box action:[:aString | className := aString string].
-
-		    browseButton := Button label:(resources string:'Browse All').
-		    browseButton action:[
-				    self
-					spawnClassBrowserFor:classes
-					label:('Classes named like "%1"' bindWith:classNameArg)
-					in:#newBrowser
-					select:false.
-				    box hide
-				 ].
-		    box addButton:browseButton before:box okButton.
-		    box extent:(400 @ 300).
-		    box open.
-
-		    className isNil ifTrue:[ "/ cancel
-			^ nil
-		    ].
-		    className := (className upTo:$( ) withoutTrailingSeparators.
-		].
-	    ].
-	] ifTrue:[
-	    className := self askForClassNameMatching:className.
-	].
-
-	className notNil ifTrue:[
-	    doWhat == #newBrowser ifTrue:[
-		brwsr := self class new.
-		brwsr allButOpen.
-		brwsr switchToClassNamed:className.
-		brwsr openWindow.
-	    ] ifFalse:[
-		brwsr := self.
-		doWhat == #newBuffer ifTrue:[
-		    brwsr createBuffer.
-		] ifFalse:[
-		    "/ self rememberLocationInHistory
-		].
-		brwsr switchToClassNamed:className.
-	    ].
-	].
-	^ self.
+        className includesMatchCharacters ifFalse:[
+            currentNamespace := self currentNamespace.
+
+            aliases := environment
+                        keysAndValuesSelect:[:nm :val | (nm sameAs:classNameArg) ]
+                        thenCollect:[:nm :val | val isNil
+                                                    ifTrue:[ nil ]
+                                                    ifFalse:[
+                                                        val isBehavior
+                                                            ifTrue:[val]
+                                                            ifFalse:[val class]]].
+            aliases := aliases select:[:cls | cls notNil].
+
+            classes := (self class classesWithNameSimilarTo:className from:currentNamespace) asOrderedCollection.
+            classes := classes reject:[:each | each isRealNameSpace].
+
+            aliases := aliases reject:[:eachAlias | (classes includesIdentical:eachAlias)].
+            classes addAll:aliases.
+
+            class := classes firstIfEmpty:nil.
+            class isNil ifTrue:[
+                className := self askForClassNameMatching:className.
+                "/ ^ self warn:('No such class: ' , className).
+            ] ifFalse:[
+                classes size == 1 ifTrue:[
+                    className := class name
+                ] ifFalse:[
+                    classNames := classes collect:[:each| (each name?'') , ' (',(each package?'?'),')'].
+                    classNameArg includesMatchCharacters ifFalse:[
+                        classNames := classNames
+                                        collect:[:nm |
+                                            |idx|
+                                            idx := nm asLowercase indexOfSubCollection:classNameArg asLowercase.
+                                            idx == 0 ifTrue:[
+                                                nm
+                                            ] ifFalse:[
+                                                nm asText emphasizeFrom:idx to:idx+classNameArg size-1 with:#bold
+                                            ]
+                                        ]
+                    ].
+
+                    box := self listBoxTitle:('Multiple class with name similar to/containing ''',classNameArg allBold,'''\\Select class to switch to:') withCRs
+                                      okText:'OK'
+                                        list:classNames "asSortedCollection".
+                    box initialText:(classes first name).
+                    box entryCompletionBlock:(DoWhatIMeanSupport classNameEntryCompletionBlock).
+                    box action:[:aString | className := aString string].
+
+                    browseButton := Button label:(resources string:'Browse All').
+                    browseButton action:[
+                                    self
+                                        spawnClassBrowserFor:classes
+                                        label:('Classes named like "%1"' bindWith:classNameArg)
+                                        in:#newBrowser
+                                        select:false.
+                                    box hide
+                                 ].
+                    box addButton:browseButton before:box okButton.
+                    box extent:(400 @ 300).
+                    box open.
+
+                    className isNil ifTrue:[ "/ cancel
+                        ^ nil
+                    ].
+                    className := (className upTo:$( ) withoutTrailingSeparators.
+                ].
+            ].
+        ] ifTrue:[
+            className := self askForClassNameMatching:className.
+        ].
+
+        className notNil ifTrue:[
+            doWhat == #newBrowser ifTrue:[
+                brwsr := self class new.
+                brwsr allButOpen.
+                brwsr switchToClassNamed:className.
+                brwsr openWindow.
+            ] ifFalse:[
+                brwsr := self.
+                doWhat == #newBuffer ifTrue:[
+                    brwsr createBuffer.
+                ] ifFalse:[
+                    "/ self rememberLocationInHistory
+                ].
+                brwsr switchToClassNamed:className.
+            ].
+        ].
+        ^ self.
     ].
 
     className includesMatchCharacters ifFalse:[
-	class := environment at:className asSymbol.
-	class isBehavior ifTrue:[
-	    classes := IdentitySet with:class
-	]
+        class := environment at:className asSymbol.
+        class isBehavior ifTrue:[
+            classes := IdentitySet with:class
+        ]
     ] ifTrue:[
-	classes := environment allClasses select:[:each | className match:each name] as:IdentitySet.
+        classes := environment allClasses select:[:each | className match:each name] as:IdentitySet.
     ].
     classes size == 0 ifTrue:[
-	^ self warn:'No className matches'.
+        ^ self warn:'No className matches'.
     ].
 
     classes copy do:[:eachClass |
-	|owner|
-
-	owner := eachClass owningClass.
-	[owner notNil] whileTrue:[classes add:owner. owner := owner owningClass].
+        |owner|
+
+        owner := eachClass owningClass.
+        [owner notNil] whileTrue:[classes add:owner. owner := owner owningClass].
     ].
     classes := classes asOrderedCollection.
 
     doWhat isNil ifTrue:[
-	"/ select them ...
-	self immediateUpdate value:true.
-	self selectedCategories value: (classes collect:[:each | each category] as:Set) asOrderedCollection.
-	self selectedClasses value:classes.
-	self immediateUpdate value:false.
-    ] ifFalse:[
-	self spawnClassBrowserFor:classes label:('classes matching ''',className,'''') in:doWhat select:false
+        "/ select them ...
+        self immediateUpdate value:true.
+        self selectedCategories value: (classes collect:[:each | each category] as:Set) asOrderedCollection.
+        self selectedClasses value:classes.
+        self immediateUpdate value:false.
+    ] ifFalse:[
+        self spawnClassBrowserFor:classes label:('classes matching ''',className,'''') in:doWhat select:false
     ]
 
     "Created: / 13-02-2000 / 20:35:30 / cg"
@@ -43296,52 +44680,52 @@
     currentMethod := self theSingleSelectedMethod.
     searchClass := searchClassOrNil.
     searchClass isNil ifTrue:[
-	searchClass := self classHierarchyTopClass value.
-	searchClass isNil ifTrue:[
-	    currentMethod notNil ifTrue:[
-		searchClass := currentMethod mclass
-	    ].
-	].
-	searchClass isNil ifTrue:[
-	    self information:'No class or method selected (cannot search).'.
-	    ^ self
-	].
-	(currentMethod notNil
-	and:[currentMethod selector == selector]) ifTrue:[
-	    searchClass := searchClass superclass.
-	].
+        searchClass := self classHierarchyTopClass value.
+        searchClass isNil ifTrue:[
+            currentMethod notNil ifTrue:[
+                searchClass := currentMethod mclass
+            ].
+        ].
+        searchClass isNil ifTrue:[
+            self information:'No class or method selected (cannot search).'.
+            ^ self
+        ].
+        (currentMethod notNil
+        and:[currentMethod selector == selector]) ifTrue:[
+            searchClass := searchClass superclass.
+        ].
     ].
 
     "/ search for the implementaion
     class := searchClass whichClassIncludesSelector:selector.
     class isNil ifTrue:[
-	searchClass isMeta ifTrue:[
-	    class := searchClass theNonMetaclass whichClassIncludesSelector:selector.
-	] ifFalse:[
-	    class := searchClass theMetaclass whichClassIncludesSelector:selector.
-	]
+        searchClass isMeta ifTrue:[
+            class := searchClass theNonMetaclass whichClassIncludesSelector:selector.
+        ] ifFalse:[
+            class := searchClass theMetaclass whichClassIncludesSelector:selector.
+        ]
     ].
 
     "/ cannot switch method in a singleMethod browser ...
     (where isNil
-	and:[navigationState isSingleMethodBrowser
-	     or:[ navigationState isMethodListBrowser and:[(navigationState methodList includesIdentical:mthd) not] ] ])
+        and:[navigationState isSingleMethodBrowser
+             or:[ navigationState isMethodListBrowser and:[(navigationState methodList includesIdentical:mthd) not] ] ])
     ifTrue:[
-	where := #newBuffer.
+        where := #newBuffer.
     ].
 
     class isNil ifTrue:[
-	self information:'None found'.
-    ] ifFalse:[
-	mthd := class compiledMethodAt:selector.
-
-	where isNil ifTrue:[
-	    self rememberLocationInHistory.
-	    self switchToClass:class selector:selector.
-	] ifFalse:[
-	    self spawnMethodBrowserFor:(Array with:mthd) in:where
-		 label:(resources string:'Response to %1' with:selector)
-	]
+        self information:'None found'.
+    ] ifFalse:[
+        mthd := class compiledMethodAt:selector.
+
+        where isNil ifTrue:[
+            self rememberLocationInHistory.
+            self switchToClass:class selector:selector.
+        ] ifFalse:[
+            self spawnMethodBrowserFor:(Array with:mthd) in:where
+                 label:(resources string:'Response to %1' with:selector)
+        ]
     ].
 !
 
@@ -43353,53 +44737,53 @@
     currentMethod := self theSingleSelectedMethod.
     searchClass := self theSingleSelectedClass.
     searchClass isNil ifTrue:[
-	searchClass := self classHierarchyTopClass value.
-	searchClass isNil ifTrue:[
-	    currentMethod notNil ifTrue:[
-		searchClass := currentMethod mclass
-	    ].
-	].
-	searchClass isNil ifTrue:[
-	    self information:'No class or method selected (cannot search).'.
-	    ^ self
-	]
+        searchClass := self classHierarchyTopClass value.
+        searchClass isNil ifTrue:[
+            currentMethod notNil ifTrue:[
+                searchClass := currentMethod mclass
+            ].
+        ].
+        searchClass isNil ifTrue:[
+            self information:'No class or method selected (cannot search).'.
+            ^ self
+        ]
     ].
 
     (currentMethod notNil
     and:[currentMethod selector == selector]) ifTrue:[
-	searchClass := searchClass superclass.
+        searchClass := searchClass superclass.
     ].
 
     "/ search for the implementaion
     class := searchClass whichClassIncludesSelector:selector.
     class isNil ifTrue:[
-	searchClass isMeta ifTrue:[
-	    class := searchClass theNonMetaclass whichClassIncludesSelector:selector.
-	] ifFalse:[
-	    class := searchClass theMetaclass whichClassIncludesSelector:selector.
-	]
+        searchClass isMeta ifTrue:[
+            class := searchClass theNonMetaclass whichClassIncludesSelector:selector.
+        ] ifFalse:[
+            class := searchClass theMetaclass whichClassIncludesSelector:selector.
+        ]
     ].
 
     "/ cannot switch method in a singleMethod browser ...
     (where isNil
-	and:[navigationState isSingleMethodBrowser
-	     or:[ navigationState isMethodListBrowser and:[(navigationState methodList includesIdentical:mthd) not] ] ])
+        and:[navigationState isSingleMethodBrowser
+             or:[ navigationState isMethodListBrowser and:[(navigationState methodList includesIdentical:mthd) not] ] ])
     ifTrue:[
-	where := #newBuffer.
+        where := #newBuffer.
     ].
 
     class isNil ifTrue:[
-	self information:'None found'.
-    ] ifFalse:[
-	mthd := class compiledMethodAt:selector.
-
-	where isNil ifTrue:[
-	    self rememberLocationInHistory.
-	    self switchToClass:class selector:selector.
-	] ifFalse:[
-	    self spawnMethodBrowserFor:(Array with:mthd) in:where
-		 label:(resources string:'Response to %1' with:selector)
-	]
+        self information:'None found'.
+    ] ifFalse:[
+        mthd := class compiledMethodAt:selector.
+
+        where isNil ifTrue:[
+            self rememberLocationInHistory.
+            self switchToClass:class selector:selector.
+        ] ifFalse:[
+            self spawnMethodBrowserFor:(Array with:mthd) in:where
+                 label:(resources string:'Response to %1' with:selector)
+        ]
     ].
 !
 
@@ -43411,13 +44795,13 @@
     cls := self anySelectedClass.
     mthd := self anySelectedMethod.
     (mthd notNil and:[cls isNil]) ifTrue:[
-	cls := mthd mclass
+        cls := mthd mclass
     ].
     mthd notNil ifTrue:[
-	sel := mthd selector.
-	self class addToBookMarks:cls selector:sel
-    ] ifFalse:[
-	self class addToBookMarks:cls selector:nil
+        sel := mthd selector.
+        self class addToBookMarks:cls selector:sel
+    ] ifFalse:[
+        self class addToBookMarks:cls selector:nil
     ]
 
     "Modified: / 05-05-2011 / 12:20:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -43444,12 +44828,12 @@
      otherwise, a match pattern is allowed and a multi-class browser is opened."
 
     self
-	askForClassToSearch:doWhatByDefault
-	single:singleClass
-	msgTail:''
-	thenDo:[:className :single :doWhat |
-	    self findClass:className single:singleClass in:doWhat.
-	]
+        askForClassToSearch:doWhatByDefault
+        single:singleClass
+        msgTail:''
+        thenDo:[:className :single :doWhat |
+            self findClass:className single:singleClass in:doWhat.
+        ]
 !
 
 searchMenuFindImplementationOf
@@ -43502,50 +44886,50 @@
     title := 'selector to find:\(TAB for completion; matchPattern allowed)'.
 
     box := self
-		listBoxForCodeSelectionTitle:title withCRs
-		isSelector:true
-		okText:'Find'.
+                listBoxForCodeSelectionTitle:title withCRs
+                isSelector:true
+                okText:'Find'.
     box label:(resources string:'find method').
 
     matchBlock :=
-	[
-	    |searchPattern matchingSelectors|
-
-	    searchPattern := box contents.
-	    searchPattern includesMatchCharacters ifTrue:[
-		matchingSelectors := Set new.
-		environment allMethodsWithSelectorDo:[:eachMethod :eachSelector |
-		    (searchPattern match:eachSelector) ifTrue:[
-			matchingSelectors add:eachSelector.
-		    ].
-		].
-		box list:(matchingSelectors asOrderedCollection sort).
-		false.
-	    ] ifFalse:[
-		true
-	    ]
+        [
+            |searchPattern matchingSelectors|
+
+            searchPattern := box contents.
+            searchPattern includesMatchCharacters ifTrue:[
+                matchingSelectors := Set new.
+                environment allMethodsWithSelectorDo:[:eachMethod :eachSelector |
+                    (searchPattern match:eachSelector) ifTrue:[
+                        matchingSelectors add:eachSelector.
+                    ].
+                ].
+                box list:(matchingSelectors asOrderedCollection sort).
+                false.
+            ] ifFalse:[
+                true
+            ]
        ].
 
     entryCompletionBlock :=
-	[:contents |
-	    |s what longest matching|
-
-	    box topView withWaitCursorDo:[
-		s := contents withoutSpaces.
-		s includesMatchCharacters ifTrue:[
-		    matchBlock value
-		] ifFalse:[
-		    what := DoWhatIMeanSupport selectorCompletion:s inEnvironment:environment.
-		    longest := what first.
-		    matching := what last.
-		    box list:matching.
-		    box contents:longest.
-		    matching size ~~ 1 ifTrue:[
-			self window beep
-		    ]
-		]
-	    ]
-	].
+        [:contents |
+            |s what longest matching|
+
+            box topView withWaitCursorDo:[
+                s := contents withoutSpaces.
+                s includesMatchCharacters ifTrue:[
+                    matchBlock value
+                ] ifFalse:[
+                    what := DoWhatIMeanSupport selectorCompletion:s inEnvironment:environment.
+                    longest := what first.
+                    matching := what last.
+                    box list:matching.
+                    box contents:longest.
+                    matching size ~~ 1 ifTrue:[
+                        self window beep
+                    ]
+                ]
+            ]
+        ].
     box entryCompletionBlock:entryCompletionBlock.
     box acceptCheck:matchBlock.
     box extent:(300@300).
@@ -43565,38 +44949,38 @@
     ].
 
     [:restart |
-	box
-	    action:[:aString |
-		|browser|
-
-		aString includesMatchCharacters ifFalse:[
-		    openHow == #newBuffer ifTrue:[
-			browser := self.
-			browser createBuffer
-		    ] ifFalse:[
-			openHow == #newBrowser ifTrue:[
-			    browser := self browseMenuClone.
-			] ifFalse:[
-			    (self
-			      askIfModified:'Code was modified.\\Switch to that method anyway ?'
-			      default:false
-			      withAccept:false
-			      withCompare:true) ifTrue:[
-				browser := self.
-			    ].
-			]
-		    ].
-		    browser notNil ifTrue:[
-			browser switchToAnyMethod:aString string.
-		    ]
-		] ifTrue:[
-		    restart value
-		]
-	    ].
-	box contents size > 0 ifTrue:[
-	    entryCompletionBlock value:(box contents).
-	].
-	box showAtPointer.
+        box
+            action:[:aString |
+                |browser|
+
+                aString includesMatchCharacters ifFalse:[
+                    openHow == #newBuffer ifTrue:[
+                        browser := self.
+                        browser createBuffer
+                    ] ifFalse:[
+                        openHow == #newBrowser ifTrue:[
+                            browser := self browseMenuClone.
+                        ] ifFalse:[
+                            (self
+                              askIfModified:'Code was modified.\\Switch to that method anyway ?'
+                              default:false
+                              withAccept:false
+                              withCompare:true) ifTrue:[
+                                browser := self.
+                            ].
+                        ]
+                    ].
+                    browser notNil ifTrue:[
+                        browser switchToAnyMethod:aString string.
+                    ]
+                ] ifTrue:[
+                    restart value
+                ]
+            ].
+        box contents size > 0 ifTrue:[
+            entryCompletionBlock value:(box contents).
+        ].
+        box showAtPointer.
     ] valueWithRestart
 
     "Modified: / 04-09-2013 / 17:41:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -43604,12 +44988,12 @@
 
 searchMenuFindResponseTo
     self
-	askForSelector:'Goto implementation of (if sent to instances of selected class):\(the list below represents the full protocol)' withCRs
-	allowBuffer:true
-	allowBrowser:true
-	thenDo:[:selector :whereWanted |
-	    self findResponseTo:selector in:whereWanted
-	]
+        askForSelector:'Goto implementation of (if sent to instances of selected class):\(the list below represents the full protocol)' withCRs
+        allowBuffer:true
+        allowBrowser:true
+        thenDo:[:selector :whereWanted |
+            self findResponseTo:selector in:whereWanted
+        ]
 
     "Modified: / 29-08-2013 / 09:32:14 / cg"
 !
@@ -43624,20 +45008,20 @@
     cls := self anySelectedClass.
     mthd := self anySelectedMethod.
     (mthd notNil and:[cls isNil]) ifTrue:[
-	cls := mthd mclass
+        cls := mthd mclass
     ].
     mthd notNil ifTrue:[
-	sel := mthd selector.
-	meta := cls isMetaclass.
-	cls := cls theNonMetaclass.
-	bookmarks := bookmarks
-			select:[:each |
-				    meta ~~ each meta
-				    or:[each className ~= cls name
-				    or:[each selector ~= sel]]
-			       ].
-    ] ifFalse:[
-	self warn:'no method selected'
+        sel := mthd selector.
+        meta := cls isMetaclass.
+        cls := cls theNonMetaclass.
+        bookmarks := bookmarks
+                        select:[:each |
+                                    meta ~~ each meta
+                                    or:[each className ~= cls name
+                                    or:[each selector ~= sel]]
+                               ].
+    ] ifFalse:[
+        self warn:'no method selected'
     ]
 
     "Modified: / 02-06-2011 / 11:35:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -43656,85 +45040,85 @@
     "/ provide a reasonable default in the pull-down-list
     currentClass := self anySelectedClass.
     currentClass isNil ifTrue:[
-	m := self anySelectedMethod.
-	currentClass := m mclass.
+        m := self anySelectedMethod.
+        currentClass := m mclass.
     ].
 
     LastMethodMoveOrCopyTargetClass notNil ifTrue:[
-	initial := environment classNamed:LastMethodMoveOrCopyTargetClass.
-	initial notNil ifTrue:[
-	    (currentClass notNil and:[currentClass theNonMetaclass name = initial name]) ifTrue:[
-		initial := nil
-	    ]
-	].
-	initial notNil ifTrue:[
-	    currentClass isMeta ifTrue:[
-		initial := initial theMetaclass
-	    ] ifFalse:[
-		initial := initial theNonMetaclass
-	    ].
-	    initial := initial name.
-	].
+        initial := environment classNamed:LastMethodMoveOrCopyTargetClass.
+        initial notNil ifTrue:[
+            (currentClass notNil and:[currentClass theNonMetaclass name = initial name]) ifTrue:[
+                initial := nil
+            ]
+        ].
+        initial notNil ifTrue:[
+            currentClass isMeta ifTrue:[
+                initial := initial theMetaclass
+            ] ifFalse:[
+                initial := initial theNonMetaclass
+            ].
+            initial := initial name.
+        ].
     ].
 
     initial isNil ifTrue:[
-	(sup := currentClass superclass) notNil ifTrue:[
-	    initial := sup name
-	] ifFalse:[
-	    initial := nil.
-	].
-    ].
-
-    supers := currentClass allSuperclasses reverse.
+        (sup := currentClass superclass) notNil ifTrue:[
+            initial := sup name
+        ] ifFalse:[
+            initial := nil.
+        ].
+    ].
+
+    supers := currentClass allSuperclasses reversed.
     currentClass isMeta ifTrue:[
-	supers := supers select:[:each | each isSubclassOf:Class].
+        supers := supers select:[:each | each isSubclassOf:Class].
     ].
     supers := supers collect:[:cls | cls name].
 
     subs := (currentClass allSubclasses collect:[:cls | cls name]).
     list := OrderedCollection withAll:supers.
     (supers notEmpty and:[subs notEmpty]) ifTrue:[
-	list add:'---- '; add:currentClass name; add:' ----'
+        list add:'---- '; add:currentClass name; add:' ----'
     ].
     list addAll:(subs sort).
 
     doWhat == #copy ifTrue:[
-	reqString := 'Copy selected method(s) to which class ?\(enter ''Foo class'' to copy to Metaclass)'.
-	okLabel := 'Copy'.
-	title := 'Copy method(s)'.
-    ] ifFalse:[
-	okLabel := 'Move'.
-	title := 'Move method(s)'.
-	doWhat == #move ifTrue:[
-	    reqString := 'Move selected method(s) to which class ?\(enter ''Foo class'' to move to Metaclass)'.
-	] ifFalse:[
-	    doWhat == #moveAndForward ifTrue:[
-		reqString := 'Move selected method(s) to which class ?'.
-	    ] ifFalse:[
-		self error:'unknown aspect: ', doWhat printString.
-	    ].
-	].
+        reqString := 'Copy selected method(s) to which class ?\(enter ''Foo class'' to copy to Metaclass)'.
+        okLabel := 'Copy'.
+        title := 'Copy method(s)'.
+    ] ifFalse:[
+        okLabel := 'Move'.
+        title := 'Move method(s)'.
+        doWhat == #move ifTrue:[
+            reqString := 'Move selected method(s) to which class ?\(enter ''Foo class'' to move to Metaclass)'.
+        ] ifFalse:[
+            doWhat == #moveAndForward ifTrue:[
+                reqString := 'Move selected method(s) to which class ?'.
+            ] ifFalse:[
+                self error:'unknown aspect: ', doWhat printString.
+            ].
+        ].
     ].
 
     [
-	newClassName := Dialog
-			request:(resources string:reqString) withCRs
-			initialAnswer:(initial ? '')
-			okLabel:(resources string:okLabel)
-			title:(resources string:title)
-			onCancel:nil
-			list:list
-			entryCompletionBlock:(DoWhatIMeanSupport classNameEntryCompletionBlock).
-
-	newClassName isNil ifTrue:[^ nil].
-	(newClassName startsWith:'---- ') ifTrue:[^ nil].
-
-	newClass := self classIfValidNonMetaClassName:newClassName.
-	newClass notNil ifTrue:[
-	    LastMethodMoveOrCopyTargetClass := newClass theNonMetaclass name.
-	    ^ newClass.
-	].
-	initial := newClassName.
+        newClassName := Dialog
+                        request:(resources string:reqString) withCRs
+                        initialAnswer:(initial ? '')
+                        okLabel:(resources string:okLabel)
+                        title:(resources string:title)
+                        onCancel:nil
+                        list:list
+                        entryCompletionBlock:(DoWhatIMeanSupport classNameEntryCompletionBlock).
+
+        newClassName isNil ifTrue:[^ nil].
+        (newClassName startsWith:'---- ') ifTrue:[^ nil].
+
+        newClass := self classIfValidNonMetaClassName:newClassName.
+        newClass notNil ifTrue:[
+            LastMethodMoveOrCopyTargetClass := newClass theNonMetaclass name.
+            ^ newClass.
+        ].
+        initial := newClassName.
     ] loop
 
     "Modified: / 13-02-2012 / 17:43:10 / cg"
@@ -43753,23 +45137,23 @@
 
     source1 := m1 source string.
     source1 isNil ifTrue:[
-	self warn:'Oops - methods source is gone. Cannot compare source.'.
-	^ self
+        self warn:'Oops - methods source is gone. Cannot compare source.'.
+        ^ self
     ].
     source2 := m2 source string.
     source2 isNil ifTrue:[
-	self warn:'Oops - methods source is gone. Cannot compare source.'.
-	^ self
+        self warn:'Oops - methods source is gone. Cannot compare source.'.
+        ^ self
     ].
 
     m1Class := m1 mclass.
     m2Class := m2 mclass.
 
     v := DiffCodeView
-	    openOn:source1
-	    label:(m1Class name , ' ' , (m1 printStringForBrowserWithSelector:m1 selector inClass:m1Class))
-	    and:source2
-	    label:(m2Class name , ' ' , (m2 printStringForBrowserWithSelector:m2 selector inClass:m2Class)).
+            openOn:source1
+            label:(m1Class name , ' ' , (m1 printStringForBrowserWithSelector:m1 selector inClass:m1Class))
+            and:source2
+            label:(m2Class name , ' ' , (m2 printStringForBrowserWithSelector:m2 selector inClass:m2Class)).
     v label:label.
     v waitUntilVisible.
     ^ self
@@ -43786,125 +45170,125 @@
      isExtension title labelA labelB|
 
     self withWaitCursorDo:[
-	Method flushSourceStreamCache.
-
-	methods do:[:eachMethod |
-	    |classPackage methodPackage|
-
-	    mclass := eachMethod mclass.
-	    mclass isNil ifTrue:[
-		self warn:('Cannot find methods class (obsolete).').
-	    ] ifFalse:[
-		classPackage := mclass package.
-		methodPackage := eachMethod package.
-		(classPackage == methodPackage or:[ methodPackage == PackageId noProjectID ]) ifTrue:[
-		    theNonMetaclass := mclass theNonMetaclass.
-		    isExtension := false.
-		] ifFalse:[
-		    isExtension := true.
-		].
-
-		mselector := eachMethod selector.
-
-		currentSource := eachMethod source asString.
-		current := ChangeSet new.
-		current addMethodChange:eachMethod in:mclass.
-
-		self busyLabel:'getting repository source...' with:nil.
-
-		isExtension ifTrue:[
-		    repositoryChangeSet := manager utilities
-						 changeSetForExtensionMethodsForPackage:methodPackage
-						 askForRevision:false
-						 usingManager:manager.
-		    repositoryChangeSet := repositoryChangeSet
-				    select:[:eachChange | eachChange isMethodChange
-							  and:[eachChange selector = mselector
-							  and:[eachChange className = mclass name]]].
-		    lastClass := nil.
-		] ifFalse:[
-		    (lastClass ~~ theNonMetaclass) ifTrue:[
-			aStream := self sourceStreamForRepositorySourceOfClass:theNonMetaclass.
-			aStream notNil ifTrue:[
-			    aStream class readErrorSignal handle:[:ex |
-				self warn:('read error while reading extracted source\\' , ex description) withCRs.
-				aStream close.
-				comparedSource := nil.
-			    ] do:[
-				comparedSource := aStream contents asString.
-			    ].
-			    aStream close.
-
-			    thisRevString := theNonMetaclass revision.
-			    thisRevString isNil ifTrue:[
-				thisRevString := 'no revision'
-			    ].
-
-			    lastRepositoryChangeSet := ChangeSet fromStream:(s := comparedSource readStream). s close.
-			    lastClass := theNonMetaclass.
-
-			    self busyLabel:'comparing...' with:nil.
-			].
-		    ].
-		    repositoryChangeSet := (lastRepositoryChangeSet ? #())
-				    select:[:eachChange | eachChange isMethodChange
-							  and:[eachChange selector = mselector
-							  and:[eachChange className = mclass name]]].
-		].
-		repositoryChangeSet notEmptyOrNil ifTrue:[
-		    diffs := repositoryChangeSet diffSetsAgainst:current.
-		].
-		allDiffs isNil ifTrue:[
-		    allDiffs := diffs.
-		] ifFalse:[
-		    allDiffs changed addAll:(diffs changed).
-		    allDiffs onlyInArg addAll:(diffs onlyInArg).
-		    allDiffs onlyInReceiver addAll:(diffs onlyInReceiver).
-		].
-	    ].
-	].
+        Method flushSourceStreamCache.
+
+        methods do:[:eachMethod |
+            |classPackage methodPackage|
+
+            mclass := eachMethod mclass.
+            mclass isNil ifTrue:[
+                self warn:('Cannot find methods class (obsolete).').
+            ] ifFalse:[
+                classPackage := mclass package.
+                methodPackage := eachMethod package.
+                (classPackage == methodPackage or:[ methodPackage == PackageId noProjectID ]) ifTrue:[
+                    theNonMetaclass := mclass theNonMetaclass.
+                    isExtension := false.
+                ] ifFalse:[
+                    isExtension := true.
+                ].
+
+                mselector := eachMethod selector.
+
+                currentSource := eachMethod source asString.
+                current := ChangeSet new.
+                current addMethodChange:eachMethod in:mclass.
+
+                self busyLabel:'getting repository source...' with:nil.
+
+                isExtension ifTrue:[
+                    repositoryChangeSet := manager utilities
+                                                 changeSetForExtensionMethodsForPackage:methodPackage
+                                                 askForRevision:false
+                                                 usingManager:manager.
+                    repositoryChangeSet := repositoryChangeSet
+                                    select:[:eachChange | eachChange isMethodChange
+                                                          and:[eachChange selector = mselector
+                                                          and:[eachChange className = mclass name]]].
+                    lastClass := nil.
+                ] ifFalse:[
+                    (lastClass ~~ theNonMetaclass) ifTrue:[
+                        aStream := self sourceStreamForRepositorySourceOfClass:theNonMetaclass.
+                        aStream notNil ifTrue:[
+                            aStream class readErrorSignal handle:[:ex |
+                                self warn:('read error while reading extracted source\\' , ex description) withCRs.
+                                aStream close.
+                                comparedSource := nil.
+                            ] do:[
+                                comparedSource := aStream contents asString.
+                            ].
+                            aStream close.
+
+                            thisRevString := theNonMetaclass revision.
+                            thisRevString isNil ifTrue:[
+                                thisRevString := 'no revision'
+                            ].
+
+                            lastRepositoryChangeSet := ChangeSet fromStream:(s := comparedSource readStream). s close.
+                            lastClass := theNonMetaclass.
+
+                            self busyLabel:'comparing...' with:nil.
+                        ].
+                    ].
+                    repositoryChangeSet := (lastRepositoryChangeSet ? #())
+                                    select:[:eachChange | eachChange isMethodChange
+                                                          and:[eachChange selector = mselector
+                                                          and:[eachChange className = mclass name]]].
+                ].
+                repositoryChangeSet notEmptyOrNil ifTrue:[
+                    diffs := repositoryChangeSet diffSetsAgainst:current.
+                ].
+                allDiffs isNil ifTrue:[
+                    allDiffs := diffs.
+                ] ifFalse:[
+                    allDiffs changed addAll:(diffs changed).
+                    allDiffs onlyInArg addAll:(diffs onlyInArg).
+                    allDiffs onlyInReceiver addAll:(diffs onlyInReceiver).
+                ].
+            ].
+        ].
     ].
 
     (allDiffs isNil or:[allDiffs isEmpty]) ifTrue:[
-	(methods
-	    contains:[:m |
-		ChangeSet current includesChangeForClass:m mclass selector:m selector
-	    ]
-	) ifTrue:[
-	    (self confirm:'Versions are identical.\\Remove entries from changeSet ?' withCRs)
-	    ifTrue:[
-		methods do:[:m |
-		    ChangeSet current condenseChangesForClass:m mclass selector:m selector.
-		].
-	    ].
-	] ifFalse:[
-	    self information:'Versions are identical.'.
-	].
-	^ self.
+        (methods
+            contains:[:m |
+                ChangeSet current includesChangeForClass:m mclass selector:m selector
+            ]
+        ) ifTrue:[
+            (self confirm:'Versions are identical.\\Remove entries from changeSet ?' withCRs)
+            ifTrue:[
+                methods do:[:m |
+                    ChangeSet current condenseChangesForClass:m mclass selector:m selector.
+                ].
+            ].
+        ] ifFalse:[
+            self information:'Versions are identical.'.
+        ].
+        ^ self.
     ].
 
     title := methods size == 1
-		ifTrue:['Difference of %1' bindWith:methods first whoString]
-		ifFalse:['Differences of %1 classes' bindWith:methods size].
+                ifTrue:['Difference of %1' bindWith:methods first whoString]
+                ifFalse:['Differences of %1 classes' bindWith:methods size].
 
     labelA := 'Repository'.
     labelB := 'Image'.
 
     (methods collect:[:m | m mclass theNonMetaclass] as:Set) size == 1 ifTrue:[
-	"/ all methods of the same class
-	(methods collect:[:m | m package] as:Set) size == 1 ifTrue:[
-	    "/ all methods from the same package (source container)
-	    labelA := 'Repository (%1)' bindWith:(thisRevString ? '?').
-	    labelB := 'Image (based on %1)' bindWith:(methods first mclass theNonMetaclass revision).
-	].
+        "/ all methods of the same class
+        (methods collect:[:m | m package] as:Set) size == 1 ifTrue:[
+            "/ all methods from the same package (source container)
+            labelA := 'Repository (%1)' bindWith:(thisRevString ? '?').
+            labelB := 'Image (based on %1)' bindWith:(methods first mclass theNonMetaclass revision).
+        ].
     ].
 
     VersionDiffBrowser
-	openOnDiffSet:allDiffs
-	labelA:labelA
-	labelB:labelB
-	title:title
-	ignoreExtensions:false.
+        openOnDiffSet:allDiffs
+        labelA:labelA
+        labelB:labelB
+        title:title
+        ignoreExtensions:false.
 
     self normalLabel.
 
@@ -43939,13 +45323,13 @@
     methods := IdentitySet new.
     numVersionMethods := 0.
     methodsToRemove do:[:eachMethod |
-	classes add:(eachMethod mclass).
-	methods add:eachMethod.
-	(AbstractSourceCodeManager isVersionMethodSelector:eachMethod selector) ifTrue:[
-	    eachMethod mclass isMeta ifTrue:[
-		numVersionMethods := numVersionMethods + 1
-	    ]
-	]
+        classes add:(eachMethod mclass).
+        methods add:eachMethod.
+        (AbstractSourceCodeManager isVersionMethodSelector:eachMethod selector) ifTrue:[
+            eachMethod mclass isMeta ifTrue:[
+                numVersionMethods := numVersionMethods + 1
+            ]
+        ]
     ].
     numClasses := classes size.
     numMethods := methodsToRemove value size.
@@ -43953,73 +45337,73 @@
     numMethods == 0 ifTrue:[^ self].
 
     numMethods == 1 ifTrue:[
-	msg := 'Really remove ''%3'' from ''%4'' ?'.
-    ] ifFalse:[
-	(methods collect:[:m | m selector]) size == 1 ifTrue:[
-	    msg := 'Really remove ''%3'''.
-	] ifFalse:[
-	    msg := 'Really remove %1 methods'.
-	].
-	numClasses > 1 ifTrue:[
-	    msg := msg , ' from %2 classes'
-	] ifFalse:[
-	    msg := msg , ' from ''%4'''
-	].
-	msg := msg , ' ?'
+        msg := 'Really remove ''%3'' from ''%4'' ?'.
+    ] ifFalse:[
+        (methods collect:[:m | m selector]) size == 1 ifTrue:[
+            msg := 'Really remove ''%3'''.
+        ] ifFalse:[
+            msg := 'Really remove %1 methods'.
+        ].
+        numClasses > 1 ifTrue:[
+            msg := msg , ' from %2 classes'
+        ] ifFalse:[
+            msg := msg , ' from ''%4'''
+        ].
+        msg := msg , ' ?'
     ].
     classes notEmpty ifTrue:[
-	firstClassName := classes first name
-    ] ifFalse:[
-	firstClassName := '???'
+        firstClassName := classes first name
+    ] ifFalse:[
+        firstClassName := '???'
     ].
     msg := resources
-		string:msg
-		with:numMethods printString
-		with:numClasses printString
-		with:(methods first selector ? '?') allBold
-		with:firstClassName allBold.
+                string:msg
+                with:numMethods printString
+                with:numClasses printString
+                with:(methods first selector ? '?') allBold
+                with:firstClassName allBold.
 
     numVersionMethods > 0 ifTrue:[
-	msg := msg , '\\' ,
-	       (resources
-		string:'ATTENTION: Removing a classes version method might make the versionManagers life hard.' allBold).
-
-	(OptionBox
-		      request:msg withCRs
-		      label:(resources string:'Attention')
-		      image:(WarningBox iconBitmap)
-		      buttonLabels:(resources array:#('Cancel' 'Remove'))
-		      values:#(false true)
-		      default:false
-		      onCancel:false) ifFalse:[^ self].
-
-    ] ifFalse:[
-	(self confirm:msg withCRs) ifFalse:[^ self].
+        msg := msg , '\\' ,
+               (resources
+                string:'ATTENTION: Removing a classes version method might make the versionManagers life hard.' allBold).
+
+        (OptionBox
+                      request:msg withCRs
+                      label:(resources string:'Attention')
+                      image:(WarningBox iconBitmap)
+                      buttonLabels:(resources array:#('Cancel' 'Remove'))
+                      values:#(false true)
+                      default:false
+                      onCancel:false) ifFalse:[^ self].
+
+    ] ifFalse:[
+        (self confirm:msg withCRs) ifFalse:[^ self].
     ].
 
     classes := methods := nil.
 
     nilOrNextOrPrevious notNil ifTrue:[
-	|methodList idx|
-
-	methodList := self methodListApp methodList.
-	nilOrNextOrPrevious == #next ifTrue:[
-	    idx := (methodList indexOf:(methodsToRemove last)) + 1.
-	] ifFalse:[
-	    idx := (methodList indexOf:(methodsToRemove first)) - 1
-	].
-	(idx between:1 and:methodList size) ifTrue:[
-	    methodToSelect := methodList at:idx.
-	].
+        |methodList idx|
+
+        methodList := self methodListApp methodList.
+        nilOrNextOrPrevious == #next ifTrue:[
+            idx := (methodList indexOf:(methodsToRemove last)) + 1.
+        ] ifFalse:[
+            idx := (methodList indexOf:(methodsToRemove first)) - 1
+        ].
+        (idx between:1 and:methodList size) ifTrue:[
+            methodToSelect := methodList at:idx.
+        ].
     ].
 
     "/ then, remove them
     self withWaitCursorDo:[
-	self doRemoveSelectedMethodsUnconfirmed.
+        self doRemoveSelectedMethodsUnconfirmed.
     ].
 
     methodToSelect notNil ifTrue:[
-	self selectMethod:methodToSelect
+        self selectMethod:methodToSelect
     ].
 !
 
@@ -44032,21 +45416,21 @@
     numMethods == 0 ifTrue:[^ self].
 
     (self canUseRefactoringSupport) ifTrue:[
-	numMethods > 1 ifTrue:[
-	    change := CompositeRefactoryChange named:('Remove ', numMethods printString , ' methods').
-	    methods do:[:eachMethod |
-		change removeMethod:(eachMethod selector) from:(eachMethod mclass)
-	    ].
-	] ifFalse:[
-	    mthd := methods first.
-	    change := RemoveMethodChange remove:(mthd selector) from:(mthd mclass)
-	].
-
-	RefactoryChangeManager performChange: change
-    ] ifFalse:[
-	methods do:[:eachMethod |
-	    (eachMethod mclass) removeSelector:(eachMethod selector).
-	].
+        numMethods > 1 ifTrue:[
+            change := CompositeRefactoryChange named:('Remove ', numMethods printString , ' methods').
+            methods do:[:eachMethod |
+                change removeMethod:(eachMethod selector) from:(eachMethod mclass)
+            ].
+        ] ifFalse:[
+            mthd := methods first.
+            change := RemoveMethodChange remove:(mthd selector) from:(mthd mclass)
+        ].
+
+        RefactoryChangeManager performChange: change
+    ] ifFalse:[
+        methods do:[:eachMethod |
+            (eachMethod mclass) removeSelector:(eachMethod selector).
+        ].
     ]
 !
 
@@ -44070,23 +45454,23 @@
     stillAsking := true.
 
     [stillAsking] whileTrue:[
-	saveName := self
-			fileNameDialogForFileOut:(resources string:(boxTitleOrNil ? 'FileOut methods as:'))
-			default:defaultName.
-
-	saveName isNil ifTrue:[
-	    ^ self
-	].
-
-	saveName isEmpty ifTrue:[       "/ can no longer happen ...
-	    (self confirm:'Bad name given - try again ?') ifFalse:[
-		^ self.
-	    ].
-	    stillAsking := true.
-	] ifFalse:[
-	    FileSelectionBox lastFileSelectionDirectory:(saveName asFilename directoryName).
-	    stillAsking := false.
-	].
+        saveName := self
+                        fileNameDialogForFileOut:(resources string:(boxTitleOrNil ? 'FileOut methods as:'))
+                        default:defaultName.
+
+        saveName isNil ifTrue:[
+            ^ self
+        ].
+
+        saveName isEmpty ifTrue:[       "/ can no longer happen ...
+            (self confirm:'Bad name given - try again ?') ifFalse:[
+                ^ self.
+            ].
+            stillAsking := true.
+        ] ifFalse:[
+            FileSelectionBox lastFileSelectionDirectory:(saveName asFilename directoryName).
+            stillAsking := false.
+        ].
     ].
 
     self busyLabel:'saving...'.
@@ -44102,59 +45486,59 @@
 
     self busyLabel:'saving...'.
     Class fileOutErrorSignal
-	handle:[:ex |
-	    self warn:'Cannot fileOut\(%2)' with:ex description.
-	    self normalLabel.
-	    ex return.
-	] do:[
-	    formatSymbolOrNil == #sif ifTrue:[
-		(SmalltalkInterchangeFileManager newForFileOut)
-		    fileName:aFilename;
-		    addMethods:aCollectionOfMethods;
-		    fileOut
-	    ] ifFalse:[
-		fileName := aFilename asFilename.
-
-		"
-		 if file exists, save original in a .sav file
-		"
-		fileName exists ifTrue:[
-		    fileName copyTo:(fileName withSuffix:'sav')
-		].
-		[
-		    aStream := fileName newReadWriteStream.
-		] on:FileStream openErrorSignal do:[:ex|
-		    ^ self warn:('Cannot create file:', fileName name)
-		].
-
-		(formatSymbolOrNil ~~ #xml
-		and:[formatSymbolOrNil ~~ #binary]) ifTrue:[
-		    aStream := EncodedStream stream:aStream encoder:(CharacterEncoder encoderForUTF8).
-		    aStream nextPutLine:'"{ Encoding: utf8 }" !!'.
-		].
-
-		aCollectionOfMethods do:[:aMethod |
-		    formatSymbolOrNil == #xml ifTrue:[
-			aMethod mclass fileOutXMLMethod:aMethod on:aStream
-		    ] ifFalse:[
-			formatSymbolOrNil == #binary ifTrue:[
-			    self shouldImplement. "unimplemented: binary fileout"
-			    "/ aClass binaryFileOutOn:(saveName asFilename writeStream binary)
-			] ifFalse:[
-			    withPackage ifTrue:[
-				lastPackage ~= aMethod package ifTrue:[
-				    lastPackage := aMethod package.
-				    aStream nextPutAll:('"{ Package: ''%1'' }" !!\\' bindWith:(lastPackage)) withCRs.
-				].
-			    ].
-			    aMethod mclass fileOutMethod:aMethod on:aStream.
-			    aStream cr.
-			]
-		    ]
-		].
-		aStream close
-	    ]
-	].
+        handle:[:ex |
+            self warn:'Cannot fileOut\(%2)' with:ex description.
+            self normalLabel.
+            ex return.
+        ] do:[
+            formatSymbolOrNil == #sif ifTrue:[
+                (SmalltalkInterchangeFileManager newForFileOut)
+                    fileName:aFilename;
+                    addMethods:aCollectionOfMethods;
+                    fileOut
+            ] ifFalse:[
+                fileName := aFilename asFilename.
+
+                "
+                 if file exists, save original in a .sav file
+                "
+                fileName exists ifTrue:[
+                    fileName copyTo:(fileName withSuffix:'sav')
+                ].
+                [
+                    aStream := fileName newReadWriteStream.
+                ] on:FileStream openErrorSignal do:[:ex|
+                    ^ self warn:('Cannot create file:', fileName name)
+                ].
+
+                (formatSymbolOrNil ~~ #xml
+                and:[formatSymbolOrNil ~~ #binary]) ifTrue:[
+                    aStream := EncodedStream stream:aStream encoder:(CharacterEncoder encoderForUTF8).
+                    aStream nextPutLine:'"{ Encoding: utf8 }" !!'.
+                ].
+
+                aCollectionOfMethods do:[:aMethod |
+                    formatSymbolOrNil == #xml ifTrue:[
+                        aMethod mclass fileOutXMLMethod:aMethod on:aStream
+                    ] ifFalse:[
+                        formatSymbolOrNil == #binary ifTrue:[
+                            self shouldImplement. "unimplemented: binary fileout"
+                            "/ aClass binaryFileOutOn:(saveName asFilename writeStream binary)
+                        ] ifFalse:[
+                            withPackage ifTrue:[
+                                lastPackage ~= aMethod package ifTrue:[
+                                    lastPackage := aMethod package.
+                                    aStream nextPutAll:('"{ Package: ''%1'' }" !!\\' bindWith:(lastPackage)) withCRs.
+                                ].
+                            ].
+                            aMethod mclass fileOutMethod:aMethod on:aStream.
+                            aStream cr.
+                        ]
+                    ]
+                ].
+                aStream close
+            ]
+        ].
     self normalLabel
 !
 
@@ -44165,13 +45549,13 @@
 
     cls := self theSingleSelectedClass.
     cls isNil ifTrue:[
-	classes := self selectedClassesValue.
-	classes notEmptyOrNil ifTrue:[
-	    cls := classes first.
-	]
+        classes := self selectedClassesValue.
+        classes notEmptyOrNil ifTrue:[
+            cls := classes first.
+        ]
     ].
     cls notNil ifTrue:[
-	^ cls programmingLanguage methodTemplate
+        ^ cls programmingLanguage methodTemplate
     ].
     ^ SystemBrowser methodTemplate
 
@@ -44214,7 +45598,7 @@
     (mClass notNil
       and:[ m package ~= mClass package
       and:[ (mProjectDefinition := mClass projectDefinitionClass) notNil]]) ifTrue:[
-	^ mProjectDefinition savedOverwrittenMethodForClass:m mclass selector:m selector
+        ^ mProjectDefinition savedOverwrittenMethodForClass:m mclass selector:m selector
     ].
     ^ nil
 !
@@ -44232,38 +45616,38 @@
     numMethods := methods size.
 
     (self canUseRefactoringSupport and:[numMethods > 1]) ifTrue:[
-	change := CompositeRefactoryChange named:('Move ', numMethods printString , ' methods to project ' , newProject).
-	methods do:[:eachMethod |
-	    |mClass|
-	    mClass := eachMethod mclass.
-	    change
-		changeProjectOf:(eachMethod selector)
-		in:mClass
-		to:newProject.
-	].
-	RefactoryChangeManager performChange: change.
-    ] ifFalse:[
-	methods do:[:eachMethod |
-	    |mClass|
-	    mClass := eachMethod mclass.
-	    self canUseRefactoringSupport ifTrue:[
-		change := RefactoryMethodProjectChange
-		    changeProjectOf:(eachMethod selector)
-		    in:mClass
-		    to:newProject.
-		RefactoryChangeManager performChange: change.
-	    ] ifFalse:[
-		eachMethod package:newProject.
-	    ].
-	    classesChanged add:eachMethod mclass.
-	].
+        change := CompositeRefactoryChange named:('Move ', numMethods printString , ' methods to project ' , newProject).
+        methods do:[:eachMethod |
+            |mClass|
+            mClass := eachMethod mclass.
+            change
+                changeProjectOf:(eachMethod selector)
+                in:mClass
+                to:newProject.
+        ].
+        RefactoryChangeManager performChange: change.
+    ] ifFalse:[
+        methods do:[:eachMethod |
+            |mClass|
+            mClass := eachMethod mclass.
+            self canUseRefactoringSupport ifTrue:[
+                change := RefactoryMethodProjectChange
+                    changeProjectOf:(eachMethod selector)
+                    in:mClass
+                    to:newProject.
+                RefactoryChangeManager performChange: change.
+            ] ifFalse:[
+                eachMethod package:newProject.
+            ].
+            classesChanged add:eachMethod mclass.
+        ].
     ].
 
     self rememberLastProjectMoveTo:newProject.
 
     classesChanged do:[:eachClass |
-	eachClass changed:#projectOrganization.
-	environment changed:#projectOrganization with:(Array with:eachClass theNonMetaclass with:(methods select:[:m | m mclass == eachClass])).
+        eachClass changed:#projectOrganization.
+        environment changed:#projectOrganization with:(Array with:eachClass theNonMetaclass with:(methods select:[:m | m mclass == eachClass])).
     ].
 
     "Created: / 17-02-2000 / 23:04:45 / cg"
@@ -44281,32 +45665,32 @@
     numMethods := methods size.
 
     (self canUseRefactoringSupport and:[numMethods > 1]) ifTrue:[
-	change := CompositeRefactoryChange named:('Change category of ', numMethods printString , ' methods').
-	methods do:[:eachMethod |
-	    |mClass|
-	    mClass := eachMethod mclass.
-
-	    change
-		changeCategoryOf:(eachMethod selector)
-		in:mClass
-		to:newCategory.
-	].
-	RefactoryChangeManager performChange: change.
-    ] ifFalse:[
-	methods do:[:mthd |
-	    |mClass|
-	    mClass := mthd mclass.
-
-	    (self canUseRefactoringSupport) ifTrue:[
-		change := RefactoryMethodCategoryChange
-		    changeCategoryOf:(mthd selector)
-		    in:mClass
-		    to:newCategory.
-		RefactoryChangeManager performChange: change.
-	    ] ifFalse:[
-		mthd category:newCategory.
-	    ].
-	].
+        change := CompositeRefactoryChange named:('Change category of ', numMethods printString , ' methods').
+        methods do:[:eachMethod |
+            |mClass|
+            mClass := eachMethod mclass.
+
+            change
+                changeCategoryOf:(eachMethod selector)
+                in:mClass
+                to:newCategory.
+        ].
+        RefactoryChangeManager performChange: change.
+    ] ifFalse:[
+        methods do:[:mthd |
+            |mClass|
+            mClass := mthd mclass.
+
+            (self canUseRefactoringSupport) ifTrue:[
+                change := RefactoryMethodCategoryChange
+                    changeCategoryOf:(mthd selector)
+                    in:mClass
+                    to:newCategory.
+                RefactoryChangeManager performChange: change.
+            ] ifFalse:[
+                mthd category:newCategory.
+            ].
+        ].
     ].
 
     "Modified: / 23-11-2006 / 17:00:01 / cg"
@@ -44321,130 +45705,132 @@
 moveOrCopyMethods:methods toClass:newClass moveOrCopy:doWhat
     "move or copy some methods to some other class - typically a sister or parent class"
 
-    |canUseRefactoringSupport changes nm newClassName|
+    |canUseRefactoringSupport changes nm newClassName anyChangeMade|
 
     canUseRefactoringSupport := self canUseRefactoringSupport.
     canUseRefactoringSupport ifTrue:[
-	nm := (doWhat == #copy)
-		ifTrue:['Copy %1 to %2']
-		ifFalse:[
-		    (doWhat == #moveAndForward)
-			ifTrue:['Move with Forwarding %1 to %2']
-			ifFalse:['Move %1 to %2']].
-	nm := nm bindWith:(methods size == 1
-				ifTrue:[methods first whoString]
-				ifFalse:[methods size printString , ' methods'])
-		 with:newClass name.
-	changes := CompositeRefactoryChange named:nm.
-    ].
-
+        nm := (doWhat == #copy)
+                ifTrue:['Copy %1 to %2']
+                ifFalse:[
+                    (doWhat == #moveAndForward)
+                        ifTrue:['Move with Forwarding %1 to %2']
+                        ifFalse:['Move %1 to %2']].
+        nm := nm bindWith:(methods size == 1
+                                ifTrue:[methods first whoString]
+                                ifFalse:[methods size printString , ' methods'])
+                 with:newClass name.
+        changes := CompositeRefactoryChange named:nm.
+    ].
+
+    anyChangeMade := false.
     methods copy do:[:methodToCopyOrMove |
-	|question msg selectorToCopyOrMove
-	 category source dontDoIt newMethod oldClass
-	 template oldProject|
-
-	dontDoIt := false.
-	selectorToCopyOrMove := methodToCopyOrMove selector.
-	(newClass includesSelector:selectorToCopyOrMove) ifTrue:[
-	    question := (doWhat == #copy)
-		    ifTrue:['%1 already implements #%2\\Copy anyway ?']
-		    ifFalse:['%1 already implements #%2\\Move anyway ?'].
-
-	    (self confirm:(resources string:question
-				      with:newClass name allBold
-				      with:selectorToCopyOrMove) withCRs) ifFalse:[
-		dontDoIt := true
-	    ]
-	] ifFalse:[
-	    "/ confirm copy/move of the version method (to avoid confusing the repository)
-	    ((AbstractSourceCodeManager isVersionMethodSelector:selectorToCopyOrMove) and:[newClass isMeta]) ifTrue:[
-		question := (doWhat == #copy)
-			ifTrue:['Copying a version method might confuse the repository.\\Copy anyway ?']
-			ifFalse:['Moving a version method might confuse the repository.\\Move anyway ?'].
-		(self confirm:(resources string:question) withCRs) ifFalse:[
-		    dontDoIt := true
-		]
-	    ].
-	].
-	dontDoIt ifFalse:[
-	    source := methodToCopyOrMove source.
-	    category := methodToCopyOrMove category.
-	    oldProject := methodToCopyOrMove package.
-
-	    lastMethodMoveClass := newClass name.
-
-	    canUseRefactoringSupport ifTrue:[
-		changes
-			compile:source
-			in:newClass
-			classified:category.
-		newMethod := #dummy. "/ to make following if happy
-	    ] ifFalse:[
-		newMethod := newClass
-				    compile:source
-				    classified:category.
-	    ].
-
-	    (newMethod isNil or:[newMethod == #Error]) ifTrue:[
-		msg := (doWhat == #copy)
-			   ifTrue:['#%1 not copied - compilation failed due to an error']
-			   ifFalse:['#%1 not moved - compilation failed due to an error'].
-		self warn:(resources string:msg with:selectorToCopyOrMove)
-	    ] ifFalse:[
-		oldClass := methodToCopyOrMove mclass.
-
-		canUseRefactoringSupport ifTrue:[
-		    changes
-			changeProjectOf:selectorToCopyOrMove
-			in:newClass
-			to:oldProject.
-		] ifFalse:[
-		    newMethod package:oldProject.
-		].
-
-		(doWhat == #copy) ifFalse:[
-		    canUseRefactoringSupport ifTrue:[
-			changes removeMethod: selectorToCopyOrMove from:oldClass.
-		    ] ifFalse:[
-			oldClass removeSelector:selectorToCopyOrMove.
-		    ].
-		    (doWhat == #moveAndForward) ifTrue:[
-			template := Parser methodSpecificationForSelector:selectorToCopyOrMove.
-			newClass == oldClass class ifTrue:[
-			    newClassName := 'self class'.
-			] ifFalse:[
-			    newClass nameSpace = oldClass nameSpace ifTrue:[
-				newClassName := newClass theNonMetaclass nameWithoutNameSpacePrefix.
-			    ] ifFalse:[
-				newClassName := newClass theNonMetaclass name
-			    ].
-			].
-			source := template , '
+        |question msg selectorToCopyOrMove
+         category source dontDoIt newMethod oldClass
+         template oldProject|
+
+        dontDoIt := false.
+        selectorToCopyOrMove := methodToCopyOrMove selector.
+        (newClass includesSelector:selectorToCopyOrMove) ifTrue:[
+            question := (doWhat == #copy)
+                    ifTrue:['%1 already implements #%2\\Copy anyway ?']
+                    ifFalse:['%1 already implements #%2\\Move anyway ?'].
+
+            (self confirm:(resources string:question
+                                      with:newClass name allBold
+                                      with:selectorToCopyOrMove) withCRs) ifFalse:[
+                dontDoIt := true
+            ]
+        ] ifFalse:[
+            "/ confirm copy/move of the version method (to avoid confusing the repository)
+            ((AbstractSourceCodeManager isVersionMethodSelector:selectorToCopyOrMove) and:[newClass isMeta]) ifTrue:[
+                question := (doWhat == #copy)
+                        ifTrue:['Copying a version method might confuse the repository.\\Copy anyway ?']
+                        ifFalse:['Moving a version method might confuse the repository.\\Move anyway ?'].
+                (self confirm:(resources string:question) withCRs) ifFalse:[
+                    dontDoIt := true
+                ]
+            ].
+        ].
+        dontDoIt ifFalse:[
+            anyChangeMade := true.
+            source := methodToCopyOrMove source.
+            category := methodToCopyOrMove category.
+            oldProject := methodToCopyOrMove package.
+
+            lastMethodMoveClass := newClass name.
+
+            canUseRefactoringSupport ifTrue:[
+                changes
+                        compile:source
+                        in:newClass
+                        classified:category.
+                newMethod := #dummy. "/ to make following if happy
+            ] ifFalse:[
+                newMethod := newClass
+                                    compile:source
+                                    classified:category.
+            ].
+
+            (newMethod isNil or:[newMethod == #Error]) ifTrue:[
+                msg := (doWhat == #copy)
+                           ifTrue:['#%1 not copied - compilation failed due to an error']
+                           ifFalse:['#%1 not moved - compilation failed due to an error'].
+                self warn:(resources string:msg with:selectorToCopyOrMove)
+            ] ifFalse:[
+                oldClass := methodToCopyOrMove mclass.
+
+                canUseRefactoringSupport ifTrue:[
+                    changes
+                        changeProjectOf:selectorToCopyOrMove
+                        in:newClass
+                        to:oldProject.
+                ] ifFalse:[
+                    newMethod package:oldProject.
+                ].
+
+                (doWhat == #copy) ifFalse:[
+                    canUseRefactoringSupport ifTrue:[
+                        changes removeMethod: selectorToCopyOrMove from:oldClass.
+                    ] ifFalse:[
+                        oldClass removeSelector:selectorToCopyOrMove.
+                    ].
+                    (doWhat == #moveAndForward) ifTrue:[
+                        template := Parser methodSpecificationForSelector:selectorToCopyOrMove.
+                        newClass == oldClass class ifTrue:[
+                            newClassName := 'self class'.
+                        ] ifFalse:[
+                            newClass nameSpace = oldClass nameSpace ifTrue:[
+                                newClassName := newClass theNonMetaclass nameWithoutNameSpacePrefix.
+                            ] ifFalse:[
+                                newClassName := newClass theNonMetaclass name
+                            ].
+                        ].
+                        source := template , '
     ^ ' , newClassName , ' ' , template , '
 '.
-			canUseRefactoringSupport ifTrue:[
-			    changes
-				    compile:source
-				    in:oldClass
-				    classified:category.
-			    changes
-				changeProjectOf:selectorToCopyOrMove
-				in:oldClass
-				to:oldProject.
-			] ifFalse:[
-			    newMethod := oldClass
-				    compile:source
-				    classified:category.
-			    newMethod package:oldProject.
-			].
-		    ]
-		]
-	    ]
-	]
-    ].
-
-    canUseRefactoringSupport ifTrue:[
-	RefactoryChangeManager performChange: changes
+                        canUseRefactoringSupport ifTrue:[
+                            changes
+                                    compile:source
+                                    in:oldClass
+                                    classified:category.
+                            changes
+                                changeProjectOf:selectorToCopyOrMove
+                                in:oldClass
+                                to:oldProject.
+                        ] ifFalse:[
+                            newMethod := oldClass
+                                    compile:source
+                                    classified:category.
+                            newMethod package:oldProject.
+                        ].
+                    ]
+                ]
+            ]
+        ]
+    ].
+
+    (canUseRefactoringSupport and:[anyChangeMade]) ifTrue:[
+        RefactoryChangeManager performChange: changes
     ].
 !
 
@@ -44455,20 +45841,20 @@
      affectedClasses classesOfSelectedMethods suggestion|
 
     RBParser isNil ifTrue:[
-	Dialog warn:'Missing class: RBParser'.
-	^ self
+        Dialog warn:'Missing class: RBParser'.
+        ^ self
     ].
     RBParser autoload.
     MethodNameDialog isNil ifTrue:[
-	Dialog warn:'Missing class: MethodNameDialog'.
-	^ self
+        Dialog warn:'Missing class: MethodNameDialog'.
+        ^ self
     ].
     MethodNameDialog autoload.
 
     tree := aClass parseTreeFor:oldSelector.
     tree isNil ifTrue:[
-	self warn: 'Could not parse the method'.
-	^ self
+        self warn: 'Could not parse the method'.
+        ^ self
     ].
     args := tree argumentNames.
 
@@ -44491,10 +45877,10 @@
 
     newSelector := dialog methodName.
     newSelector = oldSelector ifTrue:[
-	newArgs = args ifTrue:[
-	    Dialog information:'no change'.
-	    ^ self.
-	].
+        newArgs = args ifTrue:[
+            Dialog information:'no change'.
+            ^ self.
+        ].
     ].
 
     LastRenamedOld := oldSelector.
@@ -44506,30 +45892,30 @@
     rewritePackageLocalSendersOnly := dialog isRewritingPackageLocalSendersOnly.
 
     refactoring := RenameMethodRefactoring
-				renameMethod: oldSelector
-				in: aClass
-				to: newSelector
-				permuation: map.
+                                renameMethod: oldSelector
+                                in: aClass
+                                to: newSelector
+                                permuation: map.
     refactoring suppressRewriteOfSenders:renameOnly.
 
     renameOnly ifFalse:[
-	affectedClasses := rewriteLocalSendersOnly
-				ifTrue:[ environment allClasses ]
-				ifFalse:[
-				    rewritePackageLocalSendersOnly
-					ifTrue:[ environment allClassesInPackage:aClass package ]
-					ifFalse:[ aClass withAllSubclasses ]].
-	"/ ask if so many methods should be rewritten; give chance to cancel
-	(self findSendersOf:oldSelector in:affectedClasses andConfirmRefactoring:refactoring) ifFalse:[ ^ self ].
+        affectedClasses := rewriteLocalSendersOnly
+                                ifTrue:[ environment allClasses ]
+                                ifFalse:[
+                                    rewritePackageLocalSendersOnly
+                                        ifTrue:[ environment allClassesInPackage:aClass package ]
+                                        ifFalse:[ aClass withAllSubclasses ]].
+        "/ ask if so many methods should be rewritten; give chance to cancel
+        (self findSendersOf:oldSelector in:affectedClasses andConfirmRefactoring:refactoring) ifFalse:[ ^ self ].
     ].
 
     renameSelectedMethodsOnly ifTrue:[
-	(self selectedMethodsValue collect:[:m | m selector] as:Set) size == 1 ifFalse:[
-	    Dialog warn:'Multiple different selectors selected'.
-	    ^ self.
-	].
-
-	classesOfSelectedMethods := self selectedMethodsValue collect:[:m|m mclass].
+        (self selectedMethodsValue collect:[:m | m selector] as:Set) size == 1 ifFalse:[
+            Dialog warn:'Multiple different selectors selected'.
+            ^ self.
+        ].
+
+        classesOfSelectedMethods := self selectedMethodsValue collect:[:m|m mclass].
 "/        classesOfSelectedMethods := classesOfSelectedMethods
 "/                collect:[:cls |
 "/                    |className rbClass|
@@ -44541,26 +45927,26 @@
 "/                    rbClass model:(RBNamespace new).
 "/                    rbClass
 "/                ].
-	refactoring onlyRenameTheseImplementors:classesOfSelectedMethods.
+        refactoring onlyRenameTheseImplementors:classesOfSelectedMethods.
     ].
 
     self withWaitCursorDo:[
-	|classesOfSelectedMethods affectedImplementors|
+        |classesOfSelectedMethods affectedImplementors|
 
 "/        refactoring model name:('rename %1 to %2' bindWith:oldSelector storeString with:newSelector storeString).
 
-	rslt := self performRefactoring:refactoring.
-	self switchToSelector:newSelector asSymbol.
+        rslt := self performRefactoring:refactoring.
+        self switchToSelector:newSelector asSymbol.
     ].
 
     dialog browseOldSendersHolder value ifTrue:[
-	self spawnMethodSendersBrowserFor:(Array with:oldSelector) in:#newBrowser
+        self spawnMethodSendersBrowserFor:(Array with:oldSelector) in:#newBrowser
     ].
     dialog browseNewSendersHolder value ifTrue:[
-	self spawnMethodSendersBrowserFor:(Array with:newSelector) in:#newBrowser
+        self spawnMethodSendersBrowserFor:(Array with:newSelector) in:#newBrowser
     ].
     dialog browseChangedMethodsHolder value ifTrue:[
-	self spawnMethodImplementorsBrowserFor:(Array with:newSelector) match:false in:#newBrowser
+        self spawnMethodImplementorsBrowserFor:(Array with:newSelector) match:false in:#newBrowser
     ].
 
     "Modified: / 28-02-2012 / 16:28:12 / cg"
@@ -44600,9 +45986,7 @@
 selectorCheckMenuSmalllintCheck: what
     "perform all checks on the selected class(es)."
 
-    self
-	smalllintCheck:self selectedSelectorsAsEnvironment
-	against: what
+    self smalllintRun:what onEnvironment:self selectedSelectorsAsEnvironment
 
     "Modified: / 28-12-2008 / 14:42:01 / bazantj <enter your email here>"
     "Modified: / 13-01-2009 / 13:20:48 / Jiri Bazant <bazanj2@fel.cvut.cz>"
@@ -44621,8 +46005,8 @@
     m := self theSingleSelectedMethod.
     previousCode := self methodsPreviousVersionCode.
     previousCode isNil ifTrue:[
-	self information:'Oops - no previous code found'.
-	^ self
+        self information:'Oops - no previous code found'.
+        ^ self
     ].
 
     self showCode:previousCode scrollToTop:false.
@@ -44639,8 +46023,8 @@
     m := self theSingleSelectedMethod.
     previousMethods := self methodsPreviousVersions.
     previousMethods isEmpty ifTrue:[
-	self information:'Oops - no previous versions found'.
-	^ self
+        self information:'Oops - no previous versions found'.
+        ^ self
     ].
 
     dummyChangeSet := ChangeSet new addAll:previousMethods; yourself.
@@ -44652,12 +46036,10 @@
     "Modified: / 26-07-2012 / 14:30:20 / cg"
 !
 
-selectorMenuBrowseRepositoryVersions
-
-    <resource: #obsolete> "use ...Using:manager variant"
+selectorMenuBrowseRepositoryVersionsUsingManager: manager
 
     |method mclass mselector className mgr revisions previousMethods browser
-     lastSource currentSource lastRevision lastDate lastChange thisIsAnExtensionMethod
+     lastSource currentSource lastRevision lastDate lastChange lastAuthor thisIsAnExtensionMethod
      packageId directory module|
 
     method := self theSingleSelectedMethod.
@@ -44667,408 +46049,200 @@
     mselector := method selector.
     className := mclass name.
     [
-	|set|
-
-	set := ChangeSet forExistingMethods:(Array with:method).
-	set := set select:[:c | c isMethodChange].
-	lastChange := set first.
+        |set|
+
+        set := ChangeSet forExistingMethods:(Array with:method).
+        set := set select:[:c | c isMethodChange].
+        lastChange := set first.
     ] value.
 
-    thisIsAnExtensionMethod := (method package ~= mclass package).
+    thisIsAnExtensionMethod := (method isExtension).
     thisIsAnExtensionMethod ifTrue:[
-	packageId := method package asPackageId.
-	mgr := packageId projectDefinitionClass sourceCodeManager.
-    ] ifFalse:[
-	packageId := mclass package asPackageId.
-	"/ mgr := packageId projectDefinitionClass sourceCodeManager.
-	mgr := SourceCodeManagerUtilities default sourceCodeManagerFor:mclass.
-	self assert:(mgr = packageId projectDefinitionClass sourceCodeManager).
+        packageId := method package asPackageId.
+        mgr := manager
+    ] ifFalse:[
+        packageId := mclass package asPackageId.
+        "/ mgr := packageId projectDefinitionClass sourceCodeManager.
+        mgr := manager.
+        "/self assert:(mgr = packageId projectDefinitionClass sourceCodeManager).
     ].
     directory := packageId directory.
     module := packageId module.
 
     self withWaitCursorDo:[
-	|revisionLog start stop answer t tS list msg first|
-
-	thisIsAnExtensionMethod ifTrue:[
-	    revisionLog := mgr
-		revisionLogOf:nil
-		fromRevision:nil
-		toRevision:nil
-		numberOfRevisions:nil
-		fileName:'extensions.st'
-		directory:directory
-		module:module.
-	] ifFalse:[
-	    revisionLog := mgr revisionLogOf:mclass.
-	].
-	revisions := revisionLog at:#revisions.
-
-	start := 1.
-	stop := revisions size.
-	stop > 20 ifTrue:[
-	    thisIsAnExtensionMethod ifTrue:[
-		t := 500.   "/ fake time
-	    ] ifFalse:[
-		"/ measure the time it takes to checkout a version...
-		t := Time millisecondsToRun:[
-		    |revSourceStream|
-
-		    revSourceStream := mgr getSourceStreamFor:mclass revision:((revisions at:10) at:#revision).
-		    ChangeSet fromStream:revSourceStream.
-		    revSourceStream close.
-		].
-	    ].
-
-	    list := revisions collect:[:entry |
-					|rev author dateString date msg|
-
-					rev := entry at:#revision.
-					author := entry at:#author.
-					dateString := entry at:#date.
-					date := Timestamp readGeneralizedFrom:dateString.
-					dateString := date printStringFormat:'%(year)-%(mon)-%(day) %h:%m:%s'.
-					entry at:#date put:dateString.
-					msg := (entry at:#logMessage) asStringCollection first asString.
-					rev,' ',author,' ',dateString,' ',msg
-				      ].
-	    msg := 'There are %1 revisions to extract from the repository'.
-	    t := (t * revisions size / 1000) rounded.
-	    t < 10 ifTrue:[
-		msg := msg,'\(this will take a few seconds).'.
-		tS := t.
-	    ] ifFalse:[
-		t := t * revisions size // 1000 // 10 * 10.
-		tS := (TimeDuration fromSeconds:t) printStringForApproximation.
-		msg := msg,'\(this will take roughly %2).'
-	    ].
-	    msg := msg,'\\Do you want to see all or only some of the revisions ?'.
-
-	    answer := Dialog
-		choose:(resources stringWithCRs:msg
-				    with:revisions size
-				    with:tS)
-		fromList:list values:revisions initialSelection:nil
-		buttons:nil
-		values:nil
-		default:nil
-		lines:20
-		cancel:[^ self]
-		multiple:false
-		title:(resources string:'Confirmation')
-		postBuildBlock:[:dialog |
-			    |b|
-
-			    b := Button label:(resources string:'Browse Newer than Selected').
-			    b action:[ stop := (dialog componentAt:#ListView) selection. dialog okPressed].
-			    b := dialog addButton:b before:dialog okButton.
-
-			    dialog okButton label:(resources string:'Browse All').
-			    dialog okButton action:[ stop := revisions size. dialog okPressed].
-			].
-
-	    stop isNil ifTrue:[^ self ].
-	].
+        |revisionLog start stop answer t tS list msg first|
+
+        thisIsAnExtensionMethod ifTrue:[
+            revisionLog := mgr
+                revisionLogOf:nil
+                fromRevision:nil
+                toRevision:nil
+                numberOfRevisions:nil
+                fileName:'extensions.st'
+                directory:directory
+                module:module.
+        ] ifFalse:[
+            revisionLog := mgr revisionLogOf:mclass.
+        ].
+        revisions := revisionLog at:#revisions.
+
+        start := 1.
+        stop := revisions size.
+        stop > 20 ifTrue:[
+            thisIsAnExtensionMethod ifTrue:[
+                t := 500.   "/ fake time
+            ] ifFalse:[
+                "/ measure the time it takes to checkout a version...
+                t := Time millisecondsToRun:[
+                    |revSourceStream|
+
+                    revSourceStream := mgr getSourceStreamFor:mclass revision:((revisions at:10) at:#revision).
+                    ChangeSet fromStream:revSourceStream.
+                    revSourceStream close.
+                ].
+            ].
+
+            list := revisions collect:[:entry |
+                                        |rev author dateString date msg|
+
+                                        rev := entry at:#revision.
+                                        author := entry at:#author.
+                                        dateString := entry at:#date.
+                                        date := Timestamp readGeneralizedFrom:dateString.
+                                        dateString := date printStringFormat:'%(year)-%(mon)-%(day) %h:%m:%s'.
+                                        entry at:#date put:dateString.
+                                        msg := ((entry at:#logMessage) asStringCollection firstIfEmpty:'') asString.
+                                        rev,' ',author,' ',dateString,' ',msg
+                                      ].
+            msg := 'There are %1 revisions to extract from the repository'.
+            t := (t * revisions size / 1000) rounded.
+            t < 10 ifTrue:[
+                msg := msg,'\(this will take a few seconds).'.
+                tS := t.
+            ] ifFalse:[
+                t := t * revisions size // 1000 // 10 * 10.
+                tS := (TimeDuration fromSeconds:t) printStringForApproximation.
+                msg := msg,'\(this will take roughly %2).'
+            ].
+            msg := msg,'\\Do you want to see all or only some of the revisions ?'.
+
+            answer := Dialog
+                choose:(resources stringWithCRs:msg
+                                    with:revisions size
+                                    with:tS)
+                fromList:list values:revisions initialSelection:nil
+                buttons:nil
+                values:nil
+                default:nil
+                lines:20
+                cancel:[^ self]
+                multiple:false
+                title:(resources string:'Confirmation')
+                postBuildBlock:[:dialog |
+                            |b|
+
+                            b := Button label:(resources string:'Browse Newer than Selected').
+                            b action:[ stop := (dialog componentAt:#ListView) selection. dialog okPressed].
+                            b := dialog addButton:b before:dialog okButton.
+
+                            dialog okButton label:(resources string:'Browse All').
+                            dialog okButton action:[ stop := revisions size. dialog okPressed].
+                        ].
+
+            stop isNil ifTrue:[^ self ].
+        ].
 
 t := Time millisecondsToRun:[
 
-	previousMethods := ChangeSet new.
-	lastSource := currentSource := method source.
-	lastRevision := lastDate := nil.
-	first := true.
-
-	revisions from:start to:stop do:[:eachLogEntry |
-	    |revision date revSourceStream|
-
-	    revision := eachLogEntry at:#revision.
-	    date := eachLogEntry at:#date.
-
-	    [
-		|chg nChg classChangeSet changeSource changeName|
-
-		self activityNotification:('Fetching revision ',revision,'...').
-		thisIsAnExtensionMethod ifTrue:[
-		    revSourceStream := mgr
-					    streamForClass:nil
-					    fileName:'extensions.st'
-					    revision:revision
-					    directory:directory
-					    module:module
-					    cache:true.
-		] ifFalse:[
-		    revSourceStream := mgr getSourceStreamFor:mclass revision:revision.
-		].
-		revSourceStream isNil ifTrue:[
-		    Dialog information:'oops - failed to get source for revision: ',revision,'. Skipping.'
-		] ifFalse:[
-		    classChangeSet := ChangeSet fromStream:revSourceStream.
-
-		    chg := classChangeSet
-				detect:[:chg | chg isMethodChange
-					       and:[chg selector = mselector
-					       and:[chg className = className]]]
-				ifNone:nil.
-
-		    chg isNil ifTrue:[
-			"the method was created in the next version (previous one processed)"
-		    ] ifFalse:[
-			changeSource := chg source.
-		    ].
-		    ((changeSource isNil and:[lastSource isNil])
-		    or:[ changeSource asString = lastSource asString ]) ifTrue:[
-		    ] ifFalse:[
-			lastChange isNil ifTrue:[
-			    "/ mhm - was not in the previous version
-			] ifFalse:[
-			    nChg := lastChange asNamedMethodChange
-			].
-			lastRevision isNil ifTrue:[
-			    (stop = revisions size) ifTrue:[
-				changeName := 'current (not in the repository)'.
-			    ] ifFalse:[
-				"/ not showing all - dont really know
-				changeName := 'current'.
-			    ].
-			] ifFalse:[
-			    changeName := lastRevision,' [',lastDate,']'.
-			    first ifTrue:[
-				changeName := changeName,' (= current)'.
-			    ]
-			].
-			nChg notNil ifTrue:[
-			    nChg changeName:changeName.
-			    previousMethods add:nChg.
-			].
-			lastSource := changeSource.
-			lastChange := chg.
-
-			first := false.
-		    ].
-		    lastRevision := revision.
-		    lastDate := date.
-		]
-	    ] ensure:[
-		revSourceStream notNil ifTrue:[revSourceStream close].
-	    ].
-	].
+        previousMethods := ChangeSet new.
+        lastSource := currentSource := method source.
+        lastRevision := lastDate := lastAuthor := nil.
+        first := true.
+
+        revisions from:start to:stop do:[:eachLogEntry |
+            |revision date author revSourceStream|
+
+            revision := eachLogEntry at:#revision.
+            date := eachLogEntry at:#date.
+            author := eachLogEntry at:#author ifAbsent:'?'.      
+
+            [
+                |chg nChg classChangeSet changeSource changeName|
+
+                self activityNotification:('Fetching revision ',revision,'...').
+                thisIsAnExtensionMethod ifTrue:[
+                    revSourceStream := mgr
+                                            streamForClass:nil
+                                            fileName:'extensions.st'
+                                            revision:revision
+                                            directory:directory
+                                            module:module
+                                            cache:true.
+                ] ifFalse:[
+                    revSourceStream := mgr getSourceStreamFor:mclass revision:revision.
+                ].
+                revSourceStream isNil ifTrue:[
+                    self warn:'could not load source for ' , mclass name , ' revision ', revision,  ' from repository'.
+                    chg := nil.
+                ] ifFalse:[
+                    classChangeSet := ChangeSet fromStream:revSourceStream.
+
+                    chg := classChangeSet
+                                detect:[:chg | chg isMethodChange
+                                               and:[chg selector = mselector
+                                               and:[chg className = className]]]
+                                ifNone:nil.
+                ].
+
+                chg isNil ifTrue:[
+                    "the method was created in the next version (previous one processed)"
+                ] ifFalse:[
+                    changeSource := chg source.
+                ].
+                ((changeSource isNil and:[lastSource isNil])
+                or:[ changeSource asString = lastSource asString ]) ifTrue:[
+                ] ifFalse:[
+                    lastChange isNil ifTrue:[
+                        "/ mhm - was not in the previous version
+                    ] ifFalse:[
+                        nChg := lastChange asNamedMethodChange
+                    ].
+                    lastRevision isNil ifTrue:[
+                        (stop = revisions size) ifTrue:[
+                            changeName := 'current (not in the repository)'.
+                        ] ifFalse:[
+                            "/ not showing all - dont really know
+                            changeName := 'current'.
+                        ].
+                    ] ifFalse:[
+                        changeName := lastRevision,' [',lastDate,' by ',lastAuthor,']'.
+                        first ifTrue:[
+                            changeName := changeName,' (= current)'.
+                        ]
+                    ].
+                    nChg notNil ifTrue:[
+                        nChg changeName:changeName.
+                        previousMethods add:nChg.
+                    ].
+                    lastSource := changeSource.
+                    lastChange := chg.
+
+                    first := false.
+                ].
+                lastRevision := revision.
+                lastDate := date.
+                lastAuthor := author.
+            ] ensure:[
+                revSourceStream notNil ifTrue:[revSourceStream close].
+            ].
+        ].
 ].
 "/ Transcript showCR:('it took %1 seconds' bindWith:(t /1000)printString).
 
-	self activityNotification:nil.
-	browser := (UserPreferences current changeSetBrowserClass) openOn:previousMethods.
-	browser window label:('Revisions of ' , mclass name , ' ' , mselector).
-	browser readOnly:true.
-    ].
-
-    "Modified: / 01-07-2011 / 16:34:29 / cg"
-    "Modified: / 18-11-2011 / 18:17:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-selectorMenuBrowseRepositoryVersionsUsingManager: manager
-
-    |method mclass mselector className mgr revisions previousMethods browser
-     lastSource currentSource lastRevision lastDate lastChange thisIsAnExtensionMethod
-     packageId directory module|
-
-    method := self theSingleSelectedMethod.
-    method isNil ifTrue:[^ self].
-
-    mclass := method mclass.
-    mselector := method selector.
-    className := mclass name.
-    [
-	|set|
-
-	set := ChangeSet forExistingMethods:(Array with:method).
-	set := set select:[:c | c isMethodChange].
-	lastChange := set first.
-    ] value.
-
-    thisIsAnExtensionMethod := (method isExtension).
-    thisIsAnExtensionMethod ifTrue:[
-	packageId := method package asPackageId.
-	mgr := manager
-    ] ifFalse:[
-	packageId := mclass package asPackageId.
-	"/ mgr := packageId projectDefinitionClass sourceCodeManager.
-	mgr := manager.
-	"/self assert:(mgr = packageId projectDefinitionClass sourceCodeManager).
-    ].
-    directory := packageId directory.
-    module := packageId module.
-
-    self withWaitCursorDo:[
-	|revisionLog start stop answer t tS list msg first|
-
-	thisIsAnExtensionMethod ifTrue:[
-	    revisionLog := mgr
-		revisionLogOf:nil
-		fromRevision:nil
-		toRevision:nil
-		numberOfRevisions:nil
-		fileName:'extensions.st'
-		directory:directory
-		module:module.
-	] ifFalse:[
-	    revisionLog := mgr revisionLogOf:mclass.
-	].
-	revisions := revisionLog at:#revisions.
-
-	start := 1.
-	stop := revisions size.
-	stop > 20 ifTrue:[
-	    thisIsAnExtensionMethod ifTrue:[
-		t := 500.   "/ fake time
-	    ] ifFalse:[
-		"/ measure the time it takes to checkout a version...
-		t := Time millisecondsToRun:[
-		    |revSourceStream|
-
-		    revSourceStream := mgr getSourceStreamFor:mclass revision:((revisions at:10) at:#revision).
-		    ChangeSet fromStream:revSourceStream.
-		    revSourceStream close.
-		].
-	    ].
-
-	    list := revisions collect:[:entry |
-					|rev author dateString date msg|
-
-					rev := entry at:#revision.
-					author := entry at:#author.
-					dateString := entry at:#date.
-					date := Timestamp readGeneralizedFrom:dateString.
-					dateString := date printStringFormat:'%(year)-%(mon)-%(day) %h:%m:%s'.
-					entry at:#date put:dateString.
-					msg := ((entry at:#logMessage) asStringCollection firstIfEmpty:'') asString.
-					rev,' ',author,' ',dateString,' ',msg
-				      ].
-	    msg := 'There are %1 revisions to extract from the repository'.
-	    t := (t * revisions size / 1000) rounded.
-	    t < 10 ifTrue:[
-		msg := msg,'\(this will take a few seconds).'.
-		tS := t.
-	    ] ifFalse:[
-		t := t * revisions size // 1000 // 10 * 10.
-		tS := (TimeDuration fromSeconds:t) printStringForApproximation.
-		msg := msg,'\(this will take roughly %2).'
-	    ].
-	    msg := msg,'\\Do you want to see all or only some of the revisions ?'.
-
-	    answer := Dialog
-		choose:(resources stringWithCRs:msg
-				    with:revisions size
-				    with:tS)
-		fromList:list values:revisions initialSelection:nil
-		buttons:nil
-		values:nil
-		default:nil
-		lines:20
-		cancel:[^ self]
-		multiple:false
-		title:(resources string:'Confirmation')
-		postBuildBlock:[:dialog |
-			    |b|
-
-			    b := Button label:(resources string:'Browse Newer than Selected').
-			    b action:[ stop := (dialog componentAt:#ListView) selection. dialog okPressed].
-			    b := dialog addButton:b before:dialog okButton.
-
-			    dialog okButton label:(resources string:'Browse All').
-			    dialog okButton action:[ stop := revisions size. dialog okPressed].
-			].
-
-	    stop isNil ifTrue:[^ self ].
-	].
-
-t := Time millisecondsToRun:[
-
-	previousMethods := ChangeSet new.
-	lastSource := currentSource := method source.
-	lastRevision := lastDate := nil.
-	first := true.
-
-	revisions from:start to:stop do:[:eachLogEntry |
-	    |revision date revSourceStream|
-
-	    revision := eachLogEntry at:#revision.
-	    date := eachLogEntry at:#date.
-
-	    [
-		|chg nChg classChangeSet changeSource changeName|
-
-		self activityNotification:('Fetching revision ',revision,'...').
-		thisIsAnExtensionMethod ifTrue:[
-		    revSourceStream := mgr
-					    streamForClass:nil
-					    fileName:'extensions.st'
-					    revision:revision
-					    directory:directory
-					    module:module
-					    cache:true.
-		] ifFalse:[
-		    revSourceStream := mgr getSourceStreamFor:mclass revision:revision.
-		].
-		revSourceStream isNil ifTrue:[
-		    self warn:'could not load source for ' , mclass name , ' revision ', revision,  ' from repository'.
-		    chg := nil.
-		] ifFalse:[
-		    classChangeSet := ChangeSet fromStream:revSourceStream.
-
-		    chg := classChangeSet
-				detect:[:chg | chg isMethodChange
-					       and:[chg selector = mselector
-					       and:[chg className = className]]]
-				ifNone:nil.
-		].
-
-		chg isNil ifTrue:[
-		    "the method was created in the next version (previous one processed)"
-		] ifFalse:[
-		    changeSource := chg source.
-		].
-		((changeSource isNil and:[lastSource isNil])
-		or:[ changeSource asString = lastSource asString ]) ifTrue:[
-		] ifFalse:[
-		    lastChange isNil ifTrue:[
-			"/ mhm - was not in the previous version
-		    ] ifFalse:[
-			nChg := lastChange asNamedMethodChange
-		    ].
-		    lastRevision isNil ifTrue:[
-			(stop = revisions size) ifTrue:[
-			    changeName := 'current (not in the repository)'.
-			] ifFalse:[
-			    "/ not showing all - dont really know
-			    changeName := 'current'.
-			].
-		    ] ifFalse:[
-			changeName := lastRevision,' [',lastDate,']'.
-			first ifTrue:[
-			    changeName := changeName,' (= current)'.
-			]
-		    ].
-		    nChg notNil ifTrue:[
-			nChg changeName:changeName.
-			previousMethods add:nChg.
-		    ].
-		    lastSource := changeSource.
-		    lastChange := chg.
-
-		    first := false.
-		].
-		lastRevision := revision.
-		lastDate := date.
-	    ] ensure:[
-		revSourceStream notNil ifTrue:[revSourceStream close].
-	    ].
-	].
-].
-"/ Transcript showCR:('it took %1 seconds' bindWith:(t /1000)printString).
-
-	self activityNotification:nil.
-	browser := (UserPreferences current changeSetBrowserClass) openOn:previousMethods.
-	browser window label:('Revisions of ' , mclass name , ' ' , mselector).
-	browser readOnly:true.
+        self activityNotification:nil.
+        browser := (UserPreferences current changeSetBrowserClass) openOn:previousMethods.
+        browser window label:('Revisions of ' , mclass name , ' ' , mselector).
+        browser readOnly:true.
     ].
 
     "Modified: / 01-07-2011 / 16:34:29 / cg"
@@ -45079,7 +46253,7 @@
 selectorMenuBrowseRepositoryVersionsUsingManagerNamed:sourceCodeManagerClassName
     |mgr|
 
-    mgr := Smalltalk at:sourceCodeManagerClassName asSymbol.
+    mgr := Smalltalk classNamed:sourceCodeManagerClassName.
     self assert:(mgr notNil).
     ^self selectorMenuBrowseRepositoryVersionsUsingManager: mgr
 
@@ -45089,9 +46263,9 @@
 
 selectorMenuChangePrivacyTo:privacySymbol
     self selectedMethodsDo:[:eachMethod |
-	(eachMethod privacy ~~ privacySymbol) ifTrue:[
-	    eachMethod privacy:privacySymbol.
-	]
+        (eachMethod privacy ~~ privacySymbol) ifTrue:[
+            eachMethod privacy:privacySymbol.
+        ]
     ].
 
     "Modified: / 23-11-2006 / 17:03:39 / cg"
@@ -45106,12 +46280,12 @@
 
     projects := self selectedMethodsValue collect:[:each | each package] as:Set.
     projects do:[:packageToCheckIn |
-	self
-	    projectMenuCheckInProject:packageToCheckIn
-	    classes:false
-	    extensions:true
-	    buildSupport:false
-	    usingManager:aManager
+        self
+            projectMenuCheckInProject:packageToCheckIn
+            classes:false
+            extensions:true
+            buildSupport:false
+            usingManager:aManager
     ].
 
     "Modified: / 28-02-2012 / 16:28:43 / cg"
@@ -45121,17 +46295,34 @@
     "remove all changes for the selected method(s) from the changeSet"
 
     (self confirm:'This will remove all changes for the selected method(s) from the changeSet.\\Really cleanup ?' withCRs)
-	ifFalse:[ ^ self].
+        ifFalse:[ ^ self].
 
     self withWaitCursorDo:[
-	self selectedMethodsValue do:[:eachMethod |
-	    ChangeSet current condenseChangesForClass:eachMethod mclass selector:eachMethod selector
-	]
+        self selectedMethodsValue do:[:eachMethod |
+            ChangeSet current condenseChangesForClass:eachMethod mclass selector:eachMethod selector
+        ]
     ]
 
     "Created: / 06-10-2006 / 16:36:44 / cg"
 !
 
+selectorMenuCleanUpChangeSetForClass
+    "remove all changes for the selected method(s) class(es) and metaclasses from the changeSet"
+
+    |classes|
+
+    (self confirm:'This will remove all changes for the class(es) of the selected method(s) from the changeSet.\\Really cleanup ?' withCRs)
+        ifFalse:[ ^ self].
+
+    self withWaitCursorDo:[
+        classes := Set new.
+        self selectedMethodsValue do:[:eachMethod | classes add:(eachMethod mclass theNonMetaclass)].
+        classes do:[:eachClass |
+            ChangeSet current condenseChangesForClass:eachClass
+        ]
+    ]
+!
+
 selectorMenuCompareAgainstNewestInRepositoryUsingManager: manager
     "open a diff-textView comparing the current (in-image) version
      with the the newest version found in the repository.
@@ -45146,7 +46337,7 @@
 selectorMenuCompareAgainstNewestInRepositoryUsingManagerNamed: sourceCodeManagerClassName
     |mgr|
 
-    mgr := Smalltalk at:sourceCodeManagerClassName asSymbol.
+    mgr := Smalltalk classNamed:sourceCodeManagerClassName.
     self assert:(mgr notNil).
     ^ self selectorMenuCompareAgainstNewestInRepositoryUsingManager: mgr
 
@@ -45162,7 +46353,9 @@
     |classes|
 
     classes := self selectedMethodsValue collect:[:m | m mclass theNonMetaclass] as:Set.
-    self doCompareClassesWithRepository:classes usingManager: manager
+    self withWaitCursorDo:[
+        self doCompareClassesWithRepository:classes usingManager: manager
+    ].
 
     "Created: / 18-11-2011 / 18:47:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Created: / 21-12-2011 / 20:20:28 / cg"
@@ -45175,7 +46368,7 @@
 
     |mgr|
 
-    mgr := Smalltalk at:sourceCodeManagerClassName asSymbol.
+    mgr := Smalltalk classNamed:sourceCodeManagerClassName.
     self assert:(mgr notNil).
     ^ self selectorMenuCompareClassAgainstNewestInRepositoryUsingManager: mgr
 
@@ -45192,9 +46385,9 @@
     selectedMethods := self selectedMethodsValue.
 
     self
-	doCompareMethod:(selectedMethods first)
-	against:(selectedMethods second)
-	label:(resources string:'Comparing methods')
+        doCompareMethod:(selectedMethods first)
+        against:(selectedMethods second)
+        label:(resources string:'Comparing methods')
 
     "Modified: / 28-02-2012 / 16:29:05 / cg"
 !
@@ -45207,9 +46400,9 @@
     m1 := self selectedMethodsValue first.
     m2 := m1 mclass superclass lookupMethodFor:(m1 selector).
     self
-	doCompareMethod:m1
-	against:m2
-	label:(resources string:'Comparing against inherited')
+        doCompareMethod:m1
+        against:m2
+        label:(resources string:'Comparing against inherited')
 
     "Modified: / 28-02-2012 / 16:29:11 / cg"
 !
@@ -45228,17 +46421,17 @@
     m := self theSingleSelectedMethod.
     previousCode := self methodsPreviousVersionCode.
     previousCode isNil ifTrue:[
-	self information:'Oops - no previous code found'.
-	^ self
+        self information:'Oops - no previous code found'.
+        ^ self
     ].
     self withWaitCursorDo:[
-	v := DiffCodeView
-		openOn:previousCode
-		label:'previous version'
-		and:m source
-		label:'current version'.
-	v topView label:(resources string:'comparing method').
-	v waitUntilVisible.
+        v := DiffCodeView
+                openOn:previousCode
+                label:'previous version'
+                and:m source
+                label:'current version'.
+        v topView label:(resources string:'comparing method').
+        v waitUntilVisible.
     ].
     ^ self
 !
@@ -45252,18 +46445,18 @@
     m := self theSingleSelectedMethod.
     originalMethod := self methodsShadowedMethod.
     originalMethod isNil ifTrue:[
-	self information:'Oops - no shadowed (original method) found'.
-	^ self
+        self information:'Oops - no shadowed (original method) found'.
+        ^ self
     ].
     self withWaitCursorDo:[
-	v := DiffCodeView
-		openOn:originalMethod source
-		label:(resources string:'shadowed (original) in %1' with:originalMethod package allBold)
-		and:m source
-		label:(resources string:'current in %1' with:m package allBold).
-	v topView label:(resources string:'shadowed method %1' with:m whoString).
-	v leftAcceptAction:[:text | m mclass addSelector:m selector withMethod:originalMethod ].
-	v waitUntilVisible.
+        v := DiffCodeView
+                openOn:originalMethod source
+                label:(resources string:'shadowed (original) in %1' with:originalMethod package allBold)
+                and:m source
+                label:(resources string:'current in %1' with:m package allBold).
+        v topView label:(resources string:'shadowed method %1' with:m whoString).
+        v leftAcceptAction:[:text | m mclass addSelector:m selector withMethod:originalMethod ].
+        v waitUntilVisible.
     ].
     ^ self
 !
@@ -45272,22 +46465,22 @@
     "compare the codeViews contents against a SmallTeam version"
 
     self selectedMethodsValue do:[:eachMethod |
-	|v changeList change|
-
-	changeList := SmallTeam changesOnHost:hostName.
-	change := changeList
-		    detectLast:[:change |
-			change changeClass == eachMethod mclass
-			and:[ change selector == eachMethod selector ] ]
-		    ifNone:nil.
-	change notNil ifTrue:[
-	    v := DiffCodeView
-		    openOn:(change source)
-		    label:'Version on ',hostName
-		    and:eachMethod source
-		    label:'Your Version'.
-	    v topView label:(resources string:'Comparing method').
-	].
+        |v changeList change|
+
+        changeList := SmallTeam changesOnHost:hostName.
+        change := changeList
+                    detectLast:[:change |
+                        change changeClass == eachMethod mclass
+                        and:[ change selector == eachMethod selector ] ]
+                    ifNone:nil.
+        change notNil ifTrue:[
+            v := DiffCodeView
+                    openOn:(change source)
+                    label:'Version on ',hostName
+                    and:eachMethod source
+                    label:'Your Version'.
+            v topView label:(resources string:'Comparing method').
+        ].
     ].
 
     "Created: / 11-11-2006 / 15:15:26 / cg"
@@ -45301,10 +46494,10 @@
     self theSingleSelectedMethod isNil ifTrue:[^ self].
 
     ParserFlags
-	withSTCCompilation:#always
-	do:[
-	    self codeView accept.
-	].
+        withSTCCompilation:#always
+        do:[
+            self codeView accept.
+        ].
 !
 
 selectorMenuCopy
@@ -45319,21 +46512,21 @@
     |currentMethod s codeView|
 
     (currentMethod := self theSingleSelectedMethod) notNil ifTrue:[
-	(self askIfModified:'Code was modified.\\Decompile anyway ?')
-	ifFalse:[^ self].
-
-	s := '' writeStream.
-	(currentMethod decompileTo:s) ifFalse:[
-	    self warn:'No decompiler available'.
-	].
-	codeView := self codeView.
-
-	codeView contents:s contents.
-	codeView modified:false.
-	navigationState modified:false.
-	navigationState realModifiedState:false.
-
-	codeView acceptAction:nil.
+        (self askIfModified:'Code was modified.\\Decompile anyway ?')
+        ifFalse:[^ self].
+
+        s := '' writeStream.
+        (currentMethod decompileTo:s) ifFalse:[
+            self warn:'No decompiler available'.
+        ].
+        codeView := self codeView.
+
+        codeView contents:s contents.
+        codeView modified:false.
+        navigationState modified:false.
+        navigationState realModifiedState:false.
+
+        codeView acceptAction:nil.
     ]
 !
 
@@ -45348,16 +46541,16 @@
     (currentMethod notNil
     and:[(methodsResources := currentMethod resources) notNil]
     ) ifTrue:[
-	"/
-	"/ kludge - this info should come from somewhere else ...
-	"/
-	editorClass := self class resourceEditorClassForResources:methodsResources.
-	editorClass notNil ifTrue: [
-	    editorClass
-		openOnClass:currentMethod mclass theNonMetaclass
-		andSelector:currentMethod selector.
-	    ^ self.
-	]
+        "/
+        "/ kludge - this info should come from somewhere else ...
+        "/
+        editorClass := self class resourceEditorClassForResources:methodsResources.
+        editorClass notNil ifTrue: [
+            editorClass
+                openOnClass:currentMethod mclass theNonMetaclass
+                andSelector:currentMethod selector.
+            ^ self.
+        ]
     ].
 !
 
@@ -45369,26 +46562,26 @@
 
 selectorMenuFileOutAsWithFormat:aFormatSymbolOrNil
     "fileOut selected methods from the list -  file format as specified by the argument:
-	nil     - standard format
-	#xml    - XML standard format
-	#sif    - SIF (smalltalk interchange file) standard format
-	#binary - ST/X binary format
+        nil     - standard format
+        #xml    - XML standard format
+        #sif    - SIF (smalltalk interchange file) standard format
+        #binary - ST/X binary format
     "
 
     |methods fileNameTemplate m|
 
     methods := self selectedMethodsValue.
     methods size > 1 ifTrue:[
-	fileNameTemplate := 'someMethods'.
-    ] ifFalse:[
-	m := methods first.
-	fileNameTemplate := m mclass nameWithoutPrefix , '-' , m selector.
-    ].
-    self
-	fileOutMethods:methods
-	format:aFormatSymbolOrNil
-	fileNameTemplate:fileNameTemplate
-	boxTitle:'FileOut selected method(s) as:'
+        fileNameTemplate := 'someMethods'.
+    ] ifFalse:[
+        m := methods first.
+        fileNameTemplate := m mclass nameWithoutPrefix , '-' , m selector.
+    ].
+    self
+        fileOutMethods:methods
+        format:aFormatSymbolOrNil
+        fileNameTemplate:fileNameTemplate
+        boxTitle:'FileOut selected method(s) as:'
 
     "Modified: / 28-02-2012 / 16:29:16 / cg"
 !
@@ -45403,8 +46596,8 @@
     "fileOut selected methods from the list - xml format"
 
     XMLCoder isNil ifTrue:[
-	self warn:'Sorry - missing class: XMLCoder.\\Cannot generate XML file.' withCRs.
-	^ self
+        self warn:'Sorry - missing class: XMLCoder.\\Cannot generate XML file.' withCRs.
+        ^ self
     ].
     ^ self selectorMenuFileOutAsWithFormat:#xml
 !
@@ -45418,100 +46611,100 @@
     aspect isEmptyOrNil ifTrue:[^ self].
     (aspect isValidSmalltalkIdentifier
     and:[ aspect isUnarySelector]) ifFalse:[
-	Dialog warn:'Name of aspect must be a valid Smalltalk unary identifier'.
-	thisContext restart
+        Dialog warn:'Name of aspect must be a valid Smalltalk unary identifier'.
+        thisContext restart
     ].
 
     cls := self theSingleSelectedClass.
     cls isNil ifTrue:[^ self].
 
     self
-	generateUndoableChange:(resources string:'Generate Aspect Method for "%1"' with:aspect)
-	overClasses:(Array with:cls)
-	via:[:generator :eachClass |
-	    generator createAspectMethodFor:aspect in:cls
-	]
+        generateUndoableChange:(resources string:'Generate Aspect Method for "%1"' with:aspect)
+        overClasses:(Array with:cls)
+        via:[:generator :eachClass |
+            generator createAspectMethodFor:aspect in:cls
+        ]
 !
 
 selectorMenuGenerateCorrespondingInstanceCreationInClass
     "generate a subclassResponsibility method in the methods superclass"
 
     self
-	generateUndoableChangeOverSelectedMethods:'Generate Instance creation for %(singleMethodNameOrNumberOfMethods)'
-	via:[:generator :eachMethod |
-	    |selector mclass|
-
-	    selector := eachMethod selector.
-	    mclass := eachMethod mclass.
-
-	    generator
-		createInstanceCreationMethodWithSetupFor:selector category:'instance creation' in:mclass theMetaclass.
-	]
+        generateUndoableChangeOverSelectedMethods:'Generate Instance creation for %(singleMethodNameOrNumberOfMethods)'
+        via:[:generator :eachMethod |
+            |selector mclass|
+
+            selector := eachMethod selector.
+            mclass := eachMethod mclass.
+
+            generator
+                createInstanceCreationMethodWithSetupFor:selector category:'instance creation' in:mclass theMetaclass.
+        ]
 !
 
 selectorMenuGenerateFalseReturnInSuperclass
     "generate a ^false method in the method's superclass"
 
     self
-	generateUndoableChangeOverSelectedMethods:'Generate False-return in superclass for %(singleMethodNameOrNumberOfMethods)'
-	via:[:generator :eachMethod |
-
-	    |selector category mclass implClass defineIt answer|
-
-	    selector := eachMethod selector.
-	    category := eachMethod category.
-	    mclass := eachMethod mclass.
-
-	    mclass superclass notNil ifTrue:[
-		(mclass superclass includesSelector:selector) ifFalse:[
-		    defineIt := true.
-
-		    implClass := mclass superclass whichClassIncludesSelector:selector.
-		    implClass notNil ifTrue:[
-			answer := Dialog
-				    confirmWithCancel:(resources
-							    string:'%1 is inherited from %2.\\Define as false-return in %3 anyway ?'
-							    with:selector allBold
-							    with:implClass name allBold
-							    with:mclass superclass name allBold
-						      ) withCRs.
-			answer isNil ifTrue:[^ self].
-			defineIt := answer.
-		    ].
-		    defineIt ifTrue:[
-			generator
-			    createFalseReturnMethodFor:selector category:category in:mclass superclass.
-		    ]
-		].
-	    ].
-	]
+        generateUndoableChangeOverSelectedMethods:'Generate False-return in superclass for %(singleMethodNameOrNumberOfMethods)'
+        via:[:generator :eachMethod |
+
+            |selector category mclass implClass defineIt answer|
+
+            selector := eachMethod selector.
+            category := eachMethod category.
+            mclass := eachMethod mclass.
+
+            mclass superclass notNil ifTrue:[
+                (mclass superclass includesSelector:selector) ifFalse:[
+                    defineIt := true.
+
+                    implClass := mclass superclass whichClassIncludesSelector:selector.
+                    implClass notNil ifTrue:[
+                        answer := Dialog
+                                    confirmWithCancel:(resources
+                                                            string:'%1 is inherited from %2.\\Define as false-return in %3 anyway ?'
+                                                            with:selector allBold
+                                                            with:implClass name allBold
+                                                            with:mclass superclass name allBold
+                                                      ) withCRs.
+                        answer isNil ifTrue:[^ self].
+                        defineIt := answer.
+                    ].
+                    defineIt ifTrue:[
+                        generator
+                            createFalseReturnMethodFor:selector category:category in:mclass superclass.
+                    ]
+                ].
+            ].
+        ]
 !
 
 selectorMenuGenerateForwardingMethodForInstances
     "generate a forwarding method on the instance side"
 
     self
-	generateUndoableChangeOverSelectedMethods:'Generate Forwarder for %(singleMethodNameOrNumberOfMethods)'
-	via:[:generator :eachMethod |
-	    |selector category mclass implClass defineIt parser spec code|
-
-	    selector := eachMethod selector.
-	    category := eachMethod category.
-	    mclass := eachMethod mclass.
-	    mclass isMeta ifTrue:[
-		parser := Parser for:eachMethod source.
-		parser parseMethod.
-		spec := Parser methodSpecificationForSelector:selector argNames:parser methodArgs.
-
-		(mclass theNonMetaclass includesSelector:selector) ifFalse:[
-		    code := (spec , '\    ^ self class ' , spec , '.') withCRs.
-		    generator
-			compile:code
-			forClass:mclass theNonMetaclass
-			inCategory:category
-		].
-	    ].
-	]
+        generateUndoableChangeOverSelectedMethods:'Generate Forwarder for %(singleMethodNameOrNumberOfMethods)'
+        via:[:generator :eachMethod |
+            |selector category mclass implClass defineIt parser spec code|
+
+            selector := eachMethod selector.
+            category := eachMethod category.
+            mclass := eachMethod mclass.
+            mclass isMeta ifTrue:[
+                parser := Parser for:eachMethod source.
+                parser parseMethod.
+                spec := Parser methodSpecificationForSelector:selector argNames:parser methodArgs.
+
+                (mclass theNonMetaclass includesSelector:selector) ifFalse:[
+                    code := (spec , '\    ^ self class ' , spec , '.') withCRs.
+                    generator
+                        compile:code
+                        forClass:mclass theNonMetaclass
+                        inCategory:category
+                ].
+            ].
+        ]
 !
 
 selectorMenuGenerateRedefinitionInSubclass
@@ -45520,50 +46713,50 @@
     |possibleSubclasses selectedSubclasses|
 
     possibleSubclasses :=
-	(self selectedMethodsClasses collectAll:[:cls |
-	    cls allSubclasses
-	]) asSet.
+        (self selectedMethodsClasses collectAll:[:cls |
+            cls allSubclasses
+        ]) asSet.
 
     possibleSubclasses isEmpty ifTrue:[
-	Dialog information:'No subclass'.
-	^ self
+        Dialog information:'No subclass'.
+        ^ self
     ].
     possibleSubclasses size == 1 ifTrue:[
-	selectedSubclasses := possibleSubclasses
-    ] ifFalse:[
-	possibleSubclasses := possibleSubclasses asOrderedCollection sort:[:a :b | a name < b name].
-	selectedSubclasses := Dialog
-	    choose:'Generate super-send in class(es):'
-	    fromList:possibleSubclasses values:possibleSubclasses
-	    buttons:nil values:nil
-	    lines:10 cancel:nil multiple:true.
-
-	selectedSubclasses isEmptyOrNil ifTrue:[^ self].
+        selectedSubclasses := possibleSubclasses
+    ] ifFalse:[
+        possibleSubclasses := possibleSubclasses asOrderedCollection sort:[:a :b | a name < b name].
+        selectedSubclasses := Dialog
+            choose:'Generate super-send in class(es):'
+            fromList:possibleSubclasses values:possibleSubclasses
+            buttons:nil values:nil
+            lines:10 cancel:nil multiple:true.
+
+        selectedSubclasses isEmptyOrNil ifTrue:[^ self].
     ].
 
     self
     generateUndoableChangeOverSelectedMethods:'Generate Responsibility for %(singleMethodNameOrNumberOfMethods)'
     via:[:generator :eachMethod |
-	|selector category implClass defineIt parser spec |
-
-	selector := eachMethod selector.
-	category := eachMethod category.
-
-	parser := Parser for:eachMethod source.
-	parser parseMethod.
-	spec := Parser methodSpecificationForSelector:selector argNames:parser methodArgs.
-
-	selectedSubclasses do:[:eachSubClass |
-	    |code|
-
-	    (eachSubClass includesSelector:selector) ifFalse:[
-		code := (spec , '\    "/ self halt.\    ^ super ',spec) withCRs.
-		generator
-		    compile:code
-		    forClass:eachSubClass
-		    inCategory:category
-	    ].
-	].
+        |selector category implClass defineIt parser spec |
+
+        selector := eachMethod selector.
+        category := eachMethod category.
+
+        parser := Parser for:eachMethod source.
+        parser parseMethod.
+        spec := Parser methodSpecificationForSelector:selector argNames:parser methodArgs.
+
+        selectedSubclasses do:[:eachSubClass |
+            |code|
+
+            (eachSubClass includesSelector:selector) ifFalse:[
+                code := (spec , '\    "/ self halt.\    ^ super ',spec) withCRs.
+                generator
+                    compile:code
+                    forClass:eachSubClass
+                    inCategory:category
+            ].
+        ].
     ]
 !
 
@@ -45578,11 +46771,11 @@
     selector := selector asSymbol.
 
     self selectedClassesDo:[:eachClass |
-	|category|
-
-	category := '* as yet unspecified *'.
-	SmalltalkCodeGeneratorTool
-	    createSubclassResponsibilityMethodFor:selector category:category in:eachClass.
+        |category|
+
+        category := '* as yet unspecified *'.
+        SmalltalkCodeGeneratorTool
+            createSubclassResponsibilityMethodFor:selector category:category in:eachClass.
     ]
 
     "Modified: / 31-01-2011 / 18:29:52 / cg"
@@ -45592,38 +46785,38 @@
     "generate a subclassResponsibility method in the methods superclass"
 
     self
-	generateUndoableChangeOverSelectedMethods:'Generate Responsibility in superclass for %(singleMethodNameOrNumberOfMethods)'
-	via:[:generator :eachMethod |
-
-	    |selector category mclass implClass defineIt answer|
-
-	    selector := eachMethod selector.
-	    category := eachMethod category.
-	    mclass := eachMethod mclass.
-
-	    mclass superclass notNil ifTrue:[
-		(mclass superclass includesSelector:selector) ifFalse:[
-		    defineIt := true.
-
-		    implClass := mclass superclass whichClassIncludesSelector:selector.
-		    implClass notNil ifTrue:[
-			answer := Dialog
-				    confirmWithCancel:(resources
-							    string:'%1 is inherited from %2.\\Define as subclassResponsibility in %3 anyway ?'
-							    with:selector allBold
-							    with:implClass name allBold
-							    with:mclass superclass name allBold
-						      ) withCRs.
-			answer isNil ifTrue:[^ self].
-			defineIt := answer.
-		    ].
-		    defineIt ifTrue:[
-			generator
-			    createSubclassResponsibilityMethodFor:selector category:category in:mclass superclass.
-		    ]
-		].
-	    ].
-	]
+        generateUndoableChangeOverSelectedMethods:'Generate Responsibility in superclass for %(singleMethodNameOrNumberOfMethods)'
+        via:[:generator :eachMethod |
+
+            |selector category mclass implClass defineIt answer|
+
+            selector := eachMethod selector.
+            category := eachMethod category.
+            mclass := eachMethod mclass.
+
+            mclass superclass notNil ifTrue:[
+                (mclass superclass includesSelector:selector) ifFalse:[
+                    defineIt := true.
+
+                    implClass := mclass superclass whichClassIncludesSelector:selector.
+                    implClass notNil ifTrue:[
+                        answer := Dialog
+                                    confirmWithCancel:(resources
+                                                            string:'%1 is inherited from %2.\\Define as subclassResponsibility in %3 anyway ?'
+                                                            with:selector allBold
+                                                            with:implClass name allBold
+                                                            with:mclass superclass name allBold
+                                                      ) withCRs.
+                        answer isNil ifTrue:[^ self].
+                        defineIt := answer.
+                    ].
+                    defineIt ifTrue:[
+                        generator
+                            createSubclassResponsibilityMethodFor:selector category:category in:mclass superclass.
+                    ]
+                ].
+            ].
+        ]
 !
 
 selectorMenuGenerateTemplateInAllSubclasses
@@ -45636,30 +46829,30 @@
     "generate a template in some subclass for each subclassResponsibility method"
 
     self
-	generateUndoableChangeOverSelectedMethods:'Generate Responsibility for %(singleMethodNameOrNumberOfMethods)'
-	via:[:generator :eachMethod |
-	    |selector category mclass implClass defineIt parser spec |
-
-	    selector := eachMethod selector.
-	    category := eachMethod category.
-	    mclass := eachMethod mclass.
-
-	    parser := Parser for:eachMethod source.
-	    parser parseMethod.
-	    spec := Parser methodSpecificationForSelector:selector argNames:parser methodArgs.
-
-	    (mclass perform:aSubclassEnumeratingSelector) do:[:eachSubClass |
-		|code|
-
-		(eachSubClass includesSelector:selector) ifFalse:[
-		    code := spec , '\    self halt.\    ^ self' withCRs.
-		    generator
-			compile:code
-			forClass:eachSubClass
-			inCategory:category
-		].
-	    ].
-	]
+        generateUndoableChangeOverSelectedMethods:'Generate Responsibility for %(singleMethodNameOrNumberOfMethods)'
+        via:[:generator :eachMethod |
+            |selector category mclass implClass defineIt parser spec |
+
+            selector := eachMethod selector.
+            category := eachMethod category.
+            mclass := eachMethod mclass.
+
+            parser := Parser for:eachMethod source.
+            parser parseMethod.
+            spec := Parser methodSpecificationForSelector:selector argNames:parser methodArgs.
+
+            (mclass perform:aSubclassEnumeratingSelector) do:[:eachSubClass |
+                |code|
+
+                (eachSubClass includesSelector:selector) ifFalse:[
+                    code := spec , '\    self halt.\    ^ self' withCRs.
+                    generator
+                        compile:code
+                        forClass:eachSubClass
+                        inCategory:category
+                ].
+            ].
+        ]
 !
 
 selectorMenuGenerateTemplateInSubclasses
@@ -45672,7 +46865,7 @@
     |currentMethod cls selector tree args whichParameter|
 
     (self askIfModified) ifFalse:[
-	^ self
+        ^ self
     ].
 
     currentMethod := self theSingleSelectedMethod.
@@ -45682,18 +46875,18 @@
 
     tree := cls parseTreeFor:selector.
     tree isNil ifTrue:[
-	self warn: 'Could not parse the method'.
-	^ self
+        self warn: 'Could not parse the method'.
+        ^ self
     ].
     args := tree argumentNames.
     args size > 1 ifTrue:[
-	whichParameter := self selectionInCodeView.
-	(whichParameter notEmptyOrNil and:[ args includes:whichParameter]) ifFalse:[
-	    whichParameter := Dialog choose:'Inline which Parameter ?' fromList:args lines:5 title:'Inline Parameter'.
-	    whichParameter isEmptyOrNil ifTrue:[^ self].
-	].
-    ] ifFalse:[
-	whichParameter := args first.
+        whichParameter := self selectionInCodeView.
+        (whichParameter notEmptyOrNil and:[ args includes:whichParameter]) ifFalse:[
+            whichParameter := Dialog choose:'Inline which Parameter ?' fromList:args lines:5 title:'Inline Parameter'.
+            whichParameter isEmptyOrNil ifTrue:[^ self].
+        ].
+    ] ifFalse:[
+        whichParameter := args first.
     ].
 
     self codeMenuInlineParameter:whichParameter
@@ -45710,7 +46903,7 @@
 
     mthd := self theSingleSelectedMethod.
     mthd notNil ifTrue:[
-	mthd inspect
+        mthd inspect
     ].
 
     "Created: / 6.2.2000 / 01:53:56 / cg"
@@ -45720,17 +46913,17 @@
     "load a smallTeam version"
 
     self selectedMethodsValue do:[:eachMethod |
-	|changeList change|
-
-	changeList := SmallTeam changesOnHost:hostName.
-	change := changeList
-		    detectLast:[:change |
-			change changeClass == eachMethod mclass
-			and:[ change selector == eachMethod selector ] ]
-		    ifNone:nil.
-	change notNil ifTrue:[
-	    change apply
-	].
+        |changeList change|
+
+        changeList := SmallTeam changesOnHost:hostName.
+        change := changeList
+                    detectLast:[:change |
+                        change changeClass == eachMethod mclass
+                        and:[ change selector == eachMethod selector ] ]
+                    ifNone:nil.
+        change notNil ifTrue:[
+            change apply
+        ].
     ].
 
     "Created: / 12-11-2006 / 15:48:43 / cg"
@@ -45762,19 +46955,19 @@
     "move the selected methods from inst to their class side or vice versa"
 
     self selectedMethodsValue copy do:[:methodToMove |
-	|mclass question msg selectorToMove dontDoIt newMethod dstClass|
-
-	mclass := methodToMove mclass.
-	mclass isMeta ifTrue:[
-	    dstClass := mclass theNonMetaclass.
-	] ifFalse:[
-	    dstClass := mclass theMetaclass.
-	].
-
-	self
-	    moveOrCopyMethods:(Array with:methodToMove)
-	    toClass:dstClass
-	    moveOrCopy:(withForwarder ifTrue:#moveAndForward ifFalse:#move).
+        |mclass question msg selectorToMove dontDoIt newMethod dstClass|
+
+        mclass := methodToMove mclass.
+        mclass isMeta ifTrue:[
+            dstClass := mclass theNonMetaclass.
+        ] ifFalse:[
+            dstClass := mclass theMetaclass.
+        ].
+
+        self
+            moveOrCopyMethods:(Array with:methodToMove)
+            toClass:dstClass
+            moveOrCopy:(withForwarder ifTrue:#moveAndForward ifFalse:#move).
 
 
 "/        dontDoIt := false.
@@ -45845,76 +47038,76 @@
 
     useRefactoringSupport := self canUseRefactoringSupport.
     useRefactoringSupport ifTrue:[
-	changes := CompositeRefactoryChange named:'Mark Method(s) as Obsolete'.
+        changes := CompositeRefactoryChange named:'Mark Method(s) as Obsolete'.
     ].
 
     methodsToChangePackage := OrderedCollection new.
 
     self selectedMethodsDo:[:eachMethod |
-	|rs mClass selector source parser definitionPart bodyPart newSource newMethod result
-	 s p1 indent category bodyStartsWithNewLine|
-
-	eachMethod isObsolete ifFalse:[
-	    rs := eachMethod resources.
-	    false "rs notEmptyOrNil" ifTrue:[
-		self halt.
-	    ] ifFalse:[
-		mClass := eachMethod mclass.
-		selector := eachMethod selector.
-		source := eachMethod source.
-		category := eachMethod category.
-
-		parser := Parser for:source in:nil.
-		parser ignoreErrors:true; ignoreWarnings:true; saveComments:true.
-		parser parseMethodSpec.
-
-		"/ insert an obsolete-resource into the first line after the selector-spec
-		definitionPart := source copyTo:parser endOfSelectorPosition.
-		bodyPart := source copyFrom:parser endOfSelectorPosition+1.
-
-		bodyStartsWithNewLine := false.
-
-		s := bodyPart readStream.
-		[ s peek == Character cr or:[ s peek == Character nl ] ] whileTrue:[ bodyStartsWithNewLine := true. s next ].
-
-		p1 := s position.
-		[ s peek == Character space ] whileTrue:[ s next ].
-		indent := s position - p1.
-		indent := indent max:4.
-
-		newSource := definitionPart
-			     , '\' withCRs, (String new:indent), '<resource: #obsolete>'.
-		bodyStartsWithNewLine ifFalse:[
-		    newSource := newSource , '\' withCRs.
-		].
-		newSource := newSource , bodyPart.
-
-		result := Compiler compile:newSource forClass:mClass install:false.
-		(result isNil or:[result == #Error]) ifTrue:[
-		    Dialog warn:(resources string:'Failed to compile new version of %1' with:eachMethod whoString allBold).
-		] ifFalse:[
-		    useRefactoringSupport ifTrue:[
-			changes
-			    compile:newSource
-			    in:mClass
-			    classified:category.
-		    ] ifFalse:[
-			newMethod := mClass
-					compile:newSource
-					classified:category.
-		    ].
-		    methodsToChangePackage add:(Array with:mClass
-						      with:selector
-						      with:eachMethod package).
-		].
-	    ].
-	].
+        |rs mClass selector source parser definitionPart bodyPart newSource newMethod result
+         s p1 indent category bodyStartsWithNewLine|
+
+        eachMethod isObsolete ifFalse:[
+            rs := eachMethod resources.
+            false "rs notEmptyOrNil" ifTrue:[
+                self halt.
+            ] ifFalse:[
+                mClass := eachMethod mclass.
+                selector := eachMethod selector.
+                source := eachMethod source.
+                category := eachMethod category.
+
+                parser := Parser for:source in:nil.
+                parser ignoreErrors:true; ignoreWarnings:true; saveComments:true.
+                parser parseMethodSpec.
+
+                "/ insert an obsolete-resource into the first line after the selector-spec
+                definitionPart := source copyTo:parser endOfSelectorPosition.
+                bodyPart := source copyFrom:parser endOfSelectorPosition+1.
+
+                bodyStartsWithNewLine := false.
+
+                s := bodyPart readStream.
+                [ s peek == Character cr or:[ s peek == Character nl ] ] whileTrue:[ bodyStartsWithNewLine := true. s next ].
+
+                p1 := s position.
+                [ s peek == Character space ] whileTrue:[ s next ].
+                indent := s position - p1.
+                indent := indent max:4.
+
+                newSource := definitionPart
+                             , '\' withCRs, (String new:indent), '<resource: #obsolete>'.
+                bodyStartsWithNewLine ifFalse:[
+                    newSource := newSource , '\' withCRs.
+                ].
+                newSource := newSource , bodyPart.
+
+                result := Compiler compile:newSource forClass:mClass install:false.
+                (result isNil or:[result == #Error]) ifTrue:[
+                    Dialog warn:(resources string:'Failed to compile new version of %1' with:eachMethod whoString allBold).
+                ] ifFalse:[
+                    useRefactoringSupport ifTrue:[
+                        changes
+                            compile:newSource
+                            in:mClass
+                            classified:category.
+                    ] ifFalse:[
+                        newMethod := mClass
+                                        compile:newSource
+                                        classified:category.
+                    ].
+                    methodsToChangePackage add:(Array with:mClass
+                                                      with:selector
+                                                      with:eachMethod package).
+                ].
+            ].
+        ].
     ].
     useRefactoringSupport ifTrue:[
-	RefactoryChangeManager performChange: changes.
+        RefactoryChangeManager performChange: changes.
     ].
     methodsToChangePackage triplesDo:[:cls :sel :pkg|
-	(cls compiledMethodAt:sel) setPackage:pkg.
+        (cls compiledMethodAt:sel) setPackage:pkg.
     ].
 
     "Created: / 23-11-2006 / 16:52:27 / cg"
@@ -45930,17 +47123,17 @@
     newClass isNil ifTrue:[^ self].
 
     doWhat == #moveAndForward ifTrue:[
-	newClass isMeta ifFalse:[
-	    (Dialog
-		confirm:(resources
-			    stringWithCRs:'Destination must be a Metaclass.\\Moving to %1.'
-			    with:newClass theMetaclass name)
-		noLabel:(resources string:'Cancel')
-	    ) ifFalse:[
-		^  self
-	    ].
-	    newClass := newClass theMetaclass.
-	].
+        newClass isMeta ifFalse:[
+            (Dialog
+                confirm:(resources
+                            stringWithCRs:'Destination must be a Metaclass.\\Moving to %1.'
+                            with:newClass theMetaclass name)
+                noLabel:(resources string:'Cancel')
+            ) ifFalse:[
+                ^  self
+            ].
+            newClass := newClass theMetaclass.
+        ].
     ].
 
     methods := self selectedMethodsValue.
@@ -45963,17 +47156,17 @@
 
     perPackageMethods := Dictionary new.
     self selectedMethodsValue do:[:eachMethod |
-	|methodsPackage classPackage set|
-
-	methodsPackage := eachMethod package.
-	classPackage := eachMethod mclass package.
-	methodsPackage ~= classPackage ifTrue:[
-	    set := perPackageMethods at:classPackage ifAbsentPut:[Set new].
-	    set add:eachMethod.
-	].
+        |methodsPackage classPackage set|
+
+        methodsPackage := eachMethod package.
+        classPackage := eachMethod mclass package.
+        methodsPackage ~= classPackage ifTrue:[
+            set := perPackageMethods at:classPackage ifAbsentPut:[Set new].
+            set add:eachMethod.
+        ].
     ].
     perPackageMethods keysAndValuesDo:[:pkg :setOfMethods |
-	self moveMethods:setOfMethods toProject:pkg
+        self moveMethods:setOfMethods toProject:pkg
     ].
 
     "Created: / 22-11-2006 / 13:17:00 / cg"
@@ -45997,45 +47190,45 @@
     "/ a good default is the grand majority of other implementations (works often)
     "/ majority is defined: more than 2/3 of the other impls are in a particular package:
     projectsOfOtherImplementations := affectedMethods
-					collectAll:[:eachMethod |
-					    (environment allImplementorsOf:eachMethod selector)
-						collect:[:cls | (cls compiledMethodAt:eachMethod selector) package]
-					] as: Bag.
+                                        collectAll:[:eachMethod |
+                                            (environment allImplementorsOf:eachMethod selector)
+                                                collect:[:cls | (cls compiledMethodAt:eachMethod selector) package]
+                                        ] as: Bag.
 
     "/ Transcript show:'all: '; show:projectsOfOtherImplementations size; show:' this: '; showCR:projectsOfOtherImplementations sortedCounts first.
     (projectsOfOtherImplementations notEmpty
-	and:[
-	    highRank := projectsOfOtherImplementations sortedCounts first.
-	    highRank key > (projectsOfOtherImplementations size * (2/3))
-	])
+        and:[
+            highRank := projectsOfOtherImplementations sortedCounts first.
+            highRank key > (projectsOfOtherImplementations size * (2/3))
+        ])
     ifTrue:[
-	offered := highRank value
-    ] ifFalse:[
-	LastProjectMoves size > 0 ifTrue:[
-	    offered := LastProjectMoves first
-	] ifFalse:[
-	    classProjects size == 1 ifTrue:[
-		offered := classProjects first
-	    ] ifFalse:[
-		offered := "classesProject ? " Project current package
-	    ].
-	].
+        offered := highRank value
+    ] ifFalse:[
+        LastProjectMoves size > 0 ifTrue:[
+            offered := LastProjectMoves first
+        ] ifFalse:[
+            classProjects size == 1 ifTrue:[
+                offered := classProjects first
+            ] ifFalse:[
+                offered := "classesProject ? " Project current package
+            ].
+        ].
     ].
     classProjects remove:offered ifAbsent:[].
     classProjects := classProjects asOrderedCollection.
 
     classProjects size == 1 ifTrue:[
-	msg := resources stringWithCRs:'Move method(s) to which project:\(Hint: The class is in ''%1'')\'
-		 with:(classProjects first allBold).
-    ] ifFalse:[
-	msg := resources stringWithCRs:'Move method(s) to which project:\'.
+        msg := resources stringWithCRs:'Move method(s) to which project:\(Hint: The class is in ''%1'')\'
+                 with:(classProjects first allBold).
+    ] ifFalse:[
+        msg := resources stringWithCRs:'Move method(s) to which project:\'.
     ].
     newProject := self
-		    askForProject:msg
-		    initialText:offered
-		    moreSuggestions:classProjects.
+                    askForProject:msg
+                    initialText:offered
+                    moreSuggestions:classProjects.
     newProject notNil ifTrue:[
-	self doMoveSelectedMethodsToProject:newProject.
+        self doMoveSelectedMethodsToProject:newProject.
     ].
 
     "Created: / 17-02-2000 / 23:02:49 / cg"
@@ -46055,142 +47248,147 @@
 
     "/ offer the current classes's protocols in the dialog
     (selClasses := self selectedClassesValue) notNil ifTrue:[
-	selClasses do:[:eachClass |
-	    someCategories addAll:(eachClass categories).
-	]
-    ] ifFalse:[
-	"/ offer the current method-classes' protocols in the dialog
-	methodSelection do:[:eachMethod | |cls|
-	    (cls := eachMethod mclass) notNil ifTrue:[
-		someCategories addAll:cls categories
-	    ]
-	]
+        selClasses do:[:eachClass |
+            someCategories addAll:(eachClass categories).
+        ]
+    ] ifFalse:[
+        "/ offer the current method-classes' protocols in the dialog
+        methodSelection do:[:eachMethod | |cls|
+            (cls := eachMethod mclass) notNil ifTrue:[
+                someCategories addAll:cls categories
+            ]
+        ]
     ].
 
     selectors := methodSelection collect:[:each | each selector].
 
     "/ if all selectors are getters/setters, add 'accessing'
     RBParser notNil ifTrue:[
-	|searcher allGettersOrSetters allReturnTrueOrFalse|
-
-	searcher := ParseTreeSearcher isGetterOrSetterMethod.
-	allGettersOrSetters :=
-	    methodSelection
-		conform:[:eachMethod |
-		    |tree|
-
-		    tree := RBParser
-			     parseSearchMethod:(eachMethod source)
-			     onError: [:str :pos | nil].
-
-		    tree notNil and:[ (searcher executeTree:tree initialAnswer:nil) notNil ].
-		].
-	allGettersOrSetters ifTrue:[
-	    someCategories add:'accessing'.
-	    goodCandidates add:'accessing'.
-	    initialAnswer := 'accessing'.
-	].
-
-	searcher := ParseTreeSearcher isJustReturningTrueOrFalse.
-	allReturnTrueOrFalse :=
-	    methodSelection
-		conform:[:eachMethod |
-		    |tree|
-		    tree := RBParser
-			     parseSearchMethod:(eachMethod source)
-			     onError: [:str :pos | nil].
-
-		    tree notNil and:[ searcher executeTree:tree initialAnswer:false ].
-		].
-	allReturnTrueOrFalse ifTrue:[
-	    someCategories add:'testing'.
-	    goodCandidates add:'testing'.
-	    initialAnswer := 'testing'.
-	].
+        |searcher allGettersOrSetters allReturnTrueOrFalse|
+
+        searcher := ParseTreeSearcher isGetterOrSetterMethod.
+        allGettersOrSetters :=
+            methodSelection
+                conform:[:eachMethod |
+                    |tree|
+
+                    tree := RBParser
+                             parseSearchMethod:(eachMethod source)
+                             onError: [:str :pos | nil].
+
+                    tree notNil and:[ (searcher executeTree:tree initialAnswer:nil) notNil ].
+                ].
+        allGettersOrSetters ifTrue:[
+            someCategories add:'accessing'.
+            goodCandidates add:'accessing'.
+            initialAnswer := 'accessing'.
+        ].
+
+        searcher := ParseTreeSearcher isJustReturningTrueOrFalse.
+        allReturnTrueOrFalse :=
+            methodSelection
+                conform:[:eachMethod |
+                    |tree|
+                    tree := RBParser
+                             parseSearchMethod:(eachMethod source)
+                             onError: [:str :pos | nil].
+
+                    tree notNil and:[ searcher executeTree:tree initialAnswer:false ].
+                ].
+        allReturnTrueOrFalse ifTrue:[
+            someCategories add:'testing'.
+            goodCandidates add:'testing'.
+            initialAnswer := 'testing'.
+        ].
     ].
 
     "/ add actual categories of selected methods
     (SystemBrowser findImplementorsOfAny:selectors in:(environment allClasses) ignoreCase:false)
     do:[:otherMethod |
-	|cat|
-
-	(methodSelection includesIdentical:otherMethod) ifFalse:[
-	    cat := otherMethod category.
-	    someCategories add:cat.
-	    goodCandidates add:cat.
-	]
-    ].
+        |cat|
+
+        (methodSelection includesIdentical:otherMethod) ifFalse:[
+            cat := otherMethod category.
+            someCategories add:cat.
+            goodCandidates add:cat.
+        ]
+    ].
+
+    "/ look for majority of categories in selection
+    goodCandidates := (methodSelection collect:[:m | m category]) asBag
+                                reject:[:cat | (cat includesString:'uncategorized')
+                                               or:[ cat includesString:'unclassified']].
 
     "/ for isXXX methods, add 'testing'
     (methodSelection contains:[:method | method selector = ('is',method mclass name) ]) ifTrue:[
-	someCategories add:'testing'.
-	goodCandidates add:'testing'.
+        someCategories add:'testing'.
+        goodCandidates add:'testing'.
     ].
     "/ for hasXXX, canXXX methods, add 'queries'
     (methodSelection contains:[:method | |sel|
-				sel := method selector.
-				((sel startsWith:'has') and:[sel size > 3 and:[ (sel at:4) isUppercase ]])
-				or:[ ((sel startsWith:'can') and:[sel size > 3 and:[ (sel at:4) isUppercase ]]) ]]) ifTrue:[
-	someCategories add:'queries'.
-	goodCandidates add:'queries'.
+                                sel := method selector.
+                                ((sel startsWith:'has') and:[sel size > 3 and:[ (sel at:4) isUppercase ]])
+                                or:[ ((sel startsWith:'can') and:[sel size > 3 and:[ (sel at:4) isUppercase ]]) ]]) ifTrue:[
+        someCategories add:'queries'.
+        goodCandidates add:'queries'.
     ].
     (methodSelection contains:[:method | method selector asLowercase endsWith:'do:']) ifTrue:[
-	someCategories add:'enumeration'.
-	goodCandidates add:'enumeration'.
+        someCategories add:'enumeration'.
+        goodCandidates add:'enumeration'.
     ].
 
     goodCandidates size == 1 ifTrue:[
-	initialAnswer := goodCandidates anElement
-    ] ifFalse:[
-	(mthd := self theSingleSelectedMethod) notNil ifTrue:[
-	    gotInherited := false.
-
-	    "look for protocol of inherited"
-	    superClass := mthd mclass superclass.
-	    superClass notNil ifTrue:[
-		superClass := superClass whichClassIncludesSelector:mthd selector.
-		superClass notNil ifTrue:[
-		    inherited := superClass compiledMethodAt:mthd selector.
-		    inherited notNil ifTrue:[
-			initialAnswer := inherited category.
-			gotInherited := true.
-		    ]
-		] ifFalse:[
-		    superClass := mthd mclass superclass.
-		].
-	    ].
-	    "look for majority protocol in subclasses"
-	    subclassCategories := Bag new.
-	    superClass notNil ifTrue:[
-		mthd mclass allSubclassesDo:[:cls |
-		    |redefined|
-
-		    redefined := superClass compiledMethodAt:mthd selector.
-		    redefined notNil ifTrue:[
-			subclassCategories add:(redefined category).
-		    ]
-		].
-	    ].
-	    subclassCategories notEmpty ifTrue:[
-		subclassCategories := (subclassCategories valuesAndCounts
-					    sort:[:a :b | a value > b value])
-						collect:[:each | each key].
-		someCategories addAll:(subclassCategories first:(3 min:subclassCategories size)).
-		gotInherited ifFalse:[
-		    initialAnswer := subclassCategories first.
-		]
-	    ].
-	]
+        initialAnswer := goodCandidates anElement
+    ] ifFalse:[
+        (mthd := self theSingleSelectedMethod) notNil ifTrue:[
+            gotInherited := false.
+
+            "look for protocol of inherited"
+            superClass := mthd mclass superclass.
+            superClass notNil ifTrue:[
+                superClass := superClass whichClassIncludesSelector:mthd selector.
+                superClass notNil ifTrue:[
+                    inherited := superClass compiledMethodAt:mthd selector.
+                    inherited notNil ifTrue:[
+                        initialAnswer := inherited category.
+                        gotInherited := true.
+                    ]
+                ] ifFalse:[
+                    superClass := mthd mclass superclass.
+                ].
+            ].
+            "look for majority protocol in subclasses"
+            subclassCategories := Bag new.
+            superClass notNil ifTrue:[
+                mthd mclass allSubclassesDo:[:cls |
+                    |redefined|
+
+                    redefined := superClass compiledMethodAt:mthd selector.
+                    redefined notNil ifTrue:[
+                        subclassCategories add:(redefined category).
+                    ]
+                ].
+            ].
+            subclassCategories notEmpty ifTrue:[
+                subclassCategories := (subclassCategories valuesAndCounts
+                                            sort:[:a :b | a value > b value])
+                                                collect:[:each | each key].
+                someCategories addAll:(subclassCategories first:(3 min:subclassCategories size)).
+                gotInherited ifFalse:[
+                    initialAnswer := subclassCategories first.
+                ]
+            ].
+        ]
     ].
 
     someCategories := someCategories asOrderedCollection sort.
 
     newCategory := self
-			askForMethodCategory:'Move to which protocol ?'
-			title:'Change MethodCategory'
-			okLabel:'Move'
-			list:someCategories
-			initialAnswer:(initialAnswer ? (lastMethodCategory ? self theSingleSelectedProtocol)).
+                        askForMethodCategory:'Move to which protocol ?'
+                        title:'Change MethodCategory'
+                        okLabel:'Move'
+                        list:someCategories
+                        initialAnswer:(initialAnswer ? (lastMethodCategory ? self theSingleSelectedProtocol)).
 
     self moveMethods:methodSelection toProtocol:newCategory
 
@@ -46239,15 +47437,15 @@
     |editorClass currentClass|
 
     (currentClass := self theSingleSelectedClass) notNil ifTrue:[
-	"/
-	"/ kludge - this info should come from somewhere else ...
-	"/
-	editorClass := self class resourceEditorClassFor:specTypeSymbol.
-	editorClass notNil ifTrue: [
-	    editorClass
-		openOnClass:currentClass theNonMetaclass
-		andSelector:nil
-	]
+        "/
+        "/ kludge - this info should come from somewhere else ...
+        "/
+        editorClass := self class resourceEditorClassFor:specTypeSymbol.
+        editorClass notNil ifTrue: [
+            editorClass
+                openOnClass:currentClass theNonMetaclass
+                andSelector:nil
+        ]
     ]
 
     "Created: / 01-03-2007 / 20:55:46 / cg"
@@ -46275,7 +47473,7 @@
     printStream := Printer new.
 
     self selectedMethodsDo:[:eachMethod |
-	eachMethod mclass printOutSource:(eachMethod source) on:printStream.
+        eachMethod mclass printOutSource:(eachMethod source) on:printStream.
     ].
     printStream close
 !
@@ -46305,26 +47503,26 @@
 
      "/ example (rename all foo* methods)
      (selector startsWith:''foo'') ifTrue:[
-	newSource := ''bar'' , (method source copyFrom:3+1).
-	class
-	    compile:newSource
-	    classified:(method category).
-	class removeSelector:selector.
+        newSource := ''bar'' , (method source copyFrom:3+1).
+        class
+            compile:newSource
+            classified:(method category).
+        class removeSelector:selector.
      ].
 ].
 '.
 
     LastMethodProcessingBlockString isNil ifTrue:[
-	LastMethodProcessingBlockString := template.
+        LastMethodProcessingBlockString := template.
     ].
 
     textHolder := ValueHolder new.
     dialog := Dialog
-		 forRequestText:(resources string:'Enter method processing block')
-		 lines:25
-		 columns:70
-		 initialAnswer:LastMethodProcessingBlockString
-		 model:textHolder.
+                 forRequestText:(resources string:'Enter method processing block')
+                 lines:25
+                 columns:70
+                 initialAnswer:LastMethodProcessingBlockString
+                 model:textHolder.
     dialog addButton:(Button label:'Template' action:[textHolder value:template. textHolder changed:#value.]).
     dialog open.
     dialog accepted ifFalse:[^ self].
@@ -46334,17 +47532,17 @@
 
     processingBlock := Parser evaluate:processingBlockString.
     processingBlock isBlock ifFalse:[
-	self error:'bad input'.
-	^ self
-    ].
-
-    self
-	selectedMethodsDo:[:eachMethod |
-	    processingBlock
-		value:(eachMethod mclass)
-		value:(eachMethod selector)
-		value:eachMethod
-	]
+        self error:'bad input'.
+        ^ self
+    ].
+
+    self
+        selectedMethodsDo:[:eachMethod |
+            processingBlock
+                value:(eachMethod mclass)
+                value:(eachMethod selector)
+                value:eachMethod
+        ]
 !
 
 selectorMenuPushDownMethod
@@ -46364,24 +47562,24 @@
     selectedMethods := self selectedMethodsValue.
 
     (selectedMethods collect:[:m | m mclass] as:IdentitySet) do:[:eachClass |
-	|selectors refactoring nm|
-
-	selectors := selectedMethods select:[:m | m mclass == eachClass] thenCollect:[:each | each selector].
-	upOrDown == #down ifTrue:[
-	    refactoring := PushDownMethodRefactoring pushDown:selectors from:eachClass.
-	    nm := 'Push down '.
-	] ifFalse:[
-	    refactoring := PushUpMethodRefactoring pushUp:selectors from:eachClass.
-	    nm := 'Push up '.
-	].
-	selectors size == 1 ifTrue:[
-	    nm := nm , selectors first.
-	] ifFalse:[
-	    nm := nm , selectors size printString , ' methods'.
-	].
-	nm := nm , ' from ' , eachClass name.
-	refactoring model name:nm.
-	self performRefactoring:refactoring.
+        |selectors refactoring nm|
+
+        selectors := selectedMethods select:[:m | m mclass == eachClass] thenCollect:[:each | each selector].
+        upOrDown == #down ifTrue:[
+            refactoring := PushDownMethodRefactoring pushDown:selectors from:eachClass.
+            nm := 'Push down '.
+        ] ifFalse:[
+            refactoring := PushUpMethodRefactoring pushUp:selectors from:eachClass.
+            nm := 'Push up '.
+        ].
+        selectors size == 1 ifTrue:[
+            nm := nm , selectors first.
+        ] ifFalse:[
+            nm := nm , selectors size printString , ' methods'.
+        ].
+        nm := nm , ' from ' , eachClass name.
+        refactoring model name:nm.
+        self performRefactoring:refactoring.
     ].
 
     "Modified: / 28-02-2012 / 16:29:38 / cg"
@@ -46397,7 +47595,7 @@
     "recompile the selected methods (for Debug only)"
 
     self selectedMethodsValue do:[:eachMethod |
-	eachMethod mclass recompile:eachMethod selector
+        eachMethod mclass recompile:eachMethod selector
     ]
 
     "Modified: / 28-02-2012 / 16:29:42 / cg"
@@ -46430,7 +47628,7 @@
     |currentMethod cls selector tree args whichParameter|
 
     (self askIfModified) ifFalse:[
-	^ self
+        ^ self
     ].
 
     currentMethod := self theSingleSelectedMethod.
@@ -46440,18 +47638,18 @@
 
     tree := cls parseTreeFor:selector.
     tree isNil ifTrue:[
-	self warn: 'Could not parse the method'.
-	^ self
+        self warn: 'Could not parse the method'.
+        ^ self
     ].
     args := tree argumentNames.
     args size > 1 ifTrue:[
-	whichParameter := self selectionInCodeView.
-	(whichParameter notEmptyOrNil and:[ args includes:whichParameter]) ifFalse:[
-	    whichParameter := Dialog choose:'Remove which Parameter ?' fromList:args lines:5 title:'Remove Parameter'.
-	    whichParameter isEmptyOrNil ifTrue:[^ self].
-	].
-    ] ifFalse:[
-	whichParameter := args first.
+        whichParameter := self selectionInCodeView.
+        (whichParameter notEmptyOrNil and:[ args includes:whichParameter]) ifFalse:[
+            whichParameter := Dialog choose:'Remove which Parameter ?' fromList:args lines:5 title:'Remove Parameter'.
+            whichParameter isEmptyOrNil ifTrue:[^ self].
+        ].
+    ] ifFalse:[
+        whichParameter := args first.
     ].
 
     self codeMenuRemoveParameter:whichParameter
@@ -46464,26 +47662,26 @@
 
     mthd := self theSingleSelectedMethod.
     mthd isNil ifTrue:[
-	methods := self selectedMethodsValue.
-	(methods asSet collect:[:eachMethod | eachMethod selector]) size == 1 ifTrue:[
-	    mthd := methods first.
-	]
+        methods := self selectedMethodsValue.
+        (methods asSet collect:[:eachMethod | eachMethod selector]) size == 1 ifTrue:[
+            mthd := methods first.
+        ]
     ].
     mthd isNil ifTrue:[
-	AbortAllSignal catch:[
-	    selectorsDone := Set new.
-	    methods do:[:eachMethod |
-		|eachSelector|
-
-		eachSelector := eachMethod selector.
-		(selectorsDone includes:eachSelector) ifFalse:[
-		    self renameMethod:eachSelector in:eachMethod mclass.
-		    selectorsDone add:eachSelector.
-		]
-	    ]
-	]
-    ] ifFalse:[
-	self renameMethod:(mthd selector) in:(mthd mclass).
+        AbortAllSignal catch:[
+            selectorsDone := Set new.
+            methods do:[:eachMethod |
+                |eachSelector|
+
+                eachSelector := eachMethod selector.
+                (selectorsDone includes:eachSelector) ifFalse:[
+                    self renameMethod:eachSelector in:eachMethod mclass.
+                    selectorsDone add:eachSelector.
+                ]
+            ]
+        ]
+    ] ifFalse:[
+        self renameMethod:(mthd selector) in:(mthd mclass).
     ]
 "/    |mthd|
 "/
@@ -46495,8 +47693,8 @@
 
 selectorMenuRewrite
     MethodRewriter new
-	methods: self selectedMethodsValue;
-	open
+        methods: self selectedMethodsValue;
+        open
 
     "Created: / 05-07-2011 / 14:49:06 / cg"
 !
@@ -46511,12 +47709,12 @@
     selectorsToRemove := IdentitySet new.
     numVersionMethods := 0.
     self selectedMethodsDo:[:eachMethod |
-	selectorsToRemove add:(eachMethod selector).
-	(AbstractSourceCodeManager isVersionMethodSelector:eachMethod selector) ifTrue:[
-	    eachMethod mclass isMeta ifTrue:[
-		numVersionMethods := numVersionMethods + 1
-	    ]
-	]
+        selectorsToRemove add:(eachMethod selector).
+        (AbstractSourceCodeManager isVersionMethodSelector:eachMethod selector) ifTrue:[
+            eachMethod mclass isMeta ifTrue:[
+                numVersionMethods := numVersionMethods + 1
+            ]
+        ]
     ].
 
     selectorsToCheckForInvokation := IdentitySet new addAll:selectorsToRemove; yourself.
@@ -46528,105 +47726,105 @@
     methodsToRemove := self selectedMethodsValue copy.
 
     self withSearchCursorDo:[
-	"/ search through all of the system
-	environment allMethodsDo:[:mthd |
-	    |sent resources newFound any|
-
-	    any := false.
-	    mthd literalsDo:[:eachLiteral |
-		 (selectorsToRemove includes:eachLiteral) ifTrue:[any := true].
-		 "/ could be an array (as in a spec)
-		 eachLiteral isArray ifTrue:[
-		    selectorsToRemove contains:[:selToRemove |
-			(eachLiteral refersToLiteral:selToRemove) ifTrue:[
-			    possiblyUsedAsSelector add:mthd.
-			]
-		    ]
-		]
-	    ].
-	    any ifTrue:[
-		selectorsToRemove do:[:eachSelectorToRemove |
-		    sent := mthd messagesSent.
-		   (sent includes:eachSelectorToRemove) ifTrue:[
-		       (methodsToRemove includesIdentical:mthd) ifFalse:[
-			   possiblyInvoked add:mthd.
-		       ]
-		   ]
-	       ]
-	    ].
-	    mthd hasResource ifTrue:[
-		newFound := IdentitySet new.
-		selectorsToRemove do:[:eachSelectorToRemove |
-		    (mthd refersToLiteral:eachSelectorToRemove) ifTrue:[
-			(methodsToRemove includesIdentical:mthd) ifFalse:[
-			    possiblyUsedAsSelector add:mthd.
-			]
-		    ].
-		].
-	    ].
-	].
+        "/ search through all of the system
+        environment allMethodsDo:[:mthd |
+            |sent resources newFound any|
+
+            any := false.
+            mthd literalsDo:[:eachLiteral |
+                 (selectorsToRemove includes:eachLiteral) ifTrue:[any := true].
+                 "/ could be an array (as in a spec)
+                 eachLiteral isArray ifTrue:[
+                    selectorsToRemove contains:[:selToRemove |
+                        (eachLiteral refersToLiteral:selToRemove) ifTrue:[
+                            possiblyUsedAsSelector add:mthd.
+                        ]
+                    ]
+                ]
+            ].
+            any ifTrue:[
+                selectorsToRemove do:[:eachSelectorToRemove |
+                    sent := mthd messagesSent.
+                   (sent includes:eachSelectorToRemove) ifTrue:[
+                       (methodsToRemove includesIdentical:mthd) ifFalse:[
+                           possiblyInvoked add:mthd.
+                       ]
+                   ]
+               ]
+            ].
+            mthd hasResource ifTrue:[
+                newFound := IdentitySet new.
+                selectorsToRemove do:[:eachSelectorToRemove |
+                    (mthd refersToLiteral:eachSelectorToRemove) ifTrue:[
+                        (methodsToRemove includesIdentical:mthd) ifFalse:[
+                            possiblyUsedAsSelector add:mthd.
+                        ]
+                    ].
+                ].
+            ].
+        ].
     ].
     self normalLabel.
 
     possiblyInvoked isEmpty ifTrue:[
-	possiblyUsedAsSelector isEmpty ifTrue:[
-	    self selectorMenuRemove.
-	    ^ self.
-	]
+        possiblyUsedAsSelector isEmpty ifTrue:[
+            self selectorMenuRemove.
+            ^ self.
+        ]
     ].
 
     selectorsToRemove size == 1 ifTrue:[
-	selInfo := selectorsToRemove first allBold.
-	isAre := 'is'
-    ] ifFalse:[
-	selInfo := 'selectors to remove'.
-	isAre := 'are'
+        selInfo := selectorsToRemove first allBold.
+        isAre := 'is'
+    ] ifFalse:[
+        selInfo := 'selectors to remove'.
+        isAre := 'are'
     ].
     msg := selInfo , ' '.
 
     possiblyInvoked notEmpty ifTrue:[
-	msg := msg , isAre , ' possibly sent by %1 methods '
+        msg := msg , isAre , ' possibly sent by %1 methods '
     ].
     possiblyUsedAsSelector notEmpty ifTrue:[
-	possiblyInvoked notEmpty ifTrue:[
-	    msg := msg , 'and '
-	].
-	msg := msg , 'possibly used as selector by %2 methods'
+        possiblyInvoked notEmpty ifTrue:[
+            msg := msg , 'and '
+        ].
+        msg := msg , 'possibly used as selector by %2 methods'
     ].
 
     numVersionMethods > 0 ifTrue:[
-	msg := msg , '\\' ,
-	       (resources
-		string:'ATTENTION: Removing a classes version method might make the versionManagers life hard.' allBold).
+        msg := msg , '\\' ,
+               (resources
+                string:'ATTENTION: Removing a classes version method might make the versionManagers life hard.' allBold).
     ].
 
     answer := OptionBox
-		  request:((resources string:msg
-					with:possiblyInvoked size
-					with:possiblyUsedAsSelector size)
-			   , '\\Really remove ?') withCRs
-		  label:(resources string:'Attention')
-		  image:(WarningBox iconBitmap)
-		  buttonLabels:(resources array:#( 'Cancel' 'Remove' 'Remove then Browse Senders' 'Browse Senders'))
-		  values:#(false true #removeAndBrowse #browse )
-		  default:#removeAndBrowse
-		  onCancel:false.
+                  request:((resources string:msg
+                                        with:possiblyInvoked size
+                                        with:possiblyUsedAsSelector size)
+                           , '\\Really remove ?') withCRs
+                  label:(resources string:'Attention')
+                  image:(WarningBox iconBitmap)
+                  buttonLabels:(resources array:#( 'Cancel' 'Remove' 'Remove then Browse Senders' 'Browse Senders'))
+                  values:#(false true #removeAndBrowse #browse )
+                  default:#removeAndBrowse
+                  onCancel:false.
 
      answer == false ifTrue:[^ self].
      (answer == #browse or:[answer == #removeAndBrowse]) ifTrue:[
-	methods := IdentitySet new.
-	methods addAll:possiblyInvoked.
-	methods addAll:possiblyUsedAsSelector.
-	brwsr := self
-		    spawnMethodBrowserFor:methods in:#newBuffer
-		    label:'methods referring to ' , selInfo
-		    perMethodInfo:nil
-		    sortBy:#class.
-	selectorsToRemove size == 1 ifTrue:[
-	    brwsr autoSearchPattern:selInfo
-	].
-	answer == #browse ifTrue:[ ^ self ].
-	"/ fall into remove
+        methods := IdentitySet new.
+        methods addAll:possiblyInvoked.
+        methods addAll:possiblyUsedAsSelector.
+        brwsr := self
+                    spawnMethodBrowserFor:methods in:#newBuffer
+                    label:'methods referring to ' , selInfo
+                    perMethodInfo:nil
+                    sortBy:#class.
+        selectorsToRemove size == 1 ifTrue:[
+            brwsr autoSearchPattern:selInfo
+        ].
+        answer == #browse ifTrue:[ ^ self ].
+        "/ fall into remove
      ].
      self doRemoveMethodsUnconfirmed:methodsToRemove
 
@@ -46648,8 +47846,8 @@
 
     projects := (self selectedMethodsValue collect:[:m | m package] as:Set) asSortedCollection.
     ^ self
-	spawnProjectBrowserFor:projects
-	in:#newBrowser
+        spawnProjectBrowserFor:projects
+        in:#newBrowser
 
     "Modified: / 28-02-2012 / 16:30:06 / cg"
 !
@@ -46661,8 +47859,8 @@
 
     projects := (self selectedMethodsValue collect:[:m | m package] as:Set) asSortedCollection.
     ^ self
-	spawnProjectBrowserFor:projects
-	in:#newBuffer
+        spawnProjectBrowserFor:projects
+        in:#newBuffer
 
     "Modified: / 28-02-2012 / 16:30:08 / cg"
 !
@@ -46671,8 +47869,8 @@
     "open a new browser showing implementations of the selected method"
 
     ^ self
-	spawnMethodImplementorsBrowserFor:(self selectedSelectors)
-	in:#newBrowser
+        spawnMethodImplementorsBrowserFor:(self selectedSelectors)
+        in:#newBrowser
 
 
 !
@@ -46681,8 +47879,8 @@
     "add a new buffer showing implementations of the selected method"
 
     ^ self
-	spawnMethodImplementorsBrowserFor:(self selectedSelectors)
-	in:#newBuffer
+        spawnMethodImplementorsBrowserFor:(self selectedSelectors)
+        in:#newBuffer
 
 
 !
@@ -46691,8 +47889,8 @@
     "open a new browser showing inheritance of the selected method(s)"
 
     ^ self
-	spawnMethodInheritanceBrowserFor:(self selectedSelectors)
-	in:#newBrowser
+        spawnMethodInheritanceBrowserFor:(self selectedSelectors)
+        in:#newBrowser
 
 
 !
@@ -46701,8 +47899,8 @@
     "add a buffer showing inheritance of the selected method(s)"
 
     ^ self
-	spawnMethodInheritanceBrowserFor:(self selectedSelectors)
-	in:#newBuffer
+        spawnMethodInheritanceBrowserFor:(self selectedSelectors)
+        in:#newBuffer
 
 
 !
@@ -46711,9 +47909,9 @@
     "open a new browser showing the selected methods only"
 
     ^ self
-	spawnMethodBrowserFor:(self selectedMethodsValue)
-	in:#newBrowser
-	label:nil
+        spawnMethodBrowserFor:(self selectedMethodsValue)
+        in:#newBrowser
+        label:nil
 
     "Modified: / 28-02-2012 / 16:30:11 / cg"
 !
@@ -46722,9 +47920,9 @@
     "add a new buffer showing the selected methods only"
 
     ^ self
-	spawnMethodBrowserFor:(self selectedMethodsValue)
-	in:#newBuffer
-	label:nil
+        spawnMethodBrowserFor:(self selectedMethodsValue)
+        in:#newBuffer
+        label:nil
 
     "Modified: / 28-02-2012 / 16:30:14 / cg"
 !
@@ -46734,8 +47932,8 @@
      selected methods project(s)"
 
     ^ self
-	spawnProjectExtensionsBrowserFor:(self selectedMethodsValue)
-	in:#newBrowser
+        spawnProjectExtensionsBrowserFor:(self selectedMethodsValue)
+        in:#newBrowser
 
     "Modified: / 28-02-2012 / 16:30:16 / cg"
 !
@@ -46745,8 +47943,8 @@
      selected methods project(s)"
 
     ^ self
-	spawnProjectExtensionsBrowserFor:(self selectedMethodsValue)
-	in:#newBuffer
+        spawnProjectExtensionsBrowserFor:(self selectedMethodsValue)
+        in:#newBuffer
 
     "Modified: / 28-02-2012 / 16:30:19 / cg"
 !
@@ -46755,8 +47953,8 @@
     "open a new browser showing senders of the selected method"
 
     ^ self
-	spawnMethodSendersBrowserFor:(self selectedSelectors)
-	in:#newBrowser
+        spawnMethodSendersBrowserFor:(self selectedSelectors)
+        in:#newBrowser
 
 
 !
@@ -46765,8 +47963,8 @@
     "add a new buffer showing senders of the selected methods selector"
 
     ^ self
-	spawnMethodSendersBrowserFor:(self selectedSelectors)
-	in:#newBuffer
+        spawnMethodSendersBrowserFor:(self selectedSelectors)
+        in:#newBuffer
 
 
 !
@@ -46797,42 +47995,42 @@
     |label|
 
     self withSearchCursorDo:[
-	|cachedList newBrowser searchBlock|
-
-	aMethodCollection size == 1 ifTrue:[
-	    label := resources string:('Callers of %1') with:aMethodCollection first whoString allBold.
-	] ifFalse:[
-	    label := resources string:'Callers of Any'.
-	].
-
-	searchBlock := [
-			    |l|
-
-			    cachedList notNil ifTrue:[
-				l := cachedList.
-				cachedList := nil
-			    ] ifFalse:[
-				l := IdentitySet new.
-				aMethodCollection do:[:eachCalledMethod |
-				    |info|
-
-				    info := eachCalledMethod methodInvocationInfo.
-				    info notNil ifTrue:[
-					info callingMethodsDo:[:caller |
-					    l add:caller
-					]
-				    ]
-				].
-				l := l asOrderedCollection
-			    ].
-			    l
-		       ].
-
-	newBrowser := self
-			spawnMethodBrowserForSearch:searchBlock
-			sortBy:#class
-			in:openHow
-			label:label.
+        |cachedList newBrowser searchBlock|
+
+        aMethodCollection size == 1 ifTrue:[
+            label := resources string:('Callers of %1') with:aMethodCollection first whoString allBold.
+        ] ifFalse:[
+            label := resources string:'Callers of Any'.
+        ].
+
+        searchBlock := [
+                            |l|
+
+                            cachedList notNil ifTrue:[
+                                l := cachedList.
+                                cachedList := nil
+                            ] ifFalse:[
+                                l := IdentitySet new.
+                                aMethodCollection do:[:eachCalledMethod |
+                                    |info|
+
+                                    info := eachCalledMethod methodInvocationInfo.
+                                    info notNil ifTrue:[
+                                        info callingMethodsDo:[:caller |
+                                            l add:caller
+                                        ]
+                                    ]
+                                ].
+                                l := l asOrderedCollection
+                            ].
+                            l
+                       ].
+
+        newBrowser := self
+                        spawnMethodBrowserForSearch:searchBlock
+                        sortBy:#class
+                        in:openHow
+                        label:label.
     ]
 
     "Created: / 27-04-2010 / 15:16:40 / cg"
@@ -46868,8 +48066,8 @@
 
 spawnImplementorChainIn:openHow
     "browse implementation chain;
-	openHow is: #newBrowser - open a new browser showing the method(s)
-	openHow is: #newBuffer  - add a new buffer showing the method(s)
+        openHow is: #newBrowser - open a new browser showing the method(s)
+        openHow is: #newBuffer  - add a new buffer showing the method(s)
     "
 
     |searchBlock "must be first local in block (see #methodsSelectionChangedAt:index, which fetches this value)"
@@ -46877,70 +48075,70 @@
 
     multipleMethods := self selectedMethodsValue size > 1.
     multipleMethods ifTrue:[
-	methods := self selectedMethodsValue copy.
-	lbl := resources string:'implementor chains'.
-    ] ifFalse:[
-	aMethod := self theSingleSelectedMethod.
-	lbl := resources string:'implementor chain of %1' with:aMethod selector.
+        methods := self selectedMethodsValue copy.
+        lbl := resources string:'implementor chains'.
+    ] ifFalse:[
+        aMethod := self theSingleSelectedMethod.
+        lbl := resources string:'implementor chain of %1' with:aMethod selector.
     ].
     spec := #chainBrowserSpec.
 
     ^ self
-	newBrowserOrBufferDependingOn:openHow
-	label:lbl
-	forSpec:spec
-	setupWith:[:brwsr |
-	    |methodListGenerator generator theMethodList|
-
-	    searchBlock := [:whichMethod |
-				| sentMessages |
-				sentMessages := whichMethod messagesSent.
-				self class findImplementorsOfAny:sentMessages in:(environment allClasses) ignoreCase:false.
-			   ].
-
-	    generator := Iterator on:[:whatToDo |
-					    theMethodList isNil ifTrue:[
-						theMethodList := searchBlock value:aMethod.
-					    ].
-					    theMethodList do:[:aMethod |
-						whatToDo
-						    value:aMethod mclass
-						    value:aMethod category
-						    value:aMethod selector
-						    value:aMethod.
-					    ].
-					    "enforce display of class in methodList"
-					    whatToDo
-						value:nil
-						value:nil
-						value:nil
-						value:nil.
-
-					    multipleMethods ifFalse:[
-						theMethodList := nil.
-					    ]
-				      ].
-
-	    multipleMethods ifTrue:[
-		theMethodList := methods.
-	    ].
-
-	    brwsr selectorListGenerator1 value:generator.
-	    "/ auto-select the first methods, if there is only one
-
-	    multipleMethods ifFalse:[
-		theMethodList isNil ifTrue:[
-		    "/ newBuffer will evaluate the generator later;
-		    "/ newBrowser might have it already evaluated ... (sigh)
-		    theMethodList := searchBlock value:aMethod.
-		].
-
-		theMethodList size == 1 ifTrue:[
-		    brwsr selectedMethods1 value:theMethodList.
-		    brwsr methodsSelectionChanged.
-		].
-	    ].
-	]
+        newBrowserOrBufferDependingOn:openHow
+        label:lbl
+        forSpec:spec
+        setupWith:[:brwsr |
+            |methodListGenerator generator theMethodList|
+
+            searchBlock := [:whichMethod |
+                                | sentMessages |
+                                sentMessages := whichMethod messagesSent.
+                                self class findImplementorsOfAny:sentMessages in:(environment allClasses) ignoreCase:false.
+                           ].
+
+            generator := Iterator on:[:whatToDo |
+                                            theMethodList isNil ifTrue:[
+                                                theMethodList := searchBlock value:aMethod.
+                                            ].
+                                            theMethodList do:[:aMethod |
+                                                whatToDo
+                                                    value:aMethod mclass
+                                                    value:aMethod category
+                                                    value:aMethod selector
+                                                    value:aMethod.
+                                            ].
+                                            "enforce display of class in methodList"
+                                            whatToDo
+                                                value:nil
+                                                value:nil
+                                                value:nil
+                                                value:nil.
+
+                                            multipleMethods ifFalse:[
+                                                theMethodList := nil.
+                                            ]
+                                      ].
+
+            multipleMethods ifTrue:[
+                theMethodList := methods.
+            ].
+
+            brwsr selectorListGenerator1 value:generator.
+            "/ auto-select the first methods, if there is only one
+
+            multipleMethods ifFalse:[
+                theMethodList isNil ifTrue:[
+                    "/ newBuffer will evaluate the generator later;
+                    "/ newBrowser might have it already evaluated ... (sigh)
+                    theMethodList := searchBlock value:aMethod.
+                ].
+
+                theMethodList size == 1 ifTrue:[
+                    brwsr selectedMethods1 value:theMethodList.
+                    brwsr methodsSelectionChanged.
+                ].
+            ].
+        ]
 
     "Modified: / 28-02-2012 / 16:37:04 / cg"
 !
@@ -46949,8 +48147,8 @@
     "add a new buffer showing implementations of the selected method"
 
     ^ self
-	spawnMethodLocalImplementorsBrowserFor:(self selectedSelectors)
-	in:#newBuffer
+        spawnMethodLocalImplementorsBrowserFor:(self selectedSelectors)
+        in:#newBuffer
 
     "Created: / 05-09-2006 / 10:51:47 / cg"
 !
@@ -46959,209 +48157,210 @@
     "add a new buffer showing local senders of the selected methods selector"
 
     ^ self
-	spawnMethodLocalSendersBrowserFor:(self selectedSelectors)
-	in:#newBuffer
+        spawnMethodLocalSendersBrowserFor:(self selectedSelectors)
+        in:#newBuffer
 
     "Created: / 05-09-2006 / 10:44:28 / cg"
 !
 
 spawnMethodBrowserFor:methods in:where label:labelOrNil
     "browse selected method(s);
-	where is: #newBrowser - open a new browser showing the method(s)
-	where is: #newBuffer  - add a new buffer showing the method(s)"
-
-    ^ self
-	spawnMethodBrowserFor:methods
-	in:where
-	label:labelOrNil
-	perMethodInfo:nil
-	sortBy:nil
+        where is: #newBrowser - open a new browser showing the method(s)
+        where is: #newBuffer  - add a new buffer showing the method(s)"
+
+    ^ self
+        spawnMethodBrowserFor:methods
+        in:where
+        label:labelOrNil
+        perMethodInfo:nil
+        sortBy:nil
 !
 
 spawnMethodBrowserFor:methods in:where label:labelOrNil perClassInfo:perClassInfoOrNil perMethodInfo:perMethodInfoOrNil sortBy:sortHow
     "browse selected method(s);
-	where is: #newBrowser - open a new browser showing the method(s)
-	where is: #newBuffer  - add a new buffer showing the method(s)"
-
-    ^ self
-	spawnMethodBrowserFor:methods
-	in:where
-	label:labelOrNil
-	perClassInfo:perClassInfoOrNil
-	perMethodInfo:perMethodInfoOrNil
-	sortBy:sortHow
-	select:true
+        where is: #newBrowser - open a new browser showing the method(s)
+        where is: #newBuffer  - add a new buffer showing the method(s)"
+
+    ^ self
+        spawnMethodBrowserFor:methods
+        in:where
+        label:labelOrNil
+        perClassInfo:perClassInfoOrNil
+        perMethodInfo:perMethodInfoOrNil
+        sortBy:sortHow
+        select:true
 !
 
 spawnMethodBrowserFor:methodsOrMethodGeneratorBlock in:where label:labelOrNil perClassInfo:perClassInfoHolder perMethodInfo:perMethodInfoHolder sortBy:sortHow select:doSelect
     "browse selected method(s);
-	where is: #newBrowser - open a new browser showing the method(s)
-	where is: #newBuffer  - add a new buffer showing the method(s)"
+        where is: #newBrowser - open a new browser showing the method(s)
+        where is: #newBuffer  - add a new buffer showing the method(s)"
 
     |theMethodList spec "singleSelection"|
 
     methodsOrMethodGeneratorBlock isBlock ifTrue:[
-	theMethodList := methodsOrMethodGeneratorBlock value.
-    ] ifFalse:[
-	theMethodList := methodsOrMethodGeneratorBlock copy.
+        theMethodList := methodsOrMethodGeneratorBlock value.
+    ] ifFalse:[
+        theMethodList := methodsOrMethodGeneratorBlock copy.
     ].
 
     (theMethodList isEmptyOrNil and:[perClassInfoHolder value isEmptyOrNil]) ifTrue:[
-	self information:'Nothing special found'.
-	^ self.
+        self information:'Nothing found'.
+        ^ self.
     ].
 
     (perMethodInfoHolder value notEmptyOrNil) ifTrue:[
-	(perClassInfoHolder value notEmptyOrNil) ifTrue:[
-	    "/ both present
-	    spec := #multipleClassWithInfoAndMethodWithInfoBrowserSpec.
-	] ifFalse:[
-	    "/ methodInfo present
-	    spec := #multipleMethodWithInfoBrowserSpec.
-	].
-    ] ifFalse:[
-	(perClassInfoHolder value notEmptyOrNil) ifTrue:[
-	    "/ classInfo present
-	    spec := #multipleClassWithInfoBrowserSpec.
-	] ifFalse:[
-	    "/ none present
-	    spec := #multipleMethodBrowserSpec.
-	].
-    ].
-
-    ^ self
-	newBrowserOrBufferDependingOn:where
-	label:labelOrNil
-	forSpec:spec
-	setupWith:[:brwsr |
-	    |methodGenerator classGenerator perClassInfo perMethodInfo
-	     theMethodNameList|
-
-	    theMethodList isNil ifTrue:[
-		methodsOrMethodGeneratorBlock isBlock ifTrue:[
-		    theMethodList := methodsOrMethodGeneratorBlock value.
-		] ifFalse:[
-		    theMethodList := methodsOrMethodGeneratorBlock copy.
-		].
-	    ].
-	    perClassInfo := perClassInfoHolder value.
-	    perMethodInfo := perMethodInfoHolder value.
-
-	    methodGenerator := Iterator on:[:whatToDo |
-					    theMethodList isNil ifTrue:[
-						methodsOrMethodGeneratorBlock isBlock ifTrue:[
-						    theMethodList := methodsOrMethodGeneratorBlock value.
-						] ifFalse:[
-						    theMethodList := methodsOrMethodGeneratorBlock copy.
-						].
-					    ].
-					    perClassInfo := perClassInfoHolder value.
-					    perMethodInfo := perMethodInfoHolder value.
-
-					    theMethodNameList := theMethodList collect:[:eachMethod | eachMethod mclass -> eachMethod selector].
-					    theMethodNameList do:[:mAssoc |
-						|methodClass methodSelector method|
-
-						methodClass := mAssoc key.
-						methodSelector := mAssoc value.
-						methodClass notNil ifTrue:[
-						    method := methodClass compiledMethodAt:methodSelector.
-						    method notNil ifTrue:[
-							whatToDo
-							    value:methodClass
-							    value:method category
-							    value:methodSelector
-							    value:method.
-						    ].
-						].
-					    ].
-					    methodsOrMethodGeneratorBlock isBlock ifTrue:[
-						theMethodList := nil.
-					    ].
-					    "enforce display of class in methodList"
-					    whatToDo
-						value:nil
-						value:nil
-						value:nil
-						value:nil.
-
-					    theMethodNameList size > 7 ifTrue:[
-						brwsr showInfo:('%1 methods in list.' bindWith:theMethodNameList size).
-					    ]
-				      ].
-
-	    sortHow notNil ifTrue:[brwsr sortBy value:sortHow].
-
-	    brwsr selectorListGenerator value:methodGenerator.
-	    perClassInfo notNil ifTrue:[
-		classGenerator := perClassInfo keys.
-		brwsr classListGenerator value:classGenerator.
-		brwsr meta value:false.
-	    ].
-
-	    perClassInfo notNil ifTrue:[
-		brwsr selectedClasses
-		    onChangeEvaluate:[
-			|class infoText|
-
-			brwsr selectedMethods value:nil.
-			class := brwsr theSingleSelectedClass.
-			class notNil ifTrue:[
-			    brwsr meta value:false.
-			    infoText := perClassInfoHolder value at:class theNonMetaclass ifAbsent:nil.
-			    infoText isNil ifTrue:[
-				infoText := perClassInfo at:class theMetaclass ifAbsent:nil
-			    ]
-			].
-			brwsr methodInfo value:infoText.
-		    ]
-	    ].
-
-	    perMethodInfo notNil ifTrue:[
-		brwsr selectedMethods
-		    onChangeEvaluate:[
-			|mthd infoText|
-
-			brwsr selectedClasses value:nil.
-			mthd := brwsr theSingleSelectedMethod.
-			mthd notNil ifTrue:[
-			    infoText := perMethodInfo at:mthd ifAbsent:nil
-			].
-			brwsr methodInfo value:infoText.
-		    ]
-	    ] ifFalse:[
-		(doSelect and:[theMethodList size == 1]) ifTrue:[
-		    brwsr selectMethods:(Array with:theMethodList first).
-		    brwsr methodsSelectionChanged.
-		]
-	    ].
-
-	    methodsOrMethodGeneratorBlock isBlock ifTrue:[
-		theMethodList := nil "/ force re-evaluation
-	    ]
-	]
+        (perClassInfoHolder value notEmptyOrNil) ifTrue:[
+            "/ both present
+            spec := #multipleClassWithInfoAndMethodWithInfoBrowserSpec.
+        ] ifFalse:[
+            "/ methodInfo present
+            spec := #multipleMethodWithInfoBrowserSpec.
+        ].
+    ] ifFalse:[
+        (perClassInfoHolder value notEmptyOrNil) ifTrue:[
+            "/ classInfo present
+            spec := #multipleClassWithInfoBrowserSpec.
+        ] ifFalse:[
+            "/ none present
+            spec := #multipleMethodBrowserSpec.
+        ].
+    ].
+
+    ^ self
+        newBrowserOrBufferDependingOn:where
+        label:labelOrNil
+        forSpec:spec
+        setupWith:[:brwsr |
+            |methodGenerator classGenerator perClassInfo perMethodInfo
+             theMethodNameList|
+
+            theMethodList isNil ifTrue:[
+                methodsOrMethodGeneratorBlock isBlock ifTrue:[
+                    theMethodList := methodsOrMethodGeneratorBlock value.
+                ] ifFalse:[
+                    theMethodList := methodsOrMethodGeneratorBlock copy.
+                ].
+            ].
+            perClassInfo := perClassInfoHolder value.
+            perMethodInfo := perMethodInfoHolder value.
+
+            methodGenerator := Iterator on:[:whatToDo |
+                                            theMethodList isNil ifTrue:[
+                                                methodsOrMethodGeneratorBlock isBlock ifTrue:[
+                                                    theMethodList := methodsOrMethodGeneratorBlock value.
+                                                ] ifFalse:[
+                                                    theMethodList := methodsOrMethodGeneratorBlock copy.
+                                                ].
+                                            ].
+                                            perClassInfo := perClassInfoHolder value.
+                                            perMethodInfo := perMethodInfoHolder value.
+
+                                            theMethodList do:[:eachMethod |
+                                                |methodClass methodSelector realMethod|
+
+                                                eachMethod notNil ifTrue:[
+                                                    methodClass := eachMethod mclass.
+                                                    methodClass notNil ifTrue:[
+                                                        methodSelector := eachMethod selector.
+                                                        realMethod := methodClass compiledMethodAt:methodSelector.
+                                                        realMethod notNil ifTrue:[
+                                                            whatToDo
+                                                                value:methodClass
+                                                                value:realMethod category
+                                                                value:methodSelector
+                                                                value:realMethod.
+                                                        ].
+                                                    ].
+                                                ].
+                                            ].
+                                            methodsOrMethodGeneratorBlock isBlock ifTrue:[
+                                                theMethodList := nil.
+                                            ].
+                                            "enforce display of class in methodList"
+                                            whatToDo
+                                                value:nil
+                                                value:nil
+                                                value:nil
+                                                value:nil.
+
+                                            theMethodList size > 7 ifTrue:[
+                                                brwsr showInfo:('%1 methods in list.' bindWith:theMethodList size).
+                                            ]
+                                      ].
+
+            sortHow notNil ifTrue:[brwsr sortBy value:sortHow].
+
+            brwsr selectorListGenerator value:methodGenerator.
+            perClassInfo notNil ifTrue:[
+                classGenerator := perClassInfo keys.
+                brwsr classListGenerator value:classGenerator.
+                brwsr meta value:false.
+            ].
+
+            perClassInfo notNil ifTrue:[
+                brwsr selectedClasses
+                    onChangeEvaluate:[
+                        |class infoText|
+
+                        brwsr selectedMethods value:nil.
+                        class := brwsr theSingleSelectedClass.
+                        class notNil ifTrue:[
+                            brwsr meta value:false.
+                            infoText := perClassInfoHolder value at:class theNonMetaclass ifAbsent:nil.
+                            infoText isNil ifTrue:[
+                                infoText := perClassInfo at:class theMetaclass ifAbsent:nil
+                            ]
+                        ].
+                        brwsr methodInfo value:infoText.
+                    ]
+            ].
+
+            perMethodInfo notNil ifTrue:[
+                brwsr selectedMethods
+                    onChangeEvaluate:[
+                        |mthd infoText|
+
+                        brwsr selectedClasses value:nil.
+                        mthd := brwsr theSingleSelectedMethod.
+                        mthd notNil ifTrue:[
+                            infoText := perMethodInfo at:mthd ifAbsent:nil
+                        ].
+                        brwsr methodInfo value:infoText.
+                    ]
+            ] ifFalse:[
+                (doSelect and:[theMethodList size == 1]) ifTrue:[
+                    brwsr selectMethods:(Array with:theMethodList first).
+                    brwsr methodsSelectionChanged.
+                ]
+            ].
+
+            methodsOrMethodGeneratorBlock isBlock ifTrue:[
+                theMethodList := nil "/ force re-evaluation
+            ]
+        ]
 
     "Modified: / 19-07-2012 / 11:51:02 / cg"
 !
 
 spawnMethodBrowserFor:methods in:where label:labelOrNil perMethodInfo:infoDictionaryOrNil sortBy:sortHow
     "browse selected method(s);
-	where is: #newBrowser - open a new browser showing the method(s)
-	where is: #newBuffer  - add a new buffer showing the method(s)"
-
-    ^ self
-	spawnMethodBrowserFor:methods
-	in:where
-	label:labelOrNil
-	perMethodInfo:infoDictionaryOrNil
-	sortBy:sortHow
-	select:true
+        where is: #newBrowser - open a new browser showing the method(s)
+        where is: #newBuffer  - add a new buffer showing the method(s)"
+
+    ^ self
+        spawnMethodBrowserFor:methods
+        in:where
+        label:labelOrNil
+        perMethodInfo:infoDictionaryOrNil
+        sortBy:sortHow
+        select:true
 !
 
 spawnMethodBrowserFor:methods in:where label:labelOrNil perMethodInfo:infoDictionaryOrNil sortBy:sortHow select:doSelect
     "browse selected method(s);
-	where is: #newBrowser - open a new browser showing the method(s)
-	where is: #newBuffer  - add a new buffer showing the method(s)"
+        where is: #newBrowser - open a new browser showing the method(s)
+        where is: #newBuffer  - add a new buffer showing the method(s)"
 
     ^ self
        spawnMethodBrowserFor:methods in:where label:labelOrNil
@@ -47227,75 +48426,66 @@
 
 spawnMethodBrowserForSearch:searchBlock sortBy:sortByWhat in:openHow label:lbl
     "browse selected method(s);
-	openHow is: #newBrowser - open a new browser showing the method(s)
-	openHow is: #newBuffer  - add a new buffer showing the method(s)
-
-	and sortByWhat is:
-	    #selector
-	or  #class
+        openHow is: #newBrowser - open a new browser showing the method(s)
+        openHow is: #newBuffer  - add a new buffer showing the method(s)
+
+        and sortByWhat is:
+            #selector
+        or  #class
     "
 
     |spec theMethodList|
 
     self withWaitCursorDo:[
-	theMethodList := searchBlock value.
+        theMethodList := searchBlock value.
     ].
     theMethodList isEmptyOrNil ifTrue:[
-	self information:(lbl , ' - none found').
-	^ self.
+        self information:(lbl , ' - none found').
+        ^ self.
     ].
 
     spec := #methodListBrowserSpec.
 
     ^ self
-	newBrowserOrBufferDependingOn:openHow
-	label:lbl
-	forSpec:spec
-	setupWith:[:brwsr |
-	    |generator|
-
-	    generator := Iterator on:[:whatToDo |
-					    brwsr window withWaitCursorDo:[
-						theMethodList isNil ifTrue:[
-						    theMethodList := searchBlock value.
-						].
-						theMethodList notNil ifTrue:[
-						    theMethodList do:[:aMethod |
-							whatToDo
-							    value:aMethod mclass
-							    value:aMethod category
-							    value:aMethod selector
-							    value:aMethod.
-						    ].
-						].
-						"enforce display of class in methodList"
-						whatToDo
-						    value:nil
-						    value:nil
-						    value:nil
-						    value:nil.
-					    ].
-					    theMethodList := nil.
-				      ].
-
-	    sortByWhat notNil ifTrue:[brwsr sortBy value:sortByWhat].
-	    "/ sortByWhat notNil ifTrue:[brwsr sortBy:sortByWhat].
-	    brwsr selectorListGenerator value:generator.
-	    "/ auto-select the first methods, if there is only one
-
-"/            theMethodList isNil ifTrue:[
-"/                "/ newBuffer will evaluate the generator later;
-"/                "/ newBrowser might have it already evaluated ... (sigh)
-"/                self withWaitCursorDo:[
-"/                    theMethodList := searchBlock value
-"/                ]
-"/            ].
-
-	    theMethodList size == 1 ifTrue:[
-		brwsr selectMethods:theMethodList.
-		brwsr methodsSelectionChanged.
-	    ].
-	]
+        newBrowserOrBufferDependingOn:openHow
+        label:lbl
+        forSpec:spec
+        setupWith:[:brwsr |
+            |generator|
+
+            generator := Iterator on:[:whatToDo |
+                                            brwsr window withWaitCursorDo:[
+                                                theMethodList isNil ifTrue:[
+                                                    theMethodList := searchBlock value.
+                                                ].
+                                                theMethodList notNil ifTrue:[
+                                                    theMethodList do:[:aMethod |
+                                                        whatToDo
+                                                            value:aMethod mclass
+                                                            value:aMethod category
+                                                            value:aMethod selector
+                                                            value:aMethod.
+                                                    ].
+                                                ].
+                                                "enforce display of class in methodList"
+                                                whatToDo
+                                                    value:nil
+                                                    value:nil
+                                                    value:nil
+                                                    value:nil.
+                                            ].
+                                            theMethodList := nil.
+                                      ].
+
+            sortByWhat notNil ifTrue:[brwsr sortBy value:sortByWhat].
+            brwsr selectorListGenerator value:generator.
+
+            "/ auto-select the first method, if there is only one
+            theMethodList size == 1 ifTrue:[
+                brwsr selectMethods:theMethodList.
+                brwsr methodsSelectionChanged.
+            ].
+        ]
 
     "Modified: / 1.3.2000 / 21:03:34 / cg"
 !
@@ -47304,9 +48494,9 @@
     "open a new browser or add a buffer showing the selected methods only"
 
     ^ self
-	spawnMethodImplementorsBrowserFor:aSelectorCollection
-	match:true
-	in:openHow
+        spawnMethodImplementorsBrowserFor:aSelectorCollection
+        match:true
+        in:openHow
 
     "Modified: / 05-09-2006 / 10:49:28 / cg"
 !
@@ -47315,11 +48505,11 @@
     "open a new browser or add a buffer showing the selected methods"
 
     self
-	spawnMethodImplementorsBrowserFor:aSelectorCollection
-	match:doMatch
-	in:openHow
-	classes:environment allClasses
-	label:'Implementors'
+        spawnMethodImplementorsBrowserFor:aSelectorCollection
+        match:doMatch
+        in:openHow
+        classes:environment allClasses
+        label:'Implementors'
 
     "Modified: / 05-09-2006 / 11:07:20 / cg"
 !
@@ -47328,61 +48518,61 @@
     "open a new browser or add a buffer showing the selected methods only"
 
     self withSearchCursorDo:[
-	|newBrowser label impls searchBlock cachedList theSingleSelector|
-
-	aSelectorCollection size == 1 ifTrue:[
-	    theSingleSelector := aSelectorCollection first.
-	    label := resources string:(labelPrefix,' of %1') with:(theSingleSelector allBold)
-	] ifFalse:[
-	    label := resources string:labelPrefix.
-	].
-
-	searchBlock := [
-			|list|
-
-			(list := cachedList) notNil ifTrue:[
-			    cachedList := nil
-			] ifFalse:[
-			    list := IdentitySet new.
-			    aSelectorCollection do:[:aSelector |
-				doMatch ifTrue:[
-				    list addAll:(self class
-						    findImplementorsMatching:aSelector
-						    in:classes
-						    ignoreCase:false
-						)
-				] ifFalse:[
-				    list addAll:(self class
-						    findImplementorsOf:aSelector
-						    in:environment allClasses
-						    ignoreCase:false
-						)
-				].
-			    ].
-			    list := list asOrderedCollection
-			].
-			list
-		       ].
-
-	cachedList := searchBlock value.
-	(cachedList size == 1 and:[cachedList first == self theSingleSelectedMethod]) ifTrue:[
-	    (Dialog
-		confirm:label,' - ',(resources stringWithCRs:'only the selected method found.\\Browse anyway?')
-		initialAnswer:false)
-	    ifFalse:[
-		^ self
-	    ]
-	].
-
-	newBrowser := self
-			spawnMethodBrowserForSearch:searchBlock
-			sortBy:nil
-			in:openHow
-			label:label.
-	aSelectorCollection size == 1 ifTrue:[
-	    newBrowser sortBy value:#classes
-	].
-	newBrowser
+        |newBrowser label impls searchBlock cachedList theSingleSelector|
+
+        aSelectorCollection size == 1 ifTrue:[
+            theSingleSelector := aSelectorCollection first.
+            label := resources string:(labelPrefix,' of %1') with:(theSingleSelector allBold)
+        ] ifFalse:[
+            label := resources string:labelPrefix.
+        ].
+
+        searchBlock := [
+                        |list|
+
+                        (list := cachedList) notNil ifTrue:[
+                            cachedList := nil
+                        ] ifFalse:[
+                            list := IdentitySet new.
+                            aSelectorCollection do:[:aSelector |
+                                doMatch ifTrue:[
+                                    list addAll:(self class
+                                                    findImplementorsMatching:aSelector
+                                                    in:classes
+                                                    ignoreCase:false
+                                                )
+                                ] ifFalse:[
+                                    list addAll:(self class
+                                                    findImplementorsOf:aSelector
+                                                    in:environment allClasses
+                                                    ignoreCase:false
+                                                )
+                                ].
+                            ].
+                            list := list asOrderedCollection
+                        ].
+                        list
+                       ].
+
+        cachedList := searchBlock value.
+        (cachedList size == 1 and:[cachedList first == self theSingleSelectedMethod]) ifTrue:[
+            (Dialog
+                confirm:label,' - ',(resources stringWithCRs:'only the selected method found.\\Browse anyway?')
+                initialAnswer:false)
+            ifFalse:[
+                ^ self
+            ]
+        ].
+
+        newBrowser := self
+                        spawnMethodBrowserForSearch:searchBlock
+                        sortBy:nil
+                        in:openHow
+                        label:label.
+        aSelectorCollection size == 1 ifTrue:[
+            newBrowser sortBy value:#classes
+        ].
+        newBrowser
     ]
 
     "Created: / 05-09-2006 / 11:07:05 / cg"
@@ -47393,77 +48583,77 @@
     "open a new browser or add a buffer showing the selected methods inheritance only"
 
     self withSearchCursorDo:[
-	|selectedMethods classes list newBrowser label searchBlock
-	 initialList anyRedefined|
-
-	(selectedMethods := self selectedMethodsValue) size == 0 ifTrue:[
-	    self warn:'No method selected.'.
-	    ^ self
-	].
-
-	"/ classes := self selectedClasses value.
-	classes isNil ifTrue:[
-	    classes := selectedMethods
-			collect:[:eachMethod | eachMethod mclass]
-			thenSelect:[:eachClass | eachClass notNil].
-	].
-
-	searchBlock := [
-		|list subList already|
-
-		(list := initialList) size > 0 ifTrue:[
-		    initialList := nil
-		] ifFalse:[
-		    already := IdentitySet new.
-		    list := OrderedCollection new.
-		    aSelectorCollection do:[:eachSelector |
-			classes do:[:eachClass |
-			    (eachClass withAllSuperclasses copy reverse , eachClass allSubclasses)
-			    do:[:eachSuperAndSubclass |
-				|mthd|
-
-				(eachSuperAndSubclass includesSelector:eachSelector) ifTrue:[
-				    mthd := eachSuperAndSubclass compiledMethodAt:eachSelector.
-				    (already includes:mthd) ifFalse:[
-					eachSuperAndSubclass ~~ eachClass ifTrue:[anyRedefined := true].
-					list add:mthd.
-					already add:mthd.
-				    ]
-				]
-			    ]
-			].
-		    ].
-		].
-		list
-	    ].
-
-	anyRedefined := false.
-	initialList := searchBlock value.
-	anyRedefined ifFalse:[
-	    |msg|
-
-	    selectedMethods size == 1 ifTrue:[
-		msg := 'The method does not redefine any superclass method and is not redefined in any subclass.'.
-	    ] ifFalse:[
-		msg := 'None of the methods redefines any superclass method or is redefined in any subclass.'.
-	    ].
-	    self warn:msg.
-	    ^ self
-	].
-
-	aSelectorCollection size == 1 ifTrue:[
-	    label := 'Inheritance of %1' bindWith:(aSelectorCollection first)
-	] ifFalse:[
-	    label := 'Inheritance'.
-	].
-
-	newBrowser := self
-			spawnMethodBrowserForSearch:searchBlock
-			sortBy:nil
-			in:openHow
-			label:label.
-	newBrowser selectMethods:(selectedMethods copy).
-	newBrowser sortBy value:false.
+        |selectedMethods classes list newBrowser label searchBlock
+         initialList anyRedefined|
+
+        (selectedMethods := self selectedMethodsValue) size == 0 ifTrue:[
+            self warn:'No method selected.'.
+            ^ self
+        ].
+
+        "/ classes := self selectedClasses value.
+        classes isNil ifTrue:[
+            classes := selectedMethods
+                        collect:[:eachMethod | eachMethod mclass]
+                        thenSelect:[:eachClass | eachClass notNil].
+        ].
+
+        searchBlock := [
+                |list subList already|
+
+                (list := initialList) size > 0 ifTrue:[
+                    initialList := nil
+                ] ifFalse:[
+                    already := IdentitySet new.
+                    list := OrderedCollection new.
+                    aSelectorCollection do:[:eachSelector |
+                        classes do:[:eachClass |
+                            (eachClass withAllSuperclasses reversed , eachClass allSubclasses)
+                            do:[:eachSuperAndSubclass |
+                                |mthd|
+
+                                (eachSuperAndSubclass includesSelector:eachSelector) ifTrue:[
+                                    mthd := eachSuperAndSubclass compiledMethodAt:eachSelector.
+                                    (already includes:mthd) ifFalse:[
+                                        eachSuperAndSubclass ~~ eachClass ifTrue:[anyRedefined := true].
+                                        list add:mthd.
+                                        already add:mthd.
+                                    ]
+                                ]
+                            ]
+                        ].
+                    ].
+                ].
+                list
+            ].
+
+        anyRedefined := false.
+        initialList := searchBlock value.
+        anyRedefined ifFalse:[
+            |msg|
+
+            selectedMethods size == 1 ifTrue:[
+                msg := 'The method does not redefine any superclass method and is not redefined in any subclass.'.
+            ] ifFalse:[
+                msg := 'None of the methods redefines any superclass method or is redefined in any subclass.'.
+            ].
+            self warn:msg.
+            ^ self
+        ].
+
+        aSelectorCollection size == 1 ifTrue:[
+            label := 'Inheritance of %1' bindWith:(aSelectorCollection first)
+        ] ifFalse:[
+            label := 'Inheritance'.
+        ].
+
+        newBrowser := self
+                        spawnMethodBrowserForSearch:searchBlock
+                        sortBy:nil
+                        in:openHow
+                        label:label.
+        newBrowser selectMethods:(selectedMethods copy).
+        newBrowser sortBy value:false.
     ]
 
     "Modified: / 28-02-2012 / 16:30:45 / cg"
@@ -47473,11 +48663,11 @@
     "open a new browser or add a buffer showing the selected methods only"
 
     ^ self
-	spawnMethodImplementorsBrowserFor:aSelectorCollection
-	match:true
-	in:openHow
-	classes:(self selectedLocalMethodClasses)
-	label:'Local Implementors'
+        spawnMethodImplementorsBrowserFor:aSelectorCollection
+        match:true
+        in:openHow
+        classes:(self selectedLocalMethodClasses)
+        label:'Local Implementors'
 
     "Created: / 05-09-2006 / 10:49:50 / cg"
 !
@@ -47486,10 +48676,10 @@
     "open a new browser or add a buffer showing the selected methods local senders"
 
     self
-	spawnMethodSendersBrowserFor:aSelectorCollection
-	in:openHow
-	classes:(self selectedLocalMethodClasses)
-	label:'Local Senders'
+        spawnMethodSendersBrowserFor:aSelectorCollection
+        in:openHow
+        classes:(self selectedLocalMethodClasses)
+        label:'Local Senders'
 
     "Created: / 05-09-2006 / 10:46:35 / cg"
 !
@@ -47498,10 +48688,10 @@
     "open a new browser or add a buffer showing the selected methods senders only"
 
     self
-	spawnMethodSendersBrowserFor:aSelectorCollection
-	in:openHow
-	classes:environment allClasses
-	label:'Senders'
+        spawnMethodSendersBrowserFor:aSelectorCollection
+        in:openHow
+        classes:environment allClasses
+        label:'Senders'
 
     "Modified: / 13-02-2012 / 13:17:20 / cg"
 !
@@ -47512,65 +48702,65 @@
     |label|
 
     self withSearchCursorDo:[
-	|cachedList newBrowser theSingleSelector searchBlock|
-
-	aSelectorCollection size == 1 ifTrue:[
-	    theSingleSelector := aSelectorCollection first.
-	    label := resources string:(labelPrefix,' of %1') with:theSingleSelector allBold.
-	] ifFalse:[
-	    label := resources string:labelPrefix.
-	].
-
-	searchBlock := [
-			    |l|
-
-			    cachedList notNil ifTrue:[
-				l := cachedList.
-				cachedList := nil
-			    ] ifFalse:[
-				l := IdentitySet new.
-				aSelectorCollection do:[:aSelector |
-				    l addAll:(self class
-						    findSendersOf:aSelector
-						    in:setOfClasses
-						    ignoreCase:false
-						    match:false
-						)
-				].
-				l := l asOrderedCollection
-			    ].
-			    l
-		       ].
-
-	theSingleSelector notNil ifTrue:[
-	    cachedList := searchBlock value.
-	    cachedList size == 0 ifTrue:[
-		(Dialog
-		    confirm:(label , (resources string:' - none found'))
-		    yesLabel:(resources string:'Show Implementors') noLabel:'OK'
-		    initialAnswer:false
-		) ifTrue:[
-		    self spawnMethodImplementorsBrowserFor:aSelectorCollection in:openHow
-		].
-		^ self
-	    ].
-	    (cachedList size == 1 and:[cachedList first == self theSingleSelectedMethod]) ifTrue:[
-		(Dialog confirm:(label,' - ',(resources stringWithCRs:'only the selected method found.\\Browse anyway ?')))
-		ifFalse:[
-		    ^ self
-		]
-	    ].
-	].
-
-	newBrowser := self
-			spawnMethodBrowserForSearch:searchBlock
-			sortBy:#class
-			in:openHow
-			label:label.
-
-	theSingleSelector notNil ifTrue:[
-	    newBrowser autoSearchSelector:theSingleSelector ignoreCase:false doMatch:false.
-	].
+        |cachedList newBrowser theSingleSelector searchBlock|
+
+        aSelectorCollection size == 1 ifTrue:[
+            theSingleSelector := aSelectorCollection first.
+            label := resources string:(labelPrefix,' of %1') with:theSingleSelector allBold.
+        ] ifFalse:[
+            label := resources string:labelPrefix.
+        ].
+
+        searchBlock := [
+                            |l|
+
+                            cachedList notNil ifTrue:[
+                                l := cachedList.
+                                cachedList := nil
+                            ] ifFalse:[
+                                l := IdentitySet new.
+                                aSelectorCollection do:[:aSelector |
+                                    l addAll:(self class
+                                                    findSendersOf:aSelector
+                                                    in:setOfClasses
+                                                    ignoreCase:false
+                                                    match:false
+                                                )
+                                ].
+                                l := l asOrderedCollection
+                            ].
+                            l
+                       ].
+
+        theSingleSelector notNil ifTrue:[
+            cachedList := searchBlock value.
+            cachedList size == 0 ifTrue:[
+                (Dialog
+                    confirm:(label , (resources string:' - none found'))
+                    yesLabel:(resources string:'Show Implementors') noLabel:'OK'
+                    initialAnswer:false
+                ) ifTrue:[
+                    self spawnMethodImplementorsBrowserFor:aSelectorCollection in:openHow
+                ].
+                ^ self
+            ].
+            (cachedList size == 1 and:[cachedList first == self theSingleSelectedMethod]) ifTrue:[
+                (Dialog confirm:(label,' - ',(resources stringWithCRs:'only the selected method found.\\Browse anyway ?')))
+                ifFalse:[
+                    ^ self
+                ]
+            ].
+        ].
+
+        newBrowser := self
+                        spawnMethodBrowserForSearch:searchBlock
+                        sortBy:#class
+                        in:openHow
+                        label:label.
+
+        theSingleSelector notNil ifTrue:[
+            newBrowser autoSearchSelector:theSingleSelector ignoreCase:false doMatch:false.
+        ].
     ]
 
     "Created: / 05-09-2006 / 10:43:21 / cg"
@@ -47582,53 +48772,53 @@
     |label|
 
     self withSearchCursorDo:[
-	|packages cachedList newBrowser theSinglePackage searchBlock|
-
-	packages := aMethodCollection collect:[:each | each package] as:Set.
-	packages size == 1 ifTrue:[
-	    theSinglePackage := packages first.
-	    label := 'Extensions for %1' bindWith:theSinglePackage.
-	] ifFalse:[
-	    label := 'Extensions'.
-	].
-
-	searchBlock := [
-			    |l|
-
-			    cachedList notNil ifTrue:[
-				l := cachedList.
-				cachedList := nil
-			    ] ifFalse:[
-				l := OrderedCollection new.
-				environment allClasses
-				    do:[:eachClass |
-					l addAll:(eachClass extensions
-						    select:[:extensionMethod |
-							(packages includes:extensionMethod package)])
-				    ].
-			    ].
-			    l
-		       ].
-
-	theSinglePackage notNil ifTrue:[
-	    cachedList := searchBlock value.
-	    cachedList size == 0 ifTrue:[
-		self information:(label , ' - none found').
-		^ self
-	    ].
-	    (cachedList size == 1 and:[cachedList first == self theSingleSelectedMethod]) ifTrue:[
-		(self confirm:((label bindWith:label) , ' - only the selected method found.\\Browse anyway ?' withCRs))
-		ifFalse:[
-		    ^ self
-		]
-	    ].
-	].
-
-	newBrowser := self
-			spawnMethodBrowserForSearch:searchBlock
-			sortBy:#class
-			in:openHow
-			label:label.
+        |packages cachedList newBrowser theSinglePackage searchBlock|
+
+        packages := aMethodCollection collect:[:each | each package] as:Set.
+        packages size == 1 ifTrue:[
+            theSinglePackage := packages first.
+            label := 'Extensions for %1' bindWith:theSinglePackage.
+        ] ifFalse:[
+            label := 'Extensions'.
+        ].
+
+        searchBlock := [
+                            |l|
+
+                            cachedList notNil ifTrue:[
+                                l := cachedList.
+                                cachedList := nil
+                            ] ifFalse:[
+                                l := OrderedCollection new.
+                                environment allClasses
+                                    do:[:eachClass |
+                                        l addAll:(eachClass extensions
+                                                    select:[:extensionMethod |
+                                                        (packages includes:extensionMethod package)])
+                                    ].
+                            ].
+                            l
+                       ].
+
+        theSinglePackage notNil ifTrue:[
+            cachedList := searchBlock value.
+            cachedList size == 0 ifTrue:[
+                self information:(label , ' - none found').
+                ^ self
+            ].
+            (cachedList size == 1 and:[cachedList first == self theSingleSelectedMethod]) ifTrue:[
+                (self confirm:((label bindWith:label) , ' - only the selected method found.\\Browse anyway ?' withCRs))
+                ifFalse:[
+                    ^ self
+                ]
+            ].
+        ].
+
+        newBrowser := self
+                        spawnMethodBrowserForSearch:searchBlock
+                        sortBy:#class
+                        in:openHow
+                        label:label.
     ]
 
     "Modified: / 12-10-2006 / 20:59:02 / cg"
@@ -47648,8 +48838,8 @@
 
 spawnSenderChainIn:openHow
     "browse selected methods sender chain;
-	openHow is: #newBrowser - open a new browser showing the method(s)
-	openHow is: #newBuffer  - add a new buffer showing the method(s)
+        openHow is: #newBrowser - open a new browser showing the method(s)
+        openHow is: #newBuffer  - add a new buffer showing the method(s)
     "
 
     |searchBlock "must be first local in block (see #methodsSelectionChangedAt:index, which fetches this value)"
@@ -47657,72 +48847,72 @@
 
     multipleMethods := self selectedMethodsValue size > 1.
     multipleMethods ifTrue:[
-	methods := self selectedMethodsValue copy.
-	lbl := resources string:'Sender chains'.
-    ] ifFalse:[
-	aMethod := self theSingleSelectedMethod.
-	lbl := resources string:'Sender chain of %1' with:aMethod selector.
+        methods := self selectedMethodsValue copy.
+        lbl := resources string:'Sender chains'.
+    ] ifFalse:[
+        aMethod := self theSingleSelectedMethod.
+        lbl := resources string:'Sender chain of %1' with:aMethod selector.
     ].
     spec := #chainBrowserSpec.
 
     ^ self
-	newBrowserOrBufferDependingOn:openHow
-	label:lbl
-	forSpec:spec
-	setupWith:[:brwsr |
-	    |generator theMethodList|
-
-	    searchBlock := [:whichMethod | |selector|
-				selector := whichMethod selector.
-				selector isNil ifTrue:[
-				    #()
-				] ifFalse:[
-				    self class allCallsOn:selector in:(environment allClasses) ignoreCase:false match:false.
-				].
-			   ].
-
-	    generator := Iterator on:[:whatToDo |
-					    theMethodList isNil ifTrue:[
-						theMethodList := searchBlock value:aMethod.
-					    ].
-					    theMethodList do:[:aMethod |
-						whatToDo
-						    value:aMethod mclass
-						    value:aMethod category
-						    value:aMethod selector
-						    value:aMethod.
-					    ].
-					    "enforce display of class in methodList"
-					    whatToDo
-						value:nil
-						value:nil
-						value:nil
-						value:nil.
-					    multipleMethods ifFalse:[
-						theMethodList := nil.
-					    ]
-				      ].
-
-	    multipleMethods ifTrue:[
-		theMethodList := methods.
-	    ].
-
-	    brwsr selectorListGenerator1 value:generator.
-	    "/ auto-select the first methods, if there is only one
-
-	    multipleMethods ifFalse:[
-		theMethodList isNil ifTrue:[
-		    "/ newBuffer will evaluate the generator later;
-		    "/ newBrowser might have it already evaluated ... (sigh)
-		    theMethodList := searchBlock value:aMethod.
-		].
-
-		theMethodList size == 1 ifTrue:[
-		    brwsr selectedMethods1 value:theMethodList.
-		    brwsr methodsSelectionChanged.
-		].
-	    ].
-	]
+        newBrowserOrBufferDependingOn:openHow
+        label:lbl
+        forSpec:spec
+        setupWith:[:brwsr |
+            |generator theMethodList|
+
+            searchBlock := [:whichMethod | |selector|
+                                selector := whichMethod selector.
+                                selector isNil ifTrue:[
+                                    #()
+                                ] ifFalse:[
+                                    self class allCallsOn:selector in:(environment allClasses) ignoreCase:false match:false.
+                                ].
+                           ].
+
+            generator := Iterator on:[:whatToDo |
+                                            theMethodList isNil ifTrue:[
+                                                theMethodList := searchBlock value:aMethod.
+                                            ].
+                                            theMethodList do:[:aMethod |
+                                                whatToDo
+                                                    value:aMethod mclass
+                                                    value:aMethod category
+                                                    value:aMethod selector
+                                                    value:aMethod.
+                                            ].
+                                            "enforce display of class in methodList"
+                                            whatToDo
+                                                value:nil
+                                                value:nil
+                                                value:nil
+                                                value:nil.
+                                            multipleMethods ifFalse:[
+                                                theMethodList := nil.
+                                            ]
+                                      ].
+
+            multipleMethods ifTrue:[
+                theMethodList := methods.
+            ].
+
+            brwsr selectorListGenerator1 value:generator.
+            "/ auto-select the first methods, if there is only one
+
+            multipleMethods ifFalse:[
+                theMethodList isNil ifTrue:[
+                    "/ newBuffer will evaluate the generator later;
+                    "/ newBrowser might have it already evaluated ... (sigh)
+                    theMethodList := searchBlock value:aMethod.
+                ].
+
+                theMethodList size == 1 ifTrue:[
+                    brwsr selectedMethods1 value:theMethodList.
+                    brwsr methodsSelectionChanged.
+                ].
+            ].
+        ]
 
     "Modified: / 28-02-2012 / 16:36:22 / cg"
 ! !
@@ -47744,19 +48934,18 @@
     classes := self selectedClassesValue.
     pkg := self theSingleSelectedProjectFromClasses.
     path := classes size == 1
-		ifTrue: [SVN::Repository containerNameForClass: classes anyOne]
-		ifFalse:[''].
+                ifTrue: [SVN::Repository containerNameForClass: classes anyOne]
+                ifFalse:[''].
     branch := (self svnRepositoryFor: pkg) branch.
     SVN::RevisionLogBrowser new
-	branch: branch;
-	path: path;
-	open
+        branch: branch;
+        path: path;
+        open
 
     "Modified: / 25-06-2010 / 10:08:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 28-02-2012 / 16:48:38 / cg"
 ! !
 
-
 !NewSystemBrowser methodsFor:'menu actions-variables'!
 
 browseVarRefsOrModsWithTitle:browserTitle boxTitle:boxTitle variables:varType access:accessType all:browseAll
@@ -47769,23 +48958,23 @@
 
     allNames := Set new.
     (self selectedClasses value ? #()) do:[:eachClass |
-	(varType == #classVarNames) ifTrue:[
-	    allNames addAll:(eachClass allClassVarNames).
-	] ifFalse:[
-	    (varType == #poolVarNames) ifTrue:[
-		allNames addAll:(eachClass classVarNames).
-	    ] ifFalse:[
-		(varType == #instVarNames) ifTrue:[
-		    allNames addAll:(eachClass allInstVarNames).
-		] ifFalse:[
-		    (varType == #classInstVarNames) ifTrue:[
-			allNames addAll:(eachClass theMetaclass allInstVarNames).
-		    ] ifFalse:[
-			"/ self halt
-		    ]
-		]
-	    ]
-	].
+        (varType == #classVarNames) ifTrue:[
+            allNames addAll:(eachClass allClassVarNames).
+        ] ifFalse:[
+            (varType == #poolVarNames) ifTrue:[
+                allNames addAll:(eachClass classVarNames).
+            ] ifFalse:[
+                (varType == #instVarNames) ifTrue:[
+                    allNames addAll:(eachClass allInstVarNames).
+                ] ifFalse:[
+                    (varType == #classInstVarNames) ifTrue:[
+                        allNames addAll:(eachClass theMetaclass allInstVarNames).
+                    ] ifFalse:[
+                        "/ self halt
+                    ]
+                ]
+            ]
+        ].
     ].
     allNames := allNames asOrderedCollection sort asNilIfEmpty.
 
@@ -47809,20 +48998,20 @@
     classes := self classesToSearchForVariable.
 
     varType == #poolVarNames ifTrue:[
-	"/ also check classes which refer to that pool
-	copyOfClasses := IdentitySet withAll:classes.
-	environment allClassesDo:[:someOtherClass |
-	    (someOtherClass sharedPools includesAny:copyOfClasses) ifTrue:[
-		classes add:someOtherClass.
-	    ]
-	].
-    ].
-
-    self
-	browseVarRefsToAny:varNameList
-	classes:classes
-	variables:varType access:accessType all:browseAll
-	title:browserTitle in:openHow
+        "/ also check classes which refer to that pool
+        copyOfClasses := IdentitySet withAll:classes.
+        environment allClassesDo:[:someOtherClass |
+            (someOtherClass sharedPools includesAny:copyOfClasses) ifTrue:[
+                classes add:someOtherClass.
+            ]
+        ].
+    ].
+
+    self
+        browseVarRefsToAny:varNameList
+        classes:classes
+        variables:varType access:accessType all:browseAll
+        title:browserTitle in:openHow
 
     "Modified: / 29-08-2013 / 12:24:10 / cg"
 !
@@ -47840,76 +49029,76 @@
     classes := classesIn collect:[:each | each theNonMetaclass].
 
     searchBlock := [
-		    |allMethods|
-
-		    methods notNil ifTrue:[
-			allMethods := methods.
-			methods := nil.
-		    ] ifFalse:[
-			allMethods := IdentitySet new.
-			varNameList do:[:aVariableName |
-			    |homeClasses methods1 methods2|
-
-			    (browseAll and:[varType ~~ #poolVarNames]) ifTrue:[
-				homeClasses := self findClassesOfVariable:aVariableName accessWith:varType in:classes.
-				homeClasses do:[:homeClass |
-				    (varType == #classVarNames) ifTrue:[
-					methods1 := self class findClassRefsTo:aVariableName under:homeClass theNonMetaclass access:accessType.
-					methods2 := self class findClassRefsTo:aVariableName under:homeClass theMetaclass access:accessType.
-				    ] ifFalse:[
-					varType == #classInstVarNames ifTrue:[
-					    methods1 := self class findInstRefsTo:aVariableName under:homeClass theMetaclass access:accessType
-					] ifFalse:[
-					    methods1 := self class findInstRefsTo:aVariableName under:homeClass theNonMetaclass access:accessType
-					]
-				    ].
-				    allMethods addAll:methods1.
-				    methods2 notNil ifTrue:[allMethods addAll:methods2].
-				].
-			    ] ifFalse:[
-				classes do:[:eachClass |
-				    (varType == #poolVarNames) ifTrue:[
-					eachClass isSharedPool ifTrue:[
-					    methods1 := self class findClassRefsTo:aVariableName inClass:eachClass theNonMetaclass access:accessType.
-					    methods2 := self class findClassRefsTo:aVariableName inClass:eachClass theMetaclass access:accessType.
-					] ifFalse:[
-					    methods1 := self class findPoolVarRefsTo:aVariableName inClass:eachClass theNonMetaclass access:accessType.
-					    methods2 := self class findPoolVarRefsTo:aVariableName inClass:eachClass theMetaclass access:accessType.
-					]
-				    ] ifFalse:[
-					(varType == #classVarNames) ifTrue:[
-					    methods1 := self class findClassRefsTo:aVariableName inClass:eachClass theNonMetaclass access:accessType.
-					    methods2 := self class findClassRefsTo:aVariableName inClass:eachClass theMetaclass access:accessType.
-					] ifFalse:[
-					    varType == #classInstVarNames ifTrue:[
-						methods1 := self class findInstRefsTo:aVariableName inClass:eachClass theMetaclass access:accessType
-					    ] ifFalse:[
-						methods1 := self class findInstRefsTo:aVariableName inClass:eachClass theNonMetaclass access:accessType
-					    ]
-					].
-				    ].
-				    allMethods addAll:methods1.
-				    methods2 notNil ifTrue:[allMethods addAll:methods2].
-				].
-			    ].
-			].
-			allMethods := allMethods asOrderedCollection
-		    ].
-		    allMethods
-		].
+                    |allMethods|
+
+                    methods notNil ifTrue:[
+                        allMethods := methods.
+                        methods := nil.
+                    ] ifFalse:[
+                        allMethods := IdentitySet new.
+                        varNameList do:[:aVariableName |
+                            |homeClasses methods1 methods2|
+
+                            (browseAll and:[varType ~~ #poolVarNames]) ifTrue:[
+                                homeClasses := self findClassesOfVariable:aVariableName accessWith:varType in:classes.
+                                homeClasses do:[:homeClass |
+                                    (varType == #classVarNames) ifTrue:[
+                                        methods1 := self class findClassRefsTo:aVariableName under:homeClass theNonMetaclass access:accessType.
+                                        methods2 := self class findClassRefsTo:aVariableName under:homeClass theMetaclass access:accessType.
+                                    ] ifFalse:[
+                                        varType == #classInstVarNames ifTrue:[
+                                            methods1 := self class findInstRefsTo:aVariableName under:homeClass theMetaclass access:accessType
+                                        ] ifFalse:[
+                                            methods1 := self class findInstRefsTo:aVariableName under:homeClass theNonMetaclass access:accessType
+                                        ]
+                                    ].
+                                    allMethods addAll:methods1.
+                                    methods2 notNil ifTrue:[allMethods addAll:methods2].
+                                ].
+                            ] ifFalse:[
+                                classes do:[:eachClass |
+                                    (varType == #poolVarNames) ifTrue:[
+                                        eachClass isSharedPool ifTrue:[
+                                            methods1 := self class findClassRefsTo:aVariableName inClass:eachClass theNonMetaclass access:accessType.
+                                            methods2 := self class findClassRefsTo:aVariableName inClass:eachClass theMetaclass access:accessType.
+                                        ] ifFalse:[
+                                            methods1 := self class findPoolVarRefsTo:aVariableName inClass:eachClass theNonMetaclass access:accessType.
+                                            methods2 := self class findPoolVarRefsTo:aVariableName inClass:eachClass theMetaclass access:accessType.
+                                        ]
+                                    ] ifFalse:[
+                                        (varType == #classVarNames) ifTrue:[
+                                            methods1 := self class findClassRefsTo:aVariableName inClass:eachClass theNonMetaclass access:accessType.
+                                            methods2 := self class findClassRefsTo:aVariableName inClass:eachClass theMetaclass access:accessType.
+                                        ] ifFalse:[
+                                            varType == #classInstVarNames ifTrue:[
+                                                methods1 := self class findInstRefsTo:aVariableName inClass:eachClass theMetaclass access:accessType
+                                            ] ifFalse:[
+                                                methods1 := self class findInstRefsTo:aVariableName inClass:eachClass theNonMetaclass access:accessType
+                                            ]
+                                        ].
+                                    ].
+                                    allMethods addAll:methods1.
+                                    methods2 notNil ifTrue:[allMethods addAll:methods2].
+                                ].
+                            ].
+                        ].
+                        allMethods := allMethods asOrderedCollection
+                    ].
+                    allMethods
+                ].
 
     self busyLabel:'searching...'.
     methods := searchBlock value.
     self normalLabel.
     methods size == 0 ifTrue:[
-	self information:((browserTitle bindWith:varNames allBold) , ' - none found').
-	^ self
+        self information:((browserTitle bindWith:varNames allBold) , ' - none found').
+        ^ self
     ].
 
     brwsr := self spawnMethodBrowserForSearch:searchBlock
-		sortBy:#class
-		in:openHow
-		label:(browserTitle bindWith:varNames).
+                sortBy:#class
+                in:openHow
+                label:(browserTitle bindWith:varNames).
 
     brwsr variableFilter value:varNameList.
 
@@ -47924,32 +49113,32 @@
 
     homeClasses := IdentitySet new.
     collectionOfClasses do:[:currentClass |
-	cls := currentClass.
-	[cls notNil] whileTrue:[
-	    "
-	     first, find the class, where the variable is declared
-	    "
-	    aSelector == #classInstVarNames ifTrue:[
-		list := cls class instVarNames
-	    ] ifFalse:[
-		list := cls perform:aSelector
-	    ].
-	    (list includes:aVariableName) ifTrue:[
-		homeClass := cls.
-		cls := nil.
-	    ] ifFalse:[
-		cls := cls superclass
-	    ]
-	].
-	homeClass isNil ifTrue:[
-	    "nope, must be one below ... (could optimize a bit, by searching down
-	     for the declaring class ...
-	    "
-	    homeClass := currentClass
-	] ifFalse:[
-	    "/ Transcript showCR:'starting search in ' , homeClass name.
-	].
-	homeClasses add:homeClass.
+        cls := currentClass.
+        [cls notNil] whileTrue:[
+            "
+             first, find the class, where the variable is declared
+            "
+            aSelector == #classInstVarNames ifTrue:[
+                list := cls class instVarNames
+            ] ifFalse:[
+                list := cls perform:aSelector
+            ].
+            (list includes:aVariableName) ifTrue:[
+                homeClass := cls.
+                cls := nil.
+            ] ifFalse:[
+                cls := cls superclass
+            ]
+        ].
+        homeClass isNil ifTrue:[
+            "nope, must be one below ... (could optimize a bit, by searching down
+             for the declaring class ...
+            "
+            homeClass := currentClass
+        ] ifFalse:[
+            "/ Transcript showCR:'starting search in ' , homeClass name.
+        ].
+        homeClasses add:homeClass.
     ].
 
     ^ homeClasses
@@ -47966,7 +49155,11 @@
 showingClassVarsInVariableList
     "true if classVars are shown; false if classInstVars are shown"
 
-    ^ navigationState variableListApplication showClassVarsInVariableList value
+    |varListApp|
+
+    (varListApp := navigationState variableListApplication) isNil ifTrue:[^ false].
+
+    ^ varListApp showClassVarsInVariableList value
 !
 
 variablesMenuAdd
@@ -47991,42 +49184,42 @@
     initial := ''.
     words := (self selectionInCodeView ? '') asCollectionOfWords.
     words size == 1 ifTrue:[
-	initial := words first.
+        initial := words first.
     ].
     boxTitle := 'Add Variable'.
     asValueHolder ifTrue:[
-	(initial isEmpty or:[initial endsWith:'Holder']) ifFalse:[
-	    initial := initial , 'Holder'
-	].
-	boxTitle := 'Add ValueHolder'.
+        (initial isEmpty or:[initial endsWith:'Holder']) ifFalse:[
+            initial := initial , 'Holder'
+        ].
+        boxTitle := 'Add ValueHolder'.
     ].
     msg := 'Name of new %1 %2'.
     msg := msg
-	    bindWith:
-		(asClassVariableBoolean
-		    ifTrue:['Class']
-		    ifFalse:[
-			self meta value
-			    ifTrue:['Class Instance']
-			    ifFalse:['Instance']
-		    ])
-	    with:
-		(asValueHolder
-		    ifTrue:['ValueHolder(s)']
-		    ifFalse:['Variable(s)']).
+            bindWith:
+                (asClassVariableBoolean
+                    ifTrue:['Class']
+                    ifFalse:[
+                        self meta value
+                            ifTrue:['Class Instance']
+                            ifFalse:['Instance']
+                    ])
+            with:
+                (asValueHolder
+                    ifTrue:['ValueHolder(s)']
+                    ifFalse:['Variable(s)']).
 
     generateAccessorsHolder := true asValue.
-    Dialog aboutToOpenBoxNotificationSignal handle:[:ex |
-	ex box verticalPanel
-	    add:((CheckBox
-		    label:(resources string:'Generate Getters and Setters'))
-		    model:generateAccessorsHolder).
+    Dialog modifyingBoxWith:[:box |
+        box verticalPanel
+            add:((CheckBox
+                    label:(resources string:'Generate Getters and Setters'))
+                    model:generateAccessorsHolder).
     ] do:[
-	variablesToAdd :=
-	    Dialog
-		request:(resources string:msg)
-		title:(resources string:boxTitle)
-		initialAnswer:initial.
+        variablesToAdd :=
+            Dialog
+                request:(resources string:msg)
+                title:(resources string:boxTitle)
+                initialAnswer:initial.
     ].
 
     variablesToAdd size == 0 ifTrue:[^ self].
@@ -48035,21 +49228,21 @@
 
     variablesToAdd := variablesToAdd asCollectionOfWords.
     variablesToAdd do:[:variableToAdd |
-	asClassVariableBoolean ifTrue:[
-	    self codeMenuAddClassVariable:variableToAdd inClass:selectedClass asValueHolder:asValueHolder
-	] ifFalse:[
-	    self codeMenuAddInstanceVariable:variableToAdd inClass:selectedClass asValueHolder:asValueHolder
-	]
+        asClassVariableBoolean ifTrue:[
+            self codeMenuAddClassVariable:variableToAdd inClass:selectedClass asValueHolder:asValueHolder
+        ] ifFalse:[
+            self codeMenuAddInstanceVariable:variableToAdd inClass:selectedClass asValueHolder:asValueHolder
+        ]
     ].
 
     generateAccessorsHolder value ifTrue:[
-	self
-	    variablesMenuGenerateAccessMethodsFor:variablesToAdd
-	    withChange:false
-	    asValueHolder:false
-	    readersOnly:false
-	    writersOnly:false
-	    lazyInitialization:false.
+        self
+            variablesMenuGenerateAccessMethodsFor:variablesToAdd
+            withChange:false
+            asValueHolder:false
+            readersOnly:false
+            writersOnly:false
+            lazyInitialization:false.
     ].
 !
 
@@ -48076,9 +49269,9 @@
      Then open a new browser or add a buffer showing all methods modifying to that var"
 
     self
-	browseVarRefsOrModsWithTitle:'all writers of class-instance variable %1'
-	boxTitle:'class-instance variable to browse writers:'
-	variables:#classInstVarNames access:#write all:true
+        browseVarRefsOrModsWithTitle:'all writers of class-instance variable %1'
+        boxTitle:'class-instance variable to browse writers:'
+        variables:#classInstVarNames access:#write all:true
 !
 
 variablesMenuBrowseAllClassInstVarReads
@@ -48086,9 +49279,9 @@
      Then open a new browser or add a buffer showing all methods reading to that var"
 
     self
-	browseVarRefsOrModsWithTitle:'all readers of class-instance variable %1'
-	boxTitle:'class-instance variable to browse readers:'
-	variables:#classInstVarNames access:#read all:true
+        browseVarRefsOrModsWithTitle:'all readers of class-instance variable %1'
+        boxTitle:'class-instance variable to browse readers:'
+        variables:#classInstVarNames access:#read all:true
 !
 
 variablesMenuBrowseAllClassInstVarRefs
@@ -48096,9 +49289,9 @@
      Then open a new browser or add a buffer showing all methods referring to that var"
 
     self
-	browseVarRefsOrModsWithTitle:'All references to class-instance variable %1'
-	boxTitle:'Class-instance variable to browse all references to:'
-	variables:#classInstVarNames access:#readOrWrite all:true
+        browseVarRefsOrModsWithTitle:'All references to class-instance variable %1'
+        boxTitle:'Class-instance variable to browse all references to:'
+        variables:#classInstVarNames access:#readOrWrite all:true
 !
 
 variablesMenuBrowseAllClassVarMods
@@ -48106,9 +49299,9 @@
      Then open a new browser or add a buffer showing all methods modifying that var"
 
     self
-	browseVarRefsOrModsWithTitle:'All writers of class variable %1'
-	boxTitle:'Class variable to browse all writers:'
-	variables:#classVarNames access:#write all:true
+        browseVarRefsOrModsWithTitle:'All writers of class variable %1'
+        boxTitle:'Class variable to browse all writers:'
+        variables:#classVarNames access:#write all:true
 
     "Modified (comment): / 29-05-2012 / 12:13:48 / cg"
 !
@@ -48118,9 +49311,9 @@
      Then open a new browser or add a buffer showing all methods reading to that var"
 
     self
-	browseVarRefsOrModsWithTitle:'all readers of class variable %1'
-	boxTitle:'class variable to browse readers:'
-	variables:#classVarNames access:#read all:true
+        browseVarRefsOrModsWithTitle:'all readers of class variable %1'
+        boxTitle:'class variable to browse readers:'
+        variables:#classVarNames access:#read all:true
 !
 
 variablesMenuBrowseAllClassVarRefs
@@ -48128,9 +49321,9 @@
      Then open a new browser or add a buffer showing all methods referring to that var"
 
     self
-	browseVarRefsOrModsWithTitle:'All references to class variable %1'
-	boxTitle:'Class variable to browse all references to:'
-	variables:#classVarNames access:#readOrWrite all:true
+        browseVarRefsOrModsWithTitle:'All references to class variable %1'
+        boxTitle:'Class variable to browse all references to:'
+        variables:#classVarNames access:#readOrWrite all:true
 !
 
 variablesMenuBrowseAllInstVarMods
@@ -48138,9 +49331,9 @@
      Then open a new browser or add a buffer showing all methods modifying that var"
 
     self
-	browseVarRefsOrModsWithTitle:'All writers of instance variable %1'
-	boxTitle:'Instance variable to browse all writers:'
-	variables:#instVarNames access:#write all:true
+        browseVarRefsOrModsWithTitle:'All writers of instance variable %1'
+        boxTitle:'Instance variable to browse all writers:'
+        variables:#instVarNames access:#write all:true
 
     "Modified (comment): / 29-05-2012 / 12:13:52 / cg"
 !
@@ -48150,9 +49343,9 @@
      Then open a new browser or add a buffer showing all methods writing that var"
 
     self meta value ifTrue:[
-	self variablesMenuBrowseAllClassInstVarMods.
-    ] ifFalse:[
-	self variablesMenuBrowseAllInstVarMods.
+        self variablesMenuBrowseAllClassInstVarMods.
+    ] ifFalse:[
+        self variablesMenuBrowseAllInstVarMods.
     ].
 !
 
@@ -48161,9 +49354,9 @@
      Then open a new browser or add a buffer showing all methods reading that var"
 
     self meta value ifTrue:[
-	self variablesMenuBrowseAllClassInstVarReads.
-    ] ifFalse:[
-	self variablesMenuBrowseAllInstVarReads.
+        self variablesMenuBrowseAllClassInstVarReads.
+    ] ifFalse:[
+        self variablesMenuBrowseAllInstVarReads.
     ].
 !
 
@@ -48172,9 +49365,9 @@
      Then open a new browser or add a buffer showing all methods referring to that var"
 
     self meta value ifTrue:[
-	self variablesMenuBrowseAllClassInstVarRefs.
-    ] ifFalse:[
-	self variablesMenuBrowseAllInstVarRefs.
+        self variablesMenuBrowseAllClassInstVarRefs.
+    ] ifFalse:[
+        self variablesMenuBrowseAllInstVarRefs.
     ].
 !
 
@@ -48183,9 +49376,9 @@
      Then open a new browser or add a buffer showing all methods reading that var"
 
     self
-	browseVarRefsOrModsWithTitle:'All readers of instance variable %1'
-	boxTitle:'Instance variable to browse all readers:'
-	variables:#instVarNames access:#read all:true
+        browseVarRefsOrModsWithTitle:'All readers of instance variable %1'
+        boxTitle:'Instance variable to browse all readers:'
+        variables:#instVarNames access:#read all:true
 !
 
 variablesMenuBrowseAllInstVarRefs
@@ -48193,9 +49386,9 @@
      Then open a new browser or add a buffer showing all methods referring to that var"
 
     self
-	browseVarRefsOrModsWithTitle:'All references to instance variable %1'
-	boxTitle:'Instance variable to browse all references to:'
-	variables:#instVarNames access:#readOrWrite all:true
+        browseVarRefsOrModsWithTitle:'All references to instance variable %1'
+        boxTitle:'Instance variable to browse all references to:'
+        variables:#instVarNames access:#readOrWrite all:true
 !
 
 variablesMenuBrowseAllPoolVarMods
@@ -48203,9 +49396,9 @@
      Then open a new browser or add a buffer showing methods modifying that var"
 
     self
-	browseVarRefsOrModsWithTitle:'writers of pool variable %1'
-	boxTitle:'pool variable to browse writers:'
-	variables:#poolVarNames access:#write all:true
+        browseVarRefsOrModsWithTitle:'writers of pool variable %1'
+        boxTitle:'pool variable to browse writers:'
+        variables:#poolVarNames access:#write all:true
 
     "Created: / 29-05-2012 / 12:13:06 / cg"
 !
@@ -48215,9 +49408,9 @@
      Then open a new browser or add a buffer showing methods reading that var"
 
     self
-	browseVarRefsOrModsWithTitle:'readers of pool variable %1'
-	boxTitle:'pool variable to browse readers:'
-	variables:#poolVarNames access:#read all:true
+        browseVarRefsOrModsWithTitle:'readers of pool variable %1'
+        boxTitle:'pool variable to browse readers:'
+        variables:#poolVarNames access:#read all:true
 
     "Created: / 29-05-2012 / 12:13:34 / cg"
 !
@@ -48227,9 +49420,9 @@
      Then open a new browser or add a buffer showing methods referring to that var"
 
     self
-	browseVarRefsOrModsWithTitle:'references to pool variable %1'
-	boxTitle:'pool variable to browse references to:'
-	variables:#poolVarNames access:#readOrWrite all:true
+        browseVarRefsOrModsWithTitle:'References to pool variable %1'
+        boxTitle:'Pool variable to browse references to:'
+        variables:#poolVarNames access:#readOrWrite all:true
 
     "Created: / 29-05-2012 / 12:14:39 / cg"
 !
@@ -48239,9 +49432,9 @@
      Then open a new browser or add a buffer showing methods modifying that var"
 
     self
-	browseVarRefsOrModsWithTitle:'writers of class-instance variable %1'
-	boxTitle:'class-instance variable to browse writers:'
-	variables:#classInstVarNames access:#write all:false
+        browseVarRefsOrModsWithTitle:'writers of class-instance variable %1'
+        boxTitle:'class-instance variable to browse writers:'
+        variables:#classInstVarNames access:#write all:false
 
     "Modified (comment): / 29-05-2012 / 12:13:56 / cg"
 !
@@ -48251,9 +49444,9 @@
      Then open a new browser or add a buffer showing methods reading that var"
 
     self
-	browseVarRefsOrModsWithTitle:'readers of class-instance variable %1'
-	boxTitle:'class-instance variable to browse readers:'
-	variables:#classInstVarNames access:#read all:false
+        browseVarRefsOrModsWithTitle:'readers of class-instance variable %1'
+        boxTitle:'class-instance variable to browse readers:'
+        variables:#classInstVarNames access:#read all:false
 !
 
 variablesMenuBrowseClassInstVarRefs
@@ -48261,9 +49454,9 @@
      Then open a new browser or add a buffer showing methods referring to that var"
 
     self
-	browseVarRefsOrModsWithTitle:'references to class-instance variable %1'
-	boxTitle:'class-instance variable to browse references to:'
-	variables:#classInstVarNames access:#readOrWrite all:false
+        browseVarRefsOrModsWithTitle:'References to class-instance variable %1'
+        boxTitle:'Class-instance variable to browse references to:'
+        variables:#classInstVarNames access:#readOrWrite all:false
 !
 
 variablesMenuBrowseClassVarMods
@@ -48271,9 +49464,9 @@
      Then open a new browser or add a buffer showing methods modifying that var"
 
     self
-	browseVarRefsOrModsWithTitle:'writers of class variable %1'
-	boxTitle:'class variable to browse writers:'
-	variables:#classVarNames access:#write all:false
+        browseVarRefsOrModsWithTitle:'writers of class variable %1'
+        boxTitle:'class variable to browse writers:'
+        variables:#classVarNames access:#write all:false
 
     "Modified (comment): / 29-05-2012 / 12:14:01 / cg"
 !
@@ -48283,9 +49476,9 @@
      Then open a new browser or add a buffer showing methods reading that var"
 
     self
-	browseVarRefsOrModsWithTitle:'readers of class variable %1'
-	boxTitle:'class variable to browse readers:'
-	variables:#classVarNames access:#read all:false
+        browseVarRefsOrModsWithTitle:'readers of class variable %1'
+        boxTitle:'class variable to browse readers:'
+        variables:#classVarNames access:#read all:false
 !
 
 variablesMenuBrowseClassVarRefs
@@ -48293,9 +49486,9 @@
      Then open a new browser or add a buffer showing methods referring to that var"
 
     self
-	browseVarRefsOrModsWithTitle:'references to class variable %1'
-	boxTitle:'class variable to browse references to:'
-	variables:#classVarNames access:#readOrWrite all:false
+        browseVarRefsOrModsWithTitle:'References to class variable %1'
+        boxTitle:'Class variable to browse references to:'
+        variables:#classVarNames access:#readOrWrite all:false
 !
 
 variablesMenuBrowseInstVarMods
@@ -48303,9 +49496,9 @@
      Then open a new browser or add a buffer showing methods modifying that var"
 
     self
-	browseVarRefsOrModsWithTitle:'writers of instance variable %1'
-	boxTitle:'instance variable to browse writers:'
-	variables:#instVarNames access:#write all:false
+        browseVarRefsOrModsWithTitle:'writers of instance variable %1'
+        boxTitle:'instance variable to browse writers:'
+        variables:#instVarNames access:#write all:false
 
     "Modified (comment): / 29-05-2012 / 12:14:05 / cg"
 !
@@ -48315,9 +49508,9 @@
      Then open a new browser or add a buffer showing methods modifying to that var"
 
     self
-	browseVarRefsOrModsWithTitle:'readers of instance variable %1'
-	boxTitle:'instance variable to browse readers:'
-	variables:#instVarNames access:#read all:false
+        browseVarRefsOrModsWithTitle:'readers of instance variable %1'
+        boxTitle:'instance variable to browse readers:'
+        variables:#instVarNames access:#read all:false
 !
 
 variablesMenuBrowseInstVarRefs
@@ -48325,9 +49518,9 @@
      Then open a new browser or add a buffer showing methods referring to that var"
 
     self
-	browseVarRefsOrModsWithTitle:'references to instance variable %1'
-	boxTitle:'instance variable to browse references to:'
-	variables:#instVarNames access:#readOrWrite all:false
+        browseVarRefsOrModsWithTitle:'References to instance variable %1'
+        boxTitle:'Instance variable to browse references to:'
+        variables:#instVarNames access:#readOrWrite all:false
 !
 
 variablesMenuBrowsePoolVarMods
@@ -48335,9 +49528,9 @@
      Then open a new browser or add a buffer showing methods modifying that var"
 
     self
-	browseVarRefsOrModsWithTitle:'writers of pool variable %1'
-	boxTitle:'pool variable to browse writers:'
-	variables:#poolVarNames access:#write all:false
+        browseVarRefsOrModsWithTitle:'writers of pool variable %1'
+        boxTitle:'pool variable to browse writers:'
+        variables:#poolVarNames access:#write all:false
 
     "Created: / 29-05-2012 / 12:13:06 / cg"
 !
@@ -48347,9 +49540,9 @@
      Then open a new browser or add a buffer showing methods reading that var"
 
     self
-	browseVarRefsOrModsWithTitle:'readers of pool variable %1'
-	boxTitle:'pool variable to browse readers:'
-	variables:#poolVarNames access:#read all:false
+        browseVarRefsOrModsWithTitle:'readers of pool variable %1'
+        boxTitle:'pool variable to browse readers:'
+        variables:#poolVarNames access:#read all:false
 
     "Created: / 29-05-2012 / 12:13:34 / cg"
 !
@@ -48359,13 +49552,32 @@
      Then open a new browser or add a buffer showing methods referring to that var"
 
     self
-	browseVarRefsOrModsWithTitle:'references to pool variable %1'
-	boxTitle:'pool variable to browse references to:'
-	variables:#poolVarNames access:#readOrWrite all:false
+        browseVarRefsOrModsWithTitle:'References to pool variable %1'
+        boxTitle:'Pool variable to browse references to:'
+        variables:#poolVarNames access:#readOrWrite all:false
 
     "Created: / 29-05-2012 / 12:14:39 / cg"
 !
 
+variablesMenuClear
+    "clear the selected (class) variable(s)."
+
+    |cls|
+
+    cls := self theSingleSelectedClass.
+    cls isNil ifTrue:[
+        Dialog warn:'Please select a single class.'.
+        ^ self.
+    ].
+    cls := cls theNonMetaclass.
+
+    self withSelectedVariablesDo:[:variable :isClassVar |
+        isClassVar ifTrue:[
+            cls classVarAt:variable put:nil
+        ].
+    ]
+!
+
 variablesMenuCopySelectedName
     "copy selected variable name(s) to clipboard"
 
@@ -48373,16 +49585,16 @@
 
     first := true.
     names :=
-	String streamContents:[:s |
-	    self selectedVariables value do:[:variableName |
-		first ifTrue:[
-		    first := false
-		] ifFalse:[
-		    s space.
-		].
-		s nextPutAll:variableName.
-	    ]
-	].
+        String streamContents:[:s |
+            self selectedVariables value do:[:variableName |
+                first ifTrue:[
+                    first := false
+                ] ifFalse:[
+                    s space.
+                ].
+                s nextPutAll:variableName.
+            ]
+        ].
 
     self window setClipboardText:names
 !
@@ -48395,11 +49607,11 @@
     "create access methods for selected instvars."
 
     self
-	variablesMenuGenerateAccessMethodsWithChange:false
-	asValueHolder:false
-	readersOnly:false
-	writersOnly:false
-	lazyInitialization:false
+        variablesMenuGenerateAccessMethodsWithChange:false
+        asValueHolder:false
+        readersOnly:false
+        writersOnly:false
+        lazyInitialization:false
 !
 
 variablesMenuGenerateAccessMethodsFor:names withChange:withChange asValueHolder:asValueHolder readersOnly:readersOnly writersOnly:writersOnly lazyInitialization:lazyInitialization
@@ -48410,40 +49622,40 @@
     names isEmptyOrNil ifTrue:[^ self].
 
     what := readersOnly
-		ifTrue:['Getters']
-		ifFalse:[
-		    writersOnly
-			ifTrue:['Setters']
-			ifFalse:['Accessors']].
-
-    self
-	generateUndoableChange:'Generate ',what,' in %(singleClassNameOrNumberOfClasses)'
-	overSelectedClassesVia:[:generator :eachClass |
-	    |classVars instVars|
-
-	    classVars := names select:[:var | eachClass classVarNames includes:var].
-	    classVars notEmpty ifTrue:[
-		generator
-		    createAccessMethodsFor:classVars
-		    in:eachClass theMetaclass
-		    withChange:withChange
-		    asValueHolder:asValueHolder
-		    readersOnly:readersOnly
-		    writersOnly:writersOnly
-		    lazyInitialization:lazyInitialization
-	    ].
-	    instVars := names reject:[:var | classVars includes:var].
-	    instVars notEmpty ifTrue:[
-		generator
-		    createAccessMethodsFor:instVars
-		    in:eachClass
-		    withChange:withChange
-		    asValueHolder:asValueHolder
-		    readersOnly:readersOnly
-		    writersOnly:writersOnly
-		    lazyInitialization:lazyInitialization
-	    ]
-	]
+                ifTrue:['Getters']
+                ifFalse:[
+                    writersOnly
+                        ifTrue:['Setters']
+                        ifFalse:['Accessors']].
+
+    self
+        generateUndoableChange:'Generate ',what,' in %(singleClassNameOrNumberOfClasses)'
+        overSelectedClassesVia:[:generator :eachClass |
+            |classVars instVars|
+
+            classVars := names select:[:var | eachClass classVarNames includes:var].
+            classVars notEmpty ifTrue:[
+                generator
+                    createAccessMethodsFor:classVars
+                    in:eachClass theMetaclass
+                    withChange:withChange
+                    asValueHolder:asValueHolder
+                    readersOnly:readersOnly
+                    writersOnly:writersOnly
+                    lazyInitialization:lazyInitialization
+            ].
+            instVars := names reject:[:var | classVars includes:var].
+            instVars notEmpty ifTrue:[
+                generator
+                    createAccessMethodsFor:instVars
+                    in:eachClass
+                    withChange:withChange
+                    asValueHolder:asValueHolder
+                    readersOnly:readersOnly
+                    writersOnly:writersOnly
+                    lazyInitialization:lazyInitialization
+            ]
+        ]
 
     "Modified: / 21-01-2012 / 10:25:52 / cg"
 !
@@ -48453,56 +49665,56 @@
 
     names := self instVarNamesOfAllSelectedClasses.
     self
-	variablesMenuGenerateAccessMethodsFor:names
-	withChange:false
-	asValueHolder:false
-	readersOnly:false
-	writersOnly:false
-	lazyInitialization:false
+        variablesMenuGenerateAccessMethodsFor:names
+        withChange:false
+        asValueHolder:false
+        readersOnly:false
+        writersOnly:false
+        lazyInitialization:false
 !
 
 variablesMenuGenerateAccessMethodsForValueHolder
     "create access methods for selected instvars as valueHolders."
 
     self
-	variablesMenuGenerateAccessMethodsWithChange:false
-	asValueHolder:true
-	readersOnly:false
-	writersOnly:false
-	lazyInitialization:false
+        variablesMenuGenerateAccessMethodsWithChange:false
+        asValueHolder:true
+        readersOnly:false
+        writersOnly:false
+        lazyInitialization:false
 !
 
 variablesMenuGenerateAccessMethodsForValueHolderWithChange
     "create access methods for selected instvars as valueHolders with change notification."
 
     self
-	variablesMenuGenerateAccessMethodsWithChange:true
-	asValueHolder:true
-	readersOnly:false
-	writersOnly:false
-	lazyInitialization:false
+        variablesMenuGenerateAccessMethodsWithChange:true
+        asValueHolder:true
+        readersOnly:false
+        writersOnly:false
+        lazyInitialization:false
 !
 
 variablesMenuGenerateAccessMethodsWithChange
     "create access methods with change notification for selected instvars."
 
     self
-	variablesMenuGenerateAccessMethodsWithChange:true
-	asValueHolder:false
-	readersOnly:false
-	writersOnly:false
-	lazyInitialization:false
+        variablesMenuGenerateAccessMethodsWithChange:true
+        asValueHolder:false
+        readersOnly:false
+        writersOnly:false
+        lazyInitialization:false
 !
 
 variablesMenuGenerateAccessMethodsWithChange:withChange asValueHolder:asValueHolder readersOnly:readersOnly writersOnly:writersOnly
     "common helper to create access methods."
 
     ^ self
-	variablesMenuGenerateAccessMethodsWithChange:withChange
-	asValueHolder:asValueHolder
-	readersOnly:readersOnly
-	writersOnly:writersOnly
-	lazyInitialization:false
+        variablesMenuGenerateAccessMethodsWithChange:withChange
+        asValueHolder:asValueHolder
+        readersOnly:readersOnly
+        writersOnly:writersOnly
+        lazyInitialization:false
 !
 
 variablesMenuGenerateAccessMethodsWithChange:withChange asValueHolder:asValueHolder readersOnly:readersOnly writersOnly:writersOnly lazyInitialization:lazyInitialization
@@ -48512,19 +49724,19 @@
 
     names := self variableFilter value.
     self
-	variablesMenuGenerateAccessMethodsFor:names
-	withChange:withChange asValueHolder:asValueHolder readersOnly:readersOnly writersOnly:writersOnly lazyInitialization:lazyInitialization
+        variablesMenuGenerateAccessMethodsFor:names
+        withChange:withChange asValueHolder:asValueHolder readersOnly:readersOnly writersOnly:writersOnly lazyInitialization:lazyInitialization
 !
 
 variablesMenuGenerateAccessMethodsWithLazyInitialization
     "create access methods for selected instvars with lazy ini."
 
     self
-	variablesMenuGenerateAccessMethodsWithChange:false
-	asValueHolder:false
-	readersOnly:false
-	writersOnly:false
-	lazyInitialization:true
+        variablesMenuGenerateAccessMethodsWithChange:false
+        asValueHolder:false
+        readersOnly:false
+        writersOnly:false
+        lazyInitialization:true
 !
 
 variablesMenuGenerateCollectionAccessMethods
@@ -48532,7 +49744,7 @@
 
     names := self instVarNamesOfAllSelectedClasses.
     self
-	variablesMenuGenerateCollectionAccessMethodsFor:names withChange:false
+        variablesMenuGenerateCollectionAccessMethodsFor:names withChange:false
 
     "Created: / 04-02-2007 / 15:56:24 / cg"
 !
@@ -48541,15 +49753,15 @@
     "common helper to create access methods."
 
     self
-	generateUndoableChange:'Generate collection access in %(singleClassNameOrNumberOfClasses)'
-	overSelectedClassesVia:[:generator :eachClass |
-	    names size > 0 ifTrue:[
-		generator
-		    createCollectionAccessMethodsFor:names
-		    in:eachClass
-		    withChange:withChange
-	    ]
-	]
+        generateUndoableChange:'Generate collection access in %(singleClassNameOrNumberOfClasses)'
+        overSelectedClassesVia:[:generator :eachClass |
+            names size > 0 ifTrue:[
+                generator
+                    createCollectionAccessMethodsFor:names
+                    in:eachClass
+                    withChange:withChange
+            ]
+        ]
 
     "Created: / 04-02-2007 / 15:57:22 / cg"
 !
@@ -48558,11 +49770,11 @@
     "create access methods for selected instvars."
 
     self
-	variablesMenuGenerateAccessMethodsWithChange:false
-	asValueHolder:false
-	readersOnly:true
-	writersOnly:false
-	lazyInitialization:false
+        variablesMenuGenerateAccessMethodsWithChange:false
+        asValueHolder:false
+        readersOnly:true
+        writersOnly:false
+        lazyInitialization:false
 !
 
 variablesMenuGenerateGetterMethodsForAll
@@ -48570,23 +49782,23 @@
 
     names := self instVarNamesOfAllSelectedClasses.
     self
-	variablesMenuGenerateAccessMethodsFor:names
-	withChange:false
-	asValueHolder:false
-	readersOnly:true
-	writersOnly:false
-	lazyInitialization:false
+        variablesMenuGenerateAccessMethodsFor:names
+        withChange:false
+        asValueHolder:false
+        readersOnly:true
+        writersOnly:false
+        lazyInitialization:false
 !
 
 variablesMenuGenerateSetterMethods
     "create setter methods for selected instvars."
 
     self
-	variablesMenuGenerateAccessMethodsWithChange:false
-	asValueHolder:false
-	readersOnly:false
-	writersOnly:true
-	lazyInitialization:false
+        variablesMenuGenerateAccessMethodsWithChange:false
+        asValueHolder:false
+        readersOnly:false
+        writersOnly:true
+        lazyInitialization:false
 !
 
 variablesMenuGenerateSetterMethodsForAll
@@ -48594,12 +49806,12 @@
 
     names := self instVarNamesOfAllSelectedClasses.
     self
-	variablesMenuGenerateAccessMethodsFor:names
-	withChange:false
-	asValueHolder:false
-	readersOnly:false
-	writersOnly:true
-	lazyInitialization:false
+        variablesMenuGenerateAccessMethodsFor:names
+        withChange:false
+        asValueHolder:false
+        readersOnly:false
+        writersOnly:true
+        lazyInitialization:false
 !
 
 variablesMenuInspect
@@ -48609,20 +49821,20 @@
 
     cls := self theSingleSelectedClass.
     cls isNil ifTrue:[
-	Dialog warn:'Please select a single class.'.
-	^ self.
+        Dialog warn:'Please select a single class.'.
+        ^ self.
     ].
     cls := cls theNonMetaclass.
 
     self withSelectedVariableDo:[:variableToInspect :isClassVar |
-	|value|
-
-	isClassVar ifTrue:[
-	    value := cls classVarAt:variableToInspect
-	] ifFalse:[
-	    value := cls instVarNamed:variableToInspect
-	].
-	value inspect
+        |value|
+
+        isClassVar ifTrue:[
+            value := cls classVarAt:variableToInspect
+        ] ifFalse:[
+            value := cls instVarNamed:variableToInspect
+        ].
+        value inspect
     ]
 !
 
@@ -48630,15 +49842,15 @@
     "pull selected variable into superclass."
 
     self withSelectedVariablesDo:[:variableToPull :isClassVar |
-	|cls|
-
-	self showInfo:'pulling ',variableToPull,'...'.
-	cls := self theSingleSelectedClass.
-	isClassVar ifTrue:[
-	    self codeMenuPullUpClassVariable:variableToPull inClass:(cls theNonMetaclass)
-	] ifFalse:[
-	    self codeMenuPullUpInstanceVariable:variableToPull inClass:cls
-	]
+        |cls|
+
+        self showInfo:'pulling ',variableToPull,'...'.
+        cls := self theSingleSelectedClass.
+        isClassVar ifTrue:[
+            self codeMenuPullUpClassVariable:variableToPull inClass:(cls theNonMetaclass)
+        ] ifFalse:[
+            self codeMenuPullUpInstanceVariable:variableToPull inClass:cls
+        ]
     ]
 !
 
@@ -48646,15 +49858,15 @@
     "push selected variable into subclass."
 
     self withSelectedVariablesDo:[:variableToPush :isClassVar |
-	|cls|
-
-	self showInfo:'pushing ',variableToPush,'...'.
-	cls := self theSingleSelectedClass.
-	isClassVar ifTrue:[
-	    self codeMenuPushDownClassVariable:variableToPush inClass:(cls theNonMetaclass)
-	] ifFalse:[
-	    self codeMenuPushDownInstanceVariable:variableToPush inClass:cls
-	]
+        |cls|
+
+        self showInfo:'pushing ',variableToPush,'...'.
+        cls := self theSingleSelectedClass.
+        isClassVar ifTrue:[
+            self codeMenuPushDownClassVariable:variableToPush inClass:(cls theNonMetaclass)
+        ] ifFalse:[
+            self codeMenuPushDownInstanceVariable:variableToPush inClass:cls
+        ]
     ]
 !
 
@@ -48664,20 +49876,20 @@
     |variablesToRemove classVar cls|
 
     (variablesToRemove := self selectedVariables value) size > 0 ifTrue:[
-	classVar := self showingClassVarsInVariableList.
-    ] ifFalse:[
-	variablesToRemove := Array with:(self selectionInCodeView).
-	classVar := self hasClassVariableSelectedInCodeView.
+        classVar := self showingClassVarsInVariableList.
+    ] ifFalse:[
+        variablesToRemove := Array with:(self selectionInCodeView).
+        classVar := self hasClassVariableSelectedInCodeView.
     ].
 
 "/    cls := self theSingleSelectedClass.
     cls := Behavior commonSuperclassOf:(self selectedClassesValue).
     variablesToRemove do:[:variableToRemove |
-	classVar ifTrue:[
-	    self codeMenuRemoveClassVariable:variableToRemove inClass:(cls theNonMetaclass)
-	] ifFalse:[
-	    self codeMenuRemoveInstanceVariable:variableToRemove inClass:cls
-	]
+        classVar ifTrue:[
+            self codeMenuRemoveClassVariable:variableToRemove inClass:(cls theNonMetaclass)
+        ] ifFalse:[
+            self codeMenuRemoveInstanceVariable:variableToRemove inClass:cls
+        ]
     ].
 
     "Modified: / 28-02-2012 / 16:51:57 / cg"
@@ -48689,12 +49901,12 @@
     |variableToRemove cls|
 
     self showingClassVarsInVariableList ifTrue:[
-	variableToRemove := self theSingleSelectedVariable.
+        variableToRemove := self theSingleSelectedVariable.
     ].
     variableToRemove isNil ifTrue:[
-	self hasClassVariableSelectedInCodeView ifTrue:[
-	    variableToRemove := self selectionInCodeView.
-	]
+        self hasClassVariableSelectedInCodeView ifTrue:[
+            variableToRemove := self selectionInCodeView.
+        ]
     ].
 
     cls := self theSingleSelectedClass.
@@ -48707,12 +49919,12 @@
     |variableToRemove cls|
 
     self showingClassVarsInVariableList ifFalse:[
-	variableToRemove := self theSingleSelectedVariable.
+        variableToRemove := self theSingleSelectedVariable.
     ].
     variableToRemove isNil ifTrue:[
-	self hasInstanceVariableSelectedInCodeView ifTrue:[
-	    variableToRemove := self selectionInCodeView.
-	]
+        self hasInstanceVariableSelectedInCodeView ifTrue:[
+            variableToRemove := self selectionInCodeView.
+        ]
     ].
 
     cls := self theSingleSelectedClass.
@@ -48723,15 +49935,15 @@
     "rename selected variable."
 
     self withSelectedVariableDo:[:variableToRename :isClassVar |
-	|cls|
-
-	cls := self theSingleSelectedClass.
-
-	isClassVar ifTrue:[
-	    self codeMenuRenameClassVariable:variableToRename inClass:(cls theNonMetaclass)
-	] ifFalse:[
-	    self codeMenuRenameInstanceVariable:variableToRename inClass:cls
-	]
+        |cls|
+
+        cls := self theSingleSelectedClass.
+
+        isClassVar ifTrue:[
+            self codeMenuRenameClassVariable:variableToRename inClass:(cls theNonMetaclass)
+        ] ifFalse:[
+            self codeMenuRenameInstanceVariable:variableToRename inClass:cls
+        ]
     ]
 !
 
@@ -48741,17 +49953,17 @@
     |variableToRename|
 
     self showingClassVarsInVariableList ifTrue:[
-	variableToRename := self theSingleSelectedVariable.
+        variableToRename := self theSingleSelectedVariable.
     ].
     variableToRename isNil ifTrue:[
-	self hasClassVariableSelectedInCodeView ifTrue:[
-	    variableToRename := self selectionInCodeView.
-	]
-    ].
-
-    self
-	codeMenuRenameClassVariable:variableToRename
-	inClass:(self theSingleSelectedClass theNonMetaclass)
+        self hasClassVariableSelectedInCodeView ifTrue:[
+            variableToRename := self selectionInCodeView.
+        ]
+    ].
+
+    self
+        codeMenuRenameClassVariable:variableToRename
+        inClass:(self theSingleSelectedClass theNonMetaclass)
 !
 
 variablesMenuRenameInstanceVariable
@@ -48760,17 +49972,17 @@
     |variableToRename|
 
     self showingClassVarsInVariableList ifFalse:[
-	variableToRename := self theSingleSelectedVariable.
+        variableToRename := self theSingleSelectedVariable.
     ].
     variableToRename isNil ifTrue:[
-	self hasInstanceVariableSelectedInCodeView ifTrue:[
-	    variableToRename := self selectionInCodeView.
-	]
-    ].
-
-    self
-	codeMenuRenameInstanceVariable:variableToRename
-	inClass:(self theSingleSelectedClass theNonMetaclass)
+        self hasInstanceVariableSelectedInCodeView ifTrue:[
+            variableToRename := self selectionInCodeView.
+        ]
+    ].
+
+    self
+        codeMenuRenameInstanceVariable:variableToRename
+        inClass:(self theSingleSelectedClass theNonMetaclass)
 !
 
 variablesMenuTypeBrowe
@@ -48802,178 +50014,178 @@
 
     showingClassVars := self showingClassVarsInVariableList.
     showingClassVars ifFalse:[
-	showingInstVars := self meta value not
+        showingInstVars := self meta value not
     ].
 
     currentClass := self theSingleSelectedClass.
 
     showingClassVars ifTrue:[
-	currentClass isNil ifTrue:[
-	    self selectedNonMetaclassesDo:[:cls |
-		    |sCls|
-		    sCls := (cls whichClassDefinesClassVar:name).
-		    sCls notNil ifTrue:[ searchClass := sCls ]
-	    ].
-	] ifFalse:[
-	    searchClass := currentClass theNonMetaclass whichClassDefinesClassVar:name.
-	].
-	value := searchClass classVarAt:(name asSymbol).
-	values := Array with:value.
-	s := value displayString.
-	s size > 60 ifTrue:[
-	    s := (s copyTo:60) , ' ...'
-	].
-	msg := name , ' is (currently):\\' , s.
-	s ~= value classNameWithArticle ifTrue:[
-	    msg := msg , '\\(' , value class name , ')'
-	].
-	canInspect := true.
-    ] ifFalse:[
-	searchClass := currentClass whichClassDefinesInstVar:name.
-
-	idx := searchClass instVarIndexFor:name.
-	idx isNil ifTrue:[^ nil].
-
-	classes := IdentitySet new.
-	values := IdentitySet new.
-	instCount := 0.
-	subInstCount := 0.
-	searchClass allSubInstancesDo:[:i |
-	    |val|
-
-	    val := i instVarAt:idx.
-	    val notNil ifTrue:[values add:val].
-	    classes add:val class name.
-	    (i isMemberOf:searchClass) ifTrue:[
-		instCount := instCount + 1.
-	    ] ifFalse:[
-		subInstCount := subInstCount + 1
-	    ]
-	].
-	classes := classes collect:[:eachName | environment classNamed:eachName].
-
-	(instCount == 0 and:[subInstCount == 0]) ifTrue:[
-	    self warn:(resources
-			string:'There are currently no instances or subInstances of %1.'
-			with:currentClass name allBold).
-	    ^ nil
-	].
-
-	instCount ~~ 0 ifTrue:[
-	    msg := 'in (currently: ' , instCount printString,') instances '.
-	    subInstCount ~~ 0 ifTrue:[
-		msg := msg , 'and '
-	    ]
-	] ifFalse:[
-	    msg := 'in '.
-	].
-	subInstCount ~~ 0 ifTrue:[
-	    msg := msg , '(currently: ' , subInstCount printString, ') derived instances '
-	].
-	msg := msg, 'of ' , searchClass name , ',\'.
-	msg := msg , name allBold , ' '.
-
-	canInspectMultiple := values size > 0.
-
-	((values size == 1)
-	or:[classes size == 1 and:[classes first == UndefinedObject]]) ifTrue:[
-	    values size == 1 ifTrue:[
-		value := values first.
-	    ].
-	    (value isNil or:[value == true or:[value == false]]) ifTrue:[
-		(instCount+subInstCount) == 1 ifTrue:[
-		    msg := msg , 'is'
-		] ifFalse:[
-		    msg := msg , 'is always'.
-		    classes size > 1 ifTrue:[
-			"/ must be nil
-			msg := msg , ' nil or'
-		    ].
-		].
-		msg := msg , ':\\    ' , value printString.
-	    ] ifFalse:[
-		(instCount+subInstCount) == 1 ifTrue:[
-		    msg := msg , 'is'
-		] ifFalse:[
-		    classes size > 1 ifTrue:[
-			"/ must be nil
-			msg := msg , 'is always nil or the same'
-		    ] ifFalse:[
-			msg := msg , 'is always the same'
-		    ]
-		].
-		msg := msg , ':\\'.
-		msg := msg , '    ' , value class name.
-		value isLiteral ifTrue:[
-		    msg := msg , ' (' , (value storeString copyToMax:50) , ')'
-		].
-		canInspect := true.
-	    ]
-	] ifFalse:[
-	    classes size == 1 ifTrue:[
-		msg := msg , 'is always:\\' , '    ' , classes first name , '\'.
-	    ] ifFalse:[
-		msg := msg , 'is one of:\\'.
-		classes := classes asOrderedCollection.
-		classes size > 20 ifTrue:[
-		    classes := classes copyFrom:1 to:20.
-		    cut := true
-		] ifFalse:[
-		    cut := false.
-		].
-		names := classes collect:[:cls |
-		    cls == UndefinedObject ifTrue:[
-			'nil'
-		    ] ifFalse:[
-			cls == True ifTrue:[
-			    'true'
-			] ifFalse:[
-			    cls == False ifTrue:[
-				'false'
-			    ] ifFalse:[
-				cls name
-			    ]
-			]
-		    ].
-		].
-		names sort.
-		names do:[:nm |
-		    msg := msg , '    ' , nm , '\'.
-		].
-	    ]
-	].
-
-	"/ generate a type-decl string
-	(nilIncluded := (classes includes:UndefinedObject)) ifTrue:[
-	    classes remove:UndefinedObject.
-	].
-	classes size > 0 ifTrue:[
-	    commonSuperClass := Behavior commonSuperclassOf:(classes collect:[:each| each name]).
-	    ((commonSuperClass == True) or:[commonSuperClass == False]) ifTrue:[
-		commonSuperClass := Boolean
-	    ].
-	    (commonSuperClass == SmallInteger) ifTrue:[
-		commonSuperClass := Integer
-	    ].
-	    commonSuperClass == Object class ifTrue:[
-		commonSuperClass := Class
-	    ].
-	    msg := msg , '\\'.
-	    msg := msg , 'suggested type (for documentation):\\'.
-	    msg := msg , '    <' , commonSuperClass name.
-	    nilIncluded ifTrue:[
-		msg := msg , ' | nil'
-	    ].
-	    msg := msg , '>'.
-	]
+        currentClass isNil ifTrue:[
+            self selectedNonMetaclassesDo:[:cls |
+                    |sCls|
+                    sCls := (cls whichClassDefinesClassVar:name).
+                    sCls notNil ifTrue:[ searchClass := sCls ]
+            ].
+        ] ifFalse:[
+            searchClass := currentClass theNonMetaclass whichClassDefinesClassVar:name.
+        ].
+        value := searchClass classVarAt:(name asSymbol).
+        values := Array with:value.
+        s := value displayString.
+        s size > 60 ifTrue:[
+            s := (s copyTo:60) , ' ...'
+        ].
+        msg := name , ' is (currently):\\' , s.
+        s ~= value classNameWithArticle ifTrue:[
+            msg := msg , '\\(' , value class name , ')'
+        ].
+        canInspect := true.
+    ] ifFalse:[
+        searchClass := currentClass whichClassDefinesInstVar:name.
+
+        idx := searchClass instVarIndexFor:name.
+        idx isNil ifTrue:[^ nil].
+
+        classes := IdentitySet new.
+        values := IdentitySet new.
+        instCount := 0.
+        subInstCount := 0.
+        searchClass allSubInstancesDo:[:i |
+            |val|
+
+            val := i instVarAt:idx.
+            val notNil ifTrue:[values add:val].
+            classes add:val class name.
+            (i isMemberOf:searchClass) ifTrue:[
+                instCount := instCount + 1.
+            ] ifFalse:[
+                subInstCount := subInstCount + 1
+            ]
+        ].
+        classes := classes collect:[:eachName | environment classNamed:eachName].
+
+        (instCount == 0 and:[subInstCount == 0]) ifTrue:[
+            self warn:(resources
+                        string:'There are currently no instances or subInstances of %1.'
+                        with:currentClass name allBold).
+            ^ nil
+        ].
+
+        instCount ~~ 0 ifTrue:[
+            msg := 'in (currently: ' , instCount printString,') instances '.
+            subInstCount ~~ 0 ifTrue:[
+                msg := msg , 'and '
+            ]
+        ] ifFalse:[
+            msg := 'in '.
+        ].
+        subInstCount ~~ 0 ifTrue:[
+            msg := msg , '(currently: ' , subInstCount printString, ') derived instances '
+        ].
+        msg := msg, 'of ' , searchClass name , ',\'.
+        msg := msg , name allBold , ' '.
+
+        canInspectMultiple := values size > 0.
+
+        ((values size == 1)
+        or:[classes size == 1 and:[classes first == UndefinedObject]]) ifTrue:[
+            values size == 1 ifTrue:[
+                value := values first.
+            ].
+            (value isNil or:[value == true or:[value == false]]) ifTrue:[
+                (instCount+subInstCount) == 1 ifTrue:[
+                    msg := msg , 'is'
+                ] ifFalse:[
+                    msg := msg , 'is always'.
+                    classes size > 1 ifTrue:[
+                        "/ must be nil
+                        msg := msg , ' nil or'
+                    ].
+                ].
+                msg := msg , ':\\    ' , value printString.
+            ] ifFalse:[
+                (instCount+subInstCount) == 1 ifTrue:[
+                    msg := msg , 'is'
+                ] ifFalse:[
+                    classes size > 1 ifTrue:[
+                        "/ must be nil
+                        msg := msg , 'is always nil or the same'
+                    ] ifFalse:[
+                        msg := msg , 'is always the same'
+                    ]
+                ].
+                msg := msg , ':\\'.
+                msg := msg , '    ' , value class name.
+                value isLiteral ifTrue:[
+                    msg := msg , ' (' , (value storeString copyToMax:50) , ')'
+                ].
+                canInspect := true.
+            ]
+        ] ifFalse:[
+            classes size == 1 ifTrue:[
+                msg := msg , 'is always:\\' , '    ' , classes first name , '\'.
+            ] ifFalse:[
+                msg := msg , 'is one of:\\'.
+                classes := classes asOrderedCollection.
+                classes size > 20 ifTrue:[
+                    classes := classes copyFrom:1 to:20.
+                    cut := true
+                ] ifFalse:[
+                    cut := false.
+                ].
+                names := classes collect:[:cls |
+                    cls == UndefinedObject ifTrue:[
+                        'nil'
+                    ] ifFalse:[
+                        cls == True ifTrue:[
+                            'true'
+                        ] ifFalse:[
+                            cls == False ifTrue:[
+                                'false'
+                            ] ifFalse:[
+                                cls name
+                            ]
+                        ]
+                    ].
+                ].
+                names sort.
+                names do:[:nm |
+                    msg := msg , '    ' , nm , '\'.
+                ].
+            ]
+        ].
+
+        "/ generate a type-decl string
+        (nilIncluded := (classes includes:UndefinedObject)) ifTrue:[
+            classes remove:UndefinedObject.
+        ].
+        classes size > 0 ifTrue:[
+            commonSuperClass := Behavior commonSuperclassOf:(classes collect:[:each| each name]).
+            ((commonSuperClass == True) or:[commonSuperClass == False]) ifTrue:[
+                commonSuperClass := Boolean
+            ].
+            (commonSuperClass == SmallInteger) ifTrue:[
+                commonSuperClass := Integer
+            ].
+            commonSuperClass == Object class ifTrue:[
+                commonSuperClass := Class
+            ].
+            msg := msg , '\\'.
+            msg := msg , 'suggested type (for documentation):\\'.
+            msg := msg , '    <' , commonSuperClass name.
+            nilIncluded ifTrue:[
+                msg := msg , ' | nil'
+            ].
+            msg := msg , '>'.
+        ]
     ].
 
     info := Dictionary new
-		at:#message put:msg;
-		at:#values put:values;
-		at:#classes put:classes;
-		at:#searchClass put:searchClass;
-		yourself.
+                at:#message put:msg;
+                at:#values put:values;
+                at:#classes put:classes;
+                at:#searchClass put:searchClass;
+                yourself.
 
     ^ info
 !
@@ -48989,7 +50201,7 @@
 
     showingClassVars := self showingClassVarsInVariableList.
     showingClassVars ifFalse:[
-	showingInstVars := self meta value not
+        showingInstVars := self meta value not
     ].
     currentClass := self theSingleSelectedClass.
 
@@ -49005,78 +50217,78 @@
     canInspectMultiple := values size > 1.
 
     doBrowseTypes ifTrue:[
-	classes size > 0 ifTrue:[
-	    self spawnClassBrowserFor:classes in:#newBuffer.
-	    ^ self
-	].
+        classes size > 0 ifTrue:[
+            self spawnClassBrowserFor:classes in:#newBuffer.
+            ^ self
+        ].
     ].
 
     boxLabels := #('OK').
     boxValues := #(true).
     (canInspect or:[canInspectMultiple]) ifTrue:[
-	canInspectMultiple ifTrue:[
-	    boxLabels := boxLabels , #('Inspect all Values').
-	    boxValues := boxValues , #(#inspectValues).
-
-	    boxLabels := boxLabels , #('Inspect a Value').
-	    boxValues := boxValues , #(#inspectAValue).
-	] ifFalse:[
-	    boxLabels := boxLabels , #('Inspect Value').
-	    boxValues := boxValues , #(#inspectAValue).
-	].
-
-	showingClassVars ifFalse:[
-	    canInspectMultiple ifTrue:[
-		boxLabels := boxLabels , #('Inspect all Instances').
-		boxValues := boxValues , #(#inspectInstances).
-
-		boxLabels := boxLabels , #('Inspect an Instance').
-		boxValues := boxValues , #(#inspectAnInstance).
-	    ] ifFalse:[
-		boxLabels := boxLabels , #('Inspect Instance').
-		boxValues := boxValues , #(#inspectAnInstance).
-	    ].
-	].
+        canInspectMultiple ifTrue:[
+            boxLabels := boxLabels , #('Inspect all Values').
+            boxValues := boxValues , #(#inspectValues).
+
+            boxLabels := boxLabels , #('Inspect a Value').
+            boxValues := boxValues , #(#inspectAValue).
+        ] ifFalse:[
+            boxLabels := boxLabels , #('Inspect Value').
+            boxValues := boxValues , #(#inspectAValue).
+        ].
+
+        showingClassVars ifFalse:[
+            canInspectMultiple ifTrue:[
+                boxLabels := boxLabels , #('Inspect all Instances').
+                boxValues := boxValues , #(#inspectInstances).
+
+                boxLabels := boxLabels , #('Inspect an Instance').
+                boxValues := boxValues , #(#inspectAnInstance).
+            ] ifFalse:[
+                boxLabels := boxLabels , #('Inspect Instance').
+                boxValues := boxValues , #(#inspectAnInstance).
+            ].
+        ].
     ].
 
     Dialog defaultOKButtonAtLeft ifFalse:[
-	boxLabels reverse.
-	boxValues reverse.
+        boxLabels reverse.
+        boxValues reverse.
     ].
 
     answer := OptionBox
-		      request:msg withCRs
-		      label:'Variable Type Information'
-		      image:(InfoBox iconBitmap)
-		      buttonLabels:boxLabels
-		      values:boxValues
-		      default:true
-		      onCancel:nil.
+                      request:msg withCRs
+                      label:'Variable Type Information'
+                      image:(InfoBox iconBitmap)
+                      buttonLabels:boxLabels
+                      values:boxValues
+                      default:true
+                      onCancel:nil.
 
     answer == #inspectAValue ifTrue:[
-	canInspect ifTrue:[
-	    value inspect
-	] ifFalse:[
-	    value := values inject:nil into:[:max :this | this size > max size ifTrue:[this] ifFalse:[max]].
-	    value notNil ifTrue:[
-		value inspect
-	    ] ifFalse:[
-		values first inspect
-	    ].
-	].
-	^ self
+        canInspect ifTrue:[
+            value inspect
+        ] ifFalse:[
+            value := values inject:nil into:[:max :this | this size > max size ifTrue:[this] ifFalse:[max]].
+            value notNil ifTrue:[
+                value inspect
+            ] ifFalse:[
+                values first inspect
+            ].
+        ].
+        ^ self
     ].
     answer == #inspectValues ifTrue:[
-	(canInspect ifTrue:value ifFalse:values) inspect.
-	^ self
+        (canInspect ifTrue:value ifFalse:values) inspect.
+        ^ self
     ].
     answer == #inspectInstances ifTrue:[
-	searchClass allSubInstances inspect.
-	^ self
+        searchClass allSubInstances inspect.
+        ^ self
     ].
     answer == #inspectAnInstance ifTrue:[
-	searchClass allSubInstances first inspect.
-	^ self
+        searchClass allSubInstances first inspect.
+        ^ self
     ].
 
     "Modified: / 12-09-2006 / 13:59:24 / cg"
@@ -49107,40 +50319,40 @@
 !
 
 withSelectedVariableDo:aBlock
-    "pull/push common code"
+    "pull/push/variable manipulation common code for a single selected variable"
 
     |selectedVariable isClassVar|
 
     selectedVariable := self theSingleSelectedVariable.
     selectedVariable notNil ifTrue:[
-	isClassVar := self showingClassVarsInVariableList.
-    ] ifFalse:[
-	selectedVariable := self selectionInCodeView.
-	selectedVariable isNil ifTrue:[
-	    ^ self
-	].
-	isClassVar := self hasClassVariableSelectedInCodeView.
+        isClassVar := self showingClassVarsInVariableList.
+    ] ifFalse:[
+        selectedVariable := self selectionInCodeView.
+        selectedVariable isNil ifTrue:[
+            ^ self
+        ].
+        isClassVar := self hasClassVariableSelectedInCodeView.
     ].
     aBlock value:selectedVariable value:isClassVar
 !
 
 withSelectedVariablesDo:aBlock
-    "pull/push common code"
+    "pull/push/variable manipulation common code for possibly multiple selected variables"
 
     |selectedVariable isClassVar|
 
     (self selectedVariables value) notEmptyOrNil ifTrue:[
-	isClassVar := self showingClassVarsInVariableList.
-	self selectedVariables value do:[:eachSelectedVariable |
-	    aBlock value:eachSelectedVariable value:isClassVar
-	].
-    ] ifFalse:[
-	selectedVariable := self selectionInCodeView.
-	selectedVariable isNil ifTrue:[
-	    ^ self
-	].
-	isClassVar := self hasClassVariableSelectedInCodeView.
-	aBlock value:selectedVariable value:isClassVar
+        isClassVar := self showingClassVarsInVariableList.
+        self selectedVariables value do:[:eachSelectedVariable |
+            aBlock value:eachSelectedVariable value:isClassVar
+        ].
+    ] ifFalse:[
+        selectedVariable := self selectionInCodeView.
+        selectedVariable isNil ifTrue:[
+            ^ self
+        ].
+        isClassVar := self hasClassVariableSelectedInCodeView.
+        aBlock value:selectedVariable value:isClassVar
     ].
 ! !
 
@@ -49170,19 +50382,45 @@
     "Modified: / 22-02-2008 / 17:18:56 / janfrog"
 ! !
 
+!NewSystemBrowser methodsFor:'menus extensions'!
+
+menuExtendersFor: key do: block
+    "Evaluates a block for each selector that extends particular menu.
+     Extender methods have to be annotated by <menuextension: key> annotation
+     and must take one argument (an instance of Menu that the menu extension
+     extends."
+
+    | cls |
+
+    cls := self class.
+    [ cls notNil ] whileTrue:[
+        cls selectorsAndMethodsDo:[ :selector :method |
+            method annotationsAt: #menuextension: do: [ :annotation |
+                annotation arguments first == key ifTrue:[
+                    block value: selector
+                ].
+            ]
+        ].
+        cls := cls superclass.
+    ].
+
+    "Created: / 25-01-2014 / 12:40:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 24-02-2014 / 22:44:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !NewSystemBrowser methodsFor:'menus-dynamic'!
 
 boockmarksMenu
     <resource: #programMenu >
 
     ^ [
-	|m item|
-
-	m := Menu new.
-
-	item := MenuItem label:(resources string:'Add Bookmark').
-	m addItem:item.
-	item itemValue:#'searchMenuAddToBookmarks'.
+        |m item|
+
+        m := Menu new.
+
+        item := MenuItem label:(resources string:'Add Bookmark').
+        m addItem:item.
+        item itemValue:#'searchMenuAddToBookmarks'.
 
 "/        BookMarks size > 0 ifTrue:[
 "/            item := MenuItem label:(resources string:'Remove Bookmark').
@@ -49205,8 +50443,8 @@
 "/                item argument:entry.
 "/            ].
 "/        ].
-	m findGuiResourcesIn:self.
-	m
+        m findGuiResourcesIn:self.
+        m
     ].
 
     "Modified: / 23-05-2011 / 10:29:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -49223,38 +50461,38 @@
     <resource: #programMenu >
 
     ^ [
-	|m extensionProjectIDs classPackage item mgr|
-
-	sourceCodeManagerNameOrNil notNil ifTrue:[
-	    mgr := Smalltalk at:sourceCodeManagerNameOrNil asSymbol.
-	    self assert:(mgr notNil).
-	].
-
-	extensionProjectIDs := Set new.
-
-	self selectedClassesDo:[:eachClass |
-	    classPackage := eachClass package.
-	    eachClass instAndClassSelectorsAndMethodsDo:[:sel :mthd |
-		mthd package ~= classPackage ifTrue:[
-		    extensionProjectIDs add:mthd package.
-		]
-	    ]
-	].
-	extensionProjectIDs size > 0 ifTrue:[
-	    m := Menu new.
-	    extensionProjectIDs size > 1 ifTrue:[
-		item := MenuItem label:'All'.
-		item itemValue:[ self classMenuCheckInExtensionsUsingManager:mgr ].
-		m addItem:item.
-		m addSeparator.
-	    ].
-	    extensionProjectIDs asSortedCollection do:[:eachExtensionPackage |
-		item := MenuItem label:eachExtensionPackage.
-		item itemValue:[ self classMenuCheckInExtensionsFor: eachExtensionPackage usingManager:mgr ].
-		m addItem:item.
-	    ].
-	].
-	m
+        |m extensionProjectIDs classPackage item mgr|
+
+        sourceCodeManagerNameOrNil notNil ifTrue:[
+            mgr := Smalltalk classNamed:sourceCodeManagerNameOrNil.
+            self assert:(mgr notNil).
+        ].
+
+        extensionProjectIDs := Set new.
+
+        self selectedClassesDo:[:eachClass |
+            classPackage := eachClass package.
+            eachClass instAndClassSelectorsAndMethodsDo:[:sel :mthd |
+                mthd package ~= classPackage ifTrue:[
+                    extensionProjectIDs add:mthd package.
+                ]
+            ]
+        ].
+        extensionProjectIDs size > 0 ifTrue:[
+            m := Menu new.
+            extensionProjectIDs size > 1 ifTrue:[
+                item := MenuItem label:'All'.
+                item itemValue:[ self classMenuCheckInExtensionsUsingManager:mgr ].
+                m addItem:item.
+                m addSeparator.
+            ].
+            extensionProjectIDs asSortedCollection do:[:eachExtensionPackage |
+                item := MenuItem label:eachExtensionPackage.
+                item itemValue:[ self classMenuCheckInExtensionsFor: eachExtensionPackage usingManager:mgr ].
+                m addItem:item.
+            ].
+        ].
+        m
     ].
 
     "Modified: / 09-09-2012 / 13:11:49 / cg"
@@ -49264,62 +50502,40 @@
     <resource: #programMenu >
 
     ^ [
-	|m selected submenu subItem|
-
-	m := self class bufferBaseMenu decodeAsLiteralArray.
-	m findGuiResourcesIn:self.
-
-	m addSeparator.
-
-	RecentlyClosedList notEmptyOrNil ifTrue:[
-	    submenu := Menu new.
-	    RecentlyClosedList do:[:historyEntry |
-		|item itemLabel|
-
-		itemLabel := self historyMenuItemLabelFor:historyEntry.
-		item := MenuItem label:itemLabel.
-		item
-		    itemValue:[:i |
-			|cls|
-
-			cls := historyEntry theClass.
-			historyEntry meta ifTrue:[
-			    cls := cls theMetaclass
-			].
-
-			self
-			    spawnFullBrowserInClass:cls
-			    selector:historyEntry selector
-			    in:#newBuffer
-		    ].
-		submenu addItem:item.
-	    ].
-	    m addItem:(subItem := MenuItem label:(resources string:'Recently Closed')).
-	    subItem submenu:submenu.
-	].
-
-	m addItem:((MenuItem label:(resources string:'Other Browsers')) submenuChannel:#otherBrowsersMenu).
-	m addSeparator.
-
-	bufferNameList notEmptyOrNil ifTrue:[
-	    selected := selectedBuffer value.
-	    bufferNameList keysAndValuesDo:[:idx :nm |
-		|item|
-
-		item := MenuItem label:nm.
-		item indication:(idx == selected).
-		item itemValue:[:i | selectedBuffer value:idx].
-		m addItem:item.
-	    ].
-	    m addSeparator.
-	] ifFalse:[
-	    (m atNameKey:#'RemoveBuffer') disable
-	].
-	m addItem:(MenuItem label:(resources string:'Exit') itemValue:#closeRequest).
-	m
+        |m selected submenu subItem|
+
+        m := self menuFor: #bufferBaseMenu.
+        m findGuiResourcesIn:self.
+
+        m addSeparator.
+
+        m addItem:((subItem := MenuItem label:(resources string:'Recently Closed')) submenuChannel:#recentlyClosedMenu).
+        self closeHistory isEmptyOrNil ifTrue:[ subItem disable ].
+
+        "/ m addItem:((MenuItem label:(resources string:'Other Browsers')) submenuChannel:#otherBrowsersMenu).
+
+
+        bufferNameList notEmptyOrNil ifTrue:[
+            m addSeparator.
+            selected := selectedBuffer value.
+            bufferNameList keysAndValuesDo:[:idx :nm |
+                |item|
+
+                item := MenuItem label:nm.
+                item indication:(idx == selected).
+                item itemValue:[:i | selectedBuffer value:idx].
+                m addItem:item.
+            ].
+            m addSeparator.
+        ] ifFalse:[
+            (m atNameKey:#'RemoveBuffer') disable
+        ].
+        m addItem:(MenuItem label:(resources string:'Exit') itemValue:#closeRequest).
+        m
     ].
 
     "Modified: / 09-09-2012 / 20:43:01 / cg"
+    "Modified: / 02-05-2014 / 15:55:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 categoryMenuWithFind
@@ -49329,12 +50545,13 @@
 
     | menu |
 
-    menu := self class categoryMenuWithFind decodeAsLiteralArray.
+    menu := self menuFor: #categoryMenuWithFind.
     menu receiver:self.
     menu findGuiResourcesIn:self.
     ^ menu
 
     "Created: / 15-10-2011 / 12:28:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 25-01-2014 / 12:17:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 changedClassesMenu
@@ -49344,12 +50561,12 @@
     <resource: #programMenu >
 
     ^ [
-	self
-	    changedMenuForFilter:[:chg | (chg isMethodChange or:[chg isClassChange and:[chg changeClass isNameSpace not]])]
-	    itemClass:[:chg | chg changeClass theNonMetaclass]
-	    itemSelector:[:chg | nil]
-	    label:[:chg | chg changeClass theNonMetaclass name allBold]
-	    browseActionOfLastItem:[NewSystemBrowser openOnClassesInChangeSet].
+        self
+            changedMenuForFilter:[:chg | (chg isMethodChange or:[chg isClassChange and:[chg changeClass isNameSpace not]])]
+            itemClass:[:chg | chg changeClass theNonMetaclass]
+            itemSelector:[:chg | nil]
+            label:[:chg | chg changeClass theNonMetaclass name allBold]
+            browseActionOfLastItem:[NewSystemBrowser openOnClassesInChangeSet].
       ].
 !
 
@@ -49360,13 +50577,13 @@
     <resource: #programMenu >
 
     ^ [
-	|menu|
-
-	menu := self changedMethodsMenu value.
-	menu isNil ifTrue:[
-	    menu := self changedClassesMenu value.
-	].
-	menu
+        |menu|
+
+        menu := self changedMethodsMenu value.
+        menu isNil ifTrue:[
+            menu := self changedClassesMenu value.
+        ].
+        menu
     ].
 !
 
@@ -49390,69 +50607,69 @@
     maxReached := false.
 
     changes reverseDo:[:aChange |
-	|item cls sel lbl histEntry|
-
-	maxReached ifTrue:[
-	    (nOverAll = 0) ifTrue:[
-		^ nil
-	    ].
-	    ^ menu
-	].
-
-	nItem > nMaxItem ifTrue:[
-	    nLevel < nMaxLevel ifTrue:[
-		nextMenu := Menu new.
-		item := MenuItem label:(resources string:'more').
-		currentMenu addItem:item.
-		item submenu:nextMenu.
-		currentMenu := nextMenu.
-
-		nItem := 0.
-		nLevel := nLevel + 1.
-	    ] ifFalse:[
-		maxReached ifFalse:[
-		    maxReached := true.
-
-		    item := MenuItem label:(resources string:'>> more changes ignored <<').
-		    item enabled:false.
-		    currentMenu addItem:item.
-
-		    browseActionOfLastItemOrNil notNil ifTrue:[
-			item := MenuItem label:(resources string:'Browse all changes').
-			item itemValue:browseActionOfLastItemOrNil.
-		    ].
-		    currentMenu addItem:item.
-		]
-	    ]
-	].
-	maxReached ifFalse:[
-	    cls := aChange changeClass.
-	    cls notNil ifTrue:[
-		(aChangeFilter value:aChange) ifTrue:[
-		    cls := itemClassBlock value:aChange.
-		    sel := itemSelectorBlock value:aChange.
-		    lbl := labelBlock value:aChange.
-		    (already includes:lbl) ifFalse:[
-
-			histEntry := self class
-					historyEntryForClass:cls
-					selector:sel.
-
-			item := MenuItem label:(lbl contractTo:80).
-			item itemValue:#'switchToHistoryEntry:' argument:histEntry.
-			currentMenu addItem:item.
-
-			already add:lbl.
-			nItem := nItem + 1.
-			nOverAll := nOverAll + 1.
-		    ]
-		]
-	    ].
-	]
+        |item cls sel lbl histEntry|
+
+        maxReached ifTrue:[
+            (nOverAll = 0) ifTrue:[
+                ^ nil
+            ].
+            ^ menu
+        ].
+
+        nItem > nMaxItem ifTrue:[
+            nLevel < nMaxLevel ifTrue:[
+                nextMenu := Menu new.
+                item := MenuItem label:(resources string:'more').
+                currentMenu addItem:item.
+                item submenu:nextMenu.
+                currentMenu := nextMenu.
+
+                nItem := 0.
+                nLevel := nLevel + 1.
+            ] ifFalse:[
+                maxReached ifFalse:[
+                    maxReached := true.
+
+                    item := MenuItem label:(resources string:'>> more changes ignored <<').
+                    item enabled:false.
+                    currentMenu addItem:item.
+
+                    browseActionOfLastItemOrNil notNil ifTrue:[
+                        item := MenuItem label:(resources string:'Browse all changes').
+                        item itemValue:browseActionOfLastItemOrNil.
+                    ].
+                    currentMenu addItem:item.
+                ]
+            ]
+        ].
+        maxReached ifFalse:[
+            cls := aChange changeClass.
+            cls notNil ifTrue:[
+                (aChangeFilter value:aChange) ifTrue:[
+                    cls := itemClassBlock value:aChange.
+                    sel := itemSelectorBlock value:aChange.
+                    lbl := labelBlock value:aChange.
+                    (already includes:lbl) ifFalse:[
+
+                        histEntry := self class
+                                        historyEntryForClass:cls
+                                        selector:sel.
+
+                        item := MenuItem label:(lbl contractTo:80).
+                        item itemValue:#'switchToHistoryEntry:' argument:histEntry.
+                        currentMenu addItem:item.
+
+                        already add:lbl.
+                        nItem := nItem + 1.
+                        nOverAll := nOverAll + 1.
+                    ]
+                ]
+            ].
+        ]
     ].
 
     (nOverAll = 0) ifTrue:[
-	^ nil
+        ^ nil
     ].
     ^ menu
 
@@ -49466,12 +50683,12 @@
     <resource: #programMenu >
 
     ^ [
-	self
-	    changedMenuForFilter:[:chg | chg isMethodChange]
-	    itemClass:[:chg | chg changeClass]
-	    itemSelector:[:chg | chg selector]
-	    label:[:chg | (chg className allBold?'???') , ' ' , (chg selector?'???') "chg printString"]
-	    browseActionOfLastItem:[NewSystemBrowser openOnMethodsInChangeSet].
+        self
+            changedMenuForFilter:[:chg | chg isMethodChange]
+            itemClass:[:chg | chg changeClass]
+            itemSelector:[:chg | chg selector]
+            label:[:chg | (chg className allBold?'???') , ' ' , (chg selector?'???') "chg printString"]
+            browseActionOfLastItem:[NewSystemBrowser openOnMethodsInChangeSet].
       ].
 !
 
@@ -49482,13 +50699,14 @@
 
     | menu |
 
-    menu := self class classMenu decodeAsLiteralArray.
+    menu := self menuFor: #classMenu.
     menu receiver:self.
     menu findGuiResourcesIn:self.
     ^ menu
 
     "Created: / 19-04-2011 / 14:29:47 / cg"
     "Created: / 11-10-2011 / 09:08:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 24-01-2014 / 20:49:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 classOperationsMenu
@@ -49498,13 +50716,13 @@
     <resource: #programMenu >
 
     ^ [
-	|cls m |
-
-	cls := self theSingleSelectedClass.
-	cls notNil ifTrue:[
-	    m := cls theNonMetaclass classOperationsMenu
-	].
-	m
+        |cls m |
+
+        cls := self theSingleSelectedClass.
+        cls notNil ifTrue:[
+            m := cls theNonMetaclass classOperationsMenu
+        ].
+        m
     ].
 
     "Modified: / 31-01-2011 / 11:09:04 / cg"
@@ -49514,29 +50732,29 @@
     <resource: #programMenu >
 
     ^ [
-	|m allLanguages|
-
-	allLanguages := OrderedCollection new.
-	ProgrammingLanguage allDo:[:eachLanguage |
-	    (
-		{   SmalltalkLanguage .
-		    STXJavaScriptLanguage .
-		} includes:eachLanguage class
-	    ) ifFalse:[
-		allLanguages add:eachLanguage
-	    ]
-	].
-	allLanguages sort:[:a :b | a name < b name].
-
-	m := Menu new.
-	allLanguages do:[:eachLanguage |
-		m addSeparator.
-		m addItem:(MenuItem
-			    label:(resources string:'%1 Class' with:(eachLanguage name))
-			    value:[self classMenuNewClass:eachLanguage metaClass ])
-
-	].
-	m
+        |m allLanguages|
+
+        allLanguages := OrderedCollection new.
+        ProgrammingLanguage allDo:[:eachLanguage |
+            (
+                {   SmalltalkLanguage .
+                    STXJavaScriptLanguage .
+                } includes:eachLanguage class
+            ) ifFalse:[
+                allLanguages add:eachLanguage
+            ]
+        ].
+        allLanguages sort:[:a :b | a name < b name].
+
+        m := Menu new.
+        allLanguages do:[:eachLanguage |
+                m addSeparator.
+                m addItem:(MenuItem
+                            label:(resources string:'%1 Class' with:(eachLanguage name))
+                            value:[self classMenuNewClass:eachLanguage metaClass ])
+
+        ].
+        m
     ].
 
     "Created: / 21-08-2012 / 17:01:41 / cg"
@@ -49552,34 +50770,34 @@
     |spec menu first skippedManager|
 
     self theSingleSelectedClass notNil ifTrue:[
-	skippedManager := self theSingleSelectedClass sourceCodeManager.
-    ] ifFalse:[
-	skippedManager := SourceCodeManager ?  AbstractSourceCodeManager defaultManager
+        skippedManager := self theSingleSelectedClass sourceCodeManager.
+    ] ifFalse:[
+        skippedManager := SourceCodeManager ?  AbstractSourceCodeManager defaultManager
     ].
 
     spec := self class classSCMMenu.
     menu := spec decodeAsLiteralArray.
     menu itemsDo:[:eachItem |
-	eachItem argument:skippedManager.
+        eachItem argument:skippedManager.
     ].
 
 false ifTrue:[
     SourceCodeManager availableManagers do:[:eachManager |
-	|newItem subMenu|
-
-	eachManager ~= skippedManager ifTrue:[
-	    first ifTrue:[
-		menu addSeparator.
-		first := false.
-	    ].
-	    subMenu := spec decodeAsLiteralArray.
-	    subMenu receiver:self.
-	    subMenu findGuiResourcesIn:self.
-
-	    newItem := MenuItem label:eachManager managerTypeName.
-	    newItem submenu:subMenu.
-	    menu addItem:newItem.
-	].
+        |newItem subMenu|
+
+        eachManager ~= skippedManager ifTrue:[
+            first ifTrue:[
+                menu addSeparator.
+                first := false.
+            ].
+            subMenu := spec decodeAsLiteralArray.
+            subMenu receiver:self.
+            subMenu findGuiResourcesIn:self.
+
+            newItem := MenuItem label:eachManager managerTypeName.
+            newItem submenu:subMenu.
+            menu addItem:newItem.
+        ].
     ].
 ].
 
@@ -49604,16 +50822,16 @@
 
     |shiftedMenu codeView menu sensor menuOthers|
 
-    shiftedMenu := self class shiftedCodeViewPopUpMenu decodeAsLiteralArray.
+    shiftedMenu := self menuFor: #shiftedCodeViewPopUpMenu.
     shiftedMenu receiver:self.
     shiftedMenu findGuiResourcesIn:self.
 
     codeView := self codeView.
     sensor := codeView sensor.
     sensor shiftDown ifTrue:[
-	sensor ctrlDown ifFalse:[
-	    ^ shiftedMenu
-	].
+        sensor ctrlDown ifFalse:[
+            ^ shiftedMenu
+        ].
     ].
 
     menu := codeView editMenu.
@@ -49627,26 +50845,26 @@
 "/            menuOthers := menu.
 "/        ]
 "/    ] ifFalse:[
-	(menu isKindOf:Menu) ifTrue:[
-	    "/ a newStyle menuPanel
-	    "/ (menu atNameKey:'refactor') "atMenuItemLabeled:'Refactor'" putSubmenu:shiftedMenu visible:true.
-	    (menu menuItemLabeled:(resources string:'Refactor')) notNil ifTrue:[
-		menu atMenuItemLabeled:(resources string:'Refactor') putSubmenu:shiftedMenu visible:true.
-	    ].
-	] ifFalse:[
-	    "/ an oldStyle popUpMenu
-	    "/ this is a kludge...
-	    shiftedMenu := shiftedMenu asOldStylePopUpMenuFor:self.
-	    "/ would like to add the shifted-menu here
-	    menu menuView
-		addLabels:(Array with:'-' with:(resources string:'Refactor'))
-		selectors:#( nil refactorings)
-		accelerators:#(nil 'Shift')
-		after:#accept.
-	    menu subMenuAt:#refactorings put:shiftedMenu.
-
-	    menuOthers := menu subMenuAt:#others.
-	].
+        (menu isKindOf:Menu) ifTrue:[
+            "/ a newStyle menuPanel
+            "/ (menu atNameKey:'refactor') "atMenuItemLabeled:'Refactor'" putSubmenu:shiftedMenu visible:true.
+            (menu menuItemLabeled:(resources string:'Refactor')) notNil ifTrue:[
+                menu atMenuItemLabeled:(resources string:'Refactor') putSubmenu:shiftedMenu visible:true.
+            ].
+        ] ifFalse:[
+            "/ an oldStyle popUpMenu
+            "/ this is a kludge...
+            shiftedMenu := shiftedMenu asOldStylePopUpMenuFor:self.
+            "/ would like to add the shifted-menu here
+            menu menuView
+                addLabels:(Array with:'-' with:(resources string:'Refactor'))
+                selectors:#( nil refactorings)
+                accelerators:#(nil 'Shift')
+                after:#accept.
+            menu subMenuAt:#refactorings put:shiftedMenu.
+
+            menuOthers := menu subMenuAt:#others.
+        ].
 "/    ].
 
 "/    sensor shiftDown ifFalse:[
@@ -49663,35 +50881,38 @@
 "/            ].
 "/        ].
 "/    ].
-
+    self menuExtendersFor: #codeViewMenu do:[:each |
+            self perform: each with: menu
+    ].
     ^ menu
 
     "Modified: / 18-10-2008 / 18:52:50 / Jan Vrany <vranyj1@fel.cvut.cz>"
     "Modified: / 10-09-2013 / 14:40:13 / cg"
+    "Modified: / 26-08-2014 / 22:43:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 compareClassWithSmallTeamVersionMenu
     <resource: #programMenu >
 
     ^ [
-	|m anyItem hosts|
-
-	m := Menu new.
-	hosts := Set new.
-	self selectedClassesValue do:[:cls |
-	    hosts addAll:(SmallTeam hostsWithChangeForClassOrMetaclass:cls theNonMetaclass).
-	].
-	hosts := hosts asOrderedCollection sort.
-	anyItem := false.
-	hosts do:[:eachHost |
-	    |item|
-
-	    item := MenuItem label:eachHost.
-	    item itemValue:#'classMenuCompareWithSmallTeamVersionOnHost:' argument:eachHost.
-	    m addItem:item.
-	    anyItem := true.
-	].
-	anyItem ifFalse:[ nil ] ifTrue:[ m ]
+        |m anyItem hosts|
+
+        m := Menu new.
+        hosts := Set new.
+        self selectedClassesValue do:[:cls |
+            hosts addAll:(SmallTeam hostsWithChangeForClassOrMetaclass:cls theNonMetaclass).
+        ].
+        hosts := hosts asOrderedCollection sort.
+        anyItem := false.
+        hosts do:[:eachHost |
+            |item|
+
+            item := MenuItem label:eachHost.
+            item itemValue:#'classMenuCompareWithSmallTeamVersionOnHost:' argument:eachHost.
+            m addItem:item.
+            anyItem := true.
+        ].
+        anyItem ifFalse:[ nil ] ifTrue:[ m ]
     ].
 
     "Created: / 11-11-2006 / 15:19:53 / cg"
@@ -49701,26 +50922,26 @@
     <resource: #programMenu >
 
     ^ [
-	|m anyItem hosts|
-
-	anyItem := false.
-	SmallTeam notNil ifTrue:[
-	    m := Menu new.
-	    hosts := Set new.
-	    self selectedMethodsValue do:[:m |
-		hosts addAll:(SmallTeam hostsWithChangeForClass:(m mclass) selector:(m selector)).
-	    ].
-	    hosts := hosts asOrderedCollection sort.
-	    hosts do:[:eachHost |
-		|item|
-
-		item := MenuItem label:eachHost.
-		item itemValue:#'selectorMenuCompareWithSmallTeamVersionOnHost:' argument:eachHost.
-		m addItem:item.
-		anyItem := true.
-	    ].
-	].
-	anyItem ifFalse:[ nil ] ifTrue:[ m ]
+        |m anyItem hosts|
+
+        anyItem := false.
+        SmallTeam notNil ifTrue:[
+            m := Menu new.
+            hosts := Set new.
+            self selectedMethodsValue do:[:m |
+                hosts addAll:(SmallTeam hostsWithChangeForClass:(m mclass) selector:(m selector)).
+            ].
+            hosts := hosts asOrderedCollection sort.
+            hosts do:[:eachHost |
+                |item|
+
+                item := MenuItem label:eachHost.
+                item itemValue:#'selectorMenuCompareWithSmallTeamVersionOnHost:' argument:eachHost.
+                m addItem:item.
+                anyItem := true.
+            ].
+        ].
+        anyItem ifFalse:[ nil ] ifTrue:[ m ]
     ].
 
     "Created: / 11-11-2006 / 15:19:18 / cg"
@@ -49730,24 +50951,24 @@
     <resource: #programMenu >
 
     ^ [
-	|m anyItem hosts|
-
-	m := Menu new.
-	hosts := Set new.
-	self selectedMethodsValue do:[:m |
-	    hosts addAll:(SmallTeam hostsWithChangeForClass:(m mclass) selector:(m selector)).
-	].
-	hosts := hosts asOrderedCollection sort.
-	anyItem := false.
-	hosts do:[:eachHost |
-	    |item|
-
-	    item := MenuItem label:eachHost.
-	    item itemValue:#'selectorMenuCompareWithSmallTeamVersionOnHost:' argument:eachHost.
-	    m addItem:item.
-	    anyItem := true.
-	].
-	anyItem ifFalse:[ nil ] ifTrue:[ m ]
+        |m anyItem hosts|
+
+        m := Menu new.
+        hosts := Set new.
+        self selectedMethodsValue do:[:m |
+            hosts addAll:(SmallTeam hostsWithChangeForClass:(m mclass) selector:(m selector)).
+        ].
+        hosts := hosts asOrderedCollection sort.
+        anyItem := false.
+        hosts do:[:eachHost |
+            |item|
+
+            item := MenuItem label:eachHost.
+            item itemValue:#'selectorMenuCompareWithSmallTeamVersionOnHost:' argument:eachHost.
+            m addItem:item.
+            anyItem := true.
+        ].
+        anyItem ifFalse:[ nil ] ifTrue:[ m ]
     ].
 
     "Created: / 11-11-2006 / 15:03:16 / cg"
@@ -49763,24 +50984,24 @@
     <resource: #programMenu >
 
     ^ [
-	|m|
-
-	FindHistory size > 0 ifTrue:[
-	    m := Menu new.
-	    FindHistory do:[:entry |
-		|item itemLabel|
-
-		itemLabel := self historyMenuItemLabelFor:entry.
-		item := MenuItem label:itemLabel.
-		item itemValue:#'switchToFindHistoryEntry:' argument:entry.
-		m addItem:item.
-		(environment classNamed:(entry className ? '?')) isBehavior ifFalse:[
-		    item enabled:false.
-		    item label:(LabelAndIcon icon:(ToolbarIconLibrary erase16x16Icon2) string:itemLabel)
-		].
-	    ].
-	].
-	m
+        |m|
+
+        FindHistory size > 0 ifTrue:[
+            m := Menu new.
+            FindHistory do:[:entry |
+                |item itemLabel|
+
+                itemLabel := self historyMenuItemLabelFor:entry.
+                item := MenuItem label:itemLabel.
+                item itemValue:#'switchToFindHistoryEntry:' argument:entry.
+                m addItem:item.
+                (environment classNamed:(entry className ? '?')) isBehavior ifFalse:[
+                    item enabled:false.
+                    item label:(LabelAndIcon icon:(ToolbarIconLibrary erase16x16Icon2) string:itemLabel)
+                ].
+            ].
+        ].
+        m
     ].
 
     "Modified: / 09-09-2012 / 13:06:07 / cg"
@@ -49788,16 +51009,16 @@
 
 followImplementorMessagesMenu
     ^ [
-	self
-	    messagesMenuFor: #'selectResponseTo:'
-	    withCurrentSelector:false
-	    withSenderChain: false
-	    withImplementorChain: false
-	    withLocalSenders: false
-	    withLocalImplementors: false
-	    withCallersOfThisMethod: false
-	    withMethodsCalledByThisMethod: false
-	    selfSendsOnly:true
+        self
+            messagesMenuFor: #'selectResponseTo:'
+            withCurrentSelector:false
+            withSenderChain: false
+            withImplementorChain: false
+            withLocalSenders: false
+            withLocalImplementors: false
+            withCallersOfThisMethod: false
+            withMethodsCalledByThisMethod: false
+            selfSendsOnly:true
       ]
 
     "Modified: / 05-09-2006 / 10:34:10 / cg"
@@ -49807,46 +51028,55 @@
     "a menu allowing to browse the referenced globals (typically: classes) of the
      selected method(s)"
 
-    |classes m|
+    |menu classes detector|
 
     classes := Set new.
 
+    detector :=
+        [:m :lit |
+            |cls ns|
+
+            lit isSymbol ifTrue:[
+                (((cls := environment at:lit) notNil and:[ cls isBehavior ])
+                "JV@2011-11-25: Added check if the nameSpace is really a namespace, it may be
+                 a class if m mclass is a privateClass...
+                 ---------------------------------------------v"
+                or:[ m mclass notNil
+                     and:[ (ns := m mclass nameSpace) notNil
+                     and:[ ns isNameSpace
+                     and:[ ns ~= Smalltalk
+                     and:[ (cls := ns at:lit) notNil  and:[ cls isBehavior ]]]]]])
+                ifTrue:[
+                    classes add:cls
+                ]
+            ] ifFalse:[
+                lit isArray ifTrue:[
+                    lit do:[:lit | detector value:m value:lit]
+                ].
+            ].
+        ].
+
     self selectedMethodsDo:[:m |
-	m literalsDo:[:lit |
-	    |cls ns|
-
-	    lit isSymbol ifTrue:[
-		(((cls := environment at:lit) notNil and:[ cls isBehavior ])
-		"JV@2011-11-25: Added check if the nameSpace is really a namespace, it may be
-		 a class if m mclass is a privateClass...
-		 ---------------------------------------------v"
-		or:[ m mclass notNil
-		     and:[ (ns := m mclass nameSpace) notNil
-		     and:[ ns isNameSpace
-		     and:[ ns ~= Smalltalk
-		     and:[ (cls := ns at:lit) notNil  and:[ cls isBehavior ]]]]]])
-		ifTrue:[
-		    classes add:cls
-		]
-	    ]
-	].
+        m literalsDo:[:lit |
+            detector value:m value:lit.
+        ].
     ].
     classes isEmpty ifTrue:[
-	^ nil
+        ^ nil
     ].
 
     classes := classes asOrderedCollection sort:[:a :b | a name < b name].
 
-    m := Menu new.
+    menu := Menu new.
     classes do:[:eachClass |
-	|item|
-
-	item := MenuItem label:eachClass name.
-	item itemValue:[ self spawnFullBrowserInClass:eachClass selector:nil in:#newBuffer ].
+        |item|
+
+        item := MenuItem label:eachClass name.
+        item itemValue:[ self spawnFullBrowserInClass:eachClass selector:nil in:#newBuffer ].
 "/        item itemValue:#'spawnBrowserOnClass:' argument:eachClass.
-	m addItem:item.
-    ].
-    ^ m
+        menu addItem:item.
+    ].
+    ^ menu
 
     "Created: / 26-10-2011 / 18:15:01 / cg"
     "Modified: / 09-09-2012 / 13:17:27 / cg"
@@ -49913,11 +51143,11 @@
 
     className := aHistoryEntry className ? '?'.
     aHistoryEntry meta ifTrue:[
-	className := className , ' class'.
+        className := className , ' class'.
     ].
     name := className allBold.
     (sel := aHistoryEntry selector) notNil ifTrue:[
-	name := name , ' ' , sel.
+        name := name , ' ' , sel.
     ].
     ^ name contractTo:100.
 
@@ -49926,13 +51156,13 @@
 
 implementedMessagesMenu
     ^ [
-	self
-	    messagesMenuFor:#'spawnBrowserOnAllImplementorsOf:'
-	    withSenderChain:false
-	    withImplementorChain:true
-	    withLocalSenders:false
-	    withLocalImplementors:true
-	    selfSendsOnly:false
+        self
+            messagesMenuFor:#'spawnBrowserOnAllImplementorsOf:'
+            withSenderChain:false
+            withImplementorChain:true
+            withLocalSenders:false
+            withLocalImplementors:true
+            selfSendsOnly:false
       ]
 
     "Modified: / 05-09-2006 / 10:34:10 / cg"
@@ -49942,24 +51172,24 @@
     <resource: #programMenu >
 
     ^ [
-	|m anyItem hosts|
-
-	m := Menu new.
-	hosts := Set new.
-	self selectedMethodsValue do:[:m |
-	    hosts addAll:(SmallTeam hostsWithChangeForClass:(m mclass) selector:(m selector)).
-	].
-	hosts := hosts asOrderedCollection sort.
-	anyItem := false.
-	hosts do:[:eachHost |
-	    |item|
-
-	    item := MenuItem label:eachHost.
-	    item itemValue:#'selectorMenuLoadSmallTeamVersionFromHost:' argument:eachHost.
-	    m addItem:item.
-	    anyItem := true.
-	].
-	anyItem ifFalse:[ nil ] ifTrue:[ m ]
+        |m anyItem hosts|
+
+        m := Menu new.
+        hosts := Set new.
+        self selectedMethodsValue do:[:m |
+            hosts addAll:(SmallTeam hostsWithChangeForClass:(m mclass) selector:(m selector)).
+        ].
+        hosts := hosts asOrderedCollection sort.
+        anyItem := false.
+        hosts do:[:eachHost |
+            |item|
+
+            item := MenuItem label:eachHost.
+            item itemValue:#'selectorMenuLoadSmallTeamVersionFromHost:' argument:eachHost.
+            m addItem:item.
+            anyItem := true.
+        ].
+        anyItem ifFalse:[ nil ] ifTrue:[ m ]
     ].
 
     "Created: / 12-11-2006 / 15:47:43 / cg"
@@ -49974,11 +51204,11 @@
 
     menu := Menu new.
     items do:[:historyEntry|
-	any := true.
-	menu addItem:
-	    (MenuItem new
-		label: historyEntry displayString;
-		itemValue:[self switchToHistoryEntry: historyEntry])
+        any := true.
+        menu addItem:
+            (MenuItem
+                label: historyEntry displayString
+                itemValue:[self switchToHistoryEntry: historyEntry])
     ].
     any ifFalse:[^ nil ].
     ^ menu
@@ -49994,6 +51224,8 @@
     withCallersOfThisMethod:withCallersOfThisMethod withMethodsCalledByThisMethod:withMethodsCalledByThisMethod
     selfSendsOnly:selfSendsOnly
 
+    "common helper for the dynamic senders & implementors (2nd-level) menus in the methodList"
+
     <resource: #programMenu >
 
     |m mthd mSel contractedSelector item l methods allMessagesSent needSep|
@@ -50004,36 +51236,36 @@
 
     (mthd notNil and:[ (mSel := mthd selector) notNil]) ifTrue:[
 
-	"/ JV: Following code should be language-specific. For Smalltalk, use the old code.
-	"/ For the rest, delegate to the language's toolbox (if any)
-	mthd programmingLanguage isSmalltalk ifFalse:[
-	    | toolbox |
-
-	    toolbox := mthd programmingLanguage toolbox.
-	    toolbox isNil ifTrue:[
-		m addItem:((MenuItem label: (resources string: 'Not supported for %1 (no toolbox)'with: mthd programmingLanguage name))
-			    enabled: false).
-		^ m.
-	    ].
-	    toolbox browser: self.
-	    toolbox environment: environment.
-	    ^ toolbox messagesMenuFor:actionSelector
-			withMethods: (Array with: mthd)
-			withMethodSelectors:withCurrentSelector
-			withSentSelectors: true
-			withSelfSelectorsOnly: selfSendsOnly
-	].
-
-	needSep := false.
-
-	contractedSelector := mSel contractTo:80.
-
-	withCurrentSelector ifTrue:[
-	    item := MenuItem label:(' ' , contractedSelector , ' ').   "/ ' ' is a kludge - to allow '-' selector
-	    item itemValue:actionSelector argument:mSel.
-	    m addItem:item.
-	    needSep := true.
-	].
+        "/ JV: Following code should be language-specific. For Smalltalk, use the old code.
+        "/ For the rest, delegate to the language's toolbox (if any)
+        mthd programmingLanguage isSmalltalk ifFalse:[
+            | toolbox |
+
+            toolbox := mthd programmingLanguage toolbox.
+            toolbox isNil ifTrue:[
+                m addItem:((MenuItem label: (resources string: 'Not supported for %1 (no toolbox)'with: mthd programmingLanguage name))
+                            enabled: false).
+                ^ m.
+            ].
+            toolbox browser: self.
+            toolbox environment: environment.
+            ^ toolbox messagesMenuFor:actionSelector
+                        withMethods: (Array with: mthd)
+                        withMethodSelectors:withCurrentSelector
+                        withSentSelectors: true
+                        withSelfSelectorsOnly: selfSendsOnly
+        ].
+
+        needSep := false.
+
+        contractedSelector := mSel contractTo:80.
+
+        withCurrentSelector ifTrue:[
+            item := MenuItem label:(' ' , contractedSelector , ' ').   "/ ' ' is a kludge - to allow '-' selector
+            item itemValue:actionSelector argument:mSel.
+            m addItem:item.
+            needSep := true.
+        ].
 "/            true "withInstanceProtocolOnly" ifTrue:[
 "/                item := MenuItem label:(resources string:' %1 - Instance Protocol Only' with:contractedSelector).
 "/                item value:actionSelector.
@@ -50047,63 +51279,63 @@
 "/                m addItem:item.
 "/            ].
 
-	(withLocalSenders or:[ withSenderChain or:[ withLocalImplementors or:[ withImplementorChain]]]) ifTrue:[
-	    needSep ifTrue:[ m addSeparator ].
-	    needSep := false.
-	].
-
-	withLocalSenders ifTrue:[
-	    "/ item := MenuItem label:(resources string:' %1 - Local Senders' with:contractedSelector).
-	    item := MenuItem label:(resources string:'Local Senders of %1' with:contractedSelector).
-	    item itemValue:#spawnLocalSendersBuffer.
-	    m addItem:item. needSep := true
-	].
-	withSenderChain ifTrue:[
-	    "/ item := MenuItem label:(resources string:' %1 - Sender Chain' with:contractedSelector).
-	    item := MenuItem label:(resources string:'Sender Chain of %1' with:contractedSelector).
-	    item itemValue:#spawnSenderChainBuffer.
-	    m addItem:item. needSep := true
-	].
-	(withCallersOfThisMethod and:[mthd isInstrumented]) ifTrue:[
-	    item := MenuItem label:(resources string:'Callers of this %1' with:contractedSelector).
-	    item itemValue:#spawnCallersBuffer.
-	    m addItem:item. needSep := true
-	].
-
-	withLocalImplementors ifTrue:[
-	    item := MenuItem label:(resources string:'Local Implementors of %1' with:contractedSelector).
-	    item itemValue:#spawnLocalImplementorsBuffer.
-	    m addItem:item. needSep := true
-	].
-	withImplementorChain ifTrue:[
-	    item := MenuItem label:(resources string:'Implementor Chain of %1' with:contractedSelector).
-	    item itemValue:#spawnImplementorChainBuffer.
-	    m addItem:item. needSep := true
-	].
-	withMethodsCalledByThisMethod ifTrue:[
-	    item := MenuItem label:(resources string:'Methods Called by %1' with:contractedSelector).
-	    item itemValue:#spawnMethodsCalledByBuffer.
-	    m addItem:item. needSep := true
-	].
-
-	selfSendsOnly ifTrue:[
-	    l := mthd messagesSentToSelf.
-	    l := l , (mthd messagesSentToSuper asArray collect:[:each | { each . mthd mclass superclass }]).
-	    l := l , ((mthd messagesPossiblySent
-			  select:[:sel | mthd mclass canUnderstand:sel])
-			    asArray collect:[:each | each colorizeAllWith:Color darkGrey]).
-	] ifFalse:[
-	    l := mthd messagesSent asArray.
-	    l := l , (mthd messagesPossiblySent asArray collect:[:each | each colorizeAllWith:Color darkGrey]).
-	].
-	l size > 0 ifTrue:[
-	    l := l asOrderedCollection sort:[:a :b |
-						|sA sB|
-						sA := a isArray ifTrue:[a first] ifFalse:[a string].
-						sB := b isArray ifTrue:[b first] ifFalse:[b string].
-						sA < sB].
-
-	    needSep ifTrue:[ m addSeparator ].
+        (withLocalSenders or:[ withSenderChain or:[ withLocalImplementors or:[ withImplementorChain]]]) ifTrue:[
+            needSep ifTrue:[ m addSeparator ].
+            needSep := false.
+        ].
+
+        withLocalSenders ifTrue:[
+            "/ item := MenuItem label:(resources string:' %1 - Local Senders' with:contractedSelector).
+            item := MenuItem label:(resources string:'Local Senders of %1' with:contractedSelector).
+            item itemValue:#spawnLocalSendersBuffer.
+            m addItem:item. needSep := true
+        ].
+        withSenderChain ifTrue:[
+            "/ item := MenuItem label:(resources string:' %1 - Sender Chain' with:contractedSelector).
+            item := MenuItem label:(resources string:'Sender Chain of %1' with:contractedSelector).
+            item itemValue:#spawnSenderChainBuffer.
+            m addItem:item. needSep := true
+        ].
+        (withCallersOfThisMethod and:[mthd isInstrumented]) ifTrue:[
+            item := MenuItem label:(resources string:'Callers of this %1' with:contractedSelector).
+            item itemValue:#spawnCallersBuffer.
+            m addItem:item. needSep := true
+        ].
+
+        withLocalImplementors ifTrue:[
+            item := MenuItem label:(resources string:'Local Implementors of %1' with:contractedSelector).
+            item itemValue:#spawnLocalImplementorsBuffer.
+            m addItem:item. needSep := true
+        ].
+        withImplementorChain ifTrue:[
+            item := MenuItem label:(resources string:'Implementor Chain of %1' with:contractedSelector).
+            item itemValue:#spawnImplementorChainBuffer.
+            m addItem:item. needSep := true
+        ].
+        withMethodsCalledByThisMethod ifTrue:[
+            item := MenuItem label:(resources string:'Methods Called by %1' with:contractedSelector).
+            item itemValue:#spawnMethodsCalledByBuffer.
+            m addItem:item. needSep := true
+        ].
+
+        selfSendsOnly ifTrue:[
+            l := mthd messagesSentToSelf.
+            l := l , (mthd messagesSentToSuper asArray collect:[:each | { each . mthd mclass superclass }]).
+            l := l , ((mthd messagesPossiblySent
+                          select:[:sel | mthd mclass canUnderstand:sel])
+                            asArray collect:[:each | each colorizeAllWith:Color darkGray]).
+        ] ifFalse:[
+            l := mthd messagesSent asArray.
+            l := l , (mthd messagesPossiblySent asArray collect:[:each | each colorizeAllWith:Color darkGray]).
+        ].
+        l size > 0 ifTrue:[
+            l := l asOrderedCollection sort:[:a :b |
+                                                |sA sB|
+                                                sA := a isArray ifTrue:[a first] ifFalse:[a string].
+                                                sB := b isArray ifTrue:[b first] ifFalse:[b string].
+                                                sA < sB].
+
+            needSep ifTrue:[ m addSeparator ].
 
 "/            (l size > 30) ifTrue:[
 "/                l removeAllFoundIn:#(ifTrue: ifFalse: ifTrue:ifFalse: ifFalse:ifTrue:
@@ -50120,120 +51352,123 @@
 "/                l := l copyTo:30
 "/            ].
 
-	    l do:[:eachMessageOrPair |
-		|selector class label arg|
-
-		eachMessageOrPair isArray ifTrue:[
-		    selector := eachMessageOrPair first.
-		    class := eachMessageOrPair second.
-		    arg := eachMessageOrPair.
-		] ifFalse:[
-		    selector := eachMessageOrPair.
-		    arg := eachMessageOrPair string asSymbol.
-		].
-		label := (selector contractTo:100).
-		class notNil ifTrue:[
-		    label := label , ' (super)'.
-		].
-		item := MenuItem label:(' ' , label, ' ').  "/ ' ' is a kludge - to allow '-' selector (i.e. not confuse with separator)
-		item itemValue:actionSelector argument:arg.
-		m addItem:item.
-	    ].
+            l do:[:eachMessageOrPair |
+                |selector class label arg|
+
+                eachMessageOrPair isArray ifTrue:[
+                    selector := eachMessageOrPair first.
+                    class := eachMessageOrPair second.
+                    arg := eachMessageOrPair.
+                ] ifFalse:[
+                    selector := eachMessageOrPair.
+                    arg := eachMessageOrPair string asSymbol.
+                ].
+                label := (selector contractTo:100).
+                class notNil ifTrue:[
+                    label := label , ' (super)'.
+                ].
+                item := MenuItem label:(' ' , label, ' ').  "/ ' ' is a kludge - to allow '-' selector (i.e. not confuse with separator)
+                item itemValue:actionSelector argument:arg.
+                m addItem:item.
+            ].
 
 "/            cut ifTrue:[
 "/                m addItem:(MenuItem label:'-').
 "/                m addItem:(MenuItem label:'<< more items ignored >>').
 "/            ]
-	]
-    ] ifFalse:[
-	| methodsPerLanguage |
-
-	allMessagesSent := Set new.
-
-	"/ not exactly one method selected;
-	"/ generate a menu for all selected method's implementors and sent messages.
-	methods := self selectedMethodsValue.
-	methods isEmptyOrNil ifTrue:[
-	    methods := OrderedCollection new.
-	    self selectedClassesDo:[:cls |
-		cls methodsDo:[:eachMethod | methods add:eachMethod].
-	    ].
-	].
-	methodsPerLanguage := Dictionary new.
-	methods do:[:each |
-	    (methodsPerLanguage at: each programmingLanguage ifAbsentPut:[Set new]) add: each.
-	].
-	methodsPerLanguage keysAndValuesDo:[:language :methods |
-	    language isSmalltalk ifTrue:[
-		"/ Do it as before...
-		methods do:[:eachMethod |
-		    mSel := eachMethod selector ? '?'.
-		    contractedSelector := mSel contractTo:80.
-
-		    item := MenuItem label:(' ' , contractedSelector , ' ').   "/ ' ' is a kludge - to allow '-' selector
-		    item itemValue:actionSelector argument:mSel.
-		    m addItem:item.
-
-		    selfSendsOnly ifTrue:[
-			allMessagesSent addAll:(eachMethod messagesSentToSelf).
-		    ] ifFalse:[
-			allMessagesSent addAll:(eachMethod messagesSent).
-		    ].
-		].
-	    ] ifFalse:[
-		"/ Not a Smalltalk, must ask toolbox
-		| toolbox |
-
-		toolbox := language toolbox.
-		toolbox environment: environment.
-		toolbox notNil ifTrue:[
-		    m addItemsFrom:
-			(toolbox messagesMenuFor:actionSelector
-				    withMethods: methods
-				    withMethodSelectors:true
-				    withSentSelectors: false
-				    withSelfSelectorsOnly: selfSendsOnly)
-		].
-	    ].
-	].
-
-	needSep := true.
-	methodsPerLanguage keysAndValuesDo:[:language :methods |
-	    language isSmalltalk ifTrue:[
-		"/ Do it as before...
-		allMessagesSent := allMessagesSent asSortedCollection.
-		allMessagesSent size > 0 ifTrue:[
-		    needSep ifTrue:[
-			m addSeparator.
-			needSep := false.
-		    ].
-		    allMessagesSent do:[:eachMessage |
-			item := MenuItem label:(' ' , (eachMessage contractTo:100), ' ').  "/ ' ' is a kludge - to allow '-' selector
-			item itemValue:actionSelector argument:eachMessage asSymbol.
-			m addItem:item.
-		    ].
-		].
-	    ] ifFalse:[
-		"/ Not a Smalltalk, must ask toolbox
-		| toolbox |
-
-		toolbox := language toolbox.
-		toolbox notNil ifTrue:[
-		    | lm |
-
-		    lm := toolbox messagesMenuFor:actionSelector
-				withMethods: methods
-				withMethodSelectors:false
-				withSentSelectors: true
-				withSelfSelectorsOnly: selfSendsOnly.
-		    (lm items notEmptyOrNil and:[needSep]) ifTrue:[
-			m addSeparator.
-			needSep := false.
-		    ].
-		    m addItemsFrom: lm.
-		].
-	    ].
-	].
+        ]
+    ] ifFalse:[
+        | methodsPerLanguage |
+
+        allMessagesSent := Set new.
+
+        "/ not exactly one method selected;
+        "/ generate a menu for all selected method's implementors and sent messages.
+        methods := self selectedMethodsValue.
+        methods isEmptyOrNil ifTrue:[
+            methods := OrderedCollection new.
+            self selectedClassesDo:[:cls |
+                cls methodsDo:[:eachMethod | methods add:eachMethod].
+            ].
+        ].
+        methodsPerLanguage := Dictionary new.
+        methods do:[:each |
+            (methodsPerLanguage at: each programmingLanguage ifAbsentPut:[Set new]) add: each.
+        ].
+        methodsPerLanguage keysAndValuesDo:[:language :methods |
+            language isSmalltalk ifTrue:[
+                "/ Do it as before...
+                (methods asNewOrderedCollection sortBySelector:#selector) do:[:eachMethod |
+                    |methodsMessages mSel contractedSelector item|
+
+                    mSel := eachMethod selector ? '?'.
+                    contractedSelector := mSel contractTo:80.
+
+                    item := MenuItem label:(' ' , contractedSelector , ' ').   "/ ' ' is a kludge - to allow '-' selector
+                    item itemValue:actionSelector argument:mSel.
+                    m addItem:item.
+
+                    selfSendsOnly ifTrue:[
+                        methodsMessages := eachMethod messagesSentToSelf.
+                    ] ifFalse:[
+                        methodsMessages := eachMethod messagesSent.
+                    ].
+                    allMessagesSent addAll:methodsMessages
+                ].
+            ] ifFalse:[
+                "/ Not a Smalltalk, must ask toolbox
+                | toolbox |
+
+                toolbox := language toolbox.
+                toolbox environment: environment.
+                toolbox notNil ifTrue:[
+                    m addItemsFrom:
+                        (toolbox messagesMenuFor:actionSelector
+                                    withMethods: methods
+                                    withMethodSelectors:true
+                                    withSentSelectors: false
+                                    withSelfSelectorsOnly: selfSendsOnly)
+                ].
+            ].
+        ].
+
+        needSep := true.
+        methodsPerLanguage keysAndValuesDo:[:language :methods |
+            language isSmalltalk ifTrue:[
+                "/ Do it as before...
+                allMessagesSent := allMessagesSent asSortedCollection.
+                allMessagesSent size > 0 ifTrue:[
+                    needSep ifTrue:[
+                        m addSeparator.
+                        needSep := false.
+                    ].
+                    allMessagesSent do:[:eachMessage |
+                        item := MenuItem label:(' ' , (eachMessage contractTo:100), ' ').  "/ ' ' is a kludge - to allow '-' selector
+                        item itemValue:actionSelector argument:eachMessage asSymbol.
+                        m addItem:item.
+                    ].
+                ].
+            ] ifFalse:[
+                "/ Not a Smalltalk, must ask toolbox
+                | toolbox |
+
+                toolbox := language toolbox.
+                toolbox notNil ifTrue:[
+                    | lm |
+
+                    lm := toolbox messagesMenuFor:actionSelector
+                                withMethods: methods
+                                withMethodSelectors:false
+                                withSentSelectors: true
+                                withSelfSelectorsOnly: selfSendsOnly.
+                    (lm items notEmptyOrNil and:[needSep]) ifTrue:[
+                        m addSeparator.
+                        needSep := false.
+                    ].
+                    m addItemsFrom: lm.
+                ].
+            ].
+        ].
     ].
     ^ m
 
@@ -50244,23 +51479,23 @@
 
 messagesMenuFor:actionSelector withSenderChain:withSenderChain withImplementorChain:withImplementorChain
     ^ self
-	messagesMenuFor:actionSelector
-	withSenderChain:withSenderChain
-	withImplementorChain:withImplementorChain
-	selfSendsOnly:false
+        messagesMenuFor:actionSelector
+        withSenderChain:withSenderChain
+        withImplementorChain:withImplementorChain
+        selfSendsOnly:false
 
     "Modified: / 05-09-2006 / 10:26:26 / cg"
 !
 
 messagesMenuFor:actionSelector withSenderChain:withSenderChain withImplementorChain:withImplementorChain selfSendsOnly:selfSendsOnly
     ^ [
-	self
-	    messagesMenuFor:actionSelector
-	    withSenderChain:withSenderChain
-	    withImplementorChain:withImplementorChain
-	    withLocalSenders:false
-	    withLocalImplementors:false
-	    selfSendsOnly:selfSendsOnly
+        self
+            messagesMenuFor:actionSelector
+            withSenderChain:withSenderChain
+            withImplementorChain:withImplementorChain
+            withLocalSenders:false
+            withLocalImplementors:false
+            selfSendsOnly:selfSendsOnly
       ]
 
     "Modified: / 05-09-2006 / 10:33:05 / cg"
@@ -50272,14 +51507,14 @@
     selfSendsOnly:selfSendsOnly
 
     ^ self
-	messagesMenuFor: actionSelector
-	withSenderChain: withSenderChain
-	withImplementorChain: withImplementorChain
-	withLocalSenders: withLocalSenders
-	withLocalImplementors: withLocalImplementors
-	withCallersOfThisMethod: true "false"
-	withMethodsCalledByThisMethod: false "/ not yet implemented
-	selfSendsOnly:selfSendsOnly
+        messagesMenuFor: actionSelector
+        withSenderChain: withSenderChain
+        withImplementorChain: withImplementorChain
+        withLocalSenders: withLocalSenders
+        withLocalImplementors: withLocalImplementors
+        withCallersOfThisMethod: true "false"
+        withMethodsCalledByThisMethod: false "/ not yet implemented
+        selfSendsOnly:selfSendsOnly
 
     "Modified: / 27-07-2012 / 18:33:52 / cg"
 !
@@ -50293,12 +51528,12 @@
     <resource: #programMenu >
 
     ^ self
-	messagesMenuFor:actionSelector
-	withCurrentSelector:true
-	withSenderChain:withSenderChain withImplementorChain:withImplementorChain
-	withLocalSenders:withLocalSenders withLocalImplementors:withLocalImplementors
-	withCallersOfThisMethod:withCallersOfThisMethod withMethodsCalledByThisMethod:withMethodsCalledByThisMethod
-	selfSendsOnly:selfSendsOnly
+        messagesMenuFor:actionSelector
+        withCurrentSelector:true
+        withSenderChain:withSenderChain withImplementorChain:withImplementorChain
+        withLocalSenders:withLocalSenders withLocalImplementors:withLocalImplementors
+        withCallersOfThisMethod:withCallersOfThisMethod withMethodsCalledByThisMethod:withMethodsCalledByThisMethod
+        selfSendsOnly:selfSendsOnly
 !
 
 operationsMenu
@@ -50308,53 +51543,53 @@
       lRedo lUndo undoListMenu|
 
     (self canUseRefactoringSupport) ifFalse:[
-	^
-	 #(#Menu
-	    #(
-	     #(#MenuItem
-		#label: 'Load Refactoring and Undo Features'
-		#translateLabel: true
-		#showBusyCursorWhilePerforming: true
-		#value: #doLoadRefactoringSupport
-	      )
-	     )
-	    nil
-	    nil
-	  )
+        ^
+         #(#Menu
+            #(
+             #(#MenuItem
+                #label: 'Load Refactoring and Undo Features'
+                #translateLabel: true
+                #showBusyCursorWhilePerforming: true
+                #value: #doLoadRefactoringSupport
+              )
+             )
+            nil
+            nil
+          )
     ].
 
     manager := RefactoryChangeManager instance.
     menu := Menu new.
 
     lUndo := (manager hasUndoableOperations
-	    ifTrue: [resources string:'Undo: %1' with:(manager undoChange name contractTo:100)]
-	    ifFalse: [resources string:'Undo']).
+            ifTrue: [resources string:'Undo: %1' with:(manager undoChange name contractTo:100)]
+            ifFalse: [resources string:'Undo']).
 
     item := MenuItem
-		label:lUndo
-		itemValue:[ self operationsMenuUndo ].
+                label:lUndo
+                itemValue:[ self operationsMenuUndo ].
     item showBusyCursorWhilePerforming:true.
     manager hasUndoableOperations ifFalse: [item disable].
     menu addItem:item.
 
     lRedo := (manager hasRedoableOperations
-	    ifTrue: [resources string:'Redo: %1' with:(manager redoChange name contractTo:100)]
-	    ifFalse: [resources string:'Redo']).
+            ifTrue: [resources string:'Redo: %1' with:(manager redoChange name contractTo:100)]
+            ifFalse: [resources string:'Redo']).
 
     item := MenuItem
-		label:lRedo
-		itemValue:[ self operationsMenuRedo ].
+                label:lRedo
+                itemValue:[ self operationsMenuRedo ].
     item showBusyCursorWhilePerforming:true.
     manager hasRedoableOperations ifFalse: [item disable].
     menu addItem:item.
 
     undoListMenu := Menu new.
     manager undoableOperations reverseDo:[:eachUndoChange |
-	item := MenuItem
-		    label:(eachUndoChange name contractTo:100)
-		    itemValue:[ self operationsMenuUndo:eachUndoChange ].
-	item showBusyCursorWhilePerforming:true.
-	undoListMenu addItem:item.
+        item := MenuItem
+                    label:(eachUndoChange name contractTo:100)
+                    itemValue:[ self operationsMenuUndo:eachUndoChange ].
+        item showBusyCursorWhilePerforming:true.
+        undoListMenu addItem:item.
     ].
     item := MenuItem label:(resources string:'Undo Recent').
     item submenu:undoListMenu.
@@ -50362,14 +51597,14 @@
     menu addItem:item.
 
     undoCountMenuItem := MenuItem
-			    label: (resources string:'Set Undo Count...')
-			    itemValue: [self setUndoCount].
+                            label: (resources string:'Set Undo Count...')
+                            itemValue: [self setUndoCount].
     menu addItemGroup: (Array with: undoCountMenuItem).
 
     cleanChangesForClassItem := MenuItem
-				    label: (resources string:'Remove Class from ChangeSet...')
-				    itemValue: [self classMenuCleanUpChangeSet]
-				    enabled: self hasClassSelectedHolder.
+                                    label: (resources string:'Remove Class from ChangeSet...')
+                                    itemValue: [self classMenuCleanUpChangeSet]
+                                    enabled: self hasClassSelectedHolder.
     menu addItemGroup: (Array with: cleanChangesForClassItem).
     ^menu
 
@@ -50382,42 +51617,51 @@
     "a menu showing other browsers, and allowing them to be reactivated"
 
     ^ [
-	|m selected submenu subItem|
-
-	m := Menu new.
-	self class allInstancesDo:[:brwsr |
-	    |item subMenu|
-
-	    (brwsr window notNil
-	    and:[ brwsr window isTopView ]) ifTrue:[
-		item := MenuItem label:'"',brwsr window label,'"'.
-		item itemValue:[:i | brwsr window raiseDeiconified ].
-
-		brwsr bufferNameList keysAndValuesDo:[:idx :eachBufferName |
-		    idx ~~ brwsr selectedBuffer value ifTrue:[
-			|subItem|
-
-			subMenu isNil ifTrue:[
-			    subMenu := Menu new.
-			    item submenu:subMenu.
-			].
-			subItem := MenuItem
-				    label:(eachBufferName)
-				    itemValue:[:i |
-					brwsr window raiseDeiconified.
-					brwsr selectedBuffer value:idx
-				    ].
-			subMenu addItem:subItem.
-		    ].
-		].
-		subMenu notNil ifTrue:[
-		    item submenu:subMenu.
-		].
-		m addItem:item.
-	    ]
-	].
-	m items sort:[:a :b | a label < b label].
-	m
+        |m selected submenu any|
+
+        any := false.
+        m := Menu new.
+        self class allInstancesDo:[:brwsr |
+            |item subMenu|
+
+            (brwsr ~~ self
+            and:[ brwsr window notNil
+            and:[ brwsr window isTopView
+            and:[ brwsr windowGroup notNil
+            and:[ brwsr window isOpen ]]]]) ifTrue:[
+                item := MenuItem label:'"',brwsr window label,'"'.
+                item itemValue:[:i | brwsr window raiseDeiconified ].
+                brwsr bufferNameList size == 1 ifTrue:[
+                ] ifFalse:[
+                    brwsr bufferNameList keysAndValuesDo:[:idx :eachBufferName |
+                        true "idx ~~ brwsr selectedBuffer value" ifTrue:[
+                            |subItem|
+
+                            subMenu isNil ifTrue:[
+                                subMenu := Menu new.
+                                item submenu:subMenu.
+                            ].
+                            subItem := MenuItem
+                                        label:(eachBufferName)
+                                        itemValue:[:i |
+                                            brwsr window raiseDeiconified.
+                                            brwsr selectedBuffer value:idx
+                                        ].
+                            subMenu addItem:subItem.
+                        ].
+                    ].
+                    subMenu notNil ifTrue:[
+                        item submenu:subMenu.
+                    ].
+                ].
+                m addItem:item.
+                any := true.
+            ]
+        ].
+        any ifTrue:[
+            m items sort:[:a :b | a label < b label].
+        ].
+        m
     ].
 
     "Modified: / 09-09-2012 / 20:43:01 / cg"
@@ -50429,39 +51673,77 @@
 
     | menu |
 
-    menu := self class projectMenu decodeAsLiteralArray.
+    menu := self menuFor: #projectMenu.
     menu receiver:self.
     menu findGuiResourcesIn:self.
     ^ menu
 
     "Created: / 18-02-2000 / 12:17:28 / cg"
-    "Modified: / 12-10-2011 / 20:31:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 25-01-2014 / 12:18:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+recentlyClosedMenu
+    <resource: #programMenu >
+
+    "a menu showing entries for recently closed page's locations, and allowing them to be reopened"
+
+    ^ [
+        |m|
+
+        self closeHistory notEmptyOrNil ifTrue:[
+            m := Menu new.
+            self closeHistory do:[:historyEntry |
+                |item itemLabel|
+
+                itemLabel := self historyMenuItemLabelFor:historyEntry.
+                item := MenuItem label:itemLabel.
+                item
+                    itemValue:[:i |
+                        |cls|
+
+                        cls := historyEntry theClass.
+                        historyEntry meta ifTrue:[
+                            cls := cls theMetaclass
+                        ].
+
+                        self
+                            spawnFullBrowserInClass:cls
+                            selector:historyEntry selector
+                            in:#newBuffer
+                    ].
+                m addItem:item.
+            ].
+        ].
+        m
+    ].
+
+    "Modified: / 02-05-2014 / 17:49:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 selectedClassesHierarchyMenu
     <resource: #programMenu >
 
     ^ [
-	|m cls classes first|
-
-	cls := self theSingleSelectedClass.
-	(cls notNil and:[cls superclass notNil]) ifTrue:[
-	    m := Menu new.
-	    cls := cls superclass.
-	    first := true.
-	    [cls notNil] whileTrue:[
-		|item className|
-
-		className := cls name.
-		item := MenuItem label:(first ifTrue:[className,' (direct superclass)'] ifFalse:[className]).
-		m addItem:item beforeIndex:1.   "/ reverse
-		item value:#'switchToClassNamed:'.
-		item argument:className.
-		cls := cls superclass.
-		first := false.
-	    ].
-	].
-	m
+        |m cls classes first|
+
+        cls := self theSingleSelectedClass.
+        (cls notNil and:[cls superclass notNil]) ifTrue:[
+            m := Menu new.
+            cls := cls superclass.
+            first := true.
+            [cls notNil] whileTrue:[
+                |item className|
+
+                className := cls name.
+                item := MenuItem label:(first ifTrue:[className,' (direct superclass)'] ifFalse:[className]).
+                m addItem:item beforeIndex:1.   "/ reverse
+                item value:#'switchToClassNamed:'.
+                item argument:className.
+                cls := cls superclass.
+                first := false.
+            ].
+        ].
+        m
     ].
 
     "Modified: / 05-02-2012 / 10:30:03 / cg"
@@ -50472,37 +51754,37 @@
     |m selectedClasses currentLanguage allLanguages|
 
     (selectedClasses := self selectedClasses value) notEmptyOrNil ifTrue:[
-	selectedClasses size == 1 ifTrue:[
-	    "/Single class selected
-	    currentLanguage := selectedClasses anElement programmingLanguage.
-	] ifFalse:[
-	    "/Multiple class selected, be strict here
-	    currentLanguage := nil."/unknown
-	].
-    ] ifFalse:[
-	currentLanguage := nil."/unknown
+        selectedClasses size == 1 ifTrue:[
+            "/Single class selected
+            currentLanguage := selectedClasses anElement programmingLanguage.
+        ] ifFalse:[
+            "/Multiple class selected, be strict here
+            currentLanguage := nil."/unknown
+        ].
+    ] ifFalse:[
+        currentLanguage := nil."/unknown
     ].
 
     allLanguages := OrderedCollection new.
     ProgrammingLanguage allDo:[:eachLanguage |
-	eachLanguage isSmalltalk ifFalse:[
-	    allLanguages add:eachLanguage
-	]
+        eachLanguage isSmalltalk ifFalse:[
+            allLanguages add:eachLanguage
+        ]
     ].
     allLanguages sort:[:a :b | a name < b name].
 
     m := Menu new.
     m addItem:(MenuItem
-		label:'Smalltalk Method'
-		value:[self selectorMenuNewMethod: SmalltalkLanguage instance]).
+                label:'Smalltalk Method'
+                value:[self selectorMenuNewMethod: SmalltalkLanguage instance]).
 
     allLanguages do:[:eachLanguage |
-	eachLanguage compilerClass notNil ifTrue:[
-	    m addItem:((MenuItem
-			label:(eachLanguage name) , ' Method'
-			value:[self selectorMenuNewMethod: eachLanguage])
-			enabled: (eachLanguage supportsExtensionMethods or:[eachLanguage = currentLanguage]))
-	]
+        eachLanguage compilerClass notNil ifTrue:[
+            m addItem:((MenuItem
+                        label:(eachLanguage name) , ' Method'
+                        value:[self selectorMenuNewMethod: eachLanguage])
+                        enabled: (eachLanguage supportsExtensionMethods or:[eachLanguage = currentLanguage]))
+        ]
     ].
     ^ m
 
@@ -50513,13 +51795,13 @@
 
 sentMessagesMenu
     ^ [
-	self
-	    messagesMenuFor:#'spawnBrowserOnAllSendersOf:'
-	    withSenderChain:true "(self window sensor ctrlDown)"
-	    withImplementorChain:false
-	    withLocalSenders:true
-	    withLocalImplementors:false
-	    selfSendsOnly:false
+        self
+            messagesMenuFor:#'spawnBrowserOnAllSendersOf:'
+            withSenderChain:true "(self window sensor ctrlDown)"
+            withImplementorChain:false
+            withLocalSenders:true
+            withLocalImplementors:false
+            selfSendsOnly:false
       ]
 
     "Modified: / 05-09-2006 / 10:33:41 / cg"
@@ -50527,10 +51809,10 @@
 
 sentMessagesResponseMenu
     ^ self
-	messagesMenuFor:#'findResponseTo:'
-	withSenderChain:false
-	withImplementorChain:false
-	selfSendsOnly:true
+        messagesMenuFor:#'findResponseTo:'
+        withSenderChain:false
+        withImplementorChain:false
+        selfSendsOnly:true
 
     "Modified: / 05-09-2006 / 10:33:49 / cg"
 !
@@ -50539,21 +51821,26 @@
 
     <resource: #programMenu>
 
-    | menu |
+    | menu item |
     menu := Menu decodeFromLiteralArray: self class toolBarMenu.
-    (menu menuItemWithValue: #goBack)
-	submenuChannel:[self goBackMenu].
-    (menu menuItemWithValue: #goBackInGlobalHistory)
-	submenuChannel:[self goBackInGlobalHistoryMenu].
-    (menu menuItemWithValue: #goForward)
-	submenuChannel:[self goForwardMenu].
+    item := menu menuItemWithValue: #goBack.
+    item notNil ifTrue:[item submenuChannel:[self goBackMenu]].
+
+    item := menu menuItemWithValue: #goBackInGlobalHistory.
+    item notNil ifTrue:[item submenuChannel:[self goBackInGlobalHistoryMenu] ].
+    item := menu menuItemWithValue: #goForward.
+    item notNil ifTrue:[item submenuChannel:[self goForwardMenu] ].
 "/ no, I explicitly do not want this
 "/    (menu menuItemWithValue: #goForwardInGlobalHistory)
 "/        submenuChannel:[self goForwardInGlobalHistoryMenu].
+
+    item := menu menuItemWithValue: #runLint.
+    item notNil ifTrue:[item submenuChannel:[ (Menu decodeFromLiteralArray: self class toolBarMenuLint) findGuiResourcesIn: self; yourself] ].
     ^menu
 
     "Created: / 22-02-2008 / 17:00:05 / janfrog"
     "Modified: / 03-07-2011 / 14:40:57 / cg"
+    "Modified: / 27-11-2014 / 16:01:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 variablesMenu
@@ -50561,36 +51848,38 @@
 
     | menu |
 
-    menu := self class variablesMenu decodeAsLiteralArray.
+    menu := self menuFor: #variablesMenu.
     menu receiver:self.
     menu findGuiResourcesIn:self.
     ^ menu
+
+    "Modified: / 25-01-2014 / 12:19:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 visitedClassesMenu
     <resource: #programMenu >
 
     ^ [
-	|m classHistory currentClass|
-
-	currentClass := self theSingleSelectedClass.
-	classHistory := self class classHistory.
-	classHistory notEmpty ifTrue:[
-	    m := Menu new.
-	    classHistory do:[:entry |
-		|item className|
-
-		className := entry className ? ''.
-		(currentClass notNil
-		and:[currentClass name = className])
-		ifFalse:[
-		    item := MenuItem label:(className contractTo:100).
-		    item itemValue:#'switchToHistoryEntry:' argument:entry.
-		    m addItem:item.
-		].
-	    ].
-	].
-	m
+        |m classHistory currentClass|
+
+        currentClass := self theSingleSelectedClass.
+        classHistory := self class classHistory.
+        classHistory notEmpty ifTrue:[
+            m := Menu new.
+            classHistory do:[:entry |
+                |item className|
+
+                className := entry className ? ''.
+                (currentClass notNil
+                and:[currentClass name = className])
+                ifFalse:[
+                    item := MenuItem label:(className contractTo:100).
+                    item itemValue:#'switchToHistoryEntry:' argument:entry.
+                    m addItem:item.
+                ].
+            ].
+        ].
+        m
     ].
 
     "Modified: / 09-09-2012 / 13:24:04 / cg"
@@ -50598,6 +51887,14 @@
 
 !NewSystemBrowser methodsFor:'menus-dynamic-SCM'!
 
+categoryMenuSCMCommon
+    |menu|
+
+    menu := self class categoryMenuSCMCommon decodeAsLiteralArray.
+    self replaceSourceCodeManagerPlaceholderWith: SourceCodeManager in: menu.
+    ^ menu
+!
+
 categoryMenuSCMFor: sourceCodeManagerClassName
     "insert the sourcecode manager name"
 
@@ -50606,24 +51903,27 @@
     |manager menu |
 
     sourceCodeManagerClassName isBehavior ifTrue:[
-	manager := sourceCodeManagerClassName
-    ] ifFalse:[
-	manager := Smalltalk at: sourceCodeManagerClassName.
+        manager := sourceCodeManagerClassName
+    ] ifFalse:[
+        sourceCodeManagerClassName notNil ifTrue:[
+            manager := Smalltalk at: sourceCodeManagerClassName.
+        ].
     ].
     manager isNil ifTrue:[
-	menu := Menu new.
-	menu addItem:
-	    (MenuItem
-		label: (resources string: 'Unavailable - Configure SCM')
-		value: [self openSettingsDialogAndSelectSourceCodeManagement])
-    ] ifFalse:[
-	menu := self class categoryMenuSCMCommon decodeAsLiteralArray.
+        menu := Menu new.
+        menu addItem:
+            (MenuItem
+                label: (resources string: 'Unavailable - Configure SCM')
+                itemValue: [self openSettingsDialogAndSelectSourceCodeManagement])
+    ] ifFalse:[
+        menu := self menuFor: #categoryMenuSCMCommon.
     ].
     self replaceSourceCodeManagerPlaceholderWith: manager in: menu.
 
     ^ menu
 
     "Created: / 15-10-2011 / 12:23:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 31-01-2014 / 02:22:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 categoryMenuSCMSlice
@@ -50631,15 +51931,32 @@
     <resource: #programMenu>
 
     ^self
-	commonMenuSCMSliceNamed: #categoryMenuSCMSlice
-	computeManagerWith:
-	    [:managersInOutCollection|
-	    self selectedCategoryClassesDo: [:cls|
-		| mgr |
-
-		mgr := cls theNonMetaclass sourceCodeManager.
-		mgr isNil ifFalse:[managersInOutCollection add: mgr]
-	    ]].
+        commonMenuSCMSliceNamed: #categoryMenuSCMSlice
+        computeManagerWith:
+            [:managersInOutCollection|
+                |packagesAlready|
+
+                "/ as packages typically consist of many classes,
+                "/ do it by package; not by class.
+                "/ otherwise, some things become very slow
+                "/ (especially: menu-opening and shortCut finding)
+                "/ when many or all categories are selected.
+                packagesAlready := Set new.
+                self selectedCategoryClassesDo: [:cls|
+                    | package mgr |
+
+                    package := cls package.
+                    package notNil ifTrue:[
+                        (packagesAlready includes:package) ifFalse:[
+                            mgr := cls sourceCodeManager.
+                            mgr notNil ifTrue:[
+                                managersInOutCollection add: mgr
+                            ].
+                            packagesAlready add:package.
+                        ]
+                    ]
+                ]
+            ].
 
     "Created: / 19-04-2011 / 14:29:47 / cg"
     "Created: / 15-10-2011 / 12:31:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -50656,11 +51973,12 @@
 classGitMenu
     |menu|
 
-    menu := self class classGitMenu decodeAsLiteralArray.
+    menu := self menuFor: #classGitMenu.
     self replaceSourceCodeManagerPlaceholderWith: GitSourceCodeManager in: menu.
     ^ menu
 
     "Created: / 23-07-2012 / 15:10:12 / cg"
+    "Modified: / 25-01-2014 / 12:17:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 classMenuSCMExtraFor: sourceCodeManagerClassName
@@ -50670,25 +51988,28 @@
     |manager spec menu |
 
     sourceCodeManagerClassName isBehavior ifTrue:[
-	manager := sourceCodeManagerClassName
-    ] ifFalse:[
-	manager := Smalltalk at: sourceCodeManagerClassName.
-	manager isNil ifTrue:[
-	    ^Menu new
-	].
+        manager := sourceCodeManagerClassName
+    ] ifFalse:[
+        sourceCodeManagerClassName notNil ifTrue:[
+            manager := Smalltalk at: sourceCodeManagerClassName.
+        ].
+        manager isNil ifTrue:[
+            ^Menu new
+        ].
     ].
     spec := self class perform: ('classMenuSCMExtra_' , manager managerTypeNameShort) asSymbol ifNotUnderstood:[nil].
     spec notNil ifTrue:[
-	menu := spec decodeAsLiteralArray.
-	menu receiver:self.
-	menu findGuiResourcesIn:self.
-	menu addItem: (MenuItem separator) beforeIndex: 1
-    ] ifFalse:[
-	menu := Menu new.
+        menu := spec decodeAsLiteralArray.
+        menu receiver:self.
+        menu findGuiResourcesIn:self.
+        menu addItem: (MenuItem separator) beforeIndex: 1
+    ] ifFalse:[
+        menu := Menu new.
     ].
     ^menu
 
     "Created: / 12-10-2011 / 16:04:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 31-01-2014 / 02:23:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 classMenuSCMExtraForManagerNamed:sourceCodeManagerClassName
@@ -50698,26 +52019,29 @@
     |manager spec menu |
 
     sourceCodeManagerClassName isBehavior ifTrue:[
-	manager := sourceCodeManagerClassName
-    ] ifFalse:[
-	manager := Smalltalk at: sourceCodeManagerClassName.
-	manager isNil ifTrue:[
-	    ^ Menu new
-	].
+        manager := sourceCodeManagerClassName
+    ] ifFalse:[
+        sourceCodeManagerClassName notNil ifTrue:[
+            manager := Smalltalk at: sourceCodeManagerClassName.
+        ].
+        manager isNil ifTrue:[
+            ^ Menu new
+        ].
     ].
     spec := self class perform: ('classMenuSCMExtra_' , manager managerTypeNameShort) asSymbol ifNotUnderstood:[nil].
     spec notNil ifTrue:[
-	menu := spec decodeAsLiteralArray.
-	menu receiver:self.
-	menu findGuiResourcesIn:self.
-	menu addItem: (MenuItem separator) beforeIndex: 1
-    ] ifFalse:[
-	menu := Menu new.
+        menu := spec decodeAsLiteralArray.
+        menu receiver:self.
+        menu findGuiResourcesIn:self.
+        menu addItem: (MenuItem separator) beforeIndex: 1
+    ] ifFalse:[
+        menu := Menu new.
     ].
     ^menu
 
     "Created: / 12-10-2011 / 16:04:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Created: / 21-12-2011 / 20:01:27 / cg"
+    "Modified: / 31-01-2014 / 02:23:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 classMenuSCMFor: sourceCodeManagerClassName
@@ -50725,27 +52049,32 @@
 
     <resource: #programMenu>
 
-    |manager menu |
-
-    sourceCodeManagerClassName isBehavior ifTrue:[
-	manager := sourceCodeManagerClassName
-    ] ifFalse:[
-	manager := Smalltalk at: sourceCodeManagerClassName.
-    ].
-    manager isNil ifTrue:[
-	menu := Menu new.
-	menu addItem:
-	    (MenuItem
-		label: (resources string: 'Unavailable - Configure SCM')
-		value: [self openSettingsDialogAndSelectSourceCodeManagement])
-    ] ifFalse:[
-	menu := self class classMenuSCMCommon decodeAsLiteralArray.
-    ].
-    self replaceSourceCodeManagerPlaceholderWith: manager in: menu.
-
-    ^ menu
+    ^ self scmMenuForManagerNamed:sourceCodeManagerClassName selector:#classMenuSCMCommon
+
+"/    |manager menu |
+"/
+"/    sourceCodeManagerClassName isBehavior ifTrue:[
+"/        manager := sourceCodeManagerClassName
+"/    ] ifFalse:[
+"/        sourceCodeManagerClassName notNil ifTrue:[
+"/            manager := Smalltalk at: sourceCodeManagerClassName.
+"/        ].
+"/    ].
+"/    manager isNil ifTrue:[
+"/        menu := Menu new.
+"/        menu addItem:
+"/            (MenuItem
+"/                label: (resources string: 'Unavailable - Configure SCM')
+"/                itemValue: [self openSettingsDialogAndSelectSourceCodeManagement])
+"/    ] ifFalse:[
+"/        menu := self menuFor: #classMenuSCMCommon.
+"/    ].
+"/    self replaceSourceCodeManagerPlaceholderWith: manager in: menu.
+"/
+"/    ^ menu
 
     "Created: / 07-10-2011 / 16:18:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 31-01-2014 / 02:23:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 classMenuSCMSlice
@@ -50753,15 +52082,15 @@
     <resource: #programMenu>
 
     ^self
-	commonMenuSCMSliceNamed: #classMenuSCMSlice
-	computeManagerWith:[:managers|
-	    self selectedClassesDo: [:cls|
-		| mgr |
-
-		mgr := cls theNonMetaclass sourceCodeManager.
-		mgr notNil ifTrue:[managers add: mgr]
-	    ]
-	].
+        commonMenuSCMSliceNamed: #classMenuSCMSlice
+        computeManagerWith:[:managers|
+            self selectedClassesDo: [:cls|
+                | mgr |
+
+                mgr := cls theNonMetaclass sourceCodeManager.
+                mgr notNil ifTrue:[managers add: mgr]
+            ]
+        ].
 
     "Created: / 19-04-2011 / 14:29:47 / cg"
     "Created: / 07-10-2011 / 14:53:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -50780,39 +52109,38 @@
 
     layout := UserPreferences current sourceCodeManagementMenuLayout.
     menu := self class
-		perform:
-		    (sliceName,  '_' , layout) asSymbol
-		ifNotUnderstood: [self class perform:(sliceName,  '_old') asSymbol].
+                perform: (sliceName,  '_' , layout) asSymbol
+                ifNotUnderstood: [self class perform:(sliceName,  '_old') asSymbol].
     menu := menu decodeAsLiteralArray.
     managers := Set new.
     managersBlock value: managers.
     managers size == 1 ifTrue:[
-	manager := managers anyOne.
-    ] ifFalse:[
-	manager := nil
+        manager := managers anyOne.
+    ] ifFalse:[
+        manager := nil
     ].
 
     item := menu menuItemWithKey:#SCM.
     (item notNil) ifTrue:[
-	manager notNil ifTrue:[
-	    manager := managers anyOne.
-	    item label:(resources string:'Repository') , '  ' , (manager managerTypeName asText colorizeAllWith:Color gray).
-	] ifFalse:[
-	    item label:(resources string:'Repository').
-	    item enabled: false.
-	].
+        manager notNil ifTrue:[
+            manager := managers anyOne.
+            item label:(resources string:'Repository') , '  ' , (manager managerTypeName asText colorizeAllWith:Color gray).
+        ] ifFalse:[
+            item label:(resources string:'Repository').
+            item enabled: false.
+        ].
     ].
     self replaceSourceCodeManagerPlaceholderWith: manager in: menu.
     (layout = 'inline') ifTrue:[
-	menu itemsDo:[:item|
-	    manager notNil ifTrue:[
-		item argument == manager name ifTrue:[
-		    item label: (item label , '  ' , ((resources string: '(default)') asText colorizeAllWith: Color gray)).
-		]
-	    ] ifFalse:[
-		item enabled: false
-	    ].
-	]
+        menu itemsDo:[:item|
+            manager notNil ifTrue:[
+                item argument == manager name ifTrue:[
+                    item label: (item label , '  ' , ((resources string: '(default)') asText colorizeAllWith: Color gray)).
+                ]
+            ] ifFalse:[
+                item enabled: false
+            ].
+        ]
     ].
     ^ menu
 
@@ -50825,68 +52153,52 @@
 
     <resource: #programMenu>
 
-    |manager menu |
-
-    sourceCodeManagerClassName isBehavior ifTrue:[
-	manager := sourceCodeManagerClassName
-    ] ifFalse:[
-	manager := Smalltalk at: sourceCodeManagerClassName.
-    ].
-    manager isNil ifTrue:[
-	menu := Menu new.
-	menu addItem:
-	    (MenuItem
-		label: (resources string: 'Unavailable - Configure SCM')
-		itemValue: [self openSettingsDialogAndSelectSourceCodeManagement])
-    ] ifFalse:[
-	menu := self class projectMenuSCMCompareBuildSupportFile decodeAsLiteralArray.
-	menu itemsDo:[:item|
-	    | selector |
-
-	    selector := item value.
-	    item itemValue:[self perform: selector with: item argument with: manager]
-	]
-    ].
-    menu receiver:self.
-    menu findGuiResourcesIn:self.
-    ^ menu
+    ^ self
+        scmMenuForManagerNamed:sourceCodeManagerClassName
+        selector:#projectMenuSCMCompareBuildSupportFile
+"/    |manager menu |
+"/
+"/    sourceCodeManagerClassName isBehavior ifTrue:[
+"/        manager := sourceCodeManagerClassName
+"/    ] ifFalse:[
+"/        sourceCodeManagerClassName notNil ifTrue:[
+"/            manager := Smalltalk at: sourceCodeManagerClassName.
+"/        ].
+"/    ].
+"/    manager isNil ifTrue:[
+"/        menu := Menu new.
+"/        menu addItem:
+"/            (MenuItem
+"/                label: (resources string: 'Unavailable - Configure SCM')
+"/                itemValue: [self openSettingsDialogAndSelectSourceCodeManagement])
+"/    ] ifFalse:[
+"/        menu := self menuFor: #projectMenuSCMCompareBuildSupportFile.
+"/        menu itemsDo:[:item|
+"/            | selector |
+"/
+"/            selector := item value.
+"/            item itemValue:[self perform: selector with: item argument with: manager]
+"/        ]
+"/    ].
+"/    menu receiver:self.
+"/    menu findGuiResourcesIn:self.
+"/    ^ menu
 
     "Created: / 12-10-2011 / 20:23:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 09-09-2012 / 13:23:37 / cg"
+    "Modified: / 31-01-2014 / 02:23:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 projectMenuSCMCompareBuildSupportFileForManagerNamed:sourceCodeManagerClassName
-
     <resource: #programMenu>
 
-    |manager menu |
-
-    sourceCodeManagerClassName isBehavior ifTrue:[
-	manager := sourceCodeManagerClassName
-    ] ifFalse:[
-	manager := Smalltalk at: sourceCodeManagerClassName.
-    ].
-    manager isNil ifTrue:[
-	menu := Menu new.
-	menu addItem:
-	    (MenuItem
-		label: (resources string: 'Unavailable - Configure SCM')
-		itemValue: [self openSettingsDialogAndSelectSourceCodeManagement])
-    ] ifFalse:[
-	menu := self class projectMenuSCMCompareBuildSupportFile decodeAsLiteralArray.
-	menu itemsDo:[:item|
-	    | selector |
-
-	    selector := item value.
-	    item itemValue:[self perform: selector with: item argument with: manager]
-	]
-    ].
-    menu receiver:self.
-    menu findGuiResourcesIn:self.
-    ^ menu
+    ^ self
+        scmMenuForManagerNamed:sourceCodeManagerClassName
+        selector:#projectMenuSCMCompareBuildSupportFile
 
     "Created: / 12-10-2011 / 20:23:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Created: / 21-12-2011 / 20:01:10 / cg"
+    "Modified: / 31-01-2014 / 02:23:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 projectMenuSCMExtraFor: sourceCodeManagerClassName
@@ -50896,25 +52208,28 @@
     |manager spec menu |
 
     sourceCodeManagerClassName isBehavior ifTrue:[
-	manager := sourceCodeManagerClassName
-    ] ifFalse:[
-	manager := Smalltalk at: sourceCodeManagerClassName.
-	manager isNil ifTrue:[
-	    ^Menu new
-	].
+        manager := sourceCodeManagerClassName
+    ] ifFalse:[
+        sourceCodeManagerClassName notNil ifTrue:[
+            manager := Smalltalk at: sourceCodeManagerClassName.
+        ].
+        manager isNil ifTrue:[
+            ^Menu new
+        ].
     ].
     spec := self class perform: ('projectMenuSCMExtra_' , manager managerTypeNameShort) asSymbol ifNotUnderstood:[nil].
     spec notNil ifTrue:[
-	menu := spec decodeAsLiteralArray.
-	menu receiver:self.
-	menu findGuiResourcesIn:self.
-	menu addItem: (MenuItem separator) beforeIndex: 1
-    ] ifFalse:[
-	menu := Menu new.
+        menu := spec decodeAsLiteralArray.
+        menu receiver:self.
+        menu findGuiResourcesIn:self.
+        menu addItem: (MenuItem separator) beforeIndex: 1
+    ] ifFalse:[
+        menu := Menu new.
     ].
     ^menu
 
     "Created: / 15-10-2011 / 22:42:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 31-01-2014 / 02:23:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 projectMenuSCMFor: sourceCodeManagerClassName
@@ -50922,27 +52237,33 @@
 
     <resource: #programMenu>
 
-    |manager menu |
-
-    sourceCodeManagerClassName isBehavior ifTrue:[
-	manager := sourceCodeManagerClassName
-    ] ifFalse:[
-	manager := Smalltalk at: sourceCodeManagerClassName.
-    ].
-    manager isNil ifTrue:[
-	menu := Menu new.
-	menu addItem:
-	    (MenuItem
-		label: (resources string: 'Unavailable - Configure SCM')
-		value: [self openSettingsDialogAndSelectSourceCodeManagement])
-    ] ifFalse:[
-	menu := self class projectMenuSCMCommon decodeAsLiteralArray.
-    ].
-    self replaceSourceCodeManagerPlaceholderWith: manager in: menu.
-
-    ^ menu
+    ^ self
+        scmMenuForManagerNamed:sourceCodeManagerClassName
+        selector:#projectMenuSCMCommon
+"/    |manager menu |
+"/
+"/    sourceCodeManagerClassName isBehavior ifTrue:[
+"/        manager := sourceCodeManagerClassName
+"/    ] ifFalse:[
+"/        sourceCodeManagerClassName notNil ifTrue:[
+"/            manager := Smalltalk at: sourceCodeManagerClassName.
+"/        ].
+"/    ].
+"/    manager isNil ifTrue:[
+"/        menu := Menu new.
+"/        menu addItem:
+"/            (MenuItem
+"/                label: (resources string: 'Unavailable - Configure SCM')
+"/                itemValue: [self openSettingsDialogAndSelectSourceCodeManagement])
+"/    ] ifFalse:[
+"/        menu := self menuFor: #projectMenuSCMCommon decodeAsLiteralArray.
+"/    ].
+"/    self replaceSourceCodeManagerPlaceholderWith: manager in: menu.
+"/
+"/    ^ menu
 
     "Created: / 12-10-2011 / 20:57:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 31-01-2014 / 02:24:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 projectMenuSCMSlice
@@ -50950,20 +52271,61 @@
     <resource: #programMenu>
 
     ^self
-	commonMenuSCMSliceNamed: #projectMenuSCMSlice
-	computeManagerWith:
-	    [:managers|
-	    self selectedProjectsDo:[:pkg|
-		| mgr |
-
-		mgr := AbstractSourceCodeManager managerForPackage:pkg.
-		mgr isNil ifFalse:[managers add: mgr]
-	    ]].
+        commonMenuSCMSliceNamed: #projectMenuSCMSlice
+        computeManagerWith:
+            [:managers|
+            self selectedProjectsDo:[:pkg|
+                | mgr |
+
+                mgr := AbstractSourceCodeManager managerForPackage:pkg.
+                mgr isNil ifFalse:[managers add: mgr]
+            ]].
 
     "Created: / 19-04-2011 / 14:29:47 / cg"
     "Created: / 12-10-2011 / 20:53:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+scmMenuForManagerNamed:sourceCodeManagerClassName selector:selector
+    <resource: #programMenu>
+
+    |manager menu |
+
+    sourceCodeManagerClassName isBehavior ifTrue:[
+        manager := sourceCodeManagerClassName
+    ] ifFalse:[
+        sourceCodeManagerClassName notNil ifTrue:[
+            sourceCodeManagerClassName == #Default ifTrue:[
+                manager := Smalltalk at: #SourceCodeManager.
+            ] ifFalse:[
+                manager := Smalltalk at: sourceCodeManagerClassName.
+            ].
+        ].
+    ].
+    manager isNil ifTrue:[
+        menu := Menu new.
+        menu addItem:
+            (MenuItem
+                label: (resources string: 'Unavailable - Configure SCM')
+                itemValue: [self openSettingsDialogAndSelectSourceCodeManagement])
+    ] ifFalse:[
+        menu := self menuFor: selector.
+        menu itemsDo:[:item|
+            | selector |
+
+            selector := item value.
+            item itemValue:[self perform: selector with: item argument with: manager]
+        ]
+    ].
+    self replaceSourceCodeManagerPlaceholderWith: manager in: menu.
+    menu receiver:self.
+    menu findGuiResourcesIn:self.
+    ^ menu
+
+    "Created: / 12-10-2011 / 20:23:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Created: / 21-12-2011 / 20:01:10 / cg"
+    "Modified: / 31-01-2014 / 02:23:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 selectorMenuSCMExtraFor: sourceCodeManagerClassName
 
     <resource: #programMenu>
@@ -50971,25 +52333,28 @@
     |manager spec menu |
 
     sourceCodeManagerClassName isBehavior ifTrue:[
-	manager := sourceCodeManagerClassName
-    ] ifFalse:[
-	manager := Smalltalk at: sourceCodeManagerClassName.
-	manager isNil ifTrue:[
-	    ^Menu new
-	].
+        manager := sourceCodeManagerClassName
+    ] ifFalse:[
+        sourceCodeManagerClassName notNil ifTrue:[
+            manager := Smalltalk at: sourceCodeManagerClassName.
+        ].
+        manager isNil ifTrue:[
+            ^Menu new
+        ].
     ].
     spec := self class perform: ('selectorMenuSCMExtra_' , manager managerTypeNameShort) asSymbol ifNotUnderstood:[nil].
     spec notNil ifTrue:[
-	menu := spec decodeAsLiteralArray.
-	menu receiver:self.
-	menu findGuiResourcesIn:self.
-	menu addItem: (MenuItem separator) beforeIndex: 1
-    ] ifFalse:[
-	menu := Menu new.
+        menu := spec decodeAsLiteralArray.
+        menu receiver:self.
+        menu findGuiResourcesIn:self.
+        menu addItem: (MenuItem separator) beforeIndex: 1
+    ] ifFalse:[
+        menu := Menu new.
     ].
     ^menu
 
     "Created: / 15-10-2011 / 22:42:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 31-01-2014 / 02:24:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 selectorMenuSCMFor: sourceCodeManagerClassName
@@ -50997,27 +52362,35 @@
 
     <resource: #programMenu>
 
-    |manager menu |
-
-    sourceCodeManagerClassName isBehavior ifTrue:[
-	manager := sourceCodeManagerClassName
-    ] ifFalse:[
-	manager := Smalltalk at: sourceCodeManagerClassName.
-    ].
-    manager isNil ifTrue:[
-	menu := Menu new.
-	menu addItem:
-	    (MenuItem
-		label: (resources string: 'Unavailable - Configure SCM')
-		value: [self openSettingsDialogAndSelectSourceCodeManagement])
-    ] ifFalse:[
-	menu := self class selectorMenuSCMCommon decodeAsLiteralArray.
-    ].
-    self replaceSourceCodeManagerPlaceholderWith: manager in: menu.
-
-    ^ menu
+    ^ self
+        scmMenuForManagerNamed:sourceCodeManagerClassName
+        selector:#selectorMenuSCMCommon
+"/
+"/    |manager menu |
+"/
+"/    sourceCodeManagerClassName isBehavior ifTrue:[
+"/        manager := sourceCodeManagerClassName
+"/    ] ifFalse:[
+"/        sourceCodeManagerClassName notNil ifTrue:[
+"/            manager := Smalltalk at: sourceCodeManagerClassName.
+"/        ].
+"/
+"/    ].
+"/    manager isNil ifTrue:[
+"/        menu := Menu new.
+"/        menu addItem:
+"/            (MenuItem
+"/                label: (resources string: 'Unavailable - Configure SCM')
+"/                itemValue: [self openSettingsDialogAndSelectSourceCodeManagement])
+"/    ] ifFalse:[
+"/        menu := self menuFor: #selectorMenuSCMCommon.
+"/    ].
+"/    self replaceSourceCodeManagerPlaceholderWith: manager in: menu.
+"/
+"/    ^ menu
 
     "Created: / 12-10-2011 / 20:58:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 31-01-2014 / 02:25:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 selectorMenuSCMSlice
@@ -51025,15 +52398,15 @@
     <resource: #programMenu>
 
     ^self
-	commonMenuSCMSliceNamed: #selectorMenuSCMSlice
-	computeManagerWith:
-	    [:managers|
-	    self selectedMethodsDo:[:mthd|
-		| mgr |
-
-		mgr := AbstractSourceCodeManager managerForPackage:mthd package.
-		mgr isNil ifFalse:[managers add: mgr].
-	    ]].
+        commonMenuSCMSliceNamed: #selectorMenuSCMSlice
+        computeManagerWith:
+            [:managers|
+            self selectedMethodsDo:[:mthd|
+                | mgr |
+
+                mgr := AbstractSourceCodeManager managerForPackage:mthd package.
+                mgr isNil ifFalse:[managers add: mgr].
+            ]].
 
     "Created: / 19-04-2011 / 14:29:47 / cg"
     "Created: / 12-10-2011 / 20:54:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -51041,6 +52414,83 @@
 ! !
 
 
+!NewSystemBrowser methodsFor:'menus-dynamic-lint'!
+
+smalllintCheckMenuForCategory
+    ^ self smalllintCheckMenuForEnvironment: self selectedCategoriesAsEnvironment
+
+    "Created: / 27-11-2014 / 07:01:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+smalllintCheckMenuForClass
+    ClassEnvironment isNil ifTrue:[
+        ^ Menu new
+                addItem:(MenuItem label: (resources string: 'SmallLint not available') itemValue: nil enabled: false);
+                yourself.
+    ].
+    ^ self smalllintCheckMenuForEnvironment: self selectedClassesAsEnvironment
+
+    "Created: / 27-11-2014 / 06:52:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+smalllintCheckMenuForEnvironment: rbenvironment
+    | menu |
+
+    menu := Menu new.
+
+    (self canUseRefactoringSupport and:[RBCompositeLintRule notNil]) ifFalse:[
+        menu addItem:(MenuItem label: (resources string: 'SmallLint not loaded/available') itemValue: nil enabled: false).
+        ^ menu
+    ].
+
+
+    LastLintRulesHolder value notNil ifTrue:[
+        menu addItem:
+            (MenuItem label: (resources string: 'Run Again - %1' with: LastLintRulesHolder value displayString)
+                  itemValue: [ self smalllintRunOnEnvironment:rbenvironment ])
+    ] ifFalse:[
+        menu addItem: (MenuItem label: (resources string: 'Run Again')
+           itemValue: [ self smalllintRunOnEnvironment:rbenvironment ]
+             enabled: false)
+    ].
+    RBCompositeLintRule rulesets do:[:ruleset|
+        menu addItem:
+            (MenuItem label: (resources string: 'Run Checks - %1' with: ruleset displayString)
+                  itemValue: [ self smalllintRun:ruleset onEnvironment:rbenvironment ])
+    ].
+    menu addItem:
+        (MenuItem label: (resources string: 'Run Selected...')
+              itemValue: [ self smalllintRunSelectedOnEnvironment:rbenvironment ]).
+    ^ menu
+
+    "Created: / 27-11-2014 / 06:16:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 03-12-2014 / 11:27:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+smalllintCheckMenuForPackage
+    ^ self smalllintCheckMenuForEnvironment: self selectedPackagesAsEnvironment
+
+    "Created: / 27-11-2014 / 06:54:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+smalllintCheckMenuForProtocol
+    ^ self smalllintCheckMenuForEnvironment: self selectedProtocolsAsEnvironment
+
+    "Created: / 27-11-2014 / 06:54:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+smalllintCheckMenuForSelector
+    ^ self smalllintCheckMenuForEnvironment: self selectedSelectorsAsEnvironment
+
+    "Created: / 27-11-2014 / 06:53:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+smalllintCheckMenuForToolbar
+    ^ self smalllintCheckMenuForEnvironment: self selectedCodeComponentsAsEnvironment.
+
+    "Created: / 27-11-2014 / 06:48:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !NewSystemBrowser methodsFor:'menus-dynamic-popup'!
 
 categoryPopUpMenu
@@ -51099,17 +52549,17 @@
     repository ifNil:[^nil].
     wc := repository workingCopy.
     branchAspect := (AspectAdaptor accessWith: #branchOrNil assignWith: #branch:)
-			subject: wc.
+                        subject: wc.
     repository branches do:
-	[:branch|
-	menu addItem:
-	    (MenuItem new
-		label: branch displayString ;"/icon: branch icon;
-		choiceValue: branch;
-		choice: branchAspect;
-		enabled:(wc hasBranch not or: [(repository workingCopy branch) = branch]);
-		yourself)
-	].
+        [:branch|
+        menu addItem:
+            (MenuItem new
+                label: branch displayString ;"/icon: branch icon;
+                choiceValue: branch;
+                choice: branchAspect;
+                enabled:(wc hasBranch not or: [(repository workingCopy branch) = branch]);
+                yourself)
+        ].
 
     ^menu
 
@@ -51124,9 +52574,9 @@
     "open a dialog to ask for a class name"
 
     ^ self class
-	askForClassNameMatching:matchStringArg
-	inEnvironment:self navigationState environment
-	for:self
+        askForClassNameMatching:matchStringArg
+        inEnvironment:self navigationState environment
+        for:self
 !
 
 delayedSwitchToCategory:aCategory
@@ -51155,7 +52605,7 @@
     |canvasType|
 
     (canvasType := browserCanvasType) isNil ifTrue:[
-	canvasType := navigationState canvasType.
+        canvasType := navigationState canvasType.
     ].
 
     canvasType == #singleNameSpaceFullBrowserSpec ifTrue:[^ OrganizerCanvas organizerModeNamespace ].
@@ -51232,9 +52682,9 @@
 
 selectProjects:aCollectionOfProjects
     self selectedProjects value ~= aCollectionOfProjects ifTrue:[
-	self selectedProjects value:aCollectionOfProjects.
-    ] ifFalse:[
-	self breakPoint:#cg
+        self selectedProjects value:aCollectionOfProjects.
+    ] ifFalse:[
+        self breakPoint:#cg
     ]
 
     "Created: / 25.2.2000 / 00:54:14 / cg"
@@ -51257,7 +52707,7 @@
 
     allProtocols := Set new.
     self selectedClassesDo:[:eachClass |
-	allProtocols addAll:(eachClass categories).
+        allProtocols addAll:(eachClass categories).
     ].
     allProtocols := allProtocols select:[:each | aMatchPattern match:each].
     self selectProtocols:allProtocols asOrderedCollection.
@@ -51275,117 +52725,121 @@
 
     canvasType := navigationState canvasType ? #fullBrowserSpec.
     canvasType == #fullBrowserSpec ifTrue:[
-	isMethodBrowser := anotherNavigationState isMethodListBrowser or:[anotherNavigationState isSingleMethodBrowser].
-	(isMethodBrowser
-	or:[otherOrganizerMode == OrganizerCanvas organizerModeCategory]) ifTrue:[
-	    selectedMethods := anotherNavigationState selectedMethods value ? #().
-	    isMethodBrowser ifTrue:[
-		selectedClasses := selectedMethods collect:[:each | each mclass] as:IdentitySet.
-		selectedClasses := selectedClasses select:[:each | each notNil].
-		protocols := selectedMethods collect:[:each | each category] as:Set.
-		meta := (selectedClasses size == 1) and:[ selectedClasses anElement isMeta ].
-	    ] ifFalse:[
-		protocols := anotherNavigationState selectedProtocols value ? #().
-		meta := anotherNavigationState meta value.
-		categories := anotherNavigationState selectedCategories value ? #().
-	    ].
-	] ifFalse:[
-	    protocols := anotherNavigationState selectedProtocols value copy.
-	    meta := anotherNavigationState meta value.
-
-	    navigationState selectedNamespaces value:(anotherNavigationState selectedNamespaces value).
-	    navigationState nameSpaceFilter value:(anotherNavigationState selectedNamespaces value).
-	].
-	categories size == 0 ifTrue:[
-	    "/ collect categories from selected classes.
-	    categories :=  (selectedClasses ? #()) collect:[:eachClass | eachClass theNonMetaclass category] as:Set
-	].
-
-	navigationState selectedCategories value:categories.
-
-	otherOrganizerMode == OrganizerCanvas organizerModeProject ifTrue:[
-	    navigationState organizerMode value:otherOrganizerMode.
-	    projects := anotherNavigationState selectedProjects value copy.
-	    navigationState selectedProjects value:projects.
-	].
-
-	navigationState meta value:meta.
-
-	"/ self immediateUpdate value:true.
-	"/ selectedClasses := selectedClasses collect:[:each | each theNonMetaclass].
-	navigationState selectedClasses value:selectedClasses.
-	navigationState selectedProtocols value:protocols.
-	"/ self immediateUpdate value:false.
-	navigationState selectedMethods value:(anotherNavigationState selectedMethods value copy).
-
-	^ self
+        isMethodBrowser := anotherNavigationState isMethodListBrowser
+                           or:[anotherNavigationState isSingleMethodBrowser].
+        (isMethodBrowser
+        or:[otherOrganizerMode == OrganizerCanvas organizerModeCategory]) ifTrue:[
+            selectedMethods := anotherNavigationState selectedMethods value ? #().
+            isMethodBrowser ifTrue:[
+                selectedClasses := selectedMethods collect:[:each | each mclass] as:IdentitySet.
+                selectedClasses := selectedClasses select:[:each | each notNil].
+                protocols := selectedMethods collect:[:each | each category] as:Set.
+                meta := (selectedClasses size == 1) and:[ selectedClasses anElement isMeta ].
+            ] ifFalse:[
+                protocols := anotherNavigationState selectedProtocols value ? #().
+                meta := anotherNavigationState meta value.
+                categories := anotherNavigationState selectedCategories value ? #().
+            ].
+        ] ifFalse:[
+            protocols := anotherNavigationState selectedProtocols value copy.
+            meta := anotherNavigationState meta value.
+            anotherNavigationState organizerMode value ~~ OrganizerCanvas organizerModeClassHierarchy ifTrue:[
+                anotherNavigationState organizerMode value ~~ OrganizerCanvas organizerModeHierarchy ifTrue:[
+                    navigationState selectedNamespaces value:(anotherNavigationState selectedNamespaces value).
+                    navigationState nameSpaceFilter value:(anotherNavigationState selectedNamespaces value).
+                ].
+            ].
+        ].
+        categories size == 0 ifTrue:[
+            "/ collect categories from selected classes.
+            categories :=  (selectedClasses ? #()) collect:[:eachClass | eachClass theNonMetaclass category] as:Set
+        ].
+
+        navigationState selectedCategories value:categories.
+
+        otherOrganizerMode == OrganizerCanvas organizerModeProject ifTrue:[
+            navigationState organizerMode value:otherOrganizerMode.
+            projects := anotherNavigationState selectedProjects value copy.
+            navigationState selectedProjects value:projects.
+        ].
+
+        navigationState meta value:meta.
+
+        "/ self immediateUpdate value:true.
+        "/ selectedClasses := selectedClasses collect:[:each | each theNonMetaclass].
+        navigationState selectedClasses value:selectedClasses.
+        navigationState selectedProtocols value:protocols.
+        "/ self immediateUpdate value:false.
+        navigationState selectedMethods value:(anotherNavigationState selectedMethods value copy).
+
+        ^ self
     ].
 
     navigationState isFullClassSourceBrowser ifTrue:[
-	otherOrganizerMode == OrganizerCanvas organizerModeCategory ifTrue:[
-	    categories := anotherNavigationState selectedCategories value copy.
-	] ifFalse:[
-	    "/ collect categories from selected classes.
-	    categories := (selectedClasses ? #())
-			   collect:[:eachClass | eachClass category] as:Set
-	].
-	navigationState selectedCategories value:categories.
-	selectedClasses size > 0 ifTrue:[
-	    navigationState selectedClasses value:(selectedClasses collect:[:each | each theNonMetaclass]).
-	].
-	self enqueueDelayedUpdateCode.
-	^ self
+        otherOrganizerMode == OrganizerCanvas organizerModeCategory ifTrue:[
+            categories := anotherNavigationState selectedCategories value copy.
+        ] ifFalse:[
+            "/ collect categories from selected classes.
+            categories := (selectedClasses ? #())
+                           collect:[:eachClass | eachClass category] as:Set
+        ].
+        navigationState selectedCategories value:categories.
+        selectedClasses size > 0 ifTrue:[
+            navigationState selectedClasses value:(selectedClasses collect:[:each | each theNonMetaclass]).
+        ].
+        self enqueueDelayedUpdateCode.
+        ^ self
     ].
 
     navigationState isFullClassSourceBrowser ifTrue:[
-	otherOrganizerMode == OrganizerCanvas organizerModeCategory ifTrue:[
-	    categories := anotherNavigationState selectedCategories value copy.
-	] ifFalse:[
-	    "/ collect categories from selected classes.
-	    categories := (selectedClasses ? #())
-			   collect:[:eachClass | eachClass category] as:Set
-	].
-	navigationState selectedCategories value:categories.
-	selectedClasses size > 0 ifTrue:[
-	    navigationState selectedClasses value:(selectedClasses collect:[:each | each theNonMetaclass]).
-	].
-	self enqueueDelayedUpdateCode.
-	^ self
+        otherOrganizerMode == OrganizerCanvas organizerModeCategory ifTrue:[
+            categories := anotherNavigationState selectedCategories value copy.
+        ] ifFalse:[
+            "/ collect categories from selected classes.
+            categories := (selectedClasses ? #())
+                           collect:[:eachClass | eachClass category] as:Set
+        ].
+        navigationState selectedCategories value:categories.
+        selectedClasses size > 0 ifTrue:[
+            navigationState selectedClasses value:(selectedClasses collect:[:each | each theNonMetaclass]).
+        ].
+        self enqueueDelayedUpdateCode.
+        ^ self
     ].
 
     navigationState isNameSpaceBrowser ifTrue:[
-	otherOrganizerMode == OrganizerCanvas organizerModeNamespace ifTrue:[
-	    namespaces := anotherNavigationState selectedNamespaces value copy.
-	] ifFalse:[
-	    "/ collect namespaces from selected classes.
-	    namespaces := (selectedClasses ? #())
-			   collect:[:eachClass | eachClass nameSpace name] as:Set
-	].
-	navigationState selectedNamespaces value:namespaces.
-	selectedClasses size > 0 ifTrue:[
-	    navigationState selectedClasses value:selectedClasses.
-	].
-	self enqueueDelayedUpdateCode.
-	^ self
+        otherOrganizerMode == OrganizerCanvas organizerModeNamespace ifTrue:[
+            namespaces := anotherNavigationState selectedNamespaces value copy.
+        ] ifFalse:[
+            "/ collect namespaces from selected classes.
+            namespaces := (selectedClasses ? #())
+                           collect:[:eachClass | eachClass nameSpace name] as:Set
+        ].
+        navigationState selectedNamespaces value:namespaces.
+        selectedClasses size > 0 ifTrue:[
+            navigationState selectedClasses value:selectedClasses.
+        ].
+        self enqueueDelayedUpdateCode.
+        ^ self
     ].
 
     (navigationState isCategoryBrowser
     or:[navigationState isNameSpaceFullBrowser
     or:[navigationState isProjectFullBrowser]]) ifTrue:[
-	otherOrganizerMode == OrganizerCanvas organizerModeCategory ifTrue:[
-	    categories := anotherNavigationState selectedCategories value copy.
-	] ifFalse:[
-	    "/ collect categories from selected classes.
-	    categories := (selectedClasses ? #())
-			   collect:[:eachClass | eachClass category] as:Set
-	].
-	navigationState selectedCategories value:categories.
-	selectedClasses size > 0 ifTrue:[
-	    navigationState selectedClasses value:selectedClasses.
-	].
-
-	self enqueueDelayedUpdateCode.
-	^ self
+        otherOrganizerMode == OrganizerCanvas organizerModeCategory ifTrue:[
+            categories := anotherNavigationState selectedCategories value copy.
+        ] ifFalse:[
+            "/ collect categories from selected classes.
+            categories := (selectedClasses ? #())
+                           collect:[:eachClass | eachClass category] as:Set
+        ].
+        navigationState selectedCategories value:categories.
+        selectedClasses size > 0 ifTrue:[
+            navigationState selectedClasses value:selectedClasses.
+        ].
+
+        self enqueueDelayedUpdateCode.
+        ^ self
     ].
 
     "Modified: / 29-09-2006 / 22:35:33 / cg"
@@ -51408,56 +52862,56 @@
 
     classes := OrderedCollection new.
     (sel := aSelectorString asSymbolIfInterned) notNil ifTrue:[
-	environment allClassesDo:[:aClass |
-	    (aClass includesSelector:sel) ifTrue:[
-		classes add:aClass.
-	    ].
-	    (aClass class includesSelector:sel) ifTrue:[
-		classes add:aClass class.
-	    ].
-	]
+        environment allClassesDo:[:aClass |
+            (aClass includesSelector:sel) ifTrue:[
+                classes add:aClass.
+            ].
+            (aClass class includesSelector:sel) ifTrue:[
+                classes add:aClass class.
+            ].
+        ]
     ].
     classes size == 0 ifTrue:[
-	self class showNoneFound.
-	^ self
+        self class showNoneFound.
+        ^ self
     ].
 
     classes size > 1 ifTrue:[
-	box := ListSelectionBox
-		    title:(resources stringWithCRs:'searching for #%1 method.\\in which class ?\\(Tab for completion or select)' with:aSelectorString).
-	box label:'find method'.
-	box okText:(resources string:'show').
-	box list:(classes collect:[:aClass | aClass name]) asSortedCollection.
-	box action:[:aString | theClassName := aString].
-	box entryCompletionBlock:[:contents |
-	    |s l names|
-
-	    s := contents withoutSpaces.
-	    s size == 0 ifTrue:[
-		l := classes
-	    ] ifFalse:[
-		l := classes select:[:cls | cls name startsWith:s].
-	    ].
-	    l size == 0 ifTrue:[
-		l := classes select:[:cls | cls name asLowercase startsWith:s asLowercase].
-	    ].
-	    l size > 0 ifTrue:[
-		box list:(names := l collect:[:aClass | aClass name]) asSortedCollection.
-		box contents:(names longestCommonPrefix). "/ l first name.
-		l size ~~ 1 ifTrue:[
-		    self window beep
-		]
-	    ]
-	].
-	box showAtPointer.
-    ] ifFalse:[
-	theClassName := classes first name
+        box := ListSelectionBox
+                    title:(resources stringWithCRs:'searching for #%1 method.\\in which class ?\\(Tab for completion or select)' with:aSelectorString).
+        box label:'find method'.
+        box okText:(resources string:'show').
+        box list:(classes collect:[:aClass | aClass name]) asSortedCollection.
+        box action:[:aString | theClassName := aString].
+        box entryCompletionBlock:[:contents |
+            |s l names|
+
+            s := contents withoutSpaces.
+            s size == 0 ifTrue:[
+                l := classes
+            ] ifFalse:[
+                l := classes select:[:cls | cls name startsWith:s].
+            ].
+            l size == 0 ifTrue:[
+                l := classes select:[:cls | cls name asLowercase startsWith:s asLowercase].
+            ].
+            l size > 0 ifTrue:[
+                box list:(names := l collect:[:aClass | aClass name]) asSortedCollection.
+                box contents:(names longestCommonPrefix). "/ l first name.
+                l size ~~ 1 ifTrue:[
+                    self window beep
+                ]
+            ]
+        ].
+        box showAtPointer.
+    ] ifFalse:[
+        theClassName := classes first name
     ].
 
     theClassName notNil ifTrue:[
-	self rememberLocationInHistory.
-	self switchToClassNamed:theClassName.
-	self switchToSelector:aSelectorString.
+        self rememberLocationInHistory.
+        self switchToClassNamed:theClassName.
+        self switchToSelector:aSelectorString.
     ].
 
     "Modified: / 1.9.1995 / 01:39:58 / claus"
@@ -51468,11 +52922,11 @@
     "invoked when switching to a method from the bookmark history"
 
     (entry isKindOf: Bookmark)
-	ifTrue:
-	    [entry switchToBookmarkIn: self]
-	ifFalse:
-	    [self breakPoint: #jv info:'BrowserHistoryEntries should no longet be used'.
-	    self switchToHistoryEntry: entry].
+        ifTrue:
+            [entry switchToBookmarkIn: self]
+        ifFalse:
+            [self breakPoint: #jv info:'BrowserHistoryEntries should no longet be used'.
+            self switchToHistoryEntry: entry].
 
     "Modified: / 05-05-2011 / 23:51:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
@@ -51495,72 +52949,72 @@
      ns classes|
 
     aClass isNil ifTrue:[
-	^ self
+        ^ self
     ].
     aSelector notNil ifTrue:[
-	mthd := aClass compiledMethodAt:aSelector.
+        mthd := aClass compiledMethodAt:aSelector.
     ].
 
     (navigationState isMethodListBrowser
     or:[navigationState isMethodBrowser]) ifTrue:[
-	"/ must check if that method is in the list ...
-
-	mthd isNil ifTrue:[
+        "/ must check if that method is in the list ...
+
+        mthd isNil ifTrue:[
 "/            (self confirm:'Add a buffer for the class ?' withCRs) ifFalse:[
 "/                ^ self
 "/            ].
-	    self spawnFullBrowserInClass:aClass selector:nil in:#newBuffer.
-	    ^ self
-	].
-
-	navigationState methodListApplication isNil ifTrue:[
-	    self spawnFullBrowserInClass:aClass selector:aSelector in:#newBuffer.
-	    ^ self
-	].
-
-	(navigationState methodList includesIdentical:mthd) ifFalse:[
-	    answer := OptionBox request:'Method not in list.\\Add a buffer for it ?' withCRs
-			label:'New Browser ?'
-			image:(WarningBox iconBitmap)
-			buttonLabels:(resources array:#('New Browser' 'Add Buffer' 'Cancel'))
-			values:#(#newBrowser #newBuffer nil)
-			default:#newBuffer
-			onCancel:nil.
-	    answer notNil ifTrue:[
-		self spawnFullBrowserInClass:aClass selector:aSelector in:answer.
-	    ].
-	    ^ self
-	].
-	self selectedMethods value:(OrderedCollection with:mthd).
-	^ self
+            self spawnFullBrowserInClass:aClass selector:nil in:#newBuffer.
+            ^ self
+        ].
+
+        navigationState methodListApplication isNil ifTrue:[
+            self spawnFullBrowserInClass:aClass selector:aSelector in:#newBuffer.
+            ^ self
+        ].
+
+        (navigationState methodList includesIdentical:mthd) ifFalse:[
+            answer := OptionBox request:'Method not in list.\\Add a buffer for it ?' withCRs
+                        label:'New Browser ?'
+                        image:(WarningBox iconBitmap)
+                        buttonLabels:(resources array:#( 'Cancel' 'Add Buffer' 'New Browser' ))
+                        values:#(nil #newBuffer #newBrowser)
+                        default:#newBuffer
+                        onCancel:nil.
+            answer notNil ifTrue:[
+                self spawnFullBrowserInClass:aClass selector:aSelector in:answer.
+            ].
+            ^ self
+        ].
+        self selectedMethods value:(OrderedCollection with:mthd).
+        ^ self
     ].
 
     mthd isNil ifTrue:[
-	self selectedMethods value:(OrderedCollection new).
-    ] ifFalse:[
-	self selectedMethods value:(OrderedCollection with:mthd).
+        self selectedMethods value:(OrderedCollection new).
+    ] ifFalse:[
+        self selectedMethods value:(OrderedCollection with:mthd).
     ].
     (navigationState isClassBrowser) ifTrue:[
-	"/ must check if that class is in the list ...
-	((navigationState classList value ? #()) includesIdentical:aClass) ifFalse:[
-	    navigationState isSingleClassBrowser ifTrue:[
-		navigationState classList value:(Array with:aClass).
-	    ] ifFalse:[
-		(self confirm:'Class not in list.\\Add a buffer for it ?' withCRs) ifTrue:[
-		    self spawnFullBrowserInClass:aClass selector:aSelector in:#newBuffer.
-		].
-		^ self
-	    ].
-	].
-	self selectedClasses value:(OrderedCollection with:aClass).
-	^ self
+        "/ must check if that class is in the list ...
+        ((navigationState classList value ? #()) includesIdentical:aClass) ifFalse:[
+            navigationState isSingleClassBrowser ifTrue:[
+                navigationState classList value:(Array with:aClass).
+            ] ifFalse:[
+                (self confirm:'Class not in list.\\Add a buffer for it ?' withCRs) ifTrue:[
+                    self spawnFullBrowserInClass:aClass selector:aSelector in:#newBuffer.
+                ].
+                ^ self
+            ].
+        ].
+        self selectedClasses value:(OrderedCollection with:aClass).
+        ^ self
     ].
 
     (navigationState isProtocolBrowser) ifTrue:[
-	(self confirm:'Add a buffer for it ?' withCRs) ifTrue:[
-	    self spawnFullBrowserInClass:aClass selector:aSelector in:#newBuffer.
-	].
-	^ self
+        (self confirm:'Add a buffer for it ?' withCRs) ifTrue:[
+            self spawnFullBrowserInClass:aClass selector:aSelector in:#newBuffer.
+        ].
+        ^ self
     ].
 
     orgMode := self organizerMode value.
@@ -51568,34 +53022,34 @@
     "/ if the class is a namespace, ask if mode should be changed
 
     (aClass isNameSpace and:[aClass ~~ Smalltalk]) ifTrue:[
-	orgMode ~~ OrganizerCanvas organizerModeNamespace ifTrue:[
-	    answer := self
-			confirmWithCancel:(resources string:'Browser: %1 is a namespace - switch organizers display mode ?' with:aClass name)
-			defaultAnswer:false.
-	    answer isNil ifTrue:[
-		AbortOperationRequest raise.
-		^ self
-	    ].
-	    answer ifTrue:[
-		self organizerMode value:(OrganizerCanvas organizerModeNamespace).
-		orgMode := self organizerMode value.
-	    ] ifFalse:[
-		((self selectedClassesValue) contains:[:cls | cls nameSpace == aClass]) ifTrue:[^ self ].
-
-		"/ select the first class of that namespace
-		classes := aClass allClasses.
-		classes notEmpty ifTrue:[
-		    self switchToClass:(classes first) selector:nil.
-		    ^ self.
-		]
-	    ]
-	].
+        orgMode ~~ OrganizerCanvas organizerModeNamespace ifTrue:[
+            answer := self
+                        confirmWithCancel:(resources string:'Browser: %1 is a namespace - switch organizers display mode ?' with:aClass name)
+                        defaultAnswer:false.
+            answer isNil ifTrue:[
+                AbortOperationRequest raise.
+                ^ self
+            ].
+            answer ifTrue:[
+                self organizerMode value:(OrganizerCanvas organizerModeNamespace).
+                orgMode := self organizerMode value.
+            ] ifFalse:[
+                ((self selectedClassesValue) contains:[:cls | cls nameSpace == aClass]) ifTrue:[^ self ].
+
+                "/ select the first class of that namespace
+                classes := aClass allClasses.
+                classes notEmpty ifTrue:[
+                    self switchToClass:(classes first) selector:nil.
+                    ^ self.
+                ]
+            ]
+        ].
     ].
 
     "/ if the class is unloaded, turn hideUnloaded off
     (aClass isLoaded not
     and:[self hideUnloadedClasses value == true]) ifTrue:[
-	self hideUnloadedClasses value:false
+        self hideUnloadedClasses value:false
     ].
 
     doSwitchMeta := true.
@@ -51606,9 +53060,9 @@
     ns := aClass topNameSpace.
     ns notNil ifTrue:[nsName := ns name].
     (namespaces includes:nsName) ifFalse:[
-	(namespaces includes:(NavigatorModel nameListEntryForALL)) ifFalse:[
-	    self selectedNamespaces value:(OrderedCollection with: NavigatorModel nameListEntryForALL)
-	]
+        (namespaces includes:(NavigatorModel nameListEntryForALL)) ifFalse:[
+            self selectedNamespaces value:(OrderedCollection with: NavigatorModel nameListEntryForALL)
+        ]
     ].
 "/    namespaces := self nameSpaceFilter value ? #().
 "/    (namespaces includes:aClass nameSpace name) ifFalse:[
@@ -51617,73 +53071,73 @@
 "/        ]
 "/    ].
     orgMode == OrganizerCanvas organizerModeCategory ifTrue:[
-	cat := aClass category ? '* no category *'.
-	(self selectedCategoriesValue includes:cat) ifFalse:[
-	    self selectedCategories value:(OrderedCollection with:cat).
-	]
+        cat := aClass category ? '* no category *'.
+        (self selectedCategoriesValue includes:cat) ifFalse:[
+            self selectedCategories value:(OrderedCollection with:cat).
+        ]
     ] ifFalse:[ orgMode == OrganizerCanvas organizerModeNamespace ifTrue:[
-	aClass isNameSpace ifTrue:[
-	    nsName := aClass name.
-	] ifFalse:[
-	    nsName := aClass nameSpace name.
-	].
-	(self selectedNamespacesValue includes:nsName) ifFalse:[
-	    self selectedNamespaces value:(OrderedCollection with:nsName).
-	]
+        aClass isNameSpace ifTrue:[
+            nsName := aClass name.
+        ] ifFalse:[
+            nsName := aClass nameSpace name.
+        ].
+        (self selectedNamespacesValue includes:nsName) ifFalse:[
+            self selectedNamespaces value:(OrderedCollection with:nsName).
+        ]
     ] ifFalse:[ orgMode == OrganizerCanvas organizerModeProject ifTrue:[
-	pkg := aClass package.
-	holder := self selectedProjects.
-	newValue := holder value ? #().
-	(newValue includes:pkg) ifFalse:[
-	    newValue := OrderedCollection with:pkg.
-	].
-	mthd notNil ifTrue:[
-	    "/ careful - the method could be in an extension ...
-	    mthd package ~= pkg ifTrue:[
-		(newValue includes:mthd package) ifFalse:[
-		    newValue := newValue asOrderedCollection.
-		    newValue add:mthd package.
-		].
-	    ].
-	].
-	newValue ~= holder value ifTrue:[
-	    holder value:newValue.
-	].
+        pkg := aClass package.
+        holder := self selectedProjects.
+        newValue := holder value ? #().
+        (newValue includes:pkg) ifFalse:[
+            newValue := OrderedCollection with:pkg.
+        ].
+        mthd notNil ifTrue:[
+            "/ careful - the method could be in an extension ...
+            mthd package ~= pkg ifTrue:[
+                (newValue includes:mthd package) ifFalse:[
+                    newValue := newValue asOrderedCollection.
+                    newValue add:mthd package.
+                ].
+            ].
+        ].
+        newValue ~= holder value ifTrue:[
+            holder value:newValue.
+        ].
     ] ifFalse:[ (orgMode == OrganizerCanvas organizerModeClassHierarchy
-		 or:[orgMode == OrganizerCanvas organizerModeClassInheritance]) ifTrue:[
-	"/ make sure, that the class is in the hierarchy;
-	"/ if required, update the hierarchy.
-
-	holder := self classHierarchyTopClass.
-	cls := holder value.
-	(cls isNil or:[(cls withAllSuperclasses includesIdentical:aClass) not]) ifTrue:[
-	    holder value:aClass.
-	].
-	doSwitchMeta := false.
+                 or:[orgMode == OrganizerCanvas organizerModeClassInheritance]) ifTrue:[
+        "/ make sure, that the class is in the hierarchy;
+        "/ if required, update the hierarchy.
+
+        holder := self classHierarchyTopClass.
+        cls := holder value.
+        (cls isNil or:[(cls withAllSuperclasses includesIdentical:aClass) not]) ifTrue:[
+            holder value:aClass.
+        ].
+        doSwitchMeta := false.
     ]]]].
 
     doSwitchMeta ifTrue:[
-	self meta value:(aClass isMeta).
+        self meta value:(aClass isMeta).
     ].
 
     (self selectedClassesValue includesIdentical:aClass) ifFalse:[
-	self selectedClasses value:(OrderedCollection with:aClass).
+        self selectedClasses value:(OrderedCollection with:aClass).
     ].
 
     mthd notNil ifTrue:[
 
-	(self selectedProtocolsValue contains:[:cat | (cat isNil and:[mthd category isNil]) or:[cat string = mthd category]]) ifFalse:[
-	    self selectProtocols:(OrderedCollection with:mthd category).
-	].
-	self switchToMethod:mthd.
-    ] ifFalse:[
-	self switchToSelector:aSelector.
+        (self selectedProtocolsValue contains:[:cat | (cat isNil and:[mthd category isNil]) or:[cat string = mthd category]]) ifFalse:[
+            self selectProtocols:(OrderedCollection with:mthd category).
+        ].
+        self switchToMethod:mthd.
+    ] ifFalse:[
+        self switchToSelector:aSelector.
     ].
 
     self immediateUpdate value:false.
 
     updateHistory ifTrue:[
-	self addToHistory:aClass selector:aSelector
+        self addToHistory:aClass selector:aSelector
     ].
 
     self normalLabel.
@@ -51703,12 +53157,12 @@
     class := environment classNamed:aMatchString.
 
     class notNil ifTrue:[
-	self switchToClass:class
-    ] ifFalse:[
-	className := self askForClassNameMatching:aMatchString.
-	className notNil ifTrue:[
-	    self switchToClassNamed:className.
-	]
+        self switchToClass:class
+    ] ifFalse:[
+        className := self askForClassNameMatching:aMatchString.
+        className notNil ifTrue:[
+            self switchToClassNamed:className.
+        ]
     ]
 
     "Modified: / 13.2.2000 / 20:57:42 / cg"
@@ -51718,109 +53172,109 @@
     |className class implementors answer classesMatchingCaseless|
 
     aMatchString isEmptyOrNil ifTrue:[
-	^ self.
+        ^ self.
     ].
 
     aMatchString knownAsSymbol ifTrue:[
-	class := environment classNamed:aMatchString.
-	class notNil ifTrue:[
-	    self switchToClass:class.
-	    ^ self.
-	].
-	classesMatchingCaseless := environment keys select:[:nm | nm sameAs:aMatchString].
+        class := environment classNamed:aMatchString.
+        class notNil ifTrue:[
+            self switchToClass:class.
+            ^ self.
+        ].
+        classesMatchingCaseless := environment keys select:[:nm | nm sameAs:aMatchString].
 "/        matchStringLowercase := aMatchString asLowercase.
 "/        classesWithPrefixCaseless := environment keys select:[:nm | nm asLowercase startsWith:aMatchString].
 
 "/        impl := environment allImplementorsOf:aMatchString asSymbol.
 "/        impl notEmptyOrNil ifTrue:[
 "/        ].
-	(aMatchString first isLetter not
-	 or:[ aMatchString first isLowercase]) ifTrue:[
-	    implementors := SystemBrowser findImplementorsMatching:aMatchString in:(environment allClasses) ignoreCase:true.
-	    implementors size > 0 ifTrue:[
-		(classesMatchingCaseless isEmpty and:[implementors size == 1]) ifTrue:[
-		    answer := Dialog
-			confirm:(resources
-					stringWithCRs:'No class named "%1".\But "%2" implements it. Go there ?'
-					with:aMatchString allBold
-					with:implementors first mclass name).
-		    answer ifTrue:[
-			self switchToClass:implementors first mclass selector:implementors first selector.
-		    ].
-		    ^ self.
-		].
-		implementors := implementors asOrderedCollection sort:[:a :b | a mclass name < b mclass name].
-		classesMatchingCaseless isEmpty ifTrue:[
-		    answer := Dialog
-			choose:(resources
-					stringWithCRs:'No class named "%1.\But there are %2 implementors of it.\\Goto one of them ?'
-					with:aMatchString allBold
-					with:implementors size)
-			fromList:(implementors collect:[:m | m mclass name])
-			values:implementors
-			buttons:#('No, Search for a Class' 'Show all Implementors') values:#(searchClass browseAllImplementors)
-			lines:10 cancel:nil
-			postBuildBlock:[:box | box minExtent:300@250].
-		] ifFalse:[
-		    answer := Dialog
-			choose:(resources
-					stringWithCRs:'No class named "%1".\But there are %2 implementors of it and %3 '
-						      , (classesMatchingCaseless size == 1 ifTrue:['class'] ifFalse:['classes'])
-						      ,' with a similar name.\\Goto one of them ?'
-					with:aMatchString allBold
-					with:implementors size
-					with:classesMatchingCaseless size)
-			fromList:({'Implementors:' colorizeAllWith:Color grey}
-				  ,(implementors collect:[:m | m mclass name])
-				  ,{'Classes:' colorizeAllWith:Color grey}
-				  ,classesMatchingCaseless)
-			values:(#(nil),implementors,#(nil),classesMatchingCaseless)
-			buttons:#('No, Search for a Class' 'Show all Implementors') values:#(searchClass browseAllImplementors)
-			lines:10 cancel:nil
-			postBuildBlock:[:box | box minExtent:300@250].
-		].
-
-		answer isNil ifTrue:[^ self].
-		answer == #browseAllImplementors ifTrue:[
-		    self
-			spawnMethodBrowserForSearch:[
-				SystemBrowser
-				    findImplementorsOf:aMatchString
-				    in:environment allClasses
-				    ignoreCase:false.
-			    ]
-			sortBy:#class
-			in:#newBuffer
-			label:(resources string:'Implementors of %1' string with:aMatchString).
-		    ^ self
-		].
-		answer ~~ #searchClass ifTrue:[
-		    answer isSymbol ifTrue:[
-			self switchToClass:(environment classNamed:answer).
-		    ] ifFalse:[
-			self switchToClass:(answer mclass) selector:(answer selector).
-		    ].
-		    ^ self.
-		].
-	    ].
-	].
+        (aMatchString first isLetter not
+         or:[ aMatchString first isLowercase]) ifTrue:[
+            implementors := SystemBrowser findImplementorsMatching:aMatchString in:(environment allClasses) ignoreCase:true.
+            implementors size > 0 ifTrue:[
+                (classesMatchingCaseless isEmpty and:[implementors size == 1]) ifTrue:[
+                    answer := Dialog
+                        confirm:(resources
+                                        stringWithCRs:'No class named "%1".\But "%2" implements it. Go there ?'
+                                        with:aMatchString allBold
+                                        with:implementors first mclass name).
+                    answer ifTrue:[
+                        self switchToClass:implementors first mclass selector:implementors first selector.
+                    ].
+                    ^ self.
+                ].
+                implementors := implementors asOrderedCollection sort:[:a :b | a mclass name < b mclass name].
+                classesMatchingCaseless isEmpty ifTrue:[
+                    answer := Dialog
+                        choose:(resources
+                                        stringWithCRs:'No class named "%1.\But there are %2 implementors of it.\\Goto one of them ?'
+                                        with:aMatchString allBold
+                                        with:implementors size)
+                        fromList:(implementors collect:[:m | m mclass name])
+                        values:implementors
+                        buttons:#('No, Search for a Class' 'Show all Implementors') values:#(searchClass browseAllImplementors)
+                        lines:10 cancel:nil
+                        postBuildBlock:[:box | box minExtent:300@250].
+                ] ifFalse:[
+                    answer := Dialog
+                        choose:(resources
+                                        stringWithCRs:'No class named "%1".\But there are %2 implementors of it and %3 '
+                                                      , (classesMatchingCaseless size == 1 ifTrue:['class'] ifFalse:['classes'])
+                                                      ,' with a similar name.\\Goto one of them ?'
+                                        with:aMatchString allBold
+                                        with:implementors size
+                                        with:classesMatchingCaseless size)
+                        fromList:({'Implementors:' colorizeAllWith:Color gray}
+                                  ,(implementors collect:[:m | m mclass name])
+                                  ,{'Classes:' colorizeAllWith:Color gray}
+                                  ,classesMatchingCaseless)
+                        values:(#(nil),implementors,#(nil),classesMatchingCaseless)
+                        buttons:#('No, Search for a Class' 'Show all Implementors') values:#(searchClass browseAllImplementors)
+                        lines:10 cancel:nil
+                        postBuildBlock:[:box | box minExtent:300@250].
+                ].
+
+                answer isNil ifTrue:[^ self].
+                answer == #browseAllImplementors ifTrue:[
+                    self
+                        spawnMethodBrowserForSearch:[
+                                SystemBrowser
+                                    findImplementorsOf:aMatchString
+                                    in:environment allClasses
+                                    ignoreCase:false.
+                            ]
+                        sortBy:#class
+                        in:#newBuffer
+                        label:(resources string:'Implementors of %1' string with:aMatchString).
+                    ^ self
+                ].
+                answer ~~ #searchClass ifTrue:[
+                    answer isSymbol ifTrue:[
+                        self switchToClass:(environment classNamed:answer).
+                    ] ifFalse:[
+                        self switchToClass:(answer mclass) selector:(answer selector).
+                    ].
+                    ^ self.
+                ].
+            ].
+        ].
     ].
 
     (aMatchString includes: $.) ifTrue:[
-	"/ Java class?
-	className := (aMatchString copyReplaceAll: $. with: $/) asSymbolIfInterned.
-	className notNil ifTrue:[
-	    environment allClassesDo: [:cls |
-		(cls isJavaClass and:[cls binaryName = className]) ifTrue:[
-		    self switchToClass:cls.
-		]
-	    ].
-	].
+        "/ Java class?
+        className := (aMatchString copyReplaceAll: $. with: $/) asSymbolIfInterned.
+        className notNil ifTrue:[
+            environment allClassesDo: [:cls |
+                (cls isJavaClass and:[cls binaryName = className]) ifTrue:[
+                    self switchToClass:cls.
+                ]
+            ].
+        ].
     ].
 
     className := self askForClassNameMatching:aMatchString.
     className notNil ifTrue:[
-	self switchToClassNamed:className.
+        self switchToClassNamed:className.
     ]
 
     "Modified: / 04-07-2006 / 18:48:25 / fm"
@@ -51833,7 +53287,7 @@
 
     str := aString.
     (aString endsWith:' class') ifTrue:[
-	str := aString copyButLast:6.
+        str := aString copyButLast:6.
     ].
 
     theClass := self findClassNamed:str.
@@ -51842,9 +53296,9 @@
     "/ if currently in meta-mode,
     "/ switch to the metaClass
     self meta value ifTrue:[
-	theClass := theClass theMetaclass
-    ] ifFalse:[
-	theClass := theClass theNonMetaclass
+        theClass := theClass theMetaclass
+    ] ifFalse:[
+        theClass := theClass theNonMetaclass
     ].
     self switchToClass:theClass.
 
@@ -51869,14 +53323,14 @@
     cls := environment at:entry className.
     "/ Care for Java classes!!
     cls isNil ifTrue:[
-	environment allClasses detect:[:cls | cls name = entry className ].
+        cls := environment allClasses detect:[:cls | cls name = entry className ] ifNone:[].
     ].
     cls isNil ifTrue:[
-	self warn:'Oops - class is gone'.
-	^ self
+        self warn:'Oops - class is gone'.
+        ^ self
     ].
     entry meta ifTrue:[
-	cls := cls theMetaclass
+        cls := cls theMetaclass
     ].
     self switchToClass:cls selector:entry selector updateHistory: false
 
@@ -51890,21 +53344,21 @@
     "/ care for method being in another package
     orgMode := self organizerMode value.
     orgMode == OrganizerCanvas organizerModeProject ifTrue:[
-	pkg := aMethod package.
-	holder := self selectedProjects.
-	((holder value ? #()) includes:pkg) ifFalse:[
-	    holder value:(Array with:pkg).
-	]
+        pkg := aMethod package.
+        holder := self selectedProjects.
+        ((holder value ? #()) includes:pkg) ifFalse:[
+            holder value:(Array with:pkg).
+        ]
     ].
 
     category := aMethod category.
     (self selectedProtocolsValue contains:[:p | p notNil and:[p string = category]]) ifFalse:[
-	(self selectedProtocolsValue includes:BrowserList nameListEntryForALL) ifFalse:[
-	    self selectProtocols:(Array with:category).
-	]
+        (self selectedProtocolsValue includes:BrowserList nameListEntryForALL) ifFalse:[
+            self selectProtocols:(Array with:category).
+        ]
     ].
     self theSingleSelectedMethod ~~ aMethod ifTrue:[
-	self selectedMethods value:(Array with:aMethod).
+        self selectedMethods value:(Array with:aMethod).
     ]
 
     "Modified: / 30-08-2011 / 16:03:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -51920,30 +53374,30 @@
     |mthd cls orgMode pkg holder|
 
     aSelector notNil ifTrue:[
-	(cls := self theSingleSelectedClass) notNil ifTrue:[
-	    mthd := cls compiledMethodAt:aSelector asSymbol.
-	    mthd notNil ifTrue:[
-
-		"/ care for method being in another package
-		orgMode := self organizerMode value.
-		orgMode == OrganizerCanvas organizerModeProject ifTrue:[
-		    pkg := mthd package.
-		    holder := self selectedProjects.
-		    ((holder value ? #()) includes:pkg) ifFalse:[
-			holder value:(Array with:pkg).
-		    ]
-		].
-
-		(self selectedProtocolsValue contains:[:p | (p isNil and:[mthd category isNil]) or:[p string = mthd category]]) ifFalse:[
-		    (self selectedProtocolsValue includes:BrowserList nameListEntryForALL) ifFalse:[
-			self selectProtocols:(Array with:mthd category).
-		    ]
-		].
-		self theSingleSelectedMethod ~~ mthd ifTrue:[
-		    self selectedMethods value:(Array with:mthd).
-		]
-	    ]
-	]
+        (cls := self theSingleSelectedClass) notNil ifTrue:[
+            mthd := cls compiledMethodAt:aSelector asSymbol.
+            mthd notNil ifTrue:[
+
+                "/ care for method being in another package
+                orgMode := self organizerMode value.
+                orgMode == OrganizerCanvas organizerModeProject ifTrue:[
+                    pkg := mthd package.
+                    holder := self selectedProjects.
+                    ((holder value ? #()) includes:pkg) ifFalse:[
+                        holder value:(Array with:pkg).
+                    ]
+                ].
+
+                (self selectedProtocolsValue contains:[:p | (p isNil and:[mthd category isNil]) or:[p string = mthd category]]) ifFalse:[
+                    (self selectedProtocolsValue includes:BrowserList nameListEntryForALL) ifFalse:[
+                        self selectProtocols:(Array with:mthd category).
+                    ]
+                ].
+                self theSingleSelectedMethod ~~ mthd ifTrue:[
+                    self selectedMethods value:(Array with:mthd).
+                ]
+            ]
+        ]
     ].
 
     "Created: / 04-02-2000 / 23:20:34 / cg"
@@ -51959,13 +53413,13 @@
     state := buffers at:nr.
 
     (m := state theSingleSelectedMethod) notNil ifTrue:[
-	self class addToRecentlyClosedHistory:m mclass selector:m selector
+        self addToRecentlyClosedHistory:m mclass selector:m selector
     ].
 
     "/ the buffer before that one
     prevBuffer := nr - 1.
     prevBuffer == 0 ifTrue:[
-	prevBuffer := nr.
+        prevBuffer := nr.
     ].
 
     bufferUsageOrder removeIdentical:state.
@@ -51986,16 +53440,17 @@
 
     "/ oops
     newIndex > buffers size ifTrue:[
-	selectedBuffer value:buffers size.
+        selectedBuffer value:buffers size.
     ].
 
     buffers size == 1 ifTrue:[
-	selectedBuffer value:nil.
-	buffers := bufferUsageOrder := nil.
-	bufferNameList removeAll.
+        selectedBuffer value:nil.
+        buffers := bufferUsageOrder := nil.
+        bufferNameList removeAll.
     ]
 
     "Modified: / 08-09-2012 / 21:17:10 / cg"
+    "Modified: / 02-05-2014 / 17:32:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 removeCurrentBuffer
@@ -52057,6 +53512,10 @@
     and:[ self hasOnlySmalltalkClassesSelected ]
 !
 
+canFileOutVSE
+    ^ self hasOnlySmalltalkClassesSelected 
+!
+
 canFileOutXML
     ^ XMLCoder notNil
     and:[ self hasOnlySmalltalkClassesSelected ]
@@ -52070,7 +53529,7 @@
     "can make public, if selected and any selected class is private"
 
     self selectedClassesDo:[:cls |
-	cls owningClass notNil ifTrue:[^ true].
+        cls owningClass notNil ifTrue:[^ true].
     ].
     ^ false
 
@@ -52110,7 +53569,7 @@
 
     (self theSingleSelectedClass isNil
     or:[ self theSingleSelectedClass programmingLanguage isSmalltalk ]) ifTrue:[
-	^ SmalltalkCodeGeneratorTool canUseRefactoringSupport
+        ^ SmalltalkCodeGeneratorTool canUseRefactoringSupport
     ].
     ^ false
 
@@ -52155,25 +53614,25 @@
     |searchAction codeView|
 
     codePatterns notEmptyOrNil ifTrue:[
-	codeView := self codeView.
-
-	searchAction :=
-	    [:direction :startLine :startCol :foundBlock :notFoundBlock|
-		self
-		    searchForCodePatterns:codePatterns
-		    direction:direction
-		    startLine:(codeView cursorLine ? startLine) startCol:(codeView cursorCol ? startCol)
-		    ifFound:[:charPos1 :charPos2 |
-			    codeView
-				cursorToCharacterPosition:charPos1;
-				selectFromCharacterPosition:charPos1 to:charPos2
-			]
-		    ifNotFound:notFoundBlock
-	    ].
-
-	navigationState autoSearchAction:searchAction.
-	codeView clearSearchAction. "/ searchAction
-	codeView setSearchPattern:nil.
+        codeView := self codeView.
+
+        searchAction :=
+            [:direction :startLine :startCol :foundBlock :notFoundBlock|
+                self
+                    searchForCodePatterns:codePatterns
+                    direction:direction
+                    startLine:(codeView cursorLine ? startLine) startCol:(codeView cursorCol ? startCol)
+                    ifFound:[:charPos1 :charPos2 |
+                            codeView
+                                cursorToCharacterPosition:charPos1;
+                                selectFromCharacterPosition:charPos1 to:charPos2
+                        ]
+                    ifNotFound:notFoundBlock
+            ].
+
+        navigationState autoSearchAction:searchAction.
+        codeView clearSearchAction. "/ searchAction
+        codeView setSearchPattern:nil.
     ]
 
     "Modified: / 11-05-2010 / 14:13:34 / cg"
@@ -52188,9 +53647,9 @@
 !
 
 autoSearchPattern:aString ignoreCase:doIgnoreCase
-    navigationState autoSearchPattern:aString; autoSearchIgnoreCase:doIgnoreCase.
     aString notNil ifTrue:[
-	self codeView setSearchPattern:aString ignoreCase:doIgnoreCase.
+        self navigationState autoSearchPattern:aString; autoSearchIgnoreCase:doIgnoreCase.
+        self codeView setSearchPattern:aString ignoreCase:doIgnoreCase.
     ]
 !
 
@@ -52199,27 +53658,28 @@
 
     aSelectorOrCollectionOfSelectors notNil ifTrue:[
 
-	searchAction :=
-	    [:direction :startLine :startCol :foundBlock :notFoundBlock|
-		|codeView|
-
-		codeView := self codeView.
-		self
-		    searchForSelector:aSelectorOrCollectionOfSelectors direction:direction
-		    startLine:(startLine ? codeView cursorLine) startCol:(startCol ? codeView cursorCol)
-		    ignoreCase:doIgnoreCase doMatch:doMatch
-		    ifFound:
-			[:charPos1 :charPos2 |
-			    codeView
-				cursorToCharacterPosition:charPos1;
-				selectFromCharacterPosition:charPos1 to:charPos2
-			]
-		    ifNotFound:notFoundBlock
-	    ].
-
-	navigationState autoSearchAction:searchAction.
-	self codeView clearSearchAction. "/ searchAction
-	self codeView setSearchPattern:nil.
+        searchAction :=
+            [:direction :startLine :startCol :foundBlock :notFoundBlock|
+                |codeView|
+
+                codeView := self codeView.
+                self
+                    searchForSelector:aSelectorOrCollectionOfSelectors direction:direction
+                    startLine:(startLine ? codeView cursorLine) startCol:(startCol ? codeView cursorCol)
+                    ignoreCase:doIgnoreCase doMatch:doMatch
+                    ifFound:
+                        [:charPos1 :charPos2 |
+                            codeView
+                                cursorToCharacterPosition:charPos1;
+                                selectFromCharacterPosition:charPos1 to:charPos2
+                        ]
+                    ifNotFound:notFoundBlock
+            ].
+
+        self navigationState autoSearchAction:searchAction.
+        self codeView
+            clearSearchAction; "/ searchAction
+            setSearchPattern:nil.
     ]
 !
 
@@ -52241,39 +53701,44 @@
     s := '' writeStream.
 
     (aClass isRealNameSpace) ifTrue:[
-	aClass fileOutDefinitionOn:s
-    ] ifFalse:[
-	aClass theNonMetaclass isJavaClass ifTrue:[
-	    | src |
-	    src := aClass theNonMetaclass source.
-	    src notNil ifTrue:[ ^ src ].
-	    s nextPutLine: '// *** WARNING ***'.
-	    s nextPutLine: '// Following code has been decompiled from loaded class'.
-	    s nextPutLine: '// *** WARNING ***'.
-	    s cr.
-	    aClass theNonMetaclass fileOutDefinitionOn:s
-	] ifFalse:[
-	    aClass isMeta ifTrue:[
-		aClass
-		    fileOutClassInstVarDefinitionOn:s
-		    withNameSpace:true.
-	    ] ifFalse:[
-		"/
-		"/ here, show it with a nameSpace pragma
-		"/ and prefer short names.
-		"/
-		aClass
-		    basicFileOutDefinitionOn:s
-		    withNameSpace:true
-		    withPackage:false
-	    ].
-	].
+        aClass fileOutDefinitionOn:s
+    ] ifFalse:[
+        aClass theNonMetaclass isJavaClass ifTrue:[
+            | src |
+            src := aClass theNonMetaclass source.
+            src notNil ifTrue:[ ^ src ].
+            src := aClass theNonMetaclass sourceDecompiled.
+            src notNil ifTrue:[ ^ src ].
+            s nextPutAll: '/* ';nextPutAll: (resources string:'Source not available'); nextPutAll: ' */'.
+        ] ifFalse:[
+            aClass isMeta ifTrue:[
+                aClass
+                    fileOutClassInstVarDefinitionOn:s
+                    withNameSpace:true.
+            ] ifFalse:[
+                "/
+                "/ here, show it with a nameSpace pragma
+                "/ and prefer short names.
+                "/
+"/                [
+                    aClass
+                        basicFileOutDefinitionOn:s
+                        withNameSpace:true
+                        withPackage:false
+"/                ] on:Error do:[:ex |
+"/                    s nextPutLine:'Error while asking class for its definition:';
+"/                      nextPutLine:ex description;
+"/                      cr.
+"/                    thisContext fullPrintAllOn:s.
+"/                ]
+            ].
+        ].
     ].
 
     ^ s contents withTabsExpanded.
 
     "Modified: / 10-11-2006 / 17:13:54 / cg"
-    "Modified: / 10-09-2013 / 01:31:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 17-02-2015 / 11:59:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 commentOrDocumentationStringFromClass:aClass
@@ -52290,156 +53755,164 @@
     isComment := (commentOrNil = aClass comment).
 
     commentOrNil notNil ifTrue:[
-	commentOrNil := commentOrNil asStringCollection withoutLeadingBlankLines asString
+        commentOrNil := commentOrNil asStringCollection withoutLeadingBlankLines asString
     ].
 
     infoStream := TextStream on:''.
     infoStream "cr; cr;" cr.
     commentOrNil isNil ifTrue:[
-	infoStream nextPutLine:' no comment or documentation method found'.
-    ] ifFalse:[
-	"/ nextPutLine:' Documentation:'.
-	infoStream nextPutLine:commentOrNil; cr.
-	infoStream nextPutLine:' Notice: '.
-	infoStream nextPutAll:'   the above text has been extracted from the classes '.
-	infoStream nextPutLine:(isComment ifTrue:['comment.'] ifFalse:['documentation method.']).
-	infoStream nextPutLine:'   Any change in it will be lost if you ''accept'' here.'.
-	infoStream nextPutAll:'   To change the '.
-	infoStream nextPutAll:(isComment ifTrue:['comment'] ifFalse:['documentation']).
-	infoStream nextPutAll:', switch to the '.
-	infoStream nextPutAll:(isComment ifTrue:['comment'] ifFalse:['documentation method']).
-	infoStream nextPutLine:' and ''accept'' any changes there.'.
+        infoStream nextPutLine:' no comment or documentation method found'.
+    ] ifFalse:[
+        "/ nextPutLine:' Documentation:'.
+        infoStream nextPutLine:commentOrNil; cr.
+        infoStream nextPutLine:' Notice: '.
+        infoStream nextPutAll:'   the above text has been extracted from the classes '.
+        infoStream nextPutLine:(isComment ifTrue:['comment.'] ifFalse:['documentation method.']).
+        infoStream nextPutLine:'   Any change in it will be lost if you ''accept'' here.'.
+        infoStream nextPutAll:'   To change the '.
+        infoStream nextPutAll:(isComment ifTrue:['comment'] ifFalse:['documentation']).
+        infoStream nextPutAll:', switch to the '.
+        infoStream nextPutAll:(isComment ifTrue:['comment'] ifFalse:['documentation method']).
+        infoStream nextPutLine:' and ''accept'' any changes there.'.
     ].
     infoStream cr.
 
     info := String streamContents:[:s |
-		aClass programmingLanguage writeComment:(infoStream contents) on:s
-	    ].
+                aClass programmingLanguage writeComment:(infoStream contents) on:s
+            ].
     info := info emphasizeAllWith:UserPreferences current commentEmphasisAndColor.
     ^ info
 !
 
 searchForCodePattern:codePattern direction:direction startLine:startLine startCol:startCol
-			    ifFound:foundBlock ifNotFound:notFoundBlock
-    ^ self
-	searchForCodePatterns:(Array with:codePattern)
-	direction:direction startLine:startLine startCol:startCol
-	ifFound:foundBlock ifNotFound:notFoundBlock
+                            ifFound:foundBlock ifNotFound:notFoundBlock
+    ^ self
+        searchForCodePatterns:(Array with:codePattern)
+        direction:direction startLine:startLine startCol:startCol
+        ifFound:foundBlock ifNotFound:notFoundBlock
 !
 
 searchForCodePatterns:codePatterns direction:direction
-		startLine:startLine startCol:startCol
-		ifFound:foundBlock ifNotFound:notFoundBlock
+                startLine:startLine startCol:startCol
+                ifFound:foundBlock ifNotFound:notFoundBlock
     |searcher|
 
     self parseTreeSearcherAvailable ifFalse:[ ^ self ].
 
     searcher := ParseTreeSearcher new.
     searcher
-	matchesAnyOf: codePatterns
-	do:[:aNode :answer | answer add:aNode. answer ].
-
-    ^ self
-	searchUsingSearcher:searcher
-	direction:direction
-	startLine:startLine startCol:startCol
-	ifFound:foundBlock ifNotFound:notFoundBlock.
+        matchesAnyOf: codePatterns
+        do:[:aNode :answer | answer add:aNode. answer ].
+
+    ^ self
+        searchUsingSearcher:searcher
+        direction:direction
+        startLine:startLine startCol:startCol
+        ifFound:foundBlock ifNotFound:notFoundBlock.
 !
 
 searchForSelector:aSelectorOrCollectionOfSelectors direction:direction
-			    startLine:startLine startCol:startCol
-			    ignoreCase:ignoreCase doMatch:doMatch
-			    ifFound:foundBlock ifNotFound:notFoundBlock
+                            startLine:startLine startCol:startCol
+                            ignoreCase:ignoreCase doMatch:doMatch
+                            ifFound:foundBlock ifNotFound:notFoundBlock
     |searcher|
 
     self parseTreeSearcherAvailable ifFalse:[ ^ self ].
 
     doMatch ifTrue:[
-	(aSelectorOrCollectionOfSelectors isSymbol or:[aSelectorOrCollectionOfSelectors isString]) ifTrue:[
-	    searcher := ParseTreeSearcher allMessageSendsMatching:aSelectorOrCollectionOfSelectors ignoreCase:ignoreCase.
-	] ifFalse:[
-	    searcher := ParseTreeSearcher allMessageSendsMatchingAny:aSelectorOrCollectionOfSelectors ignoreCase:ignoreCase.
-	].
-    ] ifFalse:[
-	(aSelectorOrCollectionOfSelectors isSymbol or:[aSelectorOrCollectionOfSelectors isString]) ifTrue:[
-	    searcher := ParseTreeSearcher allMessageSendsTo:aSelectorOrCollectionOfSelectors ignoreCase:ignoreCase.
-	] ifFalse:[
-	    searcher := ParseTreeSearcher allMessageSendsToAny:aSelectorOrCollectionOfSelectors ignoreCase:ignoreCase.
-	].
-    ].
-    ^ self
-	searchUsingSearcher:searcher
-	direction:direction
-	startLine:startLine startCol:startCol
-	ifFound:foundBlock ifNotFound:notFoundBlock.
+        (aSelectorOrCollectionOfSelectors isSymbol or:[aSelectorOrCollectionOfSelectors isString]) ifTrue:[
+            searcher := ParseTreeSearcher allMessageSendsMatching:aSelectorOrCollectionOfSelectors ignoreCase:ignoreCase.
+        ] ifFalse:[
+            searcher := ParseTreeSearcher allMessageSendsMatchingAny:aSelectorOrCollectionOfSelectors ignoreCase:ignoreCase.
+        ].
+    ] ifFalse:[
+        (aSelectorOrCollectionOfSelectors isSymbol or:[aSelectorOrCollectionOfSelectors isString]) ifTrue:[
+            searcher := ParseTreeSearcher allMessageSendsTo:aSelectorOrCollectionOfSelectors ignoreCase:ignoreCase.
+        ] ifFalse:[
+            searcher := ParseTreeSearcher allMessageSendsToAny:aSelectorOrCollectionOfSelectors ignoreCase:ignoreCase.
+        ].
+    ].
+    ^ self
+        searchUsingSearcher:searcher
+        direction:direction
+        startLine:startLine startCol:startCol
+        ifFound:foundBlock ifNotFound:notFoundBlock.
 !
 
 searchForVariable:aVariableNameOrCollectionOfVariableNames direction:direction
-			    startLine:startLine startCol:startCol
-			    readers:searchReaders writers:searchWriters
-			    ifFound:foundBlock ifNotFound:notFoundBlock
-    |searcher|
+                            startLine:startLine startCol:startCol
+                            readers:searchReaders writers:searchWriters
+                            ifFound:foundBlock ifNotFound:notFoundBlock
+    |searcher namesWithAndWithoutNameSpace|
 
     self parseTreeSearcherAvailable ifFalse:[ ^ self ].
 
+    namesWithAndWithoutNameSpace := Set withAll:aVariableNameOrCollectionOfVariableNames.
+    aVariableNameOrCollectionOfVariableNames do:[:each |
+        (each includesString:'::') ifTrue:[
+            namesWithAndWithoutNameSpace add:(each copyFrom:(each lastIndexOf:$:)+1).        
+        ]
+    ].
+
     searchReaders ifTrue:[
-	searchWriters ifTrue:[
-	    searcher := ParseTreeSearcher allReferencesToAnyVariableIn:aVariableNameOrCollectionOfVariableNames.
-	] ifFalse:[
-	    searcher := ParseTreeSearcher allReadsOfAnyVariableIn:aVariableNameOrCollectionOfVariableNames.
-	].
-    ] ifFalse:[
-	searchWriters ifTrue:[
-	    searcher := ParseTreeSearcher allModificationsOfAnyVariableIn:aVariableNameOrCollectionOfVariableNames.
-	] ifFalse:[
-	    self error:'missing search criteria'
-	].
+        searchWriters ifTrue:[
+            searcher := ParseTreeSearcher allReferencesToAnyVariableIn:namesWithAndWithoutNameSpace.
+        ] ifFalse:[
+            searcher := ParseTreeSearcher allReadsOfAnyVariableIn:namesWithAndWithoutNameSpace.
+        ].
+    ] ifFalse:[
+        searchWriters ifTrue:[
+            searcher := ParseTreeSearcher allModificationsOfAnyVariableIn:namesWithAndWithoutNameSpace.
+        ] ifFalse:[
+            self error:'missing search criteria'
+        ].
     ].
     ^ self searchUsingSearcher:searcher direction:direction
-		    startLine:startLine startCol:startCol
-		    ifFound:foundBlock ifNotFound:notFoundBlock.
+                    startLine:startLine startCol:startCol
+                    ifFound:foundBlock ifNotFound:notFoundBlock.
 !
 
 searchUsingSearcher:searcher direction:direction
-			    startLine:startLine startCol:startCol
-			    ifFound:foundBlock ifNotFound:notFoundBlock
+                            startLine:startLine startCol:startCol
+                            ifFound:foundBlock ifNotFound:notFoundBlock
     |codeTree nodes searchStartPos prevNode|
 
     RBParser isNil ifTrue:[^ self].
+
     codeTree := RBParser
-		    parseSearchMethod:self codeView contents
-		    onError: [:str :pos | "Transcript showCR:str. Transcript showCR:pos." nil].
+                    parseSearchMethod:self codeView contents
+                    onError: [:str :pos | "Transcript showCR:str. Transcript showCR:pos." nil].
 
     codeTree notNil ifTrue:[
-	searcher executeTree:codeTree initialAnswer:(nodes := OrderedCollection new).
-
-	searchStartPos := self codeView characterPositionOfLine:startLine col:startCol.
-	nodes do:[:aNode |
-	    |nodeStartPos nodeEndPos selStartLine selEndLine|
-
-	    nodeStartPos := aNode start.
-	    nodeEndPos := aNode stop.
+        searcher executeTree:codeTree initialAnswer:(nodes := OrderedCollection new).
+
+        searchStartPos := self codeView characterPositionOfLine:startLine col:startCol.
+        nodes do:[:aNode |
+            |nodeStartPos nodeEndPos selStartLine selEndLine|
+
+            nodeStartPos := aNode start.
+            nodeEndPos := aNode stop.
 
 "/ self codeView selectFromCharacterPosition:nodeStartPos to:nodeEndPos.
 
-	    direction == #backward ifTrue:[
-		nodeEndPos >= (searchStartPos-1) ifTrue:[
-		    prevNode isNil ifTrue:[^ self].
-		    foundBlock value:(prevNode start) value:(prevNode stop).
-		    ^ self.
-		].
-		prevNode := aNode.
-	    ] ifFalse:[
-		nodeStartPos >= searchStartPos ifTrue:[
-		    foundBlock value:nodeStartPos value:nodeEndPos.
-		    ^ self.
-		].
-	    ].
-	].
-	prevNode notNil ifTrue:[
-	    foundBlock value:(prevNode start) value:(prevNode stop).
-	    ^ self
-	].
+            direction == #backward ifTrue:[
+                nodeEndPos >= (searchStartPos-1) ifTrue:[
+                    prevNode isNil ifTrue:[^ self].
+                    foundBlock value:(prevNode start) value:(prevNode stop).
+                    ^ self.
+                ].
+                prevNode := aNode.
+            ] ifFalse:[
+                nodeStartPos >= searchStartPos ifTrue:[
+                    foundBlock value:nodeStartPos value:nodeEndPos.
+                    ^ self.
+                ].
+            ].
+        ].
+        prevNode notNil ifTrue:[
+            foundBlock value:(prevNode start) value:(prevNode stop).
+            ^ self
+        ].
     ].
     notFoundBlock value
 !
@@ -52448,27 +53921,27 @@
     |searchAction|
 
     aCollectionOfVariables size > 0 ifTrue:[
-	searchAction :=
-	    [:direction :startLine :startCol :foundBlock :notFoundBlock|
-		|codeView|
-
-		codeView := self codeView.
-		self
-		    searchForVariable:aCollectionOfVariables direction:direction
-		    startLine:(codeView cursorLine ? startLine) startCol:(codeView cursorCol ? startCol)
-		    readers:doReaders writers:doWriters
-		    ifFound:
-			[:charPos1 :charPos2 |
-
-			    codeView
-				cursorToCharacterPosition:charPos1;
-				selectFromCharacterPosition:charPos1 to:charPos2
-			]
-		    ifNotFound:(asAutoSearch ifTrue:[notFoundBlock] ifFalse:[nil])
-	    ].
-
-	navigationState autoSearchAction:searchAction.
-	self codeView searchAction:searchAction
+        searchAction :=
+            [:direction :startLine :startCol :foundBlock :notFoundBlock|
+                |codeView|
+
+                codeView := self codeView.
+                self
+                    searchForVariable:aCollectionOfVariables direction:direction
+                    startLine:(codeView cursorLine ? startLine) startCol:(codeView cursorCol ? startCol)
+                    readers:doReaders writers:doWriters
+                    ifFound:
+                        [:charPos1 :charPos2 |
+
+                            codeView
+                                cursorToCharacterPosition:charPos1;
+                                selectFromCharacterPosition:charPos1 to:charPos2
+                        ]
+                    ifNotFound:(asAutoSearch ifTrue:[notFoundBlock] ifFalse:[nil])
+            ].
+
+        navigationState autoSearchAction:searchAction.
+        self codeView searchAction:searchAction
     ]
 !
 
@@ -52479,30 +53952,30 @@
 
     theNonMetaclass := aClass theNonMetaclass.
     codeAspect == #classOwnershipGraph ifTrue:[
-	self showClassOwnershipGraph:theNonMetaclass.
-	codeView hideCursor.
-	^ self
+        self showClassOwnershipGraph:theNonMetaclass.
+        codeView hideCursor.
+        ^ self
     ].
 
     codeView showCursor.
     codeView isCodeView2 ifTrue:[
-	codeView enableAllServices
+        codeView enableAllServices
     ].
 
     codeAspect == #classComment ifTrue:[
-	self showClassComment:theNonMetaclass.
-	^ self.
+        self showClassComment:theNonMetaclass.
+        ^ self.
     ].
     codeAspect == #classHierarchy ifTrue:[
-	self showClassHierarchy:theNonMetaclass.
-	^ self.
+        self showClassHierarchy:theNonMetaclass.
+        ^ self.
     ].
 
     ((codeAspect == #primitiveDefinitions)
     or:[ (codeAspect == #primitiveFunctions)
     or:[ (codeAspect == #primitiveVariables) ]]) ifTrue:[
-	self showClassPrimitive:codeAspect class:theNonMetaclass.
-	^ self.
+        self showClassPrimitive:codeAspect class:theNonMetaclass.
+        ^ self.
     ].
 
     self codeAspect: #classDefinition.
@@ -52519,16 +53992,16 @@
 "/    self selectedProtocols value:nil.
 
     aClass notNil ifTrue:[
-	aClass isLoaded ifFalse:[
-	    code := 'Class is not loaded.'.
-	] ifTrue:[
-	    code := aClass comment.
-	].
-
-	codeView := self codeView.
-	codeView contents:code.
-	codeView modified:false.
-	navigationState realModifiedState:false.
+        aClass isLoaded ifFalse:[
+            code := 'Class is not loaded.'.
+        ] ifTrue:[
+            code := aClass comment.
+        ].
+
+        codeView := self codeView.
+        codeView contents:code.
+        codeView modified:false.
+        navigationState realModifiedState:false.
     ]
 
     "Modified: / 8.11.2001 / 23:08:31 / cg"
@@ -52549,7 +54022,7 @@
      Don't format the code here, do it in background instead..."
     definition size < 2500 ifTrue:[
         self doSyntaxColoring value ~~ false ifTrue:[
-            highlighter := aClass syntaxHighlighterClass.
+            highlighter := self syntaxHighlighterForClass: aClass.
             highlighter notNil ifTrue:[
                 definition := highlighter formatClassDefinition:definition in: aClass.
             ]
@@ -52580,23 +54053,25 @@
     self updatePackageInfoForClass:aClass.
 
     "Modified: / 27-07-2012 / 22:26:12 / cg"
-    "Modified: / 26-11-2013 / 23:39:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 27-04-2014 / 22:36:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 showClassDocumentation
+    "updates the generated HTML documentation"
+
     |cls text|
 
     "/ show classes documentation
     cls := self theSingleSelectedClass.
     cls notNil ifTrue:[
-	cls isLoaded ifFalse:[
-	    text := 'Class is not loaded.'.
-	] ifTrue:[
-	    text := HTMLDocGenerator htmlDocOf:cls.
-	].
-	self classDocumentationHolder value:text.
-    ] ifFalse:[
-	self showNothing.
+        cls isLoaded ifFalse:[
+            text := 'Class is not loaded.'.
+        ] ifTrue:[
+            text := HTMLDocGenerator htmlDocOf:cls.
+        ].
+        self classDocumentationHolder value:text.
+    ] ifFalse:[
+        self showNothing.
     ].
 
     "Modified: / 01-03-2007 / 20:58:34 / cg"
@@ -52610,20 +54085,20 @@
     self setAcceptActionForNothing.
 
     aClass notNil ifTrue:[
-	s := '' writeStream.
-	indent := 0.
-	aClass withAllSuperclasses reverse do:[:cls |
-	    s spaces:indent * 2.
-	    s nextPutAll:cls name.
-	    s cr.
-	    indent := indent + 1.
-	].
-	code := s contents.
-
-	codeView := self codeView.
-	codeView contents:code.
-	codeView modified:false.
-	navigationState realModifiedState:false.
+        s := '' writeStream.
+        indent := 0.
+        aClass withAllSuperclasses reverseDo:[:cls |
+            s spaces:indent * 2.
+            s nextPutAll:cls name.
+            s cr.
+            indent := indent + 1.
+        ].
+        code := s contents.
+
+        codeView := self codeView.
+        codeView contents:code.
+        codeView modified:false.
+        navigationState realModifiedState:false.
     ]
 
     "Modified: / 8.11.2001 / 23:07:57 / cg"
@@ -52637,7 +54112,7 @@
     self codeAspect:#classOwnershipGraph.
     self setNoAcceptAction.
     (codeView := self codeView) isCodeView2 ifTrue:[
-	codeView disableAllServices
+        codeView disableAllServices
     ].
     codeView list:#().
 
@@ -52647,215 +54122,215 @@
 
     mgr := aClass sourceCodeManager.
     [
-	[
-	    self withWaitCursorDo:[
-		startTime := Timestamp now.
-		progress := 0 asValue.
-
-		log := mgr
-			revisionLogOf:aClass
-			fromRevision:nil toRevision:nil finishAfter:nil.
-
-		graph := OwnershipGraph new.
-		first := true.
-		numRevisionsDone := 0.
-		allRevisions := log at:#revisions.
-		stop := false.
-
-		allRevisions reverseDo:[:eachRevision |
-		    |author date revision codeStream codeLines diffs deltaSummary nDelta|
-
-		    author := eachRevision at:#author.
-		    author isNil ifTrue:[self halt].
-		    revision := eachRevision at:#revision.
-		    date := Timestamp readFrom:(eachRevision at:#date).
-		    stop ifTrue:[ ^ self ].
-		    first ifTrue:[
-			codeStream := mgr getSourceStreamFor:aClass revision:revision.
-			codeLines := codeStream contents.
-			codeStream close.
-
-			numLinesByAuthor := Bag new.
-			numLinesByAuthor add:author withOccurrences:codeLines size.
-			first := false.
-		    ] ifFalse:[
-			lineInfo isNil ifTrue:[
-			    lineInfo := OrderedCollection new:(numLinesByAuthor size) withAll:prevAuthor.
-			].
-			"/ can skip the expensive diff info (and use the log's summary),
-			"/ iff the author is the same as the previous author, and he completely authored the previous version
-			((author = prevAuthor)
-			  and:[ (numLinesByAuthor occurrencesOf:author) = numLinesByAuthor size "/ prev version completely by prev author
-			  and:[ (deltaSummary := eachRevision at:#numberOfChangedLines ifAbsent:nil) notEmptyOrNil
-			  and:[
-			    nDelta := deltaSummary asCollectionOfWords collect:[:w | Number readFrom:w onError:nil] as:OrderedCollection.
-			    (nDelta includes:nil) not
-			  ]]])
-			ifTrue:[
-			    nDelta := nDelta sum.
-			    nDelta > 0 ifTrue:[
-				lineInfo add:author withOccurrences:nDelta
-			    ] ifFalse:[
-				nDelta < 0 ifTrue:[
-				    lineInfo removeLast:nDelta negated
-				]
-			    ]
-			] ifFalse:[
-			    "/ ask for the diff-list and update the auther-per-line info
-			    "/ self activityNotification:('diffing %1 against %2' bindWith:prevRevision with:revision).
-			    diffs := mgr
-					diffListFor:aClass fileName:nil directory:nil module:nil
-					revision1:prevRevision revision2:revision.
-
-			    [
-				|state delta countOld countNew linesOld linesNew|
-
-				delta := 0.
-				countOld := countNew := 0.
-				"/ linesOld := OrderedCollection new.
-				"/ linesNew := OrderedCollection new.
-				state := #initial.
-
-				diffs do:[:entry |
-				    |s nr1a nr1b op nr2a nr2b|
-
-				    state ~~ #initial ifTrue:[
-					state == #changed1 ifTrue:[
-					    (entry startsWith:'<') ifTrue:[
-						"/ linesOld add:entry.
-						countOld := countOld - 1.
-					    ] ifFalse:[
-						self assert:(countOld == 0).
-						(entry startsWith:'---') ifTrue:[
-						    state := #changed2
-						] ifFalse:[
-						    self halt.
-						    state := #initial.
-						]
-					    ]
-					] ifFalse:[
-					    state == #changed2 ifTrue:[
-						(entry startsWith:'>') ifTrue:[
-						    "/ linesNew add:entry.
-						    countNew := countNew - 1.
-						] ifFalse:[
-						    self assert:(countNew == 0).
-						    entry first isDigit ifFalse:[
-							self halt
-						    ].
-						    state := #initial.
-						]
-					    ] ifFalse:[
-						state == #added ifTrue:[
-						    (entry startsWith:'>') ifTrue:[
-							"/ linesNew add:entry.
-							countNew := countNew - 1.
-						    ] ifFalse:[
-							self assert:(countNew == 0).
-							entry first isDigit ifFalse:[
-							    self halt
-							].
-							state := #initial.
-						    ]
-						] ifFalse:[
-						    state == #deleted ifTrue:[
-							(entry startsWith:'<') ifTrue:[
-							    "/ linesOld add:entry.
-							    countOld := countOld - 1.
-							] ifFalse:[
-							    self assert:(countOld == 0).
-							    entry first isDigit ifFalse:[
-								self halt
-							    ].
-							    state := #initial.
-							]
-						    ] ifFalse:[
-							self halt.
-						    ]
-						]
-					    ]
-					]
-				    ].
-
-				    "entry is of the form <nr> <op> <offs> [<offs2>]"
-				    state == #initial ifTrue:[
-					self assert:(entry first isDigit).
-					s := ReadStream on:entry.
-					nr1a := nr1b := Integer readFrom:s.
-					s peek == $, ifTrue:[
-					    s next.
-					    nr1b := Integer readFrom:s
-					].
-					op := s next.
-					nr2a := nr2b := Integer readFrom:s.
-					s peek == $, ifTrue:[
-					    s next.
-					    nr2b := Integer readFrom:s
-					].
-
-					op == $c ifTrue:[
-					    state := #changed1.
-					    countOld := (nr1b - nr1a + 1).
-					    countNew := (nr2b - nr2a + 1).
-					    lineInfo removeFromIndex:nr1a+delta toIndex:nr1a+delta+countOld-1.
-					    lineInfo addAll:(Array new:countNew withAll:author) afterIndex:nr1a+delta.
-					    delta := delta - countOld + countNew.
-					] ifFalse:[
-					    (op == $a) ifTrue:[
-						state := #added.
-						countNew := (nr2b - nr2a + 1).
-						lineInfo addAll:(Array new:countNew withAll:author) afterIndex:nr1a+delta.
-						delta := delta + countNew.
-					    ] ifFalse:[
-						op == $d ifTrue:[
-						    state := #deleted.
-						    countOld := (nr1b - nr1a + 1).
-						    lineInfo removeFromIndex:nr1a+delta toIndex:nr1a+delta+countOld-1.
-						    delta := delta - countOld.
-						] ifFalse:[
-						    self halt:'unexpected diff entry'.
-						]
-					    ]
-					].
-				    ].
-				]
-			    ] value.
-			].
-			numLinesByAuthor := lineInfo asBag.
-		    ].
-		    graph addRevision:revision author:author date:date lineOwnership:numLinesByAuthor.
-		    prevAuthor := author.
-		    prevRevision := revision.
-
-		    numRevisionsDone := numRevisionsDone + 1.
-		    progress value:(numRevisionsDone / allRevisions size).
-		    indicator isNil ifTrue:[
-			(Timestamp now - startTime) > 10 ifTrue:[
-			    indicator := ProgressIndicator
-					    progressOpenOn:progress
-					    title:'Fetching deltas'
-					    label:'Fetching revisions takes some time...'.
-			    "/ indicator runs another thread
-			    (indicator topView addAbortButton)
-				label:'Stop this';
-				action:[
-				    stop := true.
-				    self infoLabelHolder value:'One moment, please...'.
-				    indicator topView label:'Stopping...'
-				].
-			].
-		    ].
-		].
-		graph generateFormFor:codeView.
-		codeView list:(Array with:graph).
-	    ]
-	] ensure:[
-	    self activityNotification:nil.
-	    indicator notNil ifTrue:[ indicator topView close ].
-	].
+        [
+            self withWaitCursorDo:[
+                startTime := Timestamp now.
+                progress := 0 asValue.
+                self activityNotification:'Fetching version info for ownership graph'.
+                log := mgr
+                        revisionLogOf:aClass
+                        fromRevision:nil toRevision:nil finishAfter:nil.
+
+                graph := OwnershipGraph new.
+                first := true.
+                numRevisionsDone := 0.
+                allRevisions := log at:#revisions.
+                stop := false.
+
+                allRevisions reverseDo:[:eachRevision |
+                    |author date revision codeStream codeLines diffs deltaSummary nDelta|
+
+                    author := eachRevision at:#author.
+                    author isNil ifTrue:[self halt].
+                    revision := eachRevision at:#revision.
+                    date := Timestamp readFrom:(eachRevision at:#date).
+                    stop ifTrue:[ ^ self ].
+                    first ifTrue:[
+                        codeStream := mgr getSourceStreamFor:aClass revision:revision.
+                        codeLines := codeStream contents.
+                        codeStream close.
+
+                        numLinesByAuthor := Bag new.
+                        numLinesByAuthor add:author withOccurrences:codeLines size.
+                        first := false.
+                    ] ifFalse:[
+                        lineInfo isNil ifTrue:[
+                            lineInfo := OrderedCollection new:(numLinesByAuthor size) withAll:prevAuthor.
+                        ].
+                        "/ can skip the expensive diff info (and use the log's summary),
+                        "/ iff the author is the same as the previous author, and he completely authored the previous version
+                        ((author = prevAuthor)
+                          and:[ (numLinesByAuthor occurrencesOf:author) = numLinesByAuthor size "/ prev version completely by prev author
+                          and:[ (deltaSummary := eachRevision at:#numberOfChangedLines ifAbsent:nil) notEmptyOrNil
+                          and:[
+                            nDelta := deltaSummary asCollectionOfWords collect:[:w | Number readFrom:w onError:nil] as:OrderedCollection.
+                            (nDelta includes:nil) not
+                          ]]])
+                        ifTrue:[
+                            nDelta := nDelta sum.
+                            nDelta > 0 ifTrue:[
+                                lineInfo add:author withOccurrences:nDelta
+                            ] ifFalse:[
+                                nDelta < 0 ifTrue:[
+                                    lineInfo removeLast:nDelta negated
+                                ]
+                            ]
+                        ] ifFalse:[
+                            "/ ask for the diff-list and update the auther-per-line info
+                            "/ self activityNotification:('diffing %1 against %2' bindWith:prevRevision with:revision).
+                            diffs := mgr
+                                        diffListFor:aClass fileName:nil directory:nil module:nil
+                                        revision1:prevRevision revision2:revision.
+
+                            [
+                                |state delta countOld countNew linesOld linesNew|
+
+                                delta := 0.
+                                countOld := countNew := 0.
+                                "/ linesOld := OrderedCollection new.
+                                "/ linesNew := OrderedCollection new.
+                                state := #initial.
+
+                                diffs do:[:entry |
+                                    |s nr1a nr1b op nr2a nr2b|
+
+                                    state ~~ #initial ifTrue:[
+                                        state == #changed1 ifTrue:[
+                                            (entry startsWith:'<') ifTrue:[
+                                                "/ linesOld add:entry.
+                                                countOld := countOld - 1.
+                                            ] ifFalse:[
+                                                self assert:(countOld == 0).
+                                                (entry startsWith:'---') ifTrue:[
+                                                    state := #changed2
+                                                ] ifFalse:[
+                                                    self halt.
+                                                    state := #initial.
+                                                ]
+                                            ]
+                                        ] ifFalse:[
+                                            state == #changed2 ifTrue:[
+                                                (entry startsWith:'>') ifTrue:[
+                                                    "/ linesNew add:entry.
+                                                    countNew := countNew - 1.
+                                                ] ifFalse:[
+                                                    self assert:(countNew == 0).
+                                                    entry first isDigit ifFalse:[
+                                                        self halt
+                                                    ].
+                                                    state := #initial.
+                                                ]
+                                            ] ifFalse:[
+                                                state == #added ifTrue:[
+                                                    (entry startsWith:'>') ifTrue:[
+                                                        "/ linesNew add:entry.
+                                                        countNew := countNew - 1.
+                                                    ] ifFalse:[
+                                                        self assert:(countNew == 0).
+                                                        entry first isDigit ifFalse:[
+                                                            self halt
+                                                        ].
+                                                        state := #initial.
+                                                    ]
+                                                ] ifFalse:[
+                                                    state == #deleted ifTrue:[
+                                                        (entry startsWith:'<') ifTrue:[
+                                                            "/ linesOld add:entry.
+                                                            countOld := countOld - 1.
+                                                        ] ifFalse:[
+                                                            self assert:(countOld == 0).
+                                                            entry first isDigit ifFalse:[
+                                                                self halt
+                                                            ].
+                                                            state := #initial.
+                                                        ]
+                                                    ] ifFalse:[
+                                                        self halt.
+                                                    ]
+                                                ]
+                                            ]
+                                        ]
+                                    ].
+
+                                    "entry is of the form <nr> <op> <offs> [<offs2>]"
+                                    state == #initial ifTrue:[
+                                        self assert:(entry first isDigit).
+                                        s := ReadStream on:entry.
+                                        nr1a := nr1b := Integer readFrom:s.
+                                        s peek == $, ifTrue:[
+                                            s next.
+                                            nr1b := Integer readFrom:s
+                                        ].
+                                        op := s next.
+                                        nr2a := nr2b := Integer readFrom:s.
+                                        s peek == $, ifTrue:[
+                                            s next.
+                                            nr2b := Integer readFrom:s
+                                        ].
+
+                                        op == $c ifTrue:[
+                                            state := #changed1.
+                                            countOld := (nr1b - nr1a + 1).
+                                            countNew := (nr2b - nr2a + 1).
+                                            lineInfo removeFromIndex:nr1a+delta toIndex:nr1a+delta+countOld-1.
+                                            lineInfo addAll:(Array new:countNew withAll:author) afterIndex:nr1a+delta.
+                                            delta := delta - countOld + countNew.
+                                        ] ifFalse:[
+                                            (op == $a) ifTrue:[
+                                                state := #added.
+                                                countNew := (nr2b - nr2a + 1).
+                                                lineInfo addAll:(Array new:countNew withAll:author) afterIndex:nr1a+delta.
+                                                delta := delta + countNew.
+                                            ] ifFalse:[
+                                                op == $d ifTrue:[
+                                                    state := #deleted.
+                                                    countOld := (nr1b - nr1a + 1).
+                                                    lineInfo removeFromIndex:nr1a+delta toIndex:nr1a+delta+countOld-1.
+                                                    delta := delta - countOld.
+                                                ] ifFalse:[
+                                                    self halt:'unexpected diff entry'.
+                                                ]
+                                            ]
+                                        ].
+                                    ].
+                                ]
+                            ] value.
+                        ].
+                        numLinesByAuthor := lineInfo asBag.
+                    ].
+                    graph addRevision:revision author:author date:date lineOwnership:numLinesByAuthor.
+                    prevAuthor := author.
+                    prevRevision := revision.
+
+                    numRevisionsDone := numRevisionsDone + 1.
+                    progress value:(numRevisionsDone / allRevisions size).
+                    indicator isNil ifTrue:[
+                        (Timestamp now secondDeltaFrom: startTime) > 10 ifTrue:[
+                            indicator := ProgressIndicator
+                                            progressOpenOn:progress
+                                            title:'Fetching deltas'
+                                            label:('Fetching %1 revisions takes some time...' bindWith:allRevisions size).
+                            "/ indicator runs another thread
+                            (indicator topView addAbortButton)
+                                label:'Stop this';
+                                action:[
+                                    stop := true.
+                                    self infoLabelHolder value:'One moment, please...'.
+                                    indicator topView label:'Stopping...'
+                                ].
+                        ].
+                    ].
+                ].
+                graph generateFormFor:codeView.
+                codeView list:(Array with:graph).
+            ]
+        ] ensure:[
+            self activityNotification:nil.
+            indicator notNil ifTrue:[ indicator topView close ].
+        ].
     ] ifCurtailed:[
-	self showClassDefinition:aClass.
-	indicator := nil.
+        self showClassDefinition:aClass.
+        indicator := nil.
     ]
 !
 
@@ -52865,23 +54340,23 @@
     self codeAspect:aspect.
 
     aClass isLoaded ifFalse:[
-	primCode := 'Class is not loaded'.
-	self setAcceptActionForNothing.
+        primCode := 'Class is not loaded'.
+        self setAcceptActionForNothing.
     ] ifTrue:[
-	aspect == #primitiveDefinitions ifTrue:[
-	    primCode := aClass primitiveDefinitionsStringOrDefault.
-	] ifFalse:[
-	    aspect == #primitiveFunctions ifTrue:[
-		primCode := aClass primitiveFunctionsStringOrDefault.
-	    ] ifFalse:[
-		aspect == #primitiveVariables ifTrue:[
-		    primCode := aClass primitiveVariablesStringOrDefault.
-		] ifFalse:[
-		    self error:'unknown primitive aspect'.
-		]
-	    ]
-	].
-	self setAcceptAction:[:theCode | self doAcceptClassPrimitive:theCode].
+        aspect == #primitiveDefinitions ifTrue:[
+            primCode := aClass primitiveDefinitionsStringOrDefault.
+        ] ifFalse:[
+            aspect == #primitiveFunctions ifTrue:[
+                primCode := aClass primitiveFunctionsStringOrDefault.
+            ] ifFalse:[
+                aspect == #primitiveVariables ifTrue:[
+                    primCode := aClass primitiveVariablesStringOrDefault.
+                ] ifFalse:[
+                    self error:'unknown primitive aspect'.
+                ]
+            ]
+        ].
+        self setAcceptAction:[:theCode | self doAcceptClassPrimitive:theCode].
     ].
 
     codeView := self codeView.
@@ -52903,47 +54378,47 @@
 
     text := '%1 (%2) : %3'.
     val isNumber ifTrue:[
-	text := '%1 (%2) : %3 (%4)'.
-	valText := val printString.
-    ] ifFalse:[
-	val isLiteral ifTrue:[
-	    text := '%1 (%2) : %4'.
-	    lines := val storeString asCollectionOfLines.
-	    valText := lines first contractTo:30.
-	    valText := valText copy.
-	    valText replaceAllForWhich:[:ch | ch isControlCharacter] with:$?.
-	    lines size > 1 ifTrue:[
-		valText := valText , '...'.
-	    ].
-	] ifFalse:[
-	    val isCollection ifTrue:[
-		text := '%1 (%2) : %3 (%4)'.
-		valText := val isEmpty
-			    ifTrue:['empty']
-			    ifFalse:['size: ' , val size printString].
-	    ] ifFalse:[
-		val isBehavior ifTrue:[
-		    (val isSubclassOf:Error) ifTrue:[
-			text := '%1 (%2) : %4 (an Error subclass)'.
-			valText := val name.
-		    ] ifFalse:[
-			(val isSubclassOf:Exception) ifTrue:[
-			    text := '%1 (%2) : %4 (an Exception subclass)'.
-			    valText := val name.
-			] ifFalse:[
-			    text := '%1 (%2) : %4'.
-			    valText := val name.
-			]
-		    ]
-		]
-	    ]
-	].
+        text := '%1 (%2) : %3 (%4)'.
+        valText := val printString.
+    ] ifFalse:[
+        val isLiteral ifTrue:[
+            text := '%1 (%2) : %4'.
+            lines := val storeString asCollectionOfLines.
+            valText := lines first contractTo:30.
+            valText := valText copy.
+            valText replaceAllForWhich:[:ch | ch isControlCharacter] with:$?.
+            lines size > 1 ifTrue:[
+                valText := valText , '...'.
+            ].
+        ] ifFalse:[
+            val isCollection ifTrue:[
+                text := '%1 (%2) : %3 (%4)'.
+                valText := val isEmpty
+                            ifTrue:['empty']
+                            ifFalse:['size: ' , val size printString].
+            ] ifFalse:[
+                val isBehavior ifTrue:[
+                    (val isSubclassOf:Error) ifTrue:[
+                        text := '%1 (%2) : %4 (an Error subclass)'.
+                        valText := val name.
+                    ] ifFalse:[
+                        (val isSubclassOf:Exception) ifTrue:[
+                            text := '%1 (%2) : %4 (an Exception subclass)'.
+                            valText := val name.
+                        ] ifFalse:[
+                            text := '%1 (%2) : %4'.
+                            valText := val name.
+                        ]
+                    ]
+                ]
+            ]
+        ].
     ].
     text := text
-		bindWith:var allBold
-		with:(aClass name)
-		with:(val class nameWithArticle)
-		with:valText.
+                bindWith:var allBold
+                with:(aClass name)
+                with:(val class nameWithArticle)
+                with:valText.
     self showInfo:text.
 !
 
@@ -52962,40 +54437,40 @@
     code := codeString.
 
     (codeView := self codeView) notNil ifTrue:[
-	codeView numberOfLines < 1000 ifTrue:[
-	    shownCode := codeView contents.
-	].
-	prevCode := (shownCode ? '') asString.
-	(codeView modified
-	or:[ prevCode isNil
-	or:[ code isNil
-	or:[ (prevCode asText sameStringAndEmphasisAs:(code ? '') asString asText) not
-	or:[(prevCode withTabsExpanded sameStringAndEmphasisAs: code withTabsExpanded) not]]]]) ifTrue:[
-	    code = self codeHolder value ifTrue:[
-		"/ a reselect without accepting before ...
-		"/ sigh - must use setValue, and enforce a change
-		"/ (workaround for proceed after changed text-warning)
-		self codeHolder setValue:code.
-		"/ code = shownCode ifFalse:[
-		    codeView setContents:code.
-		"/ ]
-	    ] ifFalse:[
-		self codeHolder value:code.
-	    ].
-	    doScrollToTop ifTrue:[
-		codeView cursorHome.
-	    ]
-	]
-    ] ifFalse:[
-	code = self codeHolder value ifTrue:[
-	    "/ a reselect without accepting before ...
-	    "/ sigh - must use setValue, and enforce a change
-	    "/ (workaround for proceed after changed text-warning)
-	    self codeHolder setValue:code.
+        codeView numberOfLines < 1000 ifTrue:[
+            shownCode := codeView contents.
+        ].
+        prevCode := (shownCode ? '') asString.
+        (codeView modified
+        or:[ prevCode isNil
+        or:[ code isNil
+        or:[ (prevCode asText sameStringAndEmphasisAs:(code ? '') asString asText) not
+        or:[(prevCode withTabsExpanded sameStringAndEmphasisAs: code withTabsExpanded) not]]]]) ifTrue:[
+            code = self codeHolder value ifTrue:[
+                "/ a reselect without accepting before ...
+                "/ sigh - must use setValue, and enforce a change
+                "/ (workaround for proceed after changed text-warning)
+                self codeHolder setValue:code.
+                "/ code = shownCode ifFalse:[
+                    codeView setContents:code.
+                "/ ]
+            ] ifFalse:[
+                self codeHolder value:code.
+            ].
+            doScrollToTop ifTrue:[
+                codeView cursorHome.
+            ]
+        ]
+    ] ifFalse:[
+        code = self codeHolder value ifTrue:[
+            "/ a reselect without accepting before ...
+            "/ sigh - must use setValue, and enforce a change
+            "/ (workaround for proceed after changed text-warning)
+            self codeHolder setValue:code.
 "/            codeView setContents:aString.
-	] ifFalse:[
-	    self codeHolder value:code.
-	]
+        ] ifFalse:[
+            self codeHolder value:code.
+        ]
     ].
 
     "Created: / 01-03-2000 / 11:38:07 / cg"
@@ -53006,8 +54481,8 @@
     |definition|
 
     aClass isLoaded ifFalse:[
-	self showClassDefinition:aClass.
-	^ self.
+        self showClassDefinition:aClass.
+        ^ self.
     ].
     definition := aClass source.
     self showCode:definition.
@@ -53023,10 +54498,10 @@
     "/ show full classes source - set accept action for fileIn
     cls := self theSingleSelectedClass.
     cls notNil ifTrue:[
-	self setAcceptActionForClass.
-	self showFullClassDefinition:cls.
-    ] ifFalse:[
-	self showNothing.
+        self setAcceptActionForClass.
+        self showFullClassDefinition:cls.
+    ] ifFalse:[
+        self showNothing.
     ].
 
     navigationState modified:false.
@@ -53046,94 +54521,98 @@
 
     doAutoFormat := self doAutoFormat value and:[RBFormatter notNil and:[mthd programmingLanguage isSmalltalk]].
     doShowFullClassSource := self navigationState isFullClassSourceBrowser
-				or:[mthd isJavaMethod and:[JavaMethod showFullSource]].
+                                or:[mthd isJavaMethod and:[JavaMethod showFullSource]].
     doUpdateCode := true.
     codeView := self codeView.
     self assert:codeView notNil.
 
     code := self sourceOfMethod:mthd.
-    code isText ifTrue:[
-	"/Already done...
-	doSyntaxColoring := false.
-    ] ifFalse:[
-	"/Do no coloring here if CodeView2 is used,
-	"/since CodeView2 itself cares about the coloring!!
-	"/Not working correctly -> do the coloring until fixed in CodeView2
-	"/JV: Then make a bug report because otherwise it won't be
-	"/    ever fixed.
-	"(UserPreferences current useCodeView2In: #Browser)"false ifTrue:[
-	    doSyntaxColoring := code size < 2000
-	] ifFalse:[
-	    doSyntaxColoring := self doSyntaxColoring value == true.
-	].
+
+    "if there are no sources, there is a hint to the user.
+     consisting only of a comment (see #sourceOfMethod) which cannot be parsed as a method"
+    (code isText or:[code firstOrNil = $"]) ifTrue:[
+        "/ Already done or not eligible to be formatted...
+        doSyntaxColoring := false.
+    ] ifFalse:[
+        "/Do no coloring here if CodeView2 is used,
+        "/since CodeView2 itself cares about the coloring!!
+        "/Not working correctly -> do the coloring until fixed in CodeView2
+        "/JV: Then make a bug report because otherwise it won't be
+        "/    ever fixed.
+        "(UserPreferences current useCodeView2In: #Browser)"false ifTrue:[
+            doSyntaxColoring := code size < 2000
+        ] ifFalse:[
+            doSyntaxColoring := self doSyntaxColoring value == true.
+        ].
     ].
 
 
     doAutoFormat ifTrue:[
-	Error catch:[
-	    code := RBFormatter format:code
-	].
+        Error catch:[
+            code := RBFormatter format:code
+        ].
     ].
 
     doShowFullClassSource ifTrue:[
-	"As whole class source coce is shown,
-	 there is no need to set codeview's content if previous method
-	 belonged to the same class. Code is already shown, we need only
-	 to scrool to it..."
-	"hmm...hmm...how implement it in a better, more generic way?"
-	mthd isSynthetic not ifTrue:[
-	    prevMthd := navigationState lastMethodShownInCodeView.
-	    prevMthd notNil ifTrue:[
-		doUpdateCode :=
-		    prevMthd isSynthetic
-			or:[mthd mclass ~~ prevMthd mclass "/ method is for different class, have to update code
-			or:[mthd class ~~ prevMthd class]]   "/ method is for different kind, be safe and update code
-
-	    ] ifFalse:[
-		"/ If the class definition is shown for the very same class,
-		"/ do not update the code
-		| c |
-
-		doUpdateCode :=
-		    mthd isJavaMethod
-			and:[(c := self theSingleSelectedClass) notNil and:[c theNonMetaclass == mthd mclass]]
-	    ].
-	].
+        "As whole class source code is shown,
+         there is no need to set codeview's content if previous method
+         belonged to the same class. Code is already shown, we need only
+         to scrool to it..."
+        "hmm...hmm...how implement it in a better, more generic way?"
+        mthd isSynthetic not ifTrue:[
+            prevMthd := navigationState lastMethodShownInCodeView.
+            prevMthd notNil ifTrue:[
+                doUpdateCode :=
+                    prevMthd isSynthetic
+                        or:[mthd mclass ~~ prevMthd mclass "/ method is for different class, have to update code
+                        or:[mthd class ~~ prevMthd class   "/ method is for different kind, be safe and update code
+                        or:[codeView contents ~= code]]]
+
+            ] ifFalse:[
+                "/ If the class definition is shown for the very same class,
+                "/ do not update the code
+                | c |
+
+                doUpdateCode :=
+                    mthd isJavaMethod
+                        and:[(c := self theSingleSelectedClass) notNil and:[c theNonMetaclass == mthd mclass]]
+            ].
+        ].
     ].
     doUpdateCode ifTrue:[
-	doSyntaxColoring ifTrue:[
-	    "/ immediate coloring, if code is not too large;
-	    "/ otherwise, do it in the background.
-	    code size < 2000 " 10000 " ifTrue:[
-		Error handle:[:ex |
-		    Transcript showCR:'error in syntaxHighlighter: ',ex description.
-		] do:[
-		    code := self syntaxHighlightedCodeFor:code method:mthd.
-		].
-	    ] ifFalse:[
-		self enqueueDelayedStartSyntaxHighlightProcess.
-	    ].
-
-	    [
-		codeView modifiedChannel removeDependent:self.
-		codeView modified:false.
-		self showCode:code scrollToTop:doScrollToTop.
-	    ] ensure:[
-		codeView modifiedChannel addDependent:self.
-	    ]
-	] ifFalse:[
-	    self showCode:code scrollToTop:doScrollToTop.
-	].
+        doSyntaxColoring ifTrue:[
+            "/ immediate coloring, if code is not too large;
+            "/ otherwise, do it in the background.
+            code size < 2000 " 10000 " ifTrue:[
+                Error handle:[:ex |
+                    Transcript showCR:'error in syntaxHighlighter: ',ex description.
+                ] do:[
+                    code := self syntaxHighlightedCodeFor:code method:mthd.
+                ].
+            ] ifFalse:[
+                self enqueueDelayedStartSyntaxHighlightProcess.
+            ].
+
+            [
+                codeView modifiedChannel removeDependent:self.
+                codeView modified:false.
+                self showCode:code scrollToTop:doScrollToTop.
+            ] ensure:[
+                codeView modifiedChannel addDependent:self.
+            ]
+        ] ifFalse:[
+            self showCode:code scrollToTop:doScrollToTop.
+        ].
     ].
     navigationState lastMethodShownInCodeView: mthd.
 
     "/ scroll, for file-based classes (java, ruby, etc.)
     doShowFullClassSource ifTrue:[
-	mthd sourceLineNumber ~~ 1 ifTrue:[
-	    doScrollToTop ifTrue:[ "/ifFalse:[
-		codeView scrollToLine:mthd sourceLineNumber
-	    ]
-	].
+        mthd sourceLineNumber ~~ 1 ifTrue:[
+            doScrollToTop ifTrue:[ "/ifFalse:[
+                codeView scrollToLine:mthd sourceLineNumber
+            ]
+        ].
     ].
     self codeAspect:(code ifNil:[nil] ifNotNil:[SyntaxHighlighter codeAspectMethod]).
     self normalLabel.
@@ -53141,7 +54620,7 @@
 
     "Created: / 01-03-2000 / 11:38:57 / cg"
     "Modified: / 27-07-2012 / 22:18:18 / cg"
-    "Modified: / 08-10-2013 / 11:46:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 11-03-2014 / 11:25:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 showNothing
@@ -53161,32 +54640,32 @@
     "/ show version differences against repository
     cls := self theSingleSelectedClass.
     cls notNil ifTrue:[
-	cls := cls theNonMetaclass.
-	(ownerClass := cls topOwningClass) isNil ifTrue:[ownerClass := cls].
-	mgr := SourceCodeManagerUtilities sourceCodeManagerFor:ownerClass.
-
-	info := 'Package: ' , ownerClass package.
+        cls := cls theNonMetaclass.
+        (ownerClass := cls topOwningClass) isNil ifTrue:[ownerClass := cls].
+        mgr := SourceCodeManagerUtilities sourceCodeManagerFor:ownerClass.
+
+        info := 'Package: ' , ownerClass package.
 
 "/        (mgr checkForExistingContainerForClass:ownerClass) ifFalse:[
 "/            info := info , ' not in repository (?)'
 "/        ] ifTrue:[
-	    info := info , ' Version: ' , (ownerClass revision ? 'no-version').
-	    info := info , ' Repository: ' , (ownerClass sourceCodeManager newestRevisionOf:ownerClass).
-
-	    info := info , ' Location: '.
-	    sourceInfo := mgr sourceInfoOfClass:ownerClass.
-	    sourceInfo notNil ifTrue:[
-		moduleDir := mgr moduleFromSourceInfo:sourceInfo.
-		packageDir := mgr directoryFromSourceInfo:sourceInfo.
-		classFileName := mgr containerFromSourceInfo:sourceInfo.
-
-		info := info , ' ' , (moduleDir ? '???').
-		info := info , '/' , (packageDir ? '???').
-		info := info , '/' , (classFileName ? '???').
-	    ].
+            info := info , ' Version: ' , (ownerClass revision ? 'no-version').
+            info := info , ' Repository: ' , (ownerClass sourceCodeManager newestRevisionOf:ownerClass).
+
+            info := info , ' Location: '.
+            sourceInfo := mgr sourceInfoOfClass:ownerClass.
+            sourceInfo notNil ifTrue:[
+                moduleDir := mgr moduleFromSourceInfo:sourceInfo.
+                packageDir := mgr directoryFromSourceInfo:sourceInfo.
+                classFileName := mgr containerFromSourceInfo:sourceInfo.
+
+                info := info , ' ' , (moduleDir ? '???').
+                info := info , '/' , (packageDir ? '???').
+                info := info , '/' , (classFileName ? '???').
+            ].
 "/         ].
     ] ifFalse:[
-	info := 'Please select a single class to see the diffs.'
+        info := 'Please select a single class to see the diffs.'
     ].
 
     diffApp setupForClass:cls againstVersion:nil. "/ #newest
@@ -53198,25 +54677,27 @@
 !
 
 sourceCodeManagerOfClass:aClass
-    |metaclass nonMetaclass sourceCodeManager|
-
-    "/ metaclass := aClass theMetaclass.
+    |nonMetaclass sourceCodeManager|
+
     nonMetaclass := aClass theNonMetaclass.
+    nonMetaclass isLoaded ifFalse:[
+        ^ nil
+    ].
 
     "/ hack:
     "/ to prevent JAVA-bridge to forward those messages, we check for the presence first,
     "/ instead of using perform:ifNotUnderstood:
 
     (nonMetaclass respondsTo:#sourceCodeManagerForSourceAccess) ifTrue:[
-	sourceCodeManager := nonMetaclass sourceCodeManagerForSourceAccess.
-	sourceCodeManager notNil ifTrue:[ ^ sourceCodeManager].
+        sourceCodeManager := nonMetaclass sourceCodeManagerForSourceAccess.
+        sourceCodeManager notNil ifTrue:[ ^ sourceCodeManager].
     ].
     (nonMetaclass respondsTo:#sourceCodeManagerFromBinaryRevision) ifTrue:[
-	sourceCodeManager := nonMetaclass sourceCodeManagerFromBinaryRevision.
-	sourceCodeManager notNil ifTrue:[ ^ sourceCodeManager].
+        sourceCodeManager := nonMetaclass sourceCodeManagerFromBinaryRevision.
+        sourceCodeManager notNil ifTrue:[ ^ sourceCodeManager].
     ].
     (nonMetaclass respondsTo:#sourceCodeManager) ifTrue:[
-	sourceCodeManager := nonMetaclass sourceCodeManager
+        sourceCodeManager := nonMetaclass sourceCodeManager
     ].
     ^ sourceCodeManager
 
@@ -53230,11 +54711,13 @@
     code := mthd source.
     code notNil ifTrue:[ ^ code].
 
-    self setNoAcceptAction.
+    "/ wrong: even if there is no source, we
+    "/ should be able to type in something and accept
+    "/ self setNoAcceptAction.
 
     (mthd sourcePosition isNil
     or:[mthd getSource isNil]) ifTrue:[
-	^ '"
+        ^ '"
 Sorry, but the methods sourceCode is not available.
 
 Probably, the methods sourceCode-info was stripped from the system.
@@ -53274,10 +54757,10 @@
     | cls cnfManager srcManager color showInfoButton |
 
     navigationState packageInfoButton isNil ifTrue:[
-	"JV@2011-10-03: When a browser is embedded in the inspector,
-	 this method is called before the view is set. As a workaround,
-	 return here"
-	^self.
+        "JV@2011-10-03: When a browser is embedded in the inspector,
+         this method is called before the view is set. As a workaround,
+         return here"
+        ^self.
     ].
 
 
@@ -53285,26 +54768,26 @@
     showInfoButton := false.
 
     (aClass notNil and:[aClass isLoaded]) ifTrue:[
-	 cls := aClass.
-	[ cls isPrivate ] whileTrue:[cls := cls owningClass].
-	"For libbasic without #sourceCodeManagerFromBinaryRevision..."
-	(cls respondsTo: #sourceCodeManagerFromBinaryRevision) ifTrue:[
-	    cnfManager := cls sourceCodeManager.
-	    srcManager := cls sourceCodeManagerFromBinaryRevision.
-
-	    cnfManager ~~ srcManager ifTrue:[
-			 "Color yellow lighter"
-		color := (Color red:100.0 green:100.0 blue:54.5464255741207).
-		showInfoButton := true.
-		navigationState packageInfoButton action:
-		    [self
-			informUserAboutPackage: cls package
-			configuredManager: cnfManager
-			sourceManager: srcManager
-		    ]
-
-	    ]
-	]
+         cls := aClass.
+        [ cls isPrivate ] whileTrue:[cls := cls owningClass].
+        "For libbasic without #sourceCodeManagerFromBinaryRevision..."
+        (cls respondsTo: #sourceCodeManagerFromBinaryRevision) ifTrue:[
+            cnfManager := cls sourceCodeManager.
+            srcManager := cls sourceCodeManagerFromBinaryRevision.
+
+            cnfManager ~~ srcManager ifTrue:[
+                         "Color yellow lighter"
+                color := (Color red:100.0 green:100.0 blue:54.5464255741207).
+                showInfoButton := true.
+                navigationState packageInfoButton action:
+                    [self
+                        informUserAboutPackage: cls package
+                        configuredManager: cnfManager
+                        sourceManager: srcManager
+                    ]
+
+            ]
+        ]
     ].
 
     navigationState packageInfoButton isVisible: showInfoButton.
@@ -53314,40 +54797,40 @@
 !
 
 updatePackageInfoForClass:aClass
-    |cls packageLabel loadInfo revisionInfo sourceCodeManager sourceCodeManagerInfo revision lastUser|
+    |cls packageLabel loadInfo revisionInfo sourceCodeManager sourceCodeManagerName revision lastUser|
 
     (aClass notNil and:[aClass isClass or:[aClass isMetaclass]]) ifTrue:[
-	"/ packageLabel := 'Base: ' , (aClass package ? '?').
-
-	cls := aClass theNonMetaclass.
-	packageLabel := (aClass package ? '?') allBold.
-
-	aClass isLoaded ifTrue:[
-	    sourceCodeManager := self sourceCodeManagerOfClass:aClass.
-
-	    sourceCodeManager notNil ifTrue:[
-		sourceCodeManagerInfo := sourceCodeManager managerTypeNameShort , ' '
-	    ] ifFalse:[
-		sourceCodeManagerInfo := ''.
-	    ].
-
-	    revisionInfo := cls revisionInfo.
-	    (revisionInfo notNil and:[(revisionInfo at:#revision) notNil]) ifTrue:[
-		revision := revisionInfo at:#revision.
-		lastUser := ' ',((revisionInfo at:#user) ? '').
-	    ] ifFalse:[
-		revision := cls revision.
-		lastUser := ''.
-	    ].
-	    loadInfo := ' [%1%2%3]' bindWith: sourceCodeManagerInfo with:(revision ? 'no revision') with:lastUser.
-	    aClass wasAutoloaded ifTrue:[
-		loadInfo := loadInfo , ' {Auto}'.
-	    ].
-	] ifFalse:[
-	    loadInfo := ' {Unloaded}'.
-	].
-	packageLabel := packageLabel , loadInfo.
-	"/ packageLabel := packageLabel,' (Base)'.
+        "/ packageLabel := 'Base: ' , (aClass package ? '?').
+
+        cls := aClass theNonMetaclass.
+        packageLabel := (aClass package ? '?') allBold.
+
+        aClass isLoaded ifTrue:[
+            sourceCodeManager := self sourceCodeManagerOfClass:aClass.
+
+            sourceCodeManager notNil ifTrue:[
+                sourceCodeManagerName := sourceCodeManager managerTypeNameShort , ' '.
+                revisionInfo := cls revisionInfoOfManager:sourceCodeManager.
+            ] ifFalse:[
+                sourceCodeManagerName := ''.
+                revisionInfo := cls revisionInfo.
+            ].
+
+            (revisionInfo notNil and:[(revision := revisionInfo symbolicVersionName "revision") notNil]) ifTrue:[
+                lastUser := ' ',(revisionInfo user ? '').
+            ] ifFalse:[
+                revision := cls revision.
+                lastUser := ''.
+            ].
+            loadInfo := ' [%1%2%3]' bindWith: sourceCodeManagerName with:(revision ? 'no revision') with:lastUser.
+            aClass wasAutoloaded ifTrue:[
+                loadInfo := loadInfo , ' {Auto}'.
+            ].
+        ] ifFalse:[
+            loadInfo := ' {Unloaded}'.
+        ].
+        packageLabel := packageLabel , loadInfo.
+        "/ packageLabel := packageLabel,' (Base)'.
     ].
 
     self updatePackageInfoBarIfSourceCodeManagersDoesNotMatchForClass: cls.
@@ -53363,59 +54846,59 @@
     |mpkg info info2 mClass revision sourceCodeManager sourceCodeManagerInfo prjDef scmInfo extensionOrNot|
 
     aMethod isNil ifTrue:[
-	^ self updatePackageInfoForClass:self theSingleSelectedClass.
+        ^ self updatePackageInfoForClass:self theSingleSelectedClass.
     ].
 
     mClass := aMethod mclass.
     mClass isNil ifTrue:[
-	info := 'Unassigned'
-    ] ifFalse:[
-	mpkg := aMethod package.
-	info := mpkg allBold.
-	extensionOrNot := ''.
-
-	(mpkg ~= mClass package) ifTrue:[
-	    mpkg = PackageId noProjectID ifTrue:[
-		info2 := ' (Unassigned)'
-	    ] ifFalse:[
-		extensionOrNot := ' Extension'.
-		prjDef := ProjectDefinition definitionClassForPackage: mpkg.
-		prjDef notNil ifTrue:[
-		    sourceCodeManager := self sourceCodeManagerOfClass:prjDef.
-		    scmInfo := prjDef extensionsRevisionInfoForManager:nil.
-		    scmInfo notNil ifTrue:[
-			revision := scmInfo revision.
-		    ]
-		]
-	    ].
-	] ifFalse:[
-	    sourceCodeManager := self sourceCodeManagerOfClass:mClass theNonMetaclass.
-	    revision := mClass theNonMetaclass revision printString.
-	].
-
-	sourceCodeManager notNil ifTrue:[
-	    sourceCodeManagerInfo := sourceCodeManager managerTypeNameShort , ' '
-	] ifFalse:[
-	    sourceCodeManagerInfo := ''.
-	].
-
-	revision notNil ifTrue:[
-	    info2 := ' ['.
-	    (ChangeSet current includesChangeForClass:mClass selector:aMethod selector) ifTrue:[
-		info2 := info2,'derived from '
-	    ].
-	    info2 := info2,sourceCodeManagerInfo,revision,extensionOrNot,']'.
-	].
-	info2 notNil ifTrue:[info := info,info2].
+        info := 'Unassigned'
+    ] ifFalse:[
+        mpkg := aMethod package.
+        info := mpkg allBold.
+        extensionOrNot := ''.
+
+        (mpkg ~= mClass package) ifTrue:[
+            mpkg = PackageId noProjectID ifTrue:[
+                info2 := ' (Unassigned)'
+            ] ifFalse:[
+                extensionOrNot := ' Extension'.
+                prjDef := ProjectDefinition definitionClassForPackage: mpkg.
+                prjDef notNil ifTrue:[
+                    sourceCodeManager := self sourceCodeManagerOfClass:prjDef.
+                    scmInfo := prjDef extensionsRevisionInfoForManager:sourceCodeManager.
+                    scmInfo notNil ifTrue:[
+                        revision := scmInfo revision.
+                    ]
+                ]
+            ].
+        ] ifFalse:[
+            sourceCodeManager := self sourceCodeManagerOfClass:mClass theNonMetaclass.
+            revision := mClass theNonMetaclass revision printString.
+        ].
+
+        sourceCodeManager notNil ifTrue:[
+            sourceCodeManagerInfo := sourceCodeManager managerTypeNameShort , ' '
+        ] ifFalse:[
+            sourceCodeManagerInfo := ''.
+        ].
+
+        revision notNil ifTrue:[
+            info2 := ' ['.
+            (ChangeSet current includesChangeForClass:mClass selector:aMethod selector) ifTrue:[
+                info2 := info2,'derived from '
+            ].
+            info2 := info2,sourceCodeManagerInfo,revision,extensionOrNot,']'.
+        ].
+        info2 notNil ifTrue:[info := info,info2].
     ].
 
     mClass notNil ifTrue:[
-	self updatePackageInfoBarIfSourceCodeManagersDoesNotMatchForClass: mClass theNonMetaclass.
+        self updatePackageInfoBarIfSourceCodeManagersDoesNotMatchForClass: mClass theNonMetaclass.
     ].
     navigationState packageLabelHolder value:info
 
     "Modified (format): / 25-11-2011 / 14:48:14 / cg"
-    "Modified: / 01-12-2011 / 14:26:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 02-05-2014 / 17:55:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !NewSystemBrowser methodsFor:'private-dialogs'!
@@ -53425,22 +54908,22 @@
 
     dir := defaultDirOrNil.
     dir isNil ifTrue:[
-	dir := FileSelectionBox lastFileSelectionDirectory.
-	dir isNil ifTrue:[
-	    "
-	     this test allows a smalltalk to be built without Projects/ChangeSets
-	    "
-	    Project notNil ifTrue:[
-		dir := Project currentProjectDirectory
-	    ]
-	]
+        dir := FileSelectionBox lastFileSelectionDirectory.
+        dir isNil ifTrue:[
+            "
+             this test allows a smalltalk to be built without Projects/ChangeSets
+            "
+            Project notNil ifTrue:[
+                dir := Project currentProjectDirectory
+            ]
+        ]
     ].
 
     dirName := Dialog
-	requestDirectoryName:title
-	default:dir
-	ok:(resources string:'FileOut')
-	abort:(resources string:'Cancel').
+        requestDirectoryName:title
+        default:dir
+        ok:(resources string:'FileOut')
+        abort:(resources string:'Cancel').
 
     dirName isEmptyOrNil ifTrue:[ ^ nil ].
     FileSelectionBox lastFileSelectionDirectory:dirName.
@@ -53473,75 +54956,75 @@
 askForMethodAndSpawnSearchTitle:title browserLabel:label searchWith:aSelectorOrBlock searchArea:whereDefault
     "convenient helper method: setup an enterBox for method browsing without text-entry.
      SearchArea may be one of
-	#everywhere,
-	#currentNameSpace
-	#currentClassesNameSpace
-	#classCategories
-	#classes
-	#classesWithPrivateClasses
-	#classHierarchies
-	#classHierarchiesWithPrivateClasses"
-
-    ^ self
-	askForMethodAndSpawnSearchTitle:title
-	browserLabel:label
-	searchWith:aSelectorOrBlock
-	searchArea:whereDefault
-	allowFind:false
-	allowBuffer:true
-	allowBrowser:true
+        #everywhere,
+        #currentNameSpace
+        #currentClassesNameSpace
+        #classCategories
+        #classes
+        #classesWithPrivateClasses
+        #classHierarchies
+        #classHierarchiesWithPrivateClasses"
+
+    ^ self
+        askForMethodAndSpawnSearchTitle:title
+        browserLabel:label
+        searchWith:aSelectorOrBlock
+        searchArea:whereDefault
+        allowFind:false
+        allowBuffer:true
+        allowBrowser:true
 !
 
 askForMethodAndSpawnSearchTitle:title browserLabel:label searchWith:aSelectorOrBlock searchArea:whereDefault allowFind:allowFind allowBuffer:allowBuffer allowBrowser:allowBrowser
     "convenient helper method: setup an enterBox for method browsing without text-entry.
      SearchArea may be one of
-	#everywhere,
-	#currentNameSpace
-	#currentClassesNameSpace
-	#classCategories
-	#classes
-	#classesWithPrivateClasses
-	#classHierarchies
-	#classHierarchiesWithPrivateClasses"
-
-    ^ self
-	askForMethodAndSpawnSearchTitle:title
-	browserLabel:label
-	searchWith:[:dummyString :classes :dummyCaseIgnore :dummyMatch |
-	    aSelectorOrBlock value:classes
-	]
-	searchWhat:#special
-	searchArea:whereDefault
-	withCaseIgnore:false
-	withTextEntry:false
-	withMatch:false
-	withMethodList:false
-	setSearchPattern:nil
+        #everywhere,
+        #currentNameSpace
+        #currentClassesNameSpace
+        #classCategories
+        #classes
+        #classesWithPrivateClasses
+        #classHierarchies
+        #classHierarchiesWithPrivateClasses"
+
+    ^ self
+        askForMethodAndSpawnSearchTitle:title
+        browserLabel:label
+        searchWith:[:dummyString :classes :dummyCaseIgnore :dummyMatch |
+            aSelectorOrBlock value:classes
+        ]
+        searchWhat:#special
+        searchArea:whereDefault
+        withCaseIgnore:false
+        withTextEntry:false
+        withMatch:false
+        withMethodList:false
+        setSearchPattern:nil
 !
 
 askForMethodAndSpawnSearchTitle:title browserLabel:labelHolderOrBlock searchWith:aSelectorOrBlock searchWhat:searchWhat searchArea:whereDefault withCaseIgnore:withCaseIgnore setSearchPattern:setSearchPatternAction
     "convenient helper method: setup an enterBox with text from codeView or selected
      method for browsing based on a selector. Set action and launch box.
      SearchArea may be one of
-	#everywhere,
-	#currentNameSpace
-	#currentClassesNameSpace
-	#classCategories
-	#classes
-	#classesWithPrivateClasses
-	#classHierarchies
-	#classHierarchiesWithPrivateClasses"
-
-    ^ self
-	askForMethodAndSpawnSearchTitle:title
-	browserLabel:labelHolderOrBlock
-	searchWith:aSelectorOrBlock
-	searchWhat:searchWhat
-	searchArea:whereDefault
-	withCaseIgnore:withCaseIgnore
-	withTextEntry:true
-	withMethodList:false
-	setSearchPattern:setSearchPatternAction
+        #everywhere,
+        #currentNameSpace
+        #currentClassesNameSpace
+        #classCategories
+        #classes
+        #classesWithPrivateClasses
+        #classHierarchies
+        #classHierarchiesWithPrivateClasses"
+
+    ^ self
+        askForMethodAndSpawnSearchTitle:title
+        browserLabel:labelHolderOrBlock
+        searchWith:aSelectorOrBlock
+        searchWhat:searchWhat
+        searchArea:whereDefault
+        withCaseIgnore:withCaseIgnore
+        withTextEntry:true
+        withMethodList:false
+        setSearchPattern:setSearchPatternAction
 !
 
 askForMethodAndSpawnSearchTitle:title browserLabel:labelHolderOrBlock searchWith:aSelectorOrBlock searchWhat:searchWhat searchArea:whereDefault
@@ -53551,14 +55034,14 @@
      setup an enterBox with text from codeView or selected
      method for browsing based on a selector. Set action and launch box.
      SearchArea may be one of
-	#everywhere,
-	#currentNameSpace
-	#currentClassesNameSpace
-	#classCategories
-	#classes
-	#classesWithPrivateClasses
-	#classHierarchies
-	#classHierarchiesWithPrivateClasses
+        #everywhere,
+        #currentNameSpace
+        #currentClassesNameSpace
+        #classCategories
+        #classes
+        #classesWithPrivateClasses
+        #classHierarchies
+        #classHierarchiesWithPrivateClasses
 
      aSelectorOrBlock is either a search selector (to be sent to SystemBrowser, such as findMethods:...)
      or a block, or a pair containing class- and methodlist search selectors.
@@ -53569,196 +55052,206 @@
     |dialog|
 
     dialog := SearchDialog new
-	showMetaFilter:true;
-	setupToAskForMethodSearchTitle:title
-	forBrowser:self
-	searchWhat:searchWhat
-	searchArea:whereDefault
-	withCaseIgnore:withCaseIgnore
-	withMatch:withMatch
-	withMethodList:withMethodList
-	allowFind:(self navigationState isMethodBrowser)
-	allowBuffer:true
-	allowBrowser:true
-	withTextEntry:withTextEntry.
+        showMetaFilter:true;
+        setupToAskForMethodSearchTitle:title
+        forBrowser:self
+        searchWhat:searchWhat
+        searchArea:whereDefault
+        withCaseIgnore:withCaseIgnore
+        withMatch:withMatch
+        withMethodList:withMethodList
+        allowFind:(self navigationState isMethodBrowser)
+        allowBuffer:true
+        allowBrowser:true
+        withTextEntry:withTextEntry.
 
     [:restart|
-	dialog askThenDo:[
-	    |classes string ignoreCase openHow match methods isMethod searchAction|
-
-	    classes := dialog classesToSearch.
-	    string := dialog selectorToSearch.
-	    ignoreCase := dialog searchIgnoringCase.
-	    openHow := dialog openHow.
-	    match := dialog searchWithMatch.
-	    methods := dialog methodsToSearch.
-	    isMethod := dialog matchMethods.
-
-	    self withSearchCursorDo:[
-		|initialList list newBrowser numFound label
-		 selector entities arguments numArgs answer
-		 alternativeSelector question altArguments t|
-
-		aSelectorOrBlock isArray ifTrue:[
-		    classes notNil ifTrue:[
-			selector := aSelectorOrBlock first.
-			entities := classes.
-		    ] ifFalse:[
-			selector := aSelectorOrBlock second.
-			entities := methods.
-		    ].
-		    numArgs := selector numArgs.
-		] ifFalse:[
-		    entities := classes.
-		    aSelectorOrBlock isSymbol ifTrue:[
-			selector := aSelectorOrBlock.
-		    ] ifFalse:[
-			selector := nil
-		    ].
-		    numArgs := aSelectorOrBlock numArgs.
-		].
-		(selector notNil
-		and:[ (selector numArgs == 1)
-		and:[ (selector endsWith:'In:') or:[ selector endsWith:'inMethods:' ]]]) ifTrue:[
-		    arguments := Array with:entities
-		] ifFalse:[
-		    arguments := (Array
-					with:string
-					with:entities
-					with:((selector notNil and:[selector endsWith:'isMethod:']) ifTrue:[isMethod] ifFalse:[ignoreCase])
-					with:match
-				  ) copyTo:numArgs.
-		].
-
-		searchAction :=
-		    [
-			|result moreResults extensionMethods arguments2|
-
-			selector notNil ifTrue:[
-			    result := self class perform:selector withArguments:arguments.
-			] ifFalse:[
-			    result := aSelectorOrBlock valueWithArguments:arguments
-			].
-			"/ sorry for this special case: when searching in a package,
-			"/ also search extensionMethods
-			dialog searchAreaSelected == #currentPackage ifTrue:[
-			    aSelectorOrBlock isArray ifTrue:[
-				"/ findSendersOf:inMethods:ignoreCase:match:
-				extensionMethods := environment allExtensionsForPackage:(dialog currentPackage).
-				arguments2 := arguments copy.
-				arguments2 at:2 put:extensionMethods.
-				moreResults := self class perform:(aSelectorOrBlock at:2) withArguments:arguments2.
-				result := result , moreResults.
-			    ]
-			].
-			dialog metaclassesOnly ifTrue:[
-			    result := result select:[:m | m mclass isMeta]
-			] ifFalse:[
-			    dialog classesOnly ifTrue:[
-				result := result reject:[:m | m mclass isMeta]
-			    ].
-			].
-			result
-		    ].
-
-		t := TimeDuration toRun:
-		    [
-			false "classes size > 1" ifTrue:[
-			    self
-				showMessage:'Searching...'
-				while:[
-				    initialList := searchAction value.
-				]
-			] ifFalse:[
-			    initialList := searchAction value.
-			].
-		    ].
-
-		label := labelHolderOrBlock value.
-
-		numFound := initialList size.
-		numFound == 0 ifTrue:[
-		    question := resources stringWithCRs:label with:((string ? '') allBold colorizeAllWith:Color red darkened).
-		    question := question , (resources string:' - none found.').
-
-		    ((selector == #findImplementors:in:ignoreCase:match:)
-		    and:[ (arguments first numArgs == 0)
-		    and:[
-			    string := ((arguments at:1),':') asSymbol.
-			    altArguments := arguments copy.
-			    altArguments at:1 put:string.
-			    initialList := self class perform:selector withArguments:altArguments.
-			    numFound := initialList size.
-			    numFound ~~ 0
-		    ]]) ifTrue:[
-			question := question,(resources stringWithCRs:'\\But there are %1 implementations of %2 (with colon).\Browse those ?' with:numFound with:(altArguments first)).
-			answer := Dialog
-			    confirmWithCancel:question
-			    labels:(resources array:#('Cancel' 'Search Again' 'Yes'))
-			    default:2.
-
-			answer isNil ifTrue:[
-			    ^ self
-			].
-			answer ifFalse:[
-			    restart value.
-			].
-			arguments := altArguments.
-
-		    ] ifFalse:[
-			answer := Dialog
-			    confirm:question
-			    yesLabel:(resources string:'Search Again')
-			    noLabel:(resources string:'Cancel').
-			answer ifFalse:[
-			    ^ self
-			].
-			restart value.
-		    ].
-		].
-
-		(initialList asSet = self selectedMethodsValue asSet)
-		"/ (numFound == 1 and:[initialList first == self theSingleSelectedMethod])
-		ifTrue:[
-		    answer := Dialog
-			confirmWithCancel:((resources stringWithCRs:label with:(string ? 'messages') allBold)
-					   , '.\\' withCRs
-					   , (resources stringWithCRs:'Only the selected method(s) found.\Browse anyway ?'))
-			labels:(resources array:#('Cancel' 'Search Again' 'Yes' ))
-			values:#(nil #again true)
-			default:2.
-
-		    answer == nil ifTrue:[
-			^ self
-		    ].
-		    answer == #again ifTrue:[
-			restart value.
-		    ]
-		].
-
-		newBrowser := self
-				spawnMethodBrowserForSearch:[
-					initialList notNil ifTrue:[
-					    list := initialList.
-					    initialList := nil
-					] ifFalse:[
-					    list := searchAction value
-					].
-					list
-				    ]
-				sortBy:#class
-				in:openHow
-				label:(resources string:label string with:string).
-
-		setSearchPatternAction notNil ifTrue:[
-		    setSearchPatternAction value:newBrowser value:string value:((selector notNil and:[selector endsWith:'isMethod:']) ifTrue:[isMethod] ifFalse:[ignoreCase]) value:match.
-		].
-		t > 5 seconds ifTrue:[
-		    newBrowser methodListApp autoUpdateOnChange: false.
-		].
-		^ newBrowser.
-	    ].
-	].
+        dialog askThenDo:[
+            |classes string ignoreCase openHow match methods isMethod searchAction|
+
+            classes := dialog classesToSearch.
+            string := dialog selectorToSearch.
+            ignoreCase := dialog searchIgnoringCase.
+            openHow := dialog openHow.
+            match := dialog searchWithMatch.
+            methods := dialog methodsToSearch.
+            isMethod := dialog matchMethods.
+
+            self withSearchCursorDo:[
+                |initialList list newBrowser numFound label
+                 selector entities arguments numArgs answer
+                 alternativeSelector question altArguments t|
+
+                aSelectorOrBlock isArray ifTrue:[
+                    classes notNil ifTrue:[
+                        selector := aSelectorOrBlock first.
+                        entities := classes.
+                    ] ifFalse:[
+                        selector := aSelectorOrBlock second.
+                        entities := methods.
+                    ].
+                    numArgs := selector numArgs.
+                ] ifFalse:[
+                    entities := classes.
+                    aSelectorOrBlock isSymbol ifTrue:[
+                        selector := aSelectorOrBlock.
+                    ] ifFalse:[
+                        selector := nil
+                    ].
+                    numArgs := aSelectorOrBlock numArgs.
+                ].
+                (selector notNil
+                and:[ (selector numArgs == 1)
+                and:[ (selector endsWith:'In:') or:[ selector endsWith:'inMethods:' ]]]) ifTrue:[
+                    arguments := Array with:entities
+                ] ifFalse:[
+                    arguments := (Array
+                                        with:string
+                                        with:entities
+                                        with:((selector notNil and:[selector endsWith:'isMethod:']) ifTrue:[isMethod] ifFalse:[ignoreCase])
+                                        with:match
+                                  ) copyTo:numArgs.
+                ].
+
+                searchAction :=
+                    [
+                        |result moreResults extensionMethods arguments2|
+
+                        ProgressNotification handle:[:ex |
+                            self infoLabelHolder value:('Searching... (%1%% done)%2' 
+                                                                bindWith:(ex progressValue truncated)
+                                                                with:(UserPreferences current keepMethodSourceCode
+                                                                        ifFalse:[ ' - tune this by enabling method source cache in the SCM settings dialog']
+                                                                        ifTrue:[''])).
+                            ex proceed.
+                        ] do:[
+                            selector notNil ifTrue:[
+                                result := self class perform:selector withArguments:arguments.
+                            ] ifFalse:[
+                                result := aSelectorOrBlock valueWithArguments:arguments
+                            ].
+                            "/ sorry for this special case: when searching in a package,
+                            "/ also search extensionMethods
+                            dialog searchAreaSelected == #currentPackage ifTrue:[
+                                aSelectorOrBlock isArray ifTrue:[
+                                    "/ findSendersOf:inMethods:ignoreCase:match:
+                                    extensionMethods := environment allExtensionsForPackage:(dialog currentPackage).
+                                    arguments2 := arguments copy.
+                                    arguments2 at:2 put:extensionMethods.
+                                    moreResults := self class perform:(aSelectorOrBlock at:2) withArguments:arguments2.
+                                    result := result , moreResults.
+                                ]
+                            ].
+                            dialog metaclassesOnly ifTrue:[
+                                result := result select:[:m | m mclass isMeta]
+                            ] ifFalse:[
+                                dialog classesOnly ifTrue:[
+                                    result := result reject:[:m | m mclass isMeta]
+                                ].
+                            ].
+                        ].
+                        self infoLabelHolder value:nil.
+                        result
+                    ].
+
+                t := TimeDuration toRun:
+                    [
+                        false "classes size > 1" ifTrue:[
+                            self
+                                showMessage:'Searching...'
+                                while:[
+                                    initialList := searchAction value.
+                                ]
+                        ] ifFalse:[
+                            initialList := searchAction value.
+                        ].
+                    ].
+
+                label := labelHolderOrBlock value string.
+
+                numFound := initialList size.
+                numFound == 0 ifTrue:[
+                    question := resources stringWithCRs:label with:((string ? '') allBold colorizeAllWith:Color red darkened).
+                    question := question , (resources string:' - none found.').
+
+                    ((selector == #findImplementors:in:ignoreCase:match:)
+                    and:[ (arguments first numArgs == 0)
+                    and:[
+                            string := (arguments at:1) asMutator.
+                            altArguments := arguments copy.
+                            altArguments at:1 put:string.
+                            initialList := self class perform:selector withArguments:altArguments.
+                            numFound := initialList size.
+                            numFound ~~ 0
+                    ]]) ifTrue:[
+                        question := question,(resources stringWithCRs:'\\But there are %1 implementations of %2 (with colon).\Browse those ?' with:numFound with:(altArguments first)).
+                        answer := Dialog
+                            confirmWithCancel:question
+                            labels:(resources array:#('Cancel' 'Search Again' 'Yes'))
+                            default:2.
+
+                        answer isNil ifTrue:[
+                            ^ self
+                        ].
+                        answer ifFalse:[
+                            restart value.
+                        ].
+                        arguments := altArguments.
+
+                    ] ifFalse:[
+                        answer := Dialog
+                            confirm:question
+                            yesLabel:(resources string:'Search Again')
+                            noLabel:(resources string:'Cancel').
+                        answer ifFalse:[
+                            ^ self
+                        ].
+                        restart value.
+                    ].
+                ].
+
+                (initialList asSet = self selectedMethodsValue asSet)
+                "/ (numFound == 1 and:[initialList first == self theSingleSelectedMethod])
+                ifTrue:[
+                    answer := Dialog
+                        confirmWithCancel:((resources stringWithCRs:label with:(string ? 'messages') allBold)
+                                           , '.\\' withCRs
+                                           , (resources stringWithCRs:'Only the selected method(s) found.\Browse anyway ?'))
+                        labels:(resources array:#('Cancel' 'Search Again' 'Yes' ))
+                        values:#(nil #again true)
+                        default:2.
+
+                    answer == nil ifTrue:[
+                        ^ self
+                    ].
+                    answer == #again ifTrue:[
+                        restart value.
+                    ]
+                ].
+
+                newBrowser := self
+                                spawnMethodBrowserForSearch:[
+                                        initialList notNil ifTrue:[
+                                            list := initialList.
+                                            initialList := nil
+                                        ] ifFalse:[
+                                            list := searchAction value
+                                        ].
+                                        list
+                                    ]
+                                sortBy:#class
+                                in:openHow
+                                label:(resources string:label string with:string).
+
+                setSearchPatternAction notNil ifTrue:[
+                    setSearchPatternAction value:newBrowser value:string value:((selector notNil and:[selector endsWith:'isMethod:']) ifTrue:[isMethod] ifFalse:[ignoreCase]) value:match.
+                ].
+                t > 5 seconds ifTrue:[
+                    newBrowser methodListApp autoUpdateOnChange: false.
+                ].
+                ^ newBrowser.
+            ].
+        ].
     ] valueWithRestart.
 
     "Modified: / 20-08-2012 / 13:26:06 / cg"
@@ -53770,90 +55263,93 @@
     "convenient helper method: setup an enterBox with text from codeView or selected
      method for browsing based on a selector. Set action and launch box.
      SearchArea may be one of
-	#everywhere,
-	#currentNameSpace
-	#currentClassesNameSpace
-	#classCategories
-	#classes
-	#classesWithPrivateClasses
-	#classHierarchies
-	#classHierarchiesWithPrivateClasses"
+        #everywhere,
+        #currentNameSpace
+        #currentClassesNameSpace
+        #classCategories
+        #classes
+        #classesWithPrivateClasses
+        #classHierarchies
+        #classHierarchiesWithPrivateClasses"
 
     ^self
-	askForMethodAndSpawnSearchTitle:title
-	browserLabel:labelHolderOrBlock
-	searchWith:aSelectorOrBlock
-	searchWhat:searchWhat
-	searchArea:whereDefault
-	withCaseIgnore:withCaseIgnore
-	withTextEntry:withTextEntry
-	withMatch:true
-	withMethodList:withMethodList
-	setSearchPattern:setSearchPatternAction
+        askForMethodAndSpawnSearchTitle:title
+        browserLabel:labelHolderOrBlock
+        searchWith:aSelectorOrBlock
+        searchWhat:searchWhat
+        searchArea:whereDefault
+        withCaseIgnore:withCaseIgnore
+        withTextEntry:withTextEntry
+        withMatch:true
+        withMethodList:withMethodList
+        setSearchPattern:setSearchPatternAction
 !
 
 askForMethodCategory:question title:boxTitle okLabel:okLabel list:someCategories initialAnswer:initialText
     "convenient helper method: setup a box asking for a method category"
 
     ^ self
-	askForMethodCategory:question
-	title:boxTitle
-	okLabel:okLabel
-	list:someCategories
-	recentList:nil
-	initialAnswer:initialText
+        askForMethodCategory:question
+        title:boxTitle
+        okLabel:okLabel
+        list:someCategories
+        recentList:nil
+        initialAnswer:initialText
 !
 
 askForMethodCategory:question title:boxTitle okLabel:okLabel list:someCategories recentList:recentListOrNil initialAnswer:initialText
     "convenient helper method: setup a box asking for a method category"
 
-    |box retVal shownCategories allMethodCategories|
+    |box listView retVal shownCategories allMethodCategories|
 
     box := self
-	    listBoxTitle:question
-	    okText:okLabel
-	    list:someCategories.
+            listBoxTitle:question
+            okText:okLabel
+            list:someCategories.
     box label:boxTitle.
 
+    listView := box listView.
+
     recentListOrNil notNil ifTrue:[
-	box useComboBoxWithList:recentListOrNil.
+        box useComboBoxWithList:recentListOrNil.
     ].
     shownCategories := someCategories.
     box initialText:initialText.
     box action:[:aString | aString notEmpty ifTrue:[retVal := aString] ].
     box entryCompletionBlock:[:contents |
-	|s what best idx|
-
-	s := contents withoutLeadingSeparators.
-	what := self navigationState environment methodProtocolCompletion:s.
-	best := what first.
-	box contents:best.
-	idx := shownCategories findFirst:[:l | l startsWith:best].
-	idx == 0 ifTrue:[
-	    allMethodCategories isNil ifTrue:[
-		allMethodCategories := environment allMethodCategories asArray sort.
-	    ].
-	    box list:allMethodCategories.
-	    shownCategories := allMethodCategories.
-	    idx := shownCategories findFirst:[:l | l startsWith:best].
-	].
-	idx ~~ 0 ifTrue:[
-	    box listView scrollToLine:idx.
-	].
-	(what at:2) size ~~ 1 ifTrue:[
-	    self builder window beep
-	].
+        |s what best idx|
+
+        s := contents withoutLeadingSeparators.
+        what := self navigationState environment methodProtocolCompletion:s.
+        best := what first.
+        box contents:best.
+        idx := shownCategories findFirst:[:l | l startsWith:best].
+        idx == 0 ifTrue:[
+            allMethodCategories isNil ifTrue:[
+                allMethodCategories := environment allMethodCategories asArray sort.
+            ].
+            box list:allMethodCategories.
+            shownCategories := allMethodCategories.
+            idx := shownCategories findFirst:[:l | l startsWith:best].
+        ].
+        idx ~~ 0 ifTrue:[
+            listView scrollToLine:idx.
+        ].
+        (what at:2) size ~~ 1 ifTrue:[
+            self builder window beep
+        ].
     ].
     box enterField
-	onKey:#CursorDown
-	leaveWith:[
-	    box listView windowGroup focusView:box listView byTab:true.
-	    box listView hasSelection ifFalse:[
-		box listView selectFirst
-	    ] ifTrue:[
-		box listView selectNext
-	    ]
-	].
+        onKey:#CursorDown
+        leaveWith:[
+            listView windowGroup focusView:listView byTab:true.
+            listView hasSelection ifFalse:[
+                listView selectFirst
+            ] ifTrue:[
+                listView selectNext
+            ]
+        ].
+
     box open.
     ^ retVal
 
@@ -53872,39 +55368,39 @@
     meta := cls isMeta.
     "/ do not include above Class if meta.
     cls theNonMetaclass withAllSuperclassesDo:[:eachNonMetaClass |
-	|eachClass|
-
-	eachClass := eachNonMetaClass.
-	meta ifTrue:[eachClass := eachNonMetaClass theMetaclass].
-
-	someCategories addAll:eachClass categories.
-	methodCategoryListApp notNil ifTrue:[
-	    someCategories addAll:(methodCategoryListApp additionalProtocolForClass:eachClass).
-	]
+        |eachClass|
+
+        eachClass := eachNonMetaClass.
+        meta ifTrue:[eachClass := eachNonMetaClass theMetaclass].
+
+        someCategories addAll:eachClass categories.
+        methodCategoryListApp notNil ifTrue:[
+            someCategories addAll:(methodCategoryListApp additionalProtocolForClass:eachClass).
+        ]
     ].
     someCategories := someCategories asOrderedCollection sort.
 
     "/ look for inherited; default to that category
     selectorOrNil notNil ifTrue:[
-	inheritedMethod := cls lookupMethodFor:selectorOrNil.
-	inheritedMethod notNil ifTrue:[
-	    initial := inheritedMethod category
-	]
+        inheritedMethod := cls lookupMethodFor:selectorOrNil.
+        inheritedMethod notNil ifTrue:[
+            initial := inheritedMethod category
+        ]
     ].
     initial isNil ifTrue:[
-	lastMethodCategory isNil ifTrue:[
-	    initial := Compiler defaultMethodCategory "/ 'new methods' '* As yet uncategorized *'
-	] ifFalse:[
-	    initial := lastMethodCategory
-	].
-    ].
-
-    ^ self
-	askForMethodCategory:'Accept in which method category ?'
-	title:'Methods Category'
-	okLabel:'Accept'
-	list:someCategories
-	initialAnswer:initial
+        lastMethodCategory isNil ifTrue:[
+            initial := Compiler defaultMethodCategory "/ 'new methods' '* As yet uncategorized *'
+        ] ifFalse:[
+            initial := lastMethodCategory
+        ].
+    ].
+
+    ^ self
+        askForMethodCategory:'Accept in which method category ?'
+        title:'Methods Category'
+        okLabel:'Accept'
+        list:someCategories
+        initialAnswer:initial
 
     "Created: / 29.2.2000 / 10:50:38 / cg"
     "Modified: / 29.2.2000 / 10:54:26 / cg"
@@ -53914,9 +55410,9 @@
     "Ask for the new namespaces name"
 
     ^ Dialog
-	requestNameSpace:title
-	title:boxTitle
-	initialAnswer:initialTextOrNil
+        requestNameSpace:title
+        title:boxTitle
+        initialAnswer:initialTextOrNil
 
     "Modified: / 11-02-2011 / 11:26:25 / cg"
 !
@@ -53948,20 +55444,20 @@
 
     selectedClasses := self selectedClassesValue.
     selectedClasses notNil ifTrue:[
-	classesProjects := selectedClasses
-			    collectAll:[:cls |
-				cls methodDictionary values
-				    collect:[:m | m package] as:Set].
-    ] ifFalse:[
-	selectedMethods := self selectedMethodsValue.
-	selectedMethods notEmptyOrNil ifTrue:[
-	    classesProjects := selectedMethods
-				collectAll:[:mthd |
-				    mthd mclass methodDictionary values
-					collect:[:m | m package ] as:Set].
-	] ifFalse:[
-	    classesProjects := #()
-	]
+        classesProjects := selectedClasses
+                            collectAll:[:cls |
+                                cls methodDictionary values
+                                    collect:[:m | m package] as:Set].
+    ] ifFalse:[
+        selectedMethods := self selectedMethodsValue.
+        selectedMethods notEmptyOrNil ifTrue:[
+            classesProjects := selectedMethods
+                                collectAll:[:mthd |
+                                    mthd mclass methodDictionary values
+                                        collect:[:m | m package ] as:Set].
+        ] ifFalse:[
+            classesProjects := #()
+        ]
     ].
     classesProjects remove:(PackageId noProjectID) ifAbsent:nil.
     classesProjects removeAllFoundIn:(moreSuggestions ? #()).
@@ -53971,18 +55467,18 @@
     offered := OrderedCollection new.
     already := Set new.
     (moreSuggestions ? #()) do:[:p |
-	(already includes:p) ifFalse:[ offered add:p]
+        (already includes:p) ifFalse:[ offered add:p]
     ].
     (LastProjectMoves ? #()) do:[:p |
-	(already includes:p) ifFalse:[ offered add:p]
+        (already includes:p) ifFalse:[ offered add:p]
     ].
     classesProjects do:[:p |
-	(already includes:p) ifFalse:[ offered add:p]
+        (already includes:p) ifFalse:[ offered add:p]
     ].
     ^ Dialog
-	requestProject:((resources ? self class classResources) string:title)
-	initialAnswer:initialTextOrNil
-	suggestions:offered
+        requestProject:((resources ? self class classResources) string:title)
+        initialAnswer:initialTextOrNil
+        suggestions:offered
 
     "Created: / 11-08-2006 / 13:31:34 / cg"
     "Modified: / 28-02-2012 / 16:45:05 / cg"
@@ -54000,23 +55496,23 @@
     selectors := Set new.
     methods := self selectedMethodsValue.
     methods notEmptyOrNil ifTrue:[
-	firstMethod := methods first.
-	firstSelector := firstMethod selector.
+        firstMethod := methods first.
+        firstSelector := firstMethod selector.
     ].
     searchClass := self theSingleSelectedClass ? self classHierarchyTopClass value.
     searchClass isNil ifTrue:[
-	self theSingleSelectedMethod notNil ifTrue:[
-	    searchClass := self theSingleSelectedMethod mclass
-	]
+        self theSingleSelectedMethod notNil ifTrue:[
+            searchClass := self theSingleSelectedMethod mclass
+        ]
     ].
     searchClass notNil ifTrue:[
-	searchClass withAllSuperclassesDo:[:cls |
-	    selectors addAll:(cls methodDictionary keys copy)
-	]
+        searchClass withAllSuperclassesDo:[:cls |
+            selectors addAll:(cls methodDictionary keys copy)
+        ]
     ].
     selectors := selectors asOrderedCollection sort.
     listInBox := selectors
-		    collect:[:eachSel | eachSel , (' [ ' , (searchClass whichClassIncludesSelector:eachSel) name , ' ]')].
+                    collect:[:eachSel | eachSel , (' [ ' , (searchClass whichClassIncludesSelector:eachSel) name , ' ]')].
 "/    UserPreferences current avoidSlowDrawingOperationsUnderWindows ifFalse:[
 "/        listInBox := listInBox collect:[:eachEntry | eachEntry allItalic].
 "/    ].
@@ -54034,46 +55530,46 @@
 "/    ].
     selector := self selectorToSearchFor.
     selector isNil ifTrue:[
-	selector := firstSelector
+        selector := firstSelector
     ].
     box initialText:selector.
     box entryCompletionBlock:[:contents |
-	|s what longest matching|
-
-	box topView withWaitCursorDo:[
-	    s := contents withoutSpaces.
-	    what := DoWhatIMeanSupport selectorCompletion:s inEnvironment:environment .
-	    longest := what first.
-	    matching := what last.
-	    box list:matching.
-	    box contents:longest.
-	    matching size ~~ 1 ifTrue:[
-		self window beep
-	    ]
-	]
+        |s what longest matching|
+
+        box topView withWaitCursorDo:[
+            s := contents withoutSpaces.
+            what := DoWhatIMeanSupport selectorCompletion:s inEnvironment:environment .
+            longest := what first.
+            matching := what last.
+            box list:matching.
+            box contents:longest.
+            matching size ~~ 1 ifTrue:[
+                self window beep
+            ]
+        ]
     ].
 
     box okText:(resources string:'Find').
     allowBuffer ifTrue:[
-	b := Button label:(resources string:'Add Buffer').
-	box addButton:b.
-	b action:[
-	   openHow := #newBuffer.
-	   box doAccept.
-	   box okPressed.
-	].
-	prevButton := b.
+        b := Button label:(resources string:'Add Buffer').
+        box addButton:b.
+        b action:[
+           openHow := #newBuffer.
+           box doAccept.
+           box okPressed.
+        ].
+        prevButton := b.
     ].
 
     allowBrowser ifTrue:[
-	b := Button label:(resources string:'Browse').
-	box addButton:b.
-	b action:[
-	   openHow := #newBrowser.
-	   box doAccept.
-	   box okPressed.
-	].
-	prevButton := b.
+        b := Button label:(resources string:'Browse').
+        box addButton:b.
+        b action:[
+           openHow := #newBrowser.
+           box doAccept.
+           box okPressed.
+        ].
+        prevButton := b.
     ].
     "/ prevButton notNil ifTrue:[prevButton isReturnButton:true].
 
@@ -54082,7 +55578,7 @@
     box showAtPointer.
 
     selector notNil ifTrue:[
-	aBlock value:selector asSymbol value:openHow
+        aBlock value:selector asSymbol value:openHow
     ].
     ^ selector
 
@@ -54109,10 +55605,10 @@
      otherwise, return true"
 
     ^ self
-	askIfModified:question
-	default:default
-	withAccept:(self canAcceptCode)
-	withCompare:(self canCompareCode)
+        askIfModified:question
+        default:default
+        withAccept:(self canAcceptCode)
+        withCompare:(self canCompareCode)
 
     "Created: / 11.2.2000 / 10:52:28 / cg"
     "Modified: / 11.2.2000 / 12:37:34 / cg"
@@ -54123,11 +55619,11 @@
      otherwise, return true"
 
     ^ self
-	askIfModified:question
-	default:default
-	withAccept:(self canAcceptCode)
-	withCompare:(self canCompareCode)
-	in:aNavigationState
+        askIfModified:question
+        default:default
+        withAccept:(self canAcceptCode)
+        withCompare:(self canCompareCode)
+        in:aNavigationState
 
     "Created: / 11.2.2000 / 10:52:28 / cg"
     "Modified: / 11.2.2000 / 12:37:34 / cg"
@@ -54136,10 +55632,10 @@
 askIfModified:question default:default withAccept:acceptOffered withCompare:compareOffered
     "if codeView was not modified, return true.
      If it was, return the answer from asking question, which can be
-	true     - go on
-	false    - cancel
-	#compare - open a diff-viewer on the code vs. its original
-	#accept  - accept, then proceed
+        true     - go on
+        false    - cancel
+        #compare - open a diff-viewer on the code vs. its original
+        #accept  - accept, then proceed
      If compareOffered is true, offer the compare option.
      If acceptOffered is true, offer the accept option.
      Used to confirm selectionChange, closing or buffer removal when code
@@ -54147,11 +55643,11 @@
      question is the message to ask, or nil for a standard message."
 
     ^ self
-	askIfModified:question
-	default:default
-	withAccept:acceptOffered
-	withCompare:compareOffered
-	in:navigationState
+        askIfModified:question
+        default:default
+        withAccept:acceptOffered
+        withCompare:compareOffered
+        in:navigationState
 
 
 !
@@ -54159,8 +55655,8 @@
 askIfModified:question default:default withAccept:acceptOffered withCompare:compareOffered in:aNavigationState
     "if codeView was not modified, return true.
      If it was, return the answer from asking question, which can be
-	true     - go on
-	false    - cancel
+        true     - go on
+        false    - cancel
      If compareOffered is true, offer the compare option.
      If acceptOffered is true, offer the accept option.
      Used to confirm selectionChange, closing or buffer removal when code was modified.
@@ -54169,8 +55665,8 @@
     |answer labels values msg textModified specialEditorModified|
 
     self codeView isNil ifTrue:[
-	"/ if in documentation browser ...
-	^ true
+        "/ if in documentation browser ...
+        ^ true
     ].
 
     specialEditorModified := self anySpecialEditorModified.
@@ -54179,52 +55675,52 @@
 
     (specialEditorModified not
     and:[ textModified not ]) ifTrue:[
-	^ true
+        ^ true
     ].
 
     (compareOffered and:[ specialEditorModified not ]) ifTrue:[
-	acceptOffered ifTrue:[
-	    labels := #('Cancel' 'Compare' 'Accept' 'Continue').
-	    values := #(false #compare #accept true).
-	] ifFalse:[
-	    labels := #('Cancel' 'Compare' 'Continue').
-	    values := #(false #compare true).
-	]
-    ] ifFalse:[
-	acceptOffered ifTrue:[
-	    labels := #('Cancel' 'Accept' 'Continue').
-	    values := #(false #accept true).
-	] ifFalse:[
-	    labels := #('Cancel' 'Continue').
-	    values := #(false true).
-	].
+        acceptOffered ifTrue:[
+            labels := #('Cancel' 'Compare' 'Accept' 'Continue').
+            values := #(false #compare #accept true).
+        ] ifFalse:[
+            labels := #('Cancel' 'Compare' 'Continue').
+            values := #(false #compare true).
+        ]
+    ] ifFalse:[
+        acceptOffered ifTrue:[
+            labels := #('Cancel' 'Accept' 'Continue').
+            values := #(false #accept true).
+        ] ifFalse:[
+            labels := #('Cancel' 'Continue').
+            values := #(false true).
+        ].
     ].
 
     msg := question ? 'Modifications have not been saved.\\Your changes will be lost when continuing.'.
     answer := OptionBox
-		  request:(resources string:msg) withCRs
-		  label:(resources string:'Attention')
-		  image:(WarningBox iconBitmap)
-		  buttonLabels:(resources array:labels)
-		  values:values
-		  default:default
-		  onCancel:false.
+                  request:(resources string:msg) withCRs
+                  label:(resources string:'Attention')
+                  image:(WarningBox iconBitmap)
+                  buttonLabels:(resources array:labels)
+                  values:values
+                  default:default
+                  onCancel:false.
 
     answer == #accept ifTrue:[
 "/ self halt.
-	specialEditorModified ifTrue:[
-	    self doSaveInSpecialEditors
-	] ifFalse:[
-	    self doAcceptCodeIn:aNavigationState.
-	].
-	^ true
+        specialEditorModified ifTrue:[
+            self doSaveInSpecialEditors
+        ] ifFalse:[
+            self doAcceptCodeIn:aNavigationState.
+        ].
+        ^ true
     ].
     answer == #compare ifTrue:[
-	self doCompareIn:aNavigationState.
-	^ false.
+        self doCompareIn:aNavigationState.
+        ^ false.
     ].
     answer ifTrue:[
-	navigationState modified:false.
+        navigationState modified:false.
     ].
     ^ answer
 
@@ -54243,17 +55739,17 @@
      from the codeviews selection."
 
     ^ self class
-	enterBoxForClassWithCodeSelectionTitle:title
-	withList:listOrNil
-	okText:okText
-	forBrowser:self
+        enterBoxForClassWithCodeSelectionTitle:title
+        withList:listOrNil
+        okText:okText
+        forBrowser:self
 !
 
 enterBoxForCodeSelectionTitle:title okText:okText
     "convenient method: setup enterBox with text from codeview"
 
     ^ self
-	enterBoxForCodeSelectionTitle:title withList:nil okText:okText
+        enterBoxForCodeSelectionTitle:title withList:nil okText:okText
 !
 
 enterBoxForCodeSelectionTitle:title withList:listOrNil okText:okText
@@ -54262,16 +55758,16 @@
     |sel box initialText|
 
     box := self
-		enterBoxTitle:(resources string:title)
-		withList:listOrNil
-		okText:(resources string:okText).
+                enterBoxTitle:(resources string:title)
+                withList:listOrNil
+                okText:(resources string:okText).
 
     sel := self codeView selection.
     sel notNil ifTrue:[
-	initialText := sel asString string withoutSeparators
+        initialText := sel asString string withoutSeparators
     ].
     initialText notNil ifTrue:[
-	box initialText:initialText
+        box initialText:initialText
     ].
     ^ box
 !
@@ -54288,19 +55784,19 @@
     box := self enterBoxForCodeSelectionTitle:title withList:listOrNil okText:'Add Buffer'.
 
     self codeView hasSelection ifTrue:[
-	sel := self selectionInCodeView.
-	sel size > 0 ifTrue:[
-	    sel := sel withoutSeparators.
-	    sel asCollectionOfWords size == 1 ifFalse:[
-		sel := nil
-	    ]
-	]
+        sel := self selectionInCodeView.
+        sel size > 0 ifTrue:[
+            sel := sel withoutSeparators.
+            sel asCollectionOfWords size == 1 ifFalse:[
+                sel := nil
+            ]
+        ]
     ].
     sel size == 0 ifTrue:[
-	selectedVariables := self variableFilter value.
-	selectedVariables size > 0 ifTrue:[
-	    box initialText:(selectedVariables asStringCollection asStringWith:Character space)
-	]
+        selectedVariables := self variableFilter value.
+        selectedVariables size > 0 ifTrue:[
+            box initialText:(selectedVariables asStringCollection asStringWith:Character space)
+        ]
     ].
 
     ^ box
@@ -54318,7 +55814,7 @@
     "convenient method: setup enterBox"
 
     ^ self class
-	enterBoxTitle:title withList:aListOrNil okText:okText
+        enterBoxTitle:title withList:aListOrNil okText:okText
 
     "Created: / 13.2.2000 / 20:53:53 / cg"
     "Modified: / 1.3.2000 / 11:15:09 / cg"
@@ -54332,13 +55828,13 @@
     box := self listBoxTitle:title okText:okText list:nil.
     sel := self codeView selection.
     sel notNil ifTrue:[
-	sel := sel asString string withoutSeparators.
-	isSelector ifTrue:[
-	    sel knownAsSymbol ifFalse:[
-		sel := SystemBrowser extractSelectorFrom:sel
-	    ].
-	].
-	box initialText:sel
+        sel := sel asString string withoutSeparators.
+        isSelector ifTrue:[
+            sel knownAsSymbol ifFalse:[
+                sel := SystemBrowser extractSelectorFrom:sel
+            ].
+        ].
+        box initialText:sel
     ].
     ^ box
 !
@@ -54361,9 +55857,9 @@
     title := 'class to add to list (Tab to complete or use matchPattern):'.
 
     box := self
-		enterBoxForClassWithCodeSelectionTitle:title
-		withList:(self class visitedClassNamesHistory)
-		okText:'add'.
+                enterBoxForClassWithCodeSelectionTitle:title
+                withList:(self class visitedClassNamesHistory)
+                okText:'add'.
 
     box label:(resources string:'add class to list').
     box entryCompletionBlock:(DoWhatIMeanSupport classNameEntryCompletionBlock).
@@ -54382,13 +55878,13 @@
     subclasses isEmpty ifTrue: [^#()].
 
     ^Dialog
-	    chooseMultiple: 'Choose Subclasses:'
-	    fromList: subclasses
-	    values: subclasses
-	    buttons: #()
-	    values: #()
-	    lines: 8
-	    cancel: [nil]
+            chooseMultiple: 'Choose Subclasses:'
+            fromList: subclasses
+            values: subclasses
+            buttons: #()
+            values: #()
+            lines: 8
+            cancel: [nil]
 ! !
 
 !NewSystemBrowser methodsFor:'private-helpers'!
@@ -54423,53 +55919,53 @@
     aClassName isNil ifTrue:[^ nil].
     class := environment classNamed:aClassName.
     class isNil ifTrue:[
-	selectedClass := self theSingleSelectedClass.
-	selectedClass notNil ifTrue:[
-	    selectedClass isPrivate ifTrue:[
-		class := (selectedClass owningClass privateClassesAt:aClassName).
-		class notNil ifTrue:[
-		    (self confirm:(resources
-				    string:'No class named: %1 exists (in Smalltalk).\\Do you mean the private class %1 in %2 ?'
-				    with:aClassName allBold with:selectedClass owningClass name allBold) withCRs)
-		    ifTrue:[
-			^ class
-		    ].
-		    ^ nil.
-		].
-	    ].
-	    (ns := selectedClass nameSpace) isNameSpace ifTrue:[
-		ns ~~ Smalltalk ifTrue:[
-		    class := ns at:aClassName.
-		    class notNil ifTrue:[
-			(self confirm:(resources
-					string:'No class named: %1 exists (in Smalltalk).\\Do you mean the class %1 in namespace %2 ?'
-					with:aClassName allBold with:ns name allBold) withCRs)
-			ifTrue:[
-			    ^ class
-			].
-			^ nil.
-		    ].
-		]
-	    ].
-	].
-
-
-	self warn:'No such class: ', aClassName.
-	^ nil
+        selectedClass := self theSingleSelectedClass.
+        selectedClass notNil ifTrue:[
+            selectedClass isPrivate ifTrue:[
+                class := (selectedClass owningClass privateClassesAt:aClassName).
+                class notNil ifTrue:[
+                    (self confirm:(resources
+                                    string:'No class named: %1 exists (in Smalltalk).\\Do you mean the private class %1 in %2 ?'
+                                    with:aClassName allBold with:selectedClass owningClass name allBold) withCRs)
+                    ifTrue:[
+                        ^ class
+                    ].
+                    ^ nil.
+                ].
+            ].
+            (ns := selectedClass nameSpace) isNameSpace ifTrue:[
+                ns ~~ Smalltalk ifTrue:[
+                    class := ns at:aClassName.
+                    class notNil ifTrue:[
+                        (self confirm:(resources
+                                        string:'No class named: %1 exists (in Smalltalk).\\Do you mean the class %1 in namespace %2 ?'
+                                        with:aClassName allBold with:ns name allBold) withCRs)
+                        ifTrue:[
+                            ^ class
+                        ].
+                        ^ nil.
+                    ].
+                ]
+            ].
+        ].
+
+
+        self warn:'No such class: ', aClassName.
+        ^ nil
     ].
     class isBehavior ifFalse:[
-	self warn:'Not a class: ', aClassName.
-	^ nil
+        self warn:'Not a class: ', aClassName.
+        ^ nil
     ].
     (class isNameSpace
     and:[class ~~ Smalltalk]) ifTrue:[
-	self warn:'Is a nameSpace: ', aClassName.
-	^ nil
+        self warn:'Is a nameSpace: ', aClassName.
+        ^ nil
     ].
     (class theNonMetaclass isNameSpace
     and:[class theNonMetaclass ~~ Smalltalk]) ifTrue:[
-	self warn:'Is meta of a nameSpace: ', aClassName.
-	^ nil
+        self warn:'Is meta of a nameSpace: ', aClassName.
+        ^ nil
     ].
     ^ class
 !
@@ -54479,24 +55975,24 @@
      pass the non-metaclass as arg"
 
     aCollectionOfClasses do:[:aClass |
-	|cls|
-
-	cls := aClass theNonMetaclass.
-	cls isLoaded ifFalse:[
-	    (unloadedBlock value:cls) ifTrue:[
-		cls owningClass notNil ifTrue:[
-		    privateBlock value:cls
-		] ifFalse:[
-		    aBlock value:cls
-		]
-	    ]
-	] ifTrue:[
-	    cls owningClass notNil ifTrue:[
-		privateBlock value:cls
-	    ] ifFalse:[
-		aBlock value:cls
-	    ]
-	]
+        |cls|
+
+        cls := aClass theNonMetaclass.
+        cls isLoaded ifFalse:[
+            (unloadedBlock value:cls) ifTrue:[
+                cls owningClass notNil ifTrue:[
+                    privateBlock value:cls
+                ] ifFalse:[
+                    aBlock value:cls
+                ]
+            ]
+        ] ifTrue:[
+            cls owningClass notNil ifTrue:[
+                privateBlock value:cls
+            ] ifFalse:[
+                aBlock value:cls
+            ]
+        ]
     ]
 !
 
@@ -54507,10 +56003,10 @@
 
     classes := self selectedClassesValue copy.
     classes size == 0 ifTrue:[
-	self isMethodListBrowser ifTrue:[
-	    classes := self selectedMethodsClasses
-				collect:[:each| each theNonMetaclass] as:IdentitySet.
-	]
+        self isMethodListBrowser ifTrue:[
+            classes := self selectedMethodsClasses
+                                collect:[:each| each theNonMetaclass] as:IdentitySet.
+        ]
     ].
     ^ classes
 
@@ -54533,16 +56029,16 @@
 
 fileSuffixForClass:aClass format:formatSymbolOrNil
     formatSymbolOrNil == #sif ifTrue:[
-	^ 'sif'.
+        ^ 'sif'.
     ].
     formatSymbolOrNil == #xml ifTrue:[
-	^ 'xml'.
+        ^ 'xml'.
     ].
     formatSymbolOrNil == #binary ifTrue:[
-	^ 'cls'
+        ^ 'cls'
     ].
     aClass notNil ifTrue:[
-	^ aClass sourceFileSuffix
+        ^ aClass sourceFileSuffix
     ].
     ^ 'st'.
 !
@@ -54559,8 +56055,8 @@
     meta := false.
     nm := aClassName.
     (nm endsWith:' class') ifTrue:[
-	meta := true.
-	nm := nm copyButLast:6.
+        meta := true.
+        nm := nm copyButLast:6.
     ].
     nameSym := nm asSymbol.
 
@@ -54568,32 +56064,32 @@
 listOfNamespaces := self selectedNamespaces value.
 
     currentNamespace = (BrowserList nameListEntryForALL) ifTrue:[
-	(cls := environment at:nameSym) notNil ifTrue:[
-	    meta ifTrue:[^ cls class].
-	    ^ cls
-	]
+        (cls := environment at:nameSym) notNil ifTrue:[
+            meta ifTrue:[^ cls class].
+            ^ cls
+        ]
     ].
     ("(Array with:Smalltalk) ," (self listOfNamespaces)) do:[:aNamespace |
-	aNamespace = (BrowserList nameListEntryForALL) ifFalse:[
-	    (cls := aNamespace at:nameSym) notNil ifTrue:[
-		meta ifTrue:[^ cls class].
-		^ cls
-	    ]
-	]
+        aNamespace = (BrowserList nameListEntryForALL) ifFalse:[
+            (cls := aNamespace at:nameSym) notNil ifTrue:[
+                meta ifTrue:[^ cls class].
+                ^ cls
+            ]
+        ]
     ].
     currentNamespace ~= (BrowserList nameListEntryForALL) ifTrue:[
-	(cls := environment at:nameSym) notNil ifTrue:[
-	    meta ifTrue:[^ cls class].
-	    ^ cls
-	]
+        (cls := environment at:nameSym) notNil ifTrue:[
+            meta ifTrue:[^ cls class].
+            ^ cls
+        ]
     ].
 
     (nm startsWith:'Smalltalk::') ifTrue:[
-	cls := environment classNamed:(nm withoutPrefix:'Smalltalk::').
-	cls notNil ifTrue:[
-	    meta ifTrue:[^ cls class].
-	    ^ cls
-	]
+        cls := environment classNamed:(nm withoutPrefix:'Smalltalk::').
+        cls notNil ifTrue:[
+            meta ifTrue:[^ cls class].
+            ^ cls
+        ]
     ].
     ^ nil
 
@@ -54606,13 +56102,13 @@
      Return the class or nil, if not found."
 
     self listOfNamespaces do:[:aNamespace |
-	|cls|
-
-	(cls := aNamespace at:aClassName asSymbol) notNil ifTrue:[
-	    (cls topNameSpace == aNamespace) ifTrue:[
-		^ cls
-	    ]
-	]
+        |cls|
+
+        (cls := aNamespace at:aClassName asSymbol) notNil ifTrue:[
+            (cls topNameSpace == aNamespace) ifTrue:[
+                ^ cls
+            ]
+        ]
     ].
     ^ nil
 !
@@ -54624,36 +56120,36 @@
 
     sel := self selectionInCodeView.
     sel notNil ifTrue:[
-	(sel knownAsSymbol and:[environment includesKey:sel asSymbol]) ifTrue:[
-	    ^ sel
-	].
-
-	"/ validate
-	nSel := (Parser new findBestVariablesFor:sel) first.
-
-	nSel ~= sel ifTrue:[
-	    "/ is it a known classVar or classInstance variable ?
-	    classes := self classesToSearchForVariable.
-	    classes do:[:eachClass |
-		eachClass withAllSuperclassesDo:[:classToLookFor |
-		    (classToLookFor classVarNames includes:sel) ifTrue:[
-			self information:('''%1'' is a class variable in %2.'
-					  bindWith:sel with:classToLookFor name).
-			self variablesMenuBrowseAllClassVarRefs.
-			^ nil.
-		    ]
-		]
-	    ].
-	].
+        (sel knownAsSymbol and:[environment includesKey:sel asSymbol]) ifTrue:[
+            ^ sel
+        ].
+
+        "/ validate
+        nSel := (Parser new findBestVariablesFor:sel) first.
+
+        nSel ~= sel ifTrue:[
+            "/ is it a known classVar or classInstance variable ?
+            classes := self classesToSearchForVariable.
+            classes do:[:eachClass |
+                eachClass withAllSuperclassesDo:[:classToLookFor |
+                    (classToLookFor classVarNames includes:sel) ifTrue:[
+                        self information:('''%1'' is a class variable in %2.'
+                                          bindWith:sel with:classToLookFor name).
+                        self variablesMenuBrowseAllClassVarRefs.
+                        ^ nil.
+                    ]
+                ]
+            ].
+        ].
     ].
     "/ take selected classes name as default
     (classes := self selectedClassesValue) notEmptyOrNil ifTrue:[
-	sel := (classes collect:[:cls | cls theNonMetaclass name]) asSortedCollection asStringWith:$|
+        sel := (classes collect:[:cls | cls theNonMetaclass name]) asSortedCollection asStringWith:$|
     ].
     sel isNil ifTrue:[
-	(mthd := self theSingleSelectedMethod) notNil ifTrue:[
-	    sel := mthd mclass name
-	].
+        (mthd := self theSingleSelectedMethod) notNil ifTrue:[
+            sel := mthd mclass name
+        ].
     ].
 "/    "/ take last search as default
 "/    sel isNil ifTrue:[
@@ -54671,14 +56167,14 @@
     |allNamespaces|
 
     allNamespaces isNil ifTrue:[
-	allNamespaces := NameSpace allNameSpaces.
-
-	self showAllNamespaces ifFalse:[
-	    "/ only topLevel namespaces are shown
-	    "/ i.e. ignore subspaces
-
-	    allNamespaces := allNamespaces select:[:ns | ns isTopLevelNameSpace].
-	]
+        allNamespaces := NameSpace allNameSpaces.
+
+        self showAllNamespaces ifFalse:[
+            "/ only topLevel namespaces are shown
+            "/ i.e. ignore subspaces
+
+            allNamespaces := allNamespaces select:[:ns | ns isTopLevelNameSpace].
+        ]
     ].
     ^ allNamespaces
 !
@@ -54690,11 +56186,11 @@
 
     currentNamespace := self currentNamespace.
     (currentNamespace isNil and:[environment == Smalltalk]) ifTrue:[
-	^ Array with:Smalltalk
+        ^ Array with:Smalltalk
     ].
 
     currentNamespace = (BrowserList nameListEntryForALL) ifTrue:[
-	^ environment listOfAllNamespaces
+        ^ environment listOfAllNamespaces
     ].
 
     ^ Array with:currentNamespace
@@ -54704,52 +56200,54 @@
 !
 
 newBrowserOrBufferDependingOn:openHowWanted label:labelOrNil forSpec:spec setupWith:aBlock
-    |brwsr openHow|
+    |brwsr openHow window|
 
     openHow := openHowWanted.
-    (self window notNil and:[self window isApplicationSubView]) ifTrue:[
-	"/ I am embedded - always open as new window
-	openHow := #newBrowser
+    ((window := self window) notNil and:[window isApplicationSubView]) ifTrue:[
+        "/ I am embedded - always open as new window
+        openHow := #newBrowser
     ].
 
     openHow == #newBrowser ifTrue:[
-	brwsr := self class new.
-	brwsr browserCanvasType:spec.
-
-	"/ cannot invoke aBlock here
-	"/ (it requires that all components are built,
-	"/  in order to perform selection changes).
-	"/ therefore, ensure that the components are built:
-	brwsr allButOpen.
-	"/ ... do the setup ...
-	aBlock value:brwsr.
-	"/ and finally open it.
-	navigationState notNil ifTrue:[
-	    brwsr setupNavigationStateFrom:navigationState.
-	].
-	brwsr openWindow.
-    ] ifFalse:[
-	openHow == #newBuffer ifTrue:[
-	    self createBufferWithSpec:spec.
-	] ifFalse:[
-	    "/ find here
-	].
-	brwsr := self.
-	aBlock value:brwsr.
+        brwsr := self class new.
+        brwsr environment: (environment ? Smalltalk).
+        brwsr browserCanvasType:spec.
+
+        "/ cannot invoke aBlock here
+        "/ (it requires that all components are built,
+        "/  in order to perform selection changes).
+        "/ therefore, ensure that the components are built:
+        brwsr allButOpen.
+        "/ ... do the setup ...
+        aBlock value:brwsr.
+        "/ and finally open it.
+        navigationState notNil ifTrue:[
+            brwsr setupNavigationStateFrom:navigationState.
+        ].
+        brwsr openWindow.
+    ] ifFalse:[
+        openHow == #newBuffer ifTrue:[
+            self createBufferWithSpec:spec.
+        ] ifFalse:[
+            "/ find here
+        ].
+        brwsr := self.
+        aBlock value:brwsr.
     ].
     brwsr enqueueDelayedUpdateBufferLabel.
 
     labelOrNil notNil ifTrue:[
-	openHow == #newBrowser ifTrue:[
-	    brwsr windowLabel:labelOrNil.
-	] ifFalse:[
-	    brwsr bufferLabel:labelOrNil
-	]
+        openHow == #newBrowser ifTrue:[
+            brwsr windowLabel:labelOrNil.
+        ] ifFalse:[
+            brwsr bufferLabel:labelOrNil
+        ]
     ].
     ^ brwsr
 
-    "Created: / 24.2.2000 / 19:15:56 / cg"
-    "Modified: / 18.8.2000 / 16:04:33 / cg"
+    "Created: / 24-02-2000 / 19:15:56 / cg"
+    "Modified: / 18-08-2000 / 16:04:33 / cg"
+    "Modified: / 27-04-2014 / 12:59:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 noteBookView
@@ -54774,78 +56272,80 @@
 
 reallyModified:aNavigationState
     "check for modified code by comparing the source against
-     the codeViews contents.
-     Thats the true modified value (in case user undid its changes,
+     the codeView's contents.
+     That's the true modified value (in case user undid his changes,
      and the displayed text is actually original"
 
     |modified codeAspect changedSource originalSource methods classes mthd cls s1 s2|
 
-    aNavigationState modified ifFalse:[^ false].
+    aNavigationState modified ifFalse:[
+        ^ false
+    ].
 
     (codeAspect := aNavigationState codeAspect) isNil ifTrue:[
-	"/ no aspect yet (i.e. there is nothing shown)
-	^ aNavigationState codeView modified.
+        "/ no aspect yet (i.e. there is nothing shown)
+        ^ aNavigationState codeView modified.
     ].
 
     "/ higher prio to prevent it from being changed while we convert it (by editing)
     Processor activeProcess
-	withHigherPriorityDo:[
-	    changedSource := aNavigationState codeView contentsAsString asStringCollection.
-	].
+        withHigherPriorityDo:[
+            changedSource := aNavigationState codeView contentsAsString asStringCollection.
+        ].
     changedSource := changedSource collect:[:line | line string withoutTrailingSeparators withTabsExpanded].
     changedSource := changedSource collect:[:line | line asNilIfEmpty].
     [changedSource size > 0 and:[changedSource last isNil]] whileTrue:[
-	changedSource := changedSource copyButLast:1
+        changedSource := changedSource copyButLast
     ].
     changedSource := changedSource asString.
 
     codeAspect == SyntaxHighlighter codeAspectMethod ifTrue:[
-	methods := aNavigationState selectedMethods value.
-	methods size > 0 ifTrue:[
-	   mthd := methods first.
-	].
-	mthd isNil ifTrue:[
-	    "/ method was either removed by someone else or never accepted;
-	    "/ however, the code is modified anyhow.
-	    ^ true.
-	].
-	originalSource := mthd source.
-	originalSource isNil ifTrue:[
-	    "/ cannot get methods code ..
-	    ^ true
-	].
-
-	originalSource := originalSource asStringCollection.
-	originalSource := originalSource collect:[:line | line string withoutTrailingSeparators withTabsExpanded].
-	originalSource := originalSource collect:[:line | line isEmpty ifTrue:[nil] ifFalse:[line]].
-	[originalSource size > 0 and:[originalSource last isNil]] whileTrue:[
-	    originalSource := originalSource copyButLast:1
-	].
-
-	s1 := originalSource asString.
-	s2 := changedSource asString.
-	modified := (s1 ~= s2)
-    ] ifFalse:[
-	codeAspect == SyntaxHighlighter codeAspectClassDefinition ifTrue:[
-	    classes := aNavigationState selectedClasses value.
-	    classes size > 0 ifTrue:[
-		cls := classes first.
-	    ].
-	    cls isNil ifTrue:[
-		"/ class was either removed by someone else or never accepted;
-		"/ however, the code is modified anyhow.
-		^ true
-	    ].
-	    originalSource := self classDefinitionStringFor:cls.
-	    modified := (originalSource string withTabsExpanded ~= changedSource string withTabsExpanded)
-	] ifFalse:[
-	    ^ true
-	]
+        methods := aNavigationState selectedMethods value.
+        methods size > 0 ifTrue:[
+           mthd := methods first.
+        ].
+        mthd isNil ifTrue:[
+            "/ method was either removed by someone else or never accepted;
+            "/ however, the code is modified anyhow.
+            ^ true.
+        ].
+        originalSource := mthd source.
+        originalSource isNil ifTrue:[
+            "/ cannot get methods code ..
+            ^ true
+        ].
+
+        originalSource := originalSource asStringCollection.
+        originalSource := originalSource collect:[:line | line string withoutTrailingSeparators withTabsExpanded].
+        originalSource := originalSource collect:[:line | line isEmpty ifTrue:[nil] ifFalse:[line]].
+        [originalSource size > 0 and:[originalSource last isNil]] whileTrue:[
+            originalSource := originalSource copyButLast:1
+        ].
+
+        s1 := originalSource asString.
+        s2 := changedSource asString.
+        modified := (s1 ~= s2)
+    ] ifFalse:[
+        codeAspect == SyntaxHighlighter codeAspectClassDefinition ifTrue:[
+            classes := aNavigationState selectedClasses value.
+            classes size > 0 ifTrue:[
+                cls := classes first.
+            ].
+            cls isNil ifTrue:[
+                "/ class was either removed by someone else or never accepted;
+                "/ however, the code is modified anyhow.
+                ^ true
+            ].
+            originalSource := self classDefinitionStringFor:cls.
+            modified := (originalSource string withTabsExpanded ~= changedSource string withTabsExpanded)
+        ] ifFalse:[
+            ^ true
+        ]
     ].
     modified ifFalse:[
-	aNavigationState codeModifiedHolder value:false.
-	aNavigationState realModifiedState:false.
-	self updateBufferLabel.
+        aNavigationState codeModifiedHolder value:false.
+        aNavigationState realModifiedState:false.
+        self updateBufferLabel.
     ].
     ^ modified
 
@@ -54855,12 +56355,12 @@
 
 rememberLastProjectMoveTo:aProject
     LastProjectMoves isNil ifTrue:[
-	LastProjectMoves := OrderedCollection new.
+        LastProjectMoves := OrderedCollection new.
     ].
     LastProjectMoves remove:aProject ifAbsent:nil.
     LastProjectMoves addFirst:aProject.
     LastProjectMoves size > 10 ifTrue:[
-	LastProjectMoves removeLast.
+        LastProjectMoves removeLast.
     ].
 
     "Created: / 17.2.2000 / 23:03:50 / cg"
@@ -54875,7 +56375,7 @@
     allCategories := selectedCategories includes:BrowserList nameListEntryForALL.
 
     ^ self
-	selectedClassesInCategories:selectedCategories orAll:allCategories
+        selectedClassesInCategories:selectedCategories orAll:allCategories
 !
 
 selectedCategoryClassesDo:aBlock
@@ -54889,7 +56389,7 @@
 
     varName := self selectedClassVariableInCodeViewOrNil.
     varName isNil ifTrue:[
-	    self warn:'Please select a variable'.
+            self warn:'Please select a variable'.
     ].
     ^ varName
 !
@@ -54898,22 +56398,22 @@
     |node mthd cls|
 
     (mthd := self theSingleSelectedMethod) notNil ifTrue:[
-	cls := mthd mclass.
-    ] ifFalse:[
-	self codeAspect value ~= SyntaxHighlighter codeAspectClassDefinition ifTrue:[
-	    ^ nil
-	].
-	cls := self theSingleSelectedClass.
+        cls := mthd mclass.
+    ] ifFalse:[
+        self codeAspect value ~= SyntaxHighlighter codeAspectClassDefinition ifTrue:[
+            ^ nil
+        ].
+        cls := self theSingleSelectedClass.
     ].
     node := self findNode.
     node isNil ifTrue:[
-	(self hasClassVariableSelectedInCodeView) ifFalse:[
-	    ^ nil
-	].
-	^ self selectionInCodeView.
+        (self hasClassVariableSelectedInCodeView) ifFalse:[
+            ^ nil
+        ].
+        ^ self selectionInCodeView.
     ].
     node isVariable ifFalse:[
-	^ nil
+        ^ nil
     ].
     ^ node name.
 
@@ -54933,7 +56433,7 @@
      caring for nameSpace and packageFilters"
 
     ^ self
-	selectedClassesInCategories:aCollectionOfCategories orAll:false
+        selectedClassesInCategories:aCollectionOfCategories orAll:false
 !
 
 selectedClassesInCategories:aCollectionOfCategories orAll:allCategories
@@ -54944,7 +56444,7 @@
 
     nameSpaceFilter := self selectedNamespaces value.
     nameSpaceFilter isNil ifTrue:[
-	nameSpaceFilter := navigationState nameSpaceFilter value.
+        nameSpaceFilter := navigationState nameSpaceFilter value.
     ].
     (nameSpaceFilter notNil and:[nameSpaceFilter includes:BrowserList nameListEntryForALL])
     ifTrue:[nameSpaceFilter := nil].
@@ -54954,20 +56454,46 @@
     ifTrue:[packageFilter := nil].
 
     (includeChangedPseudoCategory := aCollectionOfCategories includes:(ClassCategoryList nameListEntryForChanged)) ifTrue:[
-	changedClasses := ChangeSet current changedClasses collect:[:cls | cls theNonMetaclass].
+        changedClasses := ChangeSet current changedClasses collect:[:cls | cls theNonMetaclass].
     ].
 
     ^ environment allClassesForWhich:[:aClass |
-	(allCategories
-	    or:[(aCollectionOfCategories includes:aClass category)
-	    or:[includeChangedPseudoCategory and:[changedClasses includes:aClass]]])
-	and:[ (nameSpaceFilter isNil or:[nameSpaceFilter includes:aClass nameSpace name])
-	and:[ (packageFilter isNil or:[packageFilter includes:aClass package]) ]].
+        (allCategories
+            or:[(aCollectionOfCategories includes:aClass category)
+            or:[includeChangedPseudoCategory and:[changedClasses includes:aClass]]])
+        and:[ (nameSpaceFilter isNil or:[nameSpaceFilter includes:aClass nameSpace name])
+        and:[ (packageFilter isNil or:[aClass isNameSpace not and:[ packageFilter includes:aClass package]]) ]].
     ].
 
     "Modified: / 10-08-2006 / 15:58:11 / cg"
 !
 
+selectedClassesInNamespaces:namespaces orAll:allNamespaces
+    "return a collection containing all classes in aCollectionOfNamespaces,
+     caring for packageFilters"
+
+    | packageFilter includeChangedPseudoCategory changedClasses|
+
+
+
+    packageFilter := navigationState packageFilter value.
+    (packageFilter notNil and:[packageFilter includes:BrowserList nameListEntryForALL])
+    ifTrue:[packageFilter := nil].
+
+    (includeChangedPseudoCategory := namespaces includes:(ClassCategoryList nameListEntryForChanged)) ifTrue:[
+        changedClasses := ChangeSet current changedClasses collect:[:cls | cls theNonMetaclass].
+    ].
+
+    ^ environment allClassesForWhich:[:aClass |
+        (allNamespaces
+            or:[(namespaces includes:aClass environment)
+            or:[includeChangedPseudoCategory and:[changedClasses includes:aClass]]])
+        and:[ (packageFilter isNil or:[aClass isNameSpace not and:[ packageFilter includes:aClass package]]) ].
+    ].
+
+    "Created: / 02-04-2014 / 00:14:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 selectedClassesNonMetaDo:aBlock ifUnloaded:unloadedBlock ifPrivate:privateBlock
     "evaluate aBlock for all selected classes;
      pass the non-metaclass as arg.
@@ -54975,10 +56501,10 @@
      for private classes, evaluate privateBlock."
 
     self
-	classes:(self selectedClassesValue)
-	nonMetaDo:aBlock
-	ifUnloaded:unloadedBlock
-	ifPrivate:privateBlock
+        classes:(self selectedClassesValue)
+        nonMetaDo:aBlock
+        ifUnloaded:unloadedBlock
+        ifPrivate:privateBlock
 
     "Modified: / 28-02-2012 / 16:53:41 / cg"
 !
@@ -54992,38 +56518,53 @@
 !
 
 selectedCodeComponents
-    | mode |
-
-    mode := self navigationState canvasType.
-    #(
-	fullBrowserSpec
-	    (selectedMethods selectedProtocolMethods selectedClasses selectedCategoryClasses)
-	smallLintByRuleResultBrowserSpec
-	    (selectedMethods selectedClasses selectedLintRuleClasses)
-	methodListBrowserSpec
-	    (selectedMethods)
-	"Add more"
-
-    ) pairWiseDo:
-	[:key :selectors|mode == key ifTrue:
-	    [^self selectedCodeComponentsUsing:selectors]].
+    | type mode |
+
+    type := self navigationState canvasType.
+    type == #fullBrowserSpec ifTrue:[
+        mode := self navigationState organizerMode value.
+        mode == #category ifTrue:[
+            ^ self selectedCodeComponentsUsing: #(selectedMethods selectedProtocolMethods selectedClasses selectedCategoryClasses)
+        ].
+        mode == #classHierarchy ifTrue:[
+            ^ self selectedCodeComponentsUsing: #(selectedMethods selectedProtocolMethods selectedClasses)
+        ].
+        mode == #hierarchy ifTrue:[
+            ^ self selectedCodeComponentsUsing: #(selectedMethods selectedProtocolMethods selectedClasses)
+        ].
+        mode == #hierarchy ifTrue:[
+            ^ self selectedCodeComponentsUsing: #(selectedMethods selectedProtocolMethods selectedClasses selectedNamespaceClasses)
+        ].
+        mode == #project ifTrue:[
+            self selectedClasses value notEmptyOrNil ifTrue:[
+                ^ self selectedCodeComponentsUsing: #(selectedMethods selectedProtocolMethods selectedClasses)
+            ].
+        ].
+    ].
+    type == #smallLintByRuleResultBrowserSpec ifTrue:[
+        ^ self selectedCodeComponentsUsing: #(selectedMethods selectedClasses selectedLintRuleClasses)
+    ].
+    type == #methodListBrowserSpec ifTrue:[
+        ^ self selectedCodeComponentsUsing: #(selectedMethods)
+    ].
+    "Add more..."
 
     self breakPoint: #jv.
     "/Fallback
     ^self selectedCodeComponentsUsing:#(selectedMethods selectedClasses).
 
-    "Modified: / 05-02-2010 / 13:21:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 25-08-2010 / 11:22:00 / Jan Vrany <enter your email here>"
     "Modified (format): / 21-12-2011 / 20:23:13 / cg"
+    "Modified: / 02-04-2014 / 11:04:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 selectedCodeComponentsUsing: selectors
 
     | result |
     selectors do:
-	[:selector|
-	(result := (self perform: selector) value)
-	    isEmptyOrNil ifFalse:[^result]].
+        [:selector|
+        (result := (self perform: selector) value)
+            isEmptyOrNil ifFalse:[^result]].
     ^#()
 
     "Modified: / 04-08-2011 / 19:05:31 / cg"
@@ -55034,7 +56575,7 @@
 
     varName := self selectedInstanceVariableInCodeViewOrNil.
     varName isNil ifTrue:[
-	self warn:'Please select an instance variable'.
+        self warn:'Please select an instance variable'.
     ].
     ^ varName
 !
@@ -55043,26 +56584,26 @@
     |node mthd cls|
 
     (mthd := self theSingleSelectedMethod) notNil ifTrue:[
-	cls := mthd mclass.
-    ] ifFalse:[
-	self codeAspect value ~= SyntaxHighlighter codeAspectClassDefinition ifTrue:[
-	    ^ nil
-	].
-	cls := self theSingleSelectedClass.
+        cls := mthd mclass.
+    ] ifFalse:[
+        self codeAspect value ~= SyntaxHighlighter codeAspectClassDefinition ifTrue:[
+            ^ nil
+        ].
+        cls := self theSingleSelectedClass.
     ].
     cls isMeta ifTrue:[
-	^ nil
+        ^ nil
     ].
 
     node := self findNode.
     node isNil ifTrue:[
-	(self hasInstanceVariableSelectedInCodeView) ifFalse:[
-	    ^ nil
-	].
-	^ self selectionInCodeView.
+        (self hasInstanceVariableSelectedInCodeView) ifFalse:[
+            ^ nil
+        ].
+        ^ self selectionInCodeView.
     ].
     node isVariable ifFalse:[
-	^ nil
+        ^ nil
     ].
     ^ node name.
 
@@ -55076,10 +56617,10 @@
 
     classes := Set new.
     self selectedMethodsClasses
-	do:[:cls |
-	    classes addAll:(cls withAllSuperclasses).
-	    classes addAll:(cls allSubclasses).
-	].
+        do:[:cls |
+            classes addAll:(cls withAllSuperclasses).
+            classes addAll:(cls allSubclasses).
+        ].
     ^ classes
 
     "Created: / 05-09-2006 / 10:50:48 / cg"
@@ -55093,6 +56634,20 @@
     "Modified: / 28-02-2012 / 16:43:14 / cg"
 !
 
+selectedNamespaceClasses
+    "return a collection containing all classes affected by the namespace selection"
+
+    |selectedNamespaces allNamespaces|
+
+    selectedNamespaces := self selectedNamespacesValue.
+    allNamespaces := selectedNamespaces includes:BrowserList nameListEntryForALL.
+
+    ^ self
+        selectedClassesInNamespaces:selectedNamespaces orAll:allNamespaces
+
+    "Created: / 02-04-2014 / 00:13:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 selectedNonMetaclasses
     ^ (self selectedClassesValue) collect:[:cls | cls theNonMetaclass].
 
@@ -55119,9 +56674,9 @@
     setOfClasses := IdentitySet new.
 
     environment allClassesDo:[:aClass |
-	(selectedProjects includes:aClass package) ifTrue:[
-	    setOfClasses add:aClass .
-	]
+        (selectedProjects includes:aClass package) ifTrue:[
+            setOfClasses add:aClass .
+        ]
     ].
     ^ setOfClasses
 !
@@ -55131,7 +56686,7 @@
     | methods |
     methods := Set new.
     self selectedProtocolMethodsDo:
-	[:ign1 :ign2 :ign3 :mth|methods add: mth].
+        [:ign1 :ign2 :ign3 :mth|methods add: mth].
     ^methods
 !
 
@@ -55146,26 +56701,26 @@
     allIncluded := protocols includes:(BrowserList nameListEntryForALL).
 
     navigationState isFullProtocolBrowser ifTrue:[
-	targets := environment allClassesAndMetaclasses
-    ] ifFalse:[
-	targets := self selectedClassesValue
+        targets := environment allClassesAndMetaclasses
+    ] ifFalse:[
+        targets := self selectedClassesValue
     ].
     targets isEmptyOrNil ifTrue:[^self].
 
     targets do:[:cls |
-	allIncluded ifTrue:[
-	    cls methodDictionary keysAndValuesDo:[:sel :mthd |
-		aBlock value:cls value:mthd category value:sel value:mthd
-	    ]
-	] ifFalse:[
-	    protocols do:[:aCategory |
-		cls methodDictionary keysAndValuesDo:[:sel :mthd |
-		    aCategory = mthd category ifTrue:[
-			aBlock value:cls value:aCategory value:sel value:mthd
-		    ]
-		]
-	    ]
-	]
+        allIncluded ifTrue:[
+            cls methodDictionary keysAndValuesDo:[:sel :mthd |
+                aBlock value:cls value:mthd category value:sel value:mthd
+            ]
+        ] ifFalse:[
+            protocols do:[:aCategory |
+                cls methodDictionary keysAndValuesDo:[:sel :mthd |
+                    aCategory = mthd category ifTrue:[
+                        aBlock value:cls value:aCategory value:sel value:mthd
+                    ]
+                ]
+            ]
+        ]
     ].
 
     "Modified: / 01-08-2010 / 14:39:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -55181,27 +56736,27 @@
     protocols := self selectedProtocolsValue.
 
     navigationState isFullProtocolBrowser ifTrue:[
-	targets := environment allClassesAndMetaclasses
-    ] ifFalse:[
-	targets := self selectedClassesValue
+        targets := environment allClassesAndMetaclasses
+    ] ifFalse:[
+        targets := self selectedClassesValue
     ].
     allIncluded := protocols includes:(BrowserList nameListEntryForALL).
 
     targets do:[:cls |
-	allIncluded ifTrue:[
-	    cls categories do:[:cat |
-		aBlock value:cls value:cat
-	    ]
-	] ifFalse:[
-	    protocols do:[:aCategory |
-		|cat|
-
-		cat := aCategory string.
-		(cls methodDictionary contains:[:mthd | cat = mthd category]) ifTrue:[
-		    aBlock value:cls value:cat
-		]
-	    ]
-	]
+        allIncluded ifTrue:[
+            cls categories do:[:cat |
+                aBlock value:cls value:cat
+            ]
+        ] ifFalse:[
+            protocols do:[:aCategory |
+                |cat|
+
+                cat := aCategory string.
+                (cls methodDictionary contains:[:mthd | cat = mthd category]) ifTrue:[
+                    aBlock value:cls value:cat
+                ]
+            ]
+        ]
     ].
 
     "Modified: / 28-02-2012 / 16:53:00 / cg"
@@ -55219,14 +56774,14 @@
 
     t := SystemBrowser extractSelectorFrom:sel.
     t notNil ifTrue:[
-	sel := t.
+        sel := t.
     ].
     sel knownAsSymbol ifFalse:[
-	goodSelectors := Parser findBest:5 selectorsFor:sel in:nil forCompletion:false.
-	goodSelectors size == 0 ifTrue:[
-	    ^ nil
-	].
-	sel := goodSelectors first
+        goodSelectors := Parser findBest:5 selectorsFor:sel in:nil forCompletion:false.
+        goodSelectors size == 0 ifTrue:[
+            ^ nil
+        ].
+        sel := goodSelectors first
     ].
     sel isNil ifTrue:[^ nil].
 
@@ -55258,7 +56813,7 @@
 
     namesOrNil := RBParser parseVariableNames:(self selectionInCodeView).
     namesOrNil notNil ifTrue:[
-	names := namesOrNil collect:[:each |each name].
+        names := namesOrNil collect:[:each |each name].
     ].
     ^ names
 !
@@ -55275,7 +56830,7 @@
     |codeView|
 
     (codeView := self codeView) notNil ifTrue:[
-	^ codeView selectionAsString.
+        ^ codeView selectionAsString.
     ].
     ^ nil
 !
@@ -55302,12 +56857,12 @@
 "/            ]
 "/        ]
 "/    ] ifFalse:[
-	sel := self theSingleSelectedSelector.
-	sel notNil ifTrue:[
-	    sel := sel withoutSpaces upTo:(Character space)
-	] ifFalse:[
-	    sel := ''
-	]
+        sel := self theSingleSelectedSelector.
+        sel notNil ifTrue:[
+            sel := sel withoutSpaces upTo:(Character space)
+        ] ifFalse:[
+            sel := ''
+        ]
     ].
     ^ sel string
 
@@ -55316,9 +56871,9 @@
 
 sendFileViaEmail:aFile subject:subject
     SendMailTool
-	openForFile:aFile
-	withSubject:subject
-	recipient:nil
+        openForFile:aFile
+        withSubject:subject
+        recipient:nil
 
     "Created: / 20-09-2007 / 15:02:49 / cg"
 !
@@ -55345,7 +56900,7 @@
 
     sel := self selectionInCodeView.
     sel notNil ifTrue:[
-	^ sel string
+        ^ sel string
     ].
     ^ sel
 !
@@ -55358,7 +56913,7 @@
 
     categories := self selectedCategoriesValue.
     categories size == 1 ifTrue:[
-	^ categories first string
+        ^ categories first string
     ].
     ^ nil
 
@@ -55375,14 +56930,14 @@
 theSingleSelectedLintRuleHolder
 
     ^BlockValue
-	with:[:generator|
-	    | rule size |
-
-	    rule := nil.
-	    size := 0.
-	    (generator value ? #()) do:[:each|rule := each.size := size + 1].
-	    size == 1 ifTrue:[rule] ifFalse:[nil]]
-	argument: self selectedLintRules
+        with:[:generator|
+            | rule size |
+
+            rule := nil.
+            size := 0.
+            (generator value ? #()) do:[:each|rule := each.size := size + 1].
+            size == 1 ifTrue:[rule] ifFalse:[nil]]
+        argument: self selectedLintRules
 
     "Created: / 05-02-2010 / 12:56:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 01-03-2012 / 15:31:23 / cg"
@@ -55413,7 +56968,7 @@
 
     mthd := self theSingleSelectedMethod.
     mthd notNil ifTrue:[
-	name := mthd name
+        name := mthd name
     ].
     ^ name
 
@@ -55427,7 +56982,7 @@
 
     namespaces := self selectedNamespaces value.
     namespaces size == 1 ifTrue:[
-	^ namespaces first
+        ^ namespaces first
     ].
     ^ nil
 
@@ -55441,10 +56996,10 @@
 
     projects := self selectedProjects value.
     projects size == 1 ifTrue:[
-	p := projects first.
-	p ~= (BrowserList nameListEntryForALL) ifTrue:[
-	    ^ p
-	]
+        p := projects first.
+        p ~= (BrowserList nameListEntryForALL) ifTrue:[
+            ^ p
+        ]
     ].
     ^ nil
 
@@ -55458,7 +57013,7 @@
     |selectedProtocols|
 
     (selectedProtocols := self selectedProtocols value) size == 1 ifTrue:[
-	^ selectedProtocols first
+        ^ selectedProtocols first
     ].
     ^ nil
 
@@ -55472,12 +57027,12 @@
 
     mthd := self theSingleSelectedMethod.
     mthd notNil ifTrue:[
-	"JV: I changed this to answer the selector (not  name),
-	because for non-smalltalk languages (Ruby for instance)
-	method selector may differ from method name."
-
-	"/sel := mthd name "/ who methodSelector
-	sel := mthd selector.
+        "JV: I changed this to answer the selector (not  name),
+        because for non-smalltalk languages (Ruby for instance)
+        method selector may differ from method name."
+
+        "/sel := mthd name "/ who methodSelector
+        sel := mthd selector.
     ].
     ^ sel
 
@@ -55492,7 +57047,7 @@
     |selectedVariables|
 
     (selectedVariables := self selectedVariables value) size == 1 ifTrue:[
-	^ selectedVariables first
+        ^ selectedVariables first
     ].
     ^ nil
 !
@@ -55501,7 +57056,7 @@
     |appView|
 
     anAppOrNil isNil ifTrue:[
-	^ false
+        ^ false
     ].
     appView := anAppOrNil window.
     ^ appView notNil
@@ -55522,6 +57077,13 @@
     ^ navigationState classListApplication
 !
 
+inlineMessageApp
+    ^ self navigationState inlineMessageApplication
+
+    "Created: / 25-03-2014 / 17:59:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 25-02-2015 / 16:52:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 methodCategoryList: aView
 
     navigationState methodCategoryList: aView
@@ -55556,7 +57118,6 @@
     ^ navigationState projectListApplication
 ! !
 
-
 !NewSystemBrowser methodsFor:'private-history'!
 
 lastSearchPatterns
@@ -55568,19 +57129,20 @@
 
     mthd := self theSingleSelectedMethod.
     mthd isNil ifTrue:[
-	cls := self theSingleSelectedClass.
-    ] ifFalse:[
-	cls := mthd mclass.
-	sel := mthd selector.
+        cls := self theSingleSelectedClass.
+    ] ifFalse:[
+        cls := mthd mclass.
+        sel := mthd selector.
     ].
     cls isNil ifTrue:[
-	^ self
-    ].
-    self class addToFindHistory: cls selector: sel.
+        ^ self
+    ].
+    self addToFindHistory: cls selector: sel.
     self addToHistory: cls selector: sel.
 
     "Modified: / 27-02-2008 / 16:54:06 / janfrog"
     "Modified: / 02-07-2011 / 18:29:29 / cg"
+    "Modified: / 02-05-2014 / 17:28:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 rememberSearchPattern:aString
@@ -55593,9 +57155,9 @@
 
 asyncShowMethodInfo
     self
-	enqueueMessage:#showInfo:
-	for:self
-	arguments:(Array with:self getMethodInfo)
+        enqueueMessage:#showInfo:
+        for:self
+        arguments:(Array with:self getMethodInfo)
 !
 
 busyLabel:what
@@ -55604,8 +57166,8 @@
     |window|
 
     (window := builder window) isTopView ifTrue:[
-	window
-	    label:('SystemBrowser - ' , (resources string:what))
+        window
+            label:('SystemBrowser - ' , (resources string:what))
     ]
 !
 
@@ -55615,8 +57177,8 @@
     |window|
 
     (window := builder window) isTopView ifTrue:[
-	window
-	    label:('SystemBrowser - ' , (resources string:what with:someArgument))
+        window
+            label:('SystemBrowser - ' , (resources string:what with:someArgument))
     ]
 !
 
@@ -55632,15 +57194,15 @@
     category := categories anElement.
 
     selectedClasses size == 1 ifTrue:[
-	msg := 'Category of %1: %3'
-    ] ifFalse:[
-	msg := 'Category of %2 classes: %3'
+        msg := 'Category of %1: %3'
+    ] ifFalse:[
+        msg := 'Category of %2 classes: %3'
     ].
 
     ^ resources string:msg
-		with:selectedClasses first name
-		with:selectedClasses size
-		with:category
+                with:selectedClasses first name
+                with:selectedClasses size
+                with:category
 
     "Modified: / 28-02-2012 / 16:45:20 / cg"
 !
@@ -55658,8 +57220,8 @@
     subclasses := singleSelectedClass subclasses.
     msg := self infoStringForClasses:subclasses withPrefix:'sub'.
     ^ resources string:('%1: ' , msg)
-		with:singleSelectedClass theNonMetaclass name
-		with:subclasses size
+                with:singleSelectedClass theNonMetaclass name
+                with:subclasses size
 
     "Modified: / 27-07-2006 / 10:10:38 / cg"
 !
@@ -55672,7 +57234,7 @@
 
 currentBufferLabel
     self shortNamesInTabs value ifTrue:[
-	^ navigationState shortNameString
+        ^ navigationState shortNameString
     ].
     ^ navigationState nameString
 
@@ -55687,27 +57249,27 @@
     "return the defaultLabel"
 
     navigationState isCategoryBrowser ifTrue:[
-	^ 'Category'
+        ^ 'Category'
     ].
     (navigationState isNameSpaceBrowser
     or:[navigationState isNameSpaceFullBrowser]) ifTrue:[
-	^ 'NameSpace'
+        ^ 'NameSpace'
     ].
     (navigationState isProjectBrowser
     or:[navigationState isProjectFullBrowser]) ifTrue:[
-	^ 'Project'
+        ^ 'Project'
     ].
     navigationState isFullClassSourceBrowser ifTrue:[
-	^ 'FullClass'
+        ^ 'FullClass'
     ].
     navigationState isClassDocumentationBrowser ifTrue:[
-	^ 'Documentation'
+        ^ 'Documentation'
     ].
     navigationState isVersionDiffBrowser ifTrue:[
-	^ 'Revisions'
+        ^ 'Revisions'
     ].
     navigationState isClassDocumentationBrowser ifTrue:[
-	^ 'Documentation'
+        ^ 'Documentation'
     ].
     ^ ''
 
@@ -55717,17 +57279,6 @@
 
 delayedUpdateBufferLabel
     self updateBufferLabel.
-
-"/    |nr|
-"/
-"/    (nr := selectedBuffer value) notNil ifTrue:[
-"/        nr ~~ 0 ifTrue:[
-"/            bufferNameList at:nr put:(self currentBufferLabel).
-"/        ]
-"/    ]
-
-    "Modified: / 5.2.2000 / 04:23:21 / cg"
-    "Created: / 5.2.2000 / 04:25:54 / cg"
 !
 
 delayedUpdateBufferLabelWithCheckIfModified
@@ -55752,22 +57303,22 @@
     |nm ns currentNamespace|
 
     aClass isJavaClass ifTrue:[
-	^ aClass nameInBrowser "/ fullName "/ asString replaceAll:$/ with:$.
+        ^ aClass nameInBrowser "/ fullName "/ asString replaceAll:$/ with:$.
     ].
 
     ns := aClass topNameSpace.
     ns isNil ifTrue:[          "/ this 'cannot' happen (should always be Smalltalk)
-	^ aClass name
+        ^ aClass name
     ].
 
     currentNamespace := self currentNamespace.
     currentNamespace = (BrowserList nameListEntryForALL) ifTrue:[
-	(ns == Smalltalk) ifTrue:[
-	    nm := aClass nameWithoutNameSpacePrefix.
-	    ^ nm
-	].
-	nm := aClass nameWithoutNameSpacePrefix.
-	^ ns name , '::' , nm   "/ full name
+        (ns == Smalltalk) ifTrue:[
+            nm := aClass nameWithoutNameSpacePrefix.
+            ^ nm
+        ].
+        nm := aClass nameWithoutNameSpacePrefix.
+        ^ ns name , '::' , nm   "/ full name
     ].
 
     nm := aClass nameWithoutNameSpacePrefix.
@@ -55775,10 +57326,10 @@
     "/ is it in one of the selected namespaces ?
 
     (self findClassNamedInNameSpace:nm) isNil ifTrue:[
-	^ ns name , '::' , nm   "/ full name
+        ^ ns name , '::' , nm   "/ full name
     ].
     currentNamespace == ns ifFalse:[
-	^ ns name , '::' , nm   "/ full name
+        ^ ns name , '::' , nm   "/ full name
     ].
     ^ nm.
 
@@ -55799,36 +57350,36 @@
 
     explainTookTooLong := false.
     withTimeout ifTrue:[
-	explanation :=
-	    [ self explanationForCode:code short:short ]
-		    valueWithWatchDog:[explainTookTooLong := true]
-		    afterMilliseconds:200.
-    ] ifFalse:[
-	explanation := self explanationForCode:code short:short
+        explanation :=
+            [ self explanationForCode:code short:short ]
+                    valueWithWatchDog:[explainTookTooLong := true]
+                    afterMilliseconds:200.
+    ] ifFalse:[
+        explanation := self explanationForCode:code short:short
     ].
 
     self activityNotification:nil.
     explainTookTooLong ifTrue:[
-	self showInfo:'Explain took too long - cancelled.'.
-	^ self.
+        self showInfo:'Explain took too long - cancelled.'.
+        ^ self.
     ].
 
     explanation notEmptyOrNil ifTrue:[
-	short ifTrue:[
-	    self showInfo:explanation
-	] ifFalse:[
-	    explanation isArray ifTrue:[
-		html := explanation detect:[:entry | entry key == #html] ifNone:nil.
-		html notNil ifTrue:[
-		    "/ todo: need a stripped down viewer (small, popup, modal)
-		    HTMLDocumentView openFullOnText:(html value).
-		    ^ self.
-		].
-		explanation := explanation first value.
-	    ].
-	    self information:explanation
-	].
-	builder window flush
+        short ifTrue:[
+            self showInfo:explanation
+        ] ifFalse:[
+            explanation isArray ifTrue:[
+                html := explanation detect:[:entry | entry key == #html] ifNone:nil.
+                html notNil ifTrue:[
+                    "/ todo: need a stripped down viewer (small, popup, modal)
+                    HTMLDocumentView openFullOnText:(html value).
+                    ^ self.
+                ].
+                explanation := explanation first value.
+            ].
+            self information:explanation
+        ].
+        builder window flush
     ].
 
     "Created: / 05-09-2006 / 10:37:04 / cg"
@@ -55846,31 +57397,31 @@
 
     interval := self selectedInterval.
     interval isEmpty ifTrue:[
-	crsrPos := codeView characterPositionOfCursor.
-	codeView characterUnderCursor isSeparator ifTrue:[
-	    crsrPos := (crsrPos - 1) max:1
-	].
-	interval := crsrPos to:crsrPos.
+        crsrPos := codeView characterPositionOfCursor.
+        codeView characterUnderCursor isSeparator ifTrue:[
+            crsrPos := (crsrPos - 1) max:1
+        ].
+        interval := crsrPos to:crsrPos.
     ].
 
     navigationState codeAspect == #classDefinition ifFalse:[
-	node := self findNodeForInterval:interval.
+        node := self findNodeForInterval:interval.
     ].
     node notNil ifTrue: [
-	Error ignoreIn:[
-	    explanation := Explainer explainNode:node in:code forClass:cls short:short interval:interval
-	]
+        Error catch:[
+            explanation := Explainer explainNode:node in:code forClass:cls short:short interval:interval
+        ]
     ].
     explanation isNil ifTrue:[
-	codeView hasSelection ifTrue:[
-	    selection := codeView selection.
-	] ifFalse:[
-	    "/ selection := codeView characterBeforeCursor.
-	].
-	selection notNil ifTrue:[
-	    selection := selection asString string withoutSeparators.
-	    explanation := Explainer explain:selection in:code forClass:cls short:short
-	].
+        codeView hasSelection ifTrue:[
+            selection := codeView selection.
+        ] ifFalse:[
+            "/ selection := codeView characterBeforeCursor.
+        ].
+        selection notNil ifTrue:[
+            selection := selection asString string withoutSeparators.
+            explanation := Explainer explain:selection in:code forClass:cls short:short
+        ].
     ].
     ^ explanation
 
@@ -55883,7 +57434,7 @@
     organizerMode := self organizerMode value.
     (organizerMode == OrganizerCanvas organizerModeClassHierarchy
     or:[ organizerMode == OrganizerCanvas organizerModeHierarchy] ) ifTrue:[
-	^ self classCategoryInfo.
+        ^ self classCategoryInfo.
     ].
 
     msg := self classInheritanceInfo.
@@ -55909,23 +57460,23 @@
     firstMethod := selectedMethods first.
 
     selectedMethods size == 1 ifTrue:[
-	^ self getMethodInfoForMethod:firstMethod.
+        ^ self getMethodInfoForMethod:firstMethod.
     ].
 
     differentSourceButSameSemantic := false.
 
     source1 := firstMethod source.
     selectedMethods asArray from:2 do:[:eachOtherMethod |
-	eachOtherMethod source ~= source1 ifTrue:[
-	    Error
-		handle:[:ex | ^  nil]
-		do:[
-		    firstMethod parseTree ~= eachOtherMethod parseTree ifTrue:[
-			^ nil.
-		    ].
-		].
-	    differentSourceButSameSemantic := true.
-	].
+        eachOtherMethod source ~= source1 ifTrue:[
+            Error
+                handle:[:ex | ^  nil]
+                do:[
+                    firstMethod parseTree ~= eachOtherMethod parseTree ifTrue:[
+                        ^ nil.
+                    ].
+                ].
+            differentSourceButSameSemantic := true.
+        ].
     ].
 
     prefix := differentSourceButSameSemantic ifTrue:['Same effect'] ifFalse:['Same source'].
@@ -55933,7 +57484,7 @@
     "/ all are the same.
     msg := self getMethodInfoForMethod:firstMethod.
     msg isEmptyOrNil ifTrue:[
-	^ prefix.
+        ^ prefix.
     ].
     ^ prefix,' - ' , msg.
 
@@ -55947,37 +57498,37 @@
     method := aMethod.
     method isNil ifTrue:[ ^ nil ].
     method wrapper notNil ifTrue:[
-	method := method wrapper
+        method := method wrapper
     ].
     method isNil ifTrue:[
-	^ 'oops - this method is not attached to any class'.
+        ^ 'oops - this method is not attached to any class'.
     ].
 
     msg := self methodSpecialInfoFor:method.
     msg isNil ifTrue:[
-	msg := self methodInheritanceInfoFor:method.
-	msg2 := self methodRedefinitionInfoFor:method.
-	msg2 notNil ifTrue:[
-	     msg := msg isNil
-			ifTrue:[msg2]
-			ifFalse:[msg,'; ',msg2]
-	].
-	msg isNil ifTrue:[
-	    msg := self methodImplementorsInfoFor:method
-	].
+        msg := self methodInheritanceInfoFor:method.
+        msg2 := self methodRedefinitionInfoFor:method.
+        msg2 notNil ifTrue:[
+             msg := msg isNil
+                        ifTrue:[msg2]
+                        ifFalse:[msg,'; ',msg2]
+        ].
+        msg isNil ifTrue:[
+            msg := self methodImplementorsInfoFor:method
+        ].
     ].
     msg := (msg ? '').
 
     method isInstrumented ifTrue:[
-	msg isEmpty ifTrue:[
-	    msg := 'Instrumented.' colorizeAllWith:(Color green darkened).
-	] ifFalse:[
-	    msg := ('Instrumented.' colorizeAllWith:(Color green darkened)),' ',msg.
-	].
-	self showCoverageInformation value ifFalse:[
-	    msg := msg , ' (coverage display is turned off - see "view"-menu)'
-	].
-	msg := msg , '.'.
+        msg isEmpty ifTrue:[
+            msg := 'Instrumented.' colorizeAllWith:(Color green darkened).
+        ] ifFalse:[
+            msg := ('Instrumented.' colorizeAllWith:(Color green darkened)),' ',msg.
+        ].
+        self showCoverageInformation value ifFalse:[
+            msg := msg , ' (coverage display is turned off - see "view"-menu)'
+        ].
+        msg := msg , '.'.
     ].
 
     ^ msg.
@@ -55987,7 +57538,7 @@
     |nClassNames sortedByName classNames|
 
     aCollectionOfClasses isEmpty ifTrue:[
-	^ 'No %1classes' bindWith:prefix.
+        ^ 'No %1classes' bindWith:prefix.
     ].
 
     classNames := aCollectionOfClasses asIdentitySet asOrderedCollection collect:[:each | each theNonMetaclass name].
@@ -55995,28 +57546,28 @@
     nClassNames := classNames size.
 
     nClassNames <= 4 ifTrue:[
-	nClassNames == 1 ifTrue:[
-	    ^ '%2' "'1 %1class: %2'" bindWith:prefix with:(classNames first allBold).
-	].
-	sortedByName := classNames sort.
-	nClassNames == 2 ifTrue:[
-	    ^ '%2 and %3' "'2 %1classes: %2 and %3'" bindWith:prefix
-			with:(sortedByName first allBold)
-			with:(sortedByName second allBold).
-	].
-	nClassNames == 3 ifTrue:[
-	    ^ '%2, %3 and %4' "'3 %1classes: %2, %3 and %4'" bindWith:prefix
-			with:(sortedByName first allBold)
-			with:(sortedByName second allBold)
-			with:(sortedByName third allBold).
-	].
-	nClassNames == 4 ifTrue:[
-	    ^ '%2, %3, %4 and %5' "'4 %1classes: %2, %3, %4 and %5'" bindWith:prefix
-			with:(sortedByName first allBold)
-			with:(sortedByName second allBold)
-			with:(sortedByName third allBold)
-			with:(sortedByName fourth allBold).
-	].
+        nClassNames == 1 ifTrue:[
+            ^ '%2' "'1 %1class: %2'" bindWith:prefix with:(classNames first allBold).
+        ].
+        sortedByName := classNames sort.
+        nClassNames == 2 ifTrue:[
+            ^ '%2 and %3' "'2 %1classes: %2 and %3'" bindWith:prefix
+                        with:(sortedByName first allBold)
+                        with:(sortedByName second allBold).
+        ].
+        nClassNames == 3 ifTrue:[
+            ^ '%2, %3 and %4' "'3 %1classes: %2, %3 and %4'" bindWith:prefix
+                        with:(sortedByName first allBold)
+                        with:(sortedByName second allBold)
+                        with:(sortedByName third allBold).
+        ].
+        nClassNames == 4 ifTrue:[
+            ^ '%2, %3, %4 and %5' "'4 %1classes: %2, %3, %4 and %5'" bindWith:prefix
+                        with:(sortedByName first allBold)
+                        with:(sortedByName second allBold)
+                        with:(sortedByName third allBold)
+                        with:(sortedByName fourth allBold).
+        ].
     ].
     ^ '%1 %2classes' bindWith:nClassNames printString allBold with:prefix
 
@@ -56027,32 +57578,32 @@
     |implementors msg senders msg2|
 
     implementors := SystemBrowser
-	findImplementorsOf:aMethod selector
-	in:(environment allClasses)
-	ignoreCase:false.
+        findImplementorsOf:aMethod selector
+        in:(environment allClasses)
+        ignoreCase:false.
 
     implementors notEmpty ifTrue:[
-	msg := 'Only implemented here.'.
-	implementors remove:aMethod ifAbsent:nil.
-	implementors notEmpty ifTrue:[
-	    implementors := implementors collect:[:mthd | mthd mclass].
-	    implementors notEmpty ifTrue:[
-		msg := 'Also implemented in '.
-		msg := msg , (self infoStringForClasses:implementors withPrefix:'other ').
-		msg := msg , '.'.
-	    ]
-	].
+        msg := 'Only implemented here.'.
+        implementors remove:aMethod ifAbsent:nil.
+        implementors notEmpty ifTrue:[
+            implementors := implementors collect:[:mthd | mthd mclass].
+            implementors notEmpty ifTrue:[
+                msg := 'Also implemented in '.
+                msg := msg , (self infoStringForClasses:implementors withPrefix:'other ').
+                msg := msg , '.'.
+            ]
+        ].
     ].
 
 false ifTrue:[  "/ too slow
     senders := SystemBrowser
-	findSendersOf:aMethod selector
-	in:(environment allClasses)
-	ignoreCase:false.
+        findSendersOf:aMethod selector
+        in:(environment allClasses)
+        ignoreCase:false.
     senders notEmpty ifTrue:[
-	msg2 := 'Sent from ' , senders size printString, ' methods.'.
-    ] ifFalse:[
-	msg2 := 'No senders.'.
+        msg2 := 'Sent from ' , senders size printString, ' methods.'.
+    ] ifFalse:[
+        msg2 := 'No senders.'.
     ].
     msg := msg , '/' , msg2
 ].
@@ -56072,15 +57623,15 @@
     sel := aMethod selector.
     inheritedClass := superclass whichClassIncludesSelector:sel.
     inheritedClass notNil ifTrue:[
-	mthd := inheritedClass compiledMethodAt:sel.
-	msg := (sel contractTo:30) allBold.
-	(mthd sends:#'subclassResponsibility') ifTrue:[
-	    msg := msg , ' overrides subclassResponsibility in '.
-	] ifFalse:[
-	    msg := msg , ' overrides implementation in '.
-	].
-	msg := msg , inheritedClass name allBold.
-	"/ msg := msg , '.'.
+        mthd := inheritedClass compiledMethodAt:sel.
+        msg := (sel contractTo:30) allBold.
+        (mthd sends:#'subclassResponsibility') ifTrue:[
+            msg := msg , ' overrides subclassResponsibility in '.
+        ] ifFalse:[
+            msg := msg , ' overrides implementation in '.
+        ].
+        msg := msg , inheritedClass name allBold.
+        "/ msg := msg , '.'.
     ].
 
     ^ msg
@@ -56094,9 +57645,9 @@
 
     redefiningClasses := cls allSubclasses select:[:cls | cls includesSelector:aMethod selector. ].
     redefiningClasses size > 0 ifTrue:[
-	msg := 'redefined in '.
-	msg := msg , (self infoStringForClasses:redefiningClasses withPrefix:'sub').
-	msg := msg , '.'.
+        msg := 'redefined in '.
+        msg := msg , (self infoStringForClasses:redefiningClasses withPrefix:'sub').
+        msg := msg , '.'.
     ].
 
     ^ msg
@@ -56113,12 +57664,12 @@
     cls isNil ifTrue:[^ nil].
 
     cls isMeta ifTrue:[
-	(AbstractSourceCodeManager isVersionMethodSelector:sel) ifTrue:[
-	    ^ 'The version method is required for the source code repository - do not modify.'.
-	].
-	sel == #documentation ifTrue:[
-	    ^ 'ST/X stores documentation in this method (not in comment slots)'.
-	].
+        (AbstractSourceCodeManager isVersionMethodSelector:sel) ifTrue:[
+            ^ 'The version method is required for the source code repository - do not modify.'.
+        ].
+        sel == #documentation ifTrue:[
+            ^ 'ST/X stores documentation in this method (not in comment slots)'.
+        ].
     ].
     ^ nil
 !
@@ -56136,8 +57687,8 @@
 
     window := builder window.
     (window notNil and:[window isTopView]) ifFalse:[
-	"/ if I am used as a subApp, do not update the label
-	^ self
+        "/ if I am used as a subApp, do not update the label
+        ^ self
     ].
 
 "/    windowLabel notNil ifTrue:[
@@ -56150,11 +57701,11 @@
 "/    ].
 
     l isNil ifTrue:[
-	l := il := self currentWindowLabel.
+        l := il := self currentWindowLabel.
     ].
     navigationState realModifiedState == true
     ifTrue:[
-	l := l , ' [modified]'
+        l := l , ' [modified]'
     ].
     window label:l; iconLabel:il.
 
@@ -56165,9 +57716,9 @@
     | nm |
 
     manager isNil ifTrue:[
-	nm := nil
-    ] ifFalse:[
-	nm := manager name.
+        nm := nil
+    ] ifFalse:[
+        nm := manager name.
     ].
 
     menu replaceArgument: #SourceCodeManagerNamePlaceholder with: nm.
@@ -56210,24 +57761,24 @@
     self showInfo:(self getMethodInfo).
 
     self showMethodComplexity value ifTrue:[
-	OOM::MethodMetrics notNil ifTrue:[
-	    method := self theSingleSelectedMethod.
-	    method notNil ifTrue:[
-		metrics := OOM::MethodMetrics forMethod:method.
-		complexity := metrics complexity.
-		complexity notNil ifTrue:[
-		    msg := metrics class descriptiveName,': ',complexity printString.
-		].
-
-	    ]
-	]
+        OOM::MethodMetrics notNil ifTrue:[
+            method := self theSingleSelectedMethod.
+            method notNil ifTrue:[
+                metrics := OOM::MethodMetrics forMethod:method.
+                complexity := metrics complexity.
+                complexity notNil ifTrue:[
+                    msg := metrics class descriptiveName,': ',complexity printString.
+                ].
+
+            ]
+        ]
     ].
 !
 
 withActivityNotificationsRedirectedToInfoLabelDo:aBlock
     ActivityNotification handle:[:ex |
-	self showInfo:(ex messageText).
-	ex proceed.
+        self showInfo:(ex messageText).
+        ex proceed.
     ] do:aBlock
 
     "Created: / 01-03-2007 / 17:45:27 / cg"
@@ -56235,10 +57786,10 @@
 
 withSearchCursorDo:aBlock
     [
-	self busyLabel:'searching...'.
-	self withCursor:(Cursor questionMark) do:aBlock
+        self busyLabel:'searching...'.
+        self withCursor:(Cursor questionMark) do:aBlock
     ] ensure:[
-	self normalLabel
+        self normalLabel
     ]
 ! !
 
@@ -56256,9 +57807,9 @@
     | sel |
     sel := UserPreferences current at: #searchCompletionBlock ifAbsent:[nil].
     sel notNil ifTrue:[
-	^self perform: ('searchCompletionBlock_' , sel) asSymbol ifNotUnderstood:[
-	    self searchCompletionBlock_Standard
-	].
+        ^self perform: ('searchCompletionBlock_' , sel) asSymbol ifNotUnderstood:[
+            self searchCompletionBlock_Standard
+        ].
     ].
     ^self searchCompletionBlock_Standard
 
@@ -56295,17 +57846,17 @@
     ^[:partialName| | env |
     env := self theSingleSelectedNamespace ? #Smalltalk.
     env = NavigatorModel nameListEntryForALL
-	ifTrue:[env := #Smalltalk].
+        ifTrue:[env := #Smalltalk].
     env := environment at: env.
     partialName isEmptyOrNil
-	ifTrue:
-	    [#('' #())]
-	ifFalse:
-	    [partialName first isUppercase
-		ifTrue:
-		    [DoWhatIMeanSupport classnameCompletion: partialName inEnvironment: env]
-		ifFalse:
-		    [DoWhatIMeanSupport selectorCompletion: partialName inEnvironment: env]]]
+        ifTrue:
+            [#('' #())]
+        ifFalse:
+            [partialName first isUppercase
+                ifTrue:
+                    [DoWhatIMeanSupport classnameCompletion: partialName inEnvironment: env]
+                ifFalse:
+                    [DoWhatIMeanSupport selectorCompletion: partialName inEnvironment: env]]]
 
     "Modified: / 10-02-2010 / 08:47:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 04-08-2011 / 19:05:28 / cg"
@@ -56347,7 +57898,7 @@
 
 checkAcceptedMethod:aMethod inClass:aClass
     "do some semantic checks on the just accepted method:
-	does new method redefine an inherited method, which does the same ?
+        does new method redefine an inherited method, which does the same ?
     "
 
     |msg selector subMethods answer|
@@ -56356,72 +57907,72 @@
 
     "/ skip for some...
     (aClass isMeta) ifTrue:[
-	(AbstractSourceCodeManager isVersionMethodSelector:selector) ifTrue:[
-	    ^ self
-	].
-	( #(
-	    documentation
-	    copyright
-	    legalCopyright
-	) includes:selector) ifTrue:[
-	    ^ self
-	].
+        (AbstractSourceCodeManager isVersionMethodSelector:selector) ifTrue:[
+            ^ self
+        ].
+        ( #(
+            documentation
+            copyright
+            legalCopyright
+        ) includes:selector) ifTrue:[
+            ^ self
+        ].
     ].
 
     (self canUseRefactoringParser) ifTrue:[
-	"/ does new method redefine an inherited method,
-	"/ which does the same ?
-	msg := self checkIfSameSemanticsRedefinedWith:aMethod inClass:aClass.
-	msg notNil ifTrue:[
-	    (Dialog
-		confirm:msg withCRs
-		title:'Remove duplicate method'
-		yesLabel:(resources string:'Remove Here')
-		noLabel:(resources string:'Keep')
-		initialAnswer:false)
-	    ifTrue:[
-		self doRemoveMethodsUnconfirmed:(Array with:aMethod)
-	    ].
-	    ^ self
-	].
-
-	subMethods := OrderedCollection new.
-	aClass allSubclassesDo:[:eachInheritingClass |
-	    |redefiningMethod|
-
-	    redefiningMethod := eachInheritingClass compiledMethodAt:selector.
-	    redefiningMethod notNil ifTrue:[
-		msg := self checkIfSameSemanticsRedefinedWith:redefiningMethod inClass:eachInheritingClass.
-		msg notNil ifTrue:[
-		    (eachInheritingClass superclass whichClassIncludesSelector:selector) == aClass
-		    ifTrue:[
-			subMethods add:redefiningMethod.
-		    ]
-		].
-	    ]
-	].
-	subMethods size > 0 ifTrue:[
-	    msg := 'The same code is found in the subclass(es):\\'.
-	    subMethods do:[:eachMethod | msg := msg , '    ' , eachMethod mclass name , '\'].
-	    msg := msg , '\You may want to remove it there.'.
-	    answer := Dialog
-		confirmWithCancel:msg withCRs
-		labels:(resources array:#('Keep' 'Remove here' 'Remove in Subclass(es)'))
-		values:#(true #removeHere #removeThere)
-		default:1.
-	    answer == #removeHere ifTrue:[
-		self doRemoveMethodsUnconfirmed:(Array with:aMethod)
-	    ] ifFalse:[
-		answer == #removeThere ifTrue:[
-		    self doRemoveMethodsUnconfirmed:subMethods
-		]
-	    ]
-	]
+        "/ does new method redefine an inherited method,
+        "/ which does the same ?
+        msg := self checkIfSameSemanticsRedefinedWith:aMethod inClass:aClass.
+        msg notNil ifTrue:[
+            (Dialog
+                confirm:msg withCRs
+                title:'Remove duplicate method'
+                yesLabel:(resources string:'Remove Here')
+                noLabel:(resources string:'Keep')
+                initialAnswer:false)
+            ifTrue:[
+                self doRemoveMethodsUnconfirmed:(Array with:aMethod)
+            ].
+            ^ self
+        ].
+
+        subMethods := OrderedCollection new.
+        aClass allSubclassesDo:[:eachInheritingClass |
+            |redefiningMethod|
+
+            redefiningMethod := eachInheritingClass compiledMethodAt:selector.
+            redefiningMethod notNil ifTrue:[
+                msg := self checkIfSameSemanticsRedefinedWith:redefiningMethod inClass:eachInheritingClass.
+                msg notNil ifTrue:[
+                    (eachInheritingClass superclass whichClassIncludesSelector:selector) == aClass
+                    ifTrue:[
+                        subMethods add:redefiningMethod.
+                    ]
+                ].
+            ]
+        ].
+        subMethods size > 0 ifTrue:[
+            msg := 'The same code is found in the subclass(es):\\'.
+            subMethods do:[:eachMethod | msg := msg , '    ' , eachMethod mclass name , '\'].
+            msg := msg , '\You may want to remove it there.'.
+            answer := Dialog
+                confirmWithCancel:msg withCRs
+                labels:(resources array:#('Keep' 'Remove here' 'Remove in Subclass(es)'))
+                values:#(true #removeHere #removeThere)
+                default:1.
+            answer == #removeHere ifTrue:[
+                self doRemoveMethodsUnconfirmed:(Array with:aMethod)
+            ] ifFalse:[
+                answer == #removeThere ifTrue:[
+                    self doRemoveMethodsUnconfirmed:subMethods
+                ]
+            ]
+        ]
     ].
 
     UserPreferences current enforceComment ifTrue:[
-	"/ check for empty/missing method comment
-	self checkForEmptyMethodComment:aMethod inClass:aClass.
+        "/ check for empty/missing method comment
+        self checkForEmptyMethodComment:aMethod inClass:aClass.
     ].
 
 "/    "/ super-send probably missing ?
@@ -56443,20 +57994,23 @@
 
     comments := parser comments.
     comments isEmptyOrNil ifTrue:[
-	Dialog warn:(resources stringWithCRs:'Missing Method-Comment.\Please add a short description of what the method does.').
-	^ self
+        Dialog
+            withOptoutOption:[UserPreferences current enforceComment:false]
+            labelled:(resources string:'Do not show this dialog again (reenable via Launcher''s settings)')
+            warn:(resources stringWithCRs:'Missing Method-Comment.\Please add a short description of what the method does.').
+        ^ self
     ].
 
     firstComment := comments first.
     firstComment string withoutSeparators isEmpty ifTrue:[
-	"/ firstComment isEndOfLineComment ifFalse:[
-	    ParserFlags warnAboutBadComments ifTrue:[
-		Dialog warn:(resources stringWithCRs:'Useless (empty) Method-Comment.\Please add flesh to it.').
-	    ] ifFalse:[
-		Dialog warn:(resources stringWithCRs:'Useless (empty) Method-Comment.\Please add flesh or remove it.').
-	    ].
-	    ^ self
-	"/ ]
+        "/ firstComment isEndOfLineComment ifFalse:[
+            ParserFlags warnAboutBadComments ifTrue:[
+                Dialog warn:(resources stringWithCRs:'Useless (empty) Method-Comment.\Please add flesh to it.').
+            ] ifFalse:[
+                Dialog warn:(resources stringWithCRs:'Useless (empty) Method-Comment.\Please add flesh or remove it.').
+            ].
+            ^ self
+        "/ ]
     ].
 !
 
@@ -56474,91 +58028,91 @@
 
     "/ these are meant to be empty nad only contain different comments...
     ( #(
-	documentation
-	version
-	examples
-	copyright
-	history
-	initialize      "/ because that is not invoked if only inherited
+        documentation
+        version
+        examples
+        copyright
+        history
+        initialize      "/ because that is not invoked if only inherited
        ) includes:sel) ifTrue:[
-	aClass isMeta ifTrue:[
-	    ^ nil
-	]
+        aClass isMeta ifTrue:[
+            ^ nil
+        ]
     ].
 
     superCls := aClass superclass.
     superCls notNil ifTrue:[
-	implClass := superCls whichClassIncludesSelector:sel.
+        implClass := superCls whichClassIncludesSelector:sel.
     ].
     implClass isNil ifTrue:[^ nil].
 
     "/ ok, it is redefined
     methodThere := implClass compiledMethodAt:sel.
     treeHere := RBParser
-		    parseMethod:methodHere source ? ''
-		    onError: [:aString :position | ^ nil "ignore any error"].
+                    parseMethod:methodHere source ? ''
+                    onError: [:aString :position | ^ nil "ignore any error"].
     treeHere isNil ifTrue:[^ nil].
     treeThere := RBParser
-		    parseMethod:methodThere source ? ''
-		    onError: [:aString :position | ^ nil "ignore any error"].
+                    parseMethod:methodThere source ? ''
+                    onError: [:aString :position | ^ nil "ignore any error"].
     treeThere isNil ifTrue:[^ nil].
 
     dictionary := Dictionary new.
     (treeHere body equalTo: treeThere body withMapping: dictionary) ifTrue:[
-	mClass := methodHere mclass theNonMetaclass.
-	"/ must try again, but remove mappings to classVariables and classInstanceVariables ...
-	mClass allClassVarNames do:[:each |
-	    dictionary removeKey:each ifAbsent:nil.
-	    dictionary removeValue:each ifAbsent:nil.
-	].
-
-	mClass allInstVarNames do:[:each |
+        mClass := methodHere mclass theNonMetaclass.
+        "/ must try again, but remove mappings to classVariables and classInstanceVariables ...
+        mClass allClassVarNames do:[:each |
+            dictionary removeKey:each ifAbsent:nil.
+            dictionary removeValue:each ifAbsent:nil.
+        ].
+
+        mClass allInstVarNames do:[:each |
 "/            dictionary removeKey:each ifAbsent:nil.
 "/            dictionary removeValue:each ifAbsent:nil.
-	    dictionary at:each put:each
-	].
-	mClass allClassVarNames do:[:each |
-	    dictionary at:each put:each
-	].
-
-	(treeHere body equalTo: treeThere body withMapping: dictionary) ifTrue:[
-	    "/ super and here mean something different in a subclass; may not ne present.
-	    (dictionary keys contains:[:key | (key = 'super') or:[key = 'here']]) ifFalse:[
-		(dictionary values contains:[:value | value = 'super' or:[value = 'here']]) ifFalse:[
-		    "/ look at the mapping dictionary ..
-		    "/ remove equivalently mapped ones ..
-		    dictionary keys
-			select:[:key | (dictionary at:key) = key]
-			thenDo:[:key | dictionary removeKey:key].
-
-		    "/ now, no upper-case variables are allowed ...
-		    (dictionary keys contains:[:key | key isUppercaseFirst]) ifFalse:[
-			"/ ignore (possibly renamed) arguments ...
-			dictionary keys
-			    select:[:key | treeHere arguments contains:[:argVar | argVar name = key]]
-			    thenDo:[:eachArgHere |
-				|argIndexHere argThere argIndexThere|
-
-				argIndexHere := treeHere arguments findFirst:[:argVar | argVar name = eachArgHere].
-				argThere := dictionary at:eachArgHere.
-				argIndexThere := treeThere arguments findFirst:[:argVar | argVar name = argThere].
-				argIndexHere == argIndexThere ifTrue:[
-				    dictionary removeKey:eachArgHere
-				].
-			    ].
-
-			remainingRenames := dictionary keys.
-			(remainingRenames contains:[:key | treeHere arguments contains:[:argVar | argVar name = key]])
-			ifFalse:[
-			    (remainingRenames contains:[:key | treeThere arguments contains:[:argVar | argVar name = key]])
-			    ifFalse:[
-				^ 'This method''s functionality is already inherited from ', implClass name , '.\\You may want to remove it here.'.
-			    ]
-			]
-		    ].
-		].
-	    ].
-	].
+            dictionary at:each put:each
+        ].
+        mClass allClassVarNames do:[:each |
+            dictionary at:each put:each
+        ].
+
+        (treeHere body equalTo: treeThere body withMapping: dictionary) ifTrue:[
+            "/ super and here mean something different in a subclass; may not ne present.
+            (dictionary keys contains:[:key | (key = 'super') or:[key = 'here']]) ifFalse:[
+                (dictionary values contains:[:value | value = 'super' or:[value = 'here']]) ifFalse:[
+                    "/ look at the mapping dictionary ..
+                    "/ remove equivalently mapped ones ..
+                    dictionary keys
+                        select:[:key | (dictionary at:key) = key]
+                        thenDo:[:key | dictionary removeKey:key].
+
+                    "/ now, no upper-case variables are allowed ...
+                    (dictionary keys contains:[:key | key isUppercaseFirst]) ifFalse:[
+                        "/ ignore (possibly renamed) arguments ...
+                        dictionary keys
+                            select:[:key | treeHere arguments contains:[:argVar | argVar name = key]]
+                            thenDo:[:eachArgHere |
+                                |argIndexHere argThere argIndexThere|
+
+                                argIndexHere := treeHere arguments findFirst:[:argVar | argVar name = eachArgHere].
+                                argThere := dictionary at:eachArgHere.
+                                argIndexThere := treeThere arguments findFirst:[:argVar | argVar name = argThere].
+                                argIndexHere == argIndexThere ifTrue:[
+                                    dictionary removeKey:eachArgHere
+                                ].
+                            ].
+
+                        remainingRenames := dictionary keys.
+                        (remainingRenames contains:[:key | treeHere arguments contains:[:argVar | argVar name = key]])
+                        ifFalse:[
+                            (remainingRenames contains:[:key | treeThere arguments contains:[:argVar | argVar name = key]])
+                            ifFalse:[
+                                ^ 'This method''s functionality is already inherited from ', implClass name , '.\\You may want to remove it here.'.
+                            ]
+                        ]
+                    ].
+                ].
+            ].
+        ].
     ].
     ^ nil
 
@@ -56575,21 +58129,21 @@
     aClass compilerClass == Compiler ifFalse:[^ false].
 
     methodHere selector == #initialize ifTrue:[
-	aClass isMeta ifTrue:[^ false].
-	aClass == Object ifTrue:[^ false].
-	aClass superclass == Object ifTrue:[^ false].
+        aClass isMeta ifTrue:[^ false].
+        aClass == Object ifTrue:[^ false].
+        aClass superclass == Object ifTrue:[^ false].
     ].
 
     sel := methodHere selector.
 
     "/ see if new method already invokes the redefined super method
     (methodHere referencesLiteral:sel) ifTrue:[
-	(methodHere messagesSentToSuper includes:sel) ifTrue:[ ^ false ]
+        (methodHere messagesSentToSuper includes:sel) ifTrue:[ ^ false ]
     ].
 
     superCls := aClass superclass.
     superCls notNil ifTrue:[
-	implClass := superCls whichClassIncludesSelector:sel.
+        implClass := superCls whichClassIncludesSelector:sel.
     ].
     implClass isNil ifTrue:[^ false].
 
@@ -56597,28 +58151,28 @@
     methodThere := implClass compiledMethodAt:sel.
 
     (methodThere notNil and:[methodThere referencesLiteral:sel]) ifTrue:[
-	(methodThere messagesSentToSuper includes:sel) ifTrue:[
-	    self information:(resources
-				string:'Could it be possible, that you forgot a ''super %1''\(I found a ''super %1'' in the overwritten #%1-method) ?'
-				with:sel) withCRs.
-	    ^ true
-	]
+        (methodThere messagesSentToSuper includes:sel) ifTrue:[
+            self information:(resources
+                                string:'Could it be possible, that you forgot a ''super %1''\(I found a ''super %1'' in the overwritten #%1-method) ?'
+                                with:sel) withCRs.
+            ^ true
+        ]
     ].
 
     "/ see if the redefined method is empty
     methodThere notNil ifTrue:[
-	parser := Parser parseMethod:methodThere source in:methodThere mclass.
-	treeThere := parser tree.
-	treeThere isNil ifTrue:[
-	    "/ yes, empty
-	    ^ false
-	].
-	treeThere isReturnNode ifTrue:[
-	    treeThere expression isSelf ifTrue:[
-		"/ yes, a simple ^ self
-		^ false
-	    ].
-	].
+        parser := Parser parseMethod:methodThere source in:methodThere mclass.
+        treeThere := parser tree.
+        treeThere isNil ifTrue:[
+            "/ yes, empty
+            ^ false
+        ].
+        treeThere isReturnNode ifTrue:[
+            treeThere expression isSelf ifTrue:[
+                "/ yes, a simple ^ self
+                ^ false
+            ].
+        ].
     ].
 
     "/ look if all any subclasses of the superclass do a super-send
@@ -56647,12 +58201,12 @@
     (aMatcher canMatchMethod:mthd) ifFalse: [^ false].
 
     parseTree := RBParser
-	    parseMethod:mthd source
-	    onError: [:str :pos | Transcript showCR:str. Transcript showCR:pos.
-				  nil].
+            parseMethod:mthd source
+            onError: [:str :pos | Transcript showCR:str. Transcript showCR:pos.
+                                  nil].
     parseTree isNil ifTrue:[^ false ].
     (aMatcher executeTree: parseTree initialAnswer: nil) notNil ifTrue:[
-	^ true
+        ^ true
     ].
     ^ false
 !
@@ -56665,11 +58219,11 @@
 
     comment := mthd comment.
     cls isMeta ifTrue:[
-	(AbstractSourceCodeManager isVersionMethodSelector:sel) ifTrue:[^ nil].
-	sel == #documentation ifTrue:[
-	    comment isBlank ifTrue:[ ^ 'no documentation in documentation method' ].
-	    ^ nil
-	].
+        (AbstractSourceCodeManager isVersionMethodSelector:sel) ifTrue:[^ nil].
+        sel == #documentation ifTrue:[
+            comment isBlank ifTrue:[ ^ 'no documentation in documentation method' ].
+            ^ nil
+        ].
     ].
 
     comment size == 0 ifTrue:[^ 'missing comment' ].
@@ -56678,40 +58232,6 @@
     ^ nil.
 ! !
 
-!NewSystemBrowser methodsFor:'private-smalllint'!
-
-smalllintRulesAll
-    "Return all lint rules except those specific for portability or
-     dialect-specific rules"
-
-    ^RBCompositeLintRule allRules rejectAllDialectSpecific.
-
-    "Created: / 17-04-2010 / 10:07:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 25-08-2010 / 14:38:21 / Jan Vrany <enter your email here>"
-    "Modified: / 07-03-2012 / 20:26:29 / cg"
-    "Modified: / 06-09-2012 / 14:56:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-smalllintRulesGood
-    "Return all 'good' lint rules - good means that they are verified and
-     should be used"
-
-    ^RBCompositeLintRule allRules selectAllTaggedAs: #good
-
-    "Created: / 06-09-2012 / 14:54:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-smalllintRulesOrGood
-    "Returns a set of user-selected SmallLint rules or all 'good' rules,
-     if no user selection is done"
-
-   ^LastLintRules notNil
-	ifTrue:[ LastLintRules ]
-	ifFalse:[ self smalllintRulesGood ]
-
-    "Created: / 06-09-2012 / 14:49:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
 !NewSystemBrowser methodsFor:'private-syntax coloring'!
 
 startSyntaxHighlightProcess
@@ -56729,21 +58249,21 @@
 
     dontDoIt := (currentMethod := self theSingleSelectedMethod) isNil.
     dontDoIt := dontDoIt
-		or:[self doSyntaxColoring value ~~ true
-		or:[(self doImmediateSyntaxColoring) value ~~ true]].
+                or:[self doSyntaxColoring value ~~ true
+                or:[(self doImmediateSyntaxColoring) value ~~ true]].
 
     dontDoIt ifFalse:[
-	methodsClass := currentMethod mclass.
-	methodsClass isNil ifTrue:[
-	    dontDoIt := true
-	].
-	highlighterClass := self syntaxHighlighterForMethod:currentMethod.
+        methodsClass := currentMethod mclass.
+        methodsClass isNil ifTrue:[
+            dontDoIt := true
+        ].
+        highlighterClass := self syntaxHighlighterForMethod:currentMethod.
     ].
     highlighterClass isNil ifTrue:[
-	syntaxColoringProcess notNil ifTrue:[
-	    self stopSyntaxHighlightProcess
-	].
-	^ self
+        syntaxColoringProcess notNil ifTrue:[
+            self stopSyntaxHighlightProcess
+        ].
+        ^ self
     ].
 
     codeView := self codeView.
@@ -56755,96 +58275,96 @@
 "/    ].
 "/    codeView modifiedChannel setValue:false.
     syntaxColoringProcess notNil ifTrue:[
-	syntaxColoringProcessRunning ~~ true ifTrue:[
-	    "/ process already created, but did not get a change to start yet;
-	    ^ self
-	].
-	self stopSyntaxHighlightProcess
+        syntaxColoringProcessRunning ~~ true ifTrue:[
+            "/ process already created, but did not get a change to start yet;
+            ^ self
+        ].
+        self stopSyntaxHighlightProcess
     ].
     prio := Processor userBackgroundPriority - 1.
     codeView shown ifFalse:[
-	prio := prio - 1 max:1
+        prio := prio - 1 max:1
     ].
 
     syntaxColoringProcess :=
-	[
-	    |oldCode newCode cls sensor|
-
-	    [
-		syntaxColoringProcessRunning := true.
-		cls := methodsClass.
-		(cls notNil and:[cls isObsolete]) ifTrue:[
-		    cls isMeta ifTrue:[
-			cls := (environment at:cls theNonMetaclass name) class
-		    ] ifFalse:[
-			cls := environment at:cls name
-		    ].
-		].
-		"check after every lengthy operation if modified by user in the meantime..."
-		codeView modified ifFalse:[
-		    oldCodeList := codeView list copy.
-		    codeView modified ifFalse:[
-			oldCodeList isNil ifFalse:[
-			    oldCode := oldCodeList asStringWithoutEmphasis.
-			    codeView modified ifFalse:[
-				Screen currentScreenQuerySignal answer:device
-				do:[
-				    Parser parseErrorSignal handle:[:ex |
-					|errMsg|
-
-					errMsg := ex description asStringCollection first asString.
-
-					"/ Transcript topView raiseDeiconified.
-					"/ Transcript showCR:'ParseError: ', ex description.
+        [
+            |oldCode newCode cls sensor|
+
+            [
+                syntaxColoringProcessRunning := true.
+                cls := methodsClass.
+                (cls notNil and:[cls isObsolete]) ifTrue:[
+                    cls isMeta ifTrue:[
+                        cls := (environment at:cls theNonMetaclass name) class
+                    ] ifFalse:[
+                        cls := environment at:cls name
+                    ].
+                ].
+                "check after every lengthy operation if modified by user in the meantime..."
+                codeView modified ifFalse:[
+                    oldCodeList := codeView list copy.
+                    codeView modified ifFalse:[
+                        oldCodeList isNil ifFalse:[
+                            oldCode := oldCodeList asStringWithoutEmphasis.
+                            codeView modified ifFalse:[
+                                Screen currentScreenQuerySignal answer:device
+                                do:[
+                                    Parser parseErrorSignal handle:[:ex |
+                                        |errMsg|
+
+                                        errMsg := ex description asStringCollection first asString.
+
+                                        "/ Transcript topView raiseDeiconified.
+                                        "/ Transcript showCR:'ParseError: ', ex description.
     "/ self halt.
-					self showInfo:(errMsg colorizeAllWith:Color red).
-					self navigationState showingParseError:true.
-					newCode := nil.
-				    ] do:[
-					|codeAspect|
-
-					codeAspect := self codeAspect.
-					codeAspect == SyntaxHighlighter codeAspectMethod ifTrue:[
-					    newCode := highlighterClass formatMethod:currentMethod source:oldCode in:cls
-					] ifFalse:[
-					    codeAspect == SyntaxHighlighter codeAspectClassDefinition ifTrue:[
-						newCode := highlighterClass formatExpression:oldCode in:cls
-					    ].
-					].
-				    ]
-				].
-				newCode notNil ifTrue:[
-				    codeView modified ifFalse:[
-					newCode := newCode asStringCollection.
-					codeView modified ifFalse:[
-					    syntaxColoringProcess := nil.
-					    (codeView := self codeView) notNil ifTrue:[
-						"/ must add this event - and not been interrupted
-						"/ by any arriving key-event.
-						"/ self showInfo:nil.
-						codeView sensor
-						    pushUserEvent:#syntaxHighlightedCode:
-						    for:self
-						    withArguments:(Array with:newCode).
-						self delayedUpdateBufferLabelWithCheckIfModified
-					    ]
-					]
-				    ]
-				]
-			    ]
-			]
-		    ]
-		]
-	    ] ensure:[
-		syntaxColoringProcessRunning := false.
-		syntaxColoringProcess := nil
-	    ]
-	] newProcess.
+                                        self showInfo:(errMsg colorizeAllWith:Color red).
+                                        self navigationState showingParseError:true.
+                                        newCode := nil.
+                                    ] do:[
+                                        |codeAspect|
+
+                                        codeAspect := self codeAspect.
+                                        codeAspect == SyntaxHighlighter codeAspectMethod ifTrue:[
+                                            newCode := highlighterClass formatMethod:currentMethod source:oldCode in:cls
+                                        ] ifFalse:[
+                                            codeAspect == SyntaxHighlighter codeAspectClassDefinition ifTrue:[
+                                                newCode := highlighterClass formatExpression:oldCode in:cls
+                                            ].
+                                        ].
+                                    ]
+                                ].
+                                newCode notNil ifTrue:[
+                                    codeView modified ifFalse:[
+                                        newCode := newCode asStringCollection.
+                                        codeView modified ifFalse:[
+                                            syntaxColoringProcess := nil.
+                                            (codeView := self codeView) notNil ifTrue:[
+                                                "/ must add this event - and not been interrupted
+                                                "/ by any arriving key-event.
+                                                "/ self showInfo:nil.
+                                                codeView sensor
+                                                    pushUserEvent:#syntaxHighlightedCode:
+                                                    for:self
+                                                    withArguments:(Array with:newCode).
+                                                self delayedUpdateBufferLabelWithCheckIfModified
+                                            ]
+                                        ]
+                                    ]
+                                ]
+                            ]
+                        ]
+                    ]
+                ]
+            ] ensure:[
+                syntaxColoringProcessRunning := false.
+                syntaxColoringProcess := nil
+            ]
+        ] newProcess.
 
     syntaxColoringProcess priority:prio.
     (prio < Processor userSchedulingPriority) ifTrue:[
-	"/ ensure, it makes progress...
-	syntaxColoringProcess priorityRange:(prio to:Processor userSchedulingPriority).
+        "/ ensure, it makes progress...
+        syntaxColoringProcess priorityRange:(prio to:Processor userSchedulingPriority).
     ].
     syntaxColoringProcess resume
 
@@ -56858,10 +58378,10 @@
     |p|
 
     (p := syntaxColoringProcess) notNil ifTrue:[
-	syntaxColoringProcess := nil.
-	p terminate.
-	"/ raise its prio to make it terminate quickly
-	p priority:(Processor userSchedulingPriority + 1)
+        syntaxColoringProcess := nil.
+        p terminate.
+        "/ raise its prio to make it terminate quickly
+        p priority:(Processor userSchedulingPriority + 1)
     ]
 !
 
@@ -56874,75 +58394,75 @@
 
     codeView := self codeView.
     codeView modified ifTrue:[
-	"/ new user input arrived in the meantime
-
-	^ self
+        "/ new user input arrived in the meantime
+
+        ^ self
     ].
     syntaxColoringProcess notNil ifTrue:[
-	"/ another coloring process has already been started.
-	"/ ignore this (leftover) code.
-
-	^ self
+        "/ another coloring process has already been started.
+        "/ ignore this (leftover) code.
+
+        ^ self
     ].
     self theSingleSelectedMethod isNil ifTrue:[
-	"/ have already switched to some other method,
-	"/ or closed.
-
-	^ self
+        "/ have already switched to some other method,
+        "/ or closed.
+
+        ^ self
     ].
 
     self navigationState showingParseError ifTrue:[
-	self showInfo:''.       "/ to erase any previous syntax error
+        self showInfo:''.       "/ to erase any previous syntax error
     ].
 
     firstShown := codeView firstLineShown.
     lastShown := codeView lastLineShown.
     replaceAction := [:lNr :line |
-	    |oldLine|
-
-	    oldLine := list at:lNr ifAbsent:nil.
-	    oldLine notNil ifTrue:[
-		line notNil ifTrue:[
-		    "/ this check is needed - there is a race
-		    "/ when the text is converted. This detects the
-		    "/ resulting error.
-		    "/ Certainly a kludge.
-
-		    oldLine string = line string ifTrue:[
-			oldLine emphasis ~= line emphasis ifTrue:[
-			    codeView modifiedChannel removeDependent:self.
-			    list at:lNr put:line.
-			    codeView modifiedChannel addDependent:self.
-			    (lNr between:firstShown and:lastShown) ifTrue:[
-				anyChange ifFalse:[
-				    anyChange := true.
-				    cursorWasOn := codeView hideCursor
-				].
-				codeView redrawLine:lNr
-			    ]
-			]
-		    ]
-		]
-	    ]
-	].
+            |oldLine|
+
+            oldLine := list at:lNr ifAbsent:nil.
+            oldLine notNil ifTrue:[
+                line notNil ifTrue:[
+                    "/ this check is needed - there is a race
+                    "/ when the text is converted. This detects the
+                    "/ resulting error.
+                    "/ Certainly a kludge.
+
+                    oldLine string = line string ifTrue:[
+                        oldLine emphasis ~= line emphasis ifTrue:[
+                            codeView modifiedChannel removeDependent:self.
+                            list at:lNr put:line.
+                            codeView modifiedChannel addDependent:self.
+                            (lNr between:firstShown and:lastShown) ifTrue:[
+                                anyChange ifFalse:[
+                                    anyChange := true.
+                                    cursorWasOn := codeView hideCursor
+                                ].
+                                codeView redrawLine:lNr
+                            ]
+                        ]
+                    ]
+                ]
+            ]
+        ].
     anyChange := false.
     newLines := newCode asStringCollection.
     list := codeView list.
     list isNil ifTrue:[
-	codeView list:newLines.
-    ] ifFalse:[
-	"/ the cursor line first - thats where your eyes are ...
-	(l := codeView cursorLine) notNil ifTrue:[
-	    l <= newLines size ifTrue:[
-		replaceAction value:l value:(newLines at:l)
-	    ]
-	].
-	newLines keysAndValuesDo:replaceAction.
-	anyChange ifTrue:[
-	    cursorWasOn ifTrue:[
-		codeView showCursor
-	    ]
-	]
+        codeView list:newLines.
+    ] ifFalse:[
+        "/ the cursor line first - thats where your eyes are ...
+        (l := codeView cursorLine) notNil ifTrue:[
+            l <= newLines size ifTrue:[
+                replaceAction value:l value:(newLines at:l)
+            ]
+        ].
+        newLines keysAndValuesDo:replaceAction.
+        anyChange ifTrue:[
+            cursorWasOn ifTrue:[
+                codeView showCursor
+            ]
+        ]
     ].
 
     "Modified: / 09-10-2006 / 11:50:17 / cg"
@@ -56973,19 +58493,19 @@
      Otherwise, not-yet-accepted definition for different language\
      won't be properly highlighted!!!!!!"
     self codeView isCodeView2 ifTrue:[
-	| lang |
-
-	lang := self codeView languageHolder value.
-	lang notNil ifTrue:[
-	    highlighterClass := lang syntaxHighlighterClass
-	].
+        | lang |
+
+        lang := self codeView languageHolder value.
+        lang notNil ifTrue:[
+            highlighterClass := lang syntaxHighlighterClass
+        ].
     ].
 
 
     "HACK!!!!!!"
 
     highlighterClass == SyntaxHighlighter ifTrue:[
-	highlighterClass := SyntaxHighlighter2
+        highlighterClass := SyntaxHighlighter2
     ].
 
 
@@ -57002,7 +58522,7 @@
 
     highlighterClass := mthd syntaxHighlighterClass.
     highlighterClass == #askClass ifTrue:[
-	highlighterClass := cls syntaxHighlighterClass.
+        highlighterClass := cls syntaxHighlighterClass.
     ].
 
     "When a new class of different language is about to be
@@ -57013,25 +58533,25 @@
      Otherwise, not-yet-accepted definition for different language\
      won't be properly highlighted!!!!!!"
     self codeView isCodeView2 ifTrue:[
-	| lang |
-
-	lang := self codeView languageHolder value.
-	lang notNil ifTrue:[
-	    highlighterClass := lang syntaxHighlighterClass
-	].
+        | lang |
+
+        lang := self codeView languageHolder value.
+        lang notNil ifTrue:[
+            highlighterClass := lang syntaxHighlighterClass
+        ].
     ].
 
     "HACK!!!!!!"
 
     highlighterClass == SyntaxHighlighter ifTrue:[
-	highlighterClass := SyntaxHighlighter2
+        highlighterClass := SyntaxHighlighter2
     ].
 
     (mthd isInstrumented
     and:[ self showCoverageInformation value ]) ifTrue:[
-	(highlighterClass isKindOf: SyntaxHighlighter class) ifTrue:[
-	    highlighterClass := CodeCoverageHighlighter
-	].
+        (highlighterClass isKindOf: SyntaxHighlighter class) ifTrue:[
+            highlighterClass := CodeCoverageHighlighter
+        ].
     ].
 
     ^ highlighterClass
@@ -57046,8 +58566,8 @@
     "return a holder on the current canvas"
 
     browserCanvas isNil ifTrue:[
-	browserCanvas := ValueHolder new.
-	browserCanvas value:(self newCanvasWithSpec:(self browserCanvasType ? #fullBrowserSpec))
+        browserCanvas := ValueHolder new.
+        browserCanvas value:(self newCanvasWithSpec:(self browserCanvasType ? #fullBrowserSpec))
     ].
     ^ browserCanvas
 
@@ -57081,7 +58601,7 @@
 browserCanvasTypeHolder
 
     ^(AspectAdaptor forAspect: #spec)
-	subjectChannel: self browserCanvas.
+        subjectChannel: self browserCanvas.
 
     "Created: / 07-06-2011 / 21:48:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
@@ -57091,12 +58611,12 @@
 
     | canvas |
     browserPageCanvas isNil ifTrue:[
-	browserPageCanvas := ValueHolder new.
-	canvas := SubCanvas new.
-	canvas client:self spec:#browserPageSpec builder: builder.
-	canvas level:0.
-	canvas origin:0.0@0.0 corner:1.0@1.0.
-	browserPageCanvas value: canvas.
+        browserPageCanvas := ValueHolder new.
+        canvas := SubCanvas new.
+        canvas client:self spec:#browserPageSpec builder: builder.
+        canvas level:0.
+        canvas origin:0.0@0.0 corner:1.0@1.0.
+        browserPageCanvas value: canvas.
     ].
     ^ browserPageCanvas
 
@@ -57106,8 +58626,8 @@
 
 bufferLabel:aString
     navigationState notNil ifTrue:[
-	navigationState browserLabel:aString.
-	self enqueueDelayedUpdateBufferLabel.
+        navigationState browserLabel:aString.
+        self enqueueDelayedUpdateBufferLabel.
     ].
 !
 
@@ -57167,7 +58687,7 @@
     codeView formatAction:[:code | self formatCode ].
     codeView menuHolder:self; menuMessage:#codeViewMenu.
     self stringSearchToolVisibleHolder value ifTrue:[
-	self codeView searchBarActionBlock: self searchBarActionBlock.
+        self codeView searchBarActionBlock: self searchBarActionBlock.
     ].
 !
 
@@ -57191,20 +58711,20 @@
     self updateCodeInfoAndStringSearchToolVisibility.
 
     editorNoteBook selectConditionBlock:
-	[:index |
-	    |canSelect editorCanvas method|
-
-	    canSelect := true.
-	    self showSpecialResourceEditors value ifTrue:[
-		(method := self theSingleSelectedMethod) notNil ifTrue:[
-		    "/ toggling away from the special editor - see if it was modified and ask for accept if so
-		    navigationState modified ifTrue:[
-			canSelect := self askIfModified.
-		    ]
-		].
-	    ].
-	    canSelect
-	].
+        [:index |
+            |canSelect editorCanvas method|
+
+            canSelect := true.
+            self showSpecialResourceEditors value ifTrue:[
+                (method := self theSingleSelectedMethod) notNil ifTrue:[
+                    "/ toggling away from the special editor - see if it was modified and ask for accept if so
+                    navigationState modified ifTrue:[
+                        canSelect := self askIfModified.
+                    ]
+                ].
+            ].
+            canSelect
+        ].
 !
 
 postBuildFixup
@@ -57213,43 +58733,43 @@
     newNavigationState := self navigationState.
     self assert:newNavigationState canvasType notNil.
     newNavigationState isFullClassSourceBrowser
-	ifTrue:[self hidePrivateClasses value:true.].
+        ifTrue:[self hidePrivateClasses value:true.].
 
     "/ newNavigationState setUpScrollableCodeView.
 
     self editorNoteBookCanvasHolder
-	value:(newNavigationState scrollableCodeView).
+        value:(newNavigationState scrollableCodeView).
     self codeView formatAction:[:code | self formatCode].
     (self codeView)
-	menuHolder:self;
-	menuMessage:#codeViewMenu.
+        menuHolder:self;
+        menuMessage:#codeViewMenu.
 
     (UserPreferences current useCodeView2In: #Browser)
-	ifTrue:[self codeView browserHolder value:self].
+        ifTrue:[self codeView browserHolder value:self].
 
     UserPreferences current useSearchBarInBrowser
-	ifTrue:
-	    ["/        self stringSearchToolVisibleHolder value:true.          "/ Initially hidden. Show search bar after pressing CTRL+f or clicking view menu
-	    self codeView searchBarActionBlock:self searchBarActionBlock.].
+        ifTrue:
+            ["/        self stringSearchToolVisibleHolder value:true.          "/ Initially hidden. Show search bar after pressing CTRL+f or clicking view menu
+            self codeView searchBarActionBlock:self searchBarActionBlock.].
     self normalLabel.
     orgModeHolder := self organizerMode.
     newNavigationState isNameSpaceBrowser
-	ifTrue:[orgModeHolder value:(OrganizerCanvas organizerModeNamespace)]
-	ifFalse:
-	    [newNavigationState isCategoryBrowser
-		ifTrue:[orgModeHolder value:(OrganizerCanvas organizerModeCategory)]
-		ifFalse:
-		    [newNavigationState isProjectBrowser
-			ifTrue:[orgModeHolder value:(OrganizerCanvas organizerModeProject)].].].
+        ifTrue:[orgModeHolder value:(OrganizerCanvas organizerModeNamespace)]
+        ifFalse:
+            [newNavigationState isCategoryBrowser
+                ifTrue:[orgModeHolder value:(OrganizerCanvas organizerModeCategory)]
+                ifFalse:
+                    [newNavigationState isProjectBrowser
+                        ifTrue:[orgModeHolder value:(OrganizerCanvas organizerModeProject)].].].
     self theSingleSelectedMethod notNil
-	ifTrue:
-	    ["/ fetch the initially selected methods code
-	    self methodsSelectionChanged.]
-	ifFalse:
-	    [self theSingleSelectedClass notNil
-		ifTrue:
-		    ["/ to show the classes definition initially
-		    self classSelectionChanged.].].
+        ifTrue:
+            ["/ fetch the initially selected methods code
+            self methodsSelectionChanged.]
+        ifFalse:
+            [self theSingleSelectedClass notNil
+                ifTrue:
+                    ["/ to show the classes definition initially
+                    self classSelectionChanged.].].
     newNavigationState codeModifiedHolder addDependent:self.
 
     "Modified (format): / 05-07-2011 / 10:32:23 / cg"
@@ -57304,7 +58824,7 @@
 
     self codeInfoVisible value ifTrue:[ self codeInfoVisibilityChanged ].
     (self toolBarVisibleHolder value or:[self bookmarkBarVisibleHolder value])
-	    ifTrue:[ self toolBarOrBookmarkBarVisibilityChanged ].
+            ifTrue:[ self toolBarOrBookmarkBarVisibilityChanged ].
 
 
 "/    self editorNoteBookCanvasHolder value:(navigationState scrollableCodeView).
@@ -57319,17 +58839,17 @@
     self windowGroup addPreEventHook:self.
     "/ self window sensor addEventListener:self.
 
-    "/ whenever some action takes longer, automatically
-    "/ show a busy cursor
-    self windowGroup showWaitCursorWhenBusyForMillis:100.
+    "/ whenever some action takes longer, automatically show a busy cursor.
+    "/ now done for all windowGroups by the group itself
+    "/ self windowGroup showWaitCursorWhenBusyForMillis:100.
 
     super postOpenWith:aBuilder.
 !
 
 searchFieldCreated:anInputField
     anInputField emptyFieldReplacementText:
-	"/(resources string:'Class Search & History').
-	(resources string:'Search Class/Selector (Ctrl-L)').
+        "/(resources string:'Class Search & History').
+        (resources string:'Search Class/Selector (Ctrl-L)').
 
     "Modified: / 09-02-2010 / 21:56:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 07-03-2012 / 11:59:16 / cg"
@@ -57342,7 +58862,7 @@
 
 windowLabel:aString
     navigationState notNil ifTrue:[
-	navigationState browserLabel:aString
+        navigationState browserLabel:aString
     ].
     self normalLabel.
 ! !
@@ -57353,17 +58873,17 @@
     |methodsResources|
 
     (methodsResources := aMethod resources) notEmptyOrNil ifTrue:[
-	#( #image #fileImage #programImage #menu #canvas #help #tableColumns )
-	do:[:triedResourceType |
-	    |editorCanvas list|
-
-	    (methodsResources includesKey:triedResourceType) ifTrue:[
-		editorCanvas := navigationState specialEditorCanvasForResourceType:triedResourceType.
-		editorCanvas notNil ifTrue:[
-		    ^ editorCanvas
-		].
-	    ].
-	].
+        #( #image #fileImage #programImage #menu #canvas #help #tableColumns )
+        do:[:triedResourceType |
+            |editorCanvas list|
+
+            (methodsResources includesKey:triedResourceType) ifTrue:[
+                editorCanvas := navigationState specialEditorCanvasForResourceType:triedResourceType.
+                editorCanvas notNil ifTrue:[
+                    ^ editorCanvas
+                ].
+            ].
+        ].
     ].
     ^ nil
 !
@@ -57377,14 +58897,14 @@
     editorApplication masterApplication:self.
 
     aMethod notNil ifTrue:[
-	editorApplication
-	    specClass:(aMethod mclass theNonMetaclass);
-	    specSelector:(aMethod selector);
-	    loadFromClass:(aMethod mclass theNonMetaclass)
-	    andSelector:(aMethod selector).
-    ] ifFalse:[
-	editorApplication
-	    specClass:(aClassOrNil theNonMetaclass)
+        editorApplication
+            specClass:(aMethod mclass theNonMetaclass);
+            specSelector:(aMethod selector);
+            loadFromClass:(aMethod mclass theNonMetaclass)
+            andSelector:(aMethod selector).
+    ] ifFalse:[
+        editorApplication
+            specClass:(aClassOrNil theNonMetaclass)
     ].
 !
 
@@ -57393,9 +58913,9 @@
 
     view := navigationState documentationView.
     aClass isLoaded ifFalse:[
-	comment := 'Class is not loaded.'.
+        comment := 'Class is not loaded.'.
     ] ifTrue:[
-	comment := aClass comment.
+        comment := aClass comment.
     ].
     view scrolledView contents:comment.
 
@@ -57410,8 +58930,8 @@
 
     text := HTMLDocGenerator htmlDocOf:aClass.
     text notNil ifTrue:[
-	documentView top:(Smalltalk getSystemFileName:'doc/online/english/classDoc').
-	documentView nameSpaceForExecution:(aClass nameSpace).
+        documentView top:(Smalltalk getSystemFileName:'doc/online/english/classDoc').
+        documentView nameSpaceForExecution:(aClass nameSpace).
     ].
     documentView setText:text
 !
@@ -57424,7 +58944,7 @@
 
 "/    classTreeView := ClassTreeGraphView new.
     classTreeView interestingNode:aClass.
-    classTreeView topNode:(aClass allSuperclasses reverse firstIfEmpty:[aClass]).
+    classTreeView topNode:(aClass allSuperclasses lastIfEmpty:[aClass]).
     classTreeView selectNode:aClass.
     classTreeView middleButtonMenu:nil.
     classTreeView menuHolder:[ self class inheritanceViewMenu ].
@@ -57482,13 +59002,13 @@
     mthd := self theSingleSelectedMethod.
     "/ temporary kludge: check if the selected method is really still in the class
     mthd notNil ifTrue:[
-	mthd mclass isNil ifTrue:[
-	    mthd := nil
-	].
-    ].
-    self
-	updateSpecialCodeEditorVisibilityForClass:cls
-	method:mthd
+        mthd mclass isNil ifTrue:[
+            mthd := nil
+        ].
+    ].
+    self
+        updateSpecialCodeEditorVisibilityForClass:cls
+        method:mthd
 
     "Created: / 17-08-2006 / 16:46:50 / cg"
 !
@@ -57507,28 +59027,28 @@
     actionList := OrderedCollection new.
     self showMultitabMode value ifTrue:[
 "/ self halt.
-	aMethod isNil ifTrue:[
-	    "/ no method selected
-	    aClassOrNil isNil ifTrue:[
-		(self selectedClassesValue isEmptyOrNil
-		and:[ self selectedCategoriesValue isEmptyOrNil
-		and:[ self selectedProjects value isEmptyOrNil
-		and:[ navigationState isNameSpaceBrowser not
-		      or:[ self selectedNamespaces value isEmptyOrNil ] ]]]) ifTrue:[
-		    "/ no class selected
-		    navigationState isFullBrowser ifTrue:[
-			tabList add:'Welcome'.         actionList add:[ self updateCodeEditorVisibilityForWelcomePage ].
-		    ]
-		].
-	    ].
-	    tabList add:'Definition'.      actionList add:[ self updateCodeEditorVisibilityForSource ].
-	    aClassOrNil notNil ifTrue:[
+        aMethod isNil ifTrue:[
+            "/ no method selected
+            aClassOrNil isNil ifTrue:[
+                (self selectedClassesValue isEmptyOrNil
+                and:[ self selectedCategoriesValue isEmptyOrNil
+                and:[ self selectedProjects value isEmptyOrNil
+                and:[ navigationState isNameSpaceBrowser not
+                      or:[ self selectedNamespaces value isEmptyOrNil ] ]]]) ifTrue:[
+                    "/ no class selected
+                    navigationState isFullBrowser ifTrue:[
+                        tabList add:'Welcome'.         actionList add:[ self updateCodeEditorVisibilityForWelcomePage ].
+                    ]
+                ].
+            ].
+            tabList add:'Definition'.      actionList add:[ self updateCodeEditorVisibilityForSource ].
+            aClassOrNil notNil ifTrue:[
 
 "/                tabList add:'Doc-Gen'.         actionList add:[ self updateCodeEditorVisibilityForHTMLDocumentationOf:aClassOrNil ].
 "/                tabList add:'Comment'.         actionList add:[ self updateCodeEditorVisibilityForDocumentationOf:aClassOrNil ].
-		ClassTreeGraphView notNil ifTrue:[
-		    tabList add:'Inheritance'.     actionList add:[ self updateCodeEditorVisibilityForInheritanceOf:aClassOrNil ].
-		].
+                ClassTreeGraphView notNil ifTrue:[
+                    tabList add:'Inheritance'.     actionList add:[ self updateCodeEditorVisibilityForInheritanceOf:aClassOrNil ].
+                ].
 "/                tabList add:'UML'.             actionList add:[ self updateCodeEditorVisibilityForUMLOf:aClassOrNil ].
 "/                tabList add:'Lint'.            actionList add:[ self updateCodeEditorVisibilityForLintOf:aClassOrNil ].
 "/                tabList add:'Rewrite'.         actionList add:[ self updateCodeEditorVisibilityForRewriteOf:aClassOrNil ].
@@ -57536,57 +59056,57 @@
 "/                ((aClassOrNil inheritsFrom:TestCase) and:[aClassOrNil isAbstract not]) ifTrue:[
 "/                    tabList add:'Test'.            actionList add:[ self updateCodeEditorVisibilityForTestRunsOf:aClassOrNil ].
 "/                ].
-	    ].
-	] ifFalse:[
-	    tabList add:'Source'.          actionList add:[ self updateCodeEditorVisibilityForSource ].
+            ].
+        ] ifFalse:[
+            tabList add:'Source'.          actionList add:[ self updateCodeEditorVisibilityForSource ].
 "/            tabList add:'Lint'.            actionList add:[ self updateCodeEditorVisibilityForLintOfMethod:aMethod ].
-	].
-
-	self selectedMethodsValue size == 2 ifTrue:[
-	    tabList add:'Diff'.
-	    actionList add:[ self updateDiffViewerVisibilityFor:(self selectedMethodsValue first source)
-							    and:(self selectedMethodsValue second source) ].
-	].
-    ] ifFalse:[
-	tabList add:'Source'.               actionList add:[ self updateCodeEditorVisibilityForSource ].
+        ].
+
+        self selectedMethodsValue size == 2 ifTrue:[
+            tabList add:'Diff'.
+            actionList add:[ self updateDiffViewerVisibilityFor:(self selectedMethodsValue first source)
+                                                            and:(self selectedMethodsValue second source) ].
+        ].
+    ] ifFalse:[
+        tabList add:'Source'.               actionList add:[ self updateCodeEditorVisibilityForSource ].
     ].
 
     self showSpecialResourceEditors value ifTrue:[
-	aMethod notNil ifTrue:[
-	    editorCanvas := self specialEditorCanvasForMethod:aMethod.
-	] ifFalse:[
-	    (aClassOrNil notNil and:[aClassOrNil theNonMetaclass isProjectDefinition]) ifTrue:[
-		editorCanvas := navigationState specialEditorCanvasForResourceType:#projectDefinition.
-	    ].
-	].
+        aMethod notNil ifTrue:[
+            editorCanvas := self specialEditorCanvasForMethod:aMethod.
+        ] ifFalse:[
+            (aClassOrNil notNil and:[aClassOrNil theNonMetaclass isProjectDefinition]) ifTrue:[
+                editorCanvas := navigationState specialEditorCanvasForResourceType:#projectDefinition.
+            ].
+        ].
     ].
 
     editorCanvas notNil ifTrue:[
-	hideSpecialEditor := false.
-	tabList add:(editorCanvas application class nameWithoutPrefix asUppercaseFirst).
-	actionList add:[ self updateCodeEditorVisibilityForCanvasEditor:editorCanvas class:aClassOrNil method:aMethod ].
+        hideSpecialEditor := false.
+        tabList add:(editorCanvas application class nameWithoutPrefix asUppercaseFirst).
+        actionList add:[ self updateCodeEditorVisibilityForCanvasEditor:editorCanvas class:aClassOrNil method:aMethod ].
     ].
 
     (hideSpecialEditor and:[tabList size = 1]) ifTrue:[
-	"/ sigh - setting an empty list also changes the selection to 0 (side effect in NoteBookView).
-	"/ To avoid flickering change messages, preSet its value to 0.
-	self selectedEditorNoteBookTabIndexHolder setValue:0.
-	self editorNoteBookListHolder value notEmptyOrNil ifTrue:[
-	    self editorNoteBookListHolder value:#().
-	].
-	self updateCodeEditorVisibilityForSource.
-    ] ifFalse:[
-	tabList = self editorNoteBookListHolder value ifFalse:[
-	    self editorNoteBookListHolder value:tabList.
-	].
+        "/ sigh - setting an empty list also changes the selection to 0 (side effect in NoteBookView).
+        "/ To avoid flickering change messages, preSet its value to 0.
+        self selectedEditorNoteBookTabIndexHolder setValue:0.
+        self editorNoteBookListHolder value notEmptyOrNil ifTrue:[
+            self editorNoteBookListHolder value:#().
+        ].
+        self updateCodeEditorVisibilityForSource.
+    ] ifFalse:[
+        tabList = self editorNoteBookListHolder value ifFalse:[
+            self editorNoteBookListHolder value:tabList.
+        ].
 
 "/        self selectedEditorNoteBookTabIndexHolder value:1.
-	"/ make one of the codeViews visible...
-	self selectedEditorNoteBookTabIndexHolder value == 0 ifTrue:[
-	    self selectedEditorNoteBookTabIndexHolder value:1.
-	    ^ self.
-	].
-	(actionList at:(self selectedEditorNoteBookTabIndexHolder value)) value.
+        "/ make one of the codeViews visible...
+        self selectedEditorNoteBookTabIndexHolder value == 0 ifTrue:[
+            self selectedEditorNoteBookTabIndexHolder value:1.
+            ^ self.
+        ].
+        (actionList at:(self selectedEditorNoteBookTabIndexHolder value)) value.
     ].
 
     "Created: / 17-08-2006 / 16:44:51 / cg"
@@ -57601,44 +59121,44 @@
     |nModified modifiedBuffers m|
 
     buffers isNil ifTrue:[
-	(self
-	    askIfModified:'Modifications have not been saved.\\Exit anyway ?'
-	    default:false
-	    withAccept:false
-	    withCompare:true)
-	ifFalse:[
-	    ^ self
-	].
-    ] ifFalse:[
-	nModified := 0.
-	modifiedBuffers := buffers select:[:aBuffer | aBuffer modified].
-	modifiedBuffers do:[:aBuffer | |bufferIndex|
-	    bufferIndex := buffers identityIndexOf:aBuffer.
-	    self selectedBuffer value:bufferIndex.
-
-	    (self
-		askIfModified:(resources stringWithCRs:'Buffer "%1" was modified.\\Exit anyway ?' with:aBuffer nameString allBold)
-		default:false
-		withAccept:(self canAcceptCodeIn:aBuffer)
-		withCompare:(self canCompareCodeIn:aBuffer)
-		in:aBuffer)
-	    ifFalse:[
-		^ self
-	    ]
-	]
+        (self
+            askIfModified:'Modifications have not been saved.\\Exit anyway ?'
+            default:false
+            withAccept:false
+            withCompare:true)
+        ifFalse:[
+            ^ self
+        ].
+    ] ifFalse:[
+        nModified := 0.
+        modifiedBuffers := buffers select:[:aBuffer | aBuffer modified].
+        modifiedBuffers do:[:aBuffer | |bufferIndex|
+            bufferIndex := buffers identityIndexOf:aBuffer.
+            self selectedBuffer value:bufferIndex.
+
+            (self
+                askIfModified:(resources stringWithCRs:'Buffer "%1" was modified.\\Exit anyway ?' with:aBuffer nameString allBold)
+                default:false
+                withAccept:(self canAcceptCodeIn:aBuffer)
+                withCompare:(self canCompareCodeIn:aBuffer)
+                in:aBuffer)
+            ifFalse:[
+                ^ self
+            ]
+        ]
     ].
     buffers notEmptyOrNil ifTrue:[
-	buffers do:[:eachNavigationState |
-	    |m|
-
-	    (m := eachNavigationState theSingleSelectedMethod) notNil ifTrue:[
-		self class addToRecentlyClosedHistory:m mclass selector:m selector
-	    ].
-	]
-    ] ifFalse:[
-	(m := navigationState theSingleSelectedMethod) notNil ifTrue:[
-	    self class addToRecentlyClosedHistory:m mclass selector:m selector
-	].
+        buffers do:[:eachNavigationState |
+            |m|
+
+            (m := eachNavigationState theSingleSelectedMethod) notNil ifTrue:[
+                self addToRecentlyClosedHistory:m mclass selector:m selector
+            ].
+        ]
+    ] ifFalse:[
+        (m := navigationState theSingleSelectedMethod) notNil ifTrue:[
+            self addToRecentlyClosedHistory:m mclass selector:m selector
+        ].
     ].
 
     environment removeDependent:self.
@@ -57646,14 +59166,19 @@
 
     "Created: / 11-02-2000 / 13:23:00 / cg"
     "Modified: / 09-09-2012 / 10:26:14 / cg"
+    "Modified: / 02-05-2014 / 17:47:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 release
 "/    self class classHistory removeDependent:self.
     SystemBrowser removeDependent:self.
+    smalllintRulesOrDefaultHolder notNil ifTrue:[ 
+        LastLintRulesHolder removeDependent: smalllintRulesOrDefaultHolder.
+    ].
     super release.
 
     "Modified: / 20-11-2006 / 12:16:37 / cg"
+    "Modified: / 17-12-2014 / 00:39:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !NewSystemBrowser methodsFor:'string search tool'!
@@ -57677,9 +59202,9 @@
 searchBarActionBlock
 
     ^ [:how :view |
-	how == #search ifTrue:[self showSearchBarWith: view searchPatternForSearchBar ].
-	how == #forward ifTrue:[self searchForwardWithSearchBarWith: view searchPatternForSearchBar ].
-	how == #backward ifTrue:[self searchBackwardWithSearchBarWith: view searchPatternForSearchBar ].
+        how == #search ifTrue:[self showSearchBarWith: view searchPatternForSearchBar ].
+        how == #forward ifTrue:[self searchForwardWithSearchBarWith: view searchPatternForSearchBar ].
+        how == #backward ifTrue:[self searchBackwardWithSearchBarWith: view searchPatternForSearchBar ].
     ]
 !
 
@@ -57700,8 +59225,8 @@
 
     stringSearchTool := self stringSearchToolView.
     stringSearchTool notNil ifTrue:[
-	stringSearchTool takeFocus.
-	stringSearchTool client searchBarOpened.
+        stringSearchTool takeFocus.
+        stringSearchTool client searchBarOpened.
     ].
 !
 
@@ -57710,9 +59235,9 @@
 
     stringSearchTool := self stringSearchToolView client.
     stringSearchTool notNil ifTrue:[
-	aString notEmptyOrNil ifTrue:[
-	    stringSearchTool initialSearchString: aString string.
-	].
+        aString notEmptyOrNil ifTrue:[
+            stringSearchTool initialSearchString: aString string.
+        ].
     ].
 !
 
@@ -57729,8 +59254,8 @@
     self setInitialSearchString: aString.
     stringSearchTool := self stringSearchToolView client.
     stringSearchTool notNil ifTrue:[
-	stringSearchTool setFocusToSearchTextView.
-	stringSearchTool searchTextStarted.
+        stringSearchTool setFocusToSearchTextView.
+        stringSearchTool searchTextStarted.
     ].
 ! !
 
@@ -57742,15 +59267,15 @@
     "/ try local history
     localHistory := self navigationHistory.
     localHistory canGoBack ifTrue:[
-	self goBack.
-	^ self
+        self goBack.
+        ^ self
     ].
 
     "/ try global history
     globalHistory := self class classHistory.
     globalHistory notEmpty ifTrue:[
-	entry := globalHistory first.
-	self switchToFindHistoryEntry:entry
+        entry := globalHistory first.
+        self switchToFindHistoryEntry:entry
     ]
 
     "Modified: / 01-11-2010 / 18:17:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -57771,8 +59296,8 @@
 
     cat := self theSingleSelectedCategory.
     cat notNil ifTrue:[
-	self spawnCategoryBrowserFor:(self selectedCategoriesValue) in:#newBuffer.
-	^ self
+        self spawnCategoryBrowserFor:(self selectedCategoriesValue) in:#newBuffer.
+        ^ self
     ].
 
     "Created: / 18.8.2000 / 20:03:28 / cg"
@@ -57781,9 +59306,9 @@
 
 classDoubleClicked
     "double click on a class:
-	if unloaded        : load it
-	if browserStartable: start the application
-	if its a testcase  : run it
+        if unloaded         : load it
+        if browserStartable : start the application
+        if it's a testcase  : run it
     "
 
     |cls clsName organizerModeHolder organizerMode newMode doSwitchDisplayMode|
@@ -57793,63 +59318,58 @@
 
     (navigationState isVersionDiffBrowser
     or:[navigationState isCheckOutputBrowser]) ifTrue:[
-	self spawnFullBrowserInClass:cls selector:nil in:#newBuffer.
-	^ self
+        self spawnFullBrowserInClass:cls selector:nil in:#newBuffer.
+        ^ self
     ].
 
     self withWaitCursorDo:[
-	cls := cls theNonMetaclass.
-	clsName := cls name.
-
-	self window sensor shiftDown ifTrue:[
-	    self spawnClassReferencesBrowserFor:(Array with:cls) in:#newBuffer.
-	    ^ self.
-	].
-
-	doSwitchDisplayMode := true.
-	self window sensor metaDown ifFalse:[
-	    (cls isBrowserStartable) ifTrue:[
-		(self startApplication:cls) ifTrue:[
-		    doSwitchDisplayMode := false.
-		].
-	    ] ifFalse:[
-		cls isLoaded ifFalse:[
-		    self busyLabel:'loading %1' with:clsName.
-		    self classLoad.
-		    doSwitchDisplayMode := false.
-		] ifTrue:[
-		    (cls isTestCaseLike and:[cls isAbstract not]) ifTrue:[
-			|testRunner|
-
-			testRunner := UserPreferences current testRunnerClass.
-			testRunner notNil ifTrue:[
-			    testRunner openOnTestCase:cls.
-			    doSwitchDisplayMode := false.
-			]
-		    ].
-		].
-	    ].
-	].
-
-	doSwitchDisplayMode ifTrue:[
-	    organizerModeHolder := navigationState organizerMode.
-	    organizerMode := organizerModeHolder value.
-
-	    "/ toggle view mode (between category and class hierarchy)
-	    organizerMode == OrganizerCanvas organizerModeClassHierarchy ifTrue:[
-		newMode := OrganizerCanvas organizerModeCategory
-	    ] ifFalse:[
-		organizerMode == OrganizerCanvas organizerModeCategory ifTrue:[
-		    newMode := OrganizerCanvas organizerModeClassHierarchy
-		].
-	    ].
-	    newMode notNil ifTrue:[
-		organizerModeHolder value:newMode.
-		self organizerModeForMenu changed.
-	    ]
-	].
-
-	self normalLabel.
+        cls := cls theNonMetaclass.
+        clsName := cls name.
+
+        self window sensor shiftDown ifTrue:[
+            self spawnClassReferencesBrowserFor:(Array with:cls) in:#newBuffer.
+            ^ self.
+        ].
+
+        doSwitchDisplayMode := true.
+        self window sensor metaDown ifFalse:[
+            (cls isBrowserStartable) ifTrue:[
+                (self startApplication:cls) ifTrue:[
+                    doSwitchDisplayMode := false.
+                ].
+            ] ifFalse:[
+                cls isLoaded ifFalse:[
+                    self busyLabel:'loading %1' with:clsName.
+                    self classLoad.
+                    doSwitchDisplayMode := false.
+                ] ifTrue:[
+                    (cls isTestCaseLike and:[cls isAbstract not]) ifTrue:[
+                        self classMenuOpenTestRunnerOn:cls.
+                        doSwitchDisplayMode := false.
+                    ].
+                ].
+            ].
+        ].
+
+        doSwitchDisplayMode ifTrue:[
+            organizerModeHolder := navigationState organizerMode.
+            organizerMode := organizerModeHolder value.
+
+            "/ toggle view mode (between category and class hierarchy)
+            organizerMode == OrganizerCanvas organizerModeClassHierarchy ifTrue:[
+                newMode := OrganizerCanvas organizerModeCategory
+            ] ifFalse:[
+                organizerMode == OrganizerCanvas organizerModeCategory ifTrue:[
+                    newMode := OrganizerCanvas organizerModeClassHierarchy
+                ].
+            ].
+            newMode notNil ifTrue:[
+                organizerModeHolder value:newMode.
+                self organizerModeForMenu changed.
+            ]
+        ].
+
+        self normalLabel.
     ].
     ^ self
 
@@ -57857,71 +59377,26 @@
 !
 
 codeCompletion
-    |cls codeView
-"/     crsrPos interval node checkedNode
-"/     char start stop selectorSoFar matchingSelectors
-    |
+    "/ I found this code 3 times (CodeView2, NewSystemBrowser and DebugView) - smell?
+    "/ (can we move that to a utility - probably DoWhatIMeanSupport)
+
+    |cls codeView languageOrNil|
 
     codeView := self codeView.
     cls := self classOfSelectedMethodOrSelectedClass.
-"/    cls isNil ifTrue:[
-"/        self showInfo:'No class'.
-"/        ^ self.
-"/    ].
+    cls notNil ifTrue:[
+        languageOrNil := cls programmingLanguage
+    ].
 
     UserInformation handle:[:ex |
-	self showInfo:(ex messageText).
-	ex proceed.
+        self showInfo:(ex messageText).
+        ex proceed.
     ] do:[
-	self withWaitCursorDo:[
-	    DoWhatIMeanSupport codeCompletionForLanguage: cls programmingLanguage class:cls context:nil codeView:codeView.
-	]
+        self withWaitCursorDo:[
+            DoWhatIMeanSupport codeCompletionForLanguage:languageOrNil class:cls context:nil codeView:codeView.
+        ]
     ].
     ^ self.
-
-"/
-"/    interval := self selectedInterval.
-"/    interval isEmpty ifTrue:[
-"/        crsrPos := codeView characterPositionOfCursor - 1.
-"/        char := codeView characterUnderCursor.
-"/        [crsrPos > 1 and:[char isSeparator or:['.' includes:char]]] whileTrue:[
-"/            crsrPos := crsrPos - 1.
-"/            char := codeView characterAtCharacterPosition:crsrPos.
-"/        ].
-"/        interval := crsrPos to:crsrPos.
-"/    ].
-"/
-"/    node := self findNodeForInterval:interval allowErrors:true.
-"/    [node isNil] whileTrue:[
-"/        "/ expand to the left ...
-"/        interval start > 1 ifFalse:[
-"/            self showInfo:'No parseNode found'.
-"/            ^ self.
-"/        ].
-"/        interval start:(interval start - 1).
-"/        node := self findNodeForInterval:interval allowErrors:true.
-"/    ].
-"/
-"/    node isVariable ifTrue:[
-"/        self codeCompletionForVariable:node inClass:cls.
-"/        ^ self.
-"/    ].
-"/
-"/    checkedNode := node.
-"/    [checkedNode notNil] whileTrue:[
-"/        checkedNode isMessage ifTrue:[
-"/            self codeCompletionForMessage:checkedNode inClass:cls.
-"/            ^ self
-"/        ].
-"/        checkedNode isMethod ifTrue:[
-"/            self codeCompletionForMethod:checkedNode inClass:cls.
-"/            ^ self.
-"/        ].
-"/        checkedNode := checkedNode parent.
-"/    ].
-"/
-"/    self showInfo:'Node is neither variable nor message.'.
-
     "Modified: / 04-07-2006 / 18:48:26 / fm"
     "Modified: / 03-07-2011 / 16:18:31 / cg"
     "Modified: / 18-09-2013 / 14:17:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -57929,176 +59404,177 @@
 
 codeCompletionForMessage:node inClass:cls
     <resource: #obsolete>
+
     |codeView selector receiver nm srchClass implClass
      bestSelectors bestPrefixes best nodeVal info numArgs
      newParts nSelParts oldLen newLen selectorParts|
 
-self obsoleteMethodWarning.
+    self obsoleteMethodWarning.
     codeView := self codeView.
 
     selector := node selector.
     receiver := node receiver.
     receiver isVariable ifTrue:[
-	nm := receiver name.
-	nm = 'self' ifTrue:[
-	    srchClass := cls
-	].
-	nm = 'super' ifTrue:[
-	    srchClass := cls superclass
-	].
-	(Smalltalk includesKey:nm asSymbol) ifTrue:[
-	    nodeVal := Smalltalk at:nm asSymbol.
-	    nodeVal notNil ifTrue:[
-		srchClass := nodeVal class
-	    ]
-	]
+        nm := receiver name.
+        nm = 'self' ifTrue:[
+            srchClass := cls
+        ].
+        nm = 'super' ifTrue:[
+            srchClass := cls superclass
+        ].
+        (Smalltalk includesKey:nm asSymbol) ifTrue:[
+            nodeVal := Smalltalk at:nm asSymbol.
+            nodeVal notNil ifTrue:[
+                srchClass := nodeVal class
+            ]
+        ]
     ].
 
     receiver isLiteral ifTrue:[
-	srchClass := receiver value class
+        srchClass := receiver value class
     ].
     srchClass notNil ifTrue:[
-	bestSelectors := Parser findBest:30 selectorsFor:selector in:srchClass forCompletion:true.
-	(bestSelectors includes:selector) ifTrue:[
-	    bestSelectors := bestSelectors select:[:sel | sel size > selector size].
-	].
-	bestSelectors size > 0 ifTrue:[
-	    bestPrefixes := bestSelectors select:[:sel | sel asLowercase startsWith:selector asLowercase].
-	    bestPrefixes size > 0 ifTrue:[
-		bestSelectors := bestPrefixes
-	    ].
-	    best := bestSelectors first.
-	    bestSelectors size > 1 ifTrue:[
-		best = selector ifTrue:[
-		    best := bestSelectors second.
-		].
-		bestSelectors size < 20 ifTrue:[
-		    |idx|
-
-		    idx := (PopUpMenu labels:bestSelectors) startUp.
-		    idx == 0 ifTrue:[ ^ self].
-		    best := bestSelectors at:idx.
-		] ifFalse:[
-		    best := Dialog request:'Matching selectors:' initialAnswer:best list:bestSelectors.
-		    best size == 0 ifTrue:[^ self].
-		].
-	    ] ifFalse:[
-		best := bestSelectors first.
-	    ].
-	    implClass := srchClass whichClassIncludesSelector:best.
-	].
-    ] ifFalse:[
-	"/ class not known
-	self withSearchCursorDo:[
-	    bestSelectors := Parser findBest:30 selectorsFor:selector in:nil forCompletion:true.
-	].
-	(bestSelectors includes:selector) ifTrue:[
-	    bestSelectors := bestSelectors select:[:sel | sel size > selector size].
-	].
-
-	bestSelectors size > 0 ifTrue:[
-	    best := bestSelectors first.
-	    bestSelectors size > 1 ifTrue:[
-		best = selector ifTrue:[
-		    best := bestSelectors second.
-		].
-
-		bestSelectors size < 20 ifTrue:[
-		    |idx|
-
-		    idx := (PopUpMenu labels:bestSelectors) startUp.
-		    idx == 0 ifTrue:[ ^ self].
-		    best := bestSelectors at:idx.
-		] ifFalse:[
-		    best := Dialog request:'Matching selectors:' initialAnswer:best list:bestSelectors.
-		    best size == 0 ifTrue:[^ self].
-		]
-	    ] ifFalse:[
-		best := bestSelectors first.
-	    ].
-	    implClass := Smalltalk allClasses select:[:cls | (cls includesSelector:best) or:[cls class includesSelector:best]].
-	    implClass size == 1 ifTrue:[
-		implClass := implClass first.
-	    ] ifFalse:[
-		implClass := nil
-	    ]
-	].
+        bestSelectors := Parser findBest:30 selectorsFor:selector in:srchClass forCompletion:true.
+        (bestSelectors includes:selector) ifTrue:[
+            bestSelectors := bestSelectors select:[:sel | sel size > selector size].
+        ].
+        bestSelectors size > 0 ifTrue:[
+            bestPrefixes := bestSelectors select:[:sel | sel asLowercase startsWith:selector asLowercase].
+            bestPrefixes size > 0 ifTrue:[
+                bestSelectors := bestPrefixes
+            ].
+            best := bestSelectors first.
+            bestSelectors size > 1 ifTrue:[
+                best = selector ifTrue:[
+                    best := bestSelectors second.
+                ].
+                bestSelectors size < 20 ifTrue:[
+                    |idx|
+
+                    idx := (PopUpMenu labels:bestSelectors) startUp.
+                    idx == 0 ifTrue:[ ^ self].
+                    best := bestSelectors at:idx.
+                ] ifFalse:[
+                    best := Dialog request:'Matching selectors:' initialAnswer:best list:bestSelectors.
+                    best size == 0 ifTrue:[^ self].
+                ].
+            ] ifFalse:[
+                best := bestSelectors first.
+            ].
+            implClass := srchClass whichClassIncludesSelector:best.
+        ].
+    ] ifFalse:[
+        "/ class not known
+        self withSearchCursorDo:[
+            bestSelectors := Parser findBest:30 selectorsFor:selector in:nil forCompletion:true.
+        ].
+        (bestSelectors includes:selector) ifTrue:[
+            bestSelectors := bestSelectors select:[:sel | sel size > selector size].
+        ].
+
+        bestSelectors size > 0 ifTrue:[
+            best := bestSelectors first.
+            bestSelectors size > 1 ifTrue:[
+                best = selector ifTrue:[
+                    best := bestSelectors second.
+                ].
+
+                bestSelectors size < 20 ifTrue:[
+                    |idx|
+
+                    idx := (PopUpMenu labels:bestSelectors) startUp.
+                    idx == 0 ifTrue:[ ^ self].
+                    best := bestSelectors at:idx.
+                ] ifFalse:[
+                    best := Dialog request:'Matching selectors:' initialAnswer:best list:bestSelectors.
+                    best size == 0 ifTrue:[^ self].
+                ]
+            ] ifFalse:[
+                best := bestSelectors first.
+            ].
+            implClass := Smalltalk allClasses select:[:cls | (cls includesSelector:best) or:[cls class includesSelector:best]].
+            implClass size == 1 ifTrue:[
+                implClass := implClass first.
+            ] ifFalse:[
+                implClass := nil
+            ]
+        ].
     ].
 
     best notNil ifTrue:[
-	info := best storeString.
-	implClass notNil ifTrue:[
-	    info := implClass name , ' >> ' , info.
-	].
-	self showInfo:info.
-
-	best ~= selector ifTrue:[
-	    numArgs := best numArgs.
-	    selectorParts := node selectorParts.
-	    nSelParts := selectorParts size.
-
-	    newParts := best asCollectionOfSubstringsSeparatedBy:$:.
-	    newParts := newParts select:[:part | part size > 0].
-
-	    codeView
-		undoableDo:[
-		    |stop|
-
-		    numArgs > nSelParts ifTrue:[
-			stop := selectorParts last stop.
-
-			"/ append the rest ...
-			numArgs downTo:nSelParts+1 do:[:idx |
-			    |newPart|
-
-			    newPart := newParts at:idx.
-			    (best endsWith:$:) ifTrue:[
-				newPart := newPart , ':'
-			    ].
-
-			    (codeView characterAtCharacterPosition:stop) == $: ifFalse:[
-				newPart := ':' , newPart.
-			    ].
-			    newPart := (codeView characterAtCharacterPosition:stop) asString , newPart.
-
-			    codeView replaceFromCharacterPosition:stop to:stop with:newPart
-			]
-		    ].
-
-		    nSelParts downTo:1 do:[:idx |
-			|newPart oldPartialToken start stop|
-
-			newPart := newParts at:idx.
-			oldPartialToken := selectorParts at:idx.
-			start := oldPartialToken start.
-			stop := oldPartialToken stop.
-			(best endsWith:$:) ifTrue:[
-			    (codeView characterAtCharacterPosition:stop+1) == $: ifFalse:[
-				newPart := newPart , ':'
-			    ]
-			] ifFalse:[
-			    (codeView characterAtCharacterPosition:stop) == $: ifTrue:[
-				newPart := newPart , ':'
-			    ] ifFalse:[
-				(codeView characterAtCharacterPosition:stop+1) isSeparator ifFalse:[
-				    newPart := newPart , ' '
-				]
-			    ]
+        info := best storeString.
+        implClass notNil ifTrue:[
+            info := implClass name , ' >> ' , info.
+        ].
+        self showInfo:info.
+
+        best ~= selector ifTrue:[
+            numArgs := best numArgs.
+            selectorParts := node selectorParts.
+            nSelParts := selectorParts size.
+
+            newParts := best asCollectionOfSubstringsSeparatedBy:$:.
+            newParts := newParts select:[:part | part size > 0].
+
+            codeView
+                undoableDo:[
+                    |stop|
+
+                    numArgs > nSelParts ifTrue:[
+                        stop := selectorParts last stop.
+
+                        "/ append the rest ...
+                        numArgs downTo:nSelParts+1 do:[:idx |
+                            |newPart|
+
+                            newPart := newParts at:idx.
+                            (best endsWith:$:) ifTrue:[
+                                newPart := newPart , ':'
+                            ].
+
+                            (codeView characterAtCharacterPosition:stop) == $: ifFalse:[
+                                newPart := ':' , newPart.
+                            ].
+                            newPart := (codeView characterAtCharacterPosition:stop) asString , newPart.
+
+                            codeView replaceFromCharacterPosition:stop to:stop with:newPart
+                        ]
+                    ].
+
+                    nSelParts downTo:1 do:[:idx |
+                        |newPart oldPartialToken start stop|
+
+                        newPart := newParts at:idx.
+                        oldPartialToken := selectorParts at:idx.
+                        start := oldPartialToken start.
+                        stop := oldPartialToken stop.
+                        (best endsWith:$:) ifTrue:[
+                            (codeView characterAtCharacterPosition:stop+1) == $: ifFalse:[
+                                newPart := newPart , ':'
+                            ]
+                        ] ifFalse:[
+                            (codeView characterAtCharacterPosition:stop) == $: ifTrue:[
+                                newPart := newPart , ':'
+                            ] ifFalse:[
+                                (codeView characterAtCharacterPosition:stop+1) isSeparator ifFalse:[
+                                    newPart := newPart , ' '
+                                ]
+                            ]
 "/                            codeView replaceFromCharacterPosition:start to:stop with:(newPart , ':').
 "/                        ] ifFalse:[
 "/                            codeView replaceFromCharacterPosition:start to:stop with:newPart.
-			].
-
-			codeView replaceFromCharacterPosition:start to:stop with:newPart.
-
-			oldLen := stop - start + 1.
-			newLen := newPart size.
-			codeView selectFromCharacterPosition:start+oldLen to:start+newLen-1.
-		    ].
-		    codeView dontReplaceSelectionOnInput.
-		]
-	    info:'completion'.
-	].
+                        ].
+
+                        codeView replaceFromCharacterPosition:start to:stop with:newPart.
+
+                        oldLen := stop - start + 1.
+                        newLen := newPart size.
+                        codeView selectFromCharacterPosition:start+oldLen to:start+newLen-1.
+                    ].
+                    codeView dontReplaceSelectionOnInput.
+                ]
+            info:'completion'.
+        ].
     ].
 
     "Created: / 10-11-2006 / 13:18:27 / cg"
@@ -58135,16 +59611,16 @@
     navigationState := self navigationState.
 
     (codeView := self codeView) modified ifTrue:[
-	navigationState realModifiedState:true.
-
-	codeView isCodeView2 ifFalse:[
-	    self startSyntaxHighlightProcess.
-	].
-	navigationState realModifiedState:true.
-	codeView modifiedChannel setValue:false.
+        navigationState realModifiedState:true.
+
+        codeView isCodeView2 ifFalse:[
+            self startSyntaxHighlightProcess.
+        ].
+        navigationState realModifiedState:true.
+        codeView modifiedChannel setValue:false.
     ].
     self enqueueDelayedCheckReallyModified.
-    self updateBufferLabel.
+"/    self updateBufferLabel.
 
     "Modified (comment): / 27-09-2011 / 19:04:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 29-11-2011 / 13:25:51 / cg"
@@ -58175,26 +59651,26 @@
     | dialog cnfManagerName srcManagerName |
 
     cnfManager notNil ifTrue:[
-	cnfManagerName := cnfManager managerTypeName
-    ] ifFalse:[
-	cnfManagerName := self class resources at: 'Not configured'.
+        cnfManagerName := cnfManager managerTypeName
+    ] ifFalse:[
+        cnfManagerName := self class resources at: 'Not configured'.
     ].
     srcManager notNil ifTrue:[
-	srcManagerName := srcManager managerTypeName
-    ] ifFalse:[
-	srcManagerName := self class resources at: 'Unknown'.
+        srcManagerName := srcManager managerTypeName
+    ] ifFalse:[
+        srcManagerName := self class resources at: 'Unknown'.
     ].
 
     dialog := DialogBox new.
     dialog label: package, ': source code managers does not match'.
     (dialog addTextLabel:
-	    ('Default configured source manager does match with\' ,
-	    'source code manager for the source. This may mean\' ,
-	    'that you have compiled the package using sources\',
-	    'checked out using different repository and source\',
-	    'code management system that the one you have configured\',
-	    'for the package') withCRs)
-	    adjust: #left.
+            ('The default configured source code manager does NOT match\' ,
+            'the source code manager for the shown class/package.\' ,
+            'This may mean that you have compiled the package using sources\',
+            'checked out from a different repository or source\',
+            'code management system then the one you have configured\',
+            'for the package') withCRs)
+            adjust: #left.
     (dialog addTextLabel: 'Package: ', package) adjust: #left.
     (dialog addTextLabel: 'Configured SCM: ', cnfManagerName) adjust: #left.
     (dialog addTextLabel: 'Source SCM: ', srcManagerName) adjust: #left.
@@ -58211,7 +59687,7 @@
 
     currentMethod := self theSingleSelectedMethod.
     currentMethod isNil ifTrue:[
-	^ self
+        ^ self
     ].
     self methodDoubleClicked:currentMethod
 !
@@ -58236,32 +59712,32 @@
     |isMethodListLikeBrowser resources editorClass mSelector mClass|
 
     isMethodListLikeBrowser := navigationState isMethodBrowser
-			       or:[navigationState isMethodListBrowser
-			       or:[navigationState isProtocolOrFullProtocolBrowser
-			       or:[navigationState isChainBrowser ]]].
+                               or:[navigationState isMethodListBrowser
+                               or:[navigationState isProtocolOrFullProtocolBrowser
+                               or:[navigationState isChainBrowser ]]].
 
     "/
     "/ double clicking on wrapped method removes the wrap
     "/
     aMethod isWrapped ifTrue:[
-	self debugMenuRemoveBreakOrTrace.
-	^ self
+        self debugMenuRemoveBreakOrTrace.
+        ^ self
     ].
 
     mSelector := aMethod selector.
     mClass := aMethod mclass.
     mClass isNil ifTrue:[
-	Dialog information:'oops - method''s class is gone (try to reselect)'.
-	^ self.
+        Dialog information:'oops - method''s class is gone (try to reselect)'.
+        ^ self.
     ].
 
     isMethodListLikeBrowser ifTrue:[
-	self window sensor shiftDown ifTrue:[
-	    self spawnFullBrowserInClass:mClass
-		 selector:mSelector
-		 in:(DoubleClickIsOpenBrowser == true ifTrue:[#newBrowser] ifFalse:[#newBuffer]).
-	    ^ self
-	].
+        self window sensor shiftDown ifTrue:[
+            self spawnFullBrowserInClass:mClass
+                 selector:mSelector
+                 in:(DoubleClickIsOpenBrowser == true ifTrue:[#newBrowser] ifFalse:[#newBuffer]).
+            ^ self
+        ].
     ].
 
     "/
@@ -58270,30 +59746,30 @@
     "/
     (resources := aMethod resources) notNil
     ifTrue:[
-	"/
-	"/ kludge - this info should come from somewhere else ...
-	"/
-	editorClass := self class resourceEditorClassForResources:resources.
-	editorClass notNil ifTrue: [
-	    mClass isMeta ifTrue:[
-		"/ these uzdsakfhiv-stupid editors cannot edit nonMeta-methods - sigh
-
-		self withExecuteCursorDo:[
-		    editorClass
-			openOnClass:mClass theNonMetaclass
-			andSelector:mSelector.
-		    ^ self.
-		]
-	    ]
-	]
+        "/
+        "/ kludge - this info should come from somewhere else ...
+        "/
+        editorClass := self class resourceEditorClassForResources:resources.
+        editorClass notNil ifTrue: [
+            mClass isMeta ifTrue:[
+                "/ these uzdsakfhiv-stupid editors cannot edit nonMeta-methods - sigh
+
+                self withExecuteCursorDo:[
+                    editorClass
+                        openOnClass:mClass theNonMetaclass
+                        andSelector:mSelector.
+                    ^ self.
+                ]
+            ]
+        ]
     ].
     "/
     "/ double clicking on a normal-method adds a buffer on the class;
     "/ but not if I am already a class browser.
     "/
     isMethodListLikeBrowser ifTrue:[
-	self spawnFullBrowserInClass:mClass selector:mSelector
-	     in:(DoubleClickIsOpenBrowser == true ifTrue:[#newBrowser] ifFalse:[#newBuffer]).
+        self spawnFullBrowserInClass:mClass selector:mSelector
+             in:(DoubleClickIsOpenBrowser == true ifTrue:[#newBrowser] ifFalse:[#newBuffer]).
 "/
 "/            brwsr := self spawnClassBrowserFor:(Array with:mClass) in:#newBuffer.
 "/            "/ brwsr selectClass:mClass.
@@ -58301,7 +59777,7 @@
 "/            brwsr selectProtocol:(aMethod category).
 "/            brwsr selectMethod:(aMethod).
 "/            brwsr immediateUpdate value:false.
-	^ self
+        ^ self
     ].
 
     "/
@@ -58312,8 +59788,8 @@
 "/        in:#newBuffer
 
     self
-	spawnMethodInheritanceBrowserFor:(Array with:mSelector)
-	in:#newBuffer
+        spawnMethodInheritanceBrowserFor:(Array with:mSelector)
+        in:#newBuffer
 
     "Modified: / 14-02-2012 / 11:11:58 / cg"
 !
@@ -58323,42 +59799,42 @@
 
     selectedMethods := (navigationState selectedMethodsArrayAt:index) value.
     selectedMethods size == 1 ifTrue:[
-	selectedMethod := selectedMethods first.
-	self methodDoubleClicked:selectedMethod.
+        selectedMethod := selectedMethods first.
+        self methodDoubleClicked:selectedMethod.
     ]
 !
 
 nameSpaceDoubleClicked
     "double click on a nameSpace:
-	add a buffer browsing that namespace"
+        add a buffer browsing that namespace"
 
     self withWaitCursorDo:[
-	DoubleClickIsOpenBrowser == true ifTrue:[
-	    self nameSpaceMenuSpawn
-	] ifFalse:[
-	    self nameSpaceMenuSpawnBuffer
-	]
+        DoubleClickIsOpenBrowser == true ifTrue:[
+            self nameSpaceMenuSpawn
+        ] ifFalse:[
+            self nameSpaceMenuSpawnBuffer
+        ]
     ].
     self normalLabel.
 !
 
 projectDoubleClicked
     "double click on a project:
-	add a buffer browsing that project"
+        add a buffer browsing that project"
 
     self withWaitCursorDo:[
-	DoubleClickIsOpenBrowser == true ifTrue:[
-	    self projectMenuSpawn
-	] ifFalse:[
-	    self projectMenuSpawnBuffer
-	]
+        DoubleClickIsOpenBrowser == true ifTrue:[
+            self projectMenuSpawn
+        ] ifFalse:[
+            self projectMenuSpawnBuffer
+        ]
     ].
     self normalLabel.
 !
 
 protocolDoubleClicked
     "double click on a protocol:
-	open a full-protocol browser"
+        open a full-protocol browser"
 
 "/    self theSingleSelectedProtocol notNil ifTrue:[
 "/        self protocolMenuSpawnFullCategoryBuffer
@@ -58382,29 +59858,29 @@
     (cls isBrowserStartable) ifFalse:[^ false].
 
     (cls isVisualStartable) ifTrue:[
-	self busyLabel:'starting application %1' with:cls name.
-	MessageNotUnderstood handle:[:ex |
-	    ex selector ~~ #windowSpec ifTrue:[
-		ex reject.
-	    ]
-	] do:[
-	    cls open.
-	].
-	^ true.
+        self busyLabel:'starting application %1' with:cls name.
+        MessageNotUnderstood handle:[:ex |
+            ex selector ~~ #windowSpec ifTrue:[
+                ex reject.
+            ]
+        ] do:[
+            cls open.
+        ].
+        ^ true.
     ].
     (cls isStartableWithMain) ifTrue:[
-	self busyLabel:'invoking main of %1' with:cls name.
-	"/ (self confirm:('Invoke %1''s main ?' bindWith:clsName)) ifTrue:[
-	    cls main.
-	"/ ].
-	^ true.
+        self busyLabel:'invoking main of %1' with:cls name.
+        "/ (self confirm:('Invoke %1''s main ?' bindWith:clsName)) ifTrue:[
+            cls main.
+        "/ ].
+        ^ true.
     ].
     (cls isStartableWithStart) ifTrue:[
-	self busyLabel:'invoking start of %1' with:cls name.
-	"/ (self confirm:('Invoke %1''s start ?' bindWith:clsName)) ifTrue:[
-	    cls start.
-	"/ ].
-	^ true.
+        self busyLabel:'invoking start of %1' with:cls name.
+        "/ (self confirm:('Invoke %1''s start ?' bindWith:clsName)) ifTrue:[
+            cls start.
+        "/ ].
+        ^ true.
     ].
     ^ false.
 !
@@ -58415,7 +59891,7 @@
     self updateCodeInfoAndStringSearchToolVisibility.
     stringSearchToolVisible := self stringSearchToolVisibleHolder value.
     stringSearchToolVisible ifTrue:[
-	self setFocusToSearchBar.
+        self setFocusToSearchBar.
     ].
 !
 
@@ -58437,36 +59913,39 @@
     topOffset := 0.
 
     toolBar isNil ifFalse:[
-	toolBarVisible := self toolBarVisibleHolder value.
-	DefaultToolBarVisible := toolBarVisible.
-	toolBarVisible ifTrue:[
-	    topOffset := topOffset + toolBar height.
-	]
+        toolBarVisible := self toolBarVisibleHolder value.
+        DefaultToolBarVisible := toolBarVisible.
+        toolBarVisible ifTrue:[
+            topOffset := topOffset + toolBar height.
+        ]
     ].
 
     bookmarkBar isNil ifFalse:[
-	bookmarkBarVisible := self bookmarkBarVisibleHolder value.
-	UserPreferences current showBookmarkBar:bookmarkBarVisible.
-	bookmarkBarVisible ifTrue:[
-	    h := bookmarkBar height.
-	    bookmarkBar layout topOffset:topOffset.
-	    bookmarkBar layout bottomOffset:topOffset + h.
-	    bookmarkBar container notNil ifTrue:[
-		bookmarkBar containerChangedSize.
-	    ].
-	    topOffset := topOffset + h.
-	]
-    ].
-
-    topOffset := topOffset - 1.
+        bookmarkBarVisible := self bookmarkBarVisibleHolder value.
+        UserPreferences current showBookmarkBar:bookmarkBarVisible.
+        bookmarkBarVisible ifTrue:[
+            h := bookmarkBar height.
+            bookmarkBar layout topOffset:topOffset.
+            bookmarkBar layout bottomOffset:topOffset + h.
+            bookmarkBar container notNil ifTrue:[
+                bookmarkBar containerChangedSize.
+            ].
+            topOffset := topOffset + h.
+        ]
+    ].
+
+    "/ cg: the following is wrong - looks ugly in windows style!!
+    "/ maybe we have to make this depending on some margin?
+    "/ topOffset := topOffset - 1.
+
     pageContent := (browserPageCanvas notNil or:[builder spec name == #browserPageSpec])
-		    ifTrue:[(self componentAt: #BrowserPageContents)]
-		    ifFalse:[(self componentAt:#NoteBook)].
+                    ifTrue:[(self componentAt: #BrowserPageContents)]
+                    ifFalse:[(self componentAt:#NoteBook)].
     pageContent notNil ifTrue:[
-	pageContent layout topOffset:topOffset.
-	pageContent container notNil ifTrue:[
-	    pageContent containerChangedSize.
-	].
+        pageContent layout topOffset:topOffset.
+        pageContent container notNil ifTrue:[
+            pageContent containerChangedSize.
+        ].
     ].
 
     "Created: / 18-05-2011 / 17:28:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -58504,7 +59983,7 @@
 
 variableDoubleClicked
     "double click on a variable:
-	add a buffer showing all references to this variable"
+        add a buffer showing all references to this variable"
 
     |names type title|
 
@@ -58512,23 +59991,23 @@
     names size == 0 ifTrue:[^ self].
 
     self showingClassVarsInVariableList ifTrue:[
-	type := #classVarNames.
-	title := 'all references to class variable ''%1'''.
-    ] ifFalse:[
-	self meta value ifTrue:[
-	    type := #classInstVarNames.
-	    title := 'all references to class-instance variable ''%1'''.
-	] ifFalse:[
-	    type := #instVarNames.
-	    title := 'all references to instance variable ''%1'''.
-	].
-    ].
-
-    self
-	browseVarRefsToAny:names
-	classes:self selectedClassesValue
-	variables:type access:#readOrWrite all:true
-	title:title  in:#newBuffer
+        type := #classVarNames.
+        title := 'All references to class variable ''%1'''.
+    ] ifFalse:[
+        self meta value ifTrue:[
+            type := #classInstVarNames.
+            title := 'All references to class-instance variable ''%1'''.
+        ] ifFalse:[
+            type := #instVarNames.
+            title := 'All references to instance variable ''%1'''.
+        ].
+    ].
+
+    self
+        browseVarRefsToAny:names
+        classes:self selectedClassesValue
+        variables:type access:#readOrWrite all:true
+        title:title  in:#newBuffer
 
     "Modified: / 28-02-2012 / 16:51:54 / cg"
 ! !
@@ -58544,53 +60023,68 @@
 
     code := codeArg asString.
     returnValue := false.
-    language := languageOrNil
-		    ifNotNil: [languageOrNil]
-		    ifNil: [self hasMethodSelected
-			    ifTrue:[self selectedMethodsValue first programmingLanguage]
-			    ifFalse:[cls programmingLanguage]].
+    language := languageOrNil notNil
+                    ifTrue: [languageOrNil]
+                    ifFalse: [self hasMethodSelected
+                            ifTrue:[self selectedMethodsValue first programmingLanguage]
+                            ifFalse:[cls programmingLanguage]].
+
+    "/ A special kludge for Java, sigh.
+    "/ When Java is code is about to be accepted AND a method is (was) selected,
+    "/ we end up here. However, when Java is configured to show full source
+    "/ (a default so far), then we would like to all #doAcceptJavaClassDefinition:
+    "/ so all modified states and so on are updated correctly. If we won't, then
+    "/ all the modified state and delayed code update is confused since it assumes
+    "/ only a method has changed (which may not be true, one could add a field
+    "/ meanwhile,... So tricky. I (JV) should review fullClassSource mode...
+    (language isJavaLike and:[ JavaMethod showFullSource ]) ifTrue:[
+        "/ Q: Maybe we should preserve method selection if possible...
+        ^ self doAcceptJavaClassDefinition: code.
+    ].
 
     "/ a quick parse for the selector, to check if we overwrite an existing method...
     newSelector := self selectorOfMethodFromCode:code in:cls.
     existingMethod := cls compiledMethodAt:newSelector ifAbsent:[].
     cat := self protocolToAcceptMethod:newSelector class:cls.
     cat isNil ifTrue:[
-	cat := cls isMeta
-		    ifTrue:[BrowserList nameListEntryForStatic]
-		    ifFalse:[BrowserList nameListEntryForNonStatic]
+        cat := cls isMeta
+                    ifTrue:[BrowserList nameListEntryForStatic]
+                    ifFalse:[BrowserList nameListEntryForNonStatic]
     ].
 
     AbortOperationRequest catch:[
-	(Class methodRedefinitionNotification) handle:[:ex |
-	    |answer|
-
-	    answer := SystemBrowser askForPackageChangeFrom:ex oldPackage to:ex newPackage.
-	    (answer ~~ #cancel) ifTrue:[
-		ex proceedWith:answer
-	    ].
-	] do:[
-	    |codeView package oldMethod oldSelector defPackage answer rslt lang wasInstrumented|
-
-	    "/ used to be
-	    "/    oldSelector := self theSingleSelectedSelector.
-	    "/ here; however, with Ruby, a funny selector (fact) instead of fact: is returned...
-	    wasInstrumented := false.
-
-	    oldMethod := self theSingleSelectedMethod.
-	    oldMethod notNil ifTrue:[
-		oldSelector := oldMethod selector.
-		(oldSelector isNil and:[existingMethod notNil]) ifTrue:[
-		    "/ wrapped/unwrapped?
-		    true "(existingMethod isWrapped or:[existingMethod isMethodWithBreakpoints])" ifTrue:[
-			oldSelector := existingMethod selector
-		    ]
-		].
-		wasInstrumented := oldMethod isInstrumented.
-	    ].
-
-	    "/ check for overwritten version method
-	    (cls isMeta and:[(AbstractSourceCodeManager isVersionMethodSelector:newSelector)]) ifTrue:[
-		(self confirm:'ATTENTION: you are about to accept the classes version method.
+        (Class methodRedefinitionNotification) handle:[:ex |
+            |answer|
+
+            answer := SystemBrowser askForPackageChangeFrom:ex oldPackage to:ex newPackage.
+            (answer ~~ #cancel) ifTrue:[
+                ex proceedWith:answer
+            ].
+        ] do:[
+            |codeView breakpoints package oldMethod oldSelector defPackage answer rslt lang wasInstrumented|
+
+            codeView := self codeView.
+
+            "/ used to be
+            "/    oldSelector := self theSingleSelectedSelector.
+            "/ here; however, with Ruby, a funny selector (fact) instead of fact: is returned...
+            wasInstrumented := false.
+
+            oldMethod := self theSingleSelectedMethod.
+            oldMethod notNil ifTrue:[
+                oldSelector := oldMethod selector.
+                (oldSelector isNil and:[existingMethod notNil]) ifTrue:[
+                    "/ wrapped/unwrapped?
+                    true "(existingMethod isWrapped or:[existingMethod isMethodWithBreakpoints])" ifTrue:[
+                        oldSelector := existingMethod selector
+                    ]
+                ].
+                wasInstrumented := oldMethod isInstrumented.
+            ].
+
+            "/ check for overwritten version method
+            (cls isMeta and:[(AbstractSourceCodeManager isVersionMethodSelector:newSelector)]) ifTrue:[
+                (self confirm:'ATTENTION: you are about to accept the classes version method.
 This method is required by the sourceCodeManager and should correctly return
 the classes version as present in the source repository.
 An incorrect version method may lead to failures when accessing/showing/changing
@@ -58598,137 +60092,144 @@
 You have been warned.
 
 Accept anyway ?')
-		ifFalse:[
-		    ^ false
-		]
-	    ] ifFalse:[
-		"/ check if accepting a different selector than the selected one,
-		"/ and a method for the new selector exists.
-		(existingMethod notNil and:[oldSelector ~= newSelector]) ifTrue:[
-		    "/ seems to be the same selector; however, we must really compile to see if it is not going
-		    "/ to end up in another namespace. In that case, we give a different warning message.
-		    Parser parseErrorSignal catch:[
-			rslt := language compilerClass
-				    compile:code
-				    forClass:cls
-				    inCategory:cat
-				    notifying:nil
-				    install:false.
-		    ].
-		    (rslt notNil and:[ rslt nameSpace notNil ]) ifTrue:[
-			newSelector := (':',rslt nameSpace name,'::',newSelector) asSymbol.
-			existingMethod := cls compiledMethodAt:newSelector.
-		    ].
-		].
-		(existingMethod notNil and:[oldSelector ~= newSelector]) ifTrue:[
-		    answer := OptionBox
-				  request:('You are about to overwrite an existing method.\\Accept anyway ?' withCRs)
-				  label:(resources string:'Attention')
-				  image:(WarningBox iconBitmap)
-				  buttonLabels:(resources array:#('Cancel' 'Compare' 'Yes'))
-				  values:#(false #compare true)
-				  default:false
-				  onCancel:false.
-
-		    answer == false ifTrue:[ ^ false ].
-		    answer == #compare ifTrue:[
-			self openDiffViewForText:code againstSourceOfMethod:existingMethod.
-			^ false
-		    ].
-		]
-	    ].
-
-	    codeView := self codeView.
-	    codeView cursorMovementWhenUpdating:nil.
-	    codeView scrollWhenUpdating:nil.
-
-	    existingMethod notNil ifTrue:[
-		"keep old package if selector does already exist in class"
-		package := existingMethod package.
-	    ] ifFalse:[
-		"/ JV: Used to be
-		"/
-		"/    cls theNonMetaclass canHaveExtensions ifFalse:[
-		"/
-		"/  but this is actually matter of method's language rather than class's language.
-		"/  Otherwise we could not have Smalltalk (Ruby) extensions in Java classes!!
-		"/
-		(language notNil and:[language supportsExtensionMethods]) ifFalse:[
-		    defPackage := package := cls package.
-		] ifTrue:[
-		    defPackage := Class packageQuerySignal query.
-		].
-
-		"/ if in project-mode,
-		"/ assign the currently selected packageID (or ask, if there is none or multiple)
-		"/ otherwise, use the current project
-
-		(navigationState isProjectBrowser
-		or:[navigationState organizerMode value == OrganizerCanvas organizerModeProject])
-		ifTrue:[
-		    "/ JV: Used to be
-		    "/
-		    "/    cls theNonMetaclass canHaveExtensions ifFalse:[
-		    "/
-		    "/  but this is actually matter of method's language rather than class's language.
-		    "/  Otherwise we could not have Smalltalk (Ruby) extensions in Java classes!!
-		    "/
-		    (language notNil and:[language supportsExtensionMethods]) ifTrue:[
-			package := self theSingleSelectedProject.
-		    ].
-		    package isNil ifTrue:[
-			package := self
-					askForProject:'Method shall be assigned to which project ?'
-					initialText:(LastAcceptPackage ? cls package).
-			package isNil ifTrue:[^ false].
-			LastAcceptPackage := package.
-		    ] ifFalse:[
-			package := package asSymbol.
-			"/ if the current project is different from the selected one
-			package ~= defPackage ifTrue:[
-			    "/ and the current project is not the default project
-			    (defPackage = PackageId noProjectID) ifFalse:[
-				"/ ask
-				package := self
-						askForProject:('The browsers selected project is ''%1''\however, your currently active (default) project is ''%2''.\\To which project shall the method be assigned ?'
-							       bindWith:package allBold with:defPackage allBold) withCRs
-						initialText:package.
-				package isNil ifTrue:[^ false].
-				LastAcceptPackage := package.
-			    ]
-			]
-		    ].
-		].
-		package isNil ifTrue:[ package := defPackage ].
-	    ].
-
-	    lang := oldMethod notNil
-			ifTrue:[ oldMethod programmingLanguage ]
-			ifFalse:[ cls programmingLanguage ].
-
-	    "/ notice: when compiling, the classes change message will already
-	    "/ be noticed by the methodList and lead to an update
-	    "/ to be enqueued.
-
-	    [
-		|codeCritics|
-
-		"/ cg: for now, only smalltalk critics is possible...
-		(self enforceCodeStyle and:[lang isSmalltalk]) ifTrue:[
-		    codeCritics := CodeCritics checkCodeQuality:code.
-		    codeCritics notNil ifTrue:[
-			codeCritics do:[:eachCritic |
-			    codeView
-				highlightingErrorLine:(eachCritic key)
-				do:[
-				    Dialog
-					warn:(resources
-					    stringWithCRs:'Ugly code warning\\    %1\\Please beautify.'
-					    with:eachCritic value allBold).
-				].
-			].
-		    ].
-		].
+                ifFalse:[
+                    ^ false
+                ]
+            ] ifFalse:[
+                breakpoints := nil.
+                codeView isCodeView2 ifTrue:[
+                    breakpoints := codeView breakpoints.
+                ].
+
+
+                "/ check if accepting a different selector than the selected one,
+                "/ and a method for the new selector exists.
+                (existingMethod notNil and:[oldSelector ~= newSelector]) ifTrue:[
+                    "/ seems to be the same selector; however, we must really compile to see if it is not going
+                    "/ to end up in another namespace. In that case, we give a different warning message.
+                    Parser parseErrorSignal catch:[
+                        "/ BreakpointQuery answer: breakpoints do:[
+                            rslt := language compilerClass
+                                        compile:code
+                                        forClass:cls
+                                        inCategory:cat
+                                        notifying:nil
+                                        install:false.
+                        "/ ]
+                    ].
+                    (rslt notNil and:[ rslt nameSpace notNil ]) ifTrue:[
+                        newSelector := (':',rslt nameSpace name,'::',newSelector) asSymbol.
+                        existingMethod := cls compiledMethodAt:newSelector.
+                    ].
+                ].
+                (existingMethod notNil and:[oldSelector ~= newSelector]) ifTrue:[
+                    answer := OptionBox
+                                  request:('You are about to overwrite an existing method.\\Accept anyway ?' withCRs)
+                                  label:(resources string:'Attention')
+                                  image:(WarningBox iconBitmap)
+                                  buttonLabels:(resources array:#('Cancel' 'Compare' 'Yes'))
+                                  values:#(false #compare true)
+                                  default:false
+                                  onCancel:false.
+
+                    answer == false ifTrue:[ ^ false ].
+                    answer == #compare ifTrue:[
+                        self openDiffViewForText:code againstSourceOfMethod:existingMethod.
+                        ^ false
+                    ].
+                ]
+            ].
+
+            codeView cursorMovementWhenUpdating:nil.
+            codeView scrollWhenUpdating:nil.
+
+            existingMethod notNil ifTrue:[
+                "keep old package if selector does already exist in class"
+                package := existingMethod package.
+            ] ifFalse:[
+                "/ JV: Used to be
+                "/
+                "/    cls theNonMetaclass canHaveExtensions ifFalse:[
+                "/
+                "/  but this is actually matter of method's language rather than class's language.
+                "/  Otherwise we could not have Smalltalk (Ruby) extensions in Java classes!!
+                "/
+                (language notNil and:[language supportsExtensionMethods]) ifFalse:[
+                    defPackage := package := cls package.
+                ] ifTrue:[
+                    defPackage := Class packageQuerySignal query.
+                ].
+
+                "/ if in project-mode,
+                "/ assign the currently selected packageID (or ask, if there is none or multiple)
+                "/ otherwise, use the current project
+
+                (navigationState isProjectBrowser
+                or:[navigationState organizerMode value == OrganizerCanvas organizerModeProject])
+                ifTrue:[
+                    "/ JV: Used to be
+                    "/
+                    "/    cls theNonMetaclass canHaveExtensions ifFalse:[
+                    "/
+                    "/  but this is actually matter of method's language rather than class's language.
+                    "/  Otherwise we could not have Smalltalk (Ruby) extensions in Java classes!!
+                    "/
+                    (language notNil and:[language supportsExtensionMethods]) ifTrue:[
+                        package := self theSingleSelectedProject.
+                    ].
+                    package isNil ifTrue:[
+                        package := self
+                                        askForProject:'Method shall be assigned to which project ?'
+                                        initialText:(LastAcceptPackage ? cls package).
+                        package isNil ifTrue:[^ false].
+                        LastAcceptPackage := package.
+                    ] ifFalse:[
+                        package := package asSymbol.
+                        "/ if the current project is different from the selected one
+                        package ~= defPackage ifTrue:[
+                            "/ and the current project is not the default project
+                            (defPackage = PackageId noProjectID) ifFalse:[
+                                "/ ask
+                                package := self
+                                                askForProject:('The browsers selected project is ''%1''\however, your currently active (default) project is ''%2''.\\To which project shall the method be assigned ?'
+                                                               bindWith:package allBold with:defPackage allBold) withCRs
+                                                initialText:package.
+                                package isNil ifTrue:[^ false].
+                                LastAcceptPackage := package.
+                            ]
+                        ]
+                    ].
+                ].
+                package isNil ifTrue:[ package := defPackage ].
+            ].
+
+            lang := oldMethod notNil
+                        ifTrue:[ oldMethod programmingLanguage ]
+                        ifFalse:[ language "cls programmingLanguage" ].
+
+            "/ notice: when compiling, the classes change message will already
+            "/ be noticed by the methodList and lead to an update
+            "/ to be enqueued.
+
+            [
+                |codeCritics|
+
+                "/ cg: for now, only smalltalk critics is possible...
+                (self enforceCodeStyle and:[lang isSmalltalk]) ifTrue:[
+                    codeCritics := CodeCritics checkCodeQuality:code.
+                    codeCritics notNil ifTrue:[
+                        codeCritics do:[:eachCritic |
+                            codeView
+                                highlightingErrorLine:(eachCritic key)
+                                do:[
+                                    Dialog
+                                        warn:(resources
+                                            stringWithCRs:'Ugly code warning\\    %1\\Please beautify.'
+                                            with:eachCritic value allBold).
+                                ].
+                        ].
+                    ].
+                ].
 "/ done elsewhere
 "/                self enforceComment ifTrue:[
 "/                    "/ allow simple getters, setters, basicNew etc...
@@ -58740,128 +60241,143 @@
 "/                    ].
 "/                ].
 
-		"/ do not react on the methodSelectionChanged notification
-		"/ (which is enforced by the methodList)
-		self selectedMethods retractInterestsFor:self.
-		"/ self immediateUpdate value:true.
-
-		"/ Transcript showCR:'accepting in package: ', (package ? '__NoPackage__').
-		Class packageQuerySignal answer:package do:[ |change|
-		    ClassDescription updateHistoryLineQuerySignal answer:true do:[
-			(ClassDescription updateChangeFileQuerySignal
-			, ClassDescription updateChangeListQuerySignal) answer:self suppressChangeSetUpdate not
-			do:[
+                "/ do not react on the methodSelectionChanged notification
+                "/ (which is enforced by the methodList)
+                self selectedMethods retractInterestsFor:self.
+                "/ self immediateUpdate value:true.
+
+                "/ Transcript showCR:'accepting in package: ', (package ? '__NoPackage__').
+                Class packageQuerySignal answer:package do:[ |change|
+                    ClassDescription updateHistoryLineQuerySignal answer:true do:[
+                        (ClassDescription updateChangeFileQuerySignal
+                        , ClassDescription updateChangeListQuerySignal) answer:self suppressChangeSetUpdate not
+                        do:[
 Class nameSpaceQuerySignal
 answer:(self currentNamespace)
 do:[
-			    ("self canUseRefactoringSupport"
-			     language isSmalltalk
-			     and:[(environment at:cls theNonMetaclass name)==cls
-			     and:[cls programmingLanguage == language
-			     and:[InteractiveAddMethodChange notNil]]]
-			    ) ifTrue:[
-				"/ cg: Q: is the AddMethodChange prepared for languages ?
-				change := InteractiveAddMethodChange compile:code in:cls classified:cat.
-				change controller:codeView.
-				"/ change named:('Accept method ' , newSelector ? '???').
-				Parser parseErrorSignal handle:[:ex |
-				    rslt := nil
-				] do:[
-				    RefactoryChangeManager performChange: change.
-				    rslt := cls compiledMethodAt:newSelector.
-				]
-			    ] ifFalse:[
-				rslt := language compilerClass
-				    compile:code
-				    forClass:cls
-				    inCategory:cat
-				    notifying:codeView
-				    install:true.
-			    ].
-			    wasInstrumented ifTrue:[
-				rslt := InstrumentingCompiler
-				    compile:code
-				    forClass:cls
-				    inCategory:cat
-				    notifying:nil
-				    install:true.
-			    ].
+                            ("self canUseRefactoringSupport"
+                             lang isSmalltalk
+                             and:[(environment at:cls theNonMetaclass name)==cls
+                             and:[cls programmingLanguage == lang
+                             and:[InteractiveAddMethodChange notNil]]]
+                            ) ifTrue:[
+                                "/ cg: Q: is the AddMethodChange prepared for languages ?
+                                change := InteractiveAddMethodChange compile:code in:cls classified:cat.
+                                change controller:codeView.
+                                "/ change named:('Accept method ' , newSelector ? '???').
+                                Parser parseErrorSignal handle:[:ex |
+                                    rslt := nil.
+                                    "/ mh - there was no error reporting then; do it again to get the err
+                                    "/ highlighted. What a kludge
+
+                                    "/ BreakpointQuery answer: breakpoints do:[
+                                        lang compilerClass
+                                            compile:code
+                                            forClass:cls
+                                            inCategory:cat
+                                            notifying:codeView
+                                            install:false.
+                                    "/ ]
+                                ] do:[
+                                    BreakpointQuery answer: breakpoints do:[
+                                        RefactoryChangeManager performChange: change.
+                                        rslt := cls compiledMethodAt:newSelector.
+                                    ]
+                                ]
+                            ] ifFalse:[
+                                BreakpointQuery answer: breakpoints do:[
+                                    rslt := lang compilerClass
+                                        compile:code
+                                        forClass:cls
+                                        inCategory:cat
+                                        notifying:codeView
+                                        install:true.
+                                ].
+                            ].
+                            wasInstrumented ifTrue:[
+                                rslt := InstrumentingCompiler
+                                    compile:code
+                                    forClass:cls
+                                    inCategory:cat
+                                    notifying:nil
+                                    install:true.
+                            ].
 ].
-			].
-		    ].
-		].
-
-
-		"/ give subcanvases a chance to synchronize ...
-
-		"/ self immediateUpdate value:true.
-
-		rslt isMethod ifTrue:[
+                        ].
+                    ].
+                ].
+
+
+                "/ give subcanvases a chance to synchronize ...
+
+                "/ self immediateUpdate value:true.
+
+                rslt isMethod ifTrue:[
 "/                        rslt resourceType == #image ifTrue:[
 "/                            Icon flushCachedIcons
 "/                        ].
 
-		    rslt package.       "/ sigh: has side effect of setting the instvar in the method (is this needed?)
-		    navigationState realModifiedState:false.
-		    codeView modified:false.
-
-		    "/ immediateUpdate value:true.
-		    "/ self switchToSelector:rslt selector.
-
-		    codeView cursorMovementWhenUpdating:nil.
-		    codeView scrollWhenUpdating:nil.
-		    codeView setSearchPattern:nil.
-		    lastMethodCategory := rslt category.
-
-		    (self selectedProtocolsValue contains:[:p | p string = lastMethodCategory]) ifFalse:[
-			(self selectedProtocolsValue includes:BrowserList nameListEntryForALL) ifFalse:[
-			    "/ self selectedProtocols setValue:(Array with:rslt category).
-			   self selectProtocols:(Array with:lastMethodCategory).
-			]
-		    ].
-
-		    oldSelector ~= rslt selector ifTrue:[
-			self selectedMethods value:(Array with:rslt).
-			"/ self switchToSelector:rslt selector
-		    ] ifFalse:[
+                    rslt package.       "/ sigh: has side effect of setting the instvar in the method (is this needed?)
+                    navigationState realModifiedState:false.
+                    codeView modified:false.
+
+                    "/ immediateUpdate value:true.
+                    "/ self switchToSelector:rslt selector.
+
+                    codeView cursorMovementWhenUpdating:nil.
+                    codeView scrollWhenUpdating:nil.
+                    codeView setSearchPattern:nil.
+                    lastMethodCategory := rslt category.
+
+                    (self selectedProtocolsValue contains:[:p | p string = lastMethodCategory]) ifFalse:[
+                        (self selectedProtocolsValue includes:BrowserList nameListEntryForALL) ifFalse:[
+                            "/ self selectedProtocols setValue:(Array with:rslt category).
+                           self selectProtocols:(Array with:lastMethodCategory).
+                        ]
+                    ].
+
+                    oldSelector ~= rslt selector ifTrue:[
+                        self selectedMethods value:(Array with:rslt).
+                        "/ self switchToSelector:rslt selector
+                    ] ifFalse:[
 "/                            "/ do not notify myself (to avoid scroll-to-top)
 "/
 "/                            self selectedMethods value:(Array with:rslt).
-		    ].
+                    ].
 "/                        self showMethodsCode:rslt scrollToTop:false.
 "/                        self selectedMethods setValue:(Array with:rslt).
 "/                        self switchToClass:cls selector:rslt selector.
 
-		    immediateUpdate value:false.
-		    doCheck ifTrue:[
-			self checkAcceptedMethod:rslt inClass:cls.
-		    ].
+                    immediateUpdate value:false.
+                    doCheck ifTrue:[
+                        self checkAcceptedMethod:rslt inClass:cls.
+                    ].
 "/                    wasInstrumented ifTrue:[
 "/                        self recompileMethodWithInstrumentation:rslt.
 "/                    ].
 
-		    returnValue := true.
-		    "/ self updateBufferLabel.
-		].
-	    ] ensure:[
-		"/ do again react on the methodSelectionChanged notification
-		"/ JV: MUST do it asynchronously because the update is caught
-		"/     by method list which updates its selection ASYNCHRONOUSLY.
-		"/     so by pushing this into even queue we make sure that
-		"/     we re-register ourself AFTER all such delayed updates are
-		"/     processed.
-		self window sensor pushAction:[
-		    self selectedMethods onChangeSend:#methodsSelectionChanged to:self.
-		].
-		immediateUpdate value:false.
-	    ].
-	]
+                    returnValue := true.
+                    self updateBufferLabel.
+                ].
+            ] ensure:[
+                "/ do again react on the methodSelectionChanged notification
+                "/ JV: MUST do it asynchronously because the update is caught
+                "/     by method list which updates its selection ASYNCHRONOUSLY.
+                "/     so by pushing this into even queue we make sure that
+                "/     we re-register ourself AFTER all such delayed updates are
+                "/     processed.
+                self window sensor pushAction:[
+                    self selectedMethods onChangeSend:#methodsSelectionChanged to:self.
+                ].
+                immediateUpdate value:false.
+            ].
+        ]
     ].
     ^ returnValue.
 
     "Created: / 30-12-2009 / 20:01:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 02-08-2012 / 09:37:29 / cg"
-    "Modified: / 08-10-2013 / 13:51:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified (format): / 17-08-2014 / 10:12:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 askForInitialApplicationCodeFor:aClass
@@ -58879,30 +60395,30 @@
 
     (msg notNil and:[self confirm:(resources string:msg)])
     ifTrue:[
-	SmalltalkCodeGeneratorTool createDocumentationMethodsFor:mcls.
-
-	(codeAspect == #newWebService) ifTrue:[
-	    SmalltalkCodeGeneratorTool createWebServiceCodeFor:cls.
-	    ^ self.
-	].
-	(codeAspect == #newWebPage) ifTrue:[
-	    SmalltalkCodeGeneratorTool createWebPageCodeFor:cls.
-	    ^ self.
-	].
-	codeAspect == #newApplication ifTrue:[
-	    SmalltalkCodeGeneratorTool createExamplesMethodFor:mcls.
-	    SmalltalkCodeGeneratorTool createApplicationCodeFor:cls.
-	].
-	codeAspect == #newWidget ifTrue:[
-	    SmalltalkCodeGeneratorTool createWidgetCodeFor:cls.
-	].
-	^ self.
+        SmalltalkCodeGeneratorTool createDocumentationMethodsFor:mcls.
+
+        (codeAspect == #newWebService) ifTrue:[
+            SmalltalkCodeGeneratorTool createWebServiceCodeFor:cls.
+            ^ self.
+        ].
+        (codeAspect == #newWebPage) ifTrue:[
+            SmalltalkCodeGeneratorTool createWebPageCodeFor:cls.
+            ^ self.
+        ].
+        codeAspect == #newApplication ifTrue:[
+            SmalltalkCodeGeneratorTool createExamplesMethodFor:mcls.
+            SmalltalkCodeGeneratorTool createApplicationCodeFor:cls.
+        ].
+        codeAspect == #newWidget ifTrue:[
+            SmalltalkCodeGeneratorTool createWidgetCodeFor:cls.
+        ].
+        ^ self.
     ].
 
     (codeAspect == #newTestCase) ifTrue:[
-	SmalltalkCodeGeneratorTool createDocumentationMethodsFor:mcls.
-	SmalltalkCodeGeneratorTool createTestCaseSampleCodeFor:cls.
-	^ self.
+        SmalltalkCodeGeneratorTool createDocumentationMethodsFor:mcls.
+        SmalltalkCodeGeneratorTool createTestCaseSampleCodeFor:cls.
+        ^ self.
     ]
 
     "Modified: / 31-01-2011 / 18:29:32 / cg"
@@ -58910,15 +60426,15 @@
 
 checkCodeQuality:code
     code asCollectionOfLines keysAndValuesDo:[:lineNr :eachLine |
-	|lineString column|
-
-	lineString := eachLine string.
-	(lineString withoutLeadingSeparators startsWith:'^') ifTrue:[
-	    column := lineString indexOf:$^.
-	    (column-1) \\ 4 ~~ 0 ifTrue:[
-		^ (lineNr -> 'bad indentation').
-	    ].
-	]
+        |lineString column|
+
+        lineString := eachLine string.
+        (lineString withoutLeadingSeparators startsWith:'^') ifTrue:[
+            column := lineString indexOf:$^.
+            (column-1) \\ 4 ~~ 0 ifTrue:[
+                ^ (lineNr -> 'bad indentation').
+            ].
+        ]
     ].
     ^ nil
 !
@@ -58928,44 +60444,45 @@
 
     cls := self theSingleSelectedClass.
     cls isNil ifTrue:[
-	mthd := self theSingleSelectedMethod.
-	mthd notNil ifTrue:[
-	    cls := mthd mclass
-	]
+        mthd := self theSingleSelectedMethod.
+        mthd notNil ifTrue:[
+            mthd isWrapped ifTrue:[ mthd := mthd originalMethod ].
+            cls := mthd mclass.
+        ]
     ].
     cls isNil ifTrue:[
-	classes := self selectedClassesValue.
-	classes isEmptyOrNil ifTrue:[
-	    self warn:'oops class is gone; reselect and try again'.
-	    ^ nil
-	].
-
-	"/ ask for class in which to accept
-	commonSuper := Behavior commonSuperclassOf:classes.
-	(classes includes:commonSuper) ifTrue:[
-	    initial := commonSuper name.
-	].
-	classNameList := classes collect:[:cls|cls name].
-	classNameList size > 0 ifTrue:[
-	    classNameList addLast:'-'.
-	    classNameList addLast:'*'.
-	].
-	className := Dialog
-			request:'Accept code for which class ? ("*" for all)'
-			initialAnswer:initial
-			list:classNameList.
-	className size == 0 ifTrue:[
-	    ^ nil
-	].
-	className = '*' ifTrue:[
-	    ^ classes asArray.
-	].
-
-	cls := environment at:className asSymbol.
-	cls isNil ifTrue:[
-	    self warn:'No such class - try again'.
-	    ^ nil
-	].
+        classes := self selectedClassesValue.
+        classes isEmptyOrNil ifTrue:[
+            self warn:'oops class is gone; reselect and try again'.
+            ^ nil
+        ].
+
+        "/ ask for class in which to accept
+        commonSuper := Behavior commonSuperclassOf:classes.
+        (classes includes:commonSuper) ifTrue:[
+            initial := commonSuper name.
+        ].
+        classNameList := classes collect:[:cls|cls name].
+        classNameList size > 0 ifTrue:[
+            classNameList addLast:'-'.
+            classNameList addLast:'*'.
+        ].
+        className := Dialog
+                        request:'Accept code for which class ? ("*" for all)'
+                        initialAnswer:initial
+                        list:classNameList.
+        className size == 0 ifTrue:[
+            ^ nil
+        ].
+        className = '*' ifTrue:[
+            ^ classes asArray.
+        ].
+
+        cls := environment at:className asSymbol.
+        cls isNil ifTrue:[
+            self warn:'No such class - try again'.
+            ^ nil
+        ].
     ].
     ^ cls
 
@@ -58981,31 +60498,31 @@
 
     currentClass := self theSingleSelectedLoadedNonMetaclassOrNil.
     currentClass isNil ifTrue:[
-	^ self warn:'oops - no loaded class selected'
+        ^ self warn:'oops - no loaded class selected'
     ].
 
     ((currentClass class includesSelector:getSelector)
     or:[ (currentClass class includesSelector:setSelector) ]) ifTrue:[
-	self warn:('The "%1"-class redefines the "%2" and/or the "%3"-message.\\The Accept may fail - please check manually.'
-		    bindWith:currentClass name allBold
-		    with:getSelector allBold
-		    with:setSelector allBold) withCRs.
+        self warn:('The "%1"-class redefines the "%2" and/or the "%3"-message.\\The Accept may fail - please check manually.'
+                    bindWith:currentClass name allBold
+                    with:getSelector allBold
+                    with:setSelector allBold) withCRs.
     ].
 
     [
-	environment removeDependent:self.   "/ avoid update
-	ClassDescription updateHistoryLineQuerySignal answer:true do:[
-	    (ClassDescription updateChangeFileQuerySignal
-	    , ClassDescription updateChangeListQuerySignal) answer:self suppressChangeSetUpdate not
-	    do:[
-		currentClass perform:setSelector with:theCode asString string.
-	    ].
-	].
-	codeView contents:(currentClass perform:getSelector).
-	codeView modified:false.
-	navigationState realModifiedState:false.
+        environment removeDependent:self.   "/ avoid update
+        ClassDescription updateHistoryLineQuerySignal answer:true do:[
+            (ClassDescription updateChangeFileQuerySignal
+            , ClassDescription updateChangeListQuerySignal) answer:self suppressChangeSetUpdate not
+            do:[
+                currentClass perform:setSelector with:theCode asString string.
+            ].
+        ].
+        codeView contents:(currentClass perform:getSelector).
+        codeView modified:false.
+        navigationState realModifiedState:false.
     ] ensure:[
-	environment addDependent:self.
+        environment addDependent:self.
     ].
 
     self codeAspect:aspect.
@@ -59023,7 +60540,7 @@
     "tell the codeView what to do on accept.
      Return false, if NOT accepted (i.e. compilation canceled).
      Ouch: this shares a lot of duplicate code with setAcceptActionForClass;
-	   please refacor"
+           please refacor"
 
     |codeView returnValue package|
 
@@ -59034,151 +60551,151 @@
     codeView modified:false.
 
     self withExecuteCursorDo:[
-	|currentCategory currentClass ns|
-
-	currentClass := self theSingleSelectedClass.
-	currentClass notNil ifTrue:[
-	    ns := currentClass nameSpace
-	] ifFalse:[
-	    ns := nil
-	].
-	ns := nil. "/ experimental - needed for JS parsing; is it still needed for ST ?
-
-	currentCategory := self theSingleSelectedCategory.
-	currentCategory isNil ifTrue:[
-	    currentClass notNil ifTrue:[
-		currentCategory := currentClass category
-	    ]
-	].
-
-	self organizerMode value == OrganizerCanvas organizerModeProject ifTrue:[
-	    currentClass notNil ifTrue:[
-		package := currentClass package.
-	    ] ifFalse:[
-		package := self theSingleSelectedProject.
-	    ].
-	    package isNil ifTrue:[
-		package := Dialog request:'Add to which project ?'.
-		package size == 0 ifTrue:[^ self].
-	    ].
-	    package := package asSymbol.
-	] ifFalse:[
-	    package := Class packageQuerySignal query.
-	].
-
-	Class classCategoryQuerySignal answer:(currentCategory ? '* as yet unspecified *')
-	do:[
-	  Class packageQuerySignal answer:package
-	  do:[
-	    Class nameSpaceQuerySignal handle:[:ex |
-		ns isNil ifTrue:[
-		    ex reject
-		].
-		ex proceedWith:ns
-	    ] do:[
-		AbortOperationRequest catch:[
-		  UndefinedObject createMinimumProtocolInNewSubclassQuery
-		    answer:true
-		    do:[
-			(Class classRedefinitionNotification) handle:[:ex |
-			    |answer|
+        |currentCategory currentClass ns|
+
+        currentClass := self theSingleSelectedClass.
+        currentClass notNil ifTrue:[
+            ns := currentClass nameSpace
+        ] ifFalse:[
+            ns := nil
+        ].
+        ns := nil. "/ experimental - needed for JS parsing; is it still needed for ST ?
+
+        currentCategory := self theSingleSelectedCategory.
+        currentCategory isNil ifTrue:[
+            currentClass notNil ifTrue:[
+                currentCategory := currentClass category
+            ]
+        ].
+
+        self organizerMode value == OrganizerCanvas organizerModeProject ifTrue:[
+            currentClass notNil ifTrue:[
+                package := currentClass package.
+            ] ifFalse:[
+                package := self theSingleSelectedProject.
+            ].
+            package isNil ifTrue:[
+                package := Dialog request:'Add to which project ?'.
+                package size == 0 ifTrue:[^ self].
+            ].
+            package := package asSymbol.
+        ] ifFalse:[
+            package := Class packageQuerySignal query.
+        ].
+
+        Class classCategoryQuerySignal answer:(currentCategory ? '* as yet unspecified *')
+        do:[
+          Class packageQuerySignal answer:package
+          do:[
+            Class nameSpaceQuerySignal handle:[:ex |
+                ns isNil ifTrue:[
+                    ex reject
+                ].
+                ex proceedWith:ns
+            ] do:[
+                AbortOperationRequest catch:[
+                  UndefinedObject createMinimumProtocolInNewSubclassQuery
+                    answer:true
+                    do:[
+                        (Class classRedefinitionNotification) handle:[:ex |
+                            |answer|
 
 "/ cg: now always keep the old packageID
-			    Class catchClassRedefinitions ifFalse:[
-				ex proceedWith:#keep
-			    ].
-			    answer := OptionBox
-					  request:
+                            Class catchClassRedefinitions ifFalse:[
+                                ex proceedWith:#keep
+                            ].
+                            answer := OptionBox
+                                          request:
 ('You are about to change the definition of a class from another (system-) package.
 The class is part of the ''%1'' package.
 
 PS: you can disable this check in the launchers settings-compilation dialog.'
-						      bindWith:(ex oldPackage allBold))
-
-					  label:'Class redefinition'
-					  image:(WarningBox iconBitmap)
-					  buttonLabels:#('Cancel' 'Continue')
-					  values:#(#cancel #keep)
-					  default:#keep
-					  onCancel:#cancel.
-
-			    (answer ~~ #cancel) ifTrue:[
-				ex proceedWith:answer
-			    ]
-			] do:[
-			    |rslt cls mcls|
-
-			    "/ self immediateUpdate value:true.
-			    navigationState realModifiedState:false.
-			    navigationState modified:false.
-
-			    ClassDescription updateHistoryLineQuerySignal answer:true do:[
-				(ClassDescription updateChangeFileQuerySignal
-				, ClassDescription updateChangeListQuerySignal) answer:self suppressChangeSetUpdate not
-				do:[
-				    thisIsAFullClassesCode ifTrue:[
-					rslt := (ReadStream on:theCode asString) fileIn.
-				    ] ifFalse:[
-					ClassBuildError handle:[:ex |
-					    self warn:ex description
-					] do:[
-					    rslt := (aCompilerClass ? Compiler)
-							evaluate:theCode asString string
-							notifying:codeView
-							compile:false.
-
-					].
-				    ].
-				].
-			    ].
-			    "/ self immediateUpdate value:false.
-
-			    (rslt isBehavior and: [rslt isJavaClass not]) ifTrue:[
-				"/ look for a comment and generate a documentation method if so
-				|parser tree comment|
-				parser := Parser new.
-				parser
-				    source:theCode asString string;
-				    saveComments:true.
-				tree := parser
-				    parseExpressionWithSelf:nil
-				    notifying:nil
-				    ignoreErrors:true
-				    ignoreWarnings:true
-				    inNameSpace:nil.
-				parser nextToken.
-				(rslt class implements:#documentation) ifFalse:[
-				    comment := (parser comments collect:[:c | c string]) asStringCollection asString.
-				    (comment includesString:'no comment') ifFalse:[
-					(comment includesString:'the above text has been extracted') ifFalse:[
-					    (comment includesString:'the empty string arguments by true values') ifFalse:[
-						rslt class
-						    compile:'documentation\"' withCRs,comment,'"'
-						    classified:'documentation'.
-					    ]
-					]
-				    ]
-				].
-				self switchToClass:rslt.
-				"/ self switchToClassNamed:rslt name.
-				returnValue := true.
-			    ] ifFalse:[
-				"/ Switch to class even it is not a Smalltalk class!!"
-				rslt isBehavior ifTrue:[
-				    self switchToClass:rslt.
-				].
-			    ].
-
-			    returnValue ifTrue:[
-				cls := rslt theNonMetaclass.
-				mcls := rslt theMetaclass.
-				self askForInitialApplicationCodeFor:mcls.
-			    ].
-			]
-		    ]
-		].
-	    ].
-	].
+                                                      bindWith:(ex oldPackage allBold))
+
+                                          label:'Class redefinition'
+                                          image:(WarningBox iconBitmap)
+                                          buttonLabels:#('Cancel' 'Continue')
+                                          values:#(#cancel #keep)
+                                          default:#keep
+                                          onCancel:#cancel.
+
+                            (answer ~~ #cancel) ifTrue:[
+                                ex proceedWith:answer
+                            ]
+                        ] do:[
+                            |rslt cls mcls|
+
+                            "/ self immediateUpdate value:true.
+                            navigationState realModifiedState:false.
+                            navigationState modified:false.
+
+                            ClassDescription updateHistoryLineQuerySignal answer:true do:[
+                                (ClassDescription updateChangeFileQuerySignal
+                                , ClassDescription updateChangeListQuerySignal) answer:self suppressChangeSetUpdate not
+                                do:[
+                                    thisIsAFullClassesCode ifTrue:[
+                                        rslt := (ReadStream on:theCode asString) fileIn.
+                                    ] ifFalse:[
+                                        ClassBuildError handle:[:ex |
+                                            self warn:ex description
+                                        ] do:[
+                                            rslt := (aCompilerClass ? Compiler)
+                                                        evaluate:theCode asString string
+                                                        notifying:codeView
+                                                        compile:false.
+
+                                        ].
+                                    ].
+                                ].
+                            ].
+                            "/ self immediateUpdate value:false.
+
+                            (rslt isBehavior and: [rslt programmingLanguage isSmalltalk]) ifTrue:[
+                                "/ look for a comment and generate a documentation method if so
+                                |parser tree comment|
+                                parser := Parser new.
+                                parser
+                                    source:theCode asString string;
+                                    saveComments:true.
+                                tree := parser
+                                    parseExpressionWithSelf:nil
+                                    notifying:nil
+                                    ignoreErrors:true
+                                    ignoreWarnings:true
+                                    inNameSpace:nil.
+                                parser nextToken.
+                                (rslt class implements:#documentation) ifFalse:[
+                                    comment := (parser comments collect:[:c | c string]) asStringCollection asString.
+                                    (comment includesString:'no comment') ifFalse:[
+                                        (comment includesString:'the above text has been extracted') ifFalse:[
+                                            (comment includesString:'the empty string arguments by true values') ifFalse:[
+                                                rslt class
+                                                    compile:'documentation\"' withCRs,comment,'"'
+                                                    classified:'documentation'.
+                                            ]
+                                        ]
+                                    ]
+                                ].
+                                self switchToClass:rslt.
+                                "/ self switchToClassNamed:rslt name.
+                                returnValue := true.
+                            ] ifFalse:[
+                                "/ Switch to class even it is not a Smalltalk class!!"
+                                rslt isBehavior ifTrue:[
+                                    self switchToClass:rslt.
+                                ].
+                            ].
+
+                            returnValue ifTrue:[
+                                cls := rslt theNonMetaclass.
+                                mcls := rslt theMetaclass.
+                                self askForInitialApplicationCodeFor:mcls.
+                            ].
+                        ]
+                    ]
+                ].
+            ].
+        ].
       ]
     ].
 
@@ -59195,9 +60712,9 @@
      Return false, if NOT accepted (i.e. compilation canceled)"
 
     ^ self
-	doAcceptClassDefinition:theCode
-	fullClass:false
-	usingCompiler:aCompilerClass
+        doAcceptClassDefinition:theCode
+        fullClass:false
+        usingCompiler:aCompilerClass
 
     "Modified: / 24.2.2000 / 15:40:11 / cg"
 !
@@ -59209,20 +60726,20 @@
 
     codeAspect := self codeAspect.
     codeAspect == #primitiveDefinitions ifTrue:[
-	getter := #'primitiveDefinitionsString'.
-	setter := #'primitiveDefinitions:'.
-    ] ifFalse:[
-	codeAspect == #primitiveFunctions ifTrue:[
-	    getter := #'primitiveFunctionsString'.
-	    setter := #'primitiveFunctions:'.
-	] ifFalse:[
-	    codeAspect == #primitiveVariables ifTrue:[
-		getter := #'primitiveVariablesString'.
-		setter := #'primitiveVariables:'.
-	    ] ifFalse:[
-		self error:'unknown codeAspect: ', codeAspect printString.
-	    ]
-	]
+        getter := #'primitiveDefinitionsString'.
+        setter := #'primitiveDefinitions:'.
+    ] ifFalse:[
+        codeAspect == #primitiveFunctions ifTrue:[
+            getter := #'primitiveFunctionsString'.
+            setter := #'primitiveFunctions:'.
+        ] ifFalse:[
+            codeAspect == #primitiveVariables ifTrue:[
+                getter := #'primitiveVariablesString'.
+                setter := #'primitiveVariables:'.
+            ] ifFalse:[
+                self error:'unknown codeAspect: ', codeAspect printString.
+            ]
+        ]
     ].
     self doAcceptClassAspect:codeAspect get:getter set:setter code:theCode.
 !
@@ -59239,7 +60756,7 @@
     codeAspect := aNavigationState codeAspect.
     (codeAspect == SyntaxHighlighter codeAspectClassDefinition
     or:[codeAspect == SyntaxHighlighter codeAspectMethod]) ifTrue:[
-	acceptAction value:(codeView contentsAsString)
+        acceptAction value:(codeView contentsAsString)
     ].
 
     "Modified: / 27-07-2012 / 22:25:11 / cg"
@@ -59250,9 +60767,9 @@
      Return false, if NOT accepted (i.e. compilation canceled)"
 
     ^ self
-	doAcceptClassDefinition:theCode
-	fullClass:true
-	usingCompiler:aCompilerClass
+        doAcceptClassDefinition:theCode
+        fullClass:true
+        usingCompiler:aCompilerClass
 
     "Created: / 24.2.2000 / 15:40:19 / cg"
 !
@@ -59272,7 +60789,7 @@
     newClass isNil ifTrue:[ ^ self ].
 
     newClass isBehavior ifTrue:[
-	self switchToClass:newClass.
+        self switchToClass:newClass.
     ].
     self codeAspect: #classDefinition
 
@@ -59290,20 +60807,20 @@
 
     compiler := JavaLanguage instance compilerClass.
     compiler notNil ifTrue:[
-	newClass := compiler compile: theCode register: true notifying: self.
-	newClass isNil ifTrue:[ ^ false ].
-	newClass isBehavior ifTrue:[
-	    navigationState realModifiedState:false.
-	    navigationState modified:false.
-	    self switchToClass:newClass.
-	].
-	^true.
-    ].
-
-    self warn:'Accept of Java classes is not yet implemented'.
+        newClass := compiler compile: theCode register: true notifying: self.
+        newClass isNil ifTrue:[ ^ false ].
+        newClass isBehavior ifTrue:[
+            navigationState realModifiedState:false.
+            navigationState modified:false.
+            self switchToClass:newClass.
+        ].
+        ^true.
+    ].
+
+    self warn:'No JavaCompiler found, so accepting Java code is not possible.'.
     ^ false
 
-    "Modified: / 09-08-2013 / 00:57:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 17-08-2014 / 09:50:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 doAcceptMethod:theCode language: languageOrNil
@@ -59312,37 +60829,37 @@
     |codeWithoutEmphasis classOrClassCollection|
 
     theCode isStringCollection ifTrue:[
-	codeWithoutEmphasis := theCode
-		    collect:[:eachLine |
-			eachLine isNil ifTrue:[
-			    nil
-			] ifFalse:[
-			    eachLine string
-			]
-		    ].
-    ] ifFalse:[
-	codeWithoutEmphasis := theCode
+        codeWithoutEmphasis := theCode
+                    collect:[:eachLine |
+                        eachLine isNil ifTrue:[
+                            nil
+                        ] ifFalse:[
+                            eachLine string
+                        ]
+                    ].
+    ] ifFalse:[
+        codeWithoutEmphasis := theCode
     ].
     classOrClassCollection := self classToAcceptMethodIn.
     classOrClassCollection notNil ifTrue:[
-	self
-	    withWaitCursorVisibleDo:[
-		classOrClassCollection isArray ifTrue:[
-		    classOrClassCollection do:[:eachClass |
-			self
-			    acceptMethod:codeWithoutEmphasis
-			    inClass:eachClass
-			    language: languageOrNil
-			    check:false.
-		    ].
-		] ifFalse:[
-		    self
-			acceptMethod:codeWithoutEmphasis
-			inClass:classOrClassCollection
-			language: languageOrNil
-			check:true.
-		].
-	    ]
+        self
+            withWaitCursorVisibleDo:[
+                classOrClassCollection isArray ifTrue:[
+                    classOrClassCollection do:[:eachClass |
+                        self
+                            acceptMethod:codeWithoutEmphasis
+                            inClass:eachClass
+                            language: languageOrNil
+                            check:false.
+                    ].
+                ] ifFalse:[
+                    self
+                        acceptMethod:codeWithoutEmphasis
+                        inClass:classOrClassCollection
+                        language: languageOrNil
+                        check:true.
+                ].
+            ]
     ].
 
     "Created: / 30-12-2009 / 20:02:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -59369,11 +60886,11 @@
     |parser|
 
     parser := aClass parserClass
-		parseMethodSpecification:someCode asString
-		in:aClass
-		ignoreErrors:true ignoreWarnings:true.
+                parseMethodSpecification:someCode asString
+                in:aClass
+                ignoreErrors:true ignoreWarnings:true.
     (parser notNil and:[parser ~~ #Error]) ifTrue:[
-	^ parser name.
+        ^ parser name.
     ].
     ^ nil
 
@@ -59387,10 +60904,10 @@
     originalSource := aMethod source.
     changedSource := theCode asString string.
     v := DiffCodeView
-	    openOn:changedSource
-	    label:(resources string:'Code here (to be accepted ?)')
-	    and:originalSource
-	    label:(resources string:'Method''s actual code').
+            openOn:changedSource
+            label:(resources string:'Code here (to be accepted ?)')
+            and:originalSource
+            label:(resources string:'Method''s actual code').
     v topView label:(resources string:'Comparing methods').
     v waitUntilVisible.
 
@@ -59402,28 +60919,28 @@
     aClass supportsMethodCategories ifFalse:[ ^ nil ].
     mthd := self theSingleSelectedMethod.
     mthd notNil ifTrue:[
-	cat := mthd category.
-	cat isNil ifTrue:[
-	    "/ Unbound / Missing method?
-	    mthd := aClass lookupMethodFor: selector.
-	    cat := mthd category.
-	]
-    ] ifFalse:[
-	protocols := self selectedMethodsValue collect:[:m | m category] as:Set.
-	protocols size == 1 ifTrue:[
-	    cat := protocols first
-	] ifFalse:[
-	    cat := self theSingleSelectedProtocol.
-	    (cat isNil or:[cat = (BrowserList nameListEntryForALL)]) ifTrue:[
-		"must check from which category this code came from ...
-		 ... thanks to Arno for pointing this out"
-
-		cat := self askForMethodCategoryForAcceptInClass:aClass selector:selector.
-		cat size == 0 ifTrue:[
-		    ^ nil
-		].
-	    ]
-	]
+        cat := mthd category.
+        cat isNil ifTrue:[
+            "/ Unbound / Missing method?
+            mthd := aClass lookupMethodFor: selector.
+            cat := mthd category.
+        ]
+    ] ifFalse:[
+        protocols := self selectedMethodsValue collect:[:m | m category] as:Set.
+        protocols size == 1 ifTrue:[
+            cat := protocols first
+        ] ifFalse:[
+            cat := self theSingleSelectedProtocol.
+            (cat isNil or:[cat = (BrowserList nameListEntryForALL)]) ifTrue:[
+                "must check from which category this code came from ...
+                 ... thanks to Arno for pointing this out"
+
+                cat := self askForMethodCategoryForAcceptInClass:aClass selector:selector.
+                cat size == 0 ifTrue:[
+                    ^ nil
+                ].
+            ]
+        ]
     ].
     ^ cat
 
@@ -59435,13 +60952,13 @@
     |parser|
 
     parser := aClass parserClass
-		parseMethodSpecification:someCode asString
-		in:aClass
-		ignoreErrors:true ignoreWarnings:true.
+                parseMethodSpecification:someCode asString
+                in:aClass
+                ignoreErrors:true ignoreWarnings:true.
     (parser notNil and:[parser ~~ #Error]) ifTrue:[
-	^Array
-	    with: parser selector asSymbol
-	    with: parser name
+        ^Array
+            with: parser selector asSymbol
+            with: parser name
     ].
     ^ nil
 
@@ -59458,15 +60975,17 @@
 
     "/ that's a stupid interface - should ask for a tree and then for a selector...
     parser := aClass parserClass
-		perform:#'parseMethodSpecification:in:ignoreErrors:ignoreWarnings:'
-		    withArguments:(Array with:(someCode asString)
-					 with:aClass
-					 with:true
-					 with:true)
-		    ifNotUnderstood:[ nil ].
+                perform:#'parseMethodSpecification:in:ignoreErrors:ignoreWarnings:'
+                    withArguments:(Array with:(someCode asString)
+                                         with:aClass
+                                         with:true
+                                         with:true)
+                    ifNotUnderstood:[ nil ].
 
     (parser notNil and:[parser ~~ #Error]) ifTrue:[
-	^ parser selector asSymbol.
+        parser selector notNil ifTrue:[
+            ^ parser selector asSymbol.
+        ].
     ].
     ^ nil
 
@@ -59477,11 +60996,11 @@
     |parser|
 
     parser := language parserClass
-		parseMethodSpecification:someCode asString
-		in:aClass
-		ignoreErrors:true ignoreWarnings:true.
+                parseMethodSpecification:someCode asString
+                in:aClass
+                ignoreErrors:true ignoreWarnings:true.
     (parser notNil and:[parser ~~ #Error]) ifTrue:[
-	^ parser selector asSymbol.
+        ^ parser selector asSymbol.
     ].
     ^ nil
 
@@ -59495,7 +61014,7 @@
     |codeView|
 
     (codeView := self codeView) notNil ifTrue:[
-	codeView acceptAction:aBlockOrNil.
+        codeView acceptAction:aBlockOrNil.
     ].
 !
 
@@ -59512,11 +61031,11 @@
 
     currentClass := self theSingleSelectedClass.
     (currentClass isNil
-	or:[ currentClass programmingLanguage isSmalltalk not
-	or:[ currentClass isRealNameSpace ]])
+        or:[ currentClass programmingLanguage isSmalltalk not
+        or:[ currentClass isRealNameSpace ]])
     ifTrue:[
-	self setAcceptActionForNothing.
-	^ self
+        self setAcceptActionForNothing.
+        ^ self
     ].
 
     self setAcceptAction:[:theCode | self doAcceptClassComment:theCode].
@@ -59532,13 +61051,13 @@
     currentClass := self theSingleSelectedClass.
 
     currentClass isGroovyClass ifTrue:[
-	action := [:theCode | self doAcceptGroovyClassDefinition:theCode asString string]
-    ] ifFalse:[
-	navigationState isFullClassSourceBrowser ifTrue:[
-	    action := [:theCode | self doAcceptFullJavaClassDefinition:theCode asString string].
-	] ifFalse:[
-	    action := [:theCode | self doAcceptJavaClassDefinition:theCode asString string].
-	].
+        action := [:theCode | self doAcceptGroovyClassDefinition:theCode asString string]
+    ] ifFalse:[
+        navigationState isFullClassSourceBrowser ifTrue:[
+            action := [:theCode | self doAcceptFullJavaClassDefinition:theCode asString string].
+        ] ifFalse:[
+            action := [:theCode | self doAcceptJavaClassDefinition:theCode asString string].
+        ].
     ].
     self setAcceptAction:action.
 
@@ -59559,32 +61078,32 @@
     currentClass := self theSingleSelectedClass.
 
     metaClassUsedOrNil isNil ifTrue:[
-	(currentClass notNil and:[currentClass theNonMetaclass isJavaClass]) ifTrue:[
-	    ^ self setAcceptActionForJavaClass.
-	].
+        (currentClass notNil and:[currentClass theNonMetaclass isJavaClass]) ifTrue:[
+            ^ self setAcceptActionForJavaClass.
+        ].
     ].
 
     (currentClass isRealNameSpace) ifTrue:[
-	self setAcceptActionForNothing.
-	^ self
+        self setAcceptActionForNothing.
+        ^ self
     ].
 
     metaClassUsedOrNil notNil ifTrue:[
-	compiler := metaClassUsedOrNil basicNew realSubclassDefinerClass
-    ] ifFalse:[
-	compiler := currentClass
-			ifNil:[Compiler]
-			ifNotNil:[ (currentClass subclassDefinerClass ? Compiler) ].
+        compiler := metaClassUsedOrNil basicNew realSubclassDefinerClass
+    ] ifFalse:[
+        compiler := currentClass
+                        ifNil:[Compiler]
+                        ifNotNil:[ (currentClass subclassDefinerClass ? Compiler) ].
     ].
 
     navigationState isFullClassSourceBrowser ifTrue:[
-	action := [:theCode | self doAcceptFullClassDefinition:theCode
-				   usingCompiler:compiler
-		  ].
-    ] ifFalse:[
-	action := [:theCode | self doAcceptClassDefinition:theCode
-				   usingCompiler:compiler
-		  ].
+        action := [:theCode | self doAcceptFullClassDefinition:theCode
+                                   usingCompiler:compiler
+                  ].
+    ] ifFalse:[
+        action := [:theCode | self doAcceptClassDefinition:theCode
+                                   usingCompiler:compiler
+                  ].
     ].
     self setAcceptAction:action.
 
@@ -59608,16 +61127,16 @@
     self setAcceptAction:[:theCode | self doAcceptMethod:theCode language: languageOrNil  ].
 
     (codeView := self codeView) notNil ifTrue:[
-	codeView
-	    explainAction:[:theCode :theSelection |
-		self explain:theSelection inCode:theCode
-	    ].
-	codeView isCodeView2 ifTrue:[
-	    languageOrNil ifNotNil:[
-		codeView languageHolder value: languageOrNil.
-	    ]
-
-	]
+        codeView
+            explainAction:[:theCode :theSelection |
+                self explain:theSelection inCode:theCode
+            ].
+        codeView isCodeView2 ifTrue:[
+            languageOrNil ifNotNil:[
+                codeView languageHolder value: languageOrNil.
+            ]
+
+        ]
 
     ]
 
@@ -59635,16 +61154,16 @@
     "tell the codeView what to do on accept"
 
     self setAcceptAction:[:code |  |package project|
-				package := self theSingleSelectedProject.
-				project := Project projectWithId:package.
-				project isNil ifTrue:[
-				    self warn:'No such project.'
-				] ifFalse:[
-				    project comment:(code asString string).
-				    navigationState modified:false.
-				    navigationState realModifiedState:false.
-				].
-			  ].
+                                package := self theSingleSelectedProject.
+                                project := Project projectWithId:package.
+                                project isNil ifTrue:[
+                                    self warn:'No such project.'
+                                ] ifFalse:[
+                                    project comment:(code asString string).
+                                    navigationState modified:false.
+                                    navigationState realModifiedState:false.
+                                ].
+                          ].
 !
 
 setDoitActionForClass
@@ -59661,52 +61180,59 @@
     codeView isNil ifTrue:[^ self].
 
     codeView doItAction:[:theCode |
-	|compiler nsName ns currentClass currentNonMetaClass currentMethod result|
-
-	currentClass := self theSingleSelectedClass.
-	currentClass isNil ifTrue:[
-	    currentMethod := self theSingleSelectedMethod.
-	    currentMethod notNil ifTrue:[
-		currentClass := currentMethod mclass
-	    ]
-	].
-	currentClass notNil ifTrue:[
-	    currentNonMetaClass := currentClass theNonMetaclass.
-	    ns := currentNonMetaClass nameSpace
-	] ifFalse:[
-	    self organizerMode == OrganizerCanvas organizerModeNamespace ifTrue:[
-		nsName := self theSingleSelectedNamespace.
-		nsName notNil ifTrue:[
-		    ns := NameSpace name:nsName
-		].
-	    ]
-	].
-
-	Class nameSpaceQuerySignal handle:[:ex |
-	    ns isNil ifTrue:[
-		ex reject
-	    ].
-	    ex proceedWith:ns
-	] do:[
-	    currentClass isNil ifTrue:[
-		compiler := Compiler
-	    ] ifFalse:[
-		compiler := currentClass evaluatorClass
-	    ].
-
-	    result := compiler
-		evaluate:theCode string
-		in:nil
-		receiver:currentNonMetaClass
-		notifying:codeView
-		logged:false
-		ifFail:nil.
-	].
-	result
-    ].
-
-    "Created: / 23.2.2000 / 11:54:24 / cg"
-    "Modified: / 23.2.2000 / 11:57:10 / cg"
+        |compiler nsName ns currentClass currentNonMetaClass currentMethod result|
+
+        currentClass := self theSingleSelectedClass.
+        currentClass isNil ifTrue:[
+            currentMethod := self theSingleSelectedMethod.
+            currentMethod notNil ifTrue:[
+                currentClass := currentMethod mclass
+            ]
+        ].
+        currentClass notNil ifTrue:[
+            currentNonMetaClass := currentClass theNonMetaclass.
+            ns := currentNonMetaClass nameSpace
+        ] ifFalse:[
+            self organizerMode == OrganizerCanvas organizerModeNamespace ifTrue:[
+                nsName := self theSingleSelectedNamespace.
+                nsName notNil ifTrue:[
+                    ns := NameSpace name:nsName
+                ].
+            ]
+        ].
+
+        [
+            compiler := nil.
+            codeView isCodeView2 ifTrue:[
+                codeView languageHolder value notNil ifTrue:[ 
+                    compiler := codeView languageHolder value evaluatorClass.
+                ].
+            ].
+            compiler isNil ifTrue:[
+                currentClass isNil ifTrue:[
+                    compiler := Compiler
+                ] ifFalse:[
+                    compiler := currentClass evaluatorClass
+                ].
+            ].
+            result := compiler
+                evaluate:theCode string
+                in:nil
+                receiver:currentNonMetaClass
+                notifying:codeView
+                logged:false
+                ifFail:nil.
+        ] on: Class nameSpaceQuerySignal do:[:ex |
+            ns isNil ifTrue:[
+                ex reject
+            ].
+            ex proceedWith:ns
+        ].
+        result
+    ].
+
+    "Created: / 23-02-2000 / 11:54:24 / cg"
+    "Modified (format): / 20-02-2015 / 08:44:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 setNoAcceptAction
@@ -59763,19 +61289,19 @@
      Invoked on doubleClick on an unloaded class or via the menu"
 
     [
-	|numClasses|
-
-	numClasses := aCollectionOfClasses size.
-	aCollectionOfClasses do:[:eachClass |
-	    |cls nm nameShown msg|
-
-	    cls := eachClass theNonMetaclass.
-	    cls isLoaded ifFalse:[
-		nm := cls name.
-		nameShown := self displayedClassNameOf:cls.
-
-		Autoload autoloadFailedSignal handle:[:ex |
-		    msg := 'Autoload of %1 failed.
+        |numClasses|
+
+        numClasses := aCollectionOfClasses size.
+        aCollectionOfClasses do:[:eachClass |
+            |cls nm nameShown msg|
+
+            cls := eachClass theNonMetaclass.
+            cls isLoaded ifFalse:[
+                nm := cls name.
+                nameShown := self displayedClassNameOf:cls.
+
+                Autoload autoloadFailedSignal handle:[:ex |
+                    msg := 'Autoload of %1 failed.
 
 Check for a file named ''%2.st'' either in the package ''%3''
 along your packagePath, or in the current directory.
@@ -59784,28 +61310,28 @@
 You can also try to load the class(es) from the repository,
 via the ''import and load classes'' menu function of the
 project list.'.
-		    msg := (resources string:msg
-			    with:nameShown
-			    with:(Smalltalk fileNameForClass:cls)
-			    with:cls package
-			    with:(Smalltalk packagePath asStringCollection asStringWith:' , ')).
-
-		    numClasses > 1 ifTrue:[
-			(Dialog
-			    confirm:msg
-			    yesLabel:'OK' noLabel:'Cancel') ifFalse:[^ self].
-		    ] ifFalse:[
-			Dialog warn:msg.
-		    ].
-		    ex return.
-		] do:[
-		    self busyLabel:'loading %1 ...' with:nameShown.
-		    cls autoload.
-		].
-	    ]
-	].
+                    msg := (resources string:msg
+                            with:nameShown
+                            with:(Smalltalk fileNameForClass:cls)
+                            with:cls package
+                            with:(Smalltalk packagePath asStringCollection asStringWith:' , ')).
+
+                    numClasses > 1 ifTrue:[
+                        (Dialog
+                            confirm:msg
+                            yesLabel:'OK' noLabel:'Cancel') ifFalse:[^ self].
+                    ] ifFalse:[
+                        Dialog warn:msg.
+                    ].
+                    ex return.
+                ] do:[
+                    self busyLabel:'loading %1 ...' with:nameShown.
+                    cls autoload.
+                ].
+            ]
+        ].
     ] ensure:[
-	self normalLabel.
+        self normalLabel.
     ].
 !
 
@@ -59816,47 +61342,47 @@
 
     notAutoloaded := OrderedCollection new.
     aCollectionOfClasses do:[:eachClass |
-	|eachNonMetaClass|
-	eachNonMetaClass := eachClass theNonMetaclass.
-
-	(eachNonMetaClass isLoaded and:[eachNonMetaClass wasAutoloaded not]) ifTrue:[
-	    notAutoloaded add:eachNonMetaClass.
-	].
+        |eachNonMetaClass|
+        eachNonMetaClass := eachClass theNonMetaclass.
+
+        (eachNonMetaClass isLoaded and:[eachNonMetaClass wasAutoloaded not]) ifTrue:[
+            notAutoloaded add:eachNonMetaClass.
+        ].
     ].
 
     notAutoloaded notEmpty ifTrue:[
-	force := Dialog
-		    confirm:(resources
-				stringWithCRs:(notAutoloaded size == 1
-						ifTrue:['%1 was not autoloaded.\\Force unloading it anyway ?']
-						ifFalse:['Some (%2) classes were not autoloaded.\\Force unloading them anyway ?'])
-				with:notAutoloaded first name
-				with:notAutoloaded size).
-    ] ifFalse:[
-	force := false.
+        force := Dialog
+                    confirm:(resources
+                                stringWithCRs:(notAutoloaded size == 1
+                                                ifTrue:['%1 was not autoloaded.\\Force unloading it anyway ?']
+                                                ifFalse:['Some (%2) classes were not autoloaded.\\Force unloading them anyway ?'])
+                                with:notAutoloaded first name
+                                with:notAutoloaded size).
+    ] ifFalse:[
+        force := false.
     ].
 
     aCollectionOfClasses do:[:eachClass |
-	|nm nameShown doIt eachNonMetaClass|
-
-	eachNonMetaClass := eachClass theNonMetaclass.
-	(force or:[(eachNonMetaClass isLoaded and:[eachNonMetaClass wasAutoloaded])]) ifTrue:[
-	    nm := eachNonMetaClass name.
-	    nameShown := self displayedClassNameOf:eachNonMetaClass.
-
-	    doIt := true.
-	    eachNonMetaClass hasDerivedInstances ifTrue:[
-		doIt := self confirm:(resources string:'''%1'' has (derived) instances. Unload anyway ?' with:nameShown allBold)
-	    ].
-	    doIt ifTrue:[
-		self busyLabel:'unloading %1 ...' with:nameShown.
-		[
-		    eachNonMetaClass unload.
-		] ensure:[
-		    self normalLabel.
-		].
-	    ].
-	]
+        |nm nameShown doIt eachNonMetaClass|
+
+        eachNonMetaClass := eachClass theNonMetaclass.
+        (force or:[(eachNonMetaClass isLoaded and:[eachNonMetaClass wasAutoloaded])]) ifTrue:[
+            nm := eachNonMetaClass name.
+            nameShown := self displayedClassNameOf:eachNonMetaClass.
+
+            doIt := true.
+            eachNonMetaClass hasDerivedInstances ifTrue:[
+                doIt := self confirm:(resources string:'''%1'' has (derived) instances. Unload anyway ?' with:nameShown allBold)
+            ].
+            doIt ifTrue:[
+                self busyLabel:'unloading %1 ...' with:nameShown.
+                [
+                    eachNonMetaClass unload.
+                ] ensure:[
+                    self normalLabel.
+                ].
+            ].
+        ]
     ].
 
     "Modified: / 12-09-2006 / 13:48:12 / cg"
@@ -59872,25 +61398,25 @@
     changedSource := aNavigationState codeView contentsAsString string.
 
     aNavigationState codeAspect == SyntaxHighlighter codeAspectMethod ifTrue:[
-	selectedMethod := aNavigationState theSingleSelectedMethod.
-	selectedMethod isNil ifTrue:[
-	    aNavigationState selectedMethods value size > 0 ifTrue:[
-		self warn:'Oops - multiple methods selected. Cannot compare.'.
-	    ] ifFalse:[
-		self warn:'Oops - method is gone. Cannot compare.'.
-	    ].
-	    ^ self
-	].
-	originalSource := selectedMethod source string.
-	originalSource isNil ifTrue:[
-	    self warn:'Oops - method''s source is gone. Cannot compare.'.
-	    ^ self
-	].
-	originalSource string = changedSource string ifTrue:[
-	    self information:'Same text.'.
-	    ^ self.
-	].
-	self openDiffViewForText:changedSource againstSourceOfMethod:selectedMethod.
+        selectedMethod := aNavigationState theSingleSelectedMethod.
+        selectedMethod isNil ifTrue:[
+            aNavigationState selectedMethods value size > 0 ifTrue:[
+                self warn:'Oops - multiple methods selected. Cannot compare.'.
+            ] ifFalse:[
+                self warn:'Oops - method is gone. Cannot compare.'.
+            ].
+            ^ self
+        ].
+        originalSource := selectedMethod source string.
+        originalSource isNil ifTrue:[
+            self warn:'Oops - method''s source is gone. Cannot compare.'.
+            ^ self
+        ].
+        originalSource string = changedSource string ifTrue:[
+            self information:'Same text.'.
+            ^ self.
+        ].
+        self openDiffViewForText:changedSource againstSourceOfMethod:selectedMethod.
 "/
 "/        v := DiffTextView
 "/                openOn:changedSource
@@ -59899,32 +61425,32 @@
 "/                label:(resources string:'Method''s actual code').
 "/        v label:(resources string:'Comparing method versions').
 "/        v waitUntilVisible.
-	^ self
+        ^ self
     ].
 
     aNavigationState codeAspect == SyntaxHighlighter codeAspectClassDefinition ifTrue:[
-	selectedClass := aNavigationState theSingleSelectedClass.
-	selectedClass isNil ifTrue:[
-	    aNavigationState selectedClasses value size > 0 ifTrue:[
-		self warn:'Oops - multiple classes selected. Cannot compare.'.
-	    ] ifFalse:[
-		self warn:'Oops - class is gone. Cannot compare.'.
-	    ].
-	    ^ self
-	].
-	originalSource := self classDefinitionStringFor:selectedClass.
-	originalSource isNil ifTrue:[
-	    self warn:'Oops - class is gone. Cannot compare.'.
-	    ^ self
-	].
-	v := DiffCodeView
-		openOn:changedSource
-		label:(resources string:'Changed definition (to be accepted ?)')
-		and:originalSource
-		label:(resources string:'Classes actual definition').
-	v label:(resources string:'Comparing class definitions').
-	v waitUntilVisible.
-	^ self
+        selectedClass := aNavigationState theSingleSelectedClass.
+        selectedClass isNil ifTrue:[
+            aNavigationState selectedClasses value size > 0 ifTrue:[
+                self warn:'Oops - multiple classes selected. Cannot compare.'.
+            ] ifFalse:[
+                self warn:'Oops - class is gone. Cannot compare.'.
+            ].
+            ^ self
+        ].
+        originalSource := self classDefinitionStringFor:selectedClass.
+        originalSource isNil ifTrue:[
+            self warn:'Oops - class is gone. Cannot compare.'.
+            ^ self
+        ].
+        v := DiffCodeView
+                openOn:changedSource
+                label:(resources string:'Changed definition (to be accepted ?)')
+                and:originalSource
+                label:(resources string:'Classes actual definition').
+        v label:(resources string:'Comparing class definitions').
+        v waitUntilVisible.
+        ^ self
     ].
 
     ^ self.
@@ -59939,25 +61465,25 @@
      Return true, if I have eaten the event"
 
     ((false "rawKey == #BackSpace") or:[ key == #CursorLeft ]) ifTrue:[
-	self
-	    enqueueMessage:#backToLastClass
-	    for:self
-	    arguments:#().
-	^ true
+        self
+            enqueueMessage:#backToLastClass
+            for:self
+            arguments:#().
+        ^ true
     ].
     (key == #Rename "rawKey == #Cmdr") ifTrue:[
-	self
-	    enqueueMessage:#categoryMenuRename
-	    for:self
-	    arguments:#().
-	^ true
+        self
+            enqueueMessage:#categoryMenuRename
+            for:self
+            arguments:#().
+        ^ true
     ].
     (key == #Find or:[ key == #FindNext ]) ifTrue:[
-	self
-	    enqueueMessage:#searchMenuFindClass
-	    for:self
-	    arguments:#().
-	^ true
+        self
+            enqueueMessage:#searchMenuFindClass
+            for:self
+            arguments:#().
+        ^ true
     ].
     ^ false
 !
@@ -59967,18 +61493,18 @@
      Return true, if I have eaten the event"
 
     ((false "rawKey == #BackSpace") or:[ key == #CursorLeft ]) ifTrue:[
-	self
-	    enqueueMessage:#backToLastClass
-	    for:self
-	    arguments:#().
-	^ true
+        self
+            enqueueMessage:#backToLastClass
+            for:self
+            arguments:#().
+        ^ true
     ].
     (key == #Rename "rawKey == #Cmdr") ifTrue:[
-	self
-	    enqueueMessage:#classMenuRename
-	    for:self
-	    arguments:#().
-	^ true
+        self
+            enqueueMessage:#classMenuRename
+            for:self
+            arguments:#().
+        ^ true
     ].
 "/    (rawKey == #Delete) ifTrue:[
 "/        self
@@ -59988,11 +61514,11 @@
 "/        ^ true
 "/    ].
     (key == #Find or:[ key == #FindNext ]) ifTrue:[
-	self
-	    enqueueMessage:#searchMenuFindClass
-	    for:self
-	    arguments:#().
-	^ true
+        self
+            enqueueMessage:#searchMenuFindClass
+            for:self
+            arguments:#().
+        ^ true
     ].
     ^ false
 !
@@ -60002,32 +61528,32 @@
      Return true, if I have eaten the event"
 
     ((false "rawKey == #BackSpace") or:[ key == #CursorLeft ]) ifTrue:[
-	self
-	    enqueueMessage:#backToLastClass
-	    for:self
-	    arguments:#().
-	^ true
+        self
+            enqueueMessage:#backToLastClass
+            for:self
+            arguments:#().
+        ^ true
     ].
     (key == #Rename "rawKey == #Cmdr") ifTrue:[
-	self
-	    enqueueMessage:#classMenuRename
-	    for:self
-	    arguments:#().
-	^ true
+        self
+            enqueueMessage:#classMenuRename
+            for:self
+            arguments:#().
+        ^ true
     ].
     ((key == #Cut) or:[rawKey == #Delete or:[rawKey == #BackSpace]]) ifTrue:[
-	self
-	    enqueueMessage:#classMenuRemove
-	    for:self
-	    arguments:#().
-	^ true
+        self
+            enqueueMessage:#classMenuRemove
+            for:self
+            arguments:#().
+        ^ true
     ].
     (key == #Find or:[ key == #FindNext ]) ifTrue:[
-	self
-	    enqueueMessage:#searchMenuFindClass
-	    for:self
-	    arguments:#().
-	^ true
+        self
+            enqueueMessage:#searchMenuFindClass
+            for:self
+            arguments:#().
+        ^ true
     ].
     ^ false
 
@@ -60039,24 +61565,24 @@
      Return true, if I have eaten the event"
 
     (UserPreferences current useCodeView2In:#Browser) ifFalse:[
-	"/ old-style codeView
-	key == #CodeCompletion ifTrue:[
-	    "/ complete the word before/under the cursor.
-	    self
-		enqueueMessage:#codeCompletion
-		for:self
-		arguments:#().
-	    ^ true
-	].
+        "/ old-style codeView
+        key == #CodeCompletion ifTrue:[
+            "/ complete the word before/under the cursor.
+            self
+                enqueueMessage:#codeCompletion
+                for:self
+                arguments:#().
+            ^ true
+        ].
     ].
     key == #Rename ifTrue:[
-	self hasLocalVariableSelectedInCodeView ifTrue:[
-	self
-	    enqueueMessage:#codeMenuRenameTemporary
-	    for:self
-	    arguments:#().
-	].
-	^ true
+        self hasLocalVariableSelectedInCodeView ifTrue:[
+        self
+            enqueueMessage:#codeMenuRenameTemporary
+            for:self
+            arguments:#().
+        ].
+        ^ true
     ].
     ^ false
 
@@ -60069,25 +61595,25 @@
      Return true, if I have eaten the event"
 
     (key == #Rename "rawKey == #Cmdr") ifTrue:[
-	self
-	    enqueueMessage:#protocolMenuRename
-	    for:self
-	    arguments:#().
-	^ true
+        self
+            enqueueMessage:#protocolMenuRename
+            for:self
+            arguments:#().
+        ^ true
     ].
     (key == #BackSpace) ifTrue:[
-	self
-	    enqueueMessage:#protocolMenuRemoveAndSelectPrevious
-	    for:self
-	    arguments:#().
-	^ true
+        self
+            enqueueMessage:#protocolMenuRemoveAndSelectPrevious
+            for:self
+            arguments:#().
+        ^ true
     ].
     (key == #Delete) ifTrue:[
-	self
-	    enqueueMessage:#protocolMenuRemoveAndSelectNext
-	    for:self
-	    arguments:#().
-	^ true
+        self
+            enqueueMessage:#protocolMenuRemoveAndSelectNext
+            for:self
+            arguments:#().
+        ^ true
     ].
     "/ cg: no longer; these keys are now ALWAYS forwarded to the codeView
     "/    (key == #Find or:[ key == #FindNext ]) ifTrue:[
@@ -60098,11 +61624,11 @@
     "/        ^ true
     "/    ].
     (rawKey == #Cmdt) ifTrue:[
-	self
-	    enqueueMessage:#browseMenuMethodsWithString
-	    for:self
-	    arguments:#().
-	^ true
+        self
+            enqueueMessage:#browseMenuMethodsWithString
+            for:self
+            arguments:#().
+        ^ true
     ].
     ^ false
 !
@@ -60112,53 +61638,53 @@
      Return true, if I have eaten the event"
 
     (rawKey == #CtrlCursorUp) ifTrue:[
-	self
-	    enqueueMessage:#selectorMenuPushUpMethod
-	    for:self
-	    arguments:#().
-	^ true
+        self
+            enqueueMessage:#selectorMenuPushUpMethod
+            for:self
+            arguments:#().
+        ^ true
     ].
     ((key == #Cut) or:[rawKey == #Delete]) ifTrue:[
-	self
-	    enqueueMessage:#selectorMenuRemoveAndSelectNext "/ #selectorMenuSaveRemove
-	    for:self
-	    arguments:#().
-	^ true
+        self
+            enqueueMessage:#selectorMenuRemoveAndSelectNext "/ #selectorMenuSaveRemove
+            for:self
+            arguments:#().
+        ^ true
     ].
     (key == #BackSpace) ifTrue:[
-	self
-	    enqueueMessage:#selectorMenuRemoveAndSelectNext "/ #selectorMenuSaveRemove
-	    for:self
-	    arguments:#().
-	^ true
+        self
+            enqueueMessage:#selectorMenuRemoveAndSelectNext "/ #selectorMenuSaveRemove
+            for:self
+            arguments:#().
+        ^ true
     ].
     (key == #Delete) ifTrue:[
-	self
-	    enqueueMessage:#selectorMenuRemoveAndSelectNext "/ #selectorMenuSaveRemove
-	    for:self
-	    arguments:#().
-	^ true
+        self
+            enqueueMessage:#selectorMenuRemoveAndSelectNext "/ #selectorMenuSaveRemove
+            for:self
+            arguments:#().
+        ^ true
     ].
     (key == #Rename "rawKey == #Cmdr") ifTrue:[
-	self
-	    enqueueMessage:#selectorMenuRename
-	    for:self
-	    arguments:#().
-	^ true
+        self
+            enqueueMessage:#selectorMenuRename
+            for:self
+            arguments:#().
+        ^ true
     ].
     (rawKey == #Cmdi) ifTrue:[
-	self
-	    enqueueMessage:#browseImplementorsOf
-	    for:self
-	    arguments:#().
-	^ true
+        self
+            enqueueMessage:#browseImplementorsOf
+            for:self
+            arguments:#().
+        ^ true
     ].
     (rawKey == #Cmdt) ifTrue:[
-	self
-	    enqueueMessage:#browseMenuMethodsWithString
-	    for:self
-	    arguments:#().
-	^ true
+        self
+            enqueueMessage:#browseMenuMethodsWithString
+            for:self
+            arguments:#().
+        ^ true
     ].
     "/ cg: no longer; these keys are now ALWAYS forwarded to the codeView
     "/    (key == #Find or:[ key == #FindNext ]) ifTrue:[
@@ -60178,18 +61704,18 @@
      Return true, if I have eaten the event"
 
     ((false "rawKey == #BackSpace") or:[ key == #CursorLeft ]) ifTrue:[
-	self
-	    enqueueMessage:#backToLastClass
-	    for:self
-	    arguments:#().
-	^ true
+        self
+            enqueueMessage:#backToLastClass
+            for:self
+            arguments:#().
+        ^ true
     ].
     (key == #Find or:[ key == #FindNext ]) ifTrue:[
-	self
-	    enqueueMessage:#searchMenuFindClass
-	    for:self
-	    arguments:#().
-	^ true
+        self
+            enqueueMessage:#searchMenuFindClass
+            for:self
+            arguments:#().
+        ^ true
     ].
     ^ false
 !
@@ -60201,26 +61727,25 @@
     |variablesToRemove|
 
     ((key == #Cut) or:[rawKey == #Delete or:[rawKey == #BackSpace]]) ifTrue:[
-	variablesToRemove := self selectedVariables value.
-	variablesToRemove size > 0 ifTrue:[
-	    self
-		enqueueMessage:#variablesRemoveWithConfirmation
-		for:self
-		arguments:#().
-	].
-	^ true
+        variablesToRemove := self selectedVariables value.
+        variablesToRemove size > 0 ifTrue:[
+            self
+                enqueueMessage:#variablesRemoveWithConfirmation
+                for:self
+                arguments:#().
+        ].
+        ^ true
     ].
     (key == #Rename "rawKey == #Cmdr") ifTrue:[
-	self
-	    enqueueMessage:#variablesMenuRename
-	    for:self
-	    arguments:#().
-	^ true
+        self
+            enqueueMessage:#variablesMenuRename
+            for:self
+            arguments:#().
+        ^ true
     ].
     ^ false
 
     "Modified: / 27-04-2012 / 13:08:35 / cg"
-
 !
 
 processEvent:anEvent
@@ -60232,30 +61757,22 @@
     |codeView evView key rawKey sensor|
 
     codeView := self codeView.
-    "/JV@2011-08-17: FIXME: remove the typecheck and add isCodeView2
-    "/or something...
-    (codeView isKindOf: Tools::CodeView2) ifTrue:[
-	codeView := codeView textView.
+    (codeView isCodeView2) ifTrue:[
+        codeView := codeView textView.
     ].
     evView := anEvent targetView.
     evView notNil ifTrue:[
-	anEvent isKeyPressEvent ifTrue:[
-	    key := anEvent key.
-	    rawKey := anEvent rawKey.
-
-	    rawKey == #Ctrll ifTrue:
-		[(self componentAt: #SearchedClassNameComboBox) takeFocus.
-		^true].
-
-	    (evView isSameOrComponentOf:codeView) ifTrue:[
-		^ self keyInCodeView:key rawKey:rawKey
-	    ].
-
-	    "/ cg: these keys are now ALWAYS forwarded to the codeView
-	    (false "key == #Find" or:[ key == #FindNext or:[ key == #FindPrev ]]) ifTrue:[
-		anEvent dispatchTo:self codeView.
-		^ true
-	    ].
+        anEvent isKeyPressEvent ifTrue:[
+            key := anEvent key.
+            rawKey := anEvent rawKey.
+
+            rawKey == #Ctrll ifTrue:
+                [(self componentAt: #SearchedClassNameComboBox) takeFocus.
+                ^true].
+
+            (evView isSameOrComponentOf:codeView) ifTrue:[
+                ^ self keyInCodeView:key rawKey:rawKey
+            ].
 
 "/            key == #Find ifTrue:[
 "/                self
@@ -60272,56 +61789,63 @@
 "/                ^ true
 "/            ].
 
-	    (self view:evView belongsToSubApplication:self categoryListApp) ifTrue:[
-		^ self keyInCategoryListView:key rawKey:rawKey
-	    ].
-	    (self view:evView belongsToSubApplication:self projectListApp) ifTrue:[
-		^ self keyInProjectListView:key rawKey:rawKey
-	    ].
-	    (self view:evView belongsToSubApplication:self classListApp) ifTrue:[
-		^ self keyInClassListView:key rawKey:rawKey
-	    ].
-	    (self view:evView belongsToSubApplication:self classHierarchyListApp) ifTrue:[
-		^ self keyInClassHierarchyListView:key rawKey:rawKey
-	    ].
-	    (self view:evView belongsToSubApplication:self methodCategoryListApp) ifTrue:[
-		^ self keyInMethodCategoryListView:key rawKey:rawKey
-	    ].
-	    (self view:evView belongsToSubApplication:self methodListApp) ifTrue:[
-		^ self keyInMethodListView:key rawKey:rawKey
-	    ].
-	    (self view:evView belongsToSubApplication:navigationState variableListApplication) ifTrue:[
-		^ self keyInVariableListView:key rawKey:rawKey
-	    ].
-	].
-
-	anEvent isButtonReleaseEvent ifTrue:[
-	    anEvent delegatedFrom isNil ifTrue:[
-
-		evView == codeView ifTrue:[
-		    self codeInfoVisible value ifTrue:[
-			self doImmediateExplaining value ifTrue:[
-			    anEvent delegatedFrom:self.
-			    sensor := evView sensor.
-			    sensor pushEvent:anEvent.  "/ must be first in queue
-						       "/ (for the buttonRelease to be processed)
-			    self
-				enqueueMessage:#delayedExplainSelection
-				for:self
-				arguments:#() .
-
-			    ^ true "/ release event has been added already
-			].
-		    ].
-		]
-	    ]
-	].
+            (self view:evView belongsToSubApplication:self categoryListApp) ifTrue:[
+                ^ self keyInCategoryListView:key rawKey:rawKey
+            ].
+            (self view:evView belongsToSubApplication:self projectListApp) ifTrue:[
+                ^ self keyInProjectListView:key rawKey:rawKey
+            ].
+            (self view:evView belongsToSubApplication:self classListApp) ifTrue:[
+                ^ self keyInClassListView:key rawKey:rawKey
+            ].
+            (self view:evView belongsToSubApplication:self classHierarchyListApp) ifTrue:[
+                ^ self keyInClassHierarchyListView:key rawKey:rawKey
+            ].
+
+            "/ cg: these keys are now ALWAYS forwarded to the codeView
+            (false "key == #Find" or:[ key == #FindNext or:[ key == #FindPrev ]]) ifTrue:[
+                anEvent dispatchTo:self codeView.
+                ^ true
+            ].
+
+            (self view:evView belongsToSubApplication:self methodCategoryListApp) ifTrue:[
+                ^ self keyInMethodCategoryListView:key rawKey:rawKey
+            ].
+            (self view:evView belongsToSubApplication:self methodListApp) ifTrue:[
+                ^ self keyInMethodListView:key rawKey:rawKey
+            ].
+            (self view:evView belongsToSubApplication:navigationState variableListApplication) ifTrue:[
+                ^ self keyInVariableListView:key rawKey:rawKey
+            ].
+        ].
+
+        anEvent isButtonReleaseEvent ifTrue:[
+            anEvent delegatedFrom isNil ifTrue:[
+
+                evView == codeView ifTrue:[
+                    self codeInfoVisible value ifTrue:[
+                        self doImmediateExplaining value ifTrue:[
+                            anEvent delegatedFrom:self.
+                            sensor := evView sensor.
+                            sensor pushEvent:anEvent.  "/ must be first in queue
+                                                       "/ (for the buttonRelease to be processed)
+                            self
+                                enqueueMessage:#delayedExplainSelection
+                                for:self
+                                arguments:#() .
+
+                            ^ true "/ release event has been added already
+                        ].
+                    ].
+                ]
+            ]
+        ].
     ].
 
     anEvent isButtonMultiPressEvent ifTrue:[
-	anEvent view name = 'CursorLineLabel' ifTrue:[
-	    self codeView gotoLine
-	].
+        anEvent view name = 'CursorLineLabel' ifTrue:[
+            self codeView gotoLine
+        ].
     ].
 
     ^ false
@@ -60333,60 +61857,20 @@
 
 !NewSystemBrowser methodsFor:'user actions-helpers'!
 
-hideMessagePane
-
-    | messagePaneView tabContentView |
-    messagePaneView := self navigationState messagePaneView.
-    tabContentView := self navigationState tabContentView.
-
-    messagePaneView isVisible ifFalse:[^self]."/already hidden"
-    messagePaneView isVisible: false.
-    tabContentView  layout:
-	(tabContentView layout topOffset: 0; yourself)
-
-    "Created: / 28-08-2010 / 10:49:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-hideMessagePaneAndAbort
-    |worker|
-
-    (worker := self navigationState worker) notNil ifTrue:[
-	"asynchronous"
-	self navigationState worker:nil.
-	worker terminate.
-    ] ifFalse:[
-	"synchronous"
-	AbortSignal raise
-    ].
-
-    "Created: / 28-08-2010 / 20:50:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 15-05-2012 / 11:03:06 / cg"
-!
-
-hideMessagePaneIn: givenNavigationState
-
-    | messagePaneView tabContentView |
-    messagePaneView := givenNavigationState messagePaneView.
-    tabContentView := givenNavigationState tabContentView.
-
-    messagePaneView isVisible ifFalse:[^self]."/already hidden"
-    messagePaneView isVisible: false.
-    tabContentView  layout:
-	(tabContentView layout topOffset: 0; yourself)
-
-    "Created: / 28-08-2010 / 20:39:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
 showMessage: aString
-
-    self messageHolder value: aString.
-    self showMessagePane: #messageInfoSpec.
-
-    "
-	WindowGroup activeApplication showMessage: 'Hello'
+    self inlineMessageApp showMessage: aString.
+
+"/ OLD CODE
+
+"/    self messageHolder value: aString.
+"/    self showMessagePane: #messageInfoSpec.
+
+    "
+        WindowGroup activeApplication showMessage: 'Hello'
     "
 
     "Created: / 28-08-2010 / 11:47:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 25-03-2014 / 18:16:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 showMessage:message while:block
@@ -60400,101 +61884,110 @@
 !
 
 showMessage:message while:block inBackground:inBackgroundBoolean
-    "used for long-during lint operations: show a progressbar and a message in the top pane,
+    "used for long-running lint operations: show a progressbar and a message in the top pane,
      optionally execute block in another (background-) thread"
 
-    |state actionWithIndicator worker|
-
-    state := self navigationState.
-
-    actionWithIndicator :=
-	    [
-		[
-		    self showMessagePane:#progressInfoSpec in:state.
-		    block
-			on:UserNotification
-			do:[:notification |
-			    (notification isKindOf:ProgressNotification) ifTrue:[
-				self progressHolder value:notification progressValue.
-				inBackgroundBoolean ifFalse:[
-				    "care for redraw and abort-button"
-				    "/ self windowGroup repairDamage.
-				    self windowGroup processEvents.
-				].
-			    ] ifFalse:[
-				self messageHolder value:notification description.
-			    ].
-			    notification proceed
-			]
-		] ensure:[
-		    self hideMessagePaneIn:state.
-		].
-	    ].
-
+    | panel blocker |
+
+    panel := self inlineMessageApp.
     inBackgroundBoolean ifTrue:[
-	worker := actionWithIndicator newProcess.
-	worker priorityRange:(4 to:8).
-	state worker:worker.
-	worker resume.
-	^ worker
-    ].
-
-    actionWithIndicator value.
-    ^ nil
+        panel showProgressLabeled: message while: block.
+    ] ifFalse:[
+        "/ InlineMessageDialog does everything in background, so wait here...
+        blocker := Semaphore new.
+        panel showProgressLabeled: message while: [ [ block value ] ensure:[ blocker signal ] ].
+        blocker wait.
+    ].
+
+
+"/ OLD CODE
+
+"/    |state actionWithIndicator worker|
+"/
+"/    state := self navigationState.
+"/
+"/    actionWithIndicator :=
+"/            [
+"/                [
+"/                    self showMessagePane:#progressInfoSpec in:state.
+"/                    block
+"/                        on:UserNotification
+"/                        do:[:notification |
+"/                            (notification isKindOf:ProgressNotification) ifTrue:[
+"/                                self progressHolder value:notification progressValue.
+"/                                inBackgroundBoolean ifFalse:[
+"/                                    "care for redraw and abort-button"
+"/                                    "/ self windowGroup repairDamage.
+"/                                    self windowGroup processEvents.
+"/                                ].
+"/                            ] ifFalse:[
+"/                                self messageHolder value:notification description.
+"/                            ].
+"/                            notification proceed
+"/                        ]
+"/                ] ensure:[
+"/                    self hideMessagePaneIn:state.
+"/                ].
+"/            ].
+"/
+"/    inBackgroundBoolean ifTrue:[
+"/        worker := actionWithIndicator newProcess.
+"/        worker priorityRange:(4 to:8).
+"/        state worker:worker.
+"/        worker resume.
+"/        ^ worker
+"/    ].
+"/
+"/    actionWithIndicator value.
+"/    ^ nil
 
     "Created: / 28-08-2010 / 20:10:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Created: / 15-05-2012 / 10:46:47 / cg"
+    "Modified: / 25-03-2014 / 18:14:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 showMessage:message whileExecutingBackgroundAction:block
-    "used for long-during lint operations: show a progressbar and a message in the top pane,
+    "used for long-running lint operations: show a progressbar and a message in the top pane,
      execute block in another (background-) thread"
 
     ^ self showMessage:message while:block inBackground: true
 
     "Created: / 28-08-2010 / 20:10:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Created: / 15-05-2012 / 10:45:49 / cg"
-!
-
-showMessagePane: spec
-
-    ^self showMessagePane: spec in: self navigationState
-
-    "Created: / 28-08-2010 / 20:37:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-showMessagePane: spec in: givenNavigationState
-    | messagePaneView tabContentView |
-
-    messagePaneView := givenNavigationState messagePaneView.
-    tabContentView :=  givenNavigationState tabContentView.
-    messagePaneView isVisible ifTrue:[^self]."/already shown"
-    messagePaneView isVisible: true.
-    tabContentView  layout:
-	(tabContentView layout topOffset: 40; yourself).
-    self messageSpecHolder value: spec.
-
-    "Created: / 28-08-2010 / 20:37:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified (format): / 04-08-2011 / 23:21:11 / cg"
+    "Modified (comment): / 25-03-2014 / 17:47:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 showMessageWhileTest
-    self
-	showMessage:'Tools::NewSystemBrowser >> testProgressAction'
-	whileExecutingBackgroundAction:[
-	    (1 to:100) do:[:i |
-		(ProgressNotification new)
-		    messageText:('Tools::NewSystemBrowser >> testProgressAction (%1 done)'
-				bindWith:i);
-		    parameter:i;
-		    raiseRequest.
-		Delay waitForMilliseconds:30.
-	    ].
-	    Transcript showCR:'Tools::NewSystemBrowser >> testProgressAction done!!'
-	]
+    | b |
+
+    b :=
+
+
+    self
+        showMessage:'Tools::NewSystemBrowser >> testProgressAction'
+        whileExecutingBackgroundAction:[
+            | i |
+
+            i := 1.
+            [ i <= 100] whileTrue:[
+                (ProgressNotification new)
+                    messageText:('Tools::NewSystemBrowser >> testProgressAction (%1 done)'
+                                bindWith:i);
+                    parameter:i;
+                    raiseRequest.
+                Delay waitForMilliseconds:30.
+                i := i + 1.
+            ].
+            Transcript showCR:'Tools::NewSystemBrowser >> testProgressAction done!!'
+        ]
+
+    "
+        WindowGroup activeApplication showMessageWhileTest
+    "
 
     "Created: / 28-08-2010 / 10:32:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 15-05-2012 / 10:46:06 / cg"
+    "Modified (comment): / 25-03-2014 / 18:15:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !NewSystemBrowser methodsFor:'user actions-profiler'!
@@ -60502,12 +61995,12 @@
 spawnProfilerStatistics:statistics in: where
 
     self
-	newBrowserOrBufferDependingOn: where
-	label:'Visual Profiler'
-	forSpec:#visualProfilerSpec
-	setupWith: [:browser|
-	    browser profilerStatistics value: statistics
-	]
+        newBrowserOrBufferDependingOn: where
+        label:'Visual Profiler'
+        forSpec:#visualProfilerSpec
+        setupWith: [:browser|
+            browser profilerStatistics value: statistics
+        ]
 
     "Created: / 09-10-2007 / 22:05:36 / janfrog"
     "Modified (format): / 29-11-2011 / 14:49:08 / cg"
@@ -60533,20 +62026,20 @@
     (duck typing is cool!!)
 
     to show pre-assigned per-user colors, do something like:
-	UserPreferences current
-	    at:#preferredOwnerColorMapping
-	    put:(
-		Dictionary new
-		    at:'cg' put:(Color green);
-		    at:'claus' put:(Color green);
-		    at:'sv' put:(Color blue);
-		    at:'ab' put:(Color orange);
-		    at:'ca' put:(Color cyan);
-		    at:'mb' put:(Color red);
-		    at:'sr' put:(Color yellow);
-		    at:'vrany' put:(Color orange lightened);
-		    yourself
-	    )
+        UserPreferences current
+            at:#preferredOwnerColorMapping
+            put:(
+                Dictionary new
+                    at:'cg' put:(Color green);
+                    at:'claus' put:(Color green);
+                    at:'sv' put:(Color blue);
+                    at:'ab' put:(Color orange);
+                    at:'ca' put:(Color cyan);
+                    at:'mb' put:(Color red);
+                    at:'sr' put:(Color yellow);
+                    at:'vrany' put:(Color orange lightened);
+                    yourself
+            )
 
 "
 ! !
@@ -60555,11 +62048,11 @@
 
 addRevision:revision author:author date:date lineOwnership:lineOwnership
     ownershipInfo isNil ifTrue:[
-	ownershipInfo := OrderedCollection new.
+        ownershipInfo := OrderedCollection new.
     ].
     ownershipInfo
-	add:(RevisionOwnershipInfo new
-		revision:revision author:author date:date lineOwnership:lineOwnership)
+        add:(RevisionOwnershipInfo new
+                revision:revision author:author date:date lineOwnership:lineOwnership)
 !
 
 ownershipInfo
@@ -60572,6 +62065,13 @@
 
 !NewSystemBrowser::OwnershipGraph methodsFor:'displaying'!
 
+displayOn:aGC x:x y:y opaque:opaque
+    cachedForm isNil ifTrue:[
+        self generateFormFor:aGC
+    ].
+    aGC displayForm:cachedForm x:x y:y opaque:opaque
+!
+
 generateFormFor:aGC
     |maxNumLines xRun hGraph wCol colorsPerOwner colorsToUse preferredColors
      y yLine font sepAgenda lastInfo form
@@ -60598,88 +62098,88 @@
 
     maxWRevString := maxWAuthorString := maxWDateString := 0.
     ownershipInfo do:[:revInfo |
-	|rev author date|
-
-	rev := revInfo revision.
-	author := revInfo author.
-	date := revInfo date asDate.
-
-	maxWRevString := maxWRevString max:(font widthOf:rev).
-	maxWAuthorString := maxWAuthorString max:(font widthOf:author).
-	maxWDateString := maxWDateString max:(font widthOf:(date printStringFormat:self class dateFormat)).
-
-	"/ pre determine color here
-	colorsPerOwner
-	    at:author
-	    ifAbsentPut:[
-		|clr|
-
-		(preferredColors notNil
-		and:[ (preferredColors includesKey:author) ]) ifTrue:[
-		    clr := preferredColors at:author.
-		    colorsToUse remove:clr ifAbsent:[].
-		] ifFalse:[
-		    colorsToUse isEmpty ifTrue:[
-			clr := Color
-				redByte:(Random nextIntegerBetween:0 and:255)
-				greenByte:(Random nextIntegerBetween:0 and:255)
-				blueByte:(Random nextIntegerBetween:0 and:255).
-		    ] ifFalse:[
-			clr := colorsToUse removeFirst
-		    ]
-		].
-		clr
-	    ].
+        |rev author date|
+
+        rev := revInfo revision.
+        author := revInfo author.
+        date := revInfo date asDate.
+
+        maxWRevString := maxWRevString max:(font widthOf:rev).
+        maxWAuthorString := maxWAuthorString max:(font widthOf:author).
+        maxWDateString := maxWDateString max:(font widthOf:(date printStringFormat:self class dateFormat)).
+
+        "/ pre determine color here
+        colorsPerOwner
+            at:author
+            ifAbsentPut:[
+                |clr|
+
+                (preferredColors notNil
+                and:[ (preferredColors includesKey:author) ]) ifTrue:[
+                    clr := preferredColors at:author.
+                    colorsToUse remove:clr ifAbsent:[].
+                ] ifFalse:[
+                    colorsToUse isEmpty ifTrue:[
+                        clr := Color
+                                redByte:(Random nextIntegerBetween:0 and:255)
+                                greenByte:(Random nextIntegerBetween:0 and:255)
+                                blueByte:(Random nextIntegerBetween:0 and:255).
+                    ] ifFalse:[
+                        clr := colorsToUse removeFirst
+                    ]
+                ].
+                clr
+            ].
     ].
 
     ownershipInfo do:[:revInfo |
-	|numOverallLines hAll rev author date lineInfo authorColor yBot|
-
-	rev := revInfo revision.
-	author := revInfo author.
-	date := revInfo date asDate.
-	lineInfo := revInfo lineOwnership.
-	numOverallLines := lineInfo size.
-
-	yBot := y + hGraph.
-	hAll := 0.
-	(lineInfo valuesAndCounts copy sort:[:a :b | |pos1 pos2|
-					    pos1 := (colorsPerOwner indexOfKey:a key ifAbsent:999999).
-					    pos2 := (colorsPerOwner indexOfKey:b key ifAbsent:999999).
-					    pos1 < pos2
-					    "/ a value > b value
-					]) do:[:eachAssoc |
-	    |eachAuthor numLines hThis color yTop|
-
-	    eachAuthor := eachAssoc key.
-	    numLines := eachAssoc value.
-	    hThis := hGraph * numLines // maxNumLines.
-	    yTop := yBot - hThis.
-	    color := colorsPerOwner at:eachAuthor ifAbsentPut:[colorsToUse removeFirst].
-	    form paint:color.
-	    form fillRectangleX:xRun y:yTop width:wCol height:hThis.
-	    hAll := hAll + hThis.
-	    yBot := yTop.
-	].
-
-	"/ hAll := hGraph * numOverallLines // maxNumLines.
-	form paint:Color black.
-	form displayRectangleX:xRun y:(y + (hGraph - hAll))
-		width:wCol
-		height:hAll.
-
-	authorColor := colorsPerOwner at:author ifAbsentPut:[colorsToUse removeFirst].
-
-	form paint:authorColor.
-	form displayString:rev
-		x:xRun+(font height)
-		y:(y + hGraph+5+maxWRevString) angle:-90.
-
-	form displayString:(date printStringFormat:self class dateFormat)
-		x:xRun+(font height)
-		y:(y + hGraph+5+maxWRevString+10+maxWDateString) angle:-90.
-
-	xRun := xRun + wCol
+        |numOverallLines hAll rev author date lineInfo authorColor yBot|
+
+        rev := revInfo revision.
+        author := revInfo author.
+        date := revInfo date asDate.
+        lineInfo := revInfo lineOwnership.
+        numOverallLines := lineInfo size.
+
+        yBot := y + hGraph.
+        hAll := 0.
+        (lineInfo valuesAndCounts copy sort:[:a :b | |pos1 pos2|
+                                            pos1 := (colorsPerOwner indexOfKey:a key ifAbsent:999999).
+                                            pos2 := (colorsPerOwner indexOfKey:b key ifAbsent:999999).
+                                            pos1 < pos2
+                                            "/ a value > b value
+                                        ]) do:[:eachAssoc |
+            |eachAuthor numLines hThis color yTop|
+
+            eachAuthor := eachAssoc key.
+            numLines := eachAssoc value.
+            hThis := hGraph * numLines // maxNumLines.
+            yTop := yBot - hThis.
+            color := colorsPerOwner at:eachAuthor ifAbsentPut:[colorsToUse removeFirst].
+            form paint:color.
+            form fillRectangleX:xRun y:yTop width:wCol height:hThis.
+            hAll := hAll + hThis.
+            yBot := yTop.
+        ].
+
+        "/ hAll := hGraph * numOverallLines // maxNumLines.
+        form paint:Color black.
+        form displayRectangleX:xRun y:(y + (hGraph - hAll))
+                width:wCol
+                height:hAll.
+
+        authorColor := colorsPerOwner at:author ifAbsentPut:[colorsToUse removeFirst].
+
+        form paint:authorColor.
+        form displayString:rev
+                x:xRun+(font height)
+                y:(y + hGraph+5+maxWRevString) angle:-90.
+
+        form displayString:(date printStringFormat:self class dateFormat)
+                x:xRun+(font height)
+                y:(y + hGraph+5+maxWRevString+10+maxWDateString) angle:-90.
+
+        xRun := xRun + wCol
     ].
 
     sepAgenda := self agendaSeparatorWidth.
@@ -60687,29 +62187,20 @@
     yLine := y + (font ascent).
     lastInfo := ownershipInfo last value.
     colorsPerOwner keysAndValuesReverseDo:[:name :color |
-	|namePlusPercentage|
-
-	form paint:color.
-	form fillRectangleX:(xRun+sepAgenda) y:yLine-(font ascent) width:16 height:16.
-	form paint:Color black.
-	form displayRectangleX:(xRun+sepAgenda) y:yLine-(font ascent) width:16 height:16.
-	namePlusPercentage := (name ? '?') , '(' , ((lastInfo numberOfLinesOfAuthor:name) / lastInfo numberOfLines * 100) rounded printString , '%, ',(lastInfo numberOfLinesOfAuthor:name) printString,' lines)'.
-	form displayString:namePlusPercentage x:(xRun+sepAgenda+16+5) y:yLine.
-	yLine := yLine + (font height + 10).
+        |namePlusPercentage|
+
+        form paint:color.
+        form fillRectangleX:(xRun+sepAgenda) y:yLine-(font ascent) width:16 height:16.
+        form paint:Color black.
+        form displayRectangleX:(xRun+sepAgenda) y:yLine-(font ascent) width:16 height:16.
+        namePlusPercentage := (name ? '?') , '(' , ((lastInfo numberOfLinesOfAuthor:name) / lastInfo numberOfLines * 100) rounded printString , '%, ',(lastInfo numberOfLinesOfAuthor:name) printString,' lines)'.
+        form displayString:namePlusPercentage x:(xRun+sepAgenda+16+5) y:yLine.
+        yLine := yLine + (font height + 10).
     ].
 
     cachedForm := form
 ! !
 
-!NewSystemBrowser::OwnershipGraph methodsFor:'list protocol'!
-
-displayOn:aGC x:x y:y opaque:opaque
-    cachedForm isNil ifTrue:[
-	self generateFormFor:aGC
-    ].
-    aGC displayForm:cachedForm x:x y:y opaque:opaque
-! !
-
 !NewSystemBrowser::OwnershipGraph methodsFor:'queries'!
 
 agendaInfoWidth
@@ -60743,15 +62234,15 @@
     font := aGC font.
     maxWRevString := maxWAuthorString := maxWDateString := 0.
     ownershipInfo do:[:revInfo |
-	|rev author date|
-
-	rev := revInfo revision.
-	author := revInfo author.
-	date := revInfo date asDate.
-
-	maxWRevString := maxWRevString max:(font widthOf:rev).
-	maxWAuthorString := maxWAuthorString max:(font widthOf:author).
-	maxWDateString := maxWDateString max:(font widthOf:(date printStringFormat:self class dateFormat)).
+        |rev author date|
+
+        rev := revInfo revision.
+        author := revInfo author.
+        date := revInfo date asDate.
+
+        maxWRevString := maxWRevString max:(font widthOf:rev).
+        maxWAuthorString := maxWAuthorString max:(font widthOf:author).
+        maxWDateString := maxWDateString max:(font widthOf:(date printStringFormat:self class dateFormat)).
     ].
     ^ 15 + maxWRevString + 5 + maxWDateString + 10
 !
@@ -60813,10 +62304,10 @@
     colorsToUse add:(Color brown lightened).
     colorsToUse add:(Color orange lightened).
 
-    colorsToUse add:(Color grey).
-    colorsToUse add:(Color darkGrey).
-    colorsToUse add:(Color lightGrey).
-    colorsToUse add:(Color veryLightGrey).
+    colorsToUse add:(Color gray).
+    colorsToUse add:(Color darkGray).
+    colorsToUse add:(Color lightGray).
+    colorsToUse add:(Color veryLightGray).
     colorsToUse add:(Color red darkened lightened).
     colorsToUse add:(Color blue darkened lightened).
 
@@ -60878,11 +62369,11 @@
 !NewSystemBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1994 2013-10-27 10:16:10 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.2213 2015-03-28 12:01:52 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1994 2013-10-27 10:16:10 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.2213 2015-03-28 12:01:52 cg Exp $'
 !
 
 version_HG
@@ -60891,7 +62382,7 @@
 !
 
 version_SVN
-    ^ '$Id: Tools__NewSystemBrowser.st,v 1.1994 2013-10-27 10:16:10 cg Exp $'
+    ^ '$Id: Tools__NewSystemBrowser.st,v 1.2213 2015-03-28 12:01:52 cg Exp $'
 ! !