如何配置clang-format实现参数超列时每行一个及括号格式化
当然可以实现你想要的格式化效果!咱们通过调整clang-format的配置就能精准达成目标,以下是具体的方案:
调整后的完整配置
Language: Cpp IndentWidth: 2 ObjCBlockIndentWidth: 2 ContinuationIndentWidth: 2 ColumnLimit: 120 BinPackArguments: false BinPackParameters: false AlignAfterOpenBracket: DontAlign IndentCaseLabels: true BreakAfterOpenBracket: Always SpaceBeforeBraces: Always BraceWrapping: AfterFunction: false
配置说明与效果展示
1. 函数调用格式化(每个实参单独成行)
针对你给出的函数调用代码:
SDL_SetRenderDrawColor(renderer,153 + floor(toGreenRed * percentage),51 + floor(toGreenGreen * percentage),51 + floor(toGreenBlue * percentage),255);
格式化后会变成:
SDL_SetRenderDrawColor( renderer, 153 + floor(toGreenRed * percentage), 51 + floor(toGreenGreen * percentage), 51 + floor(toGreenBlue * percentage), 255 );
关键配置作用:
BreakAfterOpenBracket: Always:强制在左括号后换行,同时让右括号单独成行BinPackArguments: false:禁止将多个实参压缩到同一行,确保每个实参单独占一行AlignAfterOpenBracket: DontAlign:让实参直接使用缩进,无需对齐到左括号位置
2. 函数定义格式化(右括号前加空格+大括号同行)
针对你给出的函数定义代码:
void renderHealthBox( SDL_Renderer *renderer, int sideUiWidth, int yOffset, float percentage, float laksjdlkajsdlkasjdlkasjd) {
格式化后会变成:
void renderHealthBox( SDL_Renderer *renderer, int sideUiWidth, int yOffset, float percentage, float laksjdlkajsdlkasjdlkasjd ) {
关键配置作用:
BreakAfterOpenBracket: Always+BinPackParameters: false:让每个参数单独成行,左括号后换行SpaceBeforeBraces: Always:确保右括号和大括号之间有一个空格BraceWrapping.AfterFunction: false:让大括号和右括号保持在同一行(如果希望大括号单独成行,可将此值改为true)
内容的提问来源于stack exchange,提问作者ryanzec
相关产品推荐
相关产品推荐

