Scripts discussion (1)

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

Post by Fr0sT »

Infocatcher
да, теперь запускается в обеих версиях)

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

Post by Infocatcher »

По-моему, что-то не так с AkelPad.GetInstanceDll() :?
Или они и правда могут совпадать.

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

Post by Instructor »

Сейчас удосужился проверить AkelPad.GetInstanceDll() - FeyFre видимо был прав. Похоже система оптимизирует загрузку DLL'ок и может возвращать одинаковый hInstanceDLL для разных процессов.

Добавлено:
Fr0sT wrote:Правда, у него другая проблема:...
Исправлено.

Обновил SearchReplace.js и LinesFilter.js на использование oSys.Call("kernel32::GetCurrentProcessId").

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

Post by Infocatcher »

Instructor wrote:Обновил SearchReplace.js и LinesFilter.js на использование oSys.Call("kernel32::GetCurrentProcessId").
Эти-то, надеюсь, не совпадут? :D
А то я тут массовое обновление готовлю. :)

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

Post by Infocatcher »

AESCrypt.js
Corrected calculation of window borders.

crypt.js
Implemented not nodal mode with Apply button (see -modal argument).
Added hotkeys and double clicks handling.

converter.js
Released test version.
Fixed restoring of minimized window.
Window position in systems with multiple monitors should be correctly restored.

getHash.js
Window position in systems with multiple monitors should be correctly restored.

goToLongestLine.js
Window position in systems with multiple monitors should be correctly restored.

LinesFilter_mod.js

runScript.js
Added F2 (Ctrl+S) hotkey – rewrite options (and remove arguments for removed files).

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

Post by Infocatcher »


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

Post by Infocatcher »

Кстати, помимо архивов со скриптами, надо бы и обновление сделать. :)
Например, добавить вкладку в AkelUpdater (и показывать ее только если плагин установлен).

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

Post by FeyFre »

Infocatcher, тоже думал по этому поводу. Лучше обновление скриптов делать самим плагином - скрипты всё-таки его личные тараканы а не редактора. Добавить ещё одну функцию или параметр вызова существующей, которой запустится интерфейс загрузки. Ну и добавить параметр - список узлов, где искать обновления.

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

Post by Infocatcher »

FeyFre
Ну, архивы уже выложены, обновленные версии можно вытаскивать из них. Надо сделать (и обновлять, да) список скрипт => версия и сверять версию, получаемую из текста скрипта, со списком.
А уж кто будет заниматься обновлениями, мне все равно, лишь бы они были. :D Мне и просто проверки хватит, ручками как-то надежнее. И можно изменения глянуть.
Но удобнее, когда все обновления в одном месте, пожалуй.

Offline
Posts: 139
Joined: Fri Feb 12, 2010 11:33 am

Post by Deim0s »

Infocatcher,
Можно немного разъяснений, по обновлённому converter.js?
Аргумент в "Arguments for URIs converters" изменился: с -codePage=1251, на -codePageURI=1251.
Аргумент -codePage=1251 перенёсся в "Arguments for charsets converter" и в примерах (строка 86) появился: -type="Charset".
В тайпах же "Charset" не появился.
Вопрос :), я пока в ContextMenu, касательно перекодировки URI ни чего не менял, но всё работает и с параметром -codePage=1251. Взгляните если не трудно:

Code: Select all

    -"&Текст > URI (UTF-8)" Call("Scripts::Main", 1, "converter.js", `-mode=1 -dialog=false -saveOptions=0 -savePosition=false -saveSize=false '-type="URI"'`)
    -"Т&екст > URI (ANSI)" Call("Scripts::Main", 1, "converter.js", `-mode=1 -dialog=false -saveOptions=0 -savePosition=false -saveSize=false '-type="URI"' -codePage=1251`)
    -"Текст > URI Component (UTF-&8)" Call("Scripts::Main", 1, "converter.js", `-mode=1 -dialog=false -saveOptions=0 -savePosition=false -saveSize=false '-type="URIComponent"'`)
    -"Текст > URI Component (ANSI)" Call("Scripts::Main", 1, "converter.js", `-mode=1 -dialog=false -saveOptions=0 -savePosition=false -saveSize=false '-type="URIComponent"' -codePage=1251`)
    SEPARATOR
    -"URI Component > Тек&ст" Call("Scripts::Main", 1, "converter.js", `-mode=2 -dialog=false -saveOptions=0 -savePosition=false -saveSize=false '-type="URIComponent"' -codePage=1251`)

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

Post by Infocatcher »

Deim0s
Забыл обновить описание. :)
Старые аргументы должны работать, там сделана проверка (если передается только -codePage без новых -codePageURI и -codePageBase64).
Но хорошо, что спросили, -type="charset" я сделал на пару месяцев позже и забыл про проверку на старые аргументы, так что сейчас там затирается значение по умолчанию для -codePage. :)

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

Да, про -type="charset" я ведь тоже забыл написать.
Использовать примерно так (названия не особо, ну да ладно):

Code: Select all

-"Перекодировать в текущую кодировку" Call("Scripts::Main", 1, "converter.js", `-mode=2 -type="Charset" -codePage=-1 -dialog=false -saveOptions=0`)
-"Перекодировать из текущей кодировки" Call("Scripts::Main", 1, "converter.js", `-mode=1 -type="Charset" -codePage=-1 -dialog=false -saveOptions=0`)
Соответственно, если кодировка текущего документа – Windows-1251, получаем:
Íå÷òî <=> Нечто

Обновил: converter.js

Offline
Posts: 139
Joined: Fri Feb 12, 2010 11:33 am

Post by Deim0s »

Infocatcher,
...но лучше заменить на -codePageURI.
Ясно, заменил.
А вот про -type="Charset", любопытно, можно подробнее?
Каков алгоритм?
Каким образом перекодирует: -mode=1 -type="Charset" -codePage=-1, во что?
Попробовал перекодировать в текущую кодировку:

Code: Select all

иыъш-ярыъш
получил:

Code: Select all

8KJH-O@KJH
а не:

Code: Select all

Ёлки-палки
Как должно работать? :)

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

Post by VladSh »

KDJ wrote:Do you now see Russian language in ComboBox?
Yes, now I see :) Thank you!

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

Post by Infocatcher »

Deim0s wrote:Каким образом перекодирует: -mode=1 -type="Charset" -codePage=-1, во что?

Code: Select all

encode: function(str) {
	return convertFromUnicode(str, codePage);
},
decode: function(str) {
	return convertToUnicode(str, codePage);
}
Соответственно, encode – это WideCharToMultiByte(), а decode – MultiByteToWideChar().
То есть это половина перекодирования.
Вот отличие от, например, такого:

Code: Select all

WScript.Echo(
	convertToUnicode(
		convertFromUnicode("бНОПНЯ", 20866),
		1251
	)
);
(Можно добавить в конец скрипта, результат покажется после закрытия окна*)
Deim0s wrote:Как должно работать? :)
В зависимости от кодировки текущего документа (F12 – Открыть как, хотя это скорее «кодировать как», потому как несохраненные документы не переоткрываются).

*Надо все же приделать возможность подключения скрипта через AkelPad.Include(). :) И -type="recode" какой-нибудь, на всякий случай.

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

Post by FeyFre »

Ну, архивы уже выложены, обновленные версии можно вытаскивать из них.
Ну и толку что лежат. Архивы без метаданных мало чем полезны. Кроме того это архив общий, а мне бы не помешал бы личный, причем не только лежащий на http/https/ftp, но и остальными всевозможными способами обмена файлами(smb/nfs/rsync/rcp/sftp/git/svn/vss и т.д и т.п.)
Locked