Справка по MetaEditor

Интеллектуальное управление

Для удобства разработки программ в MetaEditor предусмотрены различные средства, от автоподстановок названий и подсказок к функциям до закладок и горячих клавиш. Эти средства позволяют ускорить процесс написания кода, удобно перемещаться по нему и предотвратить появление ошибок.

В данном разделе описаны следующие функции:

Любые изменения кода можно откатить, выполнив команду "Отменить Отменить" в меню "Правка" или на панели инструментов "Стандартная", либо нажав горячие клавиши "Ctrl+Z".

Автоподстановка имен функций

Это — возможность просмотреть список вариантов названий встроенных и пользовательских функций, констант, переменных, членов классов, ключевых слов и т.д. для подстановки при написании кода программы. Варианты подстановки определяются по первым набранным символам. Вызов данного списка происходит автоматически при написании кода. Для вызова списка вручную необходимо выполнить команду "Список имен Список имен" в меню "Правка" или на панели инструментов "Стандартная", либо нажать горячие клавиши "Ctrl+Space" после ввода первых символов названия:

Список имен

Далее остается только выбрать необходимый вариант с помощью клавиш "Стрелка вверх" и "Стрелка вниз" и нажать "Enter". Выбор может быть также осуществлен с помощью мыши.  При дальнейшем наборе букв названия функции список возможных подстановок будет сокращаться.

Информация о параметрах

Данная особенность позволяет просмотреть параметры выбранной функции и их тип. Чтобы показать эту информацию необходимо выполнить команду "Информация о параметрах Информация о параметрах" в  меню "Правка" или на панели инструментов "Стандартная", либо нажать горячие клавиши "Ctrl+Shift+Space". Команды необходимо выполнять только когда курсор мыши находится внутри скобок, где указываются параметры. После этого под функцией и ее параметрами появится вспомогательная строка:

Информация о параметрах

Рассмотрим отображаемую информацию на примере, приведенном на скриншоте выше:

  • [1 of 2] — означает, что для данной функции существует два варианта их указания. Для переключения между ними можно использовать клавиши "Стрелка вверх" и "Стрелка вниз" на клавиатуре или же щелкнуть левой кнопкой мыши на строке подсказки;
  • bool — указывает на тип значения возвращаемого функцией;
  • ObjectSetInteger — название функции;
  • (long chart_id, ... ) — перечисление возможных параметров функции, перед каждым параметром указывается его тип (в данном случае — "long"). Параметр, на котором в текущий момент находится курсор, отображается жирным шрифтом.

Переход к определению

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

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

Список функций

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

Список функций

В скобках справа от названия функции указываются параметры, которые были заданы ей. Нажатием левой кнопкой мыши или клавишей "Enter" можно перейти к определению выбранной функции в файле. Каждый тип функций в списке помечен своей иконкой:

  • Функция — функция;
  • Функция обработки событий — функция обработки событий (On*);
  • Публичный метод класса — публичный метод класса (public);
  • Защищенный метод класса — защищенный метод класса (protected);
  • Приватный метод класса — приватный метод класса (private);

Вставка комментариев

Для работы с комментариями в коде программы предусмотрены различные команды в меню "Правка" и на панели инструментов "Стандартная":

  • Заголовок функции Заголовок функции — вставка заготовки комментария для функции;
  • Блочный комментарий Блочный комментарий — вставка символов однострочного комментария;
  • Закомментировать строки Закомментировать строки — вставить комментарии "//" в начале каждой выделенной строки;
  • Раскомментировать строки Раскомментировать строки — убрать комментарии "//" из начала каждой выделенной строки.

Выполнение команды "Блочный комментарий Блочный комментарий" или нажатие горячих клавиш "Ctrl+/" вставляет в указанной позиции символы однострочного комментария:

//---

При выполнении команды "Заголовок функции Заголовок функции" или нажатии горячих клавиш "Ctrl+." в указанном месте вставляется заготовка для комментария к функции:

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+

Дополнительные возможности редактирования кода

В подменю "Дополнительно" меню "Правка" доступен ряд команд, упрощающих редактирование исходного кода:

  • Увеличить отступ строк Увеличить отступ строк — данная команда позволяет вставить три пробела (символ табуляции) в начале выделенных строк. Для вставки пробелов в одной строке, установите курсор в ее начале. Для вставки пробелов в нескольких строках, выделите их полностью.
  • Уменьшить отступ строк Уменьшить отступ строк — данная команда позволяет убрать три пробела (символ табуляции) в начале нескольких выделенных строк. Аналогичное действие выполняется сочетанием клавиш Tab+Shift.
  • Все прописные Все прописные — перевести все буквы выделенной фразы в верхний регистр. Аналогичное действие выполняется сочетанием клавиш Ctrl+Shift+U.
  • Все строчные Все строчные — перевести все буквы выделенной фразы в нижний регистр. Аналогичное действие выполняется сочетанием клавиш Ctrl+U.

Работа с закладками

Закладки предназначены для выделения необходимых строк кода для быстрой навигации по ним в последующем. Команды работы с закладками представлены в подменю "Закладки" меню "Правка", панели инструментов "Стандартная" и контекстного меню текста. В MetaEditor существуют следующие команды для работы с ними:

  • Переключить закладку Переключить закладку — включить или выключить закладку на текущей строке, в зависимости от ее текущего состояния. Это же действие можно выполнить с помощью клавиш "Ctrl+F2";
  • Следующая закладка Следующая закладка — перейти к следующей закладке в текущем коде. Это же действие может быть выполнено с помощью клавиши "F2";
  • Предыдущая закладка Предыдущая закладка — перейти к предыдущей закладке в текущем коде. Это же действие можно выполнить, нажав клавиши "Shift+F2";
  • Убрать все закладки Убрать все закладки — убрать все закладки из текущего кода. Это же действие выполняется при нажатии клавиш "Ctrl+Shift+F2".

В MetaEditor также предусмотрены именованные закладки - закладки, которым присвоен цифровой идентификатор. Чтобы установить такую закладку нажмите клавишу с цифрой от 0 до 9, удерживая клавишу Ctrl. Чтобы перейти к ранее установленной закладке, нажмите соответствующую цифру, удерживая клавишу Alt. Именованные закладки значительно облегчают навигацию по исходному коду.

Переход к строке

Для быстрого перехода к любой строке кода в текущем файле можно воспользоваться командой "Перейти к строке Перейти к строке" в меню "Правка" или на панели инструментов "Стандартная". При ее нажатии будет открыто следующее окно:

Перейти к строке

В окне указывается диапазон строк с кодом в текущем файле. Для перехода к строке необходимо ввести ее номер и нажать кнопку "ОК".

Сниппеты

Для облегчения написания кода в MetaEditor предусмотрена возможность вставки сниппетов — небольших шаблонных фрагментов исходного кода, описывающую ту или иную конструкцию языка MQL4/MQL5. Вставка сниппета инициализируется написанием ключевого слова. После набора ключевого слова, курсор изменяется на Возможна вставка сниппета, означающий возможность вставки сниппета. После этого необходимо нажать клавишу "Tab".

Например, для вставки декларации класса при помощи сниппета, необходимо набрать ключевое слово "class" и нажать Tab:

Пример сниппета

Сразу после этого, ключевое слово заменяется на декларацию класса. Для перехода между активными полями сниппета (в данном случае, это — имя, конструктор и деструктор класса) используются клавиши "Tab" и "Shift+Tab".

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

Система работы со сниппетами также распознает структуры, классы, перечисления, методы и функции при нажатии клавиш Ctrl+Enter. Курсор при этом обязательно должен стоять в пределах описания соответствующей конструкции. После нажатия указанной комбинации клавиш, пользователь может перемещаться между членами (для классов, структур и перечислений) и аргументами (для методов и функций) при помощи клавиш "Tab" и "Shift+Tab", а также редактировать их совместно, как это описано выше.

В данный момент поддерживаются следующие сниппеты:

Ключевое слово

Значение

#import

Объявление импорта.

OnBookEvent

Обработчик OnBookEvent.

OnCalculate

Обработчик OnCalculate.

case

Селектор case.

OnChartEvent

Обработчик OnChartEvent.

class

Объявления класса.

OnDeinit

Обработчик OnDeinit.

do

Объявление цикла do while.

enum

Объявление перечисления.

for

Объявление цикла for.

if

Объявление условия if.

else

Объявление условия else.

OnInit

Обработчик OnInit.

OnStart

Обработчик OnStart.

struct

Объявление структуры.

switch

Селектор switch.

OnTester

Обработчик OnTester.

OnTesterInit

Обработчик OnTesterInit.

OnTesterPass

Обработчик OnTesterPass.

OnTesterDeinit

Обработчик OnTesterDeinit.

OnTick

Обработчик OnTick.

OnTimer

Обработчик OnTimer.

OnTrade

Обработчик OnTrade.

OnTradeTransation

Обработчик OnTradeTransation

while

Объявление цикла while.

Вставка ресурсов

Для облегчения использования файлов ресурсов в разрабатываемых приложениях в меню "Сервис" предусмотрена команда "Вставить ресурсы Вставить ресурсы". Данная команда позволяет вставить в текущий файл объявление файлов ресурсов, выбранных из указанной папки, при помощи директивы #resource.

После выполнения данной команды появляется стандартное диалоговое окно операционной системы, в котором необходимо выбрать один или несколько файлов ресурсов, которые должны быть объявлены в файле.

  • Файлы ресурсов могут быть расположены только внутри каталога /MQL5 клиентского терминала. Файлы вне этой папки не могут быть использованы.
  • В качестве файлов ресурсов могут быть использованы только файлы *.wav и *.bmp.

После этого в начало текущего файла будут добавлены соответствующие директивы вида:

#resource "\Images\example.bmp"
или
#resource "resources\example.bmp"

Путь к файлам ресурсов может быть указан двумя способами:

  • Относительно текущего файла (без символа "\" в начале пути)
    Данный способ используется, если файлы ресурсов расположены в той же папке, что и текущий файл, или в одной из ее подпапок.
  • Относительно каталога /MQL5 клиентского терминала (в начале пути указывается символ "\")
    Данный способ используется во всех остальных случаях.