Использование Notepad++ v6.2.2 как редактора MQ4
Страница 1 из 3 1 2 3 ПоследняяПоследняя
Показано с 1 по 10 из 29

Тема: Использование Notepad++ v6.2.2 как редактора MQ4

  1. #1
    Новичок
    Регистрация
    23.08.2012
    Сообщений
    199
    Promo (¢)
    685
    Благодарности
    Получено: 61
    Отправлено: 49

    Использование Notepad++ v6.2.2 как редактора MQ4

    Инсталяция:
    1. Распаковываем прикрепленный архив. Сам архив состоит из 3-х файлов: Инсталятор Notepad++ v6.2.2, файла подсветки синтаксиса UDL_MQL4v62.xml и файла ключевых слов языка MQL4 - mql4v62.xml

    Продолжение следует...
    Вложения Вложения

    Вы не можете благодарить!

  2. #2
    Новичок
    Регистрация
    23.08.2012
    Сообщений
    199
    Promo (¢)
    685
    Благодарности
    Получено: 61
    Отправлено: 49

    Установка

    Начало
    Далее следуем инструкциям:

    1. Выбор языка установки.
    Выбираете язык, на котором будут выводиться сообщения мастера установки.


    В следующем окне нажимаем "Далее"

    Принимаем лицензионное соглашение

    Выбираем путь, куда будет установлен Notepad++

    В локализации добавляем языки английский и русский.




    Устанавливаем галочку как на картинке.
    Эта галочка говорит редактору, что будет использована папка установки для хранения конфигурационных файлов.
    Нажимаем кнопку "Установить".


    Завершаем установку:

    Все. установка завершена и мы можем приступать к настройке самой программы.

    Настройка подсветки синтаксиса

    Окно Notepad++


    Меню "Синтаксис / Define your language"


    Нажимаем кнопку "Импортировать"


    Выбираем файл UDL_MQL4v62.xml из распакованного архива


    Открываем файл с расширением .mq4 или .mqh


    Продолжение следует...

    Вы не можете благодарить!

  3. #3
    Новичок
    Регистрация
    23.08.2012
    Сообщений
    199
    Promo (¢)
    685
    Благодарности
    Получено: 61
    Отправлено: 49

    Настройка автозавершения слов

    Нужно скопировать файл mql4v62.xml в папку plugins/APIs


    Включение опции автозавершения слов в настройках программы:




    Перезагружаем Notepad++

    Автозавершение работает по нажатию [Ctrl]+[Пробел]


    [Ctrl]+[Shift]+[Пробел] Вывод подсказки о параметрах процедуры или функции

    Вы не можете благодарить!

  4. #4
    Новичок
    Регистрация
    23.08.2012
    Сообщений
    199
    Promo (¢)
    685
    Благодарности
    Получено: 61
    Отправлено: 49

    Плагины

    Установка плагинов:

    Сейчас самое время установить два очень полезных плагина:
    NPPExec и Python Script

    NPPExec. При помощи этого плагина мы настроим компиляцию советников из Notepad++

    При помощи Python Script будем учиться чего-нибуть автоматизировать.

    Меню "Плагины / Plugin Manager / Show plugin manager"


    В списке отмечаем эти плагины



    Нажимаем кнопку "Install"

    После окончания установки Плагин менеджер попросит перезагрузить Notepad++
    Соглашаемся

    Вы не можете благодарить!

  5. #5
    Новичок
    Регистрация
    23.08.2012
    Сообщений
    199
    Promo (¢)
    685
    Благодарности
    Получено: 61
    Отправлено: 49

    Компиляция советников, индикаторов, скриптов

    Запускаем плагин NPPExec через кнопку [F6] или из меню


    Пишем код компиляции в появившемся окне.
    Нажимаем кнопку Save


    Задаем имя скрипта
    Нажимаем кнопку Save


    Этот сохраненный скрипт компиляции будет доступен по кнопке [F6]
    Файл должен быть сохранен.

    После компиляции сообщения об ошибках выводятся в консольное окно.


    Компиляция советников
    Код:
    cd "$(CURRENT_DIRECTORY)"
    set path="$(CURRENT_DIRECTORY)"
    cd ..
    set met="$(CWD)\metalang.exe"
    cd $(path)
    
    $(met) $(FILE_NAME)
    Компиляция скриптов и индикаторов
    Код:
    cd "$(CURRENT_DIRECTORY)"
    set path="$(CURRENT_DIRECTORY)"
    cd ..
    cd ..
    set met="$(CWD)\metalang.exe"
    cd $(path)
    $(met) $(FILE_NAME)

    Вы не можете благодарить!

  6. #6
    Денис Кириченко
    Guest
    artamir, а отладку можно делать в Notepad++ для MQL4?

    Вы не можете благодарить!

  7. #7
    Новичок
    Регистрация
    23.08.2012
    Сообщений
    199
    Promo (¢)
    685
    Благодарности
    Получено: 61
    Отправлено: 49
    Цитата Сообщение от Денис Кириченко Посмотреть сообщение
    artamir, а отладку можно делать в Notepad++ для MQL4?
    Я вообще отладчиков для MQL4 не видел а жаль. Вещь была бы не заменимая
    А то руками через MessageBox уйма времени уходит.

    Вы не можете благодарить!

  8. #8
    Новичок
    Регистрация
    26.12.2011
    Адрес
    Россия
    Сообщений
    20
    Promo (¢)
    105
    Благодарности
    Получено: 3
    Отправлено: 0
    Прикольно, нужно попробовать. Редактор Notepad++ отличная штука.

    Вы не можете благодарить!

  9. #9
    Новичок
    Регистрация
    23.08.2012
    Сообщений
    199
    Promo (¢)
    685
    Благодарности
    Получено: 61
    Отправлено: 49

    Python scripts

    Version template

    Простейший скрипт на языке python.

    Этот скрипт вставляет текстовый шаблон

    Код:
    	/*
    		>Ver	:	0.0.0
    		>Date	:
    		>Hist	:
    		>Author	:	Morochin <artamir> Artiom
    		>Desc	:
    	*/
    на месте курсора.

    Для этого создадим новый скрипт:


    Задаем имя скрипта: VerTPL

    Пишем программный код скрипта:
    PHP код:

    editor                                #1

    text =    '''\t/*
            >Ver\t:\t0.0.0
            >Date\t:
            >Hist\t:
            >Author\t:\tMorochin <artamir> Artiom
            >Desc\t:
        */'''                                
    #2
    curPos    e.getCurrentPos()                #3
    curLine    e.lineFromPosition(curPos)    #4            
    e.replaceLine(curLinetext)            #5 
    Сохраняем скрипт Ctrl+s

    Открываем любой файл.

    Устанавливаем курсор в нужной строке. Например после определения функции или процедуры.
    Или в начале файла, если хотим отслеживать версии файла

    Запускаем скрипт на выполнение:


    Результат:


    Разбор скрипта:

    #1 - Присваиваем переменной е объект editor, который дает нам возможность программно делать с текстом все, что мы захотим. А также это почти полная обертка к компоненте Scintilla, которая используется в текстовой области Notepad++.
    #2 - Присвоиваем многострочный текст переменной text
    #3 - Определяем текущую позицию курсора.
    #4 - Определяем номер текущей строки (строки, где установлен курсор)
    #5 - Замещаем текст, находящийся на текущей строке текстом, который содержится в переменной text

    Вы не можете благодарить!

  10. #10
    Новичок
    Регистрация
    23.08.2012
    Сообщений
    199
    Promo (¢)
    685
    Благодарности
    Получено: 61
    Отправлено: 49

    Python script

    Version plusplus

    Продолжим.

    Наш новый скрипт научится инкрементировать номер версии, изменять дату на текущую и еще...

    У меня много файлов, версии которых мне нужно отслеживать. Для этого у меня в каждом файле прописан шаблон VerTPL.

    В этом шаблоне есть блок History. В этом блоке отмечаются названия функций, в которые вносились изменения.

    Задача, которую должен автоматизировать скрипт:
    1. Изменение версии и даты в блоке описания версии в теле процедуры/функции.
    2. Изменение версии и даты в блоке описания версии файла.
    3. Добавление записи в блок History версии файла.
    3.1 Добавление названия редактируемой процедуры/функции в запись History

    Начнем решать задачи с конца.

    Определение названия редактируемой процедуры/функции

    Для начала откроем консоль Python script



    Далее...
    Создаем новый скрипт (смотри предыдущий пост).

    Называем скрипт Verpp

    Текст скрипта:

    Код:
    #1==========================================================
    import re
    
    e = editor
    c = console
    n = notepad
    
    #2==========================================================
    pattern_FunctionDesc =	'''
    						#Can start anywhere
    						(int|double|string|bool|datetime|void)	#=>Grouping<RETTYPE>
    						[\s\t]+									#<EMPTYSYMBOL>(Space or tab)
    						(										#=>Grouping function name
    						[_]*									#<UNDERLINE>
    						[A-Za-z]+								#<ALFABETSYMBOL>
    						[A-Za-z_\.]*							#(<ALFABETSYMBOL>|<UNDERLINE>|<DOT>)
    						)										#=<Grouping function name
    						[\s\t]*									#<EMPTYSYMBOL>
    						[(]+									#<LEFTPARANTESIS>
    						'''
    #3==========================================================						
    
    def writeln(_str):
    	c.write(_str)
    	c.write('\n')
    
    def re_funcname(strSource):
    	re_pattern	= re.compile(pattern_FunctionDesc, re.VERBOSE)
    	re_search	= re_pattern.findall(strSource)
    	return(re_search);	
    	
    def fgetFuncName(startLine):
    	isFind = False
    	tl = startLine
    	while not isFind and tl >= 1:
    		re_findall = re_funcname(e.getLine(tl))
    		writeln(str(re_findall)+ ' : len = '+ str(len(re_findall)) +' : nl = '+str(tl))
    		tl=tl-1
    
    #4==========================================================						
    curPos  = e.getCurrentPos()
    curLine = e.lineFromPosition(curPos)
    
    fname = fgetFuncName(curLine)
    Сохраняем (Ctrl+s)

    Открываем любой файл mq4.

    Устанавливаем курсор внутри любой функции.

    Запускаем скрипт:



    Скрипт анализирует каждую строку открытого файла на соответствие шаблону, заданного в переменной pattern_FunctionDesc. Результат этого сравнения выводится в консоль.



    Для очистки консоли можно воспользоваться командой
    Код:
    console.clear()

    Вы не можете благодарить!

Страница 1 из 3 1 2 3 ПоследняяПоследняя

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •