Форматировать фигурные скобки на одной линии в С++ VSCode

Я использую С++ Extension для VSCode (Код Visual Studio).

В настоящее время параметр "C_Cpp.clang_format_formatOnSave" установлен на true.

Этот формат мой код, когда я сохраняю свой файл на С++. Но формат приводит к фигурным скобкам на новых строках, а не в одной строке.

Текущий С++ VSCode Отформатирован

for (int i = 0; i < 10; i++)
{
    // ...
}

Что я хочу С++ VSCode Отформатированный код, чтобы выглядеть как

for (int i = 0; i < 10; i++) {
    // ...
}

У меня также есть editor.wrappingIndent, установленный на "same".

Как создать фигурные скобки в формате С++ в одной строке в коде Visual Studio?

Ответ 1

  1. Перейти Настройки → Настройки
  2. Поиск C_Cpp.clang_format_fallbackStyle
  3. Нажмите "Изменить", "Копировать в настройки"
  4. Изменить с "Visual Studio" на "{ BasedOnStyle: Google, IndentWidth: 4 }"

например,

  • "C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: Google, IndentWidth: 4, ColumnLimit: 0}"
  • Кстати, ColumnLimit: 0 тоже полезно, потому что лимит Google перебьет ваш код до следующей строки, когда он вам не нужен.

Если вы хотите больше:

Подробнее:

Английский: https://medium.com/@zamhuang/vscode-how-to-customize-c-s-coding-style-in-vscode-ad16d87e93bf

Тайвань: https://medium.com/@zamhuang/vscode-%E5%A6%82%E4%BD%95%E5%9C%A8-vscode-%E4%B8%8A%E8%87%AA%E5%AE%9A%E7%BE%A9-c-%E7%9A%84-coding-style-c8eb199c57ce

Ответ 2

clang-format - это автономный инструмент, используемый для форматирования кода C/С++. Расширение C/С++ поставляется вместе с ним, хотя у вас есть возможность указать путь к вашей собственной установленной версии clang-format на вашем компьютере, используя вариант C_Cpp.clang_format_path.

Источник стиля стиля clang (C_Cpp.clang_format_style) по умолчанию установлен на file, который читается в файле .clang-format. См. эту страницу для получения дополнительной информации о доступных параметрах стиля.

В противном случае самый простой способ, который вы, вероятно, ищете, - это просто изменить параметр C_Cpp.clang_format_fallbackStyle.

Стиль, который вы ищете, вероятно, WebKit.


Следовательно, ваш файл .vscode/settings.json должен выглядеть примерно так:

{
    "C_Cpp.clang_format_fallbackStyle": "WebKit"
}

Ответ 3

Другие ответы либо не являются полными, либо устарели, следуя приведенным ниже инструкциям.

  1. нажмите Ctrl+,, чтобы открыть настройки:

  2. Поиск C_Cpp: Clang_format_fallback Style Вы увидите значение Visual Studio

  3. Итак, измените с Visual Studio
    { BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Attach, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4 }

- Подробнее о шаге 2 - (вы можете пропустить эту часть)

  • Однако значение Visual Studio
    такой же как
    { BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4 }

  • Но нам нужно изменить одну вещь здесь, мы не хотим ломаться перед скобками (например, если, для и т.д.), Поэтому нам нужно изменить ниже:
    от: BreakBeforeBraces: Allman
    на BreakBeforeBraces: Attach

Надеюсь, это поможет.

Ответ 4

Я заметил, что принятые в настоящее время ответы больше не работают. В последней версии (1.32.3) просто откройте настройки, используя Ctrl+,, а затем Ctrl+, поиск c fallback.

enter image description here

Измените вышеуказанное значение со значения по умолчанию на LLVM и все будет хорошо!

Ответ 5

Фактическая опция формата clang:

BreakBeforeBraces: Attach