Не ищите логику там где ее нет. Лучше оформляйте багрепорт.
=)
Тоже всегда вызывало вопросы. :(
Я, правда, придерживаюсь стиля похожего на Java.
в хелпе написано КАК это делается, но не написано ПОЧЕМУ это считается правильным, удобным, эффективным, ....
для такой операции вообщето нужно былобы просто сделать опции настройки стилизатора (для примера - гляньте доку по тому же Astyle)
открывающие скобки:
- смещать вправо: количество пробелов
- перевод строки: до или после
ну и т.д.
Логика в том, что код выравнивается в соответствие с уровнем вложенности. Тут разногласий нет, как мы видим.
А вот открывающие и закрывающие скобки не являются кодом, а являются элементами оформления,и поэтому слегка выступают за границы кода на один символ.
Rosh писал(а) >>
А вот открывающие и закрывающие скобки не являются кодом, а являются элементами оформления,и поэтому слегка выступают за границы кода на один символ.
Как мне кажется, блочные скобки являются важной частью кода и выделяют логический или функциональный блок. Так почему их не располагать так, чтобы они действительно выполняли эту функцию? Про пробелы вокруг операторов и т.д. пока не будем говорить.
Логика в том, что код выравнивается в соответствие с уровнем вложенности. Тут разногласий нет, как мы видим.
Разногласия есть в том что вы считаете и что считают удобным для себя другие пользователи ;)
Я думаю что проблема ЛЕГКО СНИМАЕТСЯ дополнительными настройками стилизатора. Я уверен что, это самая НЕсложная для реализации задача.
Спасибо TheXpert, я как то даже не заметил этот "пассаж"
А вот открывающие и закрывающие скобки не являются кодом, а являются элементами оформления
ну не тяните за уши оправдания тому что было както сделано и теперь надо хоть как то объяснить ;)
элементы оформления - это комеентарии. их можно удалить без потерь функциональности!!! попробуйте как удалить хоть один такой "элемент" (я имею в виду } ) - куда вас пошлет компилятор? :))))
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Предистория: За долгие годы кодинга у меня выработался "свой" стиль оформления текстов (вот тут). Тексты уже давно оформляются "на автомате" и к тому же Astyle приходится прибегать только когда начинаеш работу с каким то "чужим" текстом.
Я могу объяснить почему я так форматирую свои тексты: количество табуляций (сдвижка вправо вглубь текста) соответствует уровню вложенности. Каждая открывающая { начинает новый уровень, поэтому располагается на отдельной строке с тем же отступом что предыдущий текст, а весь текст после нее идет с дополнительным отступом вправо. Каждая закрывающая } возвращает текст на одну табуляцию назад. Это позволяет легко находить парные скобки (они по вертикали должны быть в той же позиции и количество нажатий клавиши Tab соответствует уровню вложенности текста. Внутренние + - > < отбиваются пробелами, чтобы текст не сливался в сплошную кашу. Как для меня - все разумно и понятно.Теперь история: Вчера мне прислали исходник ml5 с каким то странным (с моей точки зрения) форматированием: фигурные скобки сдвинуты вправо, внутрь текста на 2 позиции, а текст внутри них тоже вправо, но всего на одну позицию. Я попробовал табулятором попасть в туже позицию где стоит открывающая { чтобы поставить закрывающую } - не получилось. как оказалось, так оформляет тексты Metaeditor5 своей командой Styler.
Может мне кто то (может сами разработчики) объяснить логику форматирования Metaeditor5?
Вот кусочек кода из MACD Sample.mq5 по-ихнему и по-моему: