Что делает Force в Uncrustify?

Многие параметры включают параметр значения Force:

Добавить или удалить пробел между вложенными скобками

sp_paren_paren { Ignore, Add, Remove, Force }

Что это значит? Чем он отличается от Add?


person Brandon O'Rourke    schedule 03.01.2012    source источник


Ответы (3)


Добавить означает «добавить, если еще нет», что означает, что если что-то уже есть, оставьте это (и форматирование в покое). Force означает добавить, если нет, и переформатировать, если он присутствует:

// Original
if (cond)         {
    func();
}

// Add curly braces (already present, leaves formatting alone)
if (cond)         {
    func();
}

// Force curly braces
if (cond) {
    func();
}

Или другой пример:

// Original
if (cond)
    func();

// Add curly braces
if (cond) {
    func();
}

// Force curly braces (behaves just like add in this case)
if (cond) {
    func();
}
person Chris Eberle    schedule 03.01.2012

Add добавляет, если его нет.

Remove удаляет, если он есть.

Force делает remove, затем add.

person edwinc    schedule 15.08.2013

Как «Добавить или удалить X между A и B»

Add: добавляет a X только тогда, когда X не появляется

AB -> AXB
AXB -> AXB
AXXB -> AXXB

Remove: удаляет все появившиеся X

AB -> AB
AXB -> AB
AXXB -> AB

Force: как сказал edwinc Remove, затем Add -> Сначала удаляет все (любые) X и, наконец, добавляет a X

AB -> AXB
AXB -> AB -> AXB
AXXB -> AB -> AXB

Но иногда «добавить X» может быть определено как добавление некоторого числа X в другом месте, поэтому Force понравится «переформатировать», как сказал Крис.

person ob.yann    schedule 04.02.2015