У меня есть файл C с именем asdf.c
(с этим можно воспроизвести проблему, даже если он не компилируется):
struct turn_parameters turns[][NUM_MODES] =
{
[MOVE_LEFT] =
{
{0.02, .448, 166, 260, -3. * PI},
{0.02, .448, 166, 260, -3. * PI},
{0.02, .448, 166, 260, -3. * PI},
},
[MOVE_RIGHT] =
{
{0.02, .448, 166, 260, 3. * PI},
{0.02, .448, 166, 260, 3. * PI},
{0.02, .448, 166, 260, 3. * PI},
},
[MOVE_LEFT_90] =
{
{-0.05, .8, 219, 291, -2.3 * PI},
{-0.05, .8, 219, 291, -2.3 * PI},
{-0.05, .8, 219, 291, -2.3 * PI},
},
[MOVE_RIGHT_90] =
{
{-0.05, .8, 219, 291, 2.3 * PI},
{-0.05, .8, 219, 291, 2.3 * PI},
{-0.05, .8, 219, 291, 2.3 * PI},
},
[MOVE_LEFT_180] =
{
{-0.04, .7, 400, 479, -2.5 * PI},
{-0.04, .7, 400, 479, -2.5 * PI},
{-0.04, .7, 400, 479, -2.5 * PI},
},
[MOVE_RIGHT_180] =
{
{-0.04, .7, 400, 479, 2.5 * PI},
{-0.04, .7, 400, 479, 2.5 * PI},
{-0.04, .7, 400, 479, 2.5 * PI},
},
};
Теперь, если я запускаю clang-format -i asdf.c
(используя версию 6.0.1, но могу воспроизвести и версию 5), я позволю clang-format
выполнить для меня форматирование.
Однако я бы хотел, чтобы мой код соответствовал некоторым руководствам по стилю Linux (в конце концов, я программирую на C, а не на C ++), поэтому я использую checkpatch.pl
в то же время, чтобы проверить мой стиль кода. Однако Checkpatch жалуется на то, как clang-format
отформатировал код:
src/asdf.c:2: ERROR: that open brace { should be on the previous line
src/asdf.c:4: WARNING: Statements should start on a tabstop
src/asdf.c:4: ERROR: that open brace { should be on the previous line
src/asdf.c:10: WARNING: Statements should start on a tabstop
src/asdf.c:10: ERROR: that open brace { should be on the previous line
src/asdf.c:16: WARNING: Statements should start on a tabstop
src/asdf.c:16: ERROR: that open brace { should be on the previous line
src/asdf.c:22: WARNING: Statements should start on a tabstop
src/asdf.c:22: ERROR: that open brace { should be on the previous line
src/asdf.c:28: WARNING: Statements should start on a tabstop
src/asdf.c:28: ERROR: that open brace { should be on the previous line
src/asdf.c:34: WARNING: Statements should start on a tabstop
src/asdf.c:34: ERROR: that open brace { should be on the previous line
У меня вопрос, как я могу настроить clang-format
, чтобы избежать этих ошибок / предупреждений?
Моя текущая .clang-format
конфигурация следующая:
BasedOnStyle: LLVM
IndentWidth: 8
UseTab: Always
BreakBeforeBraces: Linux
AllowShortIfStatementsOnASingleLine: false
IndentCaseLabels: false
AllowShortFunctionsOnASingleLine: false
AllowShortLoopsOnASingleLine: false