Как получить операторы case, выровненные по одной строке, в коммутаторе, используя clang-format

Я бы хотел, чтобы формат clang-format выглядел следующим образом:

switch (x)
{
case long_name: return 1;
case sn:        return 2;
}

Параметр AllowShortCaseLabelsOnASingleLine помещает их в одну строку,
но я не нашел способа выровнять операторы.


person sp2danny    schedule 14.06.2017    source источник
comment
Это, кажется, больше проблема с вашей IDE. Какой из них вы используете?   -  person U. W.    schedule 22.08.2019
comment
@U.W. clang-format — это внешний инструмент для форматирования кода. делать с конкретной IDE.   -  person Human-Compiler    schedule 22.08.2019


Ответы (1)


На данный момент невозможно сделать то, что вы просите, с помощью ClangFormat.

Официальное объяснение, почему это так:

Каждый дополнительный вариант стиля увеличивает стоимость проекта в формате clang. Некоторые из этих затрат влияют на саму разработку Clang-формата, так как нам нужно убедиться, что любая данная комбинация опций работает и что новые функции никоим образом не нарушают ни одну из существующих опций. Конечные пользователи также несут затраты, поскольку варианты становятся менее заметными, и людям приходится думать и принимать решения о вариантах, которые им на самом деле не нужны.

Цель проекта clang-format больше связана с действительно хорошей поддержкой ограниченного набора стилей, а не с поддержкой каждого отдельного стиля, используемого кодовой базой где-то в дикой природе. [...]

Единственный способ сделать что-то подобное - это:

  1. Предложите вариант стиля разработчикам;
  2. Подождите, пока не добавится нужный вариант стиля;
  3. Используйте альтернативу ClangFormat, которая способна выравнивать операторы.

Источники:

  1. https://clang.llvm.org/docs/ClangFormatStyleOptions.html#configurable-format-style-options
  2. https://clang.llvm.org/docs/ClangFormatStyleOptions.html#adding-additional-style-options
person NemPlayer    schedule 22.08.2019