О MetaEditor-e - страница 5

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

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

В МЕ справа внизу есть циферки, однозначно трактующие положение курсора.



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

Вот именно. "как она понимает"
Вот вопрос. На что должен ориентирваться человек, составляющий такую программу? Я бы и не брался, потому, что я не представляю на что.


Хорошо, сейчас я объясню и Вы спокойно сможете себе представить :-)

Слева будет опционально скрываемая панель. MetaEditor анализирует код сверху и находит ближайшую комбинацию { } - это будет первым вложенным "чистым" циклом, затем найдет второй "чистый" цикл и т.д. до конца кода программы, в итоге получится за один проход сфомировать вложенные "чистые" циклы, назовем их циклами первого уровня, или циклами "первого прохода". Далее на второй и следующие проходы анализируются оставшиеся фигурные скобки, каждый раз поднимаясь на новый уровень, до тех пор, пока не останется фигурных скобок. После этой проверки кода на левой панели отобразятся линии (большие скобки), которые описывают вложенные в друг друга циклы.

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

Все! :-))
 
smazovec,
я понимаю о чём Вы говорите, но не согласен, поскольку не вижу в этом процессе никакой роли "бегания" курсором. Если скобка стоит на 13-й позиции, то логично искать ответную тоже в 13 позиции. Для этого не нужно бегать курсором. Можно просто увидеть ближаюшую "подозреваемую", ткнуть перед ней курсором и посмотреть на циферки. Если она 13-я, то может это она и есть. Дальше - просто думать. Во всяком случае, я делаю так и никаких неудобств не испытываю.

mswork ,
излагаемая Вами технология мне понятна. Но я не согласен, что от её применения будет польза.
В предыдущем сообщении я попытался объяснить почему. Нет никаких значимых критериев, ориентируясь на которые можно составить алгоритм "парования" скобок.

В приведенном мной немного выше примере всего 5 скобок. 3+2. Невозможно выделить какие-то из них для парования, не задавшись случайным критерием. Например, можно взять в качестве точки отсчёта ближайшую снизу скобку, можно ближ. сверху, можно найти такую, кот. ближе всего к ответной. Все эти критерии основаны не на структуре программы, а на волеизъявлении программиста, делающего подобный компилятор.

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

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

Ну, и самым коварным будет вариант, когда начинающий юзер не заметит подмены "больших" скобок во время программирования. Вот уж он потом скажет спасибо за помощь!:)
 
SK

mswork ,
излагаемая Вами технология мне понятна. Но я не согласен, что от её применения будет польза.
В предыдущем сообщении я попытался объяснить почему. Нет никаких значимых критериев, ориентируясь на которые можно составить алгоритм "парования" скобок.

В приведенном мной немного выше примере всего 5 скобок. 3+2. Невозможно выделить какие-то из них для парования, не задавшись случайным критерием. Например, можно взять в качестве точки отсчёта ближайшую снизу скобку, можно ближ. сверху, можно найти такую, кот. ближе всего к ответной. Все эти критерии основаны не на структуре программы, а на волеизъявлении программиста, делающего подобный компилятор.

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

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

Ну, и самым коварным будет вариант, когда начинающий юзер не заметит подмены "больших" скобок во время программирования. Вот уж он потом скажет спасибо за помощь!:)


Все равно Вы, как и МетаКвоутс не поняли, что польза от этого будет ОЧЕВИДНАЯ! Как мы сейчас можем определить структуру программы визуально? По отступам с левого края. А там будут цветные большие скобки. Очень легко и просто.

И причем здесь логика программиста и юзера? Здесь важная логика программы и программиста. Независимо от того, будут слева эти большие цветные скобки, которые я предлагаю, или их не будет - МетаЭдитор код будет понимать одинаково - ориентируясь на расставленные фигурные скобки. Все, что я хочу - увидеть наглядно, какой цикл в какой вложен. Для меня большие цветные скобки - очень наглядны, а тоненькие фигурные скобочки, пусть даже и отмеченные отступом слева в самом коде программы - НЕ НАГЛЯДНЫ.

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

Я просто предложил, потому что вижу очевидные плюсы. Но предложил я именно потому, что считал, что это легко запрограммировать (на самом деле - не знаю, легко или нет). Если это займет всего один человеко-день со стороны МетаКвоутс, то это сэкономит тысячи и десятки тысяч человеко-дней со стороны юзеров. И самое главное - что никаких багов в самом МетаЭдиторе по идее возникнуть не должно - это своего рода add-on в виде дополнительной панельки и простенького анализатора кода на наличие фигурных скобок.

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

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

:)
 

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

:)


Автоматическое пропадание скобок? Даже так? :)) А что, интересно... Потом добавим еще возможность скрывать внутренние циклы, крутой дебаггер, и т.д. и т.п. (если серьзно, то те большие скобки я думал располагать на отдельной по желанию скрываемой панели - единственно, чтобы эти скобки были наглядны и гармонично соотносились с окном редактора кода).

И еще, я бы все равно обратил внимание МетаКвоутс на то, чтобы придать Тестеру стратегии стильный цивильный вид. А то сейчас у меня это как с полуподвальным помещением ассоциируется - внизу, да еще и растянуто на весь экран. Пусть такой вариант, как сейчас, будет уменьшенным (сжатым) вариантом, а более нормальный отчет представляет из себя с виду нормального размера лист с вертикальной ориентацией. Вот даже вертикальная форма для упаковки напитков оказалась более предпочтительной http://inauka.ru/news/article60754?subhtml :-))