这篇文档将提供一些正则表达式替换组合,协助您的代码通过cpplint的检查,减少您的工作量。以ST作为示例
\<(if|while|for)(?: {2,}|)\(→\1 (\)(?: {2,}|)\{→) {([;,])([\+\-a-zA-Z\_\&\*\!\(\-\+)])→\1 \2\t→([^ ]|[\da-zA-Z\_])(\|\||\&\&|\+\+|\-\-|/\*|\*/|<<|>>|\%\=|//|[\+\-\*\/\!><\=\|\&\^]\=?)([^ ]|[\da-zA-Z\_\(])(?!$)→\1 \2 \3
这个组合并不是十分完美,对于头文件引用和模板声明的语句会错误的处理,使用这个组合之后注意手动修改。(\)|[\da-zA-Z\_])(?: {2,}|)\{→\1 {\}(?: {2,}|)([\da-zA-Z\_])→} \1(\+\+|\-\-) {2,}([\da-zA-Z\_])→\1\2([\da-zA-Z\_]) {2,}(\+\+|\-\-)→\1\2% {2,}([ulfdI\.])→%\1$→(empty)\!(?: {2,})([\da-zA-Z\_\(])->!\1
建议按照顺序进行替换,可以写成python脚本进行自动替换,这些组合不能为你解决所有的问题,但是可以大幅减轻代码规范化的工作量,如果您的代码风格很糟糕(像我一样),这些组合是十分适合您的,但仍需要您参照cpplint给出的意见进行少量的手动修改
欢迎丰富并纠正这些组合!