Page 16 of 74
Posted: Fri Jul 09, 2010 9:20 am
by VladSh
FeyFre wrote:Если всё сделать правильно, то это всё перечисленное будет доступно из под MSVS и не нужно это всё интегрировать в Акел.
А если нету MSVS, и не предвидится?
Мне хотелось бы только построчный проход, но и брекпоинт тогда уж сделать не сложно.
Posted: Fri Jul 09, 2010 3:24 pm
by VladSh
Scripts плагин wrote:---------------------------
Scripts::Main::WordCaretPosCopy.js
Горячая клавиша уже назначена для "Scripts::Main::WordCaretCopy.js".
Старая "проблема"... Можно ли сделать так, чтобы производилась проверка на наличие скрипта, и если его нет, - давать назначать?
Posted: Fri Jul 09, 2010 3:39 pm
by Fr0sT
Вот и я приобщился
Когда разбирался, был очень удивлён отсутствием такой популярной функции, как alert. При отсутствии средств отладки она - самое нужное средство, а приходится реализовывать её через AkelPad.MessageBox и писать кучу дополнительных параметров. Можно ли как-то её реализовать внутри Акеля?
Также неплохо бы дать возможность указывать параметры для скриптов в диалоге сабжа, раз уж там можно хоткеи назначать.
Posted: Fri Jul 09, 2010 3:45 pm
by Infocatcher
Fr0sT wrote:alert
Так WScript.Echo() же.
Posted: Fri Jul 09, 2010 3:50 pm
by FeyFre
А если нету MSVS, и не предвидится?
Мне хотелось бы только построчный проход, но и брекпоинт тогда уж сделать не сложно.
Я думаю в 99% случаев достаточно будет Trace-лога: просите Интсруктора приделать снизу окошко типа MSVS-ного Output и добавить метод AkelPad.Trace("строка"), который будете вызывать в проблемных местах. Это и даст возможность отладится, и сэкономит Инструктору кучу времени(для сравнения: для запуска скриптового движка Инструктору пришлось реализовать от силы 5 интерфейсов, для отладки нужно будет реализовать два десятка, и то не факт что движок поддерживает её. Добавить функцию, которая пишет в окно то что ей дали - на порядки меньше работы, а эффект не на много меньше чем от отладчика)
Posted: Fri Jul 09, 2010 4:24 pm
by VladSh
Fr0sT wrote:Вот и я приобщился
Ура! Одним скриптописцем больше!
Fr0sT wrote:а приходится реализовывать её через AkelPad.MessageBox и писать кучу дополнительных параметров
Я вот
так предложил, а у себя уже сделал

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

Posted: Fri Jul 09, 2010 7:28 pm
by Fr0sT
Infocatcher, о! Благодарствую!
Posted: Sat Jul 10, 2010 4:50 pm
by Fr0sT
Ещё впечатления от разработки скрипта:
1) Если он зависает, то Акель вроде реагирует, но его хрен закроешь. Неплохо бы дать средство прервать выполнение скрипта.
2) Recode, как и диалог перекодировки, не работает с UTF16!

3) ReplaceSel после замены убирает выделение. Имхо, неудобно. Убрать выделение в скрипте намного легче, чем восстановить.
Posted: Sun Jul 11, 2010 4:00 pm
by VladSh
Infocatcher wrote:Fr0sT wrote:alert
WScript.Echo()
Он тупит, иногда показывает своё окно за AkelPad'ом... именно поэтому я когда-то просил чтобы был штатный метод, сделали Messagebox, по моему, - нормальное решение, только параметры поставить по умолчанию и всё.
Fr0sT wrote:3) ReplaceSel после замены убирает выделение. Имхо, неудобно. Убрать выделение в скрипте намного легче, чем восстановить.
Тогда лучше дополнительным необязательным параметром, т.к. сохранить выделение - всё же очень редкая задача, которая в некоторых случаях достаточно легко решается.
Posted: Mon Jul 12, 2010 5:42 am
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;
}
Posted: Mon Jul 12, 2010 7:54 am
by VladSh
Instructor wrote:Не может быть такого, реализация WScript.Echo выглядит так: ...
Так вы и WScript.Echo в плаге реализовали?? Ого!

Не знал... Я о старом поведении писал.
WScript object - needed?
Posted: Fri Jul 16, 2010 4:34 am
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...
Posted: Fri Jul 16, 2010 5:11 am
by Instructor
Surveyor
Code: Select all
var WshShell=new ActiveXObject("WScript.shell");
Posted: Fri Jul 16, 2010 10:50 am
by VladSh
В окне скрипта хотелось бы иметь дополнительные возможности:
- быстрое копирование имени скрипта (можно просто Ctrl+C на скрипте);
- создать скрипт + окошко с именем скрипта (это просил когда-то давно). Нужно чтобы не лазить и искать дирректорию скриптов;
- кнопка открытия дирректории скриптов.
Первое - самое важное, остальное, конечно хорошо, но как-то обходимся.
Если глючит контрол отображения разделительных линий в окнах сткриптов/плагинов и т.п. можно ли вообще убрать разделители, а просто сделать чередование фона (чтобы фон чуть-чуть отличался)?
Posted: Fri Jul 16, 2010 11:16 am
by FeyFre
Если глючит контрол отображения разделительных линий в окнах сткриптов/плагинов и т.п. можно ли вообще убрать разделители, а просто сделать чередование фона (чтобы фон чуть-чуть отличался)?
Не поможет. Глючит не рисование, глючит диспетчеризация когда рисовать, а когда нет, которое другим способом кроме как переписать кантрол с нуля не исправить(и не факт что получится)