Настройка SlickEdit для работы с документами MQL4/5 и их компиляции. - страница 11

 
Не нашел способа как выводить лог компиляции в самой среде SlickEdit но отслеживать необходимо, поэтому написал простенький скрипт в PowerShell который лежит в папке проекта и следит за файлом *.log как только файл изменяется он сразу выводит результат на экран, очень удобно стало.
Отслеживаем изменения файла в реальном времени
Отслеживаем изменения файла в реальном времени
  • 2018.10.11
  • windowsnotes.ru
Предположим, у вас возникла необходимость отследить в режиме реального времени изменения в текстовом файле, например в логе веб-сервера. В операционных системах Linux для этой цели есть замечательная утилита Tail, которая умеет показывать текущие изменения в текстовом файле. А есть ли что нибудь похожее в Windows? Конечно есть. Ведь в Windows...
 
Alexey Valeev #:
Не нашел способа как выводить лог компиляции в самой среде SlickEdit но отслеживать необходимо, поэтому написал простенький скрипт в PowerShell который лежит в папке проекта и следит за файлом *.log как только файл изменяется он сразу выводит результат на экран, очень удобно стало.

о, интересно!

 

Нашёл способ выводить лог компиляции.

Команда для Tools/Build проекта такая: 

"C:\Program Files\MetaTrader 5\MetaEditor64.exe" /compile:"%f" /log:log.log

Фиксированный log.log вместо %n.log использую, чтобы не плодить логи для каждого файла в папке. Он же нужен только после компиляции одного файла.

Во вкладке Build проекта, в Post Build Commands добавляю команду

type log.log

При тыке на строку ошибки переходит в строку исходника.

К сожалению, в логах компилятора есть кроме сообщений об ошибках ещё информационные

s:\Forex\MT5\MQL5\Indicators\My\Signals\iSigGann.mq5 : information: compiling '***.mq5'
s:\Forex\MT5\MQL5\Indicators\My\Signals\iSigGann.mq5 : information: including C:\Users\Edgar\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Include\My\Common.mqh
C:\Users\Edgar\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Include\My\Common.mqh : information: including C:\Users\Edgar\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Include\My\Time\Dates.mqh
C:\Users\Edgar\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Include\My\Time\Dates.mqh : information: including
...
s:\Forex\MT5\MQL5\Indicators\My\Signals\iSigGann.mq5(88,2) : error 256: 'offset' - undeclared identifier
...
s:\Forex\MT5\MQL5\Indicators\My\Signals\iSigGann.mq5(123,3) : error 166: 'ArrayInitialize' - no one of the overloads can be applied to the function call
s:\Forex\MT5\MQL5\Indicators\My\Signals\iSigGann.mq5 : information: info could be one of 8 function(s)
s:\Forex\MT5\MQL5\Indicators\My\Signals\iSigGann.mq5 : information: info    built-in: int ArrayInitialize(char&,char)
s:\Forex\MT5\MQL5\Indicators\My\Signals\iSigGann.mq5 : information: info    built-in: int ArrayInitialize(short&,short)
s:\Forex\MT5\MQL5\Indicators\My\Signals\iSigGann.mq5 : information: info    built-in: int ArrayInitialize(int&,int)
s:\Forex\MT5\MQL5\Indicators\My\Signals\iSigGann.mq5 : information: info    built-in: int ArrayInitialize(long&,long)
s:\Forex\MT5\MQL5\Indicators\My\Signals\iSigGann.mq5 : information: info    built-in: int ArrayInitialize(float&,float)
s:\Forex\MT5\MQL5\Indicators\My\Signals\iSigGann.mq5 : information: info    built-in: int ArrayInitialize(double&,double)
s:\Forex\MT5\MQL5\Indicators\My\Signals\iSigGann.mq5 : information: info    built-in: int ArrayInitialize(bool&,bool)
s:\Forex\MT5\MQL5\Indicators\My\Signals\iSigGann.mq5 : information: info    built-in: int ArrayInitialize(color&,color)
...

Их надо бы отфильтровывать в BAT-файле взамен команды type. Это несложно, но надо вспоминать.

 
У меня пожелание к авторам статей и подобных веток. В первом посте сразу указывайте реальные выгоды для программера при использовании описываемого инструмента. Ну, стоит у меня давно этот редактор и другие стоят, особой выгоды по сравнению с МТ4/5 не заметил. Про советники на десятки тысяч строк и сотни хидеров я вообще улыбаюсь. Но может, я недостаточно крут или слишком ленив)). Значит, желательно сразу указывать плюсы и минусы технологии, а уже потом технические детали. 
 
Andrey Dik #:

Знаете ли Вы, что... ?

С зажатым Ctrl можно выделять и копировать несколько не подряд идущих строк кода вот так:


 
Edgar Akhmadeev #:
Их надо бы отфильтровывать в BAT-файле взамен команды type. Это несложно, но надо вспоминать.

Команду type log.log заменить на 

powershell -Command "cat log.log | Select-String ' : error '"
 

Я сегодня первый день осваиваю редактор, не разобрался во многом. При компиляции имя файла подставляется как %f. Но после компиляции не вызываются Post Build Commands, где можно загружать лог ошибок компиляции.

На данный момент я сделал так. Делаю не компиляцию, а Build.

Имя проекта должно совпадать с именем файла .mq5, и в Tools/Build вставляю

"C:\Program Files\MetaTrader 5\MetaEditor64.exe" /compile:"%rp%rn.mq5" /log:log.log

В Build / Post Build Commands добавляю исправленную команду (кроме ошибок выводит результат - к-во ошибок и предупреждений)

powershell -Command "cat log.log | Select-String -pattern '( : error |Result: )'"

При успешной компиляции ничего не выводится.

PS: списки для подсветки завёл на основе давнего списка от Ильяса. Если будет актуальный список, буду благодарен, вручную по одному заводить влом. Цвета настроил близко к ME5.

 

не бывает идеальных вещей,

вот недавно поставил новую андройд клавиатуру, и вот она самая лучшая, но нет свайпа переключения раскладки, разрабодчики сделали все самое лучшее, но не взяли свайп, бездари.

 
Edgar Akhmadeev #:

Я сегодня первый день осваиваю редактор, не разобрался во многом. При компиляции имя файла подставляется как %f. Но после компиляции не вызываются Post Build Commands, где можно загружать лог ошибок компиляции.

На данный момент я сделал так. Делаю не компиляцию, а Build.

Имя проекта должно совпадать с именем файла .mq5, и в Tools/Build вставляю

В Build / Post Build Commands добавляю исправленную команду (кроме ошибок выводит результат - к-во ошибок и предупреждений)

При успешной компиляции ничего не выводится.

PS: списки для подсветки завёл на основе давнего списка от Ильяса. Если будет актуальный список, буду благодарен, вручную по одному заводить влом. Цвета настроил близко к ME5.

Насчет компилятора и прочего что с ним связано - подсказать не могу, давно уже не использую эту возможность (использую SE только как редактор и ведение проектов, компиляция напрямую в МЕ). Если кто знает и подскажет, то мне самому интересно. Разработчики тоже сюда заходят иногда.

Периодически пополняю списки ключевых слов, если встречаются новые, скину завтра (отсутствуют нововведения с векторами и матрицами, но все основные имеются).

Как нашли эту ветку? Вариант, что просто набрали в поиске "SlickEdit", мне представляется маловероятным.

Эта ветка с 11го года и я до сих пор нахожу что-то новое в языке MQL5 и SE мне помогает. Пишите тут все интересные находки по языку и способам удобной работе с ним в SE.

 
lynxntech #:

не бывает идеальных вещей,

вот недавно поставил новую андройд клавиатуру, и вот она самая лучшая, но нет свайпа переключения раскладки, разрабодчики сделали все самое лучшее, но не взяли свайп, бездари.

Попробуйте SwiftKey