From 59834db472101b3577f530c7fb3f991d28518b80 Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Sat, 9 Apr 2022 12:22:46 -0400 Subject: Add documentation for code formatting and contribution guidelines --- TODO | 55 ------------------------------------------------------- 1 file changed, 55 deletions(-) (limited to 'TODO') diff --git a/TODO b/TODO index 1d1cb8b0..7e42c7d4 100644 --- a/TODO +++ b/TODO @@ -6,7 +6,6 @@ Next In order: * cmake -* code formatting * PointerHolder -> shared_ptr * ABI including --json default is latest * json v2 @@ -38,60 +37,6 @@ Misc Soon: Break ground on "Document-level work" -Code Formatting -=============== - -Document about code formatting: - -* Use clang-format-15. -* Update README-maintainer about formatting. Mention - - // clang-format off - // clang-format on - - as well as the use of a comment to force a line break. Convention: - // line-break - -* .dir-locals.el -- most of the time, emacs's formatting agrees with - clang-format. When they differ, clang-format is authoritative. - Significant differences: - * clang-format-15 bug that when - - type function(args) - - is longer than 80 characters, the continuation line rule takes - precedence over the break after type rule and the function ends - getting intended. (Find an example and report.) - * Emacs doesn't indent breaking strings concatenated with + over - lines but clang-format does. It's clearer with clang-format. To - get emacs and clang-format to agree, parenthesize the expression - that builds the concatenated string. - * With - - long_function(long_function( - args) - - clang-format anchors relative to the first function, and emacs - anchors relative to the second function. Use - - long_function( - // line-break - long_function( - args) - - to resolve. -* Consider blame.ignoreRevsFile if it seems to help -* Add a script to format the code. - - for i in **/*.cc **/*.c **/*.h **/*.hh; do - clang-format < $i >| $i.new && mv $i.new $i - done - -* Consider a github action to check formatting. I don't want - formatting failures to prevent all the tests from being run. - Alternatively, add running the format script as a release - preparation check like running the spell checker. - cmake ===== -- cgit v1.2.3-54-g00ecf