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

Reply via email to