Здравствуйте, Lexey, Вы писали: L>Хотя, предпочту я такой стиль: L>
L> public void SomeFunction(int a
L> , int b
L> , string c)
L> {
L> }
L>
Запятая в начале строки, для того, что бы, при добавлении строки, нужно было изменить одну строчку вместо двух? )
Задолбали эти стили, если честно. По одному гайду надо так скобку ставить, по другому сяк, по третьему наперекосяк.
Нет бы, делали так, что-бы компилятор, только один вариант синтаксиса переваривал.
Здравствуйте, ·, Вы писали:
·>В ruby афаир 2 пробела.
Так и есть, выше была ссылка на style guide. Два пробела, и никаких табов.
Q>>...сетка канваса редактора (при моноширинном шрифте) становится фейком. Символы занимают не те колонки, какие кажутся. Грубо говоря, управляющие символы ломают plain text. ·>Не понял почему. Что становится фейком? Что именно ломают? Почему у меня не ломают? У меня везде стоит ширина таба 4 по дефолту.
Посмотри на статус-строку в Visual Studio под открытым файлол. Видишь там цифры типа «Col 17» и «Ch 17»? При честных пробелах эти цифры одинаковые; у тебя — нет.
·>Так не получается же. А так хотя бы одной проблемой было бы меньше.
По факту, с табуляцией одной проблемой больше.
·>И как бы редакторы поддерживали разные настройки у разных пользователей? Кому-то нравится два, кому-то четыре, кому-то восемь.
С табуляцией даже для одного пользователя тяжело добиться одинакового отображения.
·>Ээ.. Это ты троллишь про "почти все программы". Как начинаю разбираться — так выясняется, таких программ одна штука, притом довольно специфичная.
Здравствуйте, UberPsychoSvin, Вы писали:
UPS>Запятая в начале строки, для того, что бы, при добавлении строки, нужно было изменить одну строчку вместо двух? )
Если добавляемая строка не становится первой или последней, то (в смысле минимальности диффа) всё равно, где запятая.
Иногда встречаются контексты, где запятую можно использовать как delimiter, а не separator. Скажем, в C# можно хвостовую запятую ставить в enum'ах или инициализации списков. Но в таких случаях запятая всегда справа от элемента, и никогда слева (как буллит в списке).
Здравствуйте, Osaka, Вы писали:
O>21й век на дворе, а до сих пор никто не приделал в редактор исходников поддержку вордовых таблиц. Вместо этого всё какие-то птичьи языки никому не нужные изобретают, и иконки обесцвечивают.
В Emacs есть редактор таблиц. И даже есть электронные таблицы в Org-Mode (заметки, Outliner, Reproducible Research а-ля Ipython/Jupyter, Literate Programming).
Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>Здравствуйте, Osaka, Вы писали:
O>>21й век на дворе, а до сих пор никто не приделал в редактор исходников поддержку вордовых таблиц. Вместо этого всё какие-то птичьи языки никому не нужные изобретают, и иконки обесцвечивают.
EP>В Emacs есть редактор таблиц. И даже есть электронные таблицы в Org-Mode (заметки, Outliner, Reproducible Research а-ля Ipython/Jupyter, Literate Programming).
Отдельно я и excel могу запустить. А вот чтобы название функции текстом, дальше таблица с параметрами {тип, имя, размер}, дальше снова текстом код. И чтобы компилятор это понимал, и diff бы отображался.
Здравствуйте, Lexey, Вы писали:
L>Ключевое слово я выделил. ИМХО, вменяемые там только варианты 1 — 3. Для меня они будут нормально выглядеть и с другим размером таба.
Ну то есть, что aaa отрывается от выравнивания с остальными, тебя устраивает. Понятно.
L>В общем, опять получается спор о вкусе фломастеров.
Вопрос в том, что ряд особенностей "вкуса фломастера" устраивает почти всех, а некоторые — слишком радикальны, чтобы кого-то устроить.
Стили, которые отработаны в большом проекте, тем и интересны, что обычно уже являются результатами консенсуса между совершенно разными людьми.
L>Начинается. Потому что новый человек лезет в старый код с другими настройками редактора. И может даже не замечать, что форматирование съехало. Результаты такого редактирования видел неоднократно.
Если у редактора нет желания переконвертить под себя всё, включая то, что не трогалось, а у человека — элементарный опыт писать более-менее похоже на то, что он видит вокруг — больших проблем не будет. На отдельные незамеченные детальки есть peer review, а если последнего нет — то и не так страшно.
L>Что такое "modeline", понятия не имею.
Механизм vim и emacs по указанию параметров форматирования для конкретного файла, задаётся строчкой из первых или последних 3 строк файла.
Как минимум предпочтение табов или пробелов там задаётся (et/noet), ширина таба (ts), стандартный отступ (sw) — это всё в названиях vim.
Здравствуйте, ·, Вы писали:
N>>·>Кстати, о теории. В теории пробелы тоже критику не выдерживают. N>>·>Представь себе альтернативную вселенную, где пробелы запрещены для отступов законодательно, высшая мера наказания и кода с пробелами не существует. Ты видишь какие-нибудь проблемы в этой вселенной?
N>>"Тысячи их" (c). N>>Какой отступ на продолжения многострочного оператора? 0, 1, 2 таба? Я видел все эти варианты. ·>Ты с темы не слезай.
Это я, оказывается, слезаю с темы?
·> Ты расскажи вначале решение этой проблемы в вселенной с пробелами.
Во-первых, не указывай другим, что делать, и они не скажут, куда тебе пойти.
Я потому и не хочу зацикливаться на одном твоём вопросе именно потому, что считаю его малосущественным по сравнению со многими другими в оформлении кода.
Во-вторых, если уж ты хочешь в первую очередь прямого ответа на это — я просто не считаю, что это проблема. В моих краях это обычно решается тем, что нажатие Tab вставляет нужное количество пробелов, а нажатие BS на пустом месте его съедает, и этого достаточно, чтобы поддерживать согласованный вариант. Я просто не вижу глубокого смысла в желании иметь какой-то плавный ползунок, которым регулировать эти отступы, расширяя и сжимая текст; но если кому-то это нужно — это реализуется и на пробелах. Да, пожалуй, ещё нельзя сказать "элементарно реализуется" — проблема в продолжениях операторов.
И вот тут как раз видно, что это ты "слезаеш с темы" — ты, а не я.
Потому что мои примеры ты поскипал и не ответил. А между тем примеры 5 и 6 как раз на тему того, как испортится выравнивание при табуляциях, меняющих длину.
·>Я не утверждал, что табы решают все проблемы, рак, думаю, они не вылечат. Они решают проблему размера отступов.
Ещё и ёрничаешь на ровном месте.
N>>Они и так это давно поддерживают. Кроме ну самых примитивных. ·>Так себе поддерживают, ибо задача не имеет простого алгоритмического решения. Никогда не попадались файлы с разным количеством пробелов в отступе в разных строках?
В смысле — часть табами, часть пробелами? Попадались. И что?
Там, где отступы принципиально важны для интерпретации (как в Python или Makefile), это вызывает просто ошибку компиляции. Там, где не важны (C с компанией), там нет проблем для машины; а для человека — один лишний раз дочистить.
Выдержка единого средства (табы или пробелы) тут важнее, чем выбор между ними; но при выборе уже между ними я предпочту пробелы из-за заведомо меньшей конфликтности для таких ситуаций.
И тут же — я участвовал в разработке софтин, в стиле которых было принято tabstop=8, но shiftwidth=4. Отступ кратный 8 делался только табами, а кратный 4, но не 8 — табы плюс 4 пробела. Между прочим, такой стиль ну очень распространён. И ты его своими "плавными" регулированиями сломаешь на корню
Здравствуйте, AndrewVK, Вы писали:
N>>Какой выберешь и почему? Как докажешь свой выбор соседу по комнате?
AVK>А зачем это нужно доказывать соседу по комнате?
Извини, я всё время забываю про существование openspace.
Здравствуйте, Osaka, Вы писали:
EP>>В Emacs есть редактор таблиц. И даже есть электронные таблицы в Org-Mode (заметки, Outliner, Reproducible Research а-ля Ipython/Jupyter, Literate Programming). O>Отдельно я и excel могу запустить.
В Org-Mode электронные таблицы (+ формулы, + изображения) вперемешку с кодом. Они могут вводится вручную, быть результатом блока кода (на разных языках), и подаваться в качестве переменной в другой блок кода.
O>А вот чтобы название функции текстом, дальше таблица с параметрами {тип, имя, размер}, дальше снова текстом код. И чтобы компилятор это понимал, и diff бы отображался.
Если нужно чтобы компилятор понимал, то придётся делать либо дополнительный препроцессинг, либо не вставлять разметку таблицы в код, а только отображать её визуально. То есть в редакторе ты будешь видеть список параметров как таблицу, а в самом исходнике всё будет по обычному. На подобную технику есть режим GlassesMode:
GlassesMode changes the way StudlyCaps/CamelCase is displayed so you can see the difference. The default setting is to separate the Capped bits with an underscore, so EmacsIsStudly shows as Emacs_Is_Studly.
При необходимости подобное можно сделать и для таблиц.
Здравствуйте, Qbit86, Вы писали:
Q>·>В ruby афаир 2 пробела. Q>Так и есть, выше была ссылка на style guide. Два пробела, и никаких табов.
Сочувствую.
Q>>>...сетка канваса редактора (при моноширинном шрифте) становится фейком. Символы занимают не те колонки, какие кажутся. Грубо говоря, управляющие символы ломают plain text. Q>·>Не понял почему. Что становится фейком? Что именно ломают? Почему у меня не ломают? У меня везде стоит ширина таба 4 по дефолту. Q>Посмотри на статус-строку в Visual Studio под открытым файлол. Видишь там цифры типа «Col 17» и «Ch 17»? При честных пробелах эти цифры одинаковые; у тебя — нет.
Эээ... И что? Почему это проблема?
Q>·>Так не получается же. А так хотя бы одной проблемой было бы меньше. Q>По факту, с табуляцией одной проблемой больше.
Объясни вначале что это проблема. Какие неудобства создаёт?
Q>·>И как бы редакторы поддерживали разные настройки у разных пользователей? Кому-то нравится два, кому-то четыре, кому-то восемь. Q>С табуляцией даже для одного пользователя тяжело добиться одинакового отображения.
Не надо повторять это. Лучше объясни что значит добиться одинакового и в чём тяжесть.
Q>·>Ээ.. Это ты троллишь про "почти все программы". Как начинаю разбираться — так выясняется, таких программ одна штука, притом довольно специфичная. Q>Так что насчёт Скайпа? Слишком специфичная?
А что не так в скайпе? Пусть рисует табы шириной в один пробел, что в общем-то логично для узкого окна чата. Считай что в коде отступы сделаны одним пробелом.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Здравствуйте, netch80, Вы писали: N>Если нужно несколько сходных записей одна под другой, и удобно сделать их на одном отступе, разрешать ли такой отступ для первой? Например: (во всех примерах 4 пробела за таб)
N>Какой выберешь и почему? Как докажешь свой выбор соседу по комнате?
Я правильно понял, что во всех примерах строчки-продолжения отбиты табами? Это — наркомания, которую надо лечить лоботомией.
Правильный вариант — это в каждой из строчек одинаковое количество табов в начале, а межстрочное выравнивание добито пробелами.
Потому что табы — это уровень nesting-а кода, который тут везде одинаков:
Здравствуйте, netch80, Вы писали:
N>>>Какой отступ на продолжения многострочного оператора? 0, 1, 2 таба? Я видел все эти варианты. N>·>Ты с темы не слезай. N>Это я, оказывается, слезаю с темы?
Ты хочешь сказать, что я слезаю? В каком месте?
N>·> Ты расскажи вначале решение этой проблемы в вселенной с пробелами. N>Во-первых, не указывай другим, что делать, и они не скажут, куда тебе пойти. N>Я потому и не хочу зацикливаться на одном твоём вопросе
Я решаю один вопрос, а ты вносишь другие. Притом они вообще никак не связаны с изначальным. Как делать _отступы_ (не выравнивание!) в многострочных выражениях от табов/пробелов никак не зависит.
N>именно потому, что считаю его малосущественным по сравнению со многими другими в оформлении кода.
Это и называется слезать с темы. Вопросы оформления кода так же малосущественны по сравнению с многими другими, которые могут возникнуть в жизни программиста. Например, как вылечить рак.
N>Во-вторых, если уж ты хочешь в первую очередь прямого ответа на это — я просто не считаю, что это проблема. В моих краях это обычно решается тем, что нажатие Tab вставляет нужное количество пробелов,
Ты мне точно скажи какое количество пробелов нужное? И объясни почему все не используют именно это количество.
N>а нажатие BS на пустом месте его съедает, и этого достаточно, чтобы поддерживать согласованный вариант. Я просто не вижу глубокого смысла в желании иметь какой-то плавный ползунок, которым регулировать эти отступы, расширяя и сжимая текст; но если кому-то это нужно — это реализуется и на пробелах. Да, пожалуй, ещё нельзя сказать "элементарно реализуется" — проблема в продолжениях операторов.
Не реализуется это на пробелах. Как мне такое реализовать на пробелах, если в окне редактора я хочу видеть четыре пробела, т.к. удобнее читать, а в окне мержа с тремя столбиками мне нужно 1 или два пробела, т.к. иначе в ширину экрана не помещается?
N>И вот тут как раз видно, что это ты "слезаеш с темы" — ты, а не я. N>Потому что мои примеры ты поскипал и не ответил. А между тем примеры 5 и 6
(5) и (6) вообще страх какой-то. Я думал ты по приколу их предложил. Они кстати разъедутся и при простом переименовании функции например. Если тебе и правда интересно моё мнение, то я предпочту (2) или может быть (3), а (1) может сгодиться если первый параметр функции какой-то особый.
N>как раз на тему того, как испортится выравнивание при табуляциях, меняющих длину.
Опять двадцать пять. Не надо путать выравниваение (alignment) и отступ (indent).
N>·>Я не утверждал, что табы решают все проблемы, рак, думаю, они не вылечат. Они решают проблему размера отступов. N>Ещё и ёрничаешь на ровном месте.
Не люблю тупую софистику.
N>·>Так себе поддерживают, ибо задача не имеет простого алгоритмического решения. Никогда не попадались файлы с разным количеством пробелов в отступе в разных строках? N>В смысле — часть табами, часть пробелами? Попадались. И что?
Нет, часть двумя пробелами, часть четырьмя, а местами случайно вставлено три.
N>Там, где отступы принципиально важны для интерпретации (как в Python или Makefile), это вызывает просто ошибку компиляции. Там, где не важны (C с компанией), там нет проблем для машины; а для человека — один лишний раз дочистить. N>Выдержка единого средства (табы или пробелы) тут важнее, чем выбор между ними; но при выборе уже между ними я предпочту пробелы из-за заведомо меньшей конфликтности для таких ситуаций.
Так с пробелами возникнет конфликт с их количеством. Поэтому я выбираю табы.
N>И тут же — я участвовал в разработке софтин, в стиле которых было принято tabstop=8, но shiftwidth=4. Отступ кратный 8 делался только табами, а кратный 4, но не 8 — табы плюс 4 пробела. Между прочим, такой стиль ну очень распространён. И ты его своими "плавными" регулированиями сломаешь на корню
Жуть конечно. Но если ставить ширину таба больше 4, то проблем не будет.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Здравствуйте, Sinclair, Вы писали:
S>Правильный вариант — это в каждой из строчек одинаковое количество табов в начале, а межстрочное выравнивание добито пробелами. S>
Здравствуйте, ·, Вы писали: D>>не-а... 1-2-3 лишних пробела обычно читабельность не нарушают, в отличии от 1-3 табов по 8 ·>Ну поставь размер таба в 4.
и в каком волшебном месте это можно сделать один раз на все? D>>а если с кодом надо работать — это проблема форматтера его выровнять так, как я его настроил ·>А ещё проблема мержа, диффа, патча, ревьювера и т.п.
нет у меня такой проблемы... "ignore spaces" рулит D>>на первом уровне вложения 1, на втором — 2, дальше продолжать? ·>Продолжай.
продолжаю — количество видимых на экране уровней обратно пропорционально размеру таба D>>даю вам минуту, чтобы вылечить просмотрщик/редактор Far Manager ·>Для установки дефолтного значения: F9 -> Options -> Viewer Settings -> Tab size ·>Для временного изменения в открытом просмотрщике: Alt+Shift+F9 -> Tab size
раз
даю еще минуту для Notepada
ну и чтобы два раза не вставать — для просмотрщика строк в отладчике студии (и для текста, для и xml)
·>Т.е. тебе просто тупо не нравится дефолт в 8 пробелов. Можешь себе локальный рай устроить — поменяй дефолт в 4 пробела.
мне тупо не нравится/лень/нет времени ползать по настройкам разных программных продуктов и устанавливать у них размер таба
был приятно удивлен, что есть любители подобного времяпровождения
·>Рыбак рыбака...
вменяемых людей не так мало как кажется, %username%...
Здравствуйте, ·, Вы писали:
Q>>·>Так не получается же. А так хотя бы одной проблемой было бы меньше. Q>>По факту, с табуляцией одной проблемой больше.
...Как в комик-стрипе про N+1 стандарт.
Q>>С табуляцией даже для одного пользователя тяжело добиться одинакового отображения.
·>Не надо повторять это. Лучше объясни что значит добиться одинакового и в чём тяжесть. ·>Объясни вначале что это проблема. Какие неудобства создаёт? ·>А что не так в скайпе? Пусть рисует табы шириной в один пробел, что в общем-то логично для узкого окна чата. Считай что в коде отступы сделаны одним пробелом.
Допустим, ты расшариваешь код-сниппет с кем-то через Битбакет или Скайп. Твой адресат ожидает увидеть нормально отформатированный код. Вместо этого видит отступы шириной 8 знакомест, в другом месте шириной 1 (а в случае пропорционального шрифта вообще непонятно какого размера). Что ты ему скажешь? «Твои проблемы: настроить экстеншны и css-стили в браузере плёвое дело. И вообще считай, что я изначально набирал с восьмерными или одинарными отступами. Шли реквест в Майкрософт чтобы добавили настройку табуляции в Скайпе!»
Здравствуйте, Qbit86, Вы писали:
Q>Допустим, ты расшариваешь код-сниппет с кем-то через Битбакет или Скайп. Твой адресат ожидает увидеть нормально отформатированный код. Вместо этого видит отступы шириной 8 знакомест, в другом месте шириной 1 (а в случае пропорционального шрифта вообще непонятно какого размера). Что ты ему скажешь? «Твои проблемы: настроить экстеншны и css-стили в браузере плёвое дело. И вообще считай, что я изначально набирал с восьмерными или одинарными отступами. Шли реквест в Майкрософт чтобы добавили настройку табуляции в Скайпе!»
Ты так говоришь, как будто это что-то плохое. Допустим видит. И что?
Нормальность нормально отформатированного кода от ширины таба не зависит.
А что ты ему скажешь если ты ему посылаешь xml набранный с четырмя пробелами на 26", а на его 10" планшетике он занимает в ширину в три экрана?
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Здравствуйте, ·, Вы писали: ·>А что ты ему скажешь если ты ему посылаешь xml набранный с четырмя пробелами на 26", а на его 10" планшетике он занимает в ширину в три экрана?
Я тем временем смеюсь с темы разговора. Вы вообще пробовали код в Скайпе отправлять? В контексте замены комментариев смайликами всерьёз рассуждать о важности табов или пробелов может только шизофреник.
На всякий случай напомню, что в скайпе вообще нельзя сделать ширину разговора больше захардкоженной производителем. ЛЮБОЙ код превращается в скайпе в нечитаемое месиво.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, ·, Вы писали:
·>А что ты ему скажешь если ты ему посылаешь xml набранный с четырмя пробелами на 26", а на его 10" планшетике он занимает в ширину в три экрана?
Это хотя бы предсказуемо и надёжно. Не то что настраивать CSS-стили в мобильном браузере на планшете, чтобы у тебя восьмизнаковый таб не превращал ширину документа в шесть экранов.