c - clang-format 通过宏格式化函数声明
问题描述
我有一组文件,其中使用宏定义函数。简化版如下:
#define DECL_GPO(prefix, name, port, pin, def) \
static inline void prefix##_Set_##name (uint32_t v) \
{ \
if(0!=v) { \
GPIO##port->DR_SET = (1 << pin); \
} else { \
GPIO##port->DR_CLEAR = (1 << pin); \
} \
}
#define DECL_DigOut(name, port, pin, def) DECL_GPO(DigOut, name, port, pin, def)
/* intentionally badly formatted */
DECL_DigOut(LED0, 4, 23, 0) DECL_DigOut(LED1, 4, 25, 0)
DECL_DigOut(MAIN_HW0, 3, 14, 0)
DECL_DigOut(MAIN_HW1, 3, 15, 0)
DECL_DigOut(MAIN_HW2, 3, 16, 0)
我.clang-format
的是这个
尝试格式化上面的文件,我得到:
#define DECL_GPO(prefix, name, port, pin, def) \
static inline void prefix##_Set_##name(uint32_t v) \
{ \
if (0 != v) \
{ \
GPIO##port->DR_SET = (1 << pin); \
} \
else \
{ \
GPIO##port->DR_CLEAR = (1 << pin); \
} \
}
#define DECL_DigOut(name, port, pin, def) DECL_GPO(DigOut, name, port, pin, def)
DECL_DigOut(LED0, 4, 23, 0) DECL_DigOut(LED1, 4, 25, 0) DECL_DigOut(MAIN_HW0, 3, 14, 0) DECL_DigOut(MAIN_HW1, 3, 15, 0)
DECL_DigOut(MAIN_HW2, 3, 16, 0)
但是,我希望函数声明列表DECL_DigOut
是每行一个。
如何使用 clang 格式实现这种行为?
解决方案
推荐阅读
- python - “AsyncIOMotorLatentCommandCursor”对象不可下标
- javascript - 如何将样式传递给子组件并将其用作 Vue 中的作用域样式?
- function - 自行更新的 Flutter 模型
- ruby - Inspec - 控制源代码错误 - 503“服务不可用”
- c++ - 我在 C++ 中的输出有问题,最后两次打印不起作用
- python - 错误:json.decoder.JSONDecodeError:预期值:第 1 行第 1 列(字符 0)
- if-statement - 是否有检查范围内相同值的功能?
- elasticsearch - 如何在不使用 Filebeat 或 Logstash 等任何日志传送器的情况下将日志存储在 Elasticsearch 中?
- vba - VBA - 未找到命名参数
- spring-boot - 如何设置 x 轴的最小值最大值取决于 Chartjs 和 Spring Boot 的数据?