Символы табуляции в исходниках это бесконечное зло. А зло в квадрате, когда табуляция используется не только для отступов слева, но как разделитель (например, между аргументами функций, в теле блоков комментариев и т.д.). Ничего, кроме криков из другого конца комнаты типа "какая б... опять дописала кусок в моем неприкосновенном исходнике на С в Эклипсе, используя пробелы вместо табов, так что у меня тут в vi съехали все отступы?". И тут оба неправы. Первый в том, что не использовал тип отступов, принятый уже в существующем документе, а второй в том, что использовал табуляцию изначально. Все шоколадно и солнечно, когда все сидят в Студии, но когда один использует vi, другой Студию, третий - FAR и т.д. (а это, увы, реалии много-платформенной разработки), то невозможно, чтобы все следовали правилу. Никто не любит соблюдать неудобные правила.
Лично я очень спокоен на тему стиля в целом и длины отступов в частности (лишь бы выглядело читабельно и соответствовало принятому для проекта соглашению), но вот табуляция это как красная тряпка.
Ситуация усугубляется тем, что мы сопровождаем много кода, которому более двадцати лет, а тогда табуляция была еще ой как в ходу. Вот и приходится уговаривать людей проводить централизованные периодические зачистки кода от мусора прошлых лет, так как нет ничего хуже, когда человек совмещает смысловой коммит с "небольшими стилистическими правками", типа удаления табуляций, разбиения длинных строк и т.д. В целом, в этом не ничего плохого, но после таких "небольших правок" слияние веток становится кошмаром.
Подписаться на:
Комментарии к сообщению (Atom)
Eclipse: Ctrl-A, Ctrl-Shift-F.
ОтветитьУдалитьА теперь тоже самое для: FAR (F4), UltraEdit, Notepad++, vi, vim, kedit, gnome-editor. Это только редакторы, которые я помню из у нас использующихся. Эклипс хорош для Явы, но к сожалению в мире С и С++ сложно кого-то убедить, что Эклипс - это самая лучшая среда для работы. Поэтому народ работает там, где ему удобнее.
ОтветитьУдалитьА чем плоха табуляция, т.е. почему нельзя использовать ее во всех перечисленных редакторах? Тем что длинна отступов для табуляции может различаться в таких случаях? но по идее этот параметр в нормальном редакторе должен быть настраиваемым.
ОтветитьУдалитьСам работаю в конторе, где все используют MSVS, поэтому проблема для меня неочевидна :)
Те, у кого таб выглядит на 8 позиций никогда не будет доволен исходником, созданным автором с табом в 3 позиции. И тем более никто не будет подстраивать редактор под каждый исходник, так как это утомляет, и все на это забивают.
ОтветитьУдалитьЯ же говорил, если все сидят в Студии, проблем нет. ;-)
Мне лично не нравится прыгать по каждой позиции,
ОтветитьУдалитькогда по левой части курсором бегаю. С табом то,
он четко на начала строк кода встает.
Может кто знает, автоматический расстановщик табов, пробелов, переносов строк и т.д. для C++?
Кстати в QtCreator 1.1 тоже: Ctrl+A, Ctrl+I
indent многое умеет в этом плане.
ОтветитьУдалить"Все шоколадно и солнечно, когда все сидят в Студии"
ОтветитьУдалитьИ то не всегда. Я одно время работал в команде, в которой ребята настраивали Студию каждый под себя. Были и такие, которые меняли размер таба. Например, один товарищ установил размер таба равным одному символу. Всё бы было нормально, если бы он везде ставил табы. Но в его коде табы и пробелы существовали вместе, и соотношение было примерно 50 на 50. В одной строке в качестве отступа запросто могло быть "таб-пробел-таб". Можете себе представить, как это выглядело, когда его код открывали другие программисты.
По поводу автоматического расстановщика табов, пробелов, переносов строк и т.д - vim это все умеет, как и Студия, кажется. Вообще современные IDE и многие редакторы это умеют.
Как вариант можно настроить AStyle перед очередным коммитом производить обработку исходников
ОтветитьУдалить