AkelPad Forum Index AkelPad
Support forum
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

API AkelPad, или как перенастроить встроенные команды
Goto page 1, 2  Next
 
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian)
View previous topic :: View next topic  
Author Message
Eskander88



Joined: 26 Nov 2015
Posts: 17
Location: Rostov-on-Don

PostPosted: Sun Feb 28, 2016 10:39 am    Post subject: API AkelPad, или как перенастроить встроенные команды Reply with quote

Доброго времени суток!

Вопрос:
В меню AkelPad есть команда № 4183 (вставить дату, Ctrl + D) и команда № 4254 (Сохранить отступы слева, Ctrl + L).
Хочу внести корректировки в работу данных функций: существует ли возможность отредактировать данные команды как js/vbs файлы, так же как элементы Script-плагин?

----
думал, что ResHack поможет найти код. Но как я понял она не может вытаскивать объекты такого типа.
Back to top
View user's profile Send private message
VladSh



Joined: 29 Nov 2006
Posts: 3011
Location: Киев, Русь

PostPosted: Sun Feb 28, 2016 11:38 am    Post subject: Reply with quote

Можно их переопределить. Вам помогут Hotkeys-, ContextMenu-, Toolbar- и Scripts- плагины.
Гляньте документацию и FAQ.
Back to top
View user's profile Send private message Visit poster's website
Eskander88



Joined: 26 Nov 2015
Posts: 17
Location: Rostov-on-Don

PostPosted: Sun Feb 28, 2016 12:21 pm    Post subject: Reply with quote

Я думаю вы предложили вариант, когда делаются скрипты и к ним добавляются hot-keys, которые затирают старые команды?!

Читал об этом в FAQ. Там описан способ назначения клавиш к JS скриптам. Если он имеется в виде исходника.

Мне бы хотелось просто переделать уже имеющуюся функцию, - если это конечно возможно делать со встроенными командами. Писать скрипт к AkelPad врятли смогу, а вот поправить код, чтобы формат вывода даты был как нужно получится. Немного разбираюсь.
Back to top
View user's profile Send private message
VladSh



Joined: 29 Nov 2006
Posts: 3011
Location: Киев, Русь

PostPosted: Sun Feb 28, 2016 12:51 pm    Post subject: Reply with quote

Вот строка запуска скрипта DateInsert.js (он использует DateFormat.js):
Code:
-"Вставить дату наоборот" Call("Scripts::Main", 1, "DateInsert.js", `"yyyy.MM.dd"`, 0)
Ничего писать не надо, всё уже написано. Надо всего лишь разобраться как использовать эту строку из Hotkeys-, ContextMenu-, Toolbar- плагинов.


Добавлено: кстати, всё оказывается ещё проще. Для AkelPad.ini существует специальный параметр DateInsertFormat для задания формата вставляемой по Ctrl+D даты. Всё есть в документации.
Back to top
View user's profile Send private message Visit poster's website
Eskander88



Joined: 26 Nov 2015
Posts: 17
Location: Rostov-on-Don

PostPosted: Sun Feb 28, 2016 2:07 pm    Post subject: Reply with quote

Да, видимо по описанию то, что надо. Спасибо за информацию.

А что касается «документации AkelPad». Это наверное AkelPad/Справка/Руководство? Там конечно есть настройки. Просто каждый раз лазать в реестр или ini не очень то..

Насколько я помню данное руководство иногда переписывается, - в ранних версиях об этом не писали. А в моей 4.7.9 кое-что есть. Может в инете есть самая свежая редакция?

Хмм.. а как же быть с остальным.. Например "перенос на новую строку". Выходит всё делается средствами Script::Main с подключением к его скриптам (плагина) через HotKeys::Main, где пишется вроде -
Code:
"Вставить дату наоборот" Call("Scripts::Main", 1, "DateInsert.js", `"yyyy.MM.dd"`, 0))


только выбираешь себе скрипт по функционалу, и пользуешься?!
Back to top
View user's profile Send private message
VladSh



Joined: 29 Nov 2006
Posts: 3011
Location: Киев, Русь

PostPosted: Sun Feb 28, 2016 5:10 pm    Post subject: Reply with quote

Почитайте доки. Можно не только скрипты, но и просто команду вызвать по номеру: Command(№). Номера команд опять же в документации (Руководстве).
Back to top
View user's profile Send private message Visit poster's website
Eskander88



Joined: 26 Nov 2015
Posts: 17
Location: Rostov-on-Don

PostPosted: Sun Feb 28, 2016 7:13 pm    Post subject: Reply with quote

.. по номеру знаю как. В самом начале и написал №-а. Смотрел их в ResourseHack. А вот тему закрывать не хотелось бы. Может всё таки найдётся умелец, который знает

А так
Back to top
View user's profile Send private message
VladSh



Joined: 29 Nov 2006
Posts: 3011
Location: Киев, Русь

PostPosted: Sun Feb 28, 2016 7:22 pm    Post subject: Re: API AkelPad, или как перенастроить встроенные команды Reply with quote

Eskander88 wrote:
В меню AkelPad есть команда № 4183 (вставить дату, Ctrl + D) и команда № 4254 (Сохранить отступы слева, Ctrl + L).
Хочу внести корректировки в работу данных функций...
С датами всё понятно - расписано выше.
Какую корректировку Вы хотели бы внести в работу команды "Сохранить отступы слева"?
Back to top
View user's profile Send private message Visit poster's website
Eskander88



Joined: 26 Nov 2015
Posts: 17
Location: Rostov-on-Don

PostPosted: Sun Feb 28, 2016 7:24 pm    Post subject: Reply with quote

.. по номеру знаю как. В самом начале и написал №-а. Смотрел их в ResourseHack. Сами коды он не вытаскивает. Некоторые параметры только.

А вот тему закрывать не хотелось бы. Может всё таки есть способ вытаскивать и переделывать системные команды.

Возможно надо использовать дезассамблёр, но это для меня тёмный лес, и не думаю, что автор программы такие методы одобрит.

Раз уж AkelPad так широко использует Js и Vbs, - вот и появилась идея, - что может его большая часть в нём и записана в этих скриптах, только бы знать как их вытаскивать.

А пока Scripts::Main видимо с головой хватит .
Уже парочку скриптов попробовал, оч.круто Very Happy

Всем Огромное спасибо!
Back to top
View user's profile Send private message
Eskander88



Joined: 26 Nov 2015
Posts: 17
Location: Rostov-on-Don

PostPosted: Sun Feb 28, 2016 7:32 pm    Post subject: Re: API AkelPad, или как перенастроить встроенные команды Reply with quote

VladSh wrote:
Eskander88 wrote:
В меню AkelPad есть команда № 4183 (вставить дату, Ctrl + D) и команда № 4254 (Сохранить отступы слева, Ctrl + L).
Хочу внести корректировки в работу данных функций...
С датами всё понятно - расписано выше.
Какую корректировку Вы хотели бы внести в работу команды "Сохранить отступы слева"?


бывает когда пишешь тело функции, скажем в PHP, то когда скобка закрывает список инструкций, хотелось бы чтоб отсуп сбрасывался на один шаг.

Code:


   class MyClass {
      function getData($x, $y) {
       $some_instruction...
      }  // здесь, когда жмёшь enter, чтобы каретка
   |<- здесь ставилась      
   
   }
   


это что первое вспомнилось в голове и ещё несколько трюков (идеи) для интуитивного набора есть, сейчас не могу быстро вспомнить. Хотя всё конечно от стиля написания зависит, некоторые скажут что мол и так правильно.. Смысл "моего проекта" в том, чтобы иногда Ctrl + L сопоставлял какой порядок символов идёт и нужным мне образом от отступ менял.

.. ещё подключу LinesSelectCopyMoveDuplicate.js (очень нужный мне функционал) и можно будет на скорости строчить код. И будет всё красиво Very Happy
Back to top
View user's profile Send private message
VladSh



Joined: 29 Nov 2006
Posts: 3011
Location: Киев, Русь

PostPosted: Sun Feb 28, 2016 7:45 pm    Post subject: Reply with quote

Это резидентным скриптом решается. Посмотрите в коллекции скриптов, что-то подобное проскакивало, возможно достаточно будет откорректировать чей-то скрипт под себя. Ну или свой писать.
Back to top
View user's profile Send private message Visit poster's website
opk44



Joined: 16 Jan 2010
Posts: 448

PostPosted: Sun Feb 28, 2016 8:06 pm    Post subject: Reply with quote

Eskander88 wrote:
.. по номеру знаю как. В самом начале и написал №-а. Смотрел их в ResourseHack. ...
Возможно надо использовать дезассамблёр, но это для меня тёмный лес, и не думаю, что автор программы такие методы одобрит...
Автор программы такие методы совершенно точно не одобрит, но совсем по другой причине. Идея использовать "ResourseHack" и "дезассамблёр" (с) применительно к Open-source software - это лучший анекдот дня!
Back to top
View user's profile Send private message
Eskander88



Joined: 26 Nov 2015
Posts: 17
Location: Rostov-on-Don

PostPosted: Mon Feb 29, 2016 4:47 am    Post subject: Reply with quote

opk44 wrote:
Eskander88 wrote:
.. по номеру знаю как. В самом начале и написал №-а. Смотрел их в ResourseHack. ...
Возможно надо использовать дезассамблёр, но это для меня тёмный лес, и не думаю, что автор программы такие методы одобрит...
Автор программы такие методы совершенно точно не одобрит, но совсем по другой причине. Идея использовать "ResourseHack" и "дезассамблёр" (с) применительно к Open-source software - это лучший анекдот дня!


Точно! Сто лет на страницу загрузки не лазал.. я и забыл! Там же прилагаются исходники! Вот уж точно! Laughing анекдот
Back to top
View user's profile Send private message
VladSh



Joined: 29 Nov 2006
Posts: 3011
Location: Киев, Русь

PostPosted: Mon Feb 29, 2016 1:41 pm    Post subject: Reply with quote

В любом случае, для каких-то изменений исходники не нужны. За всё время, на сколько я помню, был один случай с назначением кнопки по умолчанию в диалоге поиска/замены, когда ребята пользовались исходниками. Остальные потребности прекрасно решаются скриптами, ну а если уж хочется залезть на более низкий уровень, то плагинами (за всю историю самописынх плагинов было всего несколько штук).
Back to top
View user's profile Send private message Visit poster's website
Eskander88



Joined: 26 Nov 2015
Posts: 17
Location: Rostov-on-Don

PostPosted: Mon Mar 07, 2016 2:18 pm    Post subject: Reply with quote

Вопрос по API: Very Happy Сделал настройку Hotkeys-плагин, чтобы можно было отправлять на исполнение просматриваемый файл.

Решение такое:
Code:
Exec(`cmd.exe /k "%f"`)



Почему не просто Exec("%f"):

  1. запуск cmd.exe возможен с ключом /k, /U, /A.
  2. проще подпилить под основополагающую затею


Как нюанс: выражение берётся в (`) и аргумент в ("), чтобы запускать файлы, в путях к которым, указаны символы пробела.

Следую из вышесказанного возникли вопросы. Подскажите пожалуйста.

Как можно использую Hotkeys-плагин для передачи в cmd.exe только выделенный фрагмент текста, можно ли использовать какую-нибудь системную функцию?
Методы для подстановки адресов директорий и путей есть: %f, %d, %a

Скажем, что бы работал что-то вроде:
Code:
Exec(`cmd.exe /k echo `+AkelPad.GetSelText())


Где +AkelPad.GetSelText() - возвращает фрагмент выделенный в тексте.

Видел на форуме EvalCmd.js, но никак не разберусь можно ли его с подобной целью использовать. Для чего он вообще?
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian) All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
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


SourceForge.net Logo Powered by phpBB © 2001, 2005 phpBB Group