Scripts discussion (3)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

VladSh
Какая-то проблема с SpellCheckAddToWhiteList.js:
слова добавляются в таком виде http://rghost.ru/57253900/image.png (выделенное - символы 0x0000). Слово из латинских букв выглядит как "S p e l l C h e c k A d d T o W h i t e L i s t", только вместо пробелов тот же 0x0000.
Команда

Code: Select all

Call("Scripts::Main", 1, "SpellCheckAddToWhiteList.js", `-ext="txt" -format=-1`)
Позавчера всё работало, в настройках только добавил кавычки в разделители и всё. В чем может быть дело?

Offline
Posts: 366
Joined: Mon Jan 10, 2011 5:28 pm
Contact:

Post by Lenchik »

UTF-16LE?

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Lenchik
Понятно, что проблема с кодировкой, но скрипт используется штатно, ничего сверх описаного в комментарии.
Насчет "всё работало": беру назад, т.к. именно тогда решил объединить txt.spck и fb2.spck, добавление слов не проверял.

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

Post by VladSh »

Skif_off
Думаю, что кодировка, в которой производится добавление, и кодировка spck-файла, в который производится добавление, должны совпадать. Могу ошибаться.
Более подробные комментарии могут дать FeyFre и Instructor.

Добавлено:
Если при -format=-1 spck-файл в кодировке UTF-8, то действительно - кракозябры.
Как правильно сказал Lenchik файл в этом случае должен быть в кодировке UTF-16LE, тогда добавляется нормально.
Уточнил соответствующий коммент в скрипте.

P.S. Эти бы сообщения перенести в тему SpellCheck-плагина...

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

VladSh wrote:Думаю, что кодировка, в которой производится добавление, и кодировка spck-файла, в который производится добавление, должны совпадать. Могу ошибаться.
Не получается, оба файла в UTF-8, только редактируемый без BOM.

Без -format=-1 все-таки нехорошо получается. Осталось выяснить, чем грозит spck-файл в кодировке UTF-16LE, кроме увеличения размера приблизительно в два раза.

З.Ы. По идее, мы сами можем перенести, не дожидаясь Instructor - грохнуть здесь и запостить там.

Offline
Posts: 381
Joined: Wed Sep 28, 2011 3:05 pm

Post by Cuprum »

VladSh
Пытался изменить ваш скрипт DelEmptyLines.js, чтобы он очищал "пробельные" строки от пробельных символов, но не хочет работать.
Код такой:

Code: Select all

if (! AkelPad.Include("selCompleteLine.js")) WScript.Quit();
oCh.runWithRedraw();

function process()
{
	oCh.Text = oCh.getSelTextAll().replace(/^[ \t]+$\n/g, "\n");
}
Но, если те же регулярки подставить в диалог поиска/замены, то работает. А как правильно записать это в скрипте?

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

Post by Infocatcher »

Cuprum
Проверять надо через SearchReplace.js.

Code: Select all

.replace(/^[ \t]+$/mg, "")

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Cuprum
Почему "\n"? ЕМНИП, в методах плагина, забирающих текст, по умолчанию используется "\r" (по крайней мере, в selCompleteLine.js не нашел параметров).
За идею спасибо, наверное, добавлю в DelEmptyLines.js перед заменой переводов строк.

Offline
Posts: 381
Joined: Wed Sep 28, 2011 3:05 pm

Post by Cuprum »

Skif_off wrote: Почему "\n"? ЕМНИП, в методах плагина, забирающих текст, по умолчанию используется "\r" (по крайней мере, в selCompleteLine.js не нашел параметров).
Я просто сначала пробовал в стандартном диалоге замены вот так
Что:^[ \t]+$\n
Чем:\n
[x] рег.выр.
Это стработало и решил перенести в плагин.
За идею спасибо, наверное, добавлю в DelEmptyLines.js перед заменой переводов строк.
не за что ).

Infocatcher
Да вот так работает, спасибо. Только не совсем понял. разве регулярки в стандартной "Замене" и скриптах различаются?

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

Post by Infocatcher »

Cuprum wrote:Только не совсем понял. разве регулярки в стандартной "Замене" и скриптах различаются?
Различаются, в стандартной замене встроенная реализация, а скрипты используют реализацию из JScript.
Так что общие моменты совпадают, но есть особенности.

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

Post by VladSh »

Cuprum
Доработал DelEmptyLines.js по Вашим замечаниям и комментам Infocatcher'а.

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

VladSh
У меня почему-то не срабатывает.

Добавлено:
Разобрался.
Last edited by Skif_off on Tue Aug 05, 2014 10:00 pm, edited 1 time in total.

Offline
Posts: 381
Joined: Wed Sep 28, 2011 3:05 pm

Post by Cuprum »

Skif_off
Проверил, у меня вроде работает.

VladSh
А можно тогда добавить еще одно значение в параметр (он вот мне нужен :) ) чтобы очищать строки от пустых символов, но сами строки оставлять на месте (т.е. только .replace(/^[ \t]+$/mg, ""))?

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Cuprum wrote:А можно тогда добавить еще одно значение в параметр (он вот мне нужен :) ) чтобы очищать строки от пустых символов, но сами строки оставлять на месте (т.е. только .replace(/^[ \t]+$/mg, ""))?
Родная внутренняя команда Command(4174) не подойдет?

Offline
Posts: 381
Joined: Wed Sep 28, 2011 3:05 pm

Post by Cuprum »

Skif_off
Не знал, спасибо! Просьбу снимаю.
Locked