--- # clang-format 配置文件 # 用于防止 proto 文件自动换行 # ColumnLimit: 列宽限制 # 设置为 0 表示不限制列宽,不会因为行太长而自动换行 # 防止原本写在一行的代码被格式化工具强制换行 # 例如:message UserAddReq { UserVo vo = 1; } 会保持在一行,不会被拆成多行 ColumnLimit: 0 # Language: 指定文件类型 # 设置为 Proto 表示这是 Protocol Buffers 文件格式 # clang-format 会根据此设置应用相应的格式化规则 Language: Proto # IndentWidth: 缩进宽度 # 设置每次缩进使用 2 个空格 # 例如:message 内的字段会缩进 2 个空格 IndentWidth: 2 # UseTab: 是否使用 Tab 字符 # 设置为 Never 表示不使用 Tab,只使用空格进行缩进 # 这样可以保证在不同编辑器和环境下显示一致 UseTab: Never # TabWidth: Tab 字符的宽度 # 当 UseTab 为 Never 时,此选项主要用于处理已存在的 Tab 字符 # 设置为 2 表示如果遇到 Tab 字符,将其视为 2 个空格宽度 TabWidth: 2 # BinPackArguments: 函数参数打包 # 设置为 true 表示尽量将函数参数放在同一行,而不是每个参数一行 # 例如:rpc UserAdd(UserVo) returns (UserVo); 会保持在一行 BinPackArguments: true # BinPackParameters: 函数参数列表打包 # 设置为 true 表示尽量将参数列表放在同一行,避免不必要的换行 # 与 BinPackArguments 配合使用,确保参数紧凑排列 BinPackParameters: true # BreakBeforeBraces: 大括号前的换行规则 # 设置为 Attach 表示大括号紧跟在上一行末尾,不单独换行 # 例如:message UserVo { 而不是 message UserVo\n{ BreakBeforeBraces: Attach # BreakStringLiterals: 是否允许拆分字符串字面量 # 设置为 false 表示不允许将长字符串拆分成多行 # 保持字符串在一行内,即使字符串很长 BreakStringLiterals: false # SpacesBeforeTrailingComments: 行尾注释前的空格数 # 设置为 1 表示在代码和行尾注释之间保留 1 个空格 # 例如:string username = 4; // 用户名(username 和 // 之间有一个空格) SpacesBeforeTrailingComments: 1 # MaxEmptyLinesToKeep: 保留的最大连续空行数 # 设置为 1 表示最多保留 1 个连续空行 # 超过 1 个的连续空行会被合并为 1 个,保持代码紧凑 MaxEmptyLinesToKeep: 1