Обсуждаем стайлер MQL5
Гуано, потому что не настраиваемый.
Предлагаю или добавить настроек, или форматировать в действительно общепринятом стиле.
Как вариант -- сделать возможность выбора одного из 2-3 стилей.
+
Собственно решение тривиальное и уже многими IDE-шками реализовано.
для каждого синтаксического элемента языка ( { ( for function <= if ......) определяются правила: сколько пробелов вставлять перед ним и после него и нужен ли перевод строки перед или после него.
пользовательские настройки должны сохраняться в файл и автоматически загружаться (приоритетно) при запуске редактора.
- www.mql5.com
Господа, а для кого пишется код?
Очень сильно уверен, что для остальных программистов. А им очень и очень неприятно читать чужой неотформатированный код.
Именно для решения такой проблемы мы и сделали штатную функцию стайлера. Если хотите, чтобы остальные люди (не Вы, а именно остальные люди) захотели смотреть Ваш код, то лучше его привести в максимально простой и однозначный вариант. Причем ключевое слово тут "люди", а не "вы".
Единый стайлинг важен для MQL5.community, так как мы собираем огромную базу исходников в Code Base. Это означает, что эти исходники будут читаться огромным количеством сторонних разработчиков и пользователей.
Чтобы не создавать невнятного скопища непонятного кода, все публикуемые скрипты будут автоматически:
- чиститься стайлером
- проверяться на корректность
генерировать стандартные скриншоты для индикаторов
Логика в том, что код выравнивается в соответствие с уровнем вложенности. Тут разногласий нет, как мы видим.
А вот открывающие и закрывающие скобки не являются кодом, а являются элементами оформления,и поэтому слегка выступают за границы кода на один символ.
Это меня удивило. Всегда считал, что ошибка в установке данного т.н. "элемента оформления" может кардинально изменить код. А оказывается, что это и не элемент кода вовсе. Пример:
if (условие) function1(); function2(); и ____________________________________ if (условие) {function1(); function2();}
Компилятор сказал: "всё ОК!". А программа не идёт. Где ошибка? В оформлении? Или в коде?
Не цепляйтесь к словам, пожалуйста.
Введение жестких (даже граничащих с личными правами) правил оформления позволяет искоренять убийственный код вида
if (условие) function1(); function2();
Фактически, можно утверждать, что слабоволие в этом вопросе приводит команду разработчиков к хаосу.
Именно для уменьшения этого хаоса мы и реализовали жесткий ненастраиваемый стайлер.
Пару тысяч скриптов в MQL4 Code Base прошли через руки наших редакторов, которые выразились бы об используемых стилях гораздо жестче. Снова затевать такой процесс мы не хотим.
100% правильно.
ЕДИНЫЙ стиль должен быть. Но! Он должен и МОЖЕТ быть у каждого СВОЙ.
многогие привыкли к другим общепринятым стилям например VC++ (и я поддерживаю например ForexTools, пользуюсь сам именно таким стилем).
Зачем напрягать и без того замученные мозги программистов... проще сделать этот стиль НАСТРАИВАЕМЫМ. Вы наверно сами знаете эти чувства, когда смотрите не на свой стиль кода и руки чешутся его форматнуть под свой, родимый, удобный, к которому привык уже 15 лет...
По-моему не очень сложно вместо того, чтоб передвигать скобочки { } к тексту, а потом на 1 пробел отодвигать от него - не делать с ними ничего. Пусть стоит на уровне со своим родителем for, if, ...
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Обсуждаем стайлер MQL5. Начало здесь
Приходится смотреть разный код. В том числе и плохо написанный.
Хорошее форматирование существенно облегчает чтение кода.
Поэтому, имхо, для большой части нормальных кодеров фишка останется невостребованной по причине особенностей форматирования и отсутствия настроек.
Предлагаю или добавить настроек, или форматировать в действительно общепринятом стиле.
Как вариант -- сделать возможность выбора одного из 2-3 стилей.