背景
当前 PTOAS 项目中不同开发者的代码风格存在差异(缩进、空格、换行等),代码审查时需要人工关注格式问题,既低效也容易遗漏。建议在 CI 流程中引入自动化的 clang-format 格式检查,确保所有 PR 提交的代码符合统一的编码风格。
建议方案
在 GitHub Actions 中添加一个 clang-format check job,大致流程如下:
- 在项目根目录下添加一个
.clang-format 配置文件,定义统一的代码风格(建议基于 LLVM 或 Google 风格,根据项目偏好微调)。
- 新增一个 GitHub Actions workflow(例如
.github/workflows/clang-format.yml),在每次 push 和 PR 时运行:
- 使用
actions/checkout 检出代码
- 安装 clang-format(可用
apt install clang-format)
- 对
src/、include/、lib/ 等目录下的 *.cpp、*.h、*.hpp 文件运行 clang-format 检查
- 若文件未格式化,workflow 失败并提示具体哪些文件需要修正
示例 workflow:
name: clang-format check
on: [push, pull_request]
jobs:
formatting-check:
name: Formatting Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: DoozyX/[email protected]
with:
source: .
extensions: cpp,h,hpp
clangFormatVersion: 18
inplace: True
预期收益
- 自动化:PR 提交时自动检查,无需人工逐行 review 格式
- 一致性:所有贡献者的代码风格统一,降低阅读成本
- 低门槛:开发者只需在本地运行
clang-format -i <file> 即可修复格式问题
- 可定制:
.clang-format 可随项目演进逐步调整
讨论
- 代码风格偏好:LLVM / Google / Chromium / 自定义?
- 是否需要先初始化一个
.clang-format 配置文件?
- 是否建议在开发流程中加入 pre-commit hook 自动格式化?
背景
当前 PTOAS 项目中不同开发者的代码风格存在差异(缩进、空格、换行等),代码审查时需要人工关注格式问题,既低效也容易遗漏。建议在 CI 流程中引入自动化的 clang-format 格式检查,确保所有 PR 提交的代码符合统一的编码风格。
建议方案
在 GitHub Actions 中添加一个 clang-format check job,大致流程如下:
.clang-format配置文件,定义统一的代码风格(建议基于 LLVM 或 Google 风格,根据项目偏好微调)。.github/workflows/clang-format.yml),在每次 push 和 PR 时运行:actions/checkout检出代码apt install clang-format)src/、include/、lib/等目录下的 *.cpp、*.h、*.hpp 文件运行 clang-format 检查示例 workflow:
预期收益
clang-format -i <file>即可修复格式问题.clang-format可随项目演进逐步调整讨论
.clang-format配置文件?