Scripts discussion (3)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

Instructor wrote:KDJ
Users requested batch replace which

Image
.

Similar functionality already implemented in FindReplaceEx.js as templates.
Done: FindReplaceEx.js
Added:
- batch replace,
- regular expressions verification.

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

Post by YuS »

KDJ wrote: Done: FindReplaceEx.js

Code: Select all

/*********************************************
FindReplaceEx.js - ver. 2015-05-01
Interface language
Language:      Russian (1049)
Translated by: F. Phoenix, Andrey_A_A, VladSh
*********************************************/
sTxtMore           = 'Ещё';
sTxtCount          = 'Подсчитать';
sTxtFindAll        = 'Найти все';
sTxtBookmarkAll    = 'Закладки на все';
sTxtUnmarkAll      = 'Убрать закладки';
sTxtTemplates      = 'Шаблоны';
sTxtBatches        = 'Пакеты';                                      //new
sTxtWait           = 'Подождите...';
sTxtTotalFound     = 'Всего вхождений: ';
sTxtReplAllCD      = '"Заменить всё" закрывает диалог';
sTxtReplAllWM      = '"Заменить всё" без сообщения';
sTxtCheckInSel     = 'Отметить "В выделении" если есть выделение';
sTxtCycleSearch    = 'Поиск по кругу';
sTxtPrompt         = 'Запрос';
sTxtFindWhat       = 'Что найти';
sTxtReplaceWith    = 'Чем заменить';
sTxtMatchCase      = 'Учитывать регистр';
sTxtWholeWord      = 'Слово целиком';
sTxtRegExp         = 'Регулярные выражения';
sTxtEscSeq         = 'Esc-последовательности';
sTxtNew            = 'Создать';
sTxtAdd            = 'Добавить';
sTxtRename         = 'Изменить';                                       //new
sTxtRemove         = 'Удалить';
sTxtToBatch        = 'В пакет';                                     //new
sTxtOK             = 'OK';
sTxtCheckRE        = 'Проверить RegExp';                                //new
sTxtClose          = 'Закрыть';
sTxtMoveUp         = 'Вверх';                                      //new
sTxtMoveDown       = 'Вниз';                                    //new
sTxtBatchReplace   = 'Заменить всё (пакетом)';                           //new
sTxtTemplateName   = 'Имя шаблона';                                //new
sTxtNameInvalid    = 'Неверное имя.';                                //new
sTxtNameExists     = 'Такое наименование шаблона уже используется.';
sTxtWantRemove     = 'Вы действительно хотите удалить этот шаблон?';
sTxtBatchNumber    = 'Пакет №';                                      //new
sTxtWantBatchRepl  = 'Заменить всё этим пакетом?';            //new
sTxtNoFindText     = 'Нет текста в поле "Что найти".';              //new
sTxtRegExpOK       = 'Регулярное выражение правильное.';                    //new
sTxtRegExpError    = 'Ошибка в регулярном выражении.';
sHlpAnyChar        = 'любой символ (точка)';
sHlpSpecChars      = '()[]{}^$.?+*|\\ специальные символы';
sHlpFF             = 'перевод страницы \\x0C';
sHlpAnyNL          = 'перевод строки';
sHlpTab            = 'табуляция \\x09';
sHlpVTab           = 'вертикальная табуляция \\x0B';
sHlpDigit          = 'цифра [0-9]';
sHlpNonDigit       = 'не цифра [^0-9]';
sHlpWhiteSp        = 'пробельный символ [ \\f\\n\\t\\v]';
sHlpNonWhiteSp     = 'непробельный символ';
sHlpWordChar       = 'словесный символ  (non-delimiter)';
sHlpNonWordChar    = 'несловесный символ (delimiter)';
sHlpCharHex        = 'символ - код в диапазоне 0-10FFFF';
sHlpCharHex2       = 'символ - 2-значный код';
sHlpCharHex4       = 'символ - 4-значный код';
sHlpAlternative    = 'одна из альтернатив: ab либо xy';
sHlpCharSet        = 'набор символов, нужен любой из них';
sHlpNegCharSet     = 'исключающий набор символов';
sHlpRange          = 'диапазон символов от a до z';
sHlpNegRange       = 'исключающий диапазон';
sHlpBeginLine      = 'начало строки';
sHlpEndLine        = 'конец строки';
sHlpBeginText      = 'начало документа';
sHlpEndText        = 'конец документа';
sHlpBeginRange     = 'начало диапазона поиска';
sHlpEndRange       = 'конец диапазона поиска';
sHlpWordBoun       = 'граница слова';
sHlpNonWordBoun    = 'не граница слова';
sHlpExcludePrev    = 'исключить предыдущее из результата';          //new
sHlpZeroOrOne      = '0 или 1 раз';
sHlpZeroOrMore     = '0 или более раз';
sHlpOneOrMore      = '1 или более раз';
sHlpExactly        = 'ровно 3 раза';
sHlpAtLeast        = 'не менее 3 раз';
sHlpFromTo         = 'от 3 до 7 раз';
sHlpBackslash      = 'обратный слеш';
sHlpNL             = 'перевод строки';
sHlpEntireStr      = 'вся захваченная строка';
sHlpSubmatch9      = '9я подстрока (диапазон 1-9)';
sHlpSubmatch99     = '99я подстрока (диапазон 01-99)';
sHlpGreedy         = '- выше жадные квантификаторы ';
sHlpLazy           = 'добавить для ленивого квантификатора';
sHlpPossesive      = 'добавить для сверхжадного квантификатора';
sHlpCapture1       = 'запоминающая скобка';
sHlpCapture2       = 'соответствует негативному ab, захвату';
sHlpNotCapture     = 'незапоминающая скобка';
sHlpAtomicGrouping = 'атомарная группа (незапоминающая)';
sHlpPreceded       = 'строка следует за ab';
sHlpNotPreceded    = 'строка не следует за ab';
sHlpFollowed       = 'строка предшествует ab';
sHlpNotFollowed    = 'строка не предшествует ab';
sHlpcondition      = 'если (1) то x, иначе y';
sHlpBackrefer9     = 'обратная ссылка, диапазон 1-9';
sHlpBackrefer99    = 'обратная ссылка, диапазон 01-99';
sHlpIgnoreCase     = 'не учитывать регистр символов';
sHlpMultiline      = 'многострочный поиск (по умолчанию)';
sHlpDotDefault     = 'точке соответствует любой символ (по умолчанию)';
sHlpInvertGreed    = 'инвертировать жадность квантификаторов';
sHlpMatchCase      = 'учитывать регистр символов';
sHlpMultilineOff   = 'выключить многострочный поиск';
sHlpDotDefaultOff  = 'точке соответствует любой символ, кроме \\n';
sHlpInvertGreedOff = 'отменить инвертирование жадности';

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

Post by KDJ »

YuS
Thanks for the translation.

FindReplaceEx.js
Added: Ctrl+(1-9) key - select batch number.
Changed: now column width in templates/batches list is fit to window width.
Fixed: "Batch replace all" button is enabled if AkelPad document is marked as read only.
Updated: Russian translation by YuS.

TextMarker.js
Updated: Russian translation by YuS.

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

Post by Kley »

KDJ
Скажите пожалуйста, а почему в диалоге "Templates/Batches" текстовые поля (IDWHATE, IDWITHE) не имеют всплывающего меню?
Так надо? Это ж не удобно, по-моему.

Tell me please, why in the dialogue "Templates / Batches" text fields (IDWHATE, IDWITHE) do not have a pop-up menu?
So it is necessary? It isn't convenient, in my opinion.

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

Post by KDJ »

Kley
Because these are not standard "EDIT" controls. I have used "AkelEdit" class for them.

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

Post by Kley »

Ok :( Thank you.

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

Post by KDJ »

Kley
"AkelEdit" control has much more features than simple "EDIT", eg.:
- multiple undo/redo (Ctrl+Z/Ctrl+Shift+Z),
- changing insert character mode (Ins key).
And context menu can be done.

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

Post by YuS »

KDJ wrote:YuS
Thanks for the translation.
Это Вам, спасибо, а также автору AP и всем авторам скриптов, поддерживающим такой замечательный редактор!
А перевод - дело не такое уж и сложное, всегда рад помочь.

This is for you, thank, as well as the author of the AP and all the creators of scripts supporting such a wonderful editor!
A translation - it's not so difficult, always glad to help.

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

Post by Kley »

KDJ wrote:And context menu can be done.
Спасибо. Уже сделал :D

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

Post by Instructor »

KDJ wrote:Done: FindReplaceEx.js
Nice work!

Suggestion:
- If "Replace all" without message not set, "Batch replace all" show replace message once (with using AkelPad.TextReplace).

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

Post by YuS »

Instructor wrote: - If "Replace all" without message not set, "Batch replace all" ...
Кстати, в таком варианте нажатие на "Заменить всё (пакетом)" вызывает зависание AP сразу же после появления сообщения...

Image

Win 7 x64, AP x64

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

Post by Kley »

KDJ
Сохраненные шаблоны (поля: "что:", "чем:") нельзя менять без кнопки, например: "Сохранить".
imho, автоматическое сохранение при закрытии диалога - плохо.

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

Post by KDJ »

FindReplaceEx.js
Added:
- parameters -FRE and -BR (see in the script description),
- context menu for edit controls in "Templates/Batches" dialog.
Fixed:
- on Win7 AkelPad hangs after pressing 'Batch replace all' if '"Replace all" without message' is not set.

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

Post by Kley »

KDJ
Дааа... Снимаю перед вами шляпу. Скрипт грандиозный!

И все же, хочу еще немного понудить (подействовать вам на нервы). :-)
Почему, после использования диалога "Templates/Batches", в Диалоге поиска (Command(4158)) меняются настройки?
Все CheckBox сбрасываются в ноль, но устанавливается флаг в "Регулярные выражения".

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

Post by KDJ »

Kley
Because this script does not create its own "Find" dialog box, but uses the original, built-in AkelPad "Find" dialog (Command(4158)).
Locked