[Quote]

    avalat
  • 222
  • Longevity: 5 years 3 months
  • Posts: 108
  • REPUTATION:28

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


Last edited by avalat on 2020-03-19 19:01; edited 6 times in total

[Quote]

    nikzzzz
  • 215
  • Longevity: 5 years 4 months
  • Posts: 3191
  • REPUTATION:127

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


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

[Quote]

    avalat
  • 222
  • Longevity: 5 years 3 months
  • Posts: 108
  • REPUTATION:28

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


Last edited by avalat on 2020-01-29 20:49; edited 1 time in total

[Quote]

    AZJIO
  • 17953
  • Longevity: 2 years 2 months
  • Posts: 326
  • REPUTATION:51

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

[Quote]

    nikzzzz
  • 215
  • Longevity: 5 years 4 months
  • Posts: 3191
  • REPUTATION:127

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

[Quote]

    AZJIO
  • 17953
  • Longevity: 2 years 2 months
  • Posts: 326
  • REPUTATION:51

    [+] [-]
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" и всё будет работать.

[Quote]

    avalat
  • 222
  • Longevity: 5 years 3 months
  • Posts: 108
  • REPUTATION:28

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

[Quote]

    AZJIO
  • 17953
  • Longevity: 2 years 2 months
  • Posts: 326
  • REPUTATION:51

    [+] [-]
Я перезалил 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>

[Quote]

    avalat
  • 222
  • Longevity: 5 years 3 months
  • Posts: 108
  • REPUTATION:28

    [+] [-]
AZJIO, Заработало,но только так
<Command name="Help" Ctrl="no" Alt="no" Shift="no" Key="112">"$(NPP_DIRECTORY)\Instrument_azjio\Help\Help.exe" "$(CURRENT_WORD)" $(EXT_PART)</Command>
Спасибо !
Исправил в шапке.


Last edited by avalat on 2020-01-29 22:49; edited 1 time in total

[Quote]

    nikzzzz
  • 215
  • Longevity: 5 years 4 months
  • Posts: 3191
  • REPUTATION: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')

[Quote]

    AZJIO
  • 17953
  • Longevity: 2 years 2 months
  • Posts: 326
  • REPUTATION:51

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

[Quote]

    nikzzzz
  • 215
  • Longevity: 5 years 4 months
  • Posts: 3191
  • REPUTATION:127

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

[Quote]

    AZJIO
  • 17953
  • Longevity: 2 years 2 months
  • Posts: 326
  • REPUTATION:51

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


Last edited by AZJIO on 2020-01-30 00:20; edited 1 time in total

[Quote]

    nikzzzz
  • 215
  • Longevity: 5 years 4 months
  • Posts: 3191
  • REPUTATION:127

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

[Quote]

    AZJIO
  • 17953
  • Longevity: 2 years 2 months
  • Posts: 326
  • REPUTATION:51

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

Page 1 of 3


Display posts:    

Current time is: 25-May 06:44

All times are UTC + 3


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum