Code-checker
Maintained by
Victor Deniz, Sara Arjona, Eloy Lafuente (stronk7), Tim Hunt
A tool for developers that helps them follow Moodle's coding style.
Comments
Comments are no longer open for new posts. Existing comments remain available to read.
Using 2.3.1 - San Fermín release! and getting errors for legitimate code in a js file:
value·=·value·<<·2;
Expected 1 space after "<"; 0 found
Expected 1 space before "<"; 0 found
.....
value·|=·toggleflag;
Expected 1 space after "|"; 0 found
Expected 1 space before "="; 0 found
.....
value·&=·~toggleflag;
Expected 1 space after "&" operator; 0 found
Expected 1 space before "="; 0 found
Cheers,
Gareth
I suppose that, at fist shoot, the approach would be to exclude any jQuery js by default. Later, once we have the proper tools defined jslint/jhlint/js coding style... it shouldn't be complex to create a codechecker sniff wrapping whatever we want to test.
But, as said, surely the 1st step is to exclude JS stuff, to avoid informing about something that is, right now, undecided.
It would be great if you could create an issue in the tracker (related to this component) defining current behavior, with some real example, and also which are your expectations/desired result.
Thanks!
1) yup, looks like commented code mix. More context lines would help to confirm it.
2) yup, any method only having a call to its parent is useless. Just allow inheritance to work, constructors included.
3) yup, curly brace is expected.
4) no, don't blame me. Blame code style guidelines, I'm not the inventor, just the implementor (in fact I think it was Tim the inventor). Easy to replace with: The "What is" hint... anyway. Have been attempts to open the hand a bit with this, but all them have been rejected.
Ciao
If a PHP class does not have a constructor at all, then the parent constructor is automatically used, so that warning is correct
The foreach does not have a { after the ). It is nothing to do with the &.
Comment starting with uppercase is just a pain. Blame Eloy
error
························'backtracking_matcher'·=>·'backtracking_matcher'*/
46: Line indented incorrectly; expected at least 8 spaces, found 0
It's quite obvious, that there is more than 0 spaces on that line. There is some problem in spaces counting in lines with multiline comments.
warning
····public·function·__construct()·{
81: Useless method overriding detected
AFAIK PHP don't call parent constructor automatically, so overriding __construct() just to call parent ones isn't useless at all. This warning may mislead someone.
error
····················foreach·($ranges·as·&$tmp)
440: Inline control structures are not allowed
That's totally strange. & in foreach is a common method to change elements of array inside foreach loop. What's wrong with it and what "inline control structures" have to do with such code?
warning
····//·"What·is"·hint·is·obviously·response·based,·since·it·used·to·better·understand·mistake·message.
68: Inline comments must start with a capital letter, digit or 3-dots sequence
I suggest adding some punctuation marks, from which a sentence could start: double and single quotes, $ in case comment start from variable names.
I have also some problematic strings, when comment starts from function or class name, which should be lowercase.
It's ironical that the codechecker should throw an error re its own code:
Did you remember to call setType() for 'exclude'? Defaulting to PARAM_RAW cleaning.
line 1303 of \lib\formslib.php: call to debugging()
line 281 of \lib\formslib.php: call to moodleform->detectMissingSetType()
line 202 of \lib\formslib.php: call to moodleform->_process_submission()
line 46 of \local\codechecker\index.php: call to moodleform->moodleform()
1. You file a but in the tracker: CONTRIB / local_codechecker component exists.
2. You code the change yourself, and submit it as a pull request through github.
Please can 'Inline comments must end in full-stops, exclamation marks, or question marks' be changed to include colons? As it is possible to write '// The following code does something awesome:'
Cheers,
Gareth
About the warning... I bet we still have a bunch of them... not fulfilling the "Inline comments must start with upper and end with dot". Next release will fix them (though they are not critical at all).
Thanks for code-checking the code-checker, btw!
Is it normal to have 92 errors and 23 warnings in the local/codechecker folder?
It seems odd to me (a non-programmer).
Thanks in advance,
German Valero