Что делает «Сила» в Uncrustify? - PullRequest
37 голосов
/ 04 января 2012

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

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

sp_paren_paren {Ignore, Add, Remove, Force}

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

Ответы [ 3 ]

42 голосов
/ 04 января 2012

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

// 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();
}
8 голосов
/ 15 августа 2013

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

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

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

1 голос
/ 04 февраля 2015

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

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

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

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

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

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

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

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

...