On Wed, 2014-06-25 at 23:01 -0700, Josh Triplett wrote: > Currently, LONG_LINE just informs the user about the line length, > leaving them to shorten the line. Too many users run checkpatch and > blindly follow its recommendation by splitting long lines, which almost > invariably results in worse code. On rare occasions, the line-width > limit encourages sensible refactoring of nested code into functions, but > more frequently it just results in painfully over-wrapped code. > > Improve the guidance by detecting long lines that start with 4+ tabs and > explicitly suggesting simplification or refactoring in that case. [] > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl [] > @@ -2146,8 +2146,16 @@ sub process { > $line =~ /^\+\s*"[^"]*"\s*(?:\s*|,|\)\s*;)\s*$/) && > $length > $max_line_length) > { > - WARN("LONG_LINE", > - "line over $max_line_length characters\n" . > $herecurr); > + if ($line =~ /^\+\t{4,}/) { > + WARN("LONG_LINE_DEEP_NESTING", > + "line over $max_line_length characters > with excessive nesting (4+ tabs)\n" > + . "Consider simplifying or refactoring to > eliminate excessive nesting.\n" > + . $herecurr);
This is not the test you want. This is also emitting on lines that are merely continued like pr_warning(format, arg1, arg2, arg3 ... argN); Better would be to test only for the lines that increase indents (like the DEEP_INDENTATION test) $line =~ /^\+\t{4,}(?:if|for|while|do|switch)\b/ This is the treewide distribution I get for the lines that generally produce extra indentation: 608432 1 242180 2 71260 3 16953 4 3688 5 758 6 187 7 74 8 23 9 17 10 8 11 4 12 1 13 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/