Page 5 of 74

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

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

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

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

Posted: Mon Aug 06, 2007 2:41 pm
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, а внутри скрипта считывать - непопулярно :).

Posted: Tue Aug 07, 2007 7:13 am
by Fr0sT
VladSh, вот, может, и займёшься описанием? Там вроде немного, Инструктор спасибо скажет ;).
Насчёт различия по параметрам - навенрно, не стоит заморачиваться, сложно будет это реализовать. Контестной менюшки вполне хватит для этого дела.

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

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

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

Posted: Tue Aug 07, 2007 2:08 pm
by FeyFre
Может быть чуть не в ту тему. Есть такой хороший язык - LUA. Можно ли как нибуть научить Scripts или написать отдельный плаг для его интерпретации?

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

Posted: Wed Aug 08, 2007 11:39 am
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 и Справочное руководство по нему.

Posted: Wed Aug 08, 2007 2:23 pm
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.

Posted: Wed Aug 08, 2007 4:26 pm
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.

Posted: Wed Aug 08, 2007 5:21 pm
by Idjo
Bummer :shock:. I'll use the selection after all.

Posted: Wed Aug 08, 2007 8:50 pm
by Instructor
VladSh
По возможности добавить модальный метод MsgBox...
см. Calculator.js функция MessageBox.

Posted: Thu Aug 09, 2007 6:37 am
by Fr0sT
VladSh

Code: Select all

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

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

Posted: Thu Aug 09, 2007 8:41 am
by VladSh
Fr0sT
Спасибо за подсказку! 8)
Я так благодаря AkelPad'у и Вам всем, глядишь, и JavaScript выучу! :D

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

Posted: Fri Aug 10, 2007 8:30 am
by Fr0sT
На здоровье))
Я и сам тоже в жабе особо не разбирался... зато сейчас есть стимул )).
Параметр по умолчанию, конечно, неплохая штука, но имхо в данной функции он будет выглядеть нелогично. Вот если ввести функцию SetSel(startIdx, length = 0) - это покрасивше будет.