Получил в наследство проект объемом ~250КБ исходников на C. Практически весь код написан в таком стиле: Код (Text): void main() { int i,j; int d,d1; ... for(i=0;i<somevalue;i++) buffer[i]=0x00; ... if(...) { func1(); func2(); ... funcN(); } else { func3(); func4(); } ... if(...) func5(0xffff,&buffer[0],512); Первым делом нужно этот кошмар привести в читаемый вид, иначе можно получить вывих мозга. Требуется форматтер, который сделает нормальную лесенку и расставит пробелы, при этом не испортив кодировку. http://prettyprinter.de/ в дауне. http://tools.arantius.com/tabifier и http://ctrlq.org/beautifier/ выдают лажу. Хэлп! SOS!
Она же наверняка потребует, чтобы код сперва собрался и только потом станет его форматировать (аналогично MS Visual Studio)? Пока прогнал через AStyle, появились отступы, но не появилось пробелов. И вещи вроде for(i=0;i<somevalue;i++) buffer=0x00; остались в одну строку. Исходники изначально из Code Composer Studio.
Не потребует Фича называется Edit/Advanced/Format document (or Format Selected) Помимо прочего Studio хороша тем, что там есть эмулятор МК. Можно отлаживать и оптимазить код не имея перед собой железки. Конечно, если вы работаете над ардуиновским проектом...
Увы, код под сигнальный процессор от Texas Instruments, IDE у них ужасно кривая и неудобная, еще и компилятор иногда неправильно компилирует - одно сплошное удовольствие Спасибо, попробую.
В моей версии Code::Blocks сидит AStyle, я через него уже вчера попробовал прогнать исходники. К сожалению, строки типа if(Adr>0) Adr=Adr-1; так и остались в неизменном виде - переноса с отступом не добавилось, пробелов тоже prettyprinter.de все еще лежит. У него зеркала случайно нигде нету?
Нашел нужную галку, ощутил блаженство Спасибо! Осталось найти великий замысел в строчках типа этой: Код (Text): for(i = 0; i < 512; i++) buf[i] = (0 & 0xff);
Не нашел пока только способа превратить Код (Text): if(mode == 0) k1 |= 0x08; в Код (Text): if(mode == 0) k1 |= 0x08; Перерыл весь мануал. В остальном все красиво.
А зачем? Ну... эмм... а я вот пишу так: Код (Text): if ((0 == mode) && (x > y)) doSomething(); Код (Text): if ((0 == mode) && (x > y)) { doSomething(); } Код (Text): if ((0 == mode) && (x > y)) { doSomething(); doSomethingElse(); } Преобладает 2 (3) вариант. У вас получается интересный гибрид - и точку отладки можно в цикл поставить и строчки под скобки не тратятся.
Я давно так не пишу. С тех пор, как убил около недели на поиск бага.... Допиливал либу. Добавил строку внутрь if. Код (Text): if(mode == 0) k1 |= 0x08; k2 <<= 3; Позднее оказалось, что думал, что добавил внутрь. Из-за отсутствия скобок вторая строка оказалась за пределами конструкции if и пошло поехало. С тех пор только так: Код (Text): if (mode == 0) { k1 |= 0x08; k2 <<= 3; } else { k1 &= ~0x08; }