Релиз AkelPad 4.8.6

Russian main discussion
Post Reply
  • Author
  • Message
Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Релиз AkelPad 4.8.6

Post by Instructor »

Изменено: квантификаторы регулярных выражений теперь являются по умолчанию жадными (кроме одинарной точки, например, ".*" или ".{5,10}"). Чтобы сделать их нежадными (старый принцип), используется "?" после квантификатора, например, "\d*?". Жадные регулярные выражения AkelPad'а выполняются последовательно. Например, шаблон "ab?b" в "abc" не имеет совпадений, т.к. "ab?" соответствует "ab" и последующее "b" не имеет совпадений. Корректный шаблон, в данном случае, будет "abb?".
Изменено: при использовании опции "Не открывать программу дважды", ручные параметры "CmdLineBegin" и "CmdLineEnd" передаются только первому экземпляру программы (MDI).

Добавлено: ручные параметры "TabNameFind" и "TabNameRep" - определяют шаблон поиска/замены регулярного выражения для имени вкладки в режиме MDI/PMDI.
Добавлено: прерывание клавишей Escape перемещения вертикального маркера с помощью мыши.
Добавлено: необязательный параметр в метод командной строки /Command() для его передачи внутренней команде.

Исправлено: режим замены блокнота в инсталляторе (WinVista/7/8).


<<Скачать>>
Last edited by Instructor on Sun Feb 02, 2014 12:45 pm, edited 1 time in total.

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

Re: Релиз AkelPad 4.8.6

Post by Infocatcher »

Instructor wrote:Добавлено: ручные параметры "TabNameFind" и "TabNameRep" - определяют шаблон поиска/замены регулярного выражения для имени вкладки в режиме MDI/PMDI.
Пример из AkelHelp-Rus.htm
TabNameFind=(.{20})[^.]{3,}(.*)
TabNameRep=\1..\2
превращает «shellext-unregister.cmd» в «shellext-unregister...».
А, например, «TabNameFind=(.{18})[^.]{3,}(.*)» делает то же самое с «shellext-register.cmd».

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Re: Релиз AkelPad 4.8.6

Post by DV »

Можно попробовать так: (.{1,10}).*(.{4})

Только что наткнулся на регулярное выражение, которое валит AkelPad и 4.8.5 и 4.8.6 :(
Как только в любом непустом файле запускаем поиск с любым из следующих регулярных выражений, AkelPad падает:

Code: Select all

.{}\.[^\.]{1,}
.{}.{1,}
.{}.{1}
.{}.{,}
a{}b{1}
a{1}b{}c
ab{}c
При этом поиск ab{} просто ничего не находит, даже если сочетание ab встречается в файле.

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

Post by Instructor »

Infocatcher
Все верно. Можно, например, поменять на "(.{20})[^.]{4,}(.*)", т.к. расширения в основном из не более трех символов состоят.

DV
Поправлено. Теперь будет выдавать синтаксическую ошибку.

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

Post by Skif_off »

Instructor wrote:Поправлено. Теперь будет выдавать синтаксическую ошибку.
Т.е. в ближайшее время можно ждать 4.8.7?

YuS
Offline
Posts: 512
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post by YuS »

Instructor wrote: Можно, например, поменять на "(.{20})[^.]{4,}(.*)"
Пример

Вы уж простите мою назойливость, но я опять со своей идефикс. :)
пример
Замена:
\1..\2\3

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

Post by Instructor »


YuS
Offline
Posts: 512
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post by YuS »

Instructor wrote:YuS
Тестовая версия
Вот! То, что и хотелось. Огромное спасибо!

Теперь работает такое правило:

Code: Select all

^([^\n]{20})[^.\n]*(?:(\.)((?(2)[^.\n]*)))*$
Имена файлов укорачивает так, как и требовалось.

Имена файлов:

Code: Select all

1.1234567890.ab
2.123456789012345678901.ab
3.1234567890123456789012.ab
4.12345678901234567890123.ab
5.123456789012345678901234.ab
6.1234567890123456789012345.ab
7.12345678901234567890123456.ab
8.123456789012345678901234567890.ab
9.123456789012345678901234567890.1234567890123456.7890.ab
0.123456789012345678901234567890.12345678901.234567890....abcdef012345
  12345678901234567890123456789012345678901234567890
укорачиваются к виду:

Code: Select all

1.1234567890.ab
2.123456789012345678...ab
3.123456789012345678...ab
4.123456789012345678...ab
5.123456789012345678...ab
6.123456789012345678...ab
7.123456789012345678...ab
8.123456789012345678...ab
9.123456789012345678...ab
0.123456789012345678...abcdef012345
  123456789012345678..

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

Post by Skif_off »

YuS

Code: Select all

TabNameFind=^([^\n]{20})[^.\n]*(?:(\.)((?(2)[^.\n]*)))*$
TabNameRep=\1..\2\3
Получаю
1.
Слияние_текстовых_файлов_в_папке.au3
Слияние_текстовых_фа...au3
2.
MINIMIZETOTRAY-RUS.TXT
MINIMIZETOTRAY-RUS.T..
3.
Quoted-Printable.au3
Quoted-Printable.au3..
Post Reply