API AkelPad, или как перенастроить встроенные команды
- Author
- Message
-
Offline
- Posts: 157
- Joined: Thu Nov 26, 2015 8:03 pm
- Location: Rostov-on-Don
API AkelPad, или как перенастроить встроенные команды
Доброго времени суток!
Вопрос:
В меню AkelPad есть команда № 4183 (вставить дату, Ctrl + D) и команда № 4254 (Сохранить отступы слева, Ctrl + L).
Хочу внести корректировки в работу данных функций: существует ли возможность отредактировать данные команды как js/vbs файлы, так же как элементы Script-плагин?
----
думал, что ResHack поможет найти код. Но как я понял она не может вытаскивать объекты такого типа.
Вопрос:
В меню AkelPad есть команда № 4183 (вставить дату, Ctrl + D) и команда № 4254 (Сохранить отступы слева, Ctrl + L).
Хочу внести корректировки в работу данных функций: существует ли возможность отредактировать данные команды как js/vbs файлы, так же как элементы Script-плагин?
----
думал, что ResHack поможет найти код. Но как я понял она не может вытаскивать объекты такого типа.
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
-
Offline
- Posts: 157
- Joined: Thu Nov 26, 2015 8:03 pm
- Location: Rostov-on-Don
Я думаю вы предложили вариант, когда делаются скрипты и к ним добавляются hot-keys, которые затирают старые команды?!
Читал об этом в FAQ. Там описан способ назначения клавиш к JS скриптам. Если он имеется в виде исходника.
Мне бы хотелось просто переделать уже имеющуюся функцию, - если это конечно возможно делать со встроенными командами. Писать скрипт к AkelPad врятли смогу, а вот поправить код, чтобы формат вывода даты был как нужно получится. Немного разбираюсь.
Читал об этом в FAQ. Там описан способ назначения клавиш к JS скриптам. Если он имеется в виде исходника.
Мне бы хотелось просто переделать уже имеющуюся функцию, - если это конечно возможно делать со встроенными командами. Писать скрипт к AkelPad врятли смогу, а вот поправить код, чтобы формат вывода даты был как нужно получится. Немного разбираюсь.
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Вот строка запуска скрипта DateInsert.js (он использует DateFormat.js):
Ничего писать не надо, всё уже написано. Надо всего лишь разобраться как использовать эту строку из Hotkeys-, ContextMenu-, Toolbar- плагинов.
Добавлено: кстати, всё оказывается ещё проще. Для AkelPad.ini существует специальный параметр DateInsertFormat для задания формата вставляемой по Ctrl+D даты. Всё есть в документации.
Code: Select all
-"Вставить дату наоборот" Call("Scripts::Main", 1, "DateInsert.js", `"yyyy.MM.dd"`, 0)
Добавлено: кстати, всё оказывается ещё проще. Для AkelPad.ini существует специальный параметр DateInsertFormat для задания формата вставляемой по Ctrl+D даты. Всё есть в документации.
-
Offline
- Posts: 157
- Joined: Thu Nov 26, 2015 8:03 pm
- Location: Rostov-on-Don
Да, видимо по описанию то, что надо. Спасибо за информацию.
А что касается «документации AkelPad». Это наверное AkelPad/Справка/Руководство? Там конечно есть настройки. Просто каждый раз лазать в реестр или ini не очень то..
Насколько я помню данное руководство иногда переписывается, - в ранних версиях об этом не писали. А в моей 4.7.9 кое-что есть. Может в инете есть самая свежая редакция?
Хмм.. а как же быть с остальным.. Например "перенос на новую строку". Выходит всё делается средствами Script::Main с подключением к его скриптам (плагина) через HotKeys::Main, где пишется вроде -
только выбираешь себе скрипт по функционалу, и пользуешься?!
А что касается «документации AkelPad». Это наверное AkelPad/Справка/Руководство? Там конечно есть настройки. Просто каждый раз лазать в реестр или ini не очень то..
Насколько я помню данное руководство иногда переписывается, - в ранних версиях об этом не писали. А в моей 4.7.9 кое-что есть. Может в инете есть самая свежая редакция?
Хмм.. а как же быть с остальным.. Например "перенос на новую строку". Выходит всё делается средствами Script::Main с подключением к его скриптам (плагина) через HotKeys::Main, где пишется вроде -
Code: Select all
"Вставить дату наоборот" Call("Scripts::Main", 1, "DateInsert.js", `"yyyy.MM.dd"`, 0))
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Re: API AkelPad, или как перенастроить встроенные команды
С датами всё понятно - расписано выше.Eskander88 wrote:В меню AkelPad есть команда № 4183 (вставить дату, Ctrl + D) и команда № 4254 (Сохранить отступы слева, Ctrl + L).
Хочу внести корректировки в работу данных функций...
Какую корректировку Вы хотели бы внести в работу команды "Сохранить отступы слева"?
-
Offline
- Posts: 157
- Joined: Thu Nov 26, 2015 8:03 pm
- Location: Rostov-on-Don
.. по номеру знаю как. В самом начале и написал №-а. Смотрел их в ResourseHack. Сами коды он не вытаскивает. Некоторые параметры только.
А вот тему закрывать не хотелось бы. Может всё таки есть способ вытаскивать и переделывать системные команды.
Возможно надо использовать дезассамблёр, но это для меня тёмный лес, и не думаю, что автор программы такие методы одобрит.
Раз уж AkelPad так широко использует Js и Vbs, - вот и появилась идея, - что может его большая часть в нём и записана в этих скриптах, только бы знать как их вытаскивать.
А пока Scripts::Main видимо с головой хватит .
Уже парочку скриптов попробовал, оч.круто
Всем Огромное спасибо!
А вот тему закрывать не хотелось бы. Может всё таки есть способ вытаскивать и переделывать системные команды.
Возможно надо использовать дезассамблёр, но это для меня тёмный лес, и не думаю, что автор программы такие методы одобрит.
Раз уж AkelPad так широко использует Js и Vbs, - вот и появилась идея, - что может его большая часть в нём и записана в этих скриптах, только бы знать как их вытаскивать.
А пока Scripts::Main видимо с головой хватит .
Уже парочку скриптов попробовал, оч.круто
Всем Огромное спасибо!
-
Offline
- Posts: 157
- Joined: Thu Nov 26, 2015 8:03 pm
- Location: Rostov-on-Don
Re: API AkelPad, или как перенастроить встроенные команды
бывает когда пишешь тело функции, скажем в PHP, то когда скобка закрывает список инструкций, хотелось бы чтоб отсуп сбрасывался на один шаг.VladSh wrote:С датами всё понятно - расписано выше.Eskander88 wrote:В меню AkelPad есть команда № 4183 (вставить дату, Ctrl + D) и команда № 4254 (Сохранить отступы слева, Ctrl + L).
Хочу внести корректировки в работу данных функций...
Какую корректировку Вы хотели бы внести в работу команды "Сохранить отступы слева"?
Code: Select all
class MyClass {
function getData($x, $y) {
$some_instruction...
} // здесь, когда жмёшь enter, чтобы каретка
|<- здесь ставилась
}
.. ещё подключу LinesSelectCopyMoveDuplicate.js (очень нужный мне функционал) и можно будет на скорости строчить код. И будет всё красиво
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
-
Offline
- Posts: 874
- Joined: Sat Jan 16, 2010 2:03 pm
Автор программы такие методы совершенно точно не одобрит, но совсем по другой причине. Идея использовать "ResourseHack" и "дезассамблёр" (с) применительно к Open-source software - это лучший анекдот дня!Eskander88 wrote:.. по номеру знаю как. В самом начале и написал №-а. Смотрел их в ResourseHack. ...
Возможно надо использовать дезассамблёр, но это для меня тёмный лес, и не думаю, что автор программы такие методы одобрит...
-
Offline
- Posts: 157
- Joined: Thu Nov 26, 2015 8:03 pm
- Location: Rostov-on-Don
Точно! Сто лет на страницу загрузки не лазал.. я и забыл! Там же прилагаются исходники! Вот уж точно! анекдотopk44 wrote:Автор программы такие методы совершенно точно не одобрит, но совсем по другой причине. Идея использовать "ResourseHack" и "дезассамблёр" (с) применительно к Open-source software - это лучший анекдот дня!Eskander88 wrote:.. по номеру знаю как. В самом начале и написал №-а. Смотрел их в ResourseHack. ...
Возможно надо использовать дезассамблёр, но это для меня тёмный лес, и не думаю, что автор программы такие методы одобрит...
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
В любом случае, для каких-то изменений исходники не нужны. За всё время, на сколько я помню, был один случай с назначением кнопки по умолчанию в диалоге поиска/замены, когда ребята пользовались исходниками. Остальные потребности прекрасно решаются скриптами, ну а если уж хочется залезть на более низкий уровень, то плагинами (за всю историю самописынх плагинов было всего несколько штук).
-
Offline
- Posts: 157
- Joined: Thu Nov 26, 2015 8:03 pm
- Location: Rostov-on-Don
Вопрос по API: Сделал настройку Hotkeys-плагин, чтобы можно было отправлять на исполнение просматриваемый файл.
Решение такое:
Почему не просто Exec("%f"):
Следую из вышесказанного возникли вопросы. Подскажите пожалуйста.
Как можно использую Hotkeys-плагин для передачи в cmd.exe только выделенный фрагмент текста, можно ли использовать какую-нибудь системную функцию?
Методы для подстановки адресов директорий и путей есть: %f, %d, %a
Скажем, что бы работал что-то вроде:
Где +AkelPad.GetSelText() - возвращает фрагмент выделенный в тексте.
Видел на форуме EvalCmd.js, но никак не разберусь можно ли его с подобной целью использовать. Для чего он вообще?
Решение такое:
Code: Select all
Exec(`cmd.exe /k "%f"`)
Почему не просто Exec("%f"):
- запуск cmd.exe возможен с ключом /k, /U, /A.
- проще подпилить под основополагающую затею
Следую из вышесказанного возникли вопросы. Подскажите пожалуйста.
Как можно использую Hotkeys-плагин для передачи в cmd.exe только выделенный фрагмент текста, можно ли использовать какую-нибудь системную функцию?
Методы для подстановки адресов директорий и путей есть: %f, %d, %a
Скажем, что бы работал что-то вроде:
Code: Select all
Exec(`cmd.exe /k echo `+AkelPad.GetSelText())
Видел на форуме EvalCmd.js, но никак не разберусь можно ли его с подобной целью использовать. Для чего он вообще?