【发布时间】: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