class: Tools::NewSystemBrowser
authorClaus Gittinger <cg@exept.de>
Sat, 09 May 2015 21:15:24 +0200
changeset 15627 3f97524378ac
parent 15626 92dcdf76584c
child 15628 7b189258caf1
class: Tools::NewSystemBrowser changed: #smalllintRun:onEnvironment: #smalllintRunRule:onEnvironment: better lint progress feedback
Tools__NewSystemBrowser.st
--- a/Tools__NewSystemBrowser.st	Sat May 09 19:43:17 2015 +0200
+++ b/Tools__NewSystemBrowser.st	Sat May 09 21:15:24 2015 +0200
@@ -28356,16 +28356,16 @@
                 dialog := Tools::LintRuleSelectionDialog new.
                 dialog open.
                 dialog accepted ifTrue:[
-                    rule := dialog selectionAsRule
+                    rule := dialog selectionAsRule.
+                    rule notNil ifTrue:[
+                        "/ Run on copy, because running rules has a sideeffect
+                        "/ of modifying the rule (storing in its result)
+                        rule := rule copy.
+                        self smalllintRunRule:rule onEnvironment:rbenvironment.
+                    ].
                 ] ifFalse:[
                     rule := nil.
                 ].
-                rule notNil ifTrue:[
-                    "/ Run on copy, because running rules has a sideeffect
-                    "/ of modifying the rule (storing in its result)
-                    rule := rule copy.
-                    self smalllintRunRule:rule onEnvironment:rbenvironment.
-                ].
             ] ifFalse:[
                 rule := nil
             ].
@@ -28405,23 +28405,39 @@
      THis is called from a background worker - see smallLintRun:onEnvironment:
     "
 
-    | rules checker |
+    | rules checker numOverAll count|
 
     "/ avoid this reference (for project-dependencies). Should this method be an extension, maybe
     "/ checker := SmalllintChecker.
     checker := (Smalltalk at:#SmalllintChecker).
 
     rules := anRBLintRule flattened.
+    aBrowserEnvironment cacheClasses.
+    numOverAll := aBrowserEnvironment numberClasses * 2 "tests class AND metaclass" * rules size.
+    count := 0.
+
     rules withIndexDo:[:rule :index|
-        |t|
-
-        ProgressNotification new
-            messageText: ('Checking: ', rule name, ' (' , rule class name,')');
-            parameter: (100 / rules size) * (index-1);
-            raiseRequest.
+        |t ruleName ruleClassName|
+
+        ruleName := rule name.
+        ruleClassName := rule class name.
+
+"/        ProgressNotification new
+"/            messageText: ('Checking: %1 (%2)' bindWith:ruleName with:ruleClassName);
+"/            parameter: (index-1) / rules size * 100;
+"/            raiseRequest.
 
         [
-            checker runRule: rule onEnvironment: aBrowserEnvironment
+            checker 
+                runRule: rule 
+                onEnvironment: aBrowserEnvironment 
+                progressFeedBackInto:[:classBeingChecked |
+                    count := count + 1.
+                    ProgressNotification new
+                        messageText: ('Checking: %1 (%2)' withCRs bindWith:ruleName with:ruleClassName "with:classBeingChecked name");
+                        parameter: ((count-1) / numOverAll * 100);
+                        raiseRequest.
+                ].
         ] value. "/ benchmark: rule name, ': '.
     ].
     ProgressNotification new
@@ -28429,6 +28445,8 @@
         parameter: 100;
         raiseRequest.
 
+    aBrowserEnvironment forgetCachedClasses.
+
     "Modified: / 15-12-2008 / 18:51:43 / Josef Grega <gregaj1@fel.cvut.cz>"
     "Modified: / 28-12-2008 / 14:40:01 / bazantj <enter your email here>"
     "Modified: / 22-07-2009 / 14:38:30 / Jan Vrany <vranyj1@fel.cvut.cz>"
@@ -62421,11 +62439,11 @@
 !NewSystemBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.2220 2015-05-08 12:27:29 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.2221 2015-05-09 19:15:24 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.2220 2015-05-08 12:27:29 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.2221 2015-05-09 19:15:24 cg Exp $'
 !
 
 version_HG
@@ -62434,7 +62452,7 @@
 !
 
 version_SVN
-    ^ '$Id: Tools__NewSystemBrowser.st,v 1.2220 2015-05-08 12:27:29 cg Exp $'
+    ^ '$Id: Tools__NewSystemBrowser.st,v 1.2221 2015-05-09 19:15:24 cg Exp $'
 ! !