[Цитировать]

    avalat
  • 222
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 465
  • Репутация:127

    [+] [-]
AkelPad+
Цветовая тема для PECMD
Горячие клавиши : F5 (сохранить и выполнить)
F1 для вывода справки
Нужно выделить команду или просто поставить курсор на неё - нажать на F1 - и справка откроется в нужном месте
dy
--------------------------------------------------------------------------------------------------------------
Notepad++
Горячие клавиши : F5 (сохранить и выполнить) F6 (создать приложение)
dy
--------------------------------------------------------------------------------------------------------------
Еще один редактор SynWrite
справка - F1 (или значок на панели)
сохранить и выполнить - F5 (или значок на панели), в контекстном меню (правый клик) - Создать приложение
                      .
dy


Последний раз редактировалось: avalat (2024-03-02 20:00), всего редактировалось 19 раз(а)

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
avalat, aa
Огромное спасибо за проделанную работу ay , особенно за хелп.
Немного о недостатках.
Не сворачиваются блоки {....}
F1 (хэлп) показывает общий хэлп, а не на указанное курсором слово, по идее надо было-бы повесить F1 на красную иконку.
Я пользуюсь редактором SynWrite, Notepad++ хороший редактор, но многого не хватает, хотя возможно, я с ним плохо знаком.
Сделал простенький IDE (использовал ваши наработки)
Вот, что получилось.


Очень полезна панель дерева, не знаю, можно ли ее реализовать на Notepad++
Ну и отлаживать можно, не выходя из редактора.
Если интересно, могу выложить.

[Цитировать]

    avalat
  • 222
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 465
  • Репутация:127

    [+] [-]
nikzzzz, aa
На F1 Help тоже легко перекинуть.
Сворачивать блоки {....} не знаю как.
И не знаю зачем ab
У AZJIO надо спросить. Он в этом спец. Я с Notepad++ не очень...
Изменил в шапке.. Подправил кое-где перевод.


Последний раз редактировалось: avalat (2020-10-25 13:31), всего редактировалось 2 раз(а)

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 8 месяцев
  • Сообщений: 1322
  • Репутация:127

    [+] [-]
73522Очень полезна панель дерева, не знаю, можно ли ее реализовать на Notepad++
Да можно,вот к примеру я делал для PureBasic. Ранее это был плаг FunctionList, сейчас встроили в по умолчанию (немного с другим функционалом). И там много языков уже встроено, а каких нет предлагают на форуме и потихоньку появляются.
На счёт хелпа есть плаг LanguageHelp, он связывает расширение со справкой, но я пользуюсь своим вариантом, отличие в том что имя функции не всегда является именем файла справки, поэтому доступ через имя файла справки не работает, а мой вариант доступа - автоматизация вставки имени в "Указатель", где имя всегда соответствует, исключение если указатель не сформирован автором справки, но это легко решается пересборкой методом экспорта TOC (содержания) в указатель.
73522Ну и отлаживать можно, не выходя из редактора.
Есть плаг NppExec - вывод строк отладки в консоль (я его русифицировал).
В AkelPad тоже всё это есть, список функций, прыжок в справку к функции, вывод отладки в консоль, свёртки, автозавершение подсветка в том числе рег.выр-ами.

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
AZJIO, aa
73526И там много языков уже встроено, а каких нет предлагают на форуме и потихоньку появляются.
Так в том-то и дело, что сложно все это делается, на SynWrite имея список слов, сделать подсветку для нужного языка минут пять, не требуется знания xml и т.п. , все в графическом режиме с отладкой.
Парсер для сворачивания так-же создается без проблем, единственное - требует знания RegExp
То-же для дерева.
Я не особенно знаком с Notepad++, возможно я его недооцениваю.

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 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
  • 222
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 465
  • Репутация:127

    [+] [-]
AZJIO, спасибо, список функций получился. Поправил. Я и использовал твои наработки, наверное старые.

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 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>

[Цитировать]

    avalat
  • 222
  • Стаж: 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
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
AZJIO, aa
Посмотрел твой 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')

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 8 месяцев
  • Сообщений: 1322
  • Репутация:127

    [+] [-]
nikzzzz, посмотрю, но я свой скрипт 10 лет использую на куче справках и он ни разу не давал сбой. Единственное я его сначала улучшал в сторону поиска дистрибутива AutoIt3, а потом понял что лучше адаптировать под универсальность любой справки, а пути любой чел настроит под себя, главное что способ через вкладку "Указатель" я кажется не видел ни в одном варианте прыжка к функции. Хотел на PureBasic переписать, чтобы компактная утилита была, но не нашёл способа манипуляций вкладок, аналогично как и с реестром, не нашёл способа управления деревом как это умеет AutoIt3.
ControlSend в отличии от просто Send работает стабильно, так как высылает конкретному элементу, да ещё при условии проверки фокуса, а до этого активности окна.
avalat, сторонние утилитки можно в папку Tools совать, а то как то путаница с встроенной функцией обновления Notepad++. У меня кроме Tools ещё и папка "Instrument_azjio", потому что там куча скриптов больше десятка для AutoIt3. Поэтому отдельно, они ещё и компактные большинство скрипты, поэтому не стал смешивать с Tools, но правильно в Tools.
nikzzzz, можно добавить справочную информацию в скрипт, я попадался на то что обновляю справку, прописывается новая дата в заголовок и скрипт начинает запускать справку заново, пока не доходит, что уже несколько копий запущено (добавить флаг проверки начала или полного совпадения заголовка). А также ключ тестовый для вывода в мессагу, полученного через ком-строку и прочитанного в ini, типа /test третьим параметром, а то я начинаю дебаги вставлять, чтобы посмотреть что ему не нравится, а так и пользователю удобно, добавить параметр и увидит где с путями обманулся.

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
AZJIO
73543 ни разу не давал сбой.
Верю, и соглашаюсь.
Но когда вижу TabRight или TabLeft , сразу ассоциация возникает с шаманскими плясками с бубнами, почему бы не обойтись без них?
73543Хотел на PureBasic переписать
Тоже пробовал, можно, но настолько муторно. am
К стати, под пурик есть библиотека поддержки Autoit, но сильно ограниченная, да и скомпилированный exe'шник где-то под 300 Kb весит (типа "Привет"), но за счет макросов синтаксис Autoit поддержан достаточно не плохо, с натяжкой даже можно назвать компилятором Autoit.

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 8 месяцев
  • Сообщений: 1322
  • Репутация:127

    [+] [-]
nikzzzz, ради одной команды тащить в скрипт UDF, а там если даже сделать обфускацию он вытянет код наверно больше чем сам скрипт, а то что выполнится внутренними функциями AutoIt3 выполнится скомпилированными функциями на скорости скомпилированного файла. Хоть скорость не особо важна, моргнуть не успеешь, но практически не вижу не одной причины, кроме как красоты исходника.
А вот кликнуть на кнопку "Вывести" это да, я как то её даже не замечал, я всегда Enter клацал.


Последний раз редактировалось: AZJIO (2020-01-30 00:20), всего редактировалось 1 раз

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
AZJIO,
73543аналогично как и с реестром
А с реестром то у пурика какие проблемы?

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 8 месяцев
  • Сообщений: 1322
  • Репутация:127

    [+] [-]
nikzzzz, в AutoIt3 есть функции обработки дерева, грубо говоря я имея путь могу перейти по дереву. На основе этого я много где использовал эти возможности. Вот тема

Страница 1 из 4


Показать сообщения:    

Текущее время: 21-Ноя 12:18

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы