uncrustify - 如何使用 uncrustify 对齐函数声明?
问题描述
我正在尝试使用 uncrustify 复制 GNU 编码标准。我的程序有以下函数声明,
static void connect_to_server_cb1 (GObject *source_object,
GAsyncResult *result,
gpointer user_data);
static gboolean connect_to_server_cb2 (GObject *source_object,
GAsyncResult *result,
gpointer user_data);
static void connect_to_server_cb3 (GObject *source_object,
GAsyncResult *result,
gpointer user_data);
我期待输出如下,
static void connect_to_server_cb1 (GObject *source_object,
GAsyncResult *result,
gpointer user_data);
static gboolean connect_to_server_cb2 (GObject *source_object,
GAsyncResult *result,
gpointer user_data);
static void connect_to_server_cb3 (GObject *source_object,
GAsyncResult *result,
gpointer user_data);
我应该尝试哪个配置选项来实现这一点?
解决方案
我不确定 uncrustify 是否可以完全满足您的要求。您可以尝试使用gcu-lineup-parameters
来自GNOME C Utils的程序对输出进行后处理,例如,Nautilus 已经使用了该程序。Nautilus 源代码树包含一个run-uncrustify.sh 脚本,它为每个文件执行此操作:
# Aligning prototypes is not working yet, so avoid headers
"$UNCRUSTIFY" -c "$DATA/uncrustify.cfg" --no-backup "$FILE"
"$DATA/lineup-parameters" "$FILE" > "$FILE.temp" && mv "$FILE.temp" "$FILE"
如果您只想处理 .c 文件,这应该可以工作,但评论表明在标头中对齐原型更加困难。
推荐阅读
- java - UDP传输后将字节编码数据转换回int32的问题
- excel - 如何循环一个 vlookup 来汇总多个工作表中的数据
- python - 使用 pandas.io.json.json_normalize 时如何将元字段设置为可选?
- filebeat - Filebeat TCP 输入使用
- c++ - 如何在 C++ 中读取 .bib 文件?
- ruby-on-rails - 从 2.3 升级到 5.2.3 的路由匹配错误
- javascript - 使用 Jest 在线测试 Firestore 时出错:“Auth error:TypeError: fetch is not a function”
- prolog - 如何在 Prolog 中制作一个程序来识别用户输入的名词的性别、复数和大小写?
- r - 将 XML 文本读入 tibble
- gradle - gradle:调用另一个项目下的成绩文件