Regular Expression Search and Replace (RESearch)

Здесь можно обсудить ваш любимый плагин.

User avatar
Cavaler
Posts: 1173
Joined: Mon 27 Jun, 2005 12:06
Been thanked: 5 times
Contact:

Re: Regular Expression Search and Replace (RESearch)

Post by Cavaler »

Latest post of the previous page:

AleXH wrote:FAR3.0.3829x86, RS8.30
Замена в редакторе из батчей. Имеем , имеющим в своём составе 2 \r\n, в результате замены имеем \r\n\r\n</yml_catalog>
Ага, имнтересный баг. связан с тем, что я что-то нихера не могу въехать как добавить еще одну строку в конец файла. В середине-то ECTL_INSERTSTRING отлично прокатывает, а в конец некуда сместиться, чтобы сделать INSERTSTRING...

DV
Posts: 415
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 18 times
Been thanked: 14 times

Re: Regular Expression Search and Replace (RESearch)

Post by DV »

Cavaler wrote:Ну да. А еще автодетект UCS2, а еще автодееткт кодировки по таблицам... Нет уж. Делайте файлы с BOM, как положено, и будет счастье.
На самом деле некоторые программы осознанно создают файлы UTF-8 без BOM, в том числе некоторые требуют UTF-8 без BOM.
В принципе, с точки зрения обработки большая ли разница - проверить 2 или 3 первых байта (BOM для UCS-2 или UTF-8) или же до 4096 или 2048 первых байт, если BOM не найден? (По статистике, проверки первых 1024 обычно недостаточно.) Ведь файл-то в любом случае считывается в память для поиска в нём, так почему бы не пробежаться по этим 4096 или 2048 байтам? А плюс очевиден - поддержка довольно таки распространённой кодировки UTF-8 без BOM.

AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

Re: Regular Expression Search and Replace (RESearch)

Post by AleXH »

Ага, имнтересный баг. связан с тем, что я что-то нихера не могу въехать как добавить еще одну строку в конец файла. В середине-то ECTL_INSERTSTRING отлично прокатывает, а в конец некуда сместиться, чтобы сделать INSERTSTRING...
На всякий замечу - в предыдущих версиях всё ок.

User avatar
Raistlin
Posts: 728
Joined: Wed 16 Mar, 2005 16:01
Has thanked: 3 times
Been thanked: 1 time

Re: Regular Expression Search and Replace (RESearch)

Post by Raistlin »

  1. В порядке информации: падение из п. 4 воспроизводится в версиях с 7.85 по 8.01. В 7.84 и ранее и в 8.21 и далее - не воспроизводится.
  2. Почему кнопка "Закрыть" отсутствует в диалоге замены из панелей?
  3. В каком диалоге используется строка 128 из lng - "List all lines"?
  4. Диалоги "Переименовать" и "Переименовать выделенные". Можно сделать так, чтобы нажатие стрелки вверх в полях "Маска файлов", "Содержащий текст", "Заменить на" перебрасывало нас на соответствующие галки "Учитывать регистр" и "Многократная замена"? Соответственно, нажатие стрелки вниз - на галки, относящиеся к следующему полю. А Tab чтобы работал, как сейчас. Сейчас добраться до упомянутых галок стрелками вряд ли у кого терпения хватит.
  5. Было обещано сделать что-то подобное п. 5 - ждем...
  6. Хочется, чтобы в панелях маски опционально работали по коротким именам (напр., так).
  7. http://forum.farmanager.com/viewtopic.p ... 15#p115415
  8. Перепутана логика работы подсвеченных букв в диалоге "Настройки поиска в несколько строк": нажатие на подсвеченную букву в слове "строк" перебрасывает нас в поле "КБ", а чтобы перейти в поле "строк", нужно нажать букву из слова "Несколько". По идее, здесь вообще подсвеченные буквы не нужны - всего два функциональных элемента диалога.
  9. Почему галки "Выполнить как 'Показать все'" и "Выполнить как 'Посчитать все'" дизаблятся при [ ] Добавить в меню плагина?
Magically yours
Raistlin

Hedin
Posts: 210
Joined: Thu 17 Mar, 2005 10:29
Has thanked: 4 times

Re: Regular Expression Search and Replace (RESearch)

Post by Hedin »

В RESearch 8.30 (FAR 3.0.3835) сломался такой пресет:

В результате каждой замены пропадает целиком первая из двух строк. Затем поиск продолжается не после вхождения, а со строки следующей за строками в которых был найден шаблон.

User avatar
John Doe
Бюрократ
Posts: 12814
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 286 times

Re: Regular Expression Search and Replace (RESearch)

Post by John Doe »

PluginCall.txt wrote:

Code: Select all

Batches and presets:

	Plugin.Call("F250C12A-78E2-4ABC-A784-3FDD3156E415", "Batch <BatchName>")
	Plugin.Call("F250C12A-78E2-4ABC-A784-3FDD3156E415", "Preset <PresetName>")
Работает как заявлено, но есть несколько пожеланий:
  1. Нет возможности просто показать список имеющихся батчей.
    Предлагаю использовать для этого команду "Batch" без параметров.
  2. BatchName было бы несколько удобнее задавать отдельным (третим) параметром. То же касается PresetName.
  3. Команда "Preset" могла бы отображать список пресетов, актуальный для текущей области.
  4. Если указанный BatchName/PresetName не существует, то хотелось бы увидеть сообщение об ошибке.
    Альтернативно, плагин мог бы сигнализировать об ошибке возвращаемым значением Plugin.Call.
  5. Если при выполнении батча/пресета ничего не найдено, то происходит позиционирование в начало файла, что нежелательно.
Пожелания некритичные, возникли в процессе того как я пытался улучшить штатный пример макросов.
(Результат улучшений не прилагаю, пока жду комментариев по пожеланиям.)
Но среди прочего:
  • mmode(3,1) сейчас ничего не делает, вместо этого есть 2 независимых команды Plugin.Call/Plugin.SyncCall
  • в 2х макросах почему-то используется древний формат вызова Keys("F11 s s"), вероятно это уже не надо.
  • зачем-то предусмотрены 2 функции function CallRS1(p) и function CallRS2(p1, p2)
    Второй вариант никак не используется, и вероятно не имеет смысла (если не будет принято одно из предложений выше).
    Или есть недокументированные способы использования?
    В любом случае, достаточно было бы одной функции с двумя параметрами (в случае если вызвать её с одним - недостающий автоматически принимает значение nil)

User avatar
4ekucT
Posts: 507
Joined: Tue 05 Apr, 2005 23:44
Location: Беларусь, Минск

Re: Regular Expression Search and Replace (RESearch)

Post by 4ekucT »

Можно ли сделать во Viewer поддержку SRAgainRev? Очень не хватает :oops:

ivank
Posts: 136
Joined: Fri 08 Aug, 2008 16:14
Been thanked: 2 times
Contact:

Re: Regular Expression Search and Replace (RESearch)

Post by ivank »

похоже баг с многострочной заменой в редакторе:
пытаюсь удалить все скрипты в html-файле, например с таким содержимым:

запускаю замену в RESearch по такому выражению: <((?<no>no)?script).+?</\1>

плагин находит нужное вхождение и предлагает заменить:

но после замены остается последняя строка от срипта:

RESearch 8.30, Far build 3842 x86 (запускался с единственным плагином), Win7SP1x64
у кого-нибудь повторяется?

Dark_Diver
Posts: 21
Joined: Wed 26 Aug, 2009 10:59
Location: Kyiv
Has thanked: 1 time
Been thanked: 1 time

Re: Regular Expression Search and Replace (RESearch)

Post by Dark_Diver »

Я пару дней назад так же пытался в XML-файле (UTF-8) воспользоваться заменой регулярного многострочного выражения - заменяло не то, что надо. Поиском находит и выделяет именно то, что надо, но замена изменяла не искомый текст, а что-то рядом. RESearch 8.30, Far 3.0.3835.

User avatar
Raistlin
Posts: 728
Joined: Wed 16 Mar, 2005 16:01
Has thanked: 3 times
Been thanked: 1 time

Re: Regular Expression Search and Replace (RESearch)

Post by Raistlin »

Да, что-то с многострочной заменой не то в 8.30. , , . В 8.27 нормально.
Magically yours
Raistlin

User avatar
Raistlin
Posts: 728
Joined: Wed 16 Mar, 2005 16:01
Has thanked: 3 times
Been thanked: 1 time

Re: Regular Expression Search and Replace (RESearch)

Post by Raistlin »

Обновил подправленные lng-файлы для RESearch 8.27 / 8.30. По сравнению с файлами для 7.85 есть breaking changes:
  1. В диалоге Grep убрана жесткая подсвеченная буква для and line count / и количество совпавших строк.
  2. В диалоге Grep изменена подсвеченная буква для Output matched lines / Выводить совпавшие строки с "m" на "i".
  3. В диалоге Replace из панелей убрана жесткая подсвеченная буква для Overwrite prev. backup / Перезаписывать пред. копию.
  4. В Several-line settings / Настройках поиска в несколько строк убраны подсвеченные буквы (из-за перепутанной по состоянию на 8.30 логики).
  5. В Panel search settings / Настройках поиска в файловой панели убрана за ненадобностью подсвеченная буква для 'All codepages' include: / 'Все кодировки' включают:.
  6. В диалоге Replace из редактора изменена подсвеченная буква для Remove emptied lines / Удалить ставшие пустыми строки с "m" на "e".
  7. В диалоге пресета изменена подсвеченная буква для Add to RESearch menu / Добавить в меню плагина с "n" на "m".
Attachments
RESearch830_lng_Raistlin.zip
(5.17 KiB) Downloaded 46 times
Magically yours
Raistlin

User avatar
Cavaler
Posts: 1173
Joined: Mon 27 Jun, 2005 12:06
Been thanked: 5 times
Contact:

Re: Regular Expression Search and Replace (RESearch)

Post by Cavaler »

Привет всем, я вернулся из командировки, отпуска и т.п.
Ща начнется!
Raistlin wrote:
  1. В порядке информации: падение из п. 4 воспроизводится в версиях с 7.85 по 8.01. В 7.84 и ранее и в 8.21 и далее - не воспроизводится.
  2. Почему кнопка "Закрыть" отсутствует в диалоге замены из панелей?
  3. В каком диалоге используется строка 128 из lng - "List all lines"?
  4. Диалоги "Переименовать" и "Переименовать выделенные". Можно сделать так, чтобы нажатие стрелки вверх в полях "Маска файлов", "Содержащий текст", "Заменить на" перебрасывало нас на соответствующие галки "Учитывать регистр" и "Многократная замена"? Соответственно, нажатие стрелки вниз - на галки, относящиеся к следующему полю. А Tab чтобы работал, как сейчас. Сейчас добраться до упомянутых галок стрелками вряд ли у кого терпения хватит.
  5. Было обещано сделать что-то подобное п. 5 - ждем...
  6. Хочется, чтобы в панелях маски опционально работали по коротким именам (напр., так).
  7. http://forum.farmanager.com/viewtopic.p ... 15#p115415
  8. Перепутана логика работы подсвеченных букв в диалоге "Настройки поиска в несколько строк": нажатие на подсвеченную букву в слове "строк" перебрасывает нас в поле "КБ", а чтобы перейти в поле "строк", нужно нажать букву из слова "Несколько". По идее, здесь вообще подсвеченные буквы не нужны - всего два функциональных элемента диалога.
  9. Почему галки "Выполнить как 'Показать все'" и "Выполнить как 'Посчитать все'" дизаблятся при [ ] Добавить в меню плагина?
2. Fixed
3. Заголовок окна после Editor|Search|Show all
4. Не я обрабатываю стрелки и т.п., и мне не кажется правильным нарушать стандарт, что стрелка вниз аналогична Tab.
5. Будет '['
6. Planned
7. Fixed
8. Ну вообще везде так, что хоткей на тексте перекидывает на следующее поле

User avatar
John Doe
Бюрократ
Posts: 12814
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 286 times

Re: Regular Expression Search and Replace (RESearch)

Post by John Doe »

Cavaler wrote:8. Ну вообще везде так, что хоткей на тексте перекидывает на следующее поле
Что значит везде? См. например диалог настройки File descriptions.
(хотя в случае настроек Several-line settings мне кажется это не имеет значения)

User avatar
Raistlin
Posts: 728
Joined: Wed 16 Mar, 2005 16:01
Has thanked: 3 times
Been thanked: 1 time

Re: Regular Expression Search and Replace (RESearch)

Post by Raistlin »

Cavaler wrote:4. Не я обрабатываю стрелки и т.п., и мне не кажется правильным нарушать стандарт, что стрелка вниз аналогична Tab.
Поведение должно быть в первую очередь функциональным. Как установить галку "Учитывать регистр" для поля "Содержащих текст", находясь в этом поле, не с помощью мыши? Для этого требуется четыре нажатия Tab'а, при этом галка находится выше поля, откуда нужно начинать нажатия. А подсвеченной буквой для этого не воспользоваться в принципе, т. к. название поля дублируется с полем "Маска файлов".
Если же сделать, как я предлагаю, будет логично: по подсвеченной букве переходим в поле "Содержащих текст", два нажатия стрелки вверх - и мы на нужной галке.
Cavaler wrote:8. Ну вообще везде так, что хоткей на тексте перекидывает на следующее поле
Интуитивно жмешь подсвеченную букву, относящуюся к нужному полю, а не предшествующую ей.
Magically yours
Raistlin

User avatar
Cavaler
Posts: 1173
Joined: Mon 27 Jun, 2005 12:06
Been thanked: 5 times
Contact:

Re: Regular Expression Search and Replace (RESearch)

Post by Cavaler »

ivank wrote:похоже баг с многострочной заменой в редакторе
Да, баги есть. Я сильно запутался с проблемками типа добавления/удаления последних строк и т.п.

User avatar
Cavaler
Posts: 1173
Joined: Mon 27 Jun, 2005 12:06
Been thanked: 5 times
Contact:

Re: Regular Expression Search and Replace (RESearch)

Post by Cavaler »

Raistlin wrote:
Cavaler wrote:4. Не я обрабатываю стрелки и т.п., и мне не кажется правильным нарушать стандарт, что стрелка вниз аналогична Tab.
Поведение должно быть в первую очередь функциональным. Как установить галку "Учитывать регистр" для поля "Содержащих текст", находясь в этом поле, не с помощью мыши? Для этого требуется четыре нажатия Tab'а, при этом галка находится выше поля, откуда нужно начинать нажатия. А подсвеченной буквой для этого не воспользоваться в принципе, т. к. название поля дублируется с полем "Маска файлов".
Если же сделать, как я предлагаю, будет логично: по подсвеченной букве переходим в поле "Содержащих текст", два нажатия стрелки вверх - и мы на нужной галке.
Это потребует непропорционально большой кучи дополнительного кода кастомной навигации.
Raistlin wrote:
Cavaler wrote:8. Ну вообще везде так, что хоткей на тексте перекидывает на следующее поле
Интуитивно жмешь подсвеченную букву, относящуюся к нужному полю, а не предшествующую ей.
Как минимум в Far API так. Порядок элементов внутри соответствуе ттому, что на экране, и если разработчики сделали именно такое поведение - возможно, не случайно.

Post Reply

Return to “Обсуждение плагинов”