git diff --ignore-space-at-eol --ignore-space-change --ignore-all-space
时,您会得到零差异线。我想避免这种情况,即格式化的代码在某种程度上更糟,因此人们避免了将来通过clang-format之类的方法来使我们的代码库更好的尝试。在我们的情况下,至少我们可以同意仅空格,制表符为4个空格。因此,仅改善缩进只是一件好事。
Eclipse具有“校正缩进”的功能(通过菜单->源->校正缩进):
Eclipse的“正确缩进”仅执行缩进,但它不是shell命令,我想要/需要shell命令,以便可以在所有源代码文件上运行该命令。
例如只有空格的4个空格。
答案 0 :(得分:1)
Clang格式始终使用默认格式。您可以对其进行自定义。如果不指定样式,则选择clang格式的默认值。 [1],[2]
不幸的是,您不一定必须仅修复缩进。
KamilCuk在对您的问题的评论中建议使用indent
,可能是指https://www.gnu.org/software/indent/
我考虑过配置仅缩进的自定义样式,但是不幸的是,在遍历样式选项时,有些样式可能会更改代码库,具体取决于代码库的外观,例如AllowShortIfStatementsOnASingleLine
这不允许
if (a)
return ;
else {
return;
}
if (b) return ;
else {
return;
}
因此,您可能会找到一个适用于您的代码库的特定配置,但这将是非常具体且脆弱的。
[1]
配置文件可以由几个部分组成,每个部分具有不同的Language(语言):参数表示编程语言,此配置部分针对该语言。有关支持的语言列表,请参见下面的“语言”选项的描述。第一部分可能没有设置语言,它将为所有语言设置默认样式选项。特定语言的配置部分将覆盖默认部分中设置的选项。
https://clang.llvm.org/docs/ClangFormatStyleOptions.html#configuring-style-with-clang-format
[2]
本节列出了受支持的样式选项。为每个选项指定值类型。对于枚举类型,可能的值既指定为C ++枚举成员(带有前缀,例如LS_Auto),也指定为可在配置中使用的值(不带前缀:Auto)。
BasedOnStyle(字符串) 未在配置中专门设置的所有选项所使用的样式。
https://clang.llvm.org/docs/ClangFormatStyleOptions.html#configurable-format-style-options
答案 1 :(得分:0)
我没有可以在所有源文件上执行此操作的Shell脚本,但是,我使用VSCode允许我在settings.json中指定clang格式回退样式,以便每次保存文件时,它将一致的格式始终应用于每个格式。这是我的settings.json C_Cpp.clang_format_fallbackStyle的示例,其缩进宽度为4。
if(isset($user['password']) && password_verify($password, $user['password'])){
https://clang.llvm.org/docs/ClangFormatStyleOptions.html本文档将说明此选项的不同参数和值。对于您的具体问题,我将查看“ IndentWidth”和“ UseTab”。