为什么使用 astyle
我们公司对代码风格要求非常的严格,要求严格准寻 nginx style,以至于在这里浪费了非常多的时间。
到现在,即使是 GPTCHAT,也没有办法重构代码,给函数取一个合适的名称。 但是代码的缩进和换行能够让工具来做已经是非常现实和常规的操作。 这里给出 astyle 的配置,让代码基本遵循 nginx style 的风格,但是结果仍然需要手工调整。 比如,函数之间是两个换行,结构体声明之间也是两个空行等等。
当然,我很希望能够使用 clang-format 来实现格式化,毕竟 clang 的社区更加的活跃。奈何 clang 的配置项实在太多了,都不知道要怎么配置才能达到要求。
astyle 的配置
将下面的配置保存在 ~/.astylerc 文件下,执行 astyle code-file.c
这样在命令即可。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
--style=linux
--indent=spaces=4
--indent-modifiers
--indent-switches
--indent-namespaces
--indent-preproc-block
--min-conditional-indent=0
--pad-oper
--pad-header
--unpad-paren
--delete-empty-lines
--align-pointer=name
--align-reference=name
--convert-tabs
--close-templates
--max-code-length=80
--break-after-logical
--break-blocks=all
--suffix=none
--add-braces
--lineend=linux
--break-return-type
--attach-return-type-decl
astyle 下载
Linux 的版本记得下载 tar.gz 的,否则无法正常编译。
https://sourceforge.net/projects/astyle/files/astyle/astyle%203.2/
astyle 编译
1
2
3
4
5
tar -xf astyle-3.2.1.tar.bz2
cd astyle-3.2.1/build
cmake ../
make -j8
sudo make install