class: Tools::NewSystemBrowser
changed:
#smalllintRun:onEnvironment:
#smalllintRunRule:onEnvironment:
better lint progress feedback
--- 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 $'
! !