Как автоматически сделать отступ в VSCode в операторе switch-case? - PullRequest
3 голосов
/ 17 марта 2020

Немного огорчает то, что vscode выполняет множество действий автоматически, но при использовании оператора switch-case он не делает отступ после двоеточия. Это то, что я получу, если наберу текст без вмешательства

int x = 32;
switch (x){
    case 33:
    break;
    case 32:
    break;
    default:
}

И это то, что я хотел бы увидеть

int x = 32;
switch (x){
    case 33:
        break;
    case 32:
        break;
    default:
}

1 Ответ

2 голосов
/ 17 марта 2020

Формат Clang для настраиваемых правил форматирования

Для любых потребностей форматирования в C ++ я бы рекомендовал использовать Формат Clang , который можно легко интегрировать в VS Code.

В вас Например, вы можете использовать опцию стиля IndentCaseLabels :

IndentCaseLabels (bool)

Регистр отступа помечает один уровень из оператора switch.

Когда false, используйте тот же уровень отступа, что и для оператора switch. Тело оператора Switch всегда имеет отступ на один уровень больше, чем метки регистра (за исключением первого блока, следующего за меткой регистра, который сам выравнивает код - если только IndentCaseBlocks не включен).

false:                                 true:
switch (fool) {                vs.     switch (fool) {
case 1:                                  case 1:
  bar();                                   bar();
  break;                                   break;
default:                                 default:
  plop();                                  plop();
}                                      }

Применяется к вашему примеру :

//  IndentCaseLabels: true
int x = 32;
switch (x) {
  case 33:
    void();
    break;
  case 32:
    break;
  default:
}

//  IndentCaseLabels: false
int x = 32;
switch (x) {
case 33:
  void();
  break;
case 32:
  break;
default:
}

Интеграция формата Clang в код VS

Цитирование Редактирование C ++ в коде Visual Studio из документации кода VS [ выделение мое]:

[...]

Форматирование кода

Расширение C / C ++ для кода Visual Studio поддерживает форматирование исходного кода, используя clang-format, который включен с расширением .

. Вы можете отформатировать весь файл с помощью Формат документа (Ctrl + Shift + I) или только текущий выбор с помощью Выбор формата (Ctrl + K Ctrl + F) в контекстном меню, вызываемом правой кнопкой мыши. Вы также можете настроить автоматическое форматирование со следующими настройками:

  • editor.formatOnSave - для форматирования при сохранении файла .
  • editor.formatOnType - для форматирования при вводе (срабатывает на символе ;).

По умолчанию для стиля clang-формата установлено значение «file», что означает выглядит для файла .clang-format внутри вашей рабочей области . Если файл .clang-format найден, форматирование применяется в соответствии с настройками, указанными в файле. Если файл .clang-format не найден в вашем рабочем пространстве , форматирование применяется на основе стиля по умолчанию, указанного в настройке C_Cpp.clang_format_fallbackStyle. В настоящее время стиль форматирования по умолчанию - «Visual Studio» , что является приблизительным значением форматера кода по умолчанию в Visual Studio.

[...]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...