avalat
- Стаж: 9 лет 9 месяцев
- Сообщений: 465
- Репутация:127[+] [-]
|
|
nikzzzz
- Стаж: 9 лет 9 месяцев
- Сообщений: 3114
- Репутация:127[+] [-]
|
avalat, Огромное спасибо за проделанную работу , особенно за хелп. Немного о недостатках. Не сворачиваются блоки {....} F1 (хэлп) показывает общий хэлп, а не на указанное курсором слово, по идее надо было-бы повесить F1 на красную иконку. Я пользуюсь редактором SynWrite, Notepad++ хороший редактор, но многого не хватает, хотя возможно, я с ним плохо знаком. Сделал простенький IDE (использовал ваши наработки) Вот, что получилось.
Очень полезна панель дерева, не знаю, можно ли ее реализовать на Notepad++ Ну и отлаживать можно, не выходя из редактора. Если интересно, могу выложить.
|
Отправлено: 29-Янв-2020 15:17
(спустя 1 час 31 минута)
AZJIO
- Стаж: 6 лет 8 месяцев
- Сообщений: 1322
- Репутация:127[+] [-]
|
73522Очень полезна панель дерева, не знаю, можно ли ее реализовать на Notepad++ Да можно,вот к примеру я делал для PureBasic. Ранее это был плаг FunctionList, сейчас встроили в по умолчанию (немного с другим функционалом). И там много языков уже встроено, а каких нет предлагают на форуме и потихоньку появляются. На счёт хелпа есть плаг LanguageHelp, он связывает расширение со справкой, но я пользуюсь своим вариантом, отличие в том что имя функции не всегда является именем файла справки, поэтому доступ через имя файла справки не работает, а мой вариант доступа - автоматизация вставки имени в "Указатель", где имя всегда соответствует, исключение если указатель не сформирован автором справки, но это легко решается пересборкой методом экспорта TOC (содержания) в указатель.73522Ну и отлаживать можно, не выходя из редактора. Есть плаг NppExec - вывод строк отладки в консоль (я его русифицировал). В AkelPad тоже всё это есть, список функций, прыжок в справку к функции, вывод отладки в консоль, свёртки, автозавершение подсветка в том числе рег.выр-ами.
|
Отправлено: 29-Янв-2020 18:40
(спустя 1 час 55 минут)
AZJIO
- Стаж: 6 лет 8 месяцев
- Сообщений: 1322
- Репутация:127[+] [-]
|
avalat, я тут поковырялся, открой файл Notepad++\functionList.xml. в начале файла увидишь список добавь в него связь, только учти userDefinedLangName="PeCMD" имя должно быть как в файле, то есть учитывать регистр.<!-- ======================================================================== --> <association id= "pecmd_function" userDefinedLangName="PeCMD" /> <association id= "pecmd_function" ext=".wcs" /> <association id= "pecmd_function" ext=".wsc" /> далее в конце файла после последнего < / parser> вставь этот участок кода.<!-- =================================================== [ PECMD ] --> <!-- PECMD --> <parser displayName="PECMD" id ="pecmd_function" commentExpr="(?m-s://.*?$)" > <function mainExpr="(?m)^\h*_SUB\h+\K\w+" /> </parser> Теперь запускай Notepad++ и включи кнопку "Список функций" и открой "wcs, wsc", увидишь все имена напротив _SUB появятся в списке и двойной клик произведёт прыжок к кликнутой функции. поправил рег.выр. комментария avalat, что у тебя с "Ключевые слова 5"? Там список с запятыми, которые указаны в операторах. Слова с префиксом & уже указаны в поле "Ключевые слова 6". Или -1=INIT где "-" и "=" находятся в операторах. А то что будет найдено в операторах уже не подсвечивается как ключевое слово. У тебя получается практически мой старый вариант подсветки Лишнюю тему создавать не хочется, но вот и на AkelPad - pecmd.coder Ещё бы кто описал правило префиксов % $ @ и их комбинации, я мог бы более правильно подсветить например типа системные переменные, указатели и т.д., а не всё одним цветом. У кого есть моя сборка, просто копируете файл в папку "AkelPad\AkelFiles\Plugs\Coder" и в меню кликнуть "Мои->Перерисовать подсветку Coder" и всё будет работать.
|
avalat
- Стаж: 9 лет 9 месяцев
- Сообщений: 465
- Репутация:127[+] [-]
|
AZJIO, спасибо, список функций получился. Поправил. Я и использовал твои наработки, наверное старые.
|
Отправлено: 29-Янв-2020 20:27
(спустя 1 час 35 минут)
AZJIO
- Стаж: 6 лет 8 месяцев
- Сообщений: 1322
- Репутация:127[+] [-]
|
Я перезалил Help.7z для поиска выделенного слова в справке. Из-за разности форматов (AkelPad возвращает "wcs", Notepad++ возвращает ".wcs") я добавил удаление точки и теперь нормально работает в Notepad++. В shortcuts.xml нужно добавить строку:<Command name="Help" Ctrl="no" Alt="no" Shift="no" Key="112">"Instrument_azjio\Help\Help.exe" "$(CURRENT_WORD)" $(EXT_PART)</Command>
|
Отправлено: 29-Янв-2020 21:59
(спустя 1 час 32 минуты)
avalat
- Стаж: 9 лет 9 месяцев
- Сообщений: 465
- Репутация:127[+] [-]
|
AZJIO, Заработало,но только так<Command name="Help" Ctrl="no" Alt="no" Shift="no" Key="112">"$(NPP_DIRECTORY)\Instrument_azjio\Help\Help.exe" "$(CURRENT_WORD)" $(EXT_PART)</Command> Спасибо ! Исправил в шапке.
Последний раз редактировалось: avalat (2020-01-29 22:49), всего редактировалось 1 раз
|
nikzzzz
- Стаж: 9 лет 9 месяцев
- Сообщений: 3114
- Репутация:127[+] [-]
|
AZJIO, Посмотрел твой Help.au3, что-то ты там перемудрил с tab'ами, да и Send не слишком хорошо, лучше ControlClick. Вот мой вариант, может пригодится.HtmlHelp.au3#include <GuiTab.au3> #NoTrayIcon ;Файл справки в формате CHM If $CmdLine[0] = 0 Then Exit $sChm = $CmdLine[1] ;Название окна файла-справки, нужно для того, что-бы справка не открывалась в новом окне $sTitle = '' If $CmdLine[0] > 1 Then $sTitle = $CmdLine[2] If $sTitle = '' Then $sTitle = '[CLASS:HH Parent]' ;Строка поиска $sString = '' If $CmdLine[0] > 2 Then $sString = $CmdLine[3] ;Ищем окно спраки, не найдено открываем новое $hWnd = WinActivate($sTitle) If $hWnd = 0 Then $hHH = Run('hh.exe "' & $sChm & '"') $hWnd = WinWait($sTitle, '', 5) $hSysTab = ControlGetHandle($hWnd, "", "[CLASS:SysTabControl32; INSTANCE:1]") _GUICtrlTab_ClickTab($hSysTab, 1) WinWait($sTitle, '', '[CLASS:Edit; INSTANCE:1]') ;Посылаем искомый текст и кликаем по нему ControlSetText($sTitle, '', '[CLASS:Edit; INSTANCE:1]', $sString) WinWait($sTitle, '', '[CLASS:Button; INSTANCE:1]') ControlClick($sTitle, '', '[CLASS:Button; INSTANCE:1]', 'left')
|
Отправлено: 29-Янв-2020 23:53
(спустя 1 час 18 минут)
AZJIO
- Стаж: 6 лет 8 месяцев
- Сообщений: 1322
- Репутация:127[+] [-]
|
nikzzzz, посмотрю, но я свой скрипт 10 лет использую на куче справках и он ни разу не давал сбой. Единственное я его сначала улучшал в сторону поиска дистрибутива AutoIt3, а потом понял что лучше адаптировать под универсальность любой справки, а пути любой чел настроит под себя, главное что способ через вкладку "Указатель" я кажется не видел ни в одном варианте прыжка к функции. Хотел на PureBasic переписать, чтобы компактная утилита была, но не нашёл способа манипуляций вкладок, аналогично как и с реестром, не нашёл способа управления деревом как это умеет AutoIt3. ControlSend в отличии от просто Send работает стабильно, так как высылает конкретному элементу, да ещё при условии проверки фокуса, а до этого активности окна. avalat, сторонние утилитки можно в папку Tools совать, а то как то путаница с встроенной функцией обновления Notepad++. У меня кроме Tools ещё и папка "Instrument_azjio", потому что там куча скриптов больше десятка для AutoIt3. Поэтому отдельно, они ещё и компактные большинство скрипты, поэтому не стал смешивать с Tools, но правильно в Tools. nikzzzz, можно добавить справочную информацию в скрипт, я попадался на то что обновляю справку, прописывается новая дата в заголовок и скрипт начинает запускать справку заново, пока не доходит, что уже несколько копий запущено (добавить флаг проверки начала или полного совпадения заголовка). А также ключ тестовый для вывода в мессагу, полученного через ком-строку и прочитанного в ini, типа /test третьим параметром, а то я начинаю дебаги вставлять, чтобы посмотреть что ему не нравится, а так и пользователю удобно, добавить параметр и увидит где с путями обманулся.
|
nikzzzz
- Стаж: 9 лет 9 месяцев
- Сообщений: 3114
- Репутация:127[+] [-]
|
AZJIO73543 ни разу не давал сбой. Верю, и соглашаюсь. Но когда вижу TabRight или TabLeft , сразу ассоциация возникает с шаманскими плясками с бубнами, почему бы не обойтись без них?73543Хотел на PureBasic переписать Тоже пробовал, можно, но настолько муторно. К стати, под пурик есть библиотека поддержки Autoit, но сильно ограниченная, да и скомпилированный exe'шник где-то под 300 Kb весит (типа "Привет"), но за счет макросов синтаксис Autoit поддержан достаточно не плохо, с натяжкой даже можно назвать компилятором Autoit.
|
AZJIO
- Стаж: 6 лет 8 месяцев
- Сообщений: 1322
- Репутация:127[+] [-]
|
nikzzzz, ради одной команды тащить в скрипт UDF, а там если даже сделать обфускацию он вытянет код наверно больше чем сам скрипт, а то что выполнится внутренними функциями AutoIt3 выполнится скомпилированными функциями на скорости скомпилированного файла. Хоть скорость не особо важна, моргнуть не успеешь, но практически не вижу не одной причины, кроме как красоты исходника. А вот кликнуть на кнопку "Вывести" это да, я как то её даже не замечал, я всегда Enter клацал.
Последний раз редактировалось: AZJIO (2020-01-30 00:20), всего редактировалось 1 раз
|
nikzzzz
- Стаж: 9 лет 9 месяцев
- Сообщений: 3114
- Репутация:127[+] [-]
|
AZJIO,73543аналогично как и с реестром А с реестром то у пурика какие проблемы?
|
AZJIO
- Стаж: 6 лет 8 месяцев
- Сообщений: 1322
- Репутация:127[+] [-]
|
nikzzzz, в AutoIt3 есть функции обработки дерева, грубо говоря я имея путь могу перейти по дереву. На основе этого я много где использовал эти возможности. Вот тема
|
Страница 1 из 4
Текущее время: 21-Ноя 12:18
Часовой пояс: UTC + 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы можете скачивать файлы
|
|