【问题标题】:uncrustify: how to combine arguments of multiline C function call on to a single line?uncrustify:如何将多行 C 函数调用的参数组合到一行?
【发布时间】:2020-06-02 15:10:53
【问题描述】:

我正在使用 uncrustify 0.69.0(我还无法编译 0.71.0)。我有以下内容:

sendto(cmd_sock, buf, strlen(buf),
                0, (struct sockaddr *)&fromCmd,
                sizeof(struct sockaddr_in));

我希望 unrustify 将它们组合成一行:

sendto(cmd_sock, buf, strlen(buf), 0, (struct sockaddr *)&fromCmd, sizeof(struct sockaddr_in));

这个 2012 年的旧问题类似,但在更旧版本的 uncrustify 中存在并且没有解决方案: Uncrustify Collapse Multiline Function Call 今天有解决办法吗?

2020-07-27- 我试图发表评论,但它限制了我几乎没有任何价值。所以我正在更新我原来的问题...... 奇怪 - 在我的配置文件中找不到 nl_func_call_args.... 但这是:

# Whether to add a newline after each ',' in a function call if '(' and ')'
# are in different lines.
nl_func_call_args_multi_line    = false    # true/false

请注意,这些选项不允许“删除”。在我回到 .67 的所有配置文件中进行搜索没有找到 nl_func_call_args。如果删除任何 .uncrustify.cfg 并运行 uncrustify --update-config 将找不到 nl_func_call_args。当我获得新版本的 uncrustify 时,我总是运行默认设置并分析发生了什么变化。这是我可以信任配置的唯一方法。我原来的问题仍然存在。这是关于为 C 代码创建标准。我看到很多疯狂的函数调用格式,尤其是近年来。使其成形的唯一方法是首先删除所有多行废话。然后我可以根据需要编辑为更好的格式。否则,我正在编辑每一行。根据记录,我自 1981 年以来一直在编写 C,并且几乎 100% 坚持 K&R。我有一些偏差。我也使用 VI,所以我仍然希望代码遵守原始 VI 中的所有格式功能,这样这个编辑器才能正常工作。 问候 老unixguy

【问题讨论】:

  • 这不是让代码变得更难阅读吗?
  • 你试过删除换行符吗?
  • @ThomasMatthews - 我认为他们希望重新格式化程序自动执行此操作;我认为这个问题是一个通用的重新格式化规则,而不是如何手动编辑一行。
  • 有什么理由让它成为一行吗?它不会影响代码的性能。不影响编译或构建速度。节省的文件大小可以忽略不计。
  • 重新格式化代码严格来说是关于可读性和强制执行通用样式,而不是性能。

标签: c++ c function-call uncrustify


【解决方案1】:
# Add or remove newline after each ',' in a function call.
nl_func_call_args               = remove   # ignore/add/remove/force

该选项于 2016-06-27 (796b5ba5) 引入

【讨论】:

  • strange.... not found in my config files.... 但这是: # 是否在函数调用中的每个 ',' 后添加换行符 if '(' and ')' # 在不同的行。 nl_func_call_args_multi_line = false # true/false
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-26
相关资源
最近更新 更多