LINUX.ORG.RU

Какие у вас отступы в коде?

 , , , ,


0

2

А как вы делаете отступы в своём коде?

  1. Пробелы, 4 пробела на отступ 443 (37%)

    ********************************************************************************************************************************************************************************************************************************************************************************************************************************

  2. Табы шириной в 4 пробела 252 (21%)

    **************************************************************************************************************************************************************************************

  3. Пробелы, 2 пробела на отступ 171 (14%)

    ***************************************************************************************************************************

  4. Я не пишу код, отстаньте от меня! 154 (13%)

    ***************************************************************************************************************

  5. Пробелы или табы в зависимости от языка 99 (8%)

    ***********************************************************************

  6. Табы шириной в 2 пробела 33 (3%)

    ***********************

  7. Табы шириной в 8 пробелов 31 (3%)

    **********************

  8. Табы для отступов, кратных ширине таба, остаток от деления пробелами 24 (2%)

    *****************

  9. Пробелы, 8 пробелов на отступ 6 (0%)

    ****

Всего голосов: 1213

★★★★★

Проверено: Klymedy ()
Последнее исправление: CYB3R (всего исправлений: 1)

Ответ на: комментарий от rupert

И как ты одними табами выравняешь следующее?

Это не индентация, а выравние и прочая красота, она делается только пробелами. Очень простое правило: отступы - табами, выравнивание - пробелами. И внезапно волосы становятся мягкими и шеколвистыми и ничего никуда не едет, а каждый в своём редакторе может выставить размер таба как ему визуально приятнее.

zink ★★
()
Ответ на: комментарий от intelfx

Пришёл в тред чтобы прочитать вот это. Есть ещё адекватные люди на лоре. Причём tabwidth в этом подходе - величиная переменная, у каждого индивидуальная, но при этом не ломающая к хренам всё форматирование.

zink ★★
()
Ответ на: комментарий от deadman

- настраиваемый таб - это миф. длина его может быть только такой, какой она была у разработчика. В других случаях форматирование уезжает нахрен (например, за 80 строк, и я не говорю про более сложные примеры)

Нихрена не миф. Если разработчик не обезьяна под кислотой, то при изменении ширины табов изменяются только уровни вложённости, а форматирование остаётся фиксированным, потому что его делали пробелами. Фиксация на 80 строках - отдельное расстройство. Если разработчик использовал табы шириной в 2 символа, а ты поставил 8 и строка уехала за 80 символов, то код от этого перестанет работать?

ну вот это и приводит к жести, когда выравнивание, например, аргументов, зависит от длины таба для вложенности, и уезжает при его измене. Также доставляет такой код тасовать, перемещая, например, условие из-под if'а: надо удалять табы справа, а не двигать код влево. Ещё весело править такой код каким-нибудь sed'ом.

Тебе как раз и расписали вариант, где на одном уровне вложенности одинаковое кол-во табов и не надо заниматься плясками с бубном при тасовках кода и прочих извращениях, в качестве бонуса ты всегда видишь где закончилась индентация и началось выравнивание для красоты.

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

То есть решать проблему криворуких кодеров мы будем радикально - уберём табы, а не будем учить правильно использовать? Проще уж прикрутить кодстайл плагин и бить линейкой по рукам, тем кто говнит в коде, а то на твой же пример легко находится контрпример - посмотри на проекты, где в разных частях кто-то использует отступ в 2 пробела, кто-то - в 4, а кто-то в 3. Как решать будем? Бить по рукам или отключим пробелы и включим обязательные табы?

zink ★★
()

Естественно tab, а толщина настраивается. Только питоно-макаки пользуют пробелы.

Lavos ★★★★★
()

Поскольку опрос составлял человек, не отличающий indentation и alignment, то

☑ Табы шириной в 4 пробела

На самом деле, «отступы — табуляцией, выравнивание — пробелами». На п***не не пишу.

Quote
()

Всех, кто использует для форматирования табы нужно отстреливать или не подпускать к компьютерам никогда. Табы существуют не для форматирования текстовых файлов. И в текстовых редакторах нужно выпилить возможность вставки символов табуляции вообще.

fenris ★★★★★
()
Ответ на: комментарий от fenris

Всех, кто использует для форматирования табы нужно отстреливать или не подпускать к компьютерам никогда. Табы существуют не для форматирования текстовых файлов. И в текстовых редакторах нужно выпилить возможность вставки символов табуляции вообще.

И тех, кто использует для индентации пробелы - тоже нужно отстреливать и не подпускать коду. Если человек не способен понять сферу применения символа табуляции, то и в коде ему делать нечего.

zink ★★
()

Как в имаксе задано ;)

;;; some variables:
(setq-default indent-tabs-mode nil)       ; never use tabs - only spaces
(setq-default indicate-empty-lines t)     ; show empty lines in the fringe
(setq c-basic-offset 4)                   ; set indentation to four spaces
(setq column-number-mode t)               ; show column numbers on the modeline
(setq require-final-newline t)            ; automatically put newline at end of file

Немаловажно, кроме всего прочего, какой еще и код в отступах.

swwwfactory ★★
()
Последнее исправление: swwwfactory (всего исправлений: 1)
Ответ на: комментарий от zink

Что может знать о сфере применения символов табуляции тот, кто родился уже (сильно) после появления на компьютерах графических морд?

fenris ★★★★★
()
Ответ на: комментарий от fenris

Что может знать о сфере применения символов табуляции тот, кто родился уже (сильно) после появления на компьютерах графических морд?

Это была попытка похвастаться возрастом? Символ табуляции в текстовых файлах отлично справляется с возложенной на него функцией - создавать уровни логические уровни индентации отделяя значение от отображения. Мартышкам, делающим выравнивание табами стоит же отрывать руки, потому что именно из-за них у табов и есть слава «поменял настройку, всё рассыпалось».

zink ★★
()
Ответ на: комментарий от fenris

Кажется, ты так нервничал и спешил, что написал какой-то бред, с чем тебя и поздравляю.

Кажется ты из лагеря тех, кто не отличает индентацию и выравнивание. Как, впрочем, и большинство любителей форматирования пробелами.

Могу ещё раз тебе прожевать: отступы, показывающие уровень логической вложенности - табами, выравнивание текста на одном уровне логической вложенности (чтобы переменные, например, шли друг под другом) - пробелами. В таком случае визуальное выравнивание блока кода не уезжает никуда при изменении отображаемого размера таба.

За пример как выше по треду: отступы делаются кашей из табов и пробелов или выравнивание кода внутри одного блока делается табами и добивается пробелами - стоит отрывать руки по самые гланды.

zink ★★
()
Ответ на: комментарий от zink

Но ведь табы как раз и существуют для выравнивания столбиков текста, то есть для таблиц. Табуляция для таблиц - правда гениально? Кто бы мог подумать?

Для отступов их начали использовать чтобы экономить место на диске. Смекалочка! В итоге имеем сегодня толпу беснующихся идиотов, которые без задней мысли делают ими отступы, при том, что им даже не требуется ничего экономить. Более того, некоторые пытаются выдумать рациональное обоснование, не понимая того, что любые попытки рационально объяснять идиотские практики со стороны выглядят просто смехотворно.

fenris ★★★★★
()

Пробелы, 8 пробелов на отступ

И никак иначе!

spec_po_kiskam ★★★
()
Ответ на: комментарий от fenris

Но ведь табы как раз и существуют для выравнивания столбиков текста, то есть для таблиц. Табуляция для таблиц - правда гениально? Кто бы мог подумать?

Вот только код, внезапно, не таблица, и там почему-то выравнивание используется по верхней строчке, а не по фиксированым табстопам, поэтому именно выравнивание в коде нужно делать пробелами, а отступы - табами.

Для отступов их начали использовать чтобы экономить место на диске. Смекалочка! В итоге имеем сегодня толпу беснующихся идиотов, которые без задней мысли делают ими отступы, при том, что им даже не требуется ничего экономить. Более того, некоторые пытаются выдумать рациональное обоснование, не понимая того, что любые попытки рационально объяснять идиотские практики со стороны выглядят просто смехотворно.

Для отступов их начали использовать потому что это, чёрт побери, логично: нужен отступ, а не пробел, есть символ, который даёт этот самый отступ, всё работает. Но куча макак от программирования, которая привыкла в ворде выравнивать текст пробелами и переносами строки не может понять как символ может изменять ширину своего отображения в зависимости от настроек редактора и пытается всем рассказать, что табы - зло.

zink ★★
()
Ответ на: комментарий от zink

Ещё одна простая мысль для твоей пустой головы: форматируется всегда представление текста. То, что видишь в текстовом редакторе в форматировании не нуждается. Из непонимания этого простого факта и следуют смешные выпады про текстовые процессоры, которые ты путаешь с текстовыми редакторами, что совсем меня не удивляет. Пожалуйста, не надо мне делать смешнее, чем уже есть.

fenris ★★★★★
()

Бить за табы по голове ногами, бейсбольной битой, куском трубы, булыжником, ломать молотом кости, жечь утюгом, паяльником, поливать маслом и отправлять к открытому огню, вырывать ногти пассатижами, топить в унитазе, душить с пакетом на голове, выдавливать глаза, отрезать уши, снимать скальп, делать случайные отверстия колющими предметами, надрезать сосуды и давать медленно крови отекать от головы, что угодно.

soslow
()
Ответ на: комментарий от soslow

Бить за отступы пробелами по голове ногами, бейсбольной битой, куском трубы, булыжником, ломать молотом кости, жечь утюгом, паяльником, поливать маслом и отправлять к открытому огню, вырывать ногти пассатижами, топить в унитазе, душить с пакетом на голове, выдавливать глаза, отрезать уши, снимать скальп, делать случайные отверстия колющими предметами, надрезать сосуды и давать медленно крови отекать от головы, что угодно?

sevenredlines
()
Ответ на: комментарий от fenris

То, что видишь в текстовом редакторе в форматировании не нуждается

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

Из непонимания этого простого факта и следуют смешные выпады про текстовые процессоры, которые ты путаешь с текстовыми редакторами, что совсем меня не удивляет.

А меня не удивляет, что ты не способен понимать параллели с кашей в голове у тех, кто не умеет табами делать отступы, чтобы у них ничего не разъезжалось вне зависимости от настроек ширины таба, и тех, кто не умеет в стили в текстовых процессорах. То же самое неумение использовать инструменты по назначению и склонность к применению кривых путей обхода вместо решения проблемы.

zink ★★
()
Ответ на: комментарий от fenris

Ололо. Очередной петух с «табы были придуманы для разделения ячеек в таблицах, поэтому использовать их для отступов нельзя!!!».

А как тебе такое: пробелы были придуманы для разделения слов, поэтому использовать их для отступов нельзя.

utf8nowhere ★★★
()

Исключительно 4 пробела.

orion ★★
()
Ответ на: комментарий от zink

Если разработчик использовал табы шириной в 2 символа,
а ты поставил 8 и строка уехала за 80 символов, то код
от этого перестанет работать?

тут есть такой аспект: ты хочешь видеть тот же код, что и разработчик, или ты сам умный? Если (1), то пробелы в корне устраняют проблему. Если (2), то изменение ширины табов тебе не поможет, т.к. есть ещё куча вариантов стиля. pretty printer тебе в руки, и смотри как хочешь, но барабан на шею, когда ты будешь делать коммитопригодный патч.

Код либо вылезет за край терминала, либо поврапается, что приведёт опять же к чему-то нечитаемому. Не смертельно, но раздражает.

Опять же, форматов экрана - миллион, но текст программы хочется видеть в нормально виде, а не как редактор решит его перенести. Поэтому все вменяемые люди приняли соглашение о 80 символах. Это просто удобно. Неважно, где ты смотришь текст, он выглядит одинаково.

Тебе как раз и расписали вариант, где на одном уровне
вложенности одинаковое кол-во табов и не надо заниматься
плясками с бубном при тасовках кода и прочих извращениях, в
качестве бонуса ты всегда видишь где закончилась индентация и
началось выравнивание для красоты.

часто код ездит между уровнями вложенности (отдельный привет пистону, в котором после добавления if'a для debug'а половину файла надо двигать)

То есть решать проблему криворуких кодеров мы будем
радикально - уберём табы,

да. это решает массу проблем.

deadman ★★
()
Ответ на: комментарий от CYB3R

Я привык делать отступы ТОЛЬКО табами в 4 пробела, т. к. и 1 символ (за что я их и люблю), и нормальная длина.

Ancient
()
Ответ на: комментарий от deadman

часто код ездит между уровнями вложенности (отдельный привет пистону, в котором после добавления if'a для debug'а половину файла надо двигать)

Между уровнями вложенности проблем ездить как раз и нет. Добавил таб, убрал таб. А вот с пробелами, если они применяются и для индентации и для выравнивания при такой копипасте вылезает проблема: границы между отступами и выравниванием как раз не видно. Если копируешь ошмётку текста выравненного пробелами, да ещё и с отступами, то приходится как раз вспоминать сколько у тебя пробелов равняется одному логическому отступу.

zink ★★
()
Последнее исправление: zink (всего исправлений: 1)

Пробелы, 4 пробела на отступ
Пробелы, 2 пробела на отступ

А что, от языка количество пробелов уже не зависит?

Zmicier ★★★★★
()

А где 8 пробелов используется?

Табы для отступов, кратных ширине таба, остаток от деления пробелами - это ещё как? Не догнал.

cinyflo ★★★★★
()
Ответ на: комментарий от cinyflo

Это, короче, так: настраиваешь отображение таба в 8 знакомест, а отступ считаешь равным 4-м знакоместам.

Первый уровень вложенности отбиваешь 4-мя пробелами, следующий уровень вложенности одним табом, следующий одним табом и 4-мя пробелами и т.д.

Где такой стиль ОП-наркоман встречал, я не знаю.

utf8nowhere ★★★
()

Обычно пробелы, 4 пробела на отступ.
Сейчас мучаю ASM, здесь использую пробелы, 5 пробелов на отступ, но в функциях использую двойной отступ.

Deleted
()
Ответ на: комментарий от fenris

Всех, кто использует для форматирования табы нужно отстреливать или не подпускать к компьютерам никогда. Табы существуют не для форматирования текстовых файлов

Та шо вы говорите. Компьютер уже выбросил, барабан зарядил?

h578b1bde ★☆
()

как в pep8 написано, так и пишу

buratino ★★★★★
()
Ответ на: комментарий от zink

ты всё правильно говоришь, только есть одно «но»: к сожалению, в большинстве редакторов пробелы и табы визуально не отличаются, из-за чего тому, кто код не писал, сразу не разобраться, какой стиль используется. Поэтому следует кидать все камни в того, кто решил, что табы и пробелы - одно пустое место при визуализации. Из-за этого все проблемы и идут, ИМХО...

Sahas ★★★★☆
()

отстаньте от меня, кодеры хрЕновы

gray ★★★★★
()

Проголосовал 5 раз

af5 ★★★★★
()
Ответ на: комментарий от x3al

Не надо так категорично, иногда без них никак.

A-234 ★★★★★
()

Единственное, что показали результаты опроса - ЛОР полон упоротых программистов на python.

Alve ★★★★★
()

В своих скриптах на баше и питоне использую только табы и похер на чьи-либо бугурты.

Deleted
()

Где вариант с тремя пробелами? За что мне голосовать теперь?

yoghurt ★★★★★
()
Ответ на: комментарий от TooPar

Нет, это если у тебя пробелы — тебе запрещено что-либо кроме смузей.
Тренируй логику же.

Goury ★★★★★
()
Ответ на: комментарий от cinyflo

Табы для отступов, кратных ширине таба, остаток от деления пробелами - это ещё как? Не догнал.

Чо непонятного та? Открываешь тег, пишешь одно свойство, давишь каретку, пишешь второе. Оба свойства начинаются на одной колонке, ибо во второй строчке несколько табов + несколько пробелов

TooPar
()

Табы шириной в 2 пробела

PS. Это че, лоханы?

bookman900 ★★★★★
()

зависит от языка

kelyar ★★★★★
()

ну, что значит «у меня». Если я пишу свой проект, то — два пробела.

А если не свой, то по кодинг стайлу. Сейчас это таб длинной в четыре пробела...

shaplov ★★★
()

Всегда 2 пробела. Табы ставлю шириной тоже 2 пробела в настройках и автоматическое преобразование табов в пробелы.

AleksK ★★★
()
Ответ на: комментарий от zink

отступы - табами, выравнивание - пробелами.

За мессиво из табов и пробелов надо бить больно ногами.

rupert ★★★★★
()
Последнее исправление: rupert (всего исправлений: 1)
$ cat ~/.clang-format 
---
AccessModifierOffset: -2
ConstructorInitializerIndentWidth: 4
AlignEscapedNewlinesLeft: false
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AlwaysBreakTemplateDeclarations: false
AlwaysBreakBeforeMultilineStrings: false
BreakBeforeBinaryOperators: false
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: true
BinPackParameters: true
ColumnLimit:     120
ConstructorInitializerAllOnOneLineOrOnePerLine: false
DerivePointerBinding: false
ExperimentalAutoDetectBinPacking: false
IndentCaseLabels: false
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCSpaceBeforeProtocolList: true
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 60
PenaltyBreakString: 1000
PenaltyBreakFirstLessLess: 120
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60
PointerBindsToType: false
SpacesBeforeTrailingComments: 1
Cpp11BracedListStyle: true
Standard:        Cpp11
IndentWidth:     2
TabWidth:        8
UseTab:          Never
BreakBeforeBraces: Stroustrup
IndentFunctionDeclarationAfterType: false
SpacesInParentheses: false
SpacesInAngles:  false
SpaceInEmptyParentheses: false
SpacesInCStyleCastParentheses: false
SpaceAfterControlStatementKeyword: true
SpaceBeforeAssignmentOperators: true
ContinuationIndentWidth: 4
AlexVR ★★★★★
()

Есть ещё один допустимый вариант — три пробела. Нет, я так не пишу :-) но он допустим. Собственно говоря, допустимых вариантов четыре — 2, 3, 4 пробела или одна табуляция (и пох её ширина, ширина — это не отступ, это настройка редактора).

А вот за смешивание табов с пробелами надо руки отрывать сразу и без права обжалования.

Croco ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.