Merge jv
authorMerge Script
Wed, 04 May 2016 06:51:10 +0200
branchjv
changeset 16408 bc62fb9a8df6
parent 16381 41f056db1b83 (current diff)
parent 16407 21e8290d8494 (diff)
child 16409 d960c5f89145
Merge
AbstractSettingsApplication.st
ChangeSetBrowser.st
ChangesBrowser.st
CodeGeneratorTool.st
Make.proto
Make.spec
SettingsDialog.st
SmalltalkCodeGeneratorTool.st
SystemBrowser.st
Tools__BrowserList.st
Tools__NewSystemBrowser.st
abbrev.stc
bc.mak
bmake.bat
extensions.st
libInit.cc
libtool.rc
mingwmake.bat
resources/de.rs
stx_libtool.st
vcmake.bat
--- a/AbstractSettingsApplication.st	Tue May 03 06:42:52 2016 +0200
+++ b/AbstractSettingsApplication.st	Wed May 04 06:51:10 2016 +0200
@@ -4641,33 +4641,33 @@
      the UIHelpTool may not be able to read the specification."
 
     "
-     UIHelpTool openOnClass:AbstractSettingsApplication::FontSettingsAppl
+     UIHelpTool openOnClass:AbstractSettingsApplication::EditSettingsAppl
     "
 
     <resource: #help>
 
     ^ super flyByHelpSpec addPairsFrom:#(
 
-#resetToDefault
-'Reset fonts back to original default values (as specified in the window style-file and OS settings)'
-
-#changeToHighContrast
-'Change settings for higher contrast. Useful for presentations and outdor operation'
-
-#changeToBigFonts
-'Change settings for bigger fonts. Useful for presentations'
-
-#changeToHugeFonts
-'Change settings for huge fonts. Useful for presentations'
-
-#changeToSTXLook
-'Change settings for an ST/X-like look (fixed-width code fonts)'
-
-#changeToSqueakLook
-'Change settings for a Squeak-like look (variable fonts)'
-
-#changeToVisualAgeLook
-'Change settings for a VisualAge-like look (bold variable fonts)'
+"/#resetToDefault
+"/'Reset fonts back to original default values (as specified in the window style-file and OS settings)'
+"/
+"/#changeToHighContrast
+"/'Change settings for higher contrast. Useful for presentations and outdor operation'
+"/
+"/#changeToBigFonts
+"/'Change settings for bigger fonts. Useful for presentations'
+"/
+"/#changeToHugeFonts
+"/'Change settings for huge fonts. Useful for presentations'
+"/
+"/#changeToSTXLook
+"/'Change settings for an ST/X-like look (fixed-width code fonts)'
+"/
+"/#changeToSqueakLook
+"/'Change settings for a Squeak-like look (variable fonts)'
+"/
+"/#changeToVisualAgeLook
+"/'Change settings for a VisualAge-like look (bold variable fonts)'
 
 #immediateCodeCompletion
 'Show code completion suggestions as you type.\This is an experimental feature, please disable it if you encounter problems.'
@@ -4728,27 +4728,6 @@
 
     "Created: / 17-03-2012 / 11:37:51 / cg"
     "Modified: / 27-03-2014 / 10:19:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-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:AbstractSettingsApplication::EditSettingsAppl    
-    "
-
-    <resource: #help>
-
-    ^ super helpSpec addPairsFrom:#(
-
-#codeCompletionOnControlKey
-''
-
-)
 ! !
 
 !AbstractSettingsApplication::EditSettingsAppl class methodsFor:'image specs'!
@@ -4801,7 +4780,7 @@
             (SpecCollection
                collection: (
                 (CheckBoxSpec
-                   label: 'Use the New Code Editor2 (experimental)'
+                   label: 'Use the New Code Editor (v2)'
                    name: 'UserCodeView2'
                    activeHelpKey: useNewCodeView2
                    model: useCodeView2InTools
@@ -4829,7 +4808,7 @@
                    extent: (Point 658 4)
                  )
                 (CheckBoxSpec
-                   label: 'Code Completion as you Type (experimental)'
+                   label: 'Code Completion as you Type'
                    name: 'CheckBox5'
                    activeHelpKey: immediateCodeCompletion
                    model: immediateCodeCompletion
@@ -4843,7 +4822,7 @@
                   (SpecCollection
                      collection: (
                       (CheckBoxSpec
-                         label: 'Code Completion on CTRL Key (experimental)'
+                         label: 'Code Completion on CTRL Key'
                          name: 'CheckBox6'
                          layout: (LayoutFrame 0 0 0 0 350 0 25 0)
                          activeHelpKey: codeCompletionOnControlKey
@@ -4851,7 +4830,7 @@
                          translateLabel: true
                        )
                       (CheckBoxSpec
-                         label: 'On TAB Key (experimental)'
+                         label: 'On TAB Key'
                          name: 'CheckBox7'
                          layout: (LayoutFrame 380 0 0 0 658 0 25 0)
                          activeHelpKey: codeCompletionOnTabKey
@@ -16339,9 +16318,26 @@
 browseSourceCache
     <resource: #uiCallback>
 
-    UserPreferences fileBrowserClass openOn:
-        self sourceCacheDir value
-
+    |cacheDir|
+
+    cacheDir := self sourceCacheDir value.    
+    cacheDir isNil ifTrue:[
+        AbstractSourceCodeManager cachingSources ifFalse:[
+            (Dialog confirm:'No cache directory defined. Setup now?') ifTrue:[
+                AbstractSourceCodeManager cachingSources:true.
+                self browseSourceCache
+            ].            
+        ] ifFalse:[
+            AbstractSourceCodeManager initCacheDirPath.
+            cacheDir := self sourceCacheDir value.    
+            cacheDir isNil ifTrue:[
+                Dialog information:'Failed to setup a default cache directory. Please enter manually'.
+                ^ self.
+            ].            
+        ].    
+    ].    
+    UserPreferences fileBrowserClass openOn:cacheDir
+    
     "Modified: / 12-10-2011 / 11:11:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
--- a/ChangeSetBrowser.st	Tue May 03 06:42:52 2016 +0200
+++ b/ChangeSetBrowser.st	Wed May 04 06:51:10 2016 +0200
@@ -870,6 +870,8 @@
     "read the changeSet, create a list of header-lines"
 
     self withCursor:(Cursor read) do:[
+        changeInfoList := OrderedCollection new.
+
         changeSet size == 0 ifTrue:[
             changeFileName notNil ifTrue:[
                 changeSet := self class readXMLChangesFromFile:changeFileName inBackground:false.
@@ -883,21 +885,20 @@
 "/        "                   +/-    cls>>sel  type   info"
 "/        tabSpec align:    #(#left  #left     #left  #left).
 
-        changeChunks := OrderedCollection new.
-        changeHeaderLines := OrderedCollection new.
-
         changeSet do:[:aChange | 
-            |changeSource entry t changeDelta|
+            |info changeSource entry time 
+             changeDelta changeClass changeClassName changeSelector|
 
             changeSource := aChange source "printString".
+            changeClassName := aChange className.
 
-            changeChunks add:changeSource.
-
-            aChange isMethodCodeChange ifTrue:[            
+            aChange isMethodCodeChange ifTrue:[
+                changeClass := aChange changeClass.
+                changeSelector := aChange selector.
                 changeDelta := ChangeDeltaInformation 
                                 changeDeltaFor:changeSource 
-                                changeClass:aChange changeClass 
-                                selector:aChange selector.
+                                changeClass:changeClass 
+                                selector:changeSelector.
             ] ifFalse:[
                 changeDelta := ' '.
             ].
@@ -910,13 +911,21 @@
             entry colAt:3 put:''. "/ changeType.
         
             (aChange respondsTo:#timeOfChangeIfKnown) ifTrue:[
-                (t := aChange timeOfChangeIfKnown) notNil ifTrue:[
-                    entry colAt:4 put:(self timeStampPrintStringOf:t).
+                (time := aChange timeOfChangeIfKnown) notNil ifTrue:[
+                    entry colAt:4 put:(self timeStampPrintStringOf:time).
                 ]
             ].    
-            changeHeaderLines add:entry
+            info := ChangesBrowser::ChangeInfo new 
+                        position:nil
+                        chunk:changeSource
+                        className:changeClassName
+                        selector:changeSelector
+                        headerLine:entry
+                        timestamp:time
+                        isFollowupChange:false.
+            changeInfoList add:info.
+
         ].
-        changeClassNames := OrderedCollection new:(changeChunks size).
         anyChanges := false
     ].
 
@@ -1098,10 +1107,10 @@
 !ChangeSetBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/ChangeSetBrowser.st,v 1.68 2015-03-24 15:14:16 cg Exp $'
+    ^ '$Header$'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/ChangeSetBrowser.st,v 1.68 2015-03-24 15:14:16 cg Exp $'
+    ^ '$Header$'
 ! !
 
--- a/ChangesBrowser.st	Tue May 03 06:42:52 2016 +0200
+++ b/ChangesBrowser.st	Wed May 04 06:51:10 2016 +0200
@@ -3711,7 +3711,7 @@
 
     sel := fullParseTree selector.
     arg1Tree := fullParseTree arg1.
-    (arg1Tree notNil and:[arg1Tree isConstant]) ifTrue:[
+    (arg1Tree notNil and:[arg1Tree isLiteral]) ifTrue:[
         name := arg1Tree value asString.
 
         "/ is it a private-class ?
@@ -3801,7 +3801,7 @@
         (arg1Tree notNil and:[arg1Tree isPrimary]) ifTrue:[
             oldName := arg1Tree name.
             arg2Tree := aParseTree arg2.
-            (arg2Tree notNil and:[arg2Tree isConstant]) ifTrue:[
+            (arg2Tree notNil and:[arg2Tree isLiteral]) ifTrue:[
                 newName := arg2Tree evaluate.
                 (Smalltalk classNamed:oldName) notNil ifTrue:[^ oldName ].
                 (Smalltalk classNamed:newName) notNil ifTrue:[^ newName ].
@@ -3852,7 +3852,7 @@
                 #'removeSelector:'
             ) includes:sel) ifTrue:[
                 sel := aParseTree arguments at:1.
-                sel isConstant ifTrue:[
+                sel isLiteral ifTrue:[
                     sel := sel evaluate.
                     sel isSymbol ifTrue:[
                         ^ sel
@@ -6579,11 +6579,11 @@
                 ])
                 ifTrue:[
                     ((cls superclass isNil
-                        and:[p receiver isConstant
+                        and:[p receiver isLiteral
                         and:[p receiver evaluate isNil]])
                     or:[
                         cls superclass notNil
-                        and:[p receiver isConstant not
+                        and:[p receiver isLiteral not
                         and:[cls superclass name = p receiver name]]
                     ]) ifTrue:[
                         (sel == #'variableByteSubclass:classVariableNames:poolDictionaries:category:')
--- a/CodeGeneratorTool.st	Tue May 03 06:42:52 2016 +0200
+++ b/CodeGeneratorTool.st	Wed May 04 06:51:10 2016 +0200
@@ -1727,6 +1727,8 @@
          So, use proper compiler for language the receiver is generator for,
          i.e., Compiler for SmalltalkCodeGenerator, JavaScriptCompiler for
          JavaScriptCodeGenerator..."
+
+        "/ this is not the real compilation - but a prescan for the selector
         compiler := self compilerClass new.
         compiler parseMethod:theCode in:aClass ignoreErrors:true ignoreWarnings:true.
 
@@ -1748,6 +1750,7 @@
     ].
 
     change := InteractiveAddMethodChange compile:(theCode asString) in:aClass classified:category.
+    change controller:(CompilationErrorHandlerQuery query).
 
     "/ if collecting, add to changes (to be executed as one change at the end,
     "/ in order to have only one change in the undo-list (instead of many)
--- a/Make.proto	Tue May 03 06:42:52 2016 +0200
+++ b/Make.proto	Wed May 04 06:51:10 2016 +0200
@@ -34,7 +34,7 @@
 # add the path(es) here:,
 # ********** OPTIONAL: MODIFY the next lines ***
 # LOCALINCLUDES=-Ifoo -Ibar
-LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libbasic2 -I$(INCLUDE_TOP)/stx/libbasic3 -I$(INCLUDE_TOP)/stx/libcomp -I$(INCLUDE_TOP)/stx/libui -I$(INCLUDE_TOP)/stx/libview -I$(INCLUDE_TOP)/stx/libview2 -I$(INCLUDE_TOP)/stx/libwidg -I$(INCLUDE_TOP)/stx/libwidg2 -I$(INCLUDE_TOP)/stx/libwidg3
+LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libbasic2 -I$(INCLUDE_TOP)/stx/libbasic3 -I$(INCLUDE_TOP)/stx/libcomp -I$(INCLUDE_TOP)/stx/libui -I$(INCLUDE_TOP)/stx/libview -I$(INCLUDE_TOP)/stx/libview2 -I$(INCLUDE_TOP)/stx/libwidg -I$(INCLUDE_TOP)/stx/libwidg2
 
 
 # if you need any additional defines for embedded C code,
@@ -334,7 +334,7 @@
 $(OUTDIR)Tools__HierarchicalChangeList.$(O) Tools__HierarchicalChangeList.$(C) Tools__HierarchicalChangeList.$(H): Tools__HierarchicalChangeList.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__BrowserList.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__BrowserListWithFilter.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__ChangeList.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__NavigatorModel.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(STCHDR)
 $(OUTDIR)Tools__HierarchicalPackageFilterList.$(O) Tools__HierarchicalPackageFilterList.$(C) Tools__HierarchicalPackageFilterList.$(H): Tools__HierarchicalPackageFilterList.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__BrowserList.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__HierarchicalProjectList.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__NavigatorModel.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__ProjectList.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(INCLUDE_TOP)/stx/libwidg2/AbstractHierarchicalItem.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItemWithLabel.$(H) $(STCHDR)
 $(OUTDIR)Tools__InheritanceClassList.$(O) Tools__InheritanceClassList.$(C) Tools__InheritanceClassList.$(H): Tools__InheritanceClassList.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__BrowserList.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__ClassList.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__HierarchicalClassList.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__NavigatorModel.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(STCHDR)
-$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)/stx/libbasic/AbstractTime.$(H) $(INCLUDE_TOP)/stx/libbasic/ArithmeticValue.$(H) $(INCLUDE_TOP)/stx/libbasic/ArrayedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Autoload.$(H) $(INCLUDE_TOP)/stx/libbasic/Bag.$(H) $(INCLUDE_TOP)/stx/libbasic/Behavior.$(H) $(INCLUDE_TOP)/stx/libbasic/Block.$(H) $(INCLUDE_TOP)/stx/libbasic/Boolean.$(H) $(INCLUDE_TOP)/stx/libbasic/ByteArray.$(H) $(INCLUDE_TOP)/stx/libbasic/Character.$(H) $(INCLUDE_TOP)/stx/libbasic/CharacterArray.$(H) $(INCLUDE_TOP)/stx/libbasic/Class.$(H) $(INCLUDE_TOP)/stx/libbasic/ClassDescription.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/CompiledCode.$(H) $(INCLUDE_TOP)/stx/libbasic/Date.$(H) $(INCLUDE_TOP)/stx/libbasic/Dictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/ExecutableFunction.$(H) $(INCLUDE_TOP)/stx/libbasic/Filename.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Geometric.$(H) $(INCLUDE_TOP)/stx/libbasic/IdentityDictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/Integer.$(H) $(INCLUDE_TOP)/stx/libbasic/Interval.$(H) $(INCLUDE_TOP)/stx/libbasic/KeyedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/LibraryDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/LimitedPrecisionReal.$(H) $(INCLUDE_TOP)/stx/libbasic/Magnitude.$(H) $(INCLUDE_TOP)/stx/libbasic/Method.$(H) $(INCLUDE_TOP)/stx/libbasic/MethodDictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/NameSpace.$(H) $(INCLUDE_TOP)/stx/libbasic/Notification.$(H) $(INCLUDE_TOP)/stx/libbasic/Number.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/OrderedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Point.$(H) $(INCLUDE_TOP)/stx/libbasic/ProgrammingLanguage.$(H) $(INCLUDE_TOP)/stx/libbasic/ProjectDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/Query.$(H) $(INCLUDE_TOP)/stx/libbasic/ReadOnlySequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Rectangle.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Set.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(INCLUDE_TOP)/stx/libbasic/SmallInteger.$(H) $(INCLUDE_TOP)/stx/libbasic/Smalltalk.$(H) $(INCLUDE_TOP)/stx/libbasic/SmalltalkLanguage.$(H) $(INCLUDE_TOP)/stx/libbasic/StandaloneStartup.$(H) $(INCLUDE_TOP)/stx/libbasic/String.$(H) $(INCLUDE_TOP)/stx/libbasic/StringCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Symbol.$(H) $(INCLUDE_TOP)/stx/libbasic/Timestamp.$(H) $(INCLUDE_TOP)/stx/libbasic/UndefinedObject.$(H) $(INCLUDE_TOP)/stx/libbasic/UninterpretedBytes.$(H) $(INCLUDE_TOP)/stx/libbasic/UserNotification.$(H) $(INCLUDE_TOP)/stx/libbasic/UserPreferences.$(H) $(INCLUDE_TOP)/stx/libbasic/Warning.$(H) $(INCLUDE_TOP)/stx/libbasic2/Iterator.$(H) $(INCLUDE_TOP)/stx/libbasic2/RunArray.$(H) $(INCLUDE_TOP)/stx/libbasic2/SocketAddress.$(H) $(INCLUDE_TOP)/stx/libbasic2/Text.$(H) $(INCLUDE_TOP)/stx/libbasic2/UUID.$(H) $(INCLUDE_TOP)/stx/libbasic3/Change.$(H) $(INCLUDE_TOP)/stx/libbasic3/ChangeSet.$(H) $(INCLUDE_TOP)/stx/libbasic3/CompositeChange.$(H) $(INCLUDE_TOP)/stx/libbasic3/ProfileTree.$(H) $(INCLUDE_TOP)/stx/libcomp/AbstractSyntaxHighlighter.$(H) $(INCLUDE_TOP)/stx/libcomp/Breakpoint.$(H) $(INCLUDE_TOP)/stx/libcomp/BreakpointDescription.$(H) $(INCLUDE_TOP)/stx/libcomp/Parser.$(H) $(INCLUDE_TOP)/stx/libcomp/Scanner.$(H) $(INCLUDE_TOP)/stx/libview/Color.$(H) $(INCLUDE_TOP)/stx/libview/DeviceGraphicsContext.$(H) $(INCLUDE_TOP)/stx/libview/DisplaySurface.$(H) $(INCLUDE_TOP)/stx/libview/Form.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsContext.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsMedium.$(H) $(INCLUDE_TOP)/stx/libview/Image.$(H) $(INCLUDE_TOP)/stx/libview/PopUpView.$(H) $(INCLUDE_TOP)/stx/libview/SimpleView.$(H) $(INCLUDE_TOP)/stx/libview/TopView.$(H) $(INCLUDE_TOP)/stx/libview/View.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(INCLUDE_TOP)/stx/libview2/MultiImage.$(H) $(INCLUDE_TOP)/stx/libwidg/EditTextView.$(H) $(INCLUDE_TOP)/stx/libwidg/GenericToolbarIconLibrary.$(H) $(INCLUDE_TOP)/stx/libwidg/ListView.$(H) $(INCLUDE_TOP)/stx/libwidg/MenuView.$(H) $(INCLUDE_TOP)/stx/libwidg/PopUpMenu.$(H) $(INCLUDE_TOP)/stx/libwidg/SelectionInListView.$(H) $(INCLUDE_TOP)/stx/libwidg/TextView.$(H) $(INCLUDE_TOP)/stx/libwidg2/ListModelView.$(H) $(INCLUDE_TOP)/stx/libwidg2/SelectionInListModelView.$(H) $(STCHDR)
+$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)/stx/libbasic/AbstractTime.$(H) $(INCLUDE_TOP)/stx/libbasic/ArithmeticValue.$(H) $(INCLUDE_TOP)/stx/libbasic/ArrayedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Autoload.$(H) $(INCLUDE_TOP)/stx/libbasic/Bag.$(H) $(INCLUDE_TOP)/stx/libbasic/Behavior.$(H) $(INCLUDE_TOP)/stx/libbasic/Block.$(H) $(INCLUDE_TOP)/stx/libbasic/Boolean.$(H) $(INCLUDE_TOP)/stx/libbasic/ByteArray.$(H) $(INCLUDE_TOP)/stx/libbasic/Character.$(H) $(INCLUDE_TOP)/stx/libbasic/CharacterArray.$(H) $(INCLUDE_TOP)/stx/libbasic/Class.$(H) $(INCLUDE_TOP)/stx/libbasic/ClassDescription.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/CompiledCode.$(H) $(INCLUDE_TOP)/stx/libbasic/Date.$(H) $(INCLUDE_TOP)/stx/libbasic/Dictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/ExecutableFunction.$(H) $(INCLUDE_TOP)/stx/libbasic/Filename.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Geometric.$(H) $(INCLUDE_TOP)/stx/libbasic/IdentityDictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/Integer.$(H) $(INCLUDE_TOP)/stx/libbasic/Interval.$(H) $(INCLUDE_TOP)/stx/libbasic/KeyedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/LibraryDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/LimitedPrecisionReal.$(H) $(INCLUDE_TOP)/stx/libbasic/Magnitude.$(H) $(INCLUDE_TOP)/stx/libbasic/Method.$(H) $(INCLUDE_TOP)/stx/libbasic/MethodDictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/NameSpace.$(H) $(INCLUDE_TOP)/stx/libbasic/Notification.$(H) $(INCLUDE_TOP)/stx/libbasic/Number.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/OrderedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Point.$(H) $(INCLUDE_TOP)/stx/libbasic/ProgrammingLanguage.$(H) $(INCLUDE_TOP)/stx/libbasic/ProjectDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/Query.$(H) $(INCLUDE_TOP)/stx/libbasic/ReadOnlySequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Rectangle.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Set.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(INCLUDE_TOP)/stx/libbasic/SmallInteger.$(H) $(INCLUDE_TOP)/stx/libbasic/Smalltalk.$(H) $(INCLUDE_TOP)/stx/libbasic/SmalltalkLanguage.$(H) $(INCLUDE_TOP)/stx/libbasic/StandaloneStartup.$(H) $(INCLUDE_TOP)/stx/libbasic/String.$(H) $(INCLUDE_TOP)/stx/libbasic/StringCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Symbol.$(H) $(INCLUDE_TOP)/stx/libbasic/Timestamp.$(H) $(INCLUDE_TOP)/stx/libbasic/UndefinedObject.$(H) $(INCLUDE_TOP)/stx/libbasic/UninterpretedBytes.$(H) $(INCLUDE_TOP)/stx/libbasic/UserNotification.$(H) $(INCLUDE_TOP)/stx/libbasic/UserPreferences.$(H) $(INCLUDE_TOP)/stx/libbasic/Warning.$(H) $(INCLUDE_TOP)/stx/libbasic2/Iterator.$(H) $(INCLUDE_TOP)/stx/libbasic2/RunArray.$(H) $(INCLUDE_TOP)/stx/libbasic2/SocketAddress.$(H) $(INCLUDE_TOP)/stx/libbasic2/Text.$(H) $(INCLUDE_TOP)/stx/libbasic2/UUID.$(H) $(INCLUDE_TOP)/stx/libbasic3/Change.$(H) $(INCLUDE_TOP)/stx/libbasic3/ChangeSet.$(H) $(INCLUDE_TOP)/stx/libbasic3/CompositeChange.$(H) $(INCLUDE_TOP)/stx/libbasic3/ProfileTree.$(H) $(INCLUDE_TOP)/stx/libcomp/AbstractSyntaxHighlighter.$(H) $(INCLUDE_TOP)/stx/libcomp/Breakpoint.$(H) $(INCLUDE_TOP)/stx/libcomp/BreakpointDescription.$(H) $(INCLUDE_TOP)/stx/libcomp/Explainer.$(H) $(INCLUDE_TOP)/stx/libcomp/Parser.$(H) $(INCLUDE_TOP)/stx/libcomp/Scanner.$(H) $(INCLUDE_TOP)/stx/libview/Color.$(H) $(INCLUDE_TOP)/stx/libview/DeviceGraphicsContext.$(H) $(INCLUDE_TOP)/stx/libview/DisplaySurface.$(H) $(INCLUDE_TOP)/stx/libview/Form.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsContext.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsMedium.$(H) $(INCLUDE_TOP)/stx/libview/Image.$(H) $(INCLUDE_TOP)/stx/libview/PopUpView.$(H) $(INCLUDE_TOP)/stx/libview/SimpleView.$(H) $(INCLUDE_TOP)/stx/libview/TopView.$(H) $(INCLUDE_TOP)/stx/libview/View.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(INCLUDE_TOP)/stx/libview2/MultiImage.$(H) $(INCLUDE_TOP)/stx/libwidg/EditTextView.$(H) $(INCLUDE_TOP)/stx/libwidg/GenericToolbarIconLibrary.$(H) $(INCLUDE_TOP)/stx/libwidg/ListView.$(H) $(INCLUDE_TOP)/stx/libwidg/MenuView.$(H) $(INCLUDE_TOP)/stx/libwidg/PopUpMenu.$(H) $(INCLUDE_TOP)/stx/libwidg/SelectionInListView.$(H) $(INCLUDE_TOP)/stx/libwidg/TextView.$(H) $(INCLUDE_TOP)/stx/libwidg2/ListModelView.$(H) $(INCLUDE_TOP)/stx/libwidg2/SelectionInListModelView.$(H) $(STCHDR)
 
 # ENDMAKEDEPEND --- do not remove this line
 
--- a/Make.spec	Tue May 03 06:42:52 2016 +0200
+++ b/Make.spec	Wed May 04 06:51:10 2016 +0200
@@ -234,9 +234,6 @@
 	Tools::HierarchicalPackageFilterList \
 	Tools::InheritanceClassList \
 
-WIN32_CLASSES= \
-	Win32FileDialog \
-
 
 
 
@@ -425,8 +422,5 @@
     $(OUTDIR_SLASH)Tools__InheritanceClassList.$(O) \
     $(OUTDIR_SLASH)extensions.$(O) \
 
-WIN32_OBJS= \
-    $(OUTDIR_SLASH)Win32FileDialog.$(O) \
 
 
-
--- a/SettingsDialog.st	Tue May 03 06:42:52 2016 +0200
+++ b/SettingsDialog.st	Wed May 04 06:51:10 2016 +0200
@@ -1848,7 +1848,7 @@
      go through the widgets and highlight those which match.
      This is done by looking at the helpkey and model aspects for a match"
 
-    |app pattern words widgetsToHighlight|
+    |app pattern widgetsToHighlight|
     
     highlightedWidgetsOriginalAttributes notNil ifTrue:[
         self unhighlightWidgets.
@@ -1858,55 +1858,12 @@
 
     (app := subCanvasApplicationHolder value) isNil ifTrue:[^ self].
 
-    widgetsToHighlight := Set new.
-    words := app quickSearchStrings.
-    
-    (words contains:[:word | pattern match:word caseSensitive:false]) ifTrue:[
-        "/ ok - there is a match in this app;
-        "/ look which widget matches it in its helpKey or label
-        
-        app window withAllSubViewsDo:[:eachView |
-            |wordsInWidget widgetHasIt label helpKey xLatedText helpText|
-
-            wordsInWidget := Set new.
-             
-            (helpKey := eachView helpKey) notNil ifTrue:[
-                wordsInWidget add:helpKey.
-                helpText := app helpTextForKey:helpKey.
-                helpText notNil ifTrue:[
-                    helpText asCollectionOfWordsDo:[:w | wordsInWidget add:w asLowercase].
-                    xLatedText := app resources string:helpText.
-                    (xLatedText notNil and:[xLatedText ~= helpText]) ifTrue:[
-                        xLatedText asCollectionOfWordsDo:[:w | wordsInWidget add:w asLowercase].
-                    ].    
-                ].    
-            ].
-            label := eachView perform:#label ifNotUnderstood:nil.
-            (label notNil and:[label isString]) ifTrue:[
-                label := label string.
-                label asCollectionOfWordsDo:[:w | wordsInWidget add:w asLowercase].
-                xLatedText := app resources string:label.
-                (xLatedText notNil and:[xLatedText ~= label]) ifTrue:[
-                    xLatedText asCollectionOfWordsDo:[:w | wordsInWidget add:w asLowercase].
-                ].    
-            ].
-            
-            widgetHasIt := wordsInWidget contains:[:w | pattern match:w caseSensitive:false ].
-            widgetHasIt ifTrue:[
-                |alreadyIn|
-                
-                "/ check if a superview also has it (frames/framedboxes, etc.)
-                alreadyIn := false.
-                eachView allSuperViewsDo:[:sv | (widgetsToHighlight includes:sv) ifTrue:[ alreadyIn := true]].
-                alreadyIn ifFalse:[ widgetsToHighlight add:eachView ].
-            ].   
-        ].   
-    ].
+    widgetsToHighlight := self widgetsWithMatchingSearchStringIn:app.
     self highlightWidgets:widgetsToHighlight.
 !
 
 quickSearchStringHolderChanged
-    |oldSelection pattern matches|
+    |oldSelection pattern matchingTreeItems|
     
     self unhighlightWidgets.
 
@@ -1928,24 +1885,29 @@
 "/    applicationList root recursiveDo:[:eachSettingsAppItem |
 "/        eachSettingsAppItem expand.
 "/    ]. 
-    matches := OrderedCollection new.
+    matchingTreeItems := OrderedCollection new.
     "/ now search all specs for this word
     applicationList root recursiveDo:[:eachSettingsAppItem |
-        |app words|
+        |appClass app words|
         
-        eachSettingsAppItem applicationClass notNil ifTrue:[
+        (appClass := eachSettingsAppItem applicationClass) notNil ifTrue:[
             (app := eachSettingsAppItem application) isNil ifTrue:[
-                eachSettingsAppItem application:(app := eachSettingsAppItem applicationClass new).
+                eachSettingsAppItem application:(app := appClass new).
             ].    
             words := app quickSearchStrings.
             (words contains:[:word | pattern match:word caseSensitive:false ]) ifTrue:[
-                matches add:eachSettingsAppItem.
+                (app window notNil
+                and:[ (self widgetsWithMatchingSearchStringIn:app) isEmptyOrNil]) ifTrue:[
+                    self breakPoint:#cg.
+                ] ifFalse:[    
+                    matchingTreeItems add:eachSettingsAppItem.
+                ].   
             ].   
         ].
     ]. 
     applicationList root children do:[:c | c recursiveCollapse].
     "/ now expand all matches
-    matches do:[:eachMatchingItem |
+    matchingTreeItems do:[:eachMatchingItem |
         eachMatchingItem label:(eachMatchingItem label string allBold colorizeAllWith:Color red).
         applicationList itemChanged:#redraw with:nil from:eachMatchingItem.
         eachMatchingItem makeVisible
@@ -1970,6 +1932,62 @@
         ].    
         highlightedWidgetsOriginalAttributes := nil.
     ].  
+!
+
+widgetsWithMatchingSearchStringIn:anApplication
+    "helper:
+     go through the widgets and find those which match.
+     This is done by looking at the helpkey and model aspects for a match"
+
+    |pattern words widgetsToHighlight|
+    
+    (pattern := self getWordMatchPattern) isNil ifTrue:[^ self].
+
+    widgetsToHighlight := Set new.
+    words := anApplication quickSearchStrings.
+    
+    (words contains:[:word | pattern match:word caseSensitive:false]) ifTrue:[
+        "/ ok - there is a match in this app;
+        "/ look which widget matches it in its helpKey or label
+        
+        anApplication window withAllSubViewsDo:[:eachView |
+            |wordsInWidget widgetHasIt label helpKey xLatedText helpText|
+
+            wordsInWidget := Set new.
+             
+            (helpKey := eachView helpKey) notNil ifTrue:[
+                wordsInWidget add:helpKey.
+                helpText := anApplication helpTextForKey:helpKey.
+                helpText notNil ifTrue:[
+                    helpText asCollectionOfWordsDo:[:w | wordsInWidget add:w asLowercase].
+                    xLatedText := anApplication resources string:helpText.
+                    (xLatedText notNil and:[xLatedText ~= helpText]) ifTrue:[
+                        xLatedText asCollectionOfWordsDo:[:w | wordsInWidget add:w asLowercase].
+                    ].    
+                ].    
+            ].
+            label := eachView perform:#label ifNotUnderstood:nil.
+            (label notNil and:[label isString]) ifTrue:[
+                label := label string.
+                label asCollectionOfWordsDo:[:w | wordsInWidget add:w asLowercase].
+                xLatedText := anApplication resources string:label.
+                (xLatedText notNil and:[xLatedText ~= label]) ifTrue:[
+                    xLatedText asCollectionOfWordsDo:[:w | wordsInWidget add:w asLowercase].
+                ].    
+            ].
+            
+            widgetHasIt := wordsInWidget contains:[:w | pattern match:w caseSensitive:false ].
+            widgetHasIt ifTrue:[
+                |alreadyIn|
+                
+                "/ check if a superview also has it (frames/framedboxes, etc.)
+                alreadyIn := false.
+                eachView allSuperViewsDo:[:sv | (widgetsToHighlight includes:sv) ifTrue:[ alreadyIn := true]].
+                alreadyIn ifFalse:[ widgetsToHighlight add:eachView ].
+            ].   
+        ].   
+    ].
+    ^ widgetsToHighlight.
 ! !
 
 !SettingsDialog methodsFor:'selection'!
--- a/SmalltalkCodeGeneratorTool.st	Tue May 03 06:42:52 2016 +0200
+++ b/SmalltalkCodeGeneratorTool.st	Wed May 04 06:51:10 2016 +0200
@@ -259,24 +259,24 @@
 !SmalltalkCodeGeneratorTool class methodsFor:'compilation'!
 
 compile:theCode forClass:aClass inCategory:cat
-    "install some code for a class.
+    "install some code for a class. Return the new method or nil.
      If refactory browser stuff is avaliable the refactory tools are used to support undo"
 
-    | parser |
+    | parser selector |
 
     super compile:theCode forClass:aClass inCategory:cat.
+
     parser := Parser parseMethodSpecification: theCode in: aClass ignoreErrors: true ignoreWarnings: true.
-    ^ parser selector notNil ifTrue:[
-        aClass compiledMethodAt: parser selector.
-    ] ifFalse:[ 
-        nil
+    (selector := parser selector notNil) ifTrue:[
+        ^ aClass compiledMethodAt: selector.
     ].
+    ^ nil
 
     "Created: / 05-08-2014 / 16:14:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 compile:theCode forClass:aClass inCategory:cat notifying: requestor
-    "install some code for a class.
+    "install some code for a class. Return the new method or nil.
      If refactory browser stuff is avaliable the refactory tools are used to support undo"
 
     CompilationErrorHandlerQuery 
--- a/SystemBrowser.st	Tue May 03 06:42:52 2016 +0200
+++ b/SystemBrowser.st	Wed May 04 06:51:10 2016 +0200
@@ -2637,25 +2637,27 @@
     "Modified: 18.4.1997 / 10:32:50 / cg"
 !
 
-allCallsOn:aSelectorString in:aCollectionOfClasses ignoreCase:ignoreCase match:doMatch
+allCallsOn:aSelectorString in:aCollectionOfClasses ignoreCase:ignoreCase match:doMatchArg
     "return a collection of methods which send aSelector.
      Methods from classes in aCollectionOfClasses are searched only."
 
-    |sel searchBlock classesSearched|
-
+    |doMatch sel searchBlock classesSearched|
+
+    doMatch := doMatchArg.
+    (doMatch and:[aSelectorString includesMatchCharacters not]) ifTrue:[
+        doMatch := false.
+    ].    
+        
     aSelectorString size == 0 ifTrue:[ ^ #() ].
-    doMatch ifFalse:[
-        ignoreCase ifFalse:[
-            sel := aSelectorString asSymbolIfInterned.
-            sel isNil ifTrue:[
-                ^ #()    "/ none (no such selector)
-            ].
-        ].
+    (doMatch or:[ignoreCase]) ifFalse:[
+        "/ no need to search, if there is no such symbol in the system
+        sel := aSelectorString asSymbolIfInterned.
+        sel isNil ifTrue:[ ^ #() ].   "/ none (no such selector)
     ]. 
 
     classesSearched := aCollectionOfClasses.
-    (doMatch and:[aSelectorString includesMatchCharacters]) ifFalse:[
-        "/ exclude javaClasses, if selector cannot be a valid java-selector
+    doMatch ifFalse:[
+        "/ exclude all javaClasses, if the selector cannot be a valid java-selector
         (aSelectorString includes:$() ifFalse:[
             classesSearched := classesSearched reject:[:eachClass | eachClass theNonMetaclass isJavaClass ].
         ].
@@ -4560,7 +4562,7 @@
     list := IdentitySet new.
     aSelectorMatchString size == 0 ifTrue:[ ^ list ].
 
-    doMatch ifTrue:[
+    (doMatch and:[aSelectorMatchString includesMatchCharacters]) ifTrue:[
         compare := [:sel :search | sel match:search].
     ] ifFalse:[
         compare := [:sel :search | sel = search].
@@ -4601,6 +4603,13 @@
         findImplementorsOf:#+
         in: { Number . Float . SmallInteger }
         ignoreCase: false
+
+     Time millisecondsToRun:[    
+         SystemBrowser 
+            findImplementorsOf:#add:
+            in: (Smalltalk allClasses)
+            ignoreCase: false
+     ]
     "
 
     "Modified (format): / 22-03-2012 / 07:28:50 / cg"
@@ -4608,7 +4617,7 @@
 
 findImplementors:aSelectorMatchString inMethods:aCollectionOfMethods ignoreCase:ignoreCase match:doMatch
     "search for all implementors of aSelector in
-     the classes contained in aCollectionOfClasses and its metaclasses.
+     the classes contained in aCollectionOfClasses and their metaclasses.
      Return a collection of methods"
 
     |list compare testST testJava lcSelector|
@@ -5155,7 +5164,7 @@
      (these operations are executed a zillion times in an inner loop,
       therefore, the speedup is noticable)"
      
-    |doMatch sel lcString quickSearch|
+    |doMatch sel lcString quickSearch idx|
 
     doMatch := doMatchArg.
     (doMatch and:[aSelectorString = '*']) ifTrue:[
@@ -5183,28 +5192,29 @@
         (quickSearch endsWith:'*') ifTrue:[
             quickSearch := quickSearch copyButLast
         ].
-        (quickSearch includes:$:) ifTrue:[
-            quickSearch := quickSearch copyTo:(quickSearch indexOf:$:)-1.
+        
+        "/ for keyword selector searches, only look for the first KW-part in the quicksearch
+        "/ for matches, only look for substrings up to the first match character
+        (idx := quickSearch indexOfAny:'*#[:') ~~ 0 ifTrue:[
+            quickSearch := quickSearch copyTo:idx-1.
         ].
-
+        
         (ignoreCase and:[quickSearch includesMatchCharacters not]) ifTrue:[
             doMatch ifFalse:[
                 ^ [:class :methodArg :s |
-                    |method src inLiterals lcQuickSearch|
-
-                    inLiterals := false.
+                    |method src inLiterals lcQuickSearch skip|
+
+                    inLiterals := skip := false.
                     method := methodArg originalMethodIfWrapped.
                     method isLazyMethod ifTrue:[
                         src := method source.
                         (src notNil and:[src includesString:aSelectorString caseSensitive:false]) ifTrue:[
                             method makeRealMethod.
-                            inLiterals := (method 
-                                            literalsDetect:[:aLiteral|
-                                                (aLiteral isMemberOf:Symbol) 
-                                                and:[(aLiteral sameAs:aSelectorString)]] 
-                                            ifNone:nil) notNil
-                        ]
-                    ] ifFalse:[
+                        ] ifFalse:[
+                            skip := true
+                        ].    
+                    ].
+                    skip ifFalse:[
                         inLiterals := (method 
                                             literalsDetect:[:aLiteral|
                                                 (aLiteral isMemberOf:Symbol) 
@@ -5220,22 +5230,19 @@
             ].
             
             ^ [:class :methodArg :s |
-                |method src inLiterals lcQuickSearch|
-
-                inLiterals := false.
+                |method src inLiterals lcQuickSearch skip|
+
+                inLiterals := skip := false.
                 method := methodArg originalMethodIfWrapped.
                 method isLazyMethod ifTrue:[
                     src := method source.
                     (src notNil and:[src includesString:quickSearch caseSensitive:false]) ifTrue:[
                         method makeRealMethod.
-                        inLiterals := (method 
-                                        literalsDetect:[:aLiteral|
-                                            (aLiteral isMemberOf:Symbol) 
-                                            and:[(aLiteral includesString:quickSearch caseSensitive:false)
-                                            and:[(lcString match:aLiteral caseSensitive:false)]]] 
-                                        ifNone:nil) notNil
-                    ]
-                ] ifFalse:[
+                    ] ifFalse:[
+                        skip := true
+                    ].
+                ].    
+                skip ifFalse:[
                     inLiterals := (method 
                                         literalsDetect:[:aLiteral|
                                             (aLiteral isMemberOf:Symbol) 
@@ -5253,22 +5260,19 @@
         
         (ignoreCase or:[quickSearch includesMatchCharacters]) ifFalse:[
             ^ [:class :methodArg :s |
-                |method src inLiterals|
-
-                inLiterals := false.
+                |method src inLiterals skip|
+
+                inLiterals := skip := false.
                 method := methodArg originalMethodIfWrapped.
                 method isLazyMethod ifTrue:[
                     src := method source.
                     (src notNil and:[src includesString:quickSearch]) ifTrue:[
                         method makeRealMethod.
-                        inLiterals := (method 
-                                        literalsDetect:[:aLiteral|
-                                            (aLiteral isMemberOf:Symbol) 
-                                            and:[(lcString includesString:quickSearch)
-                                            and:[(lcString match:aLiteral)]]] 
-                                        ifNone:nil) notNil
-                    ]
-                ] ifFalse:[
+                    ] ifFalse:[
+                        skip := true
+                    ].    
+                ].    
+                skip ifFalse:[
                     inLiterals := (method 
                                         literalsDetect:[:aLiteral|
                                             (aLiteral isMemberOf:Symbol) 
@@ -5280,23 +5284,20 @@
            ].
         ]. 
         ^ [:class :methodArg :s |
-            |method src inLiterals|
+            |method src inLiterals skip|
 
             method := methodArg originalMethodIfWrapped.
             "/ expensive search
-            inLiterals := false.
+            inLiterals := skip := false.
             method isLazyMethod ifTrue:[
                 src := method source.
                 (src notNil and:[src includesMatchString:aSelectorString]) ifTrue:[
                     method makeRealMethod.
-                    inLiterals := (method 
-                                    literalsDetect:[:aLiteral|
-                                        (aLiteral isMemberOf:Symbol) 
-                                        and:[(ignoreCase and:[lcString match:aLiteral asLowercase])
-                                            or:[ignoreCase not and:[lcString match:aLiteral]]]] 
-                                    ifNone:nil) notNil
-                ]
-            ] ifFalse:[
+                ] ifFalse:[
+                    skip := true.
+                ].
+            ].    
+            skip ifFalse:[
                 inLiterals := (method literalsDetect:[:aLiteral|
                                         (aLiteral isMemberOf:Symbol) 
                                         and:[(ignoreCase and:[lcString match:aLiteral asLowercase])
@@ -5306,7 +5307,9 @@
             inLiterals 
             and:[ 
                 method messagesSent 
-                    contains:[:anySelector | aSelectorString match:anySelector caseSensitive:ignoreCase not] 
+                    contains:[:anySelector | 
+                        aSelectorString match:anySelector caseSensitive:ignoreCase not
+                    ] 
             ]
        ].
     ].
@@ -5318,8 +5321,9 @@
     ].
 
     quickSearch := sel.
-    (quickSearch includes:$:) ifTrue:[
-        quickSearch := quickSearch copyTo:(quickSearch indexOf:$:)-1.
+    "/ for keyword selector searches, only look for the first KW-part in the quicksearch
+    (idx := quickSearch indexOf:$:) ~~ 0 ifTrue:[
+        quickSearch := quickSearch copyTo:idx-1.
     ].
     
     ^ [:class :methodArg :s |
@@ -5852,6 +5856,7 @@
 
     "
      SystemBrowser browseClass:Object selector:#printString
+     Tools::NewSystemBrowser openInClass:Object selector:#printString
     "
 !
 
@@ -5997,6 +6002,17 @@
     "Modified: 24.1.1997 / 19:43:50 / cg"
 !
 
+browseMethod:aMethod
+    "launch a single-method browser."
+
+    ^ self browseMethods:{ aMethod }
+
+    "
+     self browseMethod:(Array compiledMethodAt:#at:)
+     Tools::NewSystemBrowser browseMethod:(Array compiledMethodAt:#at:)
+    "
+!
+
 browseMethodCategory:aCategory
     "launch a browser for all methods where category = aCategory"
 
@@ -6019,9 +6035,19 @@
 browseMethods:aListOfMethods
     "launch a multi-method browser."
 
-    ^ self browseMethods:aListOfMethods title:'some methods'
-
-    "
+    |title|
+    
+    aListOfMethods size == 1 ifTrue:[
+        title := aListOfMethods first whoString
+    ] ifFalse:[
+        title := 'some methods'
+    ].    
+    ^ self browseMethods:aListOfMethods title:title
+
+    "
+     self 
+        browseMethods:(Array with:(Array compiledMethodAt:#at:))
+
      self 
         browseMethods:(Array with:(Array compiledMethodAt:#at:)
                              with:(OrderedCollection compiledMethodAt:#at:))
--- a/Tools__BrowserList.st	Tue May 03 06:42:52 2016 +0200
+++ b/Tools__BrowserList.st	Wed May 04 06:51:10 2016 +0200
@@ -1301,7 +1301,7 @@
 commonPostOpen
     super commonPostOpen.
     listValid ifFalse:[
-        self breakPoint:#cg.
+        "/ self breakPoint:#cg.
         self enqueueDelayedUpdateList.
     ]. 
 !
--- a/Tools__NewSystemBrowser.st	Tue May 03 06:42:52 2016 +0200
+++ b/Tools__NewSystemBrowser.st	Wed May 04 06:51:10 2016 +0200
@@ -1466,7 +1466,7 @@
                    component: 
                   (SpecCollection
                      collection: (
-                      (LabelSpec
+                      (LinkButtonSpec
                          label: 'Info'
                          name: 'InfoLabel'
                          level: -1
@@ -1515,7 +1515,7 @@
                       )
                     
                    )
-                   handles: (Any 0.66000000000000003 1.0)
+                   handles: (Any 0.5 1.0)
                  )
                 (LabelSpec
                    name: 'ModeLabel'
@@ -11671,7 +11671,7 @@
                   translateLabel: true
                 )
                (MenuItem
-                  enabled: hasClassMethodsSelectedHolder
+                  enabled: hasClassMethodsOrMethodsNotReferringToSelfSelectedHolder
                   label: 'To Class with Forwarding...'
                   itemValue: selectorMenuMoveToClassWithForwarding
                   translateLabel: true
@@ -21281,6 +21281,18 @@
     "Created: / 4.2.2000 / 22:02:53 / cg"
 !
 
+hasClassMethodsOrMethodsNotReferringToSelfSelected
+    ^ self hasOnlyMethodsSelectedForWhich:[:eachMethod | 
+        eachMethod mclass isMeta
+        or:[ (self methodRefersToSelfOrInstanceVariable:eachMethod) not ]]
+
+    "Modified: / 28-02-2012 / 16:42:20 / cg"
+!
+
+hasClassMethodsOrMethodsNotReferringToSelfSelectedHolder
+    ^ [ self hasClassMethodsOrMethodsNotReferringToSelfSelected ]
+!
+
 hasClassMethodsSelected
     ^ self hasOnlyMethodsSelectedForWhich:[:eachMethod | eachMethod mclass isMeta]
 
@@ -21928,7 +21940,7 @@
     s := self codeView selectionAsString.
     tree := Parser parseExpression:s onError:[nil].
     tree isNil ifTrue:[^ false].
-    tree isConstant ifFalse:[^ false].
+    tree isLiteral ifFalse:[^ false].
     ^ true
 
     "Created: / 23-07-2011 / 12:28:46 / cg"
@@ -23519,6 +23531,15 @@
     ^ [ self methodRedefinesSuperclassVersion ]
 !
 
+methodRefersToSelfOrInstanceVariable:aMethod
+    |tree|
+    
+    tree := aMethod parseTree.
+    tree isNil ifTrue:[^ true]. "/ actually: don't know.
+    tree halt.
+    ^ false.
+!
+
 selectedClassNameInCodeViewOrNil
     |cls selection|
 
@@ -49532,6 +49553,14 @@
         variables:varType access:accessType all:browseAll
         title:browserTitle in:openHow
 
+    "
+     Tools::NewSystemBrowser new
+        browseVarRefsToAny:#('x')
+        classes:{ Point }
+        variables:#instVarNames access:#write all:true
+        title:'writes to x' in:#newBrowser
+    "    
+        
     "Modified: / 29-08-2013 / 12:24:10 / cg"
 !
 
@@ -54498,7 +54527,7 @@
                     ifNotFound:(asAutoSearch ifTrue:[notFoundBlock] ifFalse:[nil])
             ].
 
-        navigationState autoSearchAction:searchAction.
+        self navigationState autoSearchAction:searchAction.
         self codeView searchAction:searchAction
     ]
 !
@@ -57796,7 +57825,9 @@
 
     |window|
 
-    (window := builder window) isTopView ifTrue:[
+    (builder notNil
+    and:[ (window := builder window) notNil 
+    and:[ window isTopView]]) ifTrue:[
         window
             label:('SystemBrowser - ' , (resources string:what))
     ]
@@ -57839,7 +57870,7 @@
 !
 
 classInheritanceInfo
-    |singleSelectedClass subclasses msg|
+    |singleSelectedClass|
 
     self codeInfoVisible value ifFalse:[^ nil].
 
@@ -57848,13 +57879,7 @@
 
     self organizerMode value == OrganizerCanvas organizerModeHierarchy ifTrue:[^ nil].
 
-    subclasses := singleSelectedClass subclasses.
-    msg := self infoStringForClasses:subclasses withPrefix:'sub'.
-    ^ resources string:('%1: ' , msg)
-                with:singleSelectedClass theNonMetaclass name
-                with:subclasses size
-
-    "Modified: / 27-07-2006 / 10:10:38 / cg"
+    ^ self getClassInheritanceInfoForClass:singleSelectedClass
 !
 
 clearInfo
@@ -58039,7 +58064,10 @@
         node := self findNodeForInterval:interval.
     ].
     node notNil ifTrue: [
-        Error catch:[
+        "/ protect end-users from errors
+        Error handle:[:ex |
+            Smalltalk isSmalltalkDevelopmentSystem ifTrue:[ex reject].
+        ] do:[    
             explanation := Explainer explainNode:node in:code forClass:cls short:short interval:interval
         ]
     ].
@@ -58080,7 +58108,25 @@
     "Modified: / 29-08-2006 / 14:20:14 / cg"
 !
 
+getClassInheritanceInfoForClass:aClass
+    "get some inheritance info about aClass
+     to be shown in the info line at the bottom"
+
+    |subclasses msg|
+
+    subclasses := aClass subclasses.
+    msg := Explainer infoStringForClasses:subclasses withPrefix:'sub'.
+    ^ resources string:('%1: ' , msg)
+                with:aClass theNonMetaclass name
+                with:subclasses size
+
+    "Modified: / 27-07-2006 / 10:10:38 / cg"
+!
+
 getMethodInfo
+    "get something about the current method
+     to be shown in the info line at the bottom"
+
     |msg selectedMethods firstMethod source1 differentSourceButSameSemantic prefix|
 
     self codeInfoVisible value ifFalse:[^ nil].
@@ -58124,6 +58170,9 @@
 !
 
 getMethodInfoForMethod:aMethod
+    "get something about aMethod
+     to be shown in the info line at the bottom"
+
     |msg msg2 method|
 
     method := aMethod.
@@ -58135,17 +58184,17 @@
         ^ 'oops - this method is not attached to any class'.
     ].
 
-    msg := self methodSpecialInfoFor:method.
+    msg := Explainer methodSpecialInfoFor:method.
     msg isNil ifTrue:[
-        msg := self methodInheritanceInfoFor:method.
-        msg2 := self methodRedefinitionInfoFor:method.
+        msg := Explainer methodInheritanceInfoFor:method.
+        msg2 := Explainer methodRedefinitionInfoFor:method.
         msg2 notNil ifTrue:[
              msg := msg isNil
                         ifTrue:[msg2]
                         ifFalse:[msg,'; ',msg2]
         ].
         msg isNil ifTrue:[
-            msg := self methodImplementorsInfoFor:method
+            msg := Explainer methodImplementorsInfoFor:method
         ].
     ].
     msg := (msg ? '').
@@ -58165,146 +58214,6 @@
     ^ msg.
 !
 
-infoStringForClasses:aCollectionOfClasses withPrefix:prefix
-    |nClassNames sortedByName classNames|
-
-    aCollectionOfClasses isEmpty ifTrue:[
-        ^ 'No %1classes' bindWith:prefix.
-    ].
-
-    classNames := aCollectionOfClasses asIdentitySet asOrderedCollection collect:[:each | each theNonMetaclass name].
-
-    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).
-        ].
-    ].
-    ^ '%1 %2classes' bindWith:nClassNames printString allBold with:prefix
-
-    "Modified: / 27-07-2006 / 10:09:02 / cg"
-!
-
-methodImplementorsInfoFor:aMethod
-    |implementors msg senders msg2|
-
-    implementors := SystemBrowser
-        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 ? mthd getMclass].
-            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.
-    senders notEmpty ifTrue:[
-        msg2 := 'Sent from ' , senders size printString, ' methods.'.
-    ] ifFalse:[
-        msg2 := 'No senders.'.
-    ].
-    msg := msg , '/' , msg2
-].
-
-    ^ msg
-!
-
-methodInheritanceInfoFor:aMethod
-    |superclass inheritedClass msg cls sel mthd|
-
-    cls := aMethod mclass.
-    cls isNil ifTrue:[^ nil].
-
-    superclass := cls superclass.
-    superclass isNil ifTrue:[^ nil].
-
-    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 , '.'.
-    ].
-
-    ^ msg
-!
-
-methodRedefinitionInfoFor:aMethod
-    |redefiningClasses msg cls|
-
-    cls := aMethod mclass.
-    cls isNil ifTrue:[^ nil].
-
-    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
-!
-
-methodSpecialInfoFor:aMethod
-    "handles special cases - such as documentation methods"
-
-    |cls sel|
-
-    cls := aMethod mclass.
-    cls isNil ifTrue:[^ nil].
-    sel := aMethod selector.
-    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)'.
-        ].
-    ].
-    ^ nil
-!
-
 nameListEntryForALL
     ^ BrowserList nameListEntryForALL
 !
@@ -58386,6 +58295,9 @@
 !
 
 showMethodInfo
+    "show something about the current method
+     in the info line at the bottom"
+    
     |method metrics complexity msg|
 
     self showInfo:(self getMethodInfo).
--- a/abbrev.stc	Tue May 03 06:42:52 2016 +0200
+++ b/abbrev.stc	Wed May 04 06:51:10 2016 +0200
@@ -100,7 +100,6 @@
 Tools::WebBrowserPage Tools__WebBrowserPage stx:libtool 'Interface-Browsers-Web' 1
 VersionDiffBrowser VersionDiffBrowser stx:libtool 'Interface-Browsers' 1
 ViewWithAcceptAndCancelBar ViewWithAcceptAndCancelBar stx:libtool 'Views-Basic' 2
-Win32FileDialog Win32FileDialog stx:libtool  'unknownCategory'  0
 stx_libtool stx_libtool stx:libtool '* Projects & Packages *' 3
 AbstractDirectoryBrowser AbstractDirectoryBrowser stx:libtool 'Interface-Tools-File' 3
 AbstractFileFinderApplicationComponent AbstractFileFinderApplicationComponent stx:libtool 'Interface-Tools-File' 1
--- a/bc.mak	Tue May 03 06:42:52 2016 +0200
+++ b/bc.mak	Wed May 04 06:51:10 2016 +0200
@@ -38,7 +38,7 @@
 
 
 
-LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libbasic2 -I$(INCLUDE_TOP)\stx\libbasic3 -I$(INCLUDE_TOP)\stx\libcomp -I$(INCLUDE_TOP)\stx\libui -I$(INCLUDE_TOP)\stx\libview -I$(INCLUDE_TOP)\stx\libview2 -I$(INCLUDE_TOP)\stx\libwidg -I$(INCLUDE_TOP)\stx\libwidg2 -I$(INCLUDE_TOP)\stx\libwidg3
+LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libbasic2 -I$(INCLUDE_TOP)\stx\libbasic3 -I$(INCLUDE_TOP)\stx\libcomp -I$(INCLUDE_TOP)\stx\libui -I$(INCLUDE_TOP)\stx\libview -I$(INCLUDE_TOP)\stx\libview2 -I$(INCLUDE_TOP)\stx\libwidg -I$(INCLUDE_TOP)\stx\libwidg2
 LOCALDEFINES=
 
 STCLOCALOPT=-package=$(PACKAGE) -I. $(LOCALINCLUDES) -headerDir=. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES) $(COMMONSYMBOLS) -varPrefix=$(LIBNAME)
@@ -262,8 +262,7 @@
 $(OUTDIR)Tools__HierarchicalChangeList.$(O) Tools__HierarchicalChangeList.$(C) Tools__HierarchicalChangeList.$(H): Tools__HierarchicalChangeList.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__BrowserList.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__BrowserListWithFilter.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__ChangeList.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__NavigatorModel.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(STCHDR)
 $(OUTDIR)Tools__HierarchicalPackageFilterList.$(O) Tools__HierarchicalPackageFilterList.$(C) Tools__HierarchicalPackageFilterList.$(H): Tools__HierarchicalPackageFilterList.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__BrowserList.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__HierarchicalProjectList.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__NavigatorModel.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__ProjectList.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libwidg2\AbstractHierarchicalItem.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItemWithLabel.$(H) $(STCHDR)
 $(OUTDIR)Tools__InheritanceClassList.$(O) Tools__InheritanceClassList.$(C) Tools__InheritanceClassList.$(H): Tools__InheritanceClassList.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__BrowserList.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__ClassList.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__HierarchicalClassList.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__NavigatorModel.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(STCHDR)
-$(OUTDIR)Win32FileDialog.$(O) Win32FileDialog.$(C) Win32FileDialog.$(H): Win32FileDialog.st $(STCHDR)
-$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\stx\libbasic\AbstractTime.$(H) $(INCLUDE_TOP)\stx\libbasic\ArithmeticValue.$(H) $(INCLUDE_TOP)\stx\libbasic\ArrayedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Autoload.$(H) $(INCLUDE_TOP)\stx\libbasic\Bag.$(H) $(INCLUDE_TOP)\stx\libbasic\Behavior.$(H) $(INCLUDE_TOP)\stx\libbasic\Block.$(H) $(INCLUDE_TOP)\stx\libbasic\Boolean.$(H) $(INCLUDE_TOP)\stx\libbasic\ByteArray.$(H) $(INCLUDE_TOP)\stx\libbasic\Character.$(H) $(INCLUDE_TOP)\stx\libbasic\CharacterArray.$(H) $(INCLUDE_TOP)\stx\libbasic\Class.$(H) $(INCLUDE_TOP)\stx\libbasic\ClassDescription.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\CompiledCode.$(H) $(INCLUDE_TOP)\stx\libbasic\Date.$(H) $(INCLUDE_TOP)\stx\libbasic\Dictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\Error.$(H) $(INCLUDE_TOP)\stx\libbasic\Exception.$(H) $(INCLUDE_TOP)\stx\libbasic\ExecutableFunction.$(H) $(INCLUDE_TOP)\stx\libbasic\Filename.$(H) $(INCLUDE_TOP)\stx\libbasic\GenericException.$(H) $(INCLUDE_TOP)\stx\libbasic\Geometric.$(H) $(INCLUDE_TOP)\stx\libbasic\IdentityDictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\Integer.$(H) $(INCLUDE_TOP)\stx\libbasic\Interval.$(H) $(INCLUDE_TOP)\stx\libbasic\KeyedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\LibraryDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\LimitedPrecisionReal.$(H) $(INCLUDE_TOP)\stx\libbasic\Magnitude.$(H) $(INCLUDE_TOP)\stx\libbasic\Method.$(H) $(INCLUDE_TOP)\stx\libbasic\MethodDictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\NameSpace.$(H) $(INCLUDE_TOP)\stx\libbasic\Notification.$(H) $(INCLUDE_TOP)\stx\libbasic\Number.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\OrderedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Point.$(H) $(INCLUDE_TOP)\stx\libbasic\ProgrammingLanguage.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Query.$(H) $(INCLUDE_TOP)\stx\libbasic\ReadOnlySequenceableCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Rectangle.$(H) $(INCLUDE_TOP)\stx\libbasic\SequenceableCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Set.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(INCLUDE_TOP)\stx\libbasic\SmallInteger.$(H) $(INCLUDE_TOP)\stx\libbasic\Smalltalk.$(H) $(INCLUDE_TOP)\stx\libbasic\SmalltalkLanguage.$(H) $(INCLUDE_TOP)\stx\libbasic\StandaloneStartup.$(H) $(INCLUDE_TOP)\stx\libbasic\String.$(H) $(INCLUDE_TOP)\stx\libbasic\StringCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Symbol.$(H) $(INCLUDE_TOP)\stx\libbasic\Timestamp.$(H) $(INCLUDE_TOP)\stx\libbasic\UndefinedObject.$(H) $(INCLUDE_TOP)\stx\libbasic\UninterpretedBytes.$(H) $(INCLUDE_TOP)\stx\libbasic\UserNotification.$(H) $(INCLUDE_TOP)\stx\libbasic\UserPreferences.$(H) $(INCLUDE_TOP)\stx\libbasic\Warning.$(H) $(INCLUDE_TOP)\stx\libbasic2\Iterator.$(H) $(INCLUDE_TOP)\stx\libbasic2\RunArray.$(H) $(INCLUDE_TOP)\stx\libbasic2\SocketAddress.$(H) $(INCLUDE_TOP)\stx\libbasic2\Text.$(H) $(INCLUDE_TOP)\stx\libbasic2\UUID.$(H) $(INCLUDE_TOP)\stx\libbasic3\Change.$(H) $(INCLUDE_TOP)\stx\libbasic3\ChangeSet.$(H) $(INCLUDE_TOP)\stx\libbasic3\CompositeChange.$(H) $(INCLUDE_TOP)\stx\libbasic3\ProfileTree.$(H) $(INCLUDE_TOP)\stx\libcomp\AbstractSyntaxHighlighter.$(H) $(INCLUDE_TOP)\stx\libcomp\Breakpoint.$(H) $(INCLUDE_TOP)\stx\libcomp\BreakpointDescription.$(H) $(INCLUDE_TOP)\stx\libcomp\Parser.$(H) $(INCLUDE_TOP)\stx\libcomp\Scanner.$(H) $(INCLUDE_TOP)\stx\libview\Color.$(H) $(INCLUDE_TOP)\stx\libview\DeviceGraphicsContext.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\Form.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsContext.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\Image.$(H) $(INCLUDE_TOP)\stx\libview\PopUpView.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\TopView.$(H) $(INCLUDE_TOP)\stx\libview\View.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libview2\MultiImage.$(H) $(INCLUDE_TOP)\stx\libwidg\EditTextView.$(H) $(INCLUDE_TOP)\stx\libwidg\GenericToolbarIconLibrary.$(H) $(INCLUDE_TOP)\stx\libwidg\ListView.$(H) $(INCLUDE_TOP)\stx\libwidg\MenuView.$(H) $(INCLUDE_TOP)\stx\libwidg\PopUpMenu.$(H) $(INCLUDE_TOP)\stx\libwidg\SelectionInListView.$(H) $(INCLUDE_TOP)\stx\libwidg\TextView.$(H) $(INCLUDE_TOP)\stx\libwidg2\ListModelView.$(H) $(INCLUDE_TOP)\stx\libwidg2\SelectionInListModelView.$(H) $(STCHDR)
+$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\stx\libbasic\AbstractTime.$(H) $(INCLUDE_TOP)\stx\libbasic\ArithmeticValue.$(H) $(INCLUDE_TOP)\stx\libbasic\ArrayedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Autoload.$(H) $(INCLUDE_TOP)\stx\libbasic\Bag.$(H) $(INCLUDE_TOP)\stx\libbasic\Behavior.$(H) $(INCLUDE_TOP)\stx\libbasic\Block.$(H) $(INCLUDE_TOP)\stx\libbasic\Boolean.$(H) $(INCLUDE_TOP)\stx\libbasic\ByteArray.$(H) $(INCLUDE_TOP)\stx\libbasic\Character.$(H) $(INCLUDE_TOP)\stx\libbasic\CharacterArray.$(H) $(INCLUDE_TOP)\stx\libbasic\Class.$(H) $(INCLUDE_TOP)\stx\libbasic\ClassDescription.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\CompiledCode.$(H) $(INCLUDE_TOP)\stx\libbasic\Date.$(H) $(INCLUDE_TOP)\stx\libbasic\Dictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\Error.$(H) $(INCLUDE_TOP)\stx\libbasic\Exception.$(H) $(INCLUDE_TOP)\stx\libbasic\ExecutableFunction.$(H) $(INCLUDE_TOP)\stx\libbasic\Filename.$(H) $(INCLUDE_TOP)\stx\libbasic\GenericException.$(H) $(INCLUDE_TOP)\stx\libbasic\Geometric.$(H) $(INCLUDE_TOP)\stx\libbasic\IdentityDictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\Integer.$(H) $(INCLUDE_TOP)\stx\libbasic\Interval.$(H) $(INCLUDE_TOP)\stx\libbasic\KeyedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\LibraryDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\LimitedPrecisionReal.$(H) $(INCLUDE_TOP)\stx\libbasic\Magnitude.$(H) $(INCLUDE_TOP)\stx\libbasic\Method.$(H) $(INCLUDE_TOP)\stx\libbasic\MethodDictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\NameSpace.$(H) $(INCLUDE_TOP)\stx\libbasic\Notification.$(H) $(INCLUDE_TOP)\stx\libbasic\Number.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\OrderedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Point.$(H) $(INCLUDE_TOP)\stx\libbasic\ProgrammingLanguage.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Query.$(H) $(INCLUDE_TOP)\stx\libbasic\ReadOnlySequenceableCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Rectangle.$(H) $(INCLUDE_TOP)\stx\libbasic\SequenceableCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Set.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(INCLUDE_TOP)\stx\libbasic\SmallInteger.$(H) $(INCLUDE_TOP)\stx\libbasic\Smalltalk.$(H) $(INCLUDE_TOP)\stx\libbasic\SmalltalkLanguage.$(H) $(INCLUDE_TOP)\stx\libbasic\StandaloneStartup.$(H) $(INCLUDE_TOP)\stx\libbasic\String.$(H) $(INCLUDE_TOP)\stx\libbasic\StringCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Symbol.$(H) $(INCLUDE_TOP)\stx\libbasic\Timestamp.$(H) $(INCLUDE_TOP)\stx\libbasic\UndefinedObject.$(H) $(INCLUDE_TOP)\stx\libbasic\UninterpretedBytes.$(H) $(INCLUDE_TOP)\stx\libbasic\UserNotification.$(H) $(INCLUDE_TOP)\stx\libbasic\UserPreferences.$(H) $(INCLUDE_TOP)\stx\libbasic\Warning.$(H) $(INCLUDE_TOP)\stx\libbasic2\Iterator.$(H) $(INCLUDE_TOP)\stx\libbasic2\RunArray.$(H) $(INCLUDE_TOP)\stx\libbasic2\SocketAddress.$(H) $(INCLUDE_TOP)\stx\libbasic2\Text.$(H) $(INCLUDE_TOP)\stx\libbasic2\UUID.$(H) $(INCLUDE_TOP)\stx\libbasic3\Change.$(H) $(INCLUDE_TOP)\stx\libbasic3\ChangeSet.$(H) $(INCLUDE_TOP)\stx\libbasic3\CompositeChange.$(H) $(INCLUDE_TOP)\stx\libbasic3\ProfileTree.$(H) $(INCLUDE_TOP)\stx\libcomp\AbstractSyntaxHighlighter.$(H) $(INCLUDE_TOP)\stx\libcomp\Breakpoint.$(H) $(INCLUDE_TOP)\stx\libcomp\BreakpointDescription.$(H) $(INCLUDE_TOP)\stx\libcomp\Explainer.$(H) $(INCLUDE_TOP)\stx\libcomp\Parser.$(H) $(INCLUDE_TOP)\stx\libcomp\Scanner.$(H) $(INCLUDE_TOP)\stx\libview\Color.$(H) $(INCLUDE_TOP)\stx\libview\DeviceGraphicsContext.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\Form.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsContext.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\Image.$(H) $(INCLUDE_TOP)\stx\libview\PopUpView.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\TopView.$(H) $(INCLUDE_TOP)\stx\libview\View.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libview2\MultiImage.$(H) $(INCLUDE_TOP)\stx\libwidg\EditTextView.$(H) $(INCLUDE_TOP)\stx\libwidg\GenericToolbarIconLibrary.$(H) $(INCLUDE_TOP)\stx\libwidg\ListView.$(H) $(INCLUDE_TOP)\stx\libwidg\MenuView.$(H) $(INCLUDE_TOP)\stx\libwidg\PopUpMenu.$(H) $(INCLUDE_TOP)\stx\libwidg\SelectionInListView.$(H) $(INCLUDE_TOP)\stx\libwidg\TextView.$(H) $(INCLUDE_TOP)\stx\libwidg2\ListModelView.$(H) $(INCLUDE_TOP)\stx\libwidg2\SelectionInListModelView.$(H) $(STCHDR)
 
 # ENDMAKEDEPEND --- do not remove this line
 
--- a/bmake.bat	Tue May 03 06:42:52 2016 +0200
+++ b/bmake.bat	Wed May 04 06:51:10 2016 +0200
@@ -11,3 +11,5 @@
 make.exe -N -f bc.mak  %DEFINES% %*
 
 
+
+
--- a/extensions.st	Tue May 03 06:42:52 2016 +0200
+++ b/extensions.st	Wed May 04 06:51:10 2016 +0200
@@ -872,6 +872,169 @@
     ^ self printStringForBrowserWithSelector:selector inClass:nil
 ! !
 
+!Explainer class methodsFor:'utilities'!
+
+infoStringForClasses:aCollectionOfClasses withPrefix:prefix
+    "get a nice user readable list for some classes.
+     Up to 4 are named, otherwise the count is presented.
+     The prefix can be sth like ' other', ' sub', ' super',
+     ' implementing' etc. Or it can be an empty string.
+     To be shown in the info line at the bottom."
+
+    |nClassNames sortedByName classNames|
+
+    aCollectionOfClasses isEmpty ifTrue:[
+        ^ 'No %1classes' bindWith:prefix.
+    ].
+
+    classNames := aCollectionOfClasses asIdentitySet asOrderedCollection collect:[:each | each theNonMetaclass name].
+
+    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).
+        ].
+    ].
+    ^ '%1 %2classes' bindWith:nClassNames printString allBold with:prefix
+
+    "Modified: / 27-07-2006 / 10:09:02 / cg"
+! !
+
+!Explainer class methodsFor:'utilities'!
+
+methodImplementorsInfoFor:aMethod
+    "get something about the implementors of aMethod
+     to be shown in the info line at the bottom"
+
+    |implementors msg senders msg2|
+
+    implementors := SystemBrowser
+        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 ? mthd getMclass].
+            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.
+    senders notEmpty ifTrue:[
+        msg2 := 'Sent from ' , senders size printString, ' methods.'.
+    ] ifFalse:[
+        msg2 := 'No senders.'.
+    ].
+    msg := msg , '/' , msg2
+].
+
+    ^ msg
+! !
+
+!Explainer class methodsFor:'utilities'!
+
+methodInheritanceInfoFor:aMethod
+    |methodsSuperclass inheritedClass msg methodsClass sel mthd|
+
+    methodsClass := aMethod mclass.
+    methodsClass isNil ifTrue:[^ nil].
+
+    methodsSuperclass := methodsClass superclass.
+    methodsSuperclass isNil ifTrue:[^ nil].
+
+    sel := aMethod selector.
+    inheritedClass := methodsSuperclass 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 , '.'.
+    ].
+
+    ^ msg
+! !
+
+!Explainer class methodsFor:'utilities'!
+
+methodRedefinitionInfoFor:aMethod
+    "return a user readable string telling in how many subclasses
+     a method is redefined.
+     To be shown in the info line of a browser"
+     
+    |redefiningClasses msg cls|
+
+    cls := aMethod mclass.
+    cls isNil ifTrue:[^ nil].
+
+    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
+! !
+
+!Explainer class methodsFor:'utilities'!
+
+methodSpecialInfoFor:aMethod
+    "handles special cases - such as documentation methods"
+
+    |cls sel|
+
+    cls := aMethod mclass.
+    cls isNil ifTrue:[^ nil].
+    sel := aMethod selector.
+    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)'.
+        ].
+    ].
+    ^ nil
+! !
+
 !Filename methodsFor:'debugging'!
 
 inspector2TabContentsView
--- a/libInit.cc	Tue May 03 06:42:52 2016 +0200
+++ b/libInit.cc	Wed May 04 06:51:10 2016 +0200
@@ -198,9 +198,6 @@
 extern void _Tools__HierarchicalChangeList_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
 extern void _Tools__HierarchicalPackageFilterList_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
 extern void _Tools__InheritanceClassList_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
-#ifdef WIN32
-extern void _Win32FileDialog_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
-#endif /* WIN32 */
 
 
 void _libstx_libtool_InitDefinition(int pass, struct __vmData__ *__pRT__, OBJ snd)
@@ -396,9 +393,6 @@
     _Tools__HierarchicalChangeList_Init(pass,__pRT__,snd);
     _Tools__HierarchicalPackageFilterList_Init(pass,__pRT__,snd);
     _Tools__InheritanceClassList_Init(pass,__pRT__,snd);
-#ifdef WIN32
-    _Win32FileDialog_Init(pass,__pRT__,snd);
-#endif /* WIN32 */
 
     _stx_137libtool_extensions_Init(pass,__pRT__,snd);
   __END_PACKAGE__();
--- a/libtool.rc	Tue May 03 06:42:52 2016 +0200
+++ b/libtool.rc	Wed May 04 06:51:10 2016 +0200
@@ -25,7 +25,7 @@
       VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2012\nCopyright eXept Software AG 2012\0"
       VALUE "ProductName", "Smalltalk/X\0"
       VALUE "ProductVersion", "6.2.5.0\0"
-      VALUE "ProductDate", "Fri, 08 Apr 2016 10:17:42 GMT\0"
+      VALUE "ProductDate", "Tue, 03 May 2016 18:40:26 GMT\0"
     END
 
   END
--- a/mingwmake.bat	Tue May 03 06:42:52 2016 +0200
+++ b/mingwmake.bat	Wed May 04 06:51:10 2016 +0200
@@ -14,3 +14,5 @@
 make.exe -N -f bc.mak %DEFINES% %USEMINGW_ARG% %*
 
 
+
+
--- a/resources/de.rs	Tue May 03 06:42:52 2016 +0200
+++ b/resources/de.rs	Wed May 04 06:51:10 2016 +0200
@@ -622,8 +622,8 @@
 'Close this Tab'                                                                                        'Diese Seite entfernen'
 'Close this tab'                                                                                        'Diesen Tab schliessen'
 'Code'                                                                                                  'Quelltext'
-'Code Completion as you Type (experimental)'                                                            'Code Completion während der Eingabe (experimentell)'
-'Code Completion on CTRL Key (experimental)'                                                            'Code Completion mit CTRL-Taste (experimentell)'
+'Code Completion as you Type'                                                            'Code Completion während der Eingabe'
+'Code Completion on CTRL Key'                                                            'Code Completion mit CTRL-Taste'
 'Code Duplication'                                                                                      'Code-Duplikation'
 'Code Search'                                                                                           'Quellcode suchen'
 'Code to Search'                                                                                        'Zu suchender Quellcode'
@@ -1032,7 +1032,7 @@
 'File'                                                                                                  'Datei'
 'File Applications'                                                                                     'Datei-Editoren'
 'File Browser'                                                                                          'Dateibrowser'
-'File Browser V2'                                                                                       'DateiBrowser V2'
+'File Browser v2'                                                                                       'DateiBrowser v2'
 'File Browser on Page Source'                                                                           'Dateibrowser auf Quelltext'
 'File Differences'                                                                                      'Unterschiede zwischen Dateien'
 'File History'                                                                                          'Historie besuchter Dateien'
@@ -1721,7 +1721,7 @@
 'Old SystemBrowser on Class'                                                                            'Alter Systembrowser für die Klasse'
 'OldStyle Assignment'                                                                                   'Alte Zuweisungs-Syntax'
 'Oldspace Increment'                                                                                    'Inkrement im ''Oldspace'''
-'On TAB Key (experimental)'                                                                             'Mit TAB-Taste (experimentell)'
+'On TAB Key'                                                                                            'Mit TAB-Taste'
 'Only Show Tooltips for Active Window'                                                                  'Tooltips nur für aktive Fenster zeigen'
 'Only show Java Classes'                                                                                'Nur Java-Klassen anzeigen'
 'Only the selected method(s) found.\Browse anyway'                                                      'Nur die bereits ausgewählte(n) Methode(n) gefunden.\Dennoch browsen'
@@ -2666,8 +2666,7 @@
 'Use the New ChangeSet Browser for Internal ChangeSets'                                                 'Verwende den neuen Änderungsbrowser für interne ChangeSets'
 'Use the New Changes Browser (not yet recommended)'                                                     'Verwende den neuen Änderungsbrowser (noch nicht empfohlen)'
 'Use the New Changes Browser for Changefiles (not yet recommended)'                                     'Verwende den neuen Änderungsbrowser für Dateien mit Changes (noch nicht empfohlen)'
-'Use the New Code Editor 2 (experimental)'                                                              'Verwende den neuen Code Editor 2 (experimentell)'
-'Use the New Code Editor2 (experimental)'                                                               'Verbesserten Codeeditor verwenden (experimentell)'
+'Use the New Code Editor (v2)'                                                                             'Verbesserten Codeeditor (v2) verwenden'
 'Use the New File Browser'                                                                              'Verwende den neuen Dateibrowser'
 'Use the New FileTree File Dialog'                                                                      'Verwende den neuen Dateidialog'
 'Use the New Process Monitor'                                                                           'Verwende den neuen Prozessmonitor'
--- a/stx_libtool.st	Tue May 03 06:42:52 2016 +0200
+++ b/stx_libtool.st	Wed May 04 06:51:10 2016 +0200
@@ -134,7 +134,7 @@
         #'stx:libcomp'    "AbstractSyntaxHighlighter - extended"
         #'stx:libui'    "ComponentSpec - superclass of EditFieldWithCompletionSpec"
         #'stx:libview'    "AbstractBackground - superclass of DiffTextView::DiffTextScrollerBackground"
-        #'stx:libview2'    "ApplicationModel - superclass of AbstractDirectoryBrowser"
+        #'stx:libview2'    "ApplicationModel - extended"
         #'stx:libwidg'    "Button - superclass of ViewWithAcceptAndCancelBar::AcceptAndCancelBar::ButtonWithHelpText"
         #'stx:libwidg2'    "AbstractHierarchicalItem - superclass of Bookmark"
     )
@@ -151,7 +151,6 @@
      by searching all classes (and their packages) which are referenced by my classes."
 
     ^ #(
-        #'stx:libwidg3'    "ClockView - referenced by WorkspaceApplication>>addStopWatch"
     )
 !
 
@@ -290,7 +289,6 @@
         #'Tools::WebBrowserPage'
         VersionDiffBrowser
         ViewWithAcceptAndCancelBar
-        (Win32FileDialog win32)
         #'stx_libtool'
         AbstractDirectoryBrowser
         AbstractFileFinderApplicationComponent
@@ -581,6 +579,11 @@
         'Collection class' iconInBrowserSymbol
         'Date class' iconInBrowserSymbol
         'Error class' iconInBrowserSymbol
+        'Explainer class' infoStringForClasses:withPrefix:
+        'Explainer class' methodImplementorsInfoFor:
+        'Explainer class' methodInheritanceInfoFor:
+        'Explainer class' methodRedefinitionInfoFor:
+        'Explainer class' methodSpecialInfoFor:
         'GenericException class' iconInBrowserSymbol
         'GenericToolbarIconLibrary class' bookmarks22x22
         'GenericToolbarIconLibrary class' bug16x16Icon
--- a/vcmake.bat	Tue May 03 06:42:52 2016 +0200
+++ b/vcmake.bat	Wed May 04 06:51:10 2016 +0200
@@ -19,3 +19,4 @@
 
 
 
+