Scripts plugin

Discuss and announce AkelPad plugins
  • Author
  • Message
Offline
Posts: 3234
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

FeyFre wrote:Если всё сделать правильно, то это всё перечисленное будет доступно из под MSVS и не нужно это всё интегрировать в Акел.
А если нету MSVS, и не предвидится?
Мне хотелось бы только построчный проход, но и брекпоинт тогда уж сделать не сложно.

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

Post by VladSh »

Scripts плагин wrote:---------------------------
Scripts::Main::WordCaretPosCopy.js

Горячая клавиша уже назначена для "Scripts::Main::WordCaretCopy.js".
Старая "проблема"... Можно ли сделать так, чтобы производилась проверка на наличие скрипта, и если его нет, - давать назначать?

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

Post by Fr0sT »

Вот и я приобщился :)

Когда разбирался, был очень удивлён отсутствием такой популярной функции, как alert. При отсутствии средств отладки она - самое нужное средство, а приходится реализовывать её через AkelPad.MessageBox и писать кучу дополнительных параметров. Можно ли как-то её реализовать внутри Акеля?

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

Offline
Posts: 1873
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

Fr0sT wrote:alert
Так WScript.Echo() же.

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

Post by FeyFre »

А если нету MSVS, и не предвидится?
Мне хотелось бы только построчный проход, но и брекпоинт тогда уж сделать не сложно.
Я думаю в 99% случаев достаточно будет Trace-лога: просите Интсруктора приделать снизу окошко типа MSVS-ного Output и добавить метод AkelPad.Trace("строка"), который будете вызывать в проблемных местах. Это и даст возможность отладится, и сэкономит Инструктору кучу времени(для сравнения: для запуска скриптового движка Инструктору пришлось реализовать от силы 5 интерфейсов, для отладки нужно будет реализовать два десятка, и то не факт что движок поддерживает её. Добавить функцию, которая пишет в окно то что ей дали - на порядки меньше работы, а эффект не на много меньше чем от отладчика)

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

Post by VladSh »

Fr0sT wrote:Вот и я приобщился
Ура! Одним скриптописцем больше! :D
Fr0sT wrote:а приходится реализовывать её через AkelPad.MessageBox и писать кучу дополнительных параметров
Я вот так предложил, а у себя уже сделал :) Приходится менять только "Text" (кстати кавычки надо убрать, чтобы меньше операций выделения делать...).

FeyFre wrote:достаточно будет Trace-лога: приделать снизу окошко типа MSVS-ного Output и добавить метод AkelPad.Trace("строка"), который будете вызывать в проблемных местах. Это и даст возможность отладится
Если всё так сложно, то моя идея такова:
в сообщении об ошибке добавить кнопку, по которой в буфер обмена записывать номера строк, по которым шёл скрипт, а затем, открыв этот скрипт, можно будет написать ещё один скрипт, который будет тупо перемещаться по номерам строк с некоторой задержкой на каждой строке и выделением этой самой строки, хотя у меня и так текущая строка всегда выделена жёлтым цыетом, т.е. выделять ничего не нужно - нужно просто в цикле перебрасыватькурсор на строку №... таким образом можно будет увидеть, куда "свернуло" выполнение :lol:


P.S. Ребят, а вам не кажется, что благодаря последним релизам как-то легче и удобнее работать стало? 8)

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

Post by Fr0sT »

Infocatcher, о! Благодарствую!

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

Post by Fr0sT »

Ещё впечатления от разработки скрипта:
1) Если он зависает, то Акель вроде реагирует, но его хрен закроешь. Неплохо бы дать средство прервать выполнение скрипта.
2) Recode, как и диалог перекодировки, не работает с UTF16! :(
3) ReplaceSel после замены убирает выделение. Имхо, неудобно. Убрать выделение в скрипте намного легче, чем восстановить.

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

Post by VladSh »

Infocatcher wrote:
Fr0sT wrote:alert
WScript.Echo()
Он тупит, иногда показывает своё окно за AkelPad'ом... именно поэтому я когда-то просил чтобы был штатный метод, сделали Messagebox, по моему, - нормальное решение, только параметры поставить по умолчанию и всё.

Fr0sT wrote:3) ReplaceSel после замены убирает выделение. Имхо, неудобно. Убрать выделение в скрипте намного легче, чем восстановить.
Тогда лучше дополнительным необязательным параметром, т.к. сохранить выделение - всё же очень редкая задача, которая в некоторых случаях достаточно легко решается.

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

Post by Instructor »

VladSh wrote:
Infocatcher wrote:
Fr0sT wrote:alert
WScript.Echo()
Он тупит, иногда показывает своё окно за AkelPad'ом...
Не может быть такого, реализация WScript.Echo выглядит так:

Code: Select all

HRESULT STDMETHODCALLTYPE WScript_Echo(IWScript *this, BSTR wpText)
{
  MessageBoxW(hMainWnd, wpText, wpActiveScriptName, MB_OK);
  return NOERROR;
}

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

Post by VladSh »

Instructor wrote:Не может быть такого, реализация WScript.Echo выглядит так: ...
Так вы и WScript.Echo в плаге реализовали?? Ого! :shock: 8) Не знал... Я о старом поведении писал.

Offline
Posts: 147
Joined: Fri Feb 08, 2008 6:41 pm
Location: British Columbia, Canada

WScript object - needed?

Post by Surveyor »

Instructor,

Sorry for the delay - I am finally upgrading Plugins Manual. I see now that Scripts plugin has changed a lot.
Instructor wrote:plugin handles the script itself (without WScript.exe)
On the surface this looks like a good thing, but WScript.exe can create objects that are needed. For example:

Code: Select all

var WshShell=WScript.CreateObject("WScript.Shell");
var regvar=WshShell.RegRead(......);
How can this (eg. registry accessed) now be done without WScript running!? I hope we are not to abandon all objects, etc. that were in WScript.exe!

Perhaps this has already been discussed in Russian...

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

Post by Instructor »

Surveyor

Code: Select all

var WshShell=new ActiveXObject("WScript.shell");

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

Post by VladSh »

В окне скрипта хотелось бы иметь дополнительные возможности:
- быстрое копирование имени скрипта (можно просто Ctrl+C на скрипте);
- создать скрипт + окошко с именем скрипта (это просил когда-то давно). Нужно чтобы не лазить и искать дирректорию скриптов;
- кнопка открытия дирректории скриптов.
Первое - самое важное, остальное, конечно хорошо, но как-то обходимся.

Если глючит контрол отображения разделительных линий в окнах сткриптов/плагинов и т.п. можно ли вообще убрать разделители, а просто сделать чередование фона (чтобы фон чуть-чуть отличался)?

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

Post by FeyFre »

Если глючит контрол отображения разделительных линий в окнах сткриптов/плагинов и т.п. можно ли вообще убрать разделители, а просто сделать чередование фона (чтобы фон чуть-чуть отличался)?
Не поможет. Глючит не рисование, глючит диспетчеризация когда рисовать, а когда нет, которое другим способом кроме как переписать кантрол с нуля не исправить(и не факт что получится)
Post Reply