Scripts plugin

Discuss and announce AkelPad plugins
  • Author
  • Message
Offline
Posts: 1873
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

3. Let len be ToUint32(lenValue).
Это еще что, вот выполните в Firefox

Code: Select all

Array.indexOf({ length: -1 }, 0);
А вот, например,

Code: Select all

Array.indexOf({ 0: 1, 1: 0, length: 2 }, 0);
вполне работает.

А все из-за того, что у них там, по-видимому, внутри такая же реализация: https://developer.mozilla.org/en/JavaSc ... patibility, а

Code: Select all

-1 >>> 0 == 0xffffffff
P.S. И

Code: Select all

Array.prototype.indexOf.call({ length: -1 }, 0)
для остальных браузеров.
Хотя вот сейчас Google Chrome тоже зависает. Раньше, вроде, больше никто не зависал.

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

Post by Infocatcher »

Хорошо бы реализовать обновление колонки «статус» в диалоге при завершении работы скриптов.

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

I have a question.
Does using the method AkelPad.ThreadHook(), I can install a hook for the thread created by another process?

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

Post by FeyFre »

KDJ, not, only self process.

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

FeyFre
Is there any possibility to capture window messages from another process (in JScript)?

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

Post by FeyFre »

KDJ, in JS? Definitely no. Hooking/Subclassing windows messages are strictly binded for low-level programming. Hook/subclassing was born in times of life of Windows 3.11 when processors was 16bits, there was one solid address space(i.e all programs are share one memory. DLL and PE format wasn't born yet) so hot-swapping of code entry point was secure operation. Dynamic languages simply not useful because code mapping to memory in different processes.

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

Post by VladSh »

Instructor
Просьба в методы TextFind и TextReplace добавить флаг "Слово/фраза целиком".

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

Post by Instructor »

KDJ wrote:Does using the method AkelPad.ThreadHook(), I can install a hook for the thread created by another process?
Global hook in script could cause unpredictable results. AkelPad.ThreadHook description corrected.

VladSh
Просто флаг не был задокументирован:
nFlags
0x00000002 //FR_WHOLEWORD Найти слово целиком.

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

Post by VladSh »

Instructor
Спасибо!

Ещё вопрос. Хотелось из скрипта вызвать скрипт с аргументами, например эту строку:

Code: Select all

Call("Scripts::Main", 1, "InsertDate.js", `"dd MMMM yyyy"`)
вызвать не получается.
+ ещё ошибка на недопустимый символ `, наверное надо указать, что "Внешний вызов" - это из других плагинов, а не из плага Scripts.
Перепробовал все возможные кавычки, но всё равно не работает.. Можно ли?

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

Post by Infocatcher »

Можно, но только ' и ":

Code: Select all

Call("Scripts::Main", 1, "InsertDate.js", '"dd MMMM yyyy"')

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

Post by VladSh »

Infocatcher
Ну это просто)
А как записать такую строчку:

Code: Select all

AkelPad.Call("Scripts::Main", 1, "BlockSelect.js", `-tagStart="\r" -tagEnd="\r" -inclTags=0`);
Я вообще вот это хотел :)

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

Post by Infocatcher »

Так, наверное:

Code: Select all

AkelPad.Call("Scripts::Main", 1, "BlockSelect.js", '-tagStart="\\r" -tagEnd="\\r" -inclTags=0');

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

Post by VladSh »

Infocatcher
О, точно! Спасибо! 8)

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

Post by VladSh »

Instructor
Заметил, что

Code: Select all

var bTabStopAsSpaces = AkelPad.MemRead(lpFrame + 1060 /*offset(FRAMEDATA, bTabStopAsSpaces)*/, 3 /*DT_DWORD*/);
опять работает неправильно.
Можно ли это как-то "законстантить"? Не очень хорошо, что оно постоянно отваливается..

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

Post by Instructor »

VladSh wrote:Можно ли это как-то "законстантить"?
Реализовано. Будет доступно после релиза 4.7.0.
Post Reply