Scripts discussion (3)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Offline
Posts: 52
Joined: Mon Jan 03, 2011 11:02 pm

Post by ABTOP »

KDJ, Big thanks :)

Offline
Posts: 202
Joined: Sat Mar 28, 2015 2:36 pm
Location: Russia

Post by Kley »

Instructor
Не могли бы Вы доработать (если сочтете нужным конечно) скрипт ColumnCounter.js.
Сейчас, если выделить, например такие строки:

Code: Select all

var
var
var
скрипт заменяет эти строки на них же. Хотелось бы, чтоб текст не менялся.
А если выделить (если первая строка не 001):

Code: Select all

000
000
000
получается:

Code: Select all

NaN
NaN
NaN
Хотелось бы, чтоб текст не менялся. А лучше бы так:

Code: Select all

000
001
002
...
010
Можно так сделать или это лишнее?

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

Post by Infocatcher »

Kley
Вроде бы, там достаточно заменить

Code: Select all

nCurNumber=parseInt(pFirstNumber.replace(/^0+/, ""));
на

Code: Select all

nCurNumber=parseInt(pFirstNumber.replace(/^0+/, "") || 0);

Offline
Posts: 269
Joined: Mon Jun 20, 2011 8:33 am
Location: Электросталь

Post by yozhic »

KDJ
Наконец-то я смог отловить этот хитрый, вредный баг и воспроизвести его! Вот уже 3 дня он меня мучает. Для точности эксперимента вот содержимое

Code: Select all

_temp001	<div[^\n>]+?lecture_mark[^\n\r>]+?></div>		0010
_temp002	<a[^>\n]+>увеличить изображение</a>		0010
_temp003	<p xmlns:edi[^\n>]+>	<p>	0010
_temp004	<img src="\d+_files/	<img src="media/	0010
_temp005	(?s)<br><br>(.+?</div>)	\1<br>	0010
_temp006	(?s)<br>(?!<div|<p|<a|\n)(.*?</div>)	\1<br>	0010
Delete Scripts	<script.+?</script>		0010
Emails	^[a-z0-9\.\-\+_]+@[a-z0-9\.\-_]+?\.[a-z]+$		0010
Empty lines	^[ \t]*$\n*		0010

Открываем пустой файл без текста. Запускаем Batch Replace по хоткею. Отмечены пункты Closes Dialog и Without message. Запускаем Batch Replace All по хоткею. Соглашаемся на замену – жмём Enter. Повторяем эту процедуру несколько раз (пока не случится баг, иногда на 3 раз случается, иногда на 8, иногда надо долго нажимать, но он обязательно должен случиться). Обратите внимание в окне всё время выделен шаблон, который выполняется последним в Batch. В какой то момент этот шаблон пропадает! То есть скрипт удаляет часть строки Найти в шаблоне. Это хорошо видно на

Image

Offline
Posts: 202
Joined: Sat Mar 28, 2015 2:36 pm
Location: Russia

Post by Kley »

Infocatcher
Ну, да. Скрипт не сложный. Можно и заменить. Просто подумал: "Не хорошо и не понятно все эти NaN, NaN...". Для тех, кто не знает. :)

Offline
Posts: 202
Joined: Sat Mar 28, 2015 2:36 pm
Location: Russia

Post by Kley »

Instructor,
здравствуйте. Нашел (специально не ищу, попадаются :) ) проблемку после использования LinesWrap.js
Перенос строк включен. Левый клик в начале строки выделяет всю строку (независимо от количества переносов).
После команд разбивающих строки:

Code: Select all

Call("Scripts::Main", 1, "LinesWrap.js", `-ParaIndent="" -LineIndent="  " -MaxLength=80 -ShowInput=true`)
Call("Scripts::Main", 1, "LinesWrap.js", `-ParaIndent="" -LineIndent="  " -MaxLength=120 -ShowInput=false`)
левый клик в начале строки выделяет только линию. Это касается тех окон, где запускали эти команды.

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

Post by Instructor »

Kley wrote:А если выделить (если первая строка не 001)...
Infocatcher wrote:на

Code: Select all

nCurNumber=parseInt(pFirstNumber.replace(/^0+/, "") || 0);
Добавлено.
Kley wrote:Нашел (специально не ищу, попадаются :) ) ...
Исправлено :)

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

Post by KDJ »

yozhic
Unfortunately, not reproduced.
Try this version: FindReplaceEx.js.

Offline
Posts: 269
Joined: Mon Jun 20, 2011 8:33 am
Location: Электросталь

Post by yozhic »

KDJ
not reproduced
У меня воспроизводится стабильно. И на новой версии тоже воспроизводится. На Windows 8.1 x32. Вот видео. Если прокрутить его на замедленной скорости, то становится видно, что часть строки удаляется при нажатии на Enter в диалоге "Do you want to Batch Replae All?".

Offline
Posts: 269
Joined: Mon Jun 20, 2011 8:33 am
Location: Электросталь

Post by yozhic »

KDJ
Попробовал создать ещё одну замену для эксперимента. _temp007 ищет пробел и заменяет на пробел. Посмотрите, пожалуйста, что получилось (нужно прокручивать видео на замедленной скорости). Теперь видно, как часть строки удаляется в правой части окна, в списке Batches. Она просто пропадает, когда до неё доходит очередь замен.

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

Post by KDJ »

yozhic
After this error occurs, your file FindReplaceEx_templates.tsv has been changed?
It contains:

Code: Select all

_temp006	(?s)<br>(?!<div|<p|<a|\n)(.*?</div>)	\1<br>	0010
or:

Code: Select all

_temp006	(?s)	\1<br>	0010
?

Offline
Posts: 269
Joined: Mon Jun 20, 2011 8:33 am
Location: Электросталь

Post by yozhic »

KDJ
It has been changed:

Code: Select all

_temp006   (?s)   \1<br>   0010

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

Post by KDJ »

yozhic
If you disable option "Closes dialog", the error also occurs?

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

Post by Cuprum »

Обновлен createSelectedFile.js.
С ключом -forceQuotes не требует обязательного выделения текста; пытается найти сопоставление внутри пары ближайших кавычек относительно курсора.

Offline
Posts: 269
Joined: Mon Jun 20, 2011 8:33 am
Location: Электросталь

Post by yozhic »

KDJ
Да, ошибка происходит и при отключенном "Closes dialog". И при отключенном "Without message" она тоже происходит. Проблему вызывает именно это регулярное выражение. Я поменял местами выражения в сценарии – посмотрите, пожалуйста, видео.
Locked