Scripts plugin

Discuss and announce AkelPad plugins
Post Reply
  • Author
  • Message
Offline
Posts: 876
Joined: Tue Jul 24, 2007 8:54 am

Re: ещё предложение

Post by Fr0sT »

VladSh wrote:Хочется строковый параметр для GetAkelDir()
полный путь к папке с ПЛАГИНАМИ = путь к AkelPad'у + AkelFiles\Plugs ?
possibility to call AkelPad plugin with parameters
Added: InputBox method.
Ух, какие возможности открываются!! :D

Offline
Posts: 3243
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Re: ещё предложение

Post by VladSh »

Fr0sT wrote:
VladSh wrote:Хочется строковый параметр для GetAkelDir()
полный путь к папке с ПЛАГИНАМИ = путь к AkelPad'у + AkelFiles\Plugs ?
Оно-то конечно да, но уже как-то было, что путь к базовой папке, конкретно к Langs, изменялся - потом переделывать все скрипты - это не дело, да и неохота жётско прописывать константы в скриптах... Я считаю, что их вполне можно вытянуть из AkelPad'а через его ActiveX, - по моему это хорошее решение.

Offline
Posts: 3243
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Оказывается по поводу нововведений Instructor скромничает :D
1. В последней версии Script-плагина осталась кнопка ОК, которая просто закрывает окно, а назначает комбинацию клавиш теперь кнопка "Назначить"!
2. Скрипты не просто сортируются! При добавлении нового скрипта при закруженной проге теперь не приходится её перезагружать, список скриптов обновляется при открытии перечня (окна) скриптов!

Осталось бы запоминать фокус и изменяемые размеры окна...

----------------------------------
UPDATED: всё-таки в Scripts-Rus.txt (иногда "под рукой" просто нет интернета чтобы форум читать) хочется хорошее описание каждого метода, с параметрами, т.к. плагин очень важный, а в Test.js/Test.vbs далеко не всё...
Отличное описание! Так хотелось бы для каждого метода:
Instructor wrote:Possibility to call AkelPad plugin with parameters (like ContextMenu's Call() method). For example:

Code: Select all

AkelPad.Call("Macros::Main", 1, "123", 1, 0);
// 1 -execute, "123" -macro name, 1 -repeat count, 0 -reserved
----------------------------------
Fr0sT wrote:Неплохо было бы иметь возможность указать параметры запускаемого скрипта, причём чтобы скрипты с разными параметрами различались в списке.
Как я понял нужно чтобы файл скрипта был один, но каким-то образом передавать туда параметры, притом не через InputBox, а уже где-то сохранённые... Это наверное нужно делать отдельное хранилище, в котором будут находиться наименования скриптов и часто используемые параметры для них + отдельное окно для их отображения и последующего запуска. Сложность возникнет при передаче параметров в скрипт, но варианты всё же есть:
- параметры хранить в отдельных скриптах и потом подгружать их с помощью eval, как советовал Instructor, для данного случая не совсем удобно, - куча скриптовых файлов, их потом станет трудно отличать: скрипты-параметры от основных...
- параметры для запускаемого скрипта писать в реестр, а внутри скрипта считывать - неудобно, - нужно лазить в реестр;
- параметры для запускаемого скрипта писать в ini, а внутри скрипта считывать - непопулярно :).

Offline
Posts: 876
Joined: Tue Jul 24, 2007 8:54 am

Post by Fr0sT »

VladSh, вот, может, и займёшься описанием? Там вроде немного, Инструктор спасибо скажет ;).
Насчёт различия по параметрам - навенрно, не стоит заморачиваться, сложно будет это реализовать. Контестной менюшки вполне хватит для этого дела.

Offline
Posts: 3243
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Fr0sT wrote:VladSh, вот, может, и займёшься описанием? Там вроде немного, Инструктор спасибо скажет ;).
Дык я сам у него по чайной ложке выпытываю! :) Если б всё знал, то не спрашивал бы :D

Instructor
Нашёл ещё один не очень приятный "баг".
Создал скрипт, назначил ему комбинацию клавиш, переименовал скрипт, хочу назначить ту же комбинацию клавиш - ан-нет, не выходит... говорит, что данныя комбинация уже зарезервирована. Я-то думал, что он будет предупреждать, а оказывается не даёт и всё тут! :-\
Перезагрузка AkelPad'а не помогла.
Короче пришлось переименовывать скрипт назад, снимать с него комбинацию клавиш и т.д... Это всё из-за того, что в окне скриптов нет кнопки "Почистить" /возможно она понадобится и в окне макросов - не знаю/.
Ещё хотелось чтобы кнопка "Почистить" работала сразу, т.е. чтобы после неё не требовалось перегружать AkelPad (так во всяком случае было в 3.3.5).

Offline
Site Admin
Posts: 6411
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

VladSh
Создал скрипт, назначил ему комбинацию клавиш, переименовал скрипт, хочу назначить ту же комбинацию клавиш - ан-нет, не выходит... говорит, что данныя комбинация уже зарезервирована. Я-то думал, что он будет предупреждать, а оказывается не даёт и всё тут! :-\
Перезагрузка AkelPad'а не помогла.
Именно перезагрузка и поможет, хотя конечно "Почистить" было бы кстати.

Offline
Posts: 2248
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Может быть чуть не в ту тему. Есть такой хороший язык - LUA. Можно ли как нибуть научить Scripts или написать отдельный плаг для его интерпретации?

Offline
Posts: 3243
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

несколько идей

Post by VladSh »

:idea: Что бы ещё хотелось:

1. В методе SetSel 2-й параметр сделать необязательным для простой установки курсора - это было бы удобно и работало бы быстрее, т.к. такая запись неэффективна:

Code: Select all

AkelPad.SetSel(AkelPad.GetSelEnd(), AkelPad.GetSelEnd());
, т.к. приходится дважды вызывать AkelPad.GetSelEnd(). Вводить же из-за этого ещё один var нецелесообразно.

2. В статусбаре справа очень много свободного места. Предлягаю сделать там информационное поле.
Было бы просто супер реализовать в Script-плагине метод Print, который бы выводил туда нужную инфу. Это было бы очень удобно как для отладки (из-за вызова WScript.Echo() искажается работа скрипта, предполагаю, что он немодальный), так и можно было бы выводить некоторые сервисные сообщения (пояснения) из самой проги или из плагов.

3. По возможности добавить модальный метод MsgBox, который бы возвращал стандартный виндовый код нажатой кнопки.
По этому пункту - понимаю, что можно это сделать самому через регистрацию окна и т.д... но неохота каждый раз этим заниматься, гораздо удобней, когда для этого есть штатные средства.

:D

P.S. Краткое описание языка LUA на IBM Developerworks и Справочное руководство по нему.

Offline
Posts: 21
Joined: Sun May 06, 2007 10:14 am

Post by Idjo »

How can I get text without selecting it?
ReadFile isn't good because it imports the saved content instead of the current content.

Offline
Posts: 3243
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Idjo wrote:How can I get text without selecting it?
Unfortunately it is impossible.
Here I already suggested to make a method-analogue mid:
VladSh wrote:...While wrote the super-idea has come! Add please a method which would take a symbol (or group of symbols in the period, analogue Mid) from all window of editing (not selection) under numbers! It though has somehow solved a problem...
As such function is not present, it is necessary to be perverted by selection of the necessary text... :?
Idjo wrote:ReadFile isn't good because it imports the saved content instead of the current content.
It is necessary to set simply the cursor in the necessary place and only then ReadFile. Other variants to me are not known.

Offline
Posts: 21
Joined: Sun May 06, 2007 10:14 am

Post by Idjo »

Bummer :shock:. I'll use the selection after all.

Offline
Site Admin
Posts: 6411
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

VladSh
По возможности добавить модальный метод MsgBox...
см. Calculator.js функция MessageBox.

Offline
Posts: 876
Joined: Tue Jul 24, 2007 8:54 am

Post by Fr0sT »

VladSh

Code: Select all

AkelPad.SetSel(tmp=AkelPad.GetSelEnd(), tmp);
не намного длиннее...

В стандартном наборе WShell точно есть MsgBox, по крайней мере, для VB script.

Offline
Posts: 3243
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Fr0sT
Спасибо за подсказку! 8)
Я так благодаря AkelPad'у и Вам всем, глядишь, и JavaScript выучу! :D

P.S. Так и буду писать, но temp-переменная всё же создаётся, а это доп. выделение памяти... IMHO не очень это хорошо, когда в программном коде много temp-var, для того и делались необязательные параметры, особенно актуально когда параметры между собой равны.

Offline
Posts: 876
Joined: Tue Jul 24, 2007 8:54 am

Post by Fr0sT »

На здоровье))
Я и сам тоже в жабе особо не разбирался... зато сейчас есть стимул )).
Параметр по умолчанию, конечно, неплохая штука, но имхо в данной функции он будет выглядеть нелогично. Вот если ввести функцию SetSel(startIdx, length = 0) - это покрасивше будет.
Post Reply