#BUGFIX by exept
class: Tools::NewSystemBrowser
changed: #smalllintRunRule:onEnvironment:
--- a/Tools__NewSystemBrowser.st Wed Jul 31 17:49:25 2019 +0200
+++ b/Tools__NewSystemBrowser.st Wed Jul 31 19:12:33 2019 +0200
@@ -30314,7 +30314,7 @@
This is called from a background worker - see smallLintRun:onEnvironment:
"
- | rules checker numClassesOverAll numRules
+ | rules checker numClasses numClassesOverAllForProgress numRules
count lastPercentage timeOfLastFeedback anyWarning anyError anyInfo|
"/ make sure that smallLint is loaded
@@ -30329,85 +30329,88 @@
rules := anRBLintRule flattened.
aBrowserEnvironment cacheClasses.
numRules := rules size.
- numClassesOverAll := aBrowserEnvironment numberClasses * 2 "tests class AND metaclass" * numRules.
+ numClasses := aBrowserEnvironment numberClasses.
+ numClassesOverAllForProgress := numClasses * 2 "tests class AND metaclass" * numRules.
count := 0.
lastPercentage := nil.
timeOfLastFeedback := Timestamp now.
anyWarning := anyError := anyInfo := false.
-
- rules withIndexDo:[:rule :index|
- |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
- progressFeedBackInto:[:classBeingChecked |
- |msg percentage percentageRounded now numFound|
-
- count := count + 1.
- percentage := ((count-1) / numClassesOverAll * 100).
- percentageRounded := percentage rounded.
- (lastPercentage isNil
- or:[
- (lastPercentage ~= percentageRounded)
- and:[
- now := Timestamp now.
- (now - timeOfLastFeedback > 100 milliseconds)
- ]
- ]
- ) ifTrue:[
- lastPercentage := percentageRounded.
-
- msg := ('Checking: ' withColor:Color grey)
- , ruleName
- , ((' (',ruleClassName,')') withColor:Color grey).
-
- "/ ((numClassesOverAll < 10) or:[numRules == 1]) ifTrue:[
- "/ msg := msg , ' in ',classBeingChecked name.
- "/ ].
- numFound := rule problemCount.
- numFound ~~ 0 ifTrue:[
- msg := msg , ' (', numFound printString,' found in ',count printString,' classes)'.
- ].
-
- anyError ifFalse:[
- rule isEmpty ifFalse:[
- anyError := (rule severity == RBLintRule severityWarning).
- anyError ifFalse:[
- anyWarning ifFalse:[
- anyWarning := (rule severity == RBLintRule severityWarning).
+
+ numClasses > 0 ifTrue:[
+ rules withIndexDo:[:rule :index|
+ |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
+ progressFeedBackInto:[:classBeingChecked |
+ |msg percentage percentageRounded now numFound|
+
+ count := count + 1.
+ percentage := ((count-1) / numClassesOverAllForProgress * 100).
+ percentageRounded := percentage rounded.
+ (lastPercentage isNil
+ or:[
+ (lastPercentage ~= percentageRounded)
+ and:[
+ now := Timestamp now.
+ (now - timeOfLastFeedback > 100 milliseconds)
+ ]
+ ]
+ ) ifTrue:[
+ lastPercentage := percentageRounded.
+
+ msg := ('Checking: ' withColor:Color grey)
+ , ruleName
+ , ((' (',ruleClassName,')') withColor:Color grey).
+
+ "/ ((numClassesOverAllForProgress < 10) or:[numRules == 1]) ifTrue:[
+ "/ msg := msg , ' in ',classBeingChecked name.
+ "/ ].
+ numFound := rule problemCount.
+ numFound ~~ 0 ifTrue:[
+ msg := msg , ' (', numFound printString,' found in ',count printString,' classes)'.
+ ].
+
+ anyError ifFalse:[
+ rule isEmpty ifFalse:[
+ anyError := (rule severity == RBLintRule severityWarning).
+ anyError ifFalse:[
anyWarning ifFalse:[
- anyInfo := true
- ].
+ anyWarning := (rule severity == RBLintRule severityWarning).
+ anyWarning ifFalse:[
+ anyInfo := true
+ ].
+ ].
].
].
- ].
- ].
- ProgressNotification new
- statusInfo:(anyError
- ifTrue:[#error]
- ifFalse:[
- anyWarning
- ifTrue:[#warning]
- ifFalse:[ anyInfo ifTrue:[#info] ifFalse:[nil]]]);
- messageText: msg;
- parameter: percentage;
- raiseRequest.
- timeOfLastFeedback := now ifNil:[Timestamp now].
- ].
- ].
- ]
- "/ value
- benchmark:(rule name,': ')
+ ].
+ ProgressNotification new
+ statusInfo:(anyError
+ ifTrue:[#error]
+ ifFalse:[
+ anyWarning
+ ifTrue:[#warning]
+ ifFalse:[ anyInfo ifTrue:[#info] ifFalse:[nil]]]);
+ messageText: msg;
+ parameter: percentage;
+ raiseRequest.
+ timeOfLastFeedback := now ifNil:[Timestamp now].
+ ].
+ ].
+ ]
+ "/ value
+ benchmark:(rule name,': ')
+ ].
].
ProgressNotification
raiseRequestWith:100