Page 25 of 31
Posted: Fri Sep 24, 2021 1:32 am
by yozhic
texter, и TextReplacer.js тоже крашит AkelPad при вызове команд с использованием LogHighlight.js. Или крашит, или появляется alert от LogHighlight с сообщениями «Текст не выделен», «Консоль закрыта» и напрочь замораживает окно AkelPad так, что приходится вырубать его из диспетчера.
И ещё: RenameFileAs.js от
Kley Вы специально взяли старую версию 2015-10-07? Последняя у него
2016-05-25.
Posted: Fri Sep 24, 2021 6:59 am
by yozhic
Эх, похоже, я немного поторопился радоваться новому SearchReplace_extended.js: подсветка совпадений в консоли после нескольких запусков перестала работать по непонятной причине, а в интерфейсе окошка стали периодически исчезать radio-переключатели...

Posted: Fri Sep 24, 2021 5:42 pm
by AZJIO
yozhic
Попробуй как у тебя работает моя
сборка. Вот оригинал
LogHighLight.js если что. Он есть и в моей сборке.
Posted: Fri Nov 26, 2021 11:08 am
by Andrey_A_A
Всем привет, давно не заходил, подскажите есть ли скрипт форматирования xml - чтобы из однострочный файл преобразовать в структуру.
Файлы до и после в архиве.
Если есть подобное для html и js тоже будет хорошо
xml.zip
Posted: Fri Nov 26, 2021 11:58 am
by opk44
Andrey_A_A wrote:...скрипт форматирования xml ... для html и js тоже будет хорошо
Для JS -- jsBeautifier.js от Infocatcher
Для XML/HTML -- специальных
кажется нет, но есть "обертки" для использования Tidy от VladSh (сам Tidy прячется тут
http://www.html-tidy.org/).
Оба скрипта есть в актуальных авторских коллекциях.
Posted: Sat Nov 27, 2021 12:06 am
by Andrey_A_A
opk44, спасибо за наводку, думал есть готовые решения, чтобы не писать самому.. Нашёл пример реализации на Autoit через MSXML.
По любому спасибо.
Posted: Sun Nov 28, 2021 6:17 pm
by Infocatcher
opk44 wrote:Для JS -- jsBeautifier.js от Infocatcher
jsBeautifier.js в том числе поддерживает и HTML (и как следствие, на первый взгляд, приемлемо работает и с XML).
Posted: Mon Dec 13, 2021 5:26 pm
by VladSh
opk44 wrote:Для XML/HTML -- специальных
кажется нет, но есть "обертки" для использования Tidy от VladSh (сам Tidy прячется тут
http://www.html-tidy.org/).
Там такая история...
Стояла у меня какая-то старая версия, которая работала. Потом, спустя много лет, я один раз обновил саму утилиту tidy, потом другой, и закончилось тем, что я так и не смог потом заставить это работать. Какие-то серьёзные изменения разработчиком (он там не стесняется менять API, - от версии к версии об обратной совместимости говорить не приходится), которые сильно затронули формат вызова и флаги. Несколько дней я пытался подобрать флаги, но так ничего и не получилось. Там, где раньше код генерировался без ошибок, теперь валится множество ошибок и предупреждений.
Т.о. этот вариант на данный момент не рабочий, я им сам не пользуюсь.
Если кто-то подхватит и разберётся, будет очень хорошо. Но брать из моей сборки tidy и затачиваться на ту версию не имеет смысла, - сейчас API более-менее стабилизировался (последний релиз - июль этого года, и с августа больше коммитов нет), так что лучше восстанавливать работоспособность под неё.
Posted: Mon Dec 13, 2021 6:15 pm
by VladSh
AZJIO
Ссылки по Вашим сообщениям
1 и
2 добавлены, правки внесены. Спасибо.
tidy
Posted: Thu Dec 23, 2021 5:24 pm
by VladSh
И снова по поводу tidy.js.
Как оказалось, скрипт работает! Я перепробовал exe и dll версий 5.8.0 (stable) и tidy-5.9.14 (pre-release) и оказалось, что та гора ошибок, которые выдавал старый tydy, ушла. Видимо старые версии просто не поддерживали новую html5-вёрстку, а я подумал, что оно не работает...
Осталось непонятное - '
line 51 column 103 - Warning: unescaped & or unknown entity "&hl"' на строке:
Code: Select all
<li id="navextra2"><a href="//google.com/cse/home?cx=005032125877213764876:7_djx8ukuso&hl=ru">Поиск |Google</a></li>
Вертикальной палкой указал позицию курсора. Да, "&hl" есть, но не на позиции 103, а в href. Это
известный баг.
Плохо, что это предупреждение мешает выполнить форматирование с помощью tydy. Может конечно есть флаг, который отключает предупреждения валидации при форматировании...
Если кто знает, подскажите, буду очень благодарен.
Но вообще связка tydy.js + tydy работает. Её даже
AZJIO использует в свое сборке.
Posted: Fri Dec 24, 2021 8:11 pm
by VladSh
Infocatcher
Взял код отключения скрола из скрипта converter.js, а он оказывается не работает...
Нашёл рабочий код у камрада
KDJ
Переписал свой как-то так:
Code: Select all
var sText = "трам-парам-пам-пам...";
setRedraw(hWndEdit, false);
try {
var lpPoint = AkelPad.MemAlloc(_X64 ? 16 : 8 /*sizeof(POINT)*/);
if (lpPoint) {
//AkelPad.SendMessage(hWndEdit, 1245 /*EM_GETSCROLLPOS*/, 0, lpPoint);
AkelPad.SendMessage(hWndEdit, 3179 /*AEM_GETSCROLLPOS*/, 0, lpPoint);
AkelPad.SetSel(0, -1);
AkelPad.ReplaceSel(sText);
//AkelPad.SendMessage(hWndEdit, 1246 /*EM_SETSCROLLPOS*/, 0, lpPoint);
AkelPad.SendMessage(hWndEdit, 3180 /*AEM_SETSCROLLPOS*/, 0, lpPoint);
AkelPad.MemFree(lpPoint);
}
else {
AkelPad.SetSel(0, -1);
AkelPad.ReplaceSel(sText);
}
}
finally {
setRedraw(hWndEdit, true);
}
Закомментированными, для наглядности, оставил нерабочие строки из converter.js.
Posted: Sun Dec 26, 2021 4:16 pm
by Infocatcher
VladSh wrote:Infocatcher
Взял код отключения скрола из скрипта converter.js, а он оказывается не работает...
Хм, странно. У меня, на первый взгляд, работает:
Code: Select all
var oSys = AkelPad.SystemFunction();
insertNoScroll(new Array(101).join("Test\n"));
function insertNoScroll(str, selectAll) {
noScroll(function() {
selectAll && AkelPad.SetSel(0, -1);
//var ss = AkelPad.GetSelStart();
AkelPad.ReplaceSel(str, true);
//if(ss != AkelPad.GetSelStart())
// AkelPad.SetSel(ss, ss + str.length);
});
}
function noScroll(func, hWndEdit) {
if(!hWndEdit)
hWndEdit = AkelPad.GetEditWnd();
var lpPoint = AkelPad.MemAlloc(8 /*sizeof(POINT)*/);
if(!lpPoint)
return;
setRedraw(hWndEdit, false);
AkelPad.SendMessage(hWndEdit, 1245 /*EM_GETSCROLLPOS*/, 0, lpPoint);
func();
AkelPad.SendMessage(hWndEdit, 1246 /*EM_SETSCROLLPOS*/, 0, lpPoint);
setRedraw(hWndEdit, true);
AkelPad.MemFree(lpPoint);
}
function setRedraw(hWnd, bRedraw) {
AkelPad.SendMessage(hWnd, 11 /*WM_SETREDRAW*/, bRedraw, 0);
bRedraw && oSys.Call("user32::InvalidateRect", hWnd, 0, true);
}
Попробовал отключить +Call("Scroll::NoScroll") – все равно выглядит работающим.
Posted: Tue Dec 28, 2021 8:53 pm
by VladSh
Infocatcher wrote:...все равно выглядит работающим.
Отсюда:
EM_* сообщения RichEdit'a. Посылаются окну редактирования. См. MSDN.
AEM_* сообщения AkelEdit'а. Посылаются окну редактирования. См. AkelEdit.h.
EM_* - это было давно; в том контексте применения, где API AkelEdit и RichEdit совпадают, оно будет работать, а где нет, то нет (вот как в моём случае).
Posted: Wed Feb 02, 2022 2:01 pm
by Arhaall
Господа, а никто не пробовал обновлять или модифицировать скрипт jsBeautifier.js от уважаемого Infocatcher? А то он (скрипт, а не Infocatcher конечно же) с приватными полями в классах работать не обучен и в результате их названия портит малость (убирает пробел перед # и ставит после #). Может кто мог-бы исправить это досадное недоразумение?
Posted: Wed Feb 02, 2022 5:31 pm
by Infocatcher
(отсюда)
Arhaall wrote:Господа, а никто не пробовал обновлять или модифицировать скрипт jsBeautifier.js от уважаемого Infocatcher? А то он (скрипт, а не Infocatcher конечно же) с приватными полями в классах работать не обучен и в результате их названия портит малость (убирает пробел перед # и ставит после #). Может кто мог-бы исправить это досадное недоразумение?
В
разрабатываемой версии, основанной на более свежих оригинальных скриптах, должно работать корректно:
https://github.com/Infocatcher/AkelPad_ ... f8fe793c8c