Стайлер в торговом терминале MetaTrader 5 - страница 6

 
Renat :

Когда Вы сами будете собирать, вести и оплачивать Code Base, вопрос сразу отпадет.

Нет, вы все-таки смеетесь.

Как относится стайлер к базе? Как относится инструмент программиста (которым он пользуется для облегчения своей работы) к правилам публикации (которая вообще к его работе может не иметь отношения)?

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

Разделите понятия "база" и "стайлер", и все станет на свои места.



Renat :

Или Вы думаете, что все вокруг само собой бесплатно делается?

Ренат, вы прекрасно понимаете, что база доход приносит (хоть и косвенно).

И терминал вы тоже почему-то бесплатно раздаете.



Renat :

Сейчас все разговоры только о принципиальной позиции "это плохо только потому, что не настраивается".

Давайте перейдем к конкретным пунктам - укажите какой пункт и почему неправильно делается стайлером.

Неправильно не конкретное действие, а сам подход.

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

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


Решение простое и очевидное - сделать настраиваемые параметры и несколько стандартных стилей. По умолчанию поставить ваш, но дать возможность изменить его настройки. Поверьте, новички (если вы вдруг волнуетесь, что они начнут писать "неправильно") никогда в эти настройки не полезут!


Примеры настроек перечислять? ;)

 
Спасибо, один момент "сколько ставить пробелов перед фигурной скобкой" озвучен. Мы ставим 2, а Вы 0.


Давайте к следующим пунктам перейдем.

 
Renat :
Спасибо, один момент "сколько ставить пробелов перед фигурной скобкой" озвучен. Мы ставим 2, а Вы 0.


Давайте к следующим пунктам перейдем.

  1. Пробелы вокруг = += -= *= /* -- ++ + - * /, после "(", после "," и перед ")";
  2. Табуляция вместо 3-х пробелов в отступах - это вообще было бы супер.
 
Renat :

Давайте к следующим пунктам перейдем.

Да вы не мучайтесь так. "Все уже украдено до нас" (с) к-ф "Операция Ы"

возьмите список пунктов от того же Astyle. На полный список uncrustify вас наверняка не сподвигнеш, да и не надо наверно, но там кратко и понятно все изложено - можно выбрать нужное.

Artistic Style
  • astyle.sourceforge.net
becomes (with break‑after‑logical):
 
komposter :
  1. Пробелы вокруг = += -= *= /* -- ++ + - * /, после "(", после "," и перед ")";
  2. Табуляция вместо 3-х пробелов в отступах - это вообще было бы супер.


по 2 п.: табуляция зло - попробуйте взглянуть на один и тот же код в разных редакторах... мягко говоря поплывёт
 
mql5 :


по 2 п.: табуляция зло - попробуйте взглянуть на один и тот же код в разных редакторах... мягко говоря поплывёт
komposter :
  1. Пробелы вокруг = += -= *= /* -- ++ + - * /, после "(", после "," и перед ")";
  2. Табуляция вместо 3-х пробелов в отступах - это вообще было бы супер.


Вот поэтому и не надо причёсывать по своему. У каждого свои тараканы в голове. Дайте народу хлеба и зрелищ. Мы сами себе выберем что нам по душе.

 
mql5 :


по 2 п.: табуляция зло - попробуйте взглянуть на один и тот же код в разных редакторах... мягко говоря поплывёт

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

Artistic Style
  • astyle.sourceforge.net
becomes (with break‑after‑logical):
 

Второй момент "отделять пробелами операции" озвучен.


Есть еще пункты?

 
Renat :

Второй момент "отделять пробелами операции" озвучен.

Есть еще пункты?


class Class
{ // скобка на уровне объявления
private: // спецификаор на уровне объявления
   // приватные типы
   definition; // объявления и определения функций и членов с отступом
  
protected:
   // защищённые типы
   definition;
public:
   // публичные типы
   definition;

public:
   definition;
  
protected:
   definition;
  
private:
   definition;

}; // скобка на уровне объявления

Енумы:

enum ProceedObject
{ // скобка на уровне объявления
   EPO_BAT,
   EPO_LEFT_BORDER,
   EPO_RIGHT_BORDER,
   EPO_UP_BORDER,
   EPO_DOWN_BORDER,
   EPO_FLOOR,
   EPO_CEILING,
   EPO_BRICKS, // значения по отступу,
}; // скобка на уровне объявления

Ифы:

if(condition1) 
{
   DoSomething();
   //...
}
else if(condition2)
{
   DoSomethingOther();
   //...
}
else
{
   DoSomethingOtherAgain();
   //...
}

Свитчи

switch(condition) 
{
    case 1:
    case 2:
        x = ...;
    break;
    case 3:
{
         x = ...;
//...
}
    break;
    default:
        x = ...;
    break;
}
 

Интересуют конкретные пункты "сейчас работает вот так, а надо вот так".


Выравнивание скобок уже озвучивали.

Причина обращения: