Page 1 of 2
API AkelPad, или как перенастроить встроенные команды
Posted: Sun Feb 28, 2016 10:39 am
by Eskander88
Доброго времени суток!
Вопрос:
В меню AkelPad есть команда № 4183 (вставить дату, Ctrl + D) и команда № 4254 (Сохранить отступы слева, Ctrl + L).
Хочу внести корректировки в работу данных функций: существует ли возможность отредактировать данные команды как js/vbs файлы, так же как элементы Script-плагин?
----
думал, что ResHack поможет найти код. Но как я понял она не может вытаскивать объекты такого типа.
Posted: Sun Feb 28, 2016 11:38 am
by VladSh
Можно их переопределить. Вам помогут Hotkeys-, ContextMenu-, Toolbar- и Scripts- плагины.
Гляньте документацию и FAQ.
Posted: Sun Feb 28, 2016 12:21 pm
by Eskander88
Я думаю вы предложили вариант, когда делаются скрипты и к ним добавляются hot-keys, которые затирают старые команды?!
Читал об этом в FAQ. Там описан способ назначения клавиш к JS скриптам. Если он имеется в виде исходника.
Мне бы хотелось просто переделать уже имеющуюся функцию, - если это конечно возможно делать со встроенными командами. Писать скрипт к AkelPad врятли смогу, а вот поправить код, чтобы формат вывода даты был как нужно получится. Немного разбираюсь.
Posted: Sun Feb 28, 2016 12:51 pm
by VladSh
Вот строка запуска скрипта
DateInsert.js (он использует DateFormat.js):
Code: Select all
-"Вставить дату наоборот" Call("Scripts::Main", 1, "DateInsert.js", `"yyyy.MM.dd"`, 0)
Ничего писать не надо, всё уже написано. Надо всего лишь разобраться как использовать эту строку из Hotkeys-, ContextMenu-, Toolbar- плагинов.
Добавлено: кстати, всё оказывается ещё проще. Для
AkelPad.ini существует специальный параметр
DateInsertFormat для задания формата вставляемой по Ctrl+D даты. Всё есть в документации.
Posted: Sun Feb 28, 2016 2:07 pm
by Eskander88
Да, видимо по описанию то, что надо. Спасибо за информацию.
А что касается «документации AkelPad». Это наверное
AkelPad/Справка/Руководство? Там конечно есть настройки. Просто каждый раз лазать в реестр или ini не очень то..
Насколько я помню данное руководство иногда переписывается, - в ранних версиях об этом не писали. А в моей 4.7.9 кое-что есть. Может в инете есть самая свежая редакция?
Хмм.. а как же быть с остальным.. Например "перенос на новую строку". Выходит всё делается средствами Script::Main с подключением к его скриптам (плагина) через HotKeys::Main, где пишется вроде -
Code: Select all
"Вставить дату наоборот" Call("Scripts::Main", 1, "DateInsert.js", `"yyyy.MM.dd"`, 0))
только выбираешь себе скрипт по функционалу, и пользуешься?!
Posted: Sun Feb 28, 2016 5:10 pm
by VladSh
Почитайте доки. Можно не только скрипты, но и просто команду вызвать по номеру: Command(№). Номера команд опять же в документации (Руководстве).
Posted: Sun Feb 28, 2016 7:13 pm
by Eskander88
.. по номеру знаю как. В самом начале и написал №-а. Смотрел их в ResourseHack. А вот тему закрывать не хотелось бы. Может всё таки найдётся умелец, который знает
А так
Re: API AkelPad, или как перенастроить встроенные команды
Posted: Sun Feb 28, 2016 7:22 pm
by VladSh
Eskander88 wrote:В меню AkelPad есть команда № 4183 (вставить дату, Ctrl + D) и команда № 4254 (Сохранить отступы слева, Ctrl + L).
Хочу внести корректировки в работу данных функций...
С датами всё понятно - расписано выше.
Какую корректировку Вы хотели бы внести в работу команды "Сохранить отступы слева"?
Posted: Sun Feb 28, 2016 7:24 pm
by Eskander88
.. по номеру знаю как. В самом начале и написал №-а. Смотрел их в ResourseHack. Сами коды он не вытаскивает. Некоторые параметры только.
А вот тему закрывать не хотелось бы. Может всё таки есть способ вытаскивать и переделывать системные команды.
Возможно надо использовать дезассамблёр, но это для меня тёмный лес, и не думаю, что автор программы такие методы одобрит.
Раз уж AkelPad так широко использует Js и Vbs, - вот и появилась идея, - что может его большая часть в нём и записана в этих скриптах, только бы знать как их вытаскивать.
А пока Scripts::Main видимо с головой хватит .
Уже парочку скриптов попробовал, оч.круто
Всем Огромное спасибо!
Re: API AkelPad, или как перенастроить встроенные команды
Posted: Sun Feb 28, 2016 7:32 pm
by Eskander88
VladSh wrote:Eskander88 wrote:В меню AkelPad есть команда № 4183 (вставить дату, Ctrl + D) и команда № 4254 (Сохранить отступы слева, Ctrl + L).
Хочу внести корректировки в работу данных функций...
С датами всё понятно - расписано выше.
Какую корректировку Вы хотели бы внести в работу команды "Сохранить отступы слева"?
бывает когда пишешь тело функции, скажем в PHP, то когда скобка закрывает список инструкций, хотелось бы чтоб отсуп сбрасывался на один шаг.
Code: Select all
class MyClass {
function getData($x, $y) {
$some_instruction...
} // здесь, когда жмёшь enter, чтобы каретка
|<- здесь ставилась
}
это что первое вспомнилось в голове и ещё несколько трюков (идеи) для интуитивного набора есть, сейчас не могу быстро вспомнить. Хотя всё конечно от стиля написания зависит, некоторые скажут что мол и так правильно.. Смысл "моего проекта" в том, чтобы иногда Ctrl + L сопоставлял какой порядок символов идёт и нужным мне образом от отступ менял.
.. ещё подключу
LinesSelectCopyMoveDuplicate.js (очень нужный мне функционал) и можно будет на скорости строчить код. И будет всё красиво

Posted: Sun Feb 28, 2016 7:45 pm
by VladSh
Это резидентным скриптом решается. Посмотрите в коллекции скриптов, что-то подобное проскакивало, возможно достаточно будет откорректировать чей-то скрипт под себя. Ну или свой писать.
Posted: Sun Feb 28, 2016 8:06 pm
by opk44
Eskander88 wrote:.. по номеру знаю как. В самом начале и написал №-а. Смотрел их в ResourseHack. ...
Возможно надо использовать дезассамблёр, но это для меня тёмный лес, и не думаю, что автор программы такие методы одобрит...
Автор программы такие методы совершенно точно не одобрит, но совсем по другой причине. Идея использовать "ResourseHack" и "дезассамблёр" (с) применительно к Open-source software - это лучший анекдот дня!
Posted: Mon Feb 29, 2016 4:47 am
by Eskander88
opk44 wrote:Eskander88 wrote:.. по номеру знаю как. В самом начале и написал №-а. Смотрел их в ResourseHack. ...
Возможно надо использовать дезассамблёр, но это для меня тёмный лес, и не думаю, что автор программы такие методы одобрит...
Автор программы такие методы совершенно точно не одобрит, но совсем по другой причине. Идея использовать "ResourseHack" и "дезассамблёр" (с) применительно к Open-source software - это лучший анекдот дня!
Точно! Сто лет на страницу загрузки не лазал.. я и забыл! Там же прилагаются исходники! Вот уж точно!

анекдот
Posted: Mon Feb 29, 2016 1:41 pm
by VladSh
В любом случае, для каких-то изменений исходники не нужны. За всё время, на сколько я помню, был один случай с назначением кнопки по умолчанию в диалоге поиска/замены, когда ребята пользовались исходниками. Остальные потребности прекрасно решаются скриптами, ну а если уж хочется залезть на более низкий уровень, то плагинами (за всю историю самописынх плагинов было всего несколько штук).
Posted: Mon Mar 07, 2016 2:18 pm
by Eskander88
Вопрос по API:

Сделал настройку Hotkeys-плагин, чтобы можно было отправлять на исполнение просматриваемый файл.
Решение такое:
Почему не просто
Exec("%f"):
- запуск cmd.exe возможен с ключом /k, /U, /A.
- проще подпилить под основополагающую затею
Как нюанс: выражение берётся в (`) и аргумент в ("), чтобы запускать файлы, в путях к которым, указаны символы пробела.
Следую из вышесказанного возникли вопросы. Подскажите пожалуйста.
Как можно использую Hotkeys-плагин для передачи в cmd.exe только выделенный фрагмент текста, можно ли использовать какую-нибудь системную функцию?
Методы для подстановки адресов директорий и путей есть: %f, %d, %a
Скажем, что бы работал что-то вроде:
Code: Select all
Exec(`cmd.exe /k echo `+AkelPad.GetSelText())
Где
+AkelPad.GetSelText() - возвращает фрагмент выделенный в тексте.
Видел на форуме
EvalCmd.js, но никак не разберусь можно ли его с подобной целью использовать. Для чего он вообще?