Subject: [PATCH v2 3/5] checkpatch: check line length in Kconfig help text

Apply the normal --max-line-length=nn line length checks to
Kconfig help text.

The default of 100 is only triggered by one existing line in
a file named Kconfig. Running with --max-line-length=80 reports
only a few long lines:
- 11 between 90 and 99 characters
- 25 betwen 81 and 89 characters
9 of which are due to long URLs.

Signed-off-by: Robert Elliott <[email protected]>
---
scripts/checkpatch.pl | 21 ++++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index c907d5cf0ac8..1b7a98adcaeb 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -3496,7 +3496,7 @@ sub process {
next if ($f =~ /^-/);
last if ($f !~ /^[\+ ]/); # !patch context

- if ($f =~ /^[\+ ]\s*(?:bool|tristate|prompt)\s*["']/) {
+ if ($f =~ /^[\+ ]\s*(?:bool|tristate|string|hex|int|prompt)\s*["']/) {
$needs_help = 1;
next;
}
@@ -3515,12 +3515,27 @@ sub process {
# and so hopefully shouldn't trigger false
# positives, even though some of these are
# common words in help texts
- if ($f =~ /^(?:config|menuconfig|choice|endchoice|
- if|endif|menu|endmenu|source)\b/x) {
+ if ($f =~ /^(?:config|menuconfig|
+ choice|endchoice|
+ comment|if|endif|
+ menu|endmenu|source)\b/x) {
last;
}
+
+ # no further checking for lines with these keywords
+ if ($f =~ /^(?:default|def_bool|depends|select|imply)\b/x) {
+ next;
+ }
+
+ my ($length, $indent) = line_stats($f);
+ if ($length > $max_line_length) {
+ WARN("CONFIG_DESCRIPTION",
+ "Kconfig help text line length ($length) too long: $f\n");
+ }
+
$help_length++ if ($has_help);
}
+
if ($needs_help &&
$help_length < $min_conf_desc_length) {
my $stat_real = get_stat_real($linenr, $ln - 1);
--
2.38.1


2022-11-24 01:26:25

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH v2 3/5] checkpatch: check line length in Kconfig help text

On Tue, 2022-11-22 at 19:12 -0600, Robert Elliott wrote:
> Apply the normal --max-line-length=nn line length checks to
> Kconfig help text.
>
> The default of 100 is only triggered by one existing line in
> a file named Kconfig. Running with --max-line-length=80 reports
> only a few long lines:

Perhaps add a KCONFIG_LINE_LENGTH specific length.
Likely this should use 80 and not 100

> - 11 between 90 and 99 characters
> - 25 betwen 81 and 89 characters
> 9 of which are due to long URLs.
>
> Signed-off-by: Robert Elliott <[email protected]>
> ---
> scripts/checkpatch.pl | 21 ++++++++++++++++++---
> 1 file changed, 18 insertions(+), 3 deletions(-)
>
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> index c907d5cf0ac8..1b7a98adcaeb 100755
> --- a/scripts/checkpatch.pl
> +++ b/scripts/checkpatch.pl
> @@ -3496,7 +3496,7 @@ sub process {
> next if ($f =~ /^-/);
> last if ($f !~ /^[\+ ]/); # !patch context
>
> - if ($f =~ /^[\+ ]\s*(?:bool|tristate|prompt)\s*["']/) {
> + if ($f =~ /^[\+ ]\s*(?:bool|tristate|string|hex|int|prompt)\s*["']/) {
> $needs_help = 1;
> next;
> }
> @@ -3515,12 +3515,27 @@ sub process {
> # and so hopefully shouldn't trigger false
> # positives, even though some of these are
> # common words in help texts
> - if ($f =~ /^(?:config|menuconfig|choice|endchoice|
> - if|endif|menu|endmenu|source)\b/x) {
> + if ($f =~ /^(?:config|menuconfig|
> + choice|endchoice|
> + comment|if|endif|
> + menu|endmenu|source)\b/x) {
> last;
> }
> +
> + # no further checking for lines with these keywords
> + if ($f =~ /^(?:default|def_bool|depends|select|imply)\b/x) {
> + next;
> + }
> +
> + my ($length, $indent) = line_stats($f);
> + if ($length > $max_line_length) {
> + WARN("CONFIG_DESCRIPTION",
> + "Kconfig help text line length ($length) too long: $f\n");
> + }
> +
> $help_length++ if ($has_help);
> }
> +
> if ($needs_help &&
> $help_length < $min_conf_desc_length) {
> my $stat_real = get_stat_real($linenr, $ln - 1);