1

我需要仅对正在提交的 C/C++ 文件的一部分进行样式设置(因此其他行的责任是完整的)。有什么工具可以做到这一点吗?我知道我们可以对整个文件进行样式设置并责备忽略样式更改(但我的团队不希望这样)。

以下是我用astyle尝试过的一些事情:

  1. 我将差异写入一个新文件并设置样式并替换原始文件中的差异部分 - 为什么它不起作用?它并没有真正得到样式,因为它没有上下文,例如 if 语句缩进其余行等。

  2. 我设置了整个文件的样式并仅替换更改的部分。- 为什么它不起作用?如果我尝试更改最大代码长度并且行被分解,那么差异行是不同的。

  3. 原始文件和包含样式差异的文件之间的 3 路合并怎么样?还是要试试这个。

可能有更简单的方法,我想念它:S

4

2 回答 2

1

你可以使用 git hook 和 clang-format 来做到这一点。

例如:https ://llvm.org/svn/llvm-project/cfe/trunk/tools/clang-format/git-clang-format

于 2017-06-12T15:26:22.300 回答
0
  1. 您可以使用lint-diffs(一个 Python 脚本)并运行clang-tidy并让您的 CI 工具或 git hooks报告(不正确)样式错误和其他仅针对您的差异的静态检查。这可以配置为使用任何 vcs 和多种语言。

  2. 您可以使用clang-format-diff.py,它是 clang 附带的一个 python 脚本。它需要一组统一的差异并将它们用于 clang-formats-lines参数。通常,'-lines' 参数是您告诉 clang-format 哪些行可以更正的方式。

于 2020-02-24T15:53:45.843 回答