Re: run pgindent on a regular basis / scripted manner
Peter Geoghegan <pg@bowt.ie>
On Sat, Jan 21, 2023 at 9:30 AM Bruce Momjian <bruce@momjian.us> wrote: > I don't see uncrustify or clang-format supporting typedef lists so maybe > they implemented this feedback loop. It would be good to see if we can > get either of these tools to match our formatting. I personally use clang-format for Postgres development work, since it integrates nicely with my text editor, and can be configured to produce approximately the same result as pgindent (certainly good enough when working on a patch that's still far from a committable state). I'm fairly sure that clang-format has access to a full AST from the clang compiler, which is the ideal approach - at least in theory. In practice this approach tends to run into problems when the relevant AST isn't available. For example, if there's code that only builds on Windows, maybe it won't work at all (at least on my Linux system). This doesn't really bother me currently, since I only rely on clang-format as a first pass sort of thing. Maybe I could figure out a better way to deal with such issues, but right now I don't have much incentive to. Another advantage of clang-format is that it's a known quantity. For example there is direct support for it built into meson, with bells and whistles such as CI support: https://mesonbuild.com/Code-formatting.html My guess is that moving to clang-format would require giving up some flexibility, but getting much better integration with text editors and tools like meson in return. It would probably make it practical to have much stronger rules about how committed code must be indented -- rules that are practical, and can actually be enforced. That trade-off seems likely to be worth it in my view, though it's not something that I feel too strongly about. -- Peter Geoghegan
Commits
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix comment from commit 22655aa231.
- 01529c704008 17.0 cited
-
Add a few recent commits to .git-blame-ignore-revs.
- 0df7d1da40e3 17.0 landed
-
Pre-beta2 mechanical code beautification.
- b334612b8aee 16.0 landed
-
Pre-beta mechanical code beautification.
- 0245f8db36f3 16.0 landed
-
Make agreed-on updates in perltidy options.
- df6b19fbbc20 16.0 landed
-
Remove obsolete pgindent options --code-base and --build
- b16259b3c189 16.0 landed
-
Integrate pg_bsd_indent into our build/test infrastructure.
- 156c049beed9 16.0 landed
-
Sync pg_bsd_indent's copyright notices with Postgres practice.
- b44e5fced3e5 16.0 landed
-
Import pg_bsd_indent sources.
- 4e831f4cee14 16.0 landed
-
pgindent: filter files for the --commit option
- dab07e8c6896 16.0 landed
-
pgindent: more ways to find files to indent
- 068a243b7771 16.0 landed
-
Fix pgindent --show-diff option.
- 62e1e28bf769 16.0 cited
-
Add non-destructive modes to pgindent
- b90f0b57474e 16.0 landed
-
Initial pgindent run with pg_bsd_indent version 2.0.
- e3860ffa4dd0 10.0 cited