文章

简易IO多路复用服务器 / C代码风格配置

上个周末和今天的主要工作内容是摸一个基于epoll的简易服务器出来(当然,要用C写)。理论上这玩意不是非要自己写一遍,但是一来在网上找了一圈没有特别合适的,二来也算是帮助自己进入状态一种途径。

今天预计把它的迁移做出来。如果顺利的话还可以把TLS的迁移也做一下。


一个相对符合我偏好的代码风格的ClangFormat极简配置

1
2
3
4
5
6
---
Language:               Cpp
BasedOnStyle:           LLVM
AlignAfterOpenBracket:  AlwaysBreak
IndentWidth:            4
...

自定义缩进没什么好说的。ClangFormat参数列表折行默认是对齐到开括号,即

1
2
3
foofoofoofoofoofoofoofoofoo(xxx,
                            yyy,
                            zzz)

我不喜欢这种风格,一来它会带来一个基于函数名字的任意字符宽度的缩进段落,而我希望代码中每一行都是以4的倍数个空格缩进的;二来当函数名字说长不长说短不短的时候(即还没有长到触发别的处罚机制),一大堆参数挤在靠右侧的空间里,严重偏离上下文的代码重心,实在是有点丑了。

这个配置会将代码风格转为

1
2
foofoofoofoofoofoofoofoofoo(
    xxx, yyy, zzz)

顺便,formatter也不是很好翻译,这主要是因为code formatter和disk formatter都叫formatter,导致「格式化」被后者抢注了缘故。

本文由作者按照 CC BY 4.0 进行授权