public inbox for [email protected]
help / color / mirror / Atom feedFrom: Aleksander Alekseev <[email protected]>
To: PostgreSQL Hackers <[email protected]>
Cc: Arseniy Mukhin <[email protected]>
Cc: Michael Paquier <[email protected]>
Subject: Re: [PATCH] pg_bsd_indent: improve formatting of multiline comments
Date: Fri, 20 Jun 2025 16:44:08 +0300
Message-ID: <CAJ7c6TOp_h5Ueu8tPTnmponG84oFrm3D+zFWBwae-80do6o-rA@mail.gmail.com> (raw)
In-Reply-To: <CAE7r3MJ=CcWw65=C=tET32z5joixFqMDY_XhCxvjpLcOL3nVAQ@mail.gmail.com>
References: <CAJ7c6TPQ0kkHQG-AqeAJ3PV_YtmDzcc7s+_V4=t+xgSnZm1cFw@mail.gmail.com>
<CAE7r3MJ=CcWw65=C=tET32z5joixFqMDY_XhCxvjpLcOL3nVAQ@mail.gmail.com>
Hi Arseniy,
> I tried it with the whole project and almost always it works great.
> But I noticed two cases where it works probably not as expected:
>
> 1) comments which don't have a star on each line. For example:
> file 'cube.c'
>
> before:
> /* make up a metric in which one box will be 'lower' than the other
> -- this can be useful for sorting and to determine uniqueness */
>
> after:
> /*
> * make up a metric in which one box will be 'lower' than the other
> -- this can be useful for sorting and to determine uniqueness */
>
> 2) comments where closing */ is on the last comment line. For example:
> file 'crypt-blowfish.c'
>
> before:
> /* This has to be bug-compatible with the original implementation, so
> * only encode 23 of the 24 bytes. :-) */
>
> after:
> /*
> * This has to be bug-compatible with the original implementation, so
> * only encode 23 of the 24 bytes. :-) */
Thanks for the review. You are right, these comments shouldn't be affected.
It's going to be simpler to modify pgindent then. PFA the updated patch.
--
Best regards,
Aleksander Alekseev
Attachments:
[application/octet-stream] v2-0001-pgindent-improve-formatting-of-multiline-comments.patch (1.9K, 2-v2-0001-pgindent-improve-formatting-of-multiline-comments.patch)
download | inline diff:
From 66d585409a93ca5fba9035cc9e939424d9206ad9 Mon Sep 17 00:00:00 2001
From: Aleksander Alekseev <[email protected]>
Date: Fri, 20 Jun 2025 16:31:36 +0300
Subject: [PATCH v2] pgindent: improve formatting of multiline comments
Format multiline comments like this:
/* line 1
* line 2
*/
... into:
/*
* line 1
* line 2
*/
This is more consistent with what we currently have in the tree.
Author: Aleksander Alekseev
Reported-by: Michael Paquier
Reviewed-by: Arseniy Mukhin
Discussion: https://postgr.es/m/CAJ7c6TPQ0kkHQG-AqeAJ3PV_YtmDzcc7s%2B_V4%3Dt%2BxgSnZm1cFw%40mail.gmail.com
---
src/tools/pgindent/pgindent | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)
diff --git a/src/tools/pgindent/pgindent b/src/tools/pgindent/pgindent
index b7d71808924..49cb917cc5d 100755
--- a/src/tools/pgindent/pgindent
+++ b/src/tools/pgindent/pgindent
@@ -281,6 +281,9 @@ sub post_indent
# Fix run-together comments to have a tab between them
$source =~ s!\*/(/\*.*\*/)$!*/\t$1!gm;
+ # Postprocess multiline comments
+ $source =~ s!^(/\*.*?\*/)!postprocess_multiline_comment($1)!mgse;
+
## Functions
# Use a single space before '*' in function return types
@@ -289,6 +292,37 @@ sub post_indent
return $source;
}
+sub postprocess_multiline_comment
+{
+ my $source = shift;
+ my @lines = split "\n", $source;
+
+ if($lines[0] ne "/*" && $lines[-1] ne " */")
+ {
+ # Don't change comments like:
+ # /* line 1
+ # line 2 */
+ # and similar.
+ return $source;
+ }
+
+ if($lines[0] =~ m!/\*(\-|\*)!)
+ {
+ # Don't change comments that start with:
+ # /****
+ # or:
+ # /*---
+ return $source;
+ }
+
+ $lines[0] =~ s!/\*(.+)!/\*\n *$1!;
+ $lines[-1] =~ s!/(.+)\*/!/$1\n \*/!;
+
+ $source = join "\n", @lines;
+
+ return $source;
+}
+
sub run_indent
{
my $source = shift;
--
2.49.0
view thread (26+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected], [email protected], [email protected]
Subject: Re: [PATCH] pg_bsd_indent: improve formatting of multiline comments
In-Reply-To: <CAJ7c6TOp_h5Ueu8tPTnmponG84oFrm3D+zFWBwae-80do6o-rA@mail.gmail.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox