Hello, I am facing a problem while creating the configuration. I am trying to make a clang-format that formats codes without changing any codebases. Here is the question:
clang-format related config: ... BraceWrapping: AfterFunction: true ... If the configuration supports braces after function, then MACRO's formats fail. An example of the formatted MACRO is given below: ... #define RTE_RX_OFFLOAD_BIT2STR(_name) \ { \ ... If the AfterFunction is false, the functions' formats fail; here is a formatted example. ... if (devargs_str == NULL) { ... I will send the current configuration as v2. You can test it. On Mon, Apr 29, 2024 at 6:43 PM Stephen Hemminger < step...@networkplumber.org> wrote: > On Mon, 29 Apr 2024 14:32:43 +0100 > Ferruh Yigit <ferruh.yi...@amd.com> wrote: > > > On 4/29/2024 2:04 PM, Abdullah Ömer Yamaç wrote: > > > clang-format is a tool to format C/C++/Objective-C code. It can be used > > > to reformat code to match a given coding style, or to ensure that code > > > adheres to a specific coding style. It helps to maintain a consistent > > > coding style across the DPDK codebase. > > > > > > .clang-format file overrides the default style options provided by > > > clang-format and large set of IDEs and text editors support it. > > > > > > Signed-off-by: Abdullah Ömer Yamaç <aomerya...@gmail.com> > > > > > > > Overall +1 to have a format file, specially to help non-frequent > > contributors. > > > > 1. Some options are failing for me [1], I don't know if it requires a > > specific version of clang-format > > > > 2. Current options are not fully aligned with coding convention, it is > > easier to see what is not compatible by running the tool on an existing > > file [2]. > > we need to fix them. > > > > > > > > [1] > > `clang-format -i ./lib/ethdev/rte_ethdev.c` > > a. > > /home/amd/development/dpdk-next-net/./.clang-format:28:1: error: unknown > > key 'Whitespace' > > Whitespace: > > ^~~~~~~~~~ > > Error reading /home/amd/development/dpdk-next-net/./.clang-format: > > Invalid argument > > > > b. > > /home/amd/development/dpdk-next-net/./.clang-format:12:1: error: unknown > > key 'EndOfLine' > > EndOfLine: lf > > ^~~~~~~~~ > > Error reading /home/amd/development/dpdk-next-net/./.clang-format: > > Invalid argument > > > > c. > > /home/amd/development/dpdk-next-net/./.clang-format:15:1: error: unknown > > key 'File' > > File: > > ^~~~ > > Error reading /home/amd/development/dpdk-next-net/./.clang-format: > > Invalid argument > > > > > > > > [2] > > `clang-format -i ./lib/ethdev/rte_ethdev.c` (with failing part commented > > out) > > `git diff` > > > > A few diff samples to fix at first glance: > > ``` > > static const struct rte_eth_xstats_name_off eth_dev_txq_stats_strings[] > = { > > - {"packets", offsetof(struct rte_eth_stats, q_opackets)}, > > - {"bytes", offsetof(struct rte_eth_stats, q_obytes)}, > > + {"packets", offsetof(struct rte_eth_stats, q_opackets)}, > > + {"bytes", offsetof(struct rte_eth_stats, q_obytes)}, > > }; > > ``` > > > > ``` > > -enum { > > - STAT_QMAP_TX = 0, > > - STAT_QMAP_RX > > -}; > > +enum { STAT_QMAP_TX = 0, STAT_QMAP_RX }; > > ``` > > > > ``` > > -int > > -rte_eth_iterator_init(struct rte_dev_iterator *iter, const char > > *devargs_str) > > +int rte_eth_iterator_init(struct rte_dev_iterator *iter, const char > > *devargs_str) > > ``` > > > > ``` > > RTE_ETH_FOREACH_DEV(p) > > Add this > > # Take from > # > # git grep -h '^#define [^[:space:]]*FOREACH[^[:space:]]*(' lib/ \ > # | sed "s,^#define \([^[:space:]]*FOREACH[^[:space:]]*\)(.*$, - '\1'," \ > # | LC_ALL=C sort -u > ForeachMacros: > - 'CIRBUF_FOREACH' > - 'RTE_BBDEV_FOREACH' > - 'RTE_DEV_FOREACH' > - 'RTE_DMA_FOREACH_DEV' > - 'RTE_EAL_DEVARGS_FOREACH' > - 'RTE_ETH_FOREACH_DEV' > - 'RTE_ETH_FOREACH_DEV_OF' > - 'RTE_ETH_FOREACH_DEV_OWNED_BY' > - 'RTE_ETH_FOREACH_DEV_SIBLING' > - 'RTE_ETH_FOREACH_MATCHING_DEV' > - 'RTE_ETH_FOREACH_VALID_DEV' > - 'RTE_GPU_FOREACH' > - 'RTE_GPU_FOREACH_CHILD' > - 'RTE_GPU_FOREACH_PARENT' > - 'RTE_LCORE_FOREACH' > - 'RTE_LCORE_FOREACH_WORKER' > - 'RTE_TAILQ_FOREACH' > - 'RTE_TAILQ_FOREACH_SAFE' > > >