Hi Simon, > The correction of some rules can be automated (eg Rule Unnecessary "= true" > or Variable not reference) -> add transformation to these rules.
Yes, that would be nice. > Some rules such as Spelling rules (eg comments Method: Checks for spelling > errors in method comments., 7088 problems) are not very interesting and could > be removed (or treated differently?) I like them, but if you don't want the spelling rules you don't have to load or run them. One thing to improve here would be the spell checker: Critics only uses a decent spell checker on OS X, where the one from the platform is available through a primitive. On all other platforms a very stupid spell checker based on a word-list is used. > Adding an indice of difficulty to correct the rule: > - Level of automation for the correction of the rule (automatic, > semi-automatic, …). Actually this information is there: rules correct automatically if the rule is a subclass of RBTransformationRule. > - Scope of the rule (block, method, class …). Not sure what you mean, but you can scope the rules to any RBEnvironment (see http://www.lukas-renggli.ch/blog/programmatically-run-lint). > Other costs could be > - cost of applying (may be the rule requires to compute something else, or if > a rule has 50000 hits, it generates an extra cost to analyze the results) > - cost of NOT applying the rule (if it could detect a bug and we don' t apply > it ...) There is something like this in RBLintRule>>#severity. The severity is shown as an icon in OB. > Adding a manifest to manage/mark falses positive: > - one manifest (a class) by package. > - Manifest: exclusion of class/method of the package for rules or for all the > rules. > - Exclusion of rules for the package. See http://www.lukas-renggli.ch/blog/ignoring-lint-rules. Also many years ago I wrote some infrastructure to run critics rules as part of the tests, what essentially served as a runnable manifest. The code is in http://source.lukas-renggli.ch/essential.html, but it likely needs some fixes to make it work in a recent version of Pharo. > One could also think on how to efficiently visualize the results of smallLint > ... See for example the SmallLint results of Seaside 3.0 run by Jenkins: http://jenkins.lukas-renggli.ch/job/Seaside%203.0/791/checkstyleResult/. Cheers, Lukas -- Lukas Renggli www.lukas-renggli.ch
