branch jv-experiments merged back jv
authorJan Vrany <jan.vrany@fit.cvut.cz>
Wed, 22 Feb 2012 09:55:48 +0000
branchjv
changeset 12170 6c9c4b7981ee
parent 12169 204eab407538
child 12171 09f6735e294b
branch jv-experiments merged back
Make.proto
Make.spec
ParseTreeIndex.st
SettingsDialog.st
SyntaxHighlighter2.st
Tools__BrowserList.st
Tools__ClassCategoryList.st
Tools__ClassChecker.st
Tools__ClassGeneratorList.st
Tools__ClassList.st
Tools__CodeHighlightingService.st
Tools__CodeNavigationService.st
Tools__CodeView2.st
Tools__FullMethodCategoryList.st
Tools__HierarchicalClassCategoryList.st
Tools__HierarchicalClassList.st
Tools__HierarchicalLintRuleList.st
Tools__HierarchicalPackageFilterList.st
Tools__HierarchicalProjectList.st
Tools__ImplementingClassList.st
Tools__ImplementingMethodList.st
Tools__InheritanceClassList.st
Tools__Inspector2.st
Tools__LintHighlighter.st
Tools__LintRuleList.st
Tools__MethodCategoryList.st
Tools__MethodList.st
Tools__NamespaceFilter.st
Tools__NamespaceList.st
Tools__NavigationState.st
Tools__NavigatorCanvas.st
Tools__NavigatorModel.st
Tools__NewSystemBrowser.st
Tools__OrganizerCanvas.st
Tools__ProjectList.st
Tools__SearchDialog.st
Tools__SpecialCodeView.st
Tools__TestRunner2.st
Tools__VariableList.st
WorkspaceApplication.st
abbrev.stc
bc.mak
libInit.cc
libtool.rc
smallsense/Make.proto
smallsense/Make.spec
smallsense/SmallSenseChecker.st
smallsense/SmallSenseCompletionWindow.st
smallsense/SmallSenseCriticsWindow.st
smallsense/SmallSenseParseNodeInspector.st
smallsense/SmallSenseQuickFixer.st
smallsense/SmallSenseService.st
smallsense/SmallSenseUnacceptedMethodEnvironment.st
smallsense/bc.mak
smallsense/smallsense.rc
smallsense/stx_libtool_smallsense.st
stx_libtool.st
--- a/Make.proto	Fri Feb 17 01:48:18 2012 +0000
+++ b/Make.proto	Wed Feb 22 09:55:48 2012 +0000
@@ -296,3 +296,5 @@
 
 # ENDMAKEDEPEND --- do not remove this line
 
+
+
--- a/Make.spec	Fri Feb 17 01:48:18 2012 +0000
+++ b/Make.spec	Wed Feb 22 09:55:48 2012 +0000
@@ -379,3 +379,5 @@
 
 
 
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ParseTreeIndex.st	Wed Feb 22 09:55:48 2012 +0000
@@ -0,0 +1,278 @@
+"
+ COPYRIGHT (c) 2006 by eXept Software AG
+              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
+ inclusion of the above copyright notice.   This software may not
+ be provided or otherwise made available to, or used by, any
+ other person.  No title to or ownership of the software is
+ hereby transferred.
+"
+"{ Package: 'stx:libtool' }"
+
+SortedCollection subclass:#ParseTreeIndex
+	instanceVariableNames:'tree'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Interface-CodeView-Syntax'
+!
+
+Magnitude subclass:#Element
+	instanceVariableNames:'next prev node'
+	classVariableNames:''
+	poolDictionaries:''
+	privateIn:ParseTreeIndex
+!
+
+!ParseTreeIndex class methodsFor:'documentation'!
+
+copyright
+"
+ COPYRIGHT (c) 2006 by eXept Software AG
+              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
+ inclusion of the above copyright notice.   This software may not
+ be provided or otherwise made available to, or used by, any
+ other person.  No title to or ownership of the software is
+ hereby transferred.
+"
+!
+
+documentation
+"
+    For given parse tree, a ParseTreeIndex provides an
+    fast access to individual (leave) nodes by keeping
+    an index. Used by CodeView2 for various queries
+
+    Experimental
+
+    [author:]
+        Jan Vrany <jan.vrany@fit.cvut.cz>
+
+    [instance variables:]
+
+    [class variables:]
+
+    [see also:]
+
+"
+! !
+
+!ParseTreeIndex methodsFor:'accessing'!
+
+tree
+    ^ tree
+!
+
+tree:aParseNode
+    tree := aParseNode.
+! !
+
+!ParseTreeIndex methodsFor:'utilities'!
+
+newElementFor: aParseNode
+
+    ^(Element new node: aParseNode)
+
+    "Created: / 16-02-2012 / 21:00:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!ParseTreeIndex::Element class methodsFor:'documentation'!
+
+copyright
+"
+ COPYRIGHT (c) 2010 by Jan Vrany, SWING Research Group. CTU in Prague
+              All Rights Reserved
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the 'Software'), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+"
+! !
+
+!ParseTreeIndex::Element methodsFor:'accessing'!
+
+firstElementInChain
+    |first prev|
+
+    first := self.
+    [ (prev := first previousElement) notNil ] whileTrue:[
+        first := prev.
+    ].
+    ^ first
+
+    "Created: / 21-08-2011 / 09:51:35 / cg"
+!
+
+next
+    ^ next
+!
+
+next:aSyntaxElement
+    next := aSyntaxElement.
+    next prev: self.
+
+    "Modified: / 14-02-2010 / 17:44:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+nextElement
+    ^ next
+
+    "Created: / 21-08-2011 / 09:47:11 / cg"
+!
+
+nextElement:aSyntaxElement
+    next := aSyntaxElement.
+    next prev: self.
+
+    "Modified: / 14-02-2010 / 17:44:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Created: / 21-08-2011 / 09:47:15 / cg"
+!
+
+node
+    ^ node
+!
+
+node:something
+    node := something.
+!
+
+prev
+    ^ prev
+!
+
+prev:aSyntaxElement
+    prev := aSyntaxElement.
+!
+
+previousElement
+    ^ prev
+
+    "Created: / 21-08-2011 / 09:47:23 / cg"
+!
+
+previousElement:aSyntaxElement
+    prev := aSyntaxElement.
+
+    "Created: / 21-08-2011 / 09:47:28 / cg"
+!
+
+start
+    ^ node startPosition
+
+    "Modified: / 16-02-2012 / 20:56:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+stop
+    ^ node endPosition
+
+    "Modified: / 16-02-2012 / 20:56:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!ParseTreeIndex::Element methodsFor:'comparing'!
+
+< anObject
+
+    anObject isNumber ifTrue:[^self stop < anObject].
+    anObject class == self class ifFalse:[^false].
+
+    ^self stop < anObject start
+
+    "Created: / 14-02-2010 / 13:39:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+= anObject
+
+    anObject class == self class ifFalse:[^false].
+
+    ^self start == (anObject start) and:
+        [self stop == (anObject stop) and:
+            [self node class == (anObject node class)]].
+
+    "Created: / 14-02-2010 / 13:33:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+hash
+
+    ^self start hash bitXor:[self stop hash bitXor:[node class hash]].
+
+    "Created: / 14-02-2010 / 13:30:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!ParseTreeIndex::Element methodsFor:'double dispatching'!
+
+lessFromInteger:anInteger
+
+    ^self stop < anInteger
+
+    "Created: / 14-02-2010 / 13:49:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!ParseTreeIndex::Element methodsFor:'printing & storing'!
+
+printOn:aStream
+    "append a printed representation if the receiver to the argument, aStream"
+
+    super printOn:aStream.
+    aStream nextPutAll:'('.
+    node class name printOn: aStream.
+    aStream nextPut:$).
+
+    "Modified: / 21-08-2011 / 09:33:51 / cg"
+    "Modified: / 16-02-2012 / 19:23:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!ParseTreeIndex::Element methodsFor:'queries'!
+
+isSelector
+    ^ node class == SelectorNode
+
+    "Created: / 21-08-2011 / 09:09:19 / cg"
+    "Modified: / 16-02-2012 / 21:04:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isSelf
+    ^ node isSelf
+
+    "Created: / 21-08-2011 / 09:31:20 / cg"
+    "Modified: / 16-02-2012 / 19:25:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isVariable
+    ^ node isVariable
+
+    "Created: / 21-08-2011 / 09:09:00 / cg"
+    "Modified: / 16-02-2012 / 19:24:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isVariableOrSelf
+    ^ self isVariable or:[self isSelf]
+
+    "Created: / 21-08-2011 / 09:31:33 / cg"
+! !
+
+!ParseTreeIndex class methodsFor:'documentation'!
+
+version_SVN
+    ^ '$Id: ParseTreeIndex.st 7911 2012-02-22 09:55:48Z vranyj1 $'
+! !
--- a/SettingsDialog.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/SettingsDialog.st	Wed Feb 22 09:55:48 2012 +0000
@@ -1307,6 +1307,9 @@
     ].
 
     item := self selectedItem value.
+
+    item isNil ifTrue:[ item := applicationList root ].
+
     lastSelection := item.
     noApp := (item isNil) ifTrue:true ifFalse:[item isCategory].
     self enableOK value:(noApp not).
@@ -1367,6 +1370,7 @@
     self modifiedChanged.
 
     "Modified: / 29-10-2010 / 11:51:13 / cg"
+    "Modified: / 17-02-2012 / 10:24:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 update:something with:aParameter from:changedObject
@@ -1637,6 +1641,13 @@
               translateLabel: true
               model: openSettingsFile
             )
+           (ActionButtonSpec
+              label: 'Reload'
+              name: 'Button2'
+              layout: (LayoutFrame -230 1 60 0.5 -130 1 85 0.5)
+              translateLabel: true
+              model: reloadSettingsFile
+            )
            )
          
         )
@@ -1678,6 +1689,24 @@
         openOnFileNamed:filename editing:true
 
     "Created: / 07-02-2012 / 01:08:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+reloadSettingsFile
+    | filename |
+
+    filename := UserPreferences current 
+                    at:#settingsFilename      
+                    ifAbsent:[UserPreferences defaultUserSettingsFile pathName].
+    self reloadSettingsFile: filename
+
+    "Created: / 17-02-2012 / 10:26:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+reloadSettingsFile: filename 
+
+    filename asFilename fileIn.
+
+    "Created: / 17-02-2012 / 10:27:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !SettingsDialog::SettingsFilenameAppl methodsFor:'protocol'!
@@ -1705,7 +1734,7 @@
 !SettingsDialog class methodsFor:'documentation'!
 
 version
-    ^ '$Id: SettingsDialog.st 7892 2012-02-14 20:24:28Z vranyj1 $'
+    ^ '$Id: SettingsDialog.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 !
 
 version_CVS
@@ -1713,7 +1742,8 @@
 !
 
 version_SVN
-    ^ '$Id: SettingsDialog.st 7892 2012-02-14 20:24:28Z vranyj1 $'
+    ^ '$Id: SettingsDialog.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
 
 SettingsDialog initialize!
+
--- a/SyntaxHighlighter2.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/SyntaxHighlighter2.st	Wed Feb 22 09:55:48 2012 +0000
@@ -719,9 +719,11 @@
 !SyntaxHighlighter2 class methodsFor:'documentation'!
 
 version_CVS
-    ^ '§Header: /cvs/stx/stx/libtool/SyntaxHighlighter2.st,v 1.8 2012/01/19 09:48:54 cg Exp §'
+    ^ 'Header: /cvs/stx/stx/libtool/SyntaxHighlighter2.st,v 1.8 2012/01/19 09:48:54 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: SyntaxHighlighter2.st 7901 2012-02-17 00:57:16Z vranyj1 $'
+    ^ '$Id: SyntaxHighlighter2.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
+
+
--- a/Tools__BrowserList.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__BrowserList.st	Wed Feb 22 09:55:48 2012 +0000
@@ -20,7 +20,9 @@
 		showClassPackages selectionHolder packageFilter nameSpaceFilter
 		organizerMode slaveMode listValid pseudoListLabelHolder icons
 		sortBy autoSelect showAllClassesInNameSpaceOrganisation
-		nameFilter showCoverageInformation searchHandler'
+		nameFilter showCoverageInformation searchHandler
+		lastUpdateFromSmalltalkTimestamp
+		numUpdatesFromSmalltalkInLast200Msecs'
 	classVariableNames:'SynchronousUpdate Icons'
 	poolDictionaries:''
 	category:'Interface-Browsers-New'
@@ -1079,6 +1081,14 @@
 
 !BrowserList methodsFor:'initialize-release'!
 
+initialize
+    super initialize.
+    lastUpdateFromSmalltalkTimestamp := 0.
+    numUpdatesFromSmalltalkInLast200Msecs := 0
+
+    "Created: / 18-02-2012 / 21:54:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 release
     self makeIndependent.
     super release.
@@ -1767,10 +1777,10 @@
 !BrowserList class methodsFor:'documentation'!
 
 version_CVS
-    ^ 'Header: /cvs/stx/stx/libtool/Tools_BrowserList.st,v 1.40 2012/02/13 13:45:31 cg Exp '
+    ^ '§Header: /cvs/stx/stx/libtool/Tools_BrowserList.st,v 1.40 2012/02/13 13:45:31 cg Exp §'
 !
 
 version_SVN
-    ^ '$Id: Tools__BrowserList.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__BrowserList.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
 
--- a/Tools__ClassCategoryList.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__ClassCategoryList.st	Wed Feb 22 09:55:48 2012 +0000
@@ -411,9 +411,20 @@
 !
 
 update:something with:aParameter from:changedObject
-    |categoryOfClass|
+    |categoryOfClass ts |
 
     changedObject == Smalltalk ifTrue:[
+        "JV2012-02-17: Suppress updates if they're comming too fast
+         (such as when booting Java or so)"
+        ts := OperatingSystem getMillisecondTime.
+        (ts - (lastUpdateFromSmalltalkTimestamp ? 0)) < 200"half a second, maybe too high" ifTrue:[
+            lastUpdateFromSmalltalkTimestamp := ts.
+            numUpdatesFromSmalltalkInLast200Msecs := numUpdatesFromSmalltalkInLast200Msecs + 1.
+            numUpdatesFromSmalltalkInLast200Msecs < 15 ifTrue:[ ^ self ].
+        ].
+        lastUpdateFromSmalltalkTimestamp := ts.
+
+
         (something == #methodInClass 
         or:[ something == #classComment
         or:[ something == #methodDictionary
@@ -442,6 +453,7 @@
     super update:something with:aParameter from:changedObject
 
     "Modified: / 20-07-2011 / 18:50:04 / cg"
+    "Modified: / 18-02-2012 / 21:56:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !ClassCategoryList methodsFor:'drag & drop'!
@@ -903,7 +915,7 @@
 !ClassCategoryList class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Tools__ClassCategoryList.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__ClassCategoryList.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 !
 
 version_CVS
@@ -911,5 +923,6 @@
 !
 
 version_SVN
-    ^ '$Id: Tools__ClassCategoryList.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__ClassCategoryList.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
+
--- a/Tools__ClassChecker.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__ClassChecker.st	Wed Feb 22 09:55:48 2012 +0000
@@ -916,7 +916,7 @@
 !ClassChecker class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Tools__ClassChecker.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__ClassChecker.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 !
 
 version_CVS
@@ -924,5 +924,5 @@
 !
 
 version_SVN
-    ^ '$Id: Tools__ClassChecker.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__ClassChecker.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
--- a/Tools__ClassGeneratorList.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__ClassGeneratorList.st	Wed Feb 22 09:55:48 2012 +0000
@@ -513,7 +513,7 @@
 !ClassGeneratorList class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Tools__ClassGeneratorList.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__ClassGeneratorList.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 !
 
 version_CVS
@@ -521,5 +521,5 @@
 !
 
 version_SVN
-    ^ '$Id: Tools__ClassGeneratorList.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__ClassGeneratorList.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
--- a/Tools__ClassList.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__ClassList.st	Wed Feb 22 09:55:48 2012 +0000
@@ -807,7 +807,7 @@
 !
 
 update:something with:aParameter from:changedObject
-    |cls sel mthd newMethod oldMethod idx classListValue|
+    |cls sel mthd newMethod oldMethod idx classListValue ts |
 
     self slaveMode value == true ifTrue:[
         something == #methodInClass ifTrue:[ ^ self ].
@@ -822,6 +822,17 @@
     classListValue := classList value.
 
     changedObject == Smalltalk ifTrue:[
+        "JV2012-02-17: Suppress updates if they're comming too fast
+         (such as when booting Java or so)"
+        ts := OperatingSystem getMillisecondTime.
+        (ts - (lastUpdateFromSmalltalkTimestamp ? 0)) < 200"half a second, maybe too high" ifTrue:[
+            lastUpdateFromSmalltalkTimestamp := ts.
+            numUpdatesFromSmalltalkInLast200Msecs := numUpdatesFromSmalltalkInLast200Msecs + 1.
+            numUpdatesFromSmalltalkInLast200Msecs > 15 ifTrue:[ ^ self ].
+        ].
+        numUpdatesFromSmalltalkInLast200Msecs := 0.
+        lastUpdateFromSmalltalkTimestamp := ts.
+
         something == #classComment ifTrue:[
             ^ self.
         ].
@@ -929,6 +940,7 @@
     super update:something with:aParameter from:changedObject
 
     "Modified: / 20-07-2011 / 18:48:30 / cg"
+    "Modified: / 18-02-2012 / 21:58:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !ClassList methodsFor:'drag & drop'!
@@ -2001,10 +2013,10 @@
 !ClassList class methodsFor:'documentation'!
 
 version_CVS
-    ^ 'Header: /cvs/stx/stx/libtool/Tools_ClassList.st,v 1.57 2012/02/13 13:46:28 cg Exp '
+    ^ '§Header: /cvs/stx/stx/libtool/Tools_ClassList.st,v 1.57 2012/02/13 13:46:28 cg Exp §'
 !
 
 version_SVN
-    ^ '$Id: Tools__ClassList.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__ClassList.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
 
--- a/Tools__CodeHighlightingService.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__CodeHighlightingService.st	Wed Feb 22 09:55:48 2012 +0000
@@ -210,7 +210,7 @@
                             "/ self showInfo:(errMsg colorizeAllWith:Color red).
                             newCode := nil.
                         ] do:[
-                            elements := SortedCollection new.
+                            elements := ParseTreeIndex new.
                             newCode := oldCode asText.
                             codeView codeAspect == #method ifTrue:[
                                 highlighterClasses do:[:e|newCode := e formatMethod:mthd source:newCode in:cls using: nil elementsInto: elements].
@@ -255,7 +255,6 @@
     ]
 
     "Modified: / 22-08-2011 / 14:17:47 / cg"
-    "Modified: / 16-09-2011 / 17:01:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Created: / 24-01-2012 / 12:21:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
@@ -354,7 +353,7 @@
 !CodeHighlightingService class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Tools__CodeHighlightingService.st 7865 2012-02-01 19:44:39Z vranyj1 $'
+    ^ '$Id: Tools__CodeHighlightingService.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 !
 
 version_CVS
@@ -362,5 +361,6 @@
 !
 
 version_SVN
-    ^ '$Id: Tools__CodeHighlightingService.st 7865 2012-02-01 19:44:39Z vranyj1 $'
+    ^ '$Id: Tools__CodeHighlightingService.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
+
--- a/Tools__CodeNavigationService.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__CodeNavigationService.st	Wed Feb 22 09:55:48 2012 +0000
@@ -154,12 +154,12 @@
 
     codeView syntaxElementSelection isNil ifTrue:[^self].
 
-    codeView syntaxElementSelection type == #selector ifTrue:[^self button1PressForSelector: codeView syntaxElementSelection value].
-    codeView syntaxElementSelection type == #class    ifTrue:[^self browseClass:codeView syntaxElementSelection value].
+    codeView syntaxElementSelection isSelector ifTrue:[^self button1PressForSelector: codeView syntaxElementSelection node parent selector].
+    codeView syntaxElementSelection isClass    ifTrue:[^self browseClass:codeView syntaxElementSelection value].
 
     "Created: / 14-02-2010 / 18:43:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 06-03-2010 / 21:11:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 18-11-2011 / 14:58:02 / cg"
+    "Modified: / 16-02-2012 / 22:56:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 button1PressForSelector: selector
@@ -599,5 +599,6 @@
 !
 
 version_SVN
-    ^ '$Id: Tools__CodeNavigationService.st 7896 2012-02-15 21:30:13Z vranyj1 $'
+    ^ '$Id: Tools__CodeNavigationService.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
+
--- a/Tools__CodeView2.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__CodeView2.st	Wed Feb 22 09:55:48 2012 +0000
@@ -477,6 +477,17 @@
 
 !CodeView2 methodsFor:'accessing'!
 
+contents: aStringOrStringCollection clear: clearPrevious
+    "Set the contents. If clearPrevous is true, then
+     previous original text is cleared and set to given one.
+     (so the text is considered not modified)"
+
+    textView contents: aStringOrStringCollection clear: clearPrevious
+
+    "Modified: / 19-07-2011 / 13:18:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Created: / 17-02-2012 / 00:33:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 acceptAction:aBlock
 
     textView acceptAction: aBlock
@@ -536,17 +547,6 @@
     "Modified: / 19-07-2011 / 13:18:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
-contents: aStringOrStringCollection clear: clearPrevious
-    "Set the contents. If clearPrevous is true, then
-     previous original text is cleared and set to given one.
-     (so the text is considered not modified)"
-
-    textView contents: aStringOrStringCollection clear: clearPrevious
-
-    "Modified: / 19-07-2011 / 13:18:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Created: / 17-02-2012 / 00:33:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
 diffMode
     ^ diffMode
 !
@@ -2393,6 +2393,17 @@
 
 !CodeView2::TextView methodsFor:'accessing'!
 
+contents: text clear: clearPrevious
+
+    | savedListOriginal |
+    savedListOriginal := listOriginal.
+    super contents: text.
+    listOriginal := savedListOriginal.
+    self updateReallyModified.
+
+    "Created: / 17-02-2012 / 00:35:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 changedDiffText
     ^ changedDiffText
 !
@@ -2423,17 +2434,6 @@
     "Created: / 07-10-2011 / 20:32:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
-contents: text clear: clearPrevious
-
-    | savedListOriginal |
-    savedListOriginal := listOriginal.
-    super contents: text.
-    listOriginal := savedListOriginal.
-    self updateReallyModified.
-
-    "Created: / 17-02-2012 / 00:35:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
 deletedLines
     ^  deletedLines
 
@@ -3361,7 +3361,7 @@
 !CodeView2 class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Tools__CodeView2.st 7901 2012-02-17 00:57:16Z vranyj1 $'
+    ^ '$Id: Tools__CodeView2.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 !
 
 version_CVS
@@ -3369,7 +3369,8 @@
 !
 
 version_SVN
-    ^ '$Id: Tools__CodeView2.st 7901 2012-02-17 00:57:16Z vranyj1 $'
+    ^ '$Id: Tools__CodeView2.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
 
 CodeView2 initialize!
+
--- a/Tools__FullMethodCategoryList.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__FullMethodCategoryList.st	Wed Feb 22 09:55:48 2012 +0000
@@ -123,9 +123,9 @@
 !FullMethodCategoryList class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Tools__FullMethodCategoryList.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__FullMethodCategoryList.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 !
 
 version_SVN
-    ^ '$Id: Tools__FullMethodCategoryList.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__FullMethodCategoryList.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
--- a/Tools__HierarchicalClassCategoryList.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__HierarchicalClassCategoryList.st	Wed Feb 22 09:55:48 2012 +0000
@@ -402,7 +402,7 @@
 !HierarchicalClassCategoryList class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Tools__HierarchicalClassCategoryList.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__HierarchicalClassCategoryList.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 !
 
 version_CVS
@@ -410,5 +410,5 @@
 !
 
 version_SVN
-    ^ '$Id: Tools__HierarchicalClassCategoryList.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__HierarchicalClassCategoryList.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
--- a/Tools__HierarchicalClassList.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__HierarchicalClassList.st	Wed Feb 22 09:55:48 2012 +0000
@@ -308,11 +308,11 @@
 !HierarchicalClassList class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Tools__HierarchicalClassList.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__HierarchicalClassList.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 !
 
 version_SVN
-    ^ '$Id: Tools__HierarchicalClassList.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__HierarchicalClassList.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
 
 HierarchicalClassList initialize!
--- a/Tools__HierarchicalLintRuleList.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__HierarchicalLintRuleList.st	Wed Feb 22 09:55:48 2012 +0000
@@ -210,5 +210,6 @@
 !
 
 version_SVN
-    ^ '$Id: Tools__HierarchicalLintRuleList.st 7854 2012-01-30 17:49:41Z vranyj1 $'
-! !
\ No newline at end of file
+    ^ '$Id: Tools__HierarchicalLintRuleList.st 7911 2012-02-22 09:55:48Z vranyj1 $'
+! !
+
--- a/Tools__HierarchicalPackageFilterList.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__HierarchicalPackageFilterList.st	Wed Feb 22 09:55:48 2012 +0000
@@ -300,7 +300,7 @@
 !HierarchicalPackageFilterList::PackageItem class methodsFor:'documentation'!
 
 version
-    ^'$Id: Tools__HierarchicalPackageFilterList.st 7854 2012-01-30 17:49:41Z vranyj1 $'
+    ^'$Id: Tools__HierarchicalPackageFilterList.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
 
 !HierarchicalPackageFilterList::PackageItem class methodsFor:'image specs'!
@@ -464,5 +464,6 @@
 !
 
 version_SVN
-    ^ '$Id: Tools__HierarchicalPackageFilterList.st 7854 2012-01-30 17:49:41Z vranyj1 $'
-! !
\ No newline at end of file
+    ^ '$Id: Tools__HierarchicalPackageFilterList.st 7911 2012-02-22 09:55:48Z vranyj1 $'
+! !
+
--- a/Tools__HierarchicalProjectList.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__HierarchicalProjectList.st	Wed Feb 22 09:55:48 2012 +0000
@@ -518,7 +518,7 @@
 !HierarchicalProjectList class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Tools__HierarchicalProjectList.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__HierarchicalProjectList.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 !
 
 version_CVS
@@ -526,5 +526,5 @@
 !
 
 version_SVN
-    ^ '$Id: Tools__HierarchicalProjectList.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__HierarchicalProjectList.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
--- a/Tools__ImplementingClassList.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__ImplementingClassList.st	Wed Feb 22 09:55:48 2012 +0000
@@ -117,9 +117,9 @@
 !ImplementingClassList class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Tools__ImplementingClassList.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__ImplementingClassList.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 !
 
 version_SVN
-    ^ '$Id: Tools__ImplementingClassList.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__ImplementingClassList.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
--- a/Tools__ImplementingMethodList.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__ImplementingMethodList.st	Wed Feb 22 09:55:48 2012 +0000
@@ -287,9 +287,9 @@
 !ImplementingMethodList class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Tools__ImplementingMethodList.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__ImplementingMethodList.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 !
 
 version_SVN
-    ^ '$Id: Tools__ImplementingMethodList.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__ImplementingMethodList.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
--- a/Tools__InheritanceClassList.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__InheritanceClassList.st	Wed Feb 22 09:55:48 2012 +0000
@@ -187,9 +187,9 @@
 !InheritanceClassList class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Tools__InheritanceClassList.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__InheritanceClassList.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 !
 
 version_SVN
-    ^ '$Id: Tools__InheritanceClassList.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__InheritanceClassList.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
--- a/Tools__Inspector2.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__Inspector2.st	Wed Feb 22 09:55:48 2012 +0000
@@ -145,10 +145,12 @@
 
 settingsIcon
 
+    <resource: #image>
+
     ^self settingsIcon5
 
-    "Modified: / 17-01-2012 / 12:45:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 19-01-2012 / 14:00:35 / cg"
+    "Modified: / 18-02-2012 / 16:28:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 settingsIcon1
@@ -314,9 +316,13 @@
 !
 
 settingsIcon5
+
+    <resource: #image>
+
     ^ GenericToolbarIconLibrary palette16x16Icon
 
     "Created: / 19-01-2012 / 14:00:24 / cg"
+    "Modified: / 18-02-2012 / 16:28:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !Inspector2 class methodsFor:'interface specs'!
@@ -596,7 +602,6 @@
             label: 'Settings'
             translateLabel: true
             isButton: true
-            isVisible: false
             submenuChannel: settingsMenu
             labelImage: (ResourceRetriever #'Tools::Inspector2' settingsIcon)
           )
@@ -1017,11 +1022,11 @@
 !Inspector2::NavigationState class methodsFor:'documentation'!
 
 version
-    ^'$Header: /cvs/stx/stx/libtool/Tools__Inspector2.st,v 1.27 2012/02/13 15:54:07 cg Exp $'
+    ^'$Id: Tools__Inspector2.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 !
 
 version_SVN
-    ^'$Id: Tools__Inspector2.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^'$Id: Tools__Inspector2.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
 
 !Inspector2::NavigationState methodsFor:'accessing'!
@@ -1219,7 +1224,7 @@
 !Inspector2 class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__Inspector2.st,v 1.27 2012/02/13 15:54:07 cg Exp $'
+    ^ '$Id: Tools__Inspector2.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 !
 
 version_CVS
@@ -1231,7 +1236,7 @@
 !
 
 version_SVN
-    ^ '$Id: Tools__Inspector2.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__Inspector2.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
 
 Inspector2 initialize!
--- a/Tools__LintHighlighter.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__LintHighlighter.st	Wed Feb 22 09:55:48 2012 +0000
@@ -208,6 +208,14 @@
     "Created: / 03-02-2012 / 10:39:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!LintHighlighter methodsFor:'initialization'!
+
+reset
+    annotations := #().
+
+    "Created: / 18-02-2012 / 22:54:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !LintHighlighter methodsFor:'markup'!
 
 mark: text from: start to: end for: rule
@@ -224,7 +232,7 @@
 !LintHighlighter class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Tools__LintHighlighter.st 7868 2012-02-03 10:54:40Z vranyj1 $'
+    ^ '$Id: Tools__LintHighlighter.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 !
 
 version_CVS
@@ -232,5 +240,6 @@
 !
 
 version_SVN
-    ^ '$Id: Tools__LintHighlighter.st 7868 2012-02-03 10:54:40Z vranyj1 $'
+    ^ '$Id: Tools__LintHighlighter.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
+
--- a/Tools__LintRuleList.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__LintRuleList.st	Wed Feb 22 09:55:48 2012 +0000
@@ -742,5 +742,6 @@
 !
 
 version_SVN
-    ^ '$Id: Tools__LintRuleList.st 7854 2012-01-30 17:49:41Z vranyj1 $'
-! !
\ No newline at end of file
+    ^ '$Id: Tools__LintRuleList.st 7911 2012-02-22 09:55:48Z vranyj1 $'
+! !
+
--- a/Tools__MethodCategoryList.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__MethodCategoryList.st	Wed Feb 22 09:55:48 2012 +0000
@@ -697,10 +697,20 @@
 !
 
 update:something with:aParameter from:changedObject
-    |cls sel mthd oldMethod newMethod|
+    |cls sel mthd oldMethod newMethod ts |
 
     "/ some can be ignored immediately
     changedObject == Smalltalk ifTrue:[
+        "JV2012-02-17: Suppress updates if they're comming too fast
+         (such as when booting Java or so)"
+        ts := OperatingSystem getMillisecondTime.
+        (ts - (lastUpdateFromSmalltalkTimestamp ? 0)) < 200"half a second, maybe too high" ifTrue:[
+            lastUpdateFromSmalltalkTimestamp := ts.
+            numUpdatesFromSmalltalkInLast200Msecs := numUpdatesFromSmalltalkInLast200Msecs + 1.
+            numUpdatesFromSmalltalkInLast200Msecs > 15 ifTrue:[ ^ self ].
+        ].
+        numUpdatesFromSmalltalkInLast200Msecs := 0.
+        lastUpdateFromSmalltalkTimestamp := ts.
         something isNil ifTrue:[
             "/ self halt "/ huh - Smalltalk changed - so what ?
             ^ self.
@@ -777,6 +787,7 @@
     super update:something with:aParameter from:changedObject.
 
     "Modified: / 20-07-2011 / 18:54:57 / cg"
+    "Modified: / 18-02-2012 / 21:58:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !MethodCategoryList methodsFor:'drag & drop'!
@@ -1979,7 +1990,7 @@
 !MethodCategoryList class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Tools__MethodCategoryList.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__MethodCategoryList.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 !
 
 version_CVS
@@ -1987,8 +1998,9 @@
 !
 
 version_SVN
-    ^ '$Id: Tools__MethodCategoryList.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__MethodCategoryList.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
 
 MethodCategoryList initialize!
 MethodCategoryList::CachedMethodInfo initialize!
+
--- a/Tools__MethodList.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__MethodList.st	Wed Feb 22 09:55:48 2012 +0000
@@ -753,10 +753,20 @@
 !
 
 update:something with:aParameter from:changedObject
-    |cls mthd|
+    |cls mthd ts|
 
     "/ some can be ignored immediately
     changedObject == Smalltalk ifTrue:[
+        "JV2012-02-17: Suppress updates if they're comming too fast
+         (such as when booting Java or so)"
+        ts := OperatingSystem getMillisecondTime.
+        (ts - (lastUpdateFromSmalltalkTimestamp ? 0)) < 200"half a second, maybe too high" ifTrue:[
+            lastUpdateFromSmalltalkTimestamp := ts.
+            numUpdatesFromSmalltalkInLast200Msecs := numUpdatesFromSmalltalkInLast200Msecs + 1.
+            numUpdatesFromSmalltalkInLast200Msecs > 15 ifTrue:[ ^ self ].
+        ].
+        numUpdatesFromSmalltalkInLast200Msecs := 0.
+        lastUpdateFromSmalltalkTimestamp := ts.
         classes isNil ifTrue:[
             ^ self.
         ].
@@ -867,7 +877,7 @@
     super update:something with:aParameter from:changedObject
 
     "Modified: / 20-07-2011 / 18:54:04 / cg"
-    "Modified: / 17-11-2011 / 19:22:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 18-02-2012 / 21:58:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !MethodList methodsFor:'drag & drop'!
@@ -1745,7 +1755,7 @@
 !MethodList class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Tools__MethodList.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__MethodList.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 !
 
 version_CVS
@@ -1753,5 +1763,6 @@
 !
 
 version_SVN
-    ^ '$Id: Tools__MethodList.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__MethodList.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
+
--- a/Tools__NamespaceFilter.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__NamespaceFilter.st	Wed Feb 22 09:55:48 2012 +0000
@@ -109,5 +109,6 @@
 !
 
 version_SVN
-    ^ '$Id: Tools__NamespaceFilter.st 7854 2012-01-30 17:49:41Z vranyj1 $'
-! !
\ No newline at end of file
+    ^ '$Id: Tools__NamespaceFilter.st 7911 2012-02-22 09:55:48Z vranyj1 $'
+! !
+
--- a/Tools__NamespaceList.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__NamespaceList.st	Wed Feb 22 09:55:48 2012 +0000
@@ -559,5 +559,5 @@
 !
 
 version_SVN
-    ^ '$Id: Tools__NamespaceList.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__NamespaceList.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
--- a/Tools__NavigationState.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__NavigationState.st	Wed Feb 22 09:55:48 2012 +0000
@@ -1665,5 +1665,5 @@
 !
 
 version_SVN
-    ^ '$Id: Tools__NavigationState.st 7894 2012-02-15 01:48:47Z vranyj1 $'
+    ^ '$Id: Tools__NavigationState.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
--- a/Tools__NavigatorCanvas.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__NavigatorCanvas.st	Wed Feb 22 09:55:48 2012 +0000
@@ -6838,5 +6838,5 @@
 !
 
 version_SVN
-    ^ '$Id: Tools__NavigatorCanvas.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__NavigatorCanvas.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
--- a/Tools__NavigatorModel.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__NavigatorModel.st	Wed Feb 22 09:55:48 2012 +0000
@@ -351,7 +351,7 @@
 !
 
 version_SVN
-    ^ '$Id: Tools__NavigatorModel.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__NavigatorModel.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
 
 NavigatorModel initialize!
--- a/Tools__NewSystemBrowser.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__NewSystemBrowser.st	Wed Feb 22 09:55:48 2012 +0000
@@ -7988,6 +7988,42 @@
       )
 !
 
+classNewGroovyClassSlice
+    "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:#classNewGroovytClassSlice
+     (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser classNewGroovytClassSlice)) startUp
+    "
+
+    <resource: #menu>
+
+    ^ 
+     #(Menu
+        (
+         (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>"
+!
+
 classNewHaskellClassSlice
     "This resource specification was automatically generated
      by the MenuEditor of ST/X."
@@ -8143,6 +8179,7 @@
     "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:#classNewSlice
      (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser classNewSlice)) startUp
@@ -8189,6 +8226,13 @@
             isMenuSlice: true
           )
          (MenuItem
+            label: 'Groovy Class Slice'
+            nameKey: classNewGroovyClassSlice
+            translateLabel: true
+            submenuChannel: classNewGroovyClassSlice
+            isMenuSlice: true
+          )
+         (MenuItem
             label: 'Haskell Class Slice'
             nameKey: classNewHaskellClassSlice
             translateLabel: true
@@ -8215,8 +8259,6 @@
         nil
         nil
       )
-
-    "Modified: / 16-01-2012 / 20:38:44 / cg"
 !
 
 classNewSmalltalkSlice
@@ -19650,6 +19692,14 @@
 
 !
 
+hasGroovySupport
+    "Return true, if Groovy support is loaded"
+
+    ^ConfigurableFeatures includesFeature: #GroovySupport
+
+    "Created: / 18-02-2012 / 16:59:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 hasInstanceMethodsSelected
     |methods|
 
@@ -27969,14 +28019,20 @@
     "/ check if the class has a repository container - warn about this if so
     currentClass isPrivate ifFalse:[
         currentClass revision notNil ifTrue:[
-            (self confirm:(resources string:'Remove the (old) source container for ''%1'' in the repository ?' with:oldSym allBold))
-            ifTrue:[
-                SourceCodeManagerUtilities
-                        removeSourceContainerForClass:currentClass
-                        confirm:false
-                        warn:true.
+            "JV@2012-02-18: Ask only if manager is CVS (assuming that
+             other SCMs handle class renames nicely"
+            currentClass sourceCodeManager isCVS ifTrue:[
+                (self confirm:(resources string:'Remove the (old) source container for ''%1'' in the repository ?' with:oldSym allBold))
+                ifTrue:[
+                    SourceCodeManagerUtilities
+                            removeSourceContainerForClass:currentClass
+                            confirm:false
+                            warn:true.
+                    askForNewContainer := true.
+                ].
+            ] ifFalse:[
                 askForNewContainer := true.
-            ].
+            ]
         ]
     ].
 
@@ -28062,6 +28118,7 @@
     ].
 
     "Modified: / 15-08-2010 / 11:54:23 / cg"
+    "Modified: / 18-02-2012 / 14:12:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 classMenuRewrite
@@ -47458,6 +47515,11 @@
 
     |m s isComment infoStream info|
 
+    "JV@2012-02-18: We're showing full sourcecode including
+     possible javadoc comments, so there is no need to display
+     documentation string at the end"
+    aClass isJavaClass ifTrue:[ ^ nil ].
+
     "/ (aClass language isSmalltalk) ifFalse:[^ nil].
 
     m := aClass theMetaclass compiledMethodAt:#documentation.
@@ -47520,6 +47582,8 @@
             ].
     info := info emphasizeAllWith:UserPreferences current commentEmphasisAndColor.
     ^ info
+
+    "Modified (format): / 18-02-2012 / 20:59:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 searchForCodePattern:codePattern direction:direction startLine:startLine startCol:startCol
@@ -47743,8 +47807,9 @@
          add documentation as a comment, if there is any
         "
         info := self commentOrDocumentationStringFromClass:aClass.
+        text := definition.
         info notNil ifTrue:[
-            text := definition,(Character cr),info. 
+            text := text,(Character cr),info. 
         ].
         self codeHolder setValue:text.
         self codeView notNil ifTrue:[
@@ -47754,6 +47819,7 @@
     self updatePackageInfoForClass:aClass.
 
     "Modified: / 14-08-2010 / 12:05:08 / cg"
+    "Modified: / 18-02-2012 / 22:28:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 showClassDocumentation
@@ -54668,6 +54734,20 @@
     ^ false
 !
 
+doAcceptGroovyClassDefinition:theCode
+    | newClass |
+
+    newClass := GroovyCompiler compileClass: theCode string.
+    newClass isNil ifTrue:[ ^ self ].
+
+    newClass isBehavior ifTrue:[
+        self switchToClass:newClass.
+    ].
+    self codeAspect: #classDefinition
+
+    "Created: / 18-02-2012 / 18:54:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 doAcceptJavaClassDefinition:theCode
     "tell the codeView what to do on accept.
      Return false, if NOT accepted (i.e. compilation canceled)"
@@ -54892,12 +54972,18 @@
 
     currentClass := self theSingleSelectedClass.
 
-    navigationState isFullClassSourceBrowser ifTrue:[
-        action := [:theCode | self doAcceptFullJavaClassDefinition:theCode].
-    ] ifFalse:[
-        action := [:theCode | self doAcceptJavaClassDefinition:theCode].
+    currentClass isGroovyClass ifTrue:[
+        action := [:theCode | self doAcceptGroovyClassDefinition:theCode asString]
+    ] ifFalse:[
+        navigationState isFullClassSourceBrowser ifTrue:[
+            action := [:theCode | self doAcceptFullJavaClassDefinition:theCode asString].
+        ] ifFalse:[
+            action := [:theCode | self doAcceptJavaClassDefinition:theCode asString].
+        ].
     ].
     self setAcceptAction:action.
+
+    "Modified: / 18-02-2012 / 20:53:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 setAcceptActionForJavaClassComment
@@ -55776,7 +55862,7 @@
 !NewSystemBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Tools__NewSystemBrowser.st 7891 2012-02-14 17:35:19Z vranyj1 $'
+    ^ '$Id: Tools__NewSystemBrowser.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 !
 
 version_CVS
@@ -55784,7 +55870,8 @@
 !
 
 version_SVN
-    ^ '$Id: Tools__NewSystemBrowser.st 7891 2012-02-14 17:35:19Z vranyj1 $'
+    ^ '$Id: Tools__NewSystemBrowser.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
 
 NewSystemBrowser initialize!
+
--- a/Tools__OrganizerCanvas.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__OrganizerCanvas.st	Wed Feb 22 09:55:48 2012 +0000
@@ -5037,6 +5037,6 @@
 !
 
 version_SVN
-    ^ '$Id: Tools__OrganizerCanvas.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__OrganizerCanvas.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
 
--- a/Tools__ProjectList.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__ProjectList.st	Wed Feb 22 09:55:48 2012 +0000
@@ -343,12 +343,26 @@
 !
 
 update:something with:aParameter from:changedObject
+    | ts |
+
 
     (self builder isNil or:[self window topView realized not]) ifTrue:[
         self makeIndependent
     ].
 
     changedObject == Smalltalk ifTrue:[
+        "JV2012-02-17: Suppress updates if they're comming too fast
+         (such as when booting Java or so)"
+        ts := OperatingSystem getMillisecondTime.
+        (ts - (lastUpdateFromSmalltalkTimestamp ? 0)) < 200"half a second, maybe too high" ifTrue:[
+            lastUpdateFromSmalltalkTimestamp := ts.
+            numUpdatesFromSmalltalkInLast200Msecs := numUpdatesFromSmalltalkInLast200Msecs + 1.
+            numUpdatesFromSmalltalkInLast200Msecs > 15 ifTrue:[ ^ self ].
+
+        ].
+        numUpdatesFromSmalltalkInLast200Msecs := 0.
+        lastUpdateFromSmalltalkTimestamp := ts.
+
         something == #methodDictionary ifTrue:[
             ^ self 
         ].
@@ -374,6 +388,7 @@
     super update:something with:aParameter from:changedObject
 
     "Modified: / 20-07-2011 / 18:54:39 / cg"
+    "Modified: / 18-02-2012 / 21:58:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !ProjectList methodsFor:'drag & drop'!
@@ -933,10 +948,10 @@
 !ProjectList class methodsFor:'documentation'!
 
 version_CVS
-    ^ 'Header: /cvs/stx/stx/libtool/Tools_ProjectList.st,v 1.51 2012/02/13 13:46:07 cg Exp '
+    ^ '§Header: /cvs/stx/stx/libtool/Tools_ProjectList.st,v 1.51 2012/02/13 13:46:07 cg Exp §'
 !
 
 version_SVN
-    ^ '$Id: Tools__ProjectList.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__ProjectList.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
 
--- a/Tools__SearchDialog.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__SearchDialog.st	Wed Feb 22 09:55:48 2012 +0000
@@ -1295,7 +1295,7 @@
 !
 
 version_SVN
-    ^ '$Id: Tools__SearchDialog.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__SearchDialog.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
 
 SearchDialog initialize!
--- a/Tools__SpecialCodeView.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__SpecialCodeView.st	Wed Feb 22 09:55:48 2012 +0000
@@ -73,7 +73,7 @@
 !SpecialCodeView class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Tools__SpecialCodeView.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__SpecialCodeView.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 !
 
 version_CVS
@@ -81,5 +81,5 @@
 !
 
 version_SVN
-    ^ '$Id: Tools__SpecialCodeView.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__SpecialCodeView.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
--- a/Tools__TestRunner2.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__TestRunner2.st	Wed Feb 22 09:55:48 2012 +0000
@@ -1815,7 +1815,7 @@
 !TestRunner2::ClassList class methodsFor:'documentation'!
 
 version
-    ^'$Id: Tools__TestRunner2.st 7854 2012-01-30 17:49:41Z vranyj1 $'
+    ^'$Id: Tools__TestRunner2.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
 
 !TestRunner2::ClassList methodsFor:'private'!
@@ -2312,7 +2312,7 @@
 !TestRunner2 class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__TestRunner2.st,v 1.28 2011/09/23 17:18:27 cg Exp $'
+    ^ '$Id: Tools__TestRunner2.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 !
 
 version_CVS
@@ -2320,7 +2320,8 @@
 !
 
 version_SVN
-    ^ '$Id: Tools__TestRunner2.st 7854 2012-01-30 17:49:41Z vranyj1 $'
+    ^ '$Id: Tools__TestRunner2.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
 
 TestRunner2 initialize!
+
--- a/Tools__VariableList.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/Tools__VariableList.st	Wed Feb 22 09:55:48 2012 +0000
@@ -805,5 +805,5 @@
 !
 
 version_SVN
-    ^ '$Id: Tools__VariableList.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: Tools__VariableList.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
--- a/WorkspaceApplication.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/WorkspaceApplication.st	Wed Feb 22 09:55:48 2012 +0000
@@ -3476,15 +3476,22 @@
 "/        m addItem:(MenuItem separator).
 
         allLanguages do:[:eachLanguage |
-            m addItem:(MenuItem 
-                        label:(eachLanguage name) 
-                        choice:#syntaxHolder
-                        choiceValue:eachLanguage).
+            "JV@2012-02-18: Add language only iff it supports
+             evaluation (most of then do, but some may not -
+             such as Java)"
+            eachLanguage evaluatorClass notNil ifTrue:[
+                m addItem:(MenuItem 
+                            label:(eachLanguage name) 
+                            choice:#syntaxHolder
+                            choiceValue:eachLanguage).
+            ].
         ].
 "/    ].
     ^ m
 
     "Modified: / 04-02-2012 / 11:52:07 / cg"
+    "Modified: / 18-02-2012 / 14:14:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified (format): / 18-02-2012 / 16:37:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 makeRecentDoItsMenuFor:aSelector
@@ -3809,7 +3816,7 @@
 !WorkspaceApplication class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/WorkspaceApplication.st,v 1.216 2012/02/04 11:00:03 cg Exp $'
+    ^ '$Id: WorkspaceApplication.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 !
 
 version_CVS
@@ -3817,6 +3824,6 @@
 !
 
 version_SVN
-    ^ '$Id: WorkspaceApplication.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: WorkspaceApplication.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
 
--- a/abbrev.stc	Fri Feb 17 01:48:18 2012 +0000
+++ b/abbrev.stc	Wed Feb 22 09:55:48 2012 +0000
@@ -205,3 +205,5 @@
 Tools::LintAnnotation Tools__LintAnnotation stx:libtool 'Interface-Lint' 0
 Tools::ProjectCheckerBrowser Tools__ProjectCheckerBrowser stx:libtool 'System-Support-Projects' 1
 ParseTreeIndex ParseTreeIndex stx:libtool 'Interface-CodeView-Syntax' 0
+
+
--- a/bc.mak	Fri Feb 17 01:48:18 2012 +0000
+++ b/bc.mak	Wed Feb 22 09:55:48 2012 +0000
@@ -236,3 +236,5 @@
 $(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\stx\libcomp\Breakpoint.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libcomp\BreakpointDescription.$(H) $(INCLUDE_TOP)\stx\libbasic\ByteArray.$(H) $(INCLUDE_TOP)\stx\libbasic\UninterpretedBytes.$(H) $(INCLUDE_TOP)\stx\libbasic\ArrayedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\SequenceableCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic3\Change.$(H) $(INCLUDE_TOP)\stx\libbasic3\ChangeSet.$(H) $(INCLUDE_TOP)\stx\libbasic\OrderedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Character.$(H) $(INCLUDE_TOP)\stx\libbasic\Magnitude.$(H) $(INCLUDE_TOP)\stx\libbasic\CharacterArray.$(H) $(INCLUDE_TOP)\stx\libview\Color.$(H) $(INCLUDE_TOP)\stx\libbasic3\CompositeChange.$(H) $(INCLUDE_TOP)\stx\libbasic\Date.$(H) $(INCLUDE_TOP)\stx\libbasic\Dictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\Set.$(H) $(INCLUDE_TOP)\stx\libwidg\EditTextView.$(H) $(INCLUDE_TOP)\stx\libwidg\TextView.$(H) $(INCLUDE_TOP)\stx\libwidg\ListView.$(H) $(INCLUDE_TOP)\stx\libview\View.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\DeviceGraphicsContext.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsContext.$(H) $(INCLUDE_TOP)\stx\libbasic\ExecutableFunction.$(H) $(INCLUDE_TOP)\stx\libview\Form.$(H) $(INCLUDE_TOP)\stx\libview\Image.$(H) $(INCLUDE_TOP)\stx\libbasic\Integer.$(H) $(INCLUDE_TOP)\stx\libbasic\Number.$(H) $(INCLUDE_TOP)\stx\libbasic\ArithmeticValue.$(H) $(INCLUDE_TOP)\stx\libwidg\MenuView.$(H) $(INCLUDE_TOP)\stx\libwidg\SelectionInListView.$(H) $(INCLUDE_TOP)\stx\libbasic\Method.$(H) $(INCLUDE_TOP)\stx\libbasic\CompiledCode.$(H) $(INCLUDE_TOP)\stx\libbasic\MethodDictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\KeyedCollection.$(H) $(INCLUDE_TOP)\stx\libwidg\PopUpMenu.$(H) $(INCLUDE_TOP)\stx\libview\PopUpView.$(H) $(INCLUDE_TOP)\stx\libview\TopView.$(H) $(INCLUDE_TOP)\stx\libbasic3\ProfileTree.$(H) $(INCLUDE_TOP)\stx\libbasic2\RunArray.$(H) $(INCLUDE_TOP)\stx\libwidg2\SelectionInListModelView.$(H) $(INCLUDE_TOP)\stx\libwidg2\ListModelView.$(H) $(INCLUDE_TOP)\stx\libbasic\StringCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Symbol.$(H) $(INCLUDE_TOP)\stx\libbasic\String.$(H) $(INCLUDE_TOP)\stx\libbasic2\Text.$(H) $(INCLUDE_TOP)\stx\libbasic\Timestamp.$(H) $(INCLUDE_TOP)\stx\libbasic\AbstractTime.$(H) $(INCLUDE_TOP)\stx\libbasic\UserPreferences.$(H) $(INCLUDE_TOP)\stx\libbasic\IdentityDictionary.$(H) $(INCLUDE_TOP)\stx\libcomp\AbstractSyntaxHighlighter.$(H) $(INCLUDE_TOP)\stx\libcomp\Parser.$(H) $(INCLUDE_TOP)\stx\libcomp\Scanner.$(H) $(INCLUDE_TOP)\stx\libwidg\GenericToolbarIconLibrary.$(H) $(INCLUDE_TOP)\stx\libbasic\NameSpace.$(H) $(INCLUDE_TOP)\stx\libbasic\Smalltalk.$(H) $(INCLUDE_TOP)\stx\libbasic\Block.$(H) $(INCLUDE_TOP)\stx\libbasic2\UnboxedIntegerArray.$(H) $(INCLUDE_TOP)\stx\libbasic\AbstractNumberVector.$(H) $(STCHDR)
 
 # ENDMAKEDEPEND --- do not remove this line
+
+
--- a/libInit.cc	Fri Feb 17 01:48:18 2012 +0000
+++ b/libInit.cc	Wed Feb 22 09:55:48 2012 +0000
@@ -191,3 +191,5 @@
 _stx_137libtool_extensions_Init(pass,__pRT__,snd);
 __END_PACKAGE__();
 }
+
+
--- a/libtool.rc	Fri Feb 17 01:48:18 2012 +0000
+++ b/libtool.rc	Wed Feb 22 09:55:48 2012 +0000
@@ -35,3 +35,5 @@
     VALUE "Translation", 0x409, 0x4E4 // U.S. English, Windows Multilingual
   END
 END
+
+
--- a/smallsense/Make.proto	Fri Feb 17 01:48:18 2012 +0000
+++ b/smallsense/Make.proto	Wed Feb 22 09:55:48 2012 +0000
@@ -1,7 +1,7 @@
 # $Header$
 #
 # DO NOT EDIT
-# automagically generated from the projectDefinition: stx_libtool_smallsense at 2012-02-17 00:57:39.657.
+# automagically generated from the projectDefinition: stx_libtool_smallsense at 2012-02-18 23:13:50.369.
 #
 # Warning: once you modify this file, do not rerun
 # stmkmp or projectDefinition-build again - otherwise, your changes are lost.
--- a/smallsense/Make.spec	Fri Feb 17 01:48:18 2012 +0000
+++ b/smallsense/Make.spec	Wed Feb 22 09:55:48 2012 +0000
@@ -1,7 +1,7 @@
 # $Header$
 #
 # DO NOT EDIT
-# automagically generated from the projectDefinition: stx_libtool_smallsense at 2012-02-17 00:57:39.130.
+# automagically generated from the projectDefinition: stx_libtool_smallsense at 2012-02-18 23:13:49.673.
 #
 # Warning: once you modify this file, do not rerun
 # stmkmp or projectDefinition-build again - otherwise, your changes are lost.
--- a/smallsense/SmallSenseChecker.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/smallsense/SmallSenseChecker.st	Wed Feb 22 09:55:48 2012 +0000
@@ -29,6 +29,26 @@
 "
 ! !
 
+!SmallSenseChecker class methodsFor:'accessing'!
+
+forceDisabledRules
+    "Return a list of rule class names that
+     are never run by SmallSense's checker - they
+     are either buggy (i.e.. not ready to be run
+     incrementally) or it does not make sense to run them
+     Add with care!!!!!!
+    "
+
+    ^ #(
+        RBLawOrDemeterRule          "/ Too many false positives, hard to fix
+        RBImplementedNotSentRule    "/ Uses Context>>#computeLiterals whichs toooo slow.
+        RBSentNotImplementedRule    "/ Uses Context>>#computeLiterals whichs toooo slow.
+        RBUndeclaredReferenceRule   "/
+    )
+
+    "Created: / 17-02-2012 / 13:10:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !SmallSenseChecker methodsFor:'private'!
 
 checkClass: aClass 
@@ -41,19 +61,25 @@
 
 checkMethodsForClass: aClass
 
-    rule flattened do:[:each|
-        [
-            environment selectorsForClass: aClass do: [:sel|
-                context selector: sel.
-                each checkMethod: context.
-            ]
-        ] on: Error do:[:ex|
-            SmallSenseService debugging ifTrue:[
-                SmallSenseService debugging: false.
-                ex pass.
-            ]
-        ]
-    ].
+    environment selectorsForClass: aClass do: [:sel|
+        context selector: sel.
+        context parseTree notNil ifTrue:[
+            rule flattened do:[:each|
+                [
+                    "JV@2012-02-17: HACK HACK: Law Of Demeter has a **lots** of false positives
+                     and it is hard to fix"
+                    (each class ~~ RBLawOfDemeterRule) ifTrue:[
+                        each checkMethod: context.
+                    ]
+                ] on: Error do:[:ex|
+                    SmallSenseService debugging ifTrue:[
+                        SmallSenseService debugging: false.
+                        ex pass.
+                    ]
+                ]
+            ].
+        ].
+    ]
 
     "Modified: / 24-08-2010 / 21:32:39 / Jan Vrany <enter your email here>"
     "Created: / 17-02-2012 / 00:50:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -62,6 +88,6 @@
 !SmallSenseChecker class methodsFor:'documentation'!
 
 version_SVN
-    ^ '$Id: SmallSenseChecker.st 7902 2012-02-17 01:48:18Z vranyj1 $'
+    ^ '$Id: SmallSenseChecker.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
 
--- a/smallsense/SmallSenseCompletionWindow.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/smallsense/SmallSenseCompletionWindow.st	Wed Feb 22 09:55:48 2012 +0000
@@ -15,10 +15,11 @@
 
     ^self new  
         initializeForView: codeView class: class;
-        completeOrOpen.
+        completeOrOpen;
+        yourself
 
     "Created: / 04-04-2011 / 11:54:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 26-11-2011 / 19:07:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 17-02-2012 / 10:29:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !SmallSenseCompletionWindow class methodsFor:'interface specs'!
@@ -327,5 +328,6 @@
 !SmallSenseCompletionWindow class methodsFor:'documentation'!
 
 version_SVN
-    ^ '$Id: SmallSenseCompletionWindow.st 7858 2012-01-30 22:38:04Z vranyj1 $'
+    ^ '$Id: SmallSenseCompletionWindow.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
+
--- a/smallsense/SmallSenseCriticsWindow.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/smallsense/SmallSenseCriticsWindow.st	Wed Feb 22 09:55:48 2012 +0000
@@ -251,20 +251,20 @@
 
 processEvent: anEvent
 
-    entered ifFalse:[
-        anEvent isPointerLeaveEvent ifTrue:[
-            anEvent view == self window ifTrue:[
-                entered := true.
-            ]
-        ]
-    ] ifTrue:[
+"/    entered ifFalse:[
+"/        anEvent isPointerLeaveEvent ifTrue:[
+"/            anEvent view == self window ifTrue:[
+"/                entered := true.
+"/            ]
+"/        ]
+"/    ] ifTrue:[
         anEvent isPointerLeaveEvent ifTrue:[
             anEvent view == self window ifTrue:[
                 self closeDownViews.
                 ^true.
             ]
         ].
-    ].
+"/    ].
 
     ^false
 
@@ -307,6 +307,6 @@
 !SmallSenseCriticsWindow class methodsFor:'documentation'!
 
 version_SVN
-    ^ '$Id: SmallSenseCriticsWindow.st 7902 2012-02-17 01:48:18Z vranyj1 $'
+    ^ '$Id: SmallSenseCriticsWindow.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
 
--- a/smallsense/SmallSenseParseNodeInspector.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/smallsense/SmallSenseParseNodeInspector.st	Wed Feb 22 09:55:48 2012 +0000
@@ -405,8 +405,10 @@
 
 nodeInspectorView
 
-    inspectorView ifNil:[inspectorView := InspectorView new].
-    ^inspectorView
+    inspectorView isNil ifTrue:[
+        inspectorView := InspectorView new
+    ].
+    ^ inspectorView
 
     "Created: / 31-10-2007 / 12:20:02 / janfrog"
     "Created: / 14-09-2011 / 17:24:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -530,7 +532,7 @@
 !SmallSenseParseNodeInspector::ParseNodeItem class methodsFor:'documentation'!
 
 version
-    ^'$Id: SmallSenseParseNodeInspector.st 7895 2012-02-15 13:13:08Z vranyj1 $'
+    ^'$Id: SmallSenseParseNodeInspector.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
 
 !SmallSenseParseNodeInspector::ParseNodeItem methodsFor:'accessing'!
@@ -614,5 +616,6 @@
 !SmallSenseParseNodeInspector class methodsFor:'documentation'!
 
 version_SVN
-    ^ '$Id: SmallSenseParseNodeInspector.st 7895 2012-02-15 13:13:08Z vranyj1 $'
+    ^ '$Id: SmallSenseParseNodeInspector.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
+
--- a/smallsense/SmallSenseQuickFixer.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/smallsense/SmallSenseQuickFixer.st	Wed Feb 22 09:55:48 2012 +0000
@@ -149,6 +149,8 @@
 !SmallSenseQuickFixer class methodsFor:'documentation'!
 
 version_SVN
-    ^ '$Id: SmallSenseQuickFixer.st 7902 2012-02-17 01:48:18Z vranyj1 $'
+    ^ '$Id: SmallSenseQuickFixer.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
 
+
+
--- a/smallsense/SmallSenseService.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/smallsense/SmallSenseService.st	Wed Feb 22 09:55:48 2012 +0000
@@ -146,20 +146,34 @@
 
 !SmallSenseService methodsFor:'change & update'!
 
+sourceChanged:force
+    rules isNil ifTrue:[ ^ self ].
+    codeView language isSmalltalk ifFalse:[ ^ self ].
+    rules resetResult.
+    highlighter reset.
+    super sourceChanged:force.
+
+    "Created: / 18-02-2012 / 22:50:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 update:something with:aParameter from:changedObject
     "Invoked when an object that I depend upon sends a change notification."
 
     changedObject == rulesHolder ifTrue:[
         UserPreferences current smallSenseBackgroundLintEnabled ifTrue:[
-            rules := rulesHolder value deepCopy.
-            highlighter rules: rules flattened.
+            | ruleList |
+
+            ruleList := rulesHolder value deepCopy flattened reject:[:each| SmallSenseChecker forceDisabledRules includes: each class name].
+            rules := RBCompositeLintRule rules: ruleList.
+            highlighter rules: ruleList.
+
             self process.
         ].
     ].
 
     super update:something with:aParameter from:changedObject
 
-    "Modified: / 30-01-2012 / 20:02:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 17-02-2012 / 13:17:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !SmallSenseService methodsFor:'event handling'!
@@ -219,7 +233,7 @@
 
     super initialize.
 
-    highlighter := Tools::LintHighlighter new
+    highlighter := Tools::LintHighlighter new.
 
     "Created: / 05-08-2011 / 11:53:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
@@ -345,6 +359,7 @@
     done := false.
     modified := false.
     codeView codeAspect ~~ #method ifTrue:[ ^ self ].
+    codeView language isSmalltalk ifFalse: [ ^ self ].
     cls := codeView klass.
     cls isNil ifTrue:[^ self ].
 
@@ -358,9 +373,11 @@
 
     "textView" modified ifFalse:[
         oldCodeList := textView list copy.
+        oldCodeList isEmptyOrNil ifTrue: [ ^ self ].
         "textView" modified ifFalse:[
             oldCodeList isNil ifFalse:[
                 oldCode := oldCodeList asStringWithoutEmphasis.
+                oldCode isEmptyOrNil ifTrue:[ ^ self ].
                 "textView" modified ifFalse:[
                     Screen currentScreenQuerySignal answer:codeView device
                     do:[
@@ -417,7 +434,7 @@
         rule: ann rule;
         codeView: codeView;
         allButOpen;
-        openWindowAt: Screen current pointerPosition.
+        openWindowAt: (Screen current pointerPosition - (20@20)).
 
     ^true
 
@@ -446,7 +463,7 @@
 !SmallSenseService class methodsFor:'documentation'!
 
 version_SVN
-    ^ '$Id: SmallSenseService.st 7902 2012-02-17 01:48:18Z vranyj1 $'
+    ^ '$Id: SmallSenseService.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
 
 SmallSenseService initialize!
--- a/smallsense/SmallSenseUnacceptedMethodEnvironment.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/smallsense/SmallSenseUnacceptedMethodEnvironment.st	Wed Feb 22 09:55:48 2012 +0000
@@ -84,8 +84,10 @@
 !SmallSenseUnacceptedMethodEnvironment class methodsFor:'documentation'!
 
 version_SVN
-    ^ '$Id: SmallSenseUnacceptedMethodEnvironment.st 7902 2012-02-17 01:48:18Z vranyj1 $'
+    ^ '$Id: SmallSenseUnacceptedMethodEnvironment.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
 
 SmallSenseUnacceptedMethodEnvironment initialize!
 
+
+
--- a/smallsense/bc.mak	Fri Feb 17 01:48:18 2012 +0000
+++ b/smallsense/bc.mak	Wed Feb 22 09:55:48 2012 +0000
@@ -1,7 +1,7 @@
 # $Header$
 #
 # DO NOT EDIT
-# automagically generated from the projectDefinition: stx_libtool_smallsense at 2012-02-17 00:57:39.922.
+# automagically generated from the projectDefinition: stx_libtool_smallsense at 2012-02-18 23:13:50.674.
 #
 # Warning: once you modify this file, do not rerun
 # stmkmp or projectDefinition-build again - otherwise, your changes are lost.
--- a/smallsense/smallsense.rc	Fri Feb 17 01:48:18 2012 +0000
+++ b/smallsense/smallsense.rc	Wed Feb 22 09:55:48 2012 +0000
@@ -3,7 +3,7 @@
 // automagically generated from the projectDefinition: stx_libtool_smallsense.
 //
 VS_VERSION_INFO VERSIONINFO
-  FILEVERSION     6,2,7887,7887
+  FILEVERSION     6,2,7903,7903
   PRODUCTVERSION  6,2,1,1
 #if (__BORLANDC__)
   FILEFLAGSMASK   VS_FF_DEBUG | VS_FF_PRERELEASE
@@ -20,12 +20,12 @@
     BEGIN
       VALUE "CompanyName", "eXept Software AG\0"
       VALUE "FileDescription", "Smalltalk/X Class library (LIB)\0"
-      VALUE "FileVersion", "6.2.7887.7887\0"
+      VALUE "FileVersion", "6.2.7903.7903\0"
       VALUE "InternalName", "stx:libtool/smallsense\0"
       VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2011\nCopyright eXept Software AG 1998-2011\0"
       VALUE "ProductName", "Smalltalk/X\0"
       VALUE "ProductVersion", "6.2.1.1\0"
-      VALUE "ProductDate", "Fri, 17 Feb 2012 00:57:44 GMT\0"
+      VALUE "ProductDate", "Sat, 18 Feb 2012 23:14:00 GMT\0"
     END
 
   END
--- a/smallsense/stx_libtool_smallsense.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/smallsense/stx_libtool_smallsense.st	Wed Feb 22 09:55:48 2012 +0000
@@ -179,11 +179,12 @@
     "Return a SVN revision number of myself.
      This number is updated after a commit"
 
-    ^ "$SVN-Revision:"        '7886M'"$"
+    ^ "$SVN-Revision:"        '7902M'"$"
 ! !
 
 !stx_libtool_smallsense class methodsFor:'documentation'!
 
 version_SVN
-    ^ '$Id: stx_libtool_smallsense.st 7887 2012-02-13 19:19:58Z vranyj1 $'
+    ^ '$Id: stx_libtool_smallsense.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
+
--- a/stx_libtool.st	Fri Feb 17 01:48:18 2012 +0000
+++ b/stx_libtool.st	Wed Feb 22 09:55:48 2012 +0000
@@ -95,19 +95,19 @@
      exclude individual packages in the #excludedFromPrerequisites method."
 
     ^ #(
-        #'stx:goodies/refactoryBrowser/parser'    "RBProgramNodeVisitor - superclass of CodeGenerator "
-        #'stx:goodies/sunit'    "TestResultForRunWithDebug - referenced by Tools::TestRunnerEmbedded>>runWithDebug "
-        #'stx:libbasic'    "Autoload - superclass of Tools::ToDoList "
+        #'stx:goodies/refactoryBrowser/parser'    "RBProgramNodeVisitor - superclass of Tools::BreakpointBrowser::MessageArgumentExtractor "
+        #'stx:goodies/sunit'    "TestResult - referenced by Tools::TestRunner2>>debugError: "
+        #'stx:libbasic'    "CharacterArray - superclass of extended String "
         #'stx:libbasic2'    "List - superclass of SettingsDialog::HierarchicalApplicationList "
-        #'stx:libbasic3'    "MessageTally - superclass of Tools::Profiler "
-        #'stx:libboss'    "BinaryOutputManager - referenced by Tools::Profiler>>storeStatisticsOn: "
-        #'stx:libcomp'    "Scanner - superclass of SyntaxHighlighter2 "
-        #'stx:libhtml'    "HTMLDocumentView - referenced by FileBrowser>>nonBinaryFileAction: "
-        #'stx:libui'    "ViewWithSubcomponentsSpec - superclass of FileBrowserV2UISpecifications::PanelSpec "
-        #'stx:libview'    "TopView - superclass of FileBrowser "
-        #'stx:libview2'    "Model - superclass of Tools::OrganizerCanvas "
-        #'stx:libwidg'    "ListView - superclass of Tools::NewSystemBrowserCodeView "
-        #'stx:libwidg2'    "HierarchicalList - superclass of SettingsDialog::HierarchicalApplicationList "
+        #'stx:libbasic3'    "Change - superclass of extended CompositeChange "
+        #'stx:libboss'    "BinaryInputManager - referenced by Tools::Profiler class>>readStatisticsFrom: "
+        #'stx:libcomp'    "AbstractSyntaxHighlighter - superclass of SyntaxHighlighter2 "
+        #'stx:libhtml'    "HTMLDocumentView - referenced by Tools::NewSystemBrowser>>openDocumentation "
+        #'stx:libui'    "NamedSpec - superclass of EditFieldWithCompletionSpec "
+        #'stx:libview'    "DeviceGraphicsContext - superclass of EditFieldWithCompletion "
+        #'stx:libview2'    "Model - superclass of FileApplicationNoteBook::ArchiveViewApplication "
+        #'stx:libwidg'    "EditTextView - superclass of EditFieldWithCompletion "
+        #'stx:libwidg2'    "SyncedMultiColumnTextView - superclass of DiffTextView "
     )
 ! !
 
@@ -336,6 +336,7 @@
         MercurialSourceCodeManagementSettingsAppl
         #'Tools::LintAnnotation'
         #'Tools::ProjectCheckerBrowser'
+        ParseTreeIndex
     )
 !
 
@@ -514,13 +515,13 @@
     "Return a SVN revision number of myself.
      This number is updated after a commit"
 
-    ^ "$SVN-Revision:"7890M"$"
+    ^ "$SVN-Revision:"7907M"$"
 ! !
 
 !stx_libtool class methodsFor:'documentation'!
 
 version
-    ^ '$Id: stx_libtool.st 7892 2012-02-14 20:24:28Z vranyj1 $'
+    ^ '$Id: stx_libtool.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 !
 
 version_CVS
@@ -528,5 +529,6 @@
 !
 
 version_SVN
-    ^ '$Id: stx_libtool.st 7892 2012-02-14 20:24:28Z vranyj1 $'
+    ^ '$Id: stx_libtool.st 7911 2012-02-22 09:55:48Z vranyj1 $'
 ! !
+