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

 
CArrayObj *CSelect::ByOrderProperty(
CArrayObj *list_source,ENUM_ORDER_PROP_INTEGER property,long value,ENUM_COMPARER_TYPE mode)
  {
   if(list_source==NULL) return NULL;
   CArrayObj *list=new CArrayObj();
   if(list==NULL) return NULL;
   list.FreeMode(false);
   ListStorage.Add(list);
   int total=list_source.Total();
   for(int i=0; i<total; i++)
     {
      COrder *obj=list_source.At(i);
      if(!obj.SupportProperty(property)) continue;
      long obj_prop=obj.GetProperty(property);
      if(CompareValues(obj_prop,value,mode)) list.Add(obj);
     }
   return list;
  }

Вот пример из библиотеки Artyom Trishkin, все хорошо только одно но: У Автора очень много оберток не используемых, как он утверждает что они будут использованы потом, а сейчас это для заметок, напоминания.
Я хочу использовать его библиотеку, но для ориентации в ней без дополнительных редакторов, которые позволяют сворачивать код, это сделать не возможно без ориентирования в коде. Пока пролистаешь весь код от начала до конца в MetaEditor уже забываешь, что хотел. Всем возможными дополнениями стандартного редактора как Ctrl+g и все , плюс ручка и бумажка я уже устал пользоваться! 

Вопрос:

list.FreeMode(false);
list_source.At(i);

Когда мы передаем параметр в метод по указателю или создаем указатель на класс по другому не возможно MQL (или this ). SlickEdit отказывается определять методы классы переданного по указателю, что является жестким определением MQL.
Но если поменять указатель оператор (*) на ссылку оператор (&), то все становится видным и даже работает авто определения членов класса. Но это не допустимо для MQL! 

Отсюда и появился вопрос как и где задать оператор (*) указатель чтобы он рассматривался в  SlickEdit равносильно как оператор (&). 

 
BmC:

Вот пример из библиотеки Artyom Trishkin, все хорошо только одно но: У Автора очень много оберток не используемых, как он утверждает что они будут использованы потом, а сейчас это для заметок, напоминания.
Я хочу использовать его библиотеку, но для ориентации в ней без дополнительных редакторов, которые позволяют сворачивать код, это сделать не возможно без ориентирования в коде. Пока пролистаешь весь код от начала до конца в MetaEditor уже забываешь, что хотел. Всем возможными дополнениями стандартного редактора как Ctrl+g и все , плюс ручка и бумажка я уже устал пользоваться! 

Вопрос:

Когда мы передаем параметр в метод по указателю или создаем указатель на класс по другому не возможно MQL (или this ). SlickEdit отказывается определять методы классы переданного по указателю, что является жестким определением MQL.
Но если поменять указатель оператор (*) на ссылку оператор (&), то все становится видным и даже работает авто определения членов класса. Но это не допустимо для MQL! 

Отсюда и появился вопрос как и где задать оператор (*) указатель чтобы он рассматривался в  SlickEdit равносильно как оператор (&). 

боюсь, что операторы (&) и (*) нельзя переопределить (не вина SE).

наверное работаете с MQL5 как с С++ в SE? не знаю что посоветовать.... попробуйте работать как с C#.

 
Andrey Dik:

боюсь, что операторы (&) и (*) нельзя переопределить (не вина SE).

наверное работаете с MQL5 как с С++ в SE? не знаю что посоветовать.... попробуйте работать как с C#.

Я работаю как пользовательский язык не С# и С++, так как думаю что макросы будут рассматривать операторы (* и &) по разному в разных ситуациях.

 
BmC:

Я работаю как пользовательский язык не С# и С++, так как думаю что макросы будут рассматривать операторы (* и &) по разному в разных ситуациях.

разве можно создать и работать с пользовательским языком в SE? я не знал об этом.

я имел ввиду следующее:


 

 Есть возможность задать, только в версии проф, свой язык. Как указанно  в справке при создание своего языка не указанного в справочнике SlickEdit, вы сталкиваетесь с более углубленной настройкой макрос, вот я и ищу этот макрос который настроен на поиск вложенных методов в классе переданных по указателю.
 Я разобрался что языке С++ переданный по указателю (*) объект подразумевает использовать оператор (->)  вместо (.) в MQL. Отсюда вывод, если заменить или применить с помощь команд условной компиляции в макросе при определение пользовательского языка эти операторы подменять собою. От сюда следует, что использовать настройки предложенных языков С# или C++ использовать нельзя в данном случае, так я фактически хочу поменять структуру обращения к операторам.

Скачал версию 25 настраиваю, читал на форумах что там более гибкими стали настройки подключения пользовательских языков. Попробую создать и пользовательский язык и по шаблону С# и С++ и посмотрим какой более оптимальный вариант лучше, тогда может и выложу инструкцию по настройке уже 25 версии.

 
BmC:

 Есть возможность задать, только в версии проф, свой язык. Как указанно  в справке при создание своего языка не указанного в справочнике SlickEdit, вы сталкиваетесь с более углубленной настройкой макрос, вот я и ищу этот макрос который настроен на поиск вложенных методов в классе переданных по указателю.
 Я разобрался что языке С++ переданный по указателю (*) объект подразумевает использовать оператор (->)  вместо (.) в MQL. Отсюда вывод, если заменить или применить с помощь команд условной компиляции в макросе при определение пользовательского языка эти операторы подменять собою. От сюда следует, что использовать настройки предложенных языков С# или C++ использовать нельзя в данном случае, так я фактически хочу поменять структуру обращения к операторам.

Скачал версию 25 настраиваю, читал на форумах что там более гибкими стали настройки подключения пользовательских языков. Попробую создать и пользовательский язык и по шаблону С# и С++ и посмотрим какой более оптимальный вариант лучше, тогда может и выложу инструкцию по настройке уже 25 версии.

да, как раз хотел сказать, что если есть возможность создать пользовательский язык, то можно попытаться сделать так: создать пользовательский язык, перенести настройки из готовых языков из соответствующего языкового файла CPP или C# и уже потом попробовать изменить поведение соответствующих операторов.

 
Andrey Dik:

да, как раз хотел сказать, что если есть возможность создать пользовательский язык, то можно попытаться сделать так: создать пользовательский язык, перенести настройки из готовых языков из соответствующего языкового файла CPP или C# и уже потом попробовать изменить поведение соответствующих операторов.

так все и сделал, настройки нужно переносить ТОЛЬКО из С# (CSharp) так как он больше подходит к передаче объектов по ссылке. В с++ (cpp) вместо оператора (.) нужно вставлять оператор (->) для обращения к методам объекта. 

Вторая проблема при создание пользовательского языка, в версии 25 цветовая раскраска не передается через копирования настроек, или это просто бак SlickEdit v25.0.2.0 64-bit.  (Я уверен что с раскраской это ошибка разработчиков, в предыдущей версии все работало, в этой перестало.)

 

Настройки, обновлённые ключевые слова MQL5.

Файлы:
 
Список ключевых слов
Файлы:
mql5.txt  164 kb
 
Ilyas #:
Список ключевых слов

Спасибо!)

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