Regular Expression Search and Replace (RESearch)
Re: Regular Expression Search and Replace (RESearch)
Latest post of the previous page:
Ага, имнтересный баг. связан с тем, что я что-то нихера не могу въехать как добавить еще одну строку в конец файла. В середине-то ECTL_INSERTSTRING отлично прокатывает, а в конец некуда сместиться, чтобы сделать INSERTSTRING...AleXH wrote:FAR3.0.3829x86, RS8.30
Замена в редакторе из батчей. Имеем , имеющим в своём составе 2 \r\n, в результате замены имеем \r\n\r\n</yml_catalog>
Re: Regular Expression Search and Replace (RESearch)
На самом деле некоторые программы осознанно создают файлы UTF-8 без BOM, в том числе некоторые требуют UTF-8 без BOM.Cavaler wrote:Ну да. А еще автодетект UCS2, а еще автодееткт кодировки по таблицам... Нет уж. Делайте файлы с BOM, как положено, и будет счастье.
В принципе, с точки зрения обработки большая ли разница - проверить 2 или 3 первых байта (BOM для UCS-2 или UTF-8) или же до 4096 или 2048 первых байт, если BOM не найден? (По статистике, проверки первых 1024 обычно недостаточно.) Ведь файл-то в любом случае считывается в память для поиска в нём, так почему бы не пробежаться по этим 4096 или 2048 байтам? А плюс очевиден - поддержка довольно таки распространённой кодировки UTF-8 без BOM.
Re: Regular Expression Search and Replace (RESearch)
На всякий замечу - в предыдущих версиях всё ок.Ага, имнтересный баг. связан с тем, что я что-то нихера не могу въехать как добавить еще одну строку в конец файла. В середине-то ECTL_INSERTSTRING отлично прокатывает, а в конец некуда сместиться, чтобы сделать INSERTSTRING...
Re: Regular Expression Search and Replace (RESearch)
- В порядке информации: падение из п. 4 воспроизводится в версиях с 7.85 по 8.01. В 7.84 и ранее и в 8.21 и далее - не воспроизводится.
- Почему кнопка "Закрыть" отсутствует в диалоге замены из панелей?
- В каком диалоге используется строка 128 из lng - "List all lines"?
- Диалоги "Переименовать" и "Переименовать выделенные". Можно сделать так, чтобы нажатие стрелки вверх в полях "Маска файлов", "Содержащий текст", "Заменить на" перебрасывало нас на соответствующие галки "Учитывать регистр" и "Многократная замена"? Соответственно, нажатие стрелки вниз - на галки, относящиеся к следующему полю. А Tab чтобы работал, как сейчас. Сейчас добраться до упомянутых галок стрелками вряд ли у кого терпения хватит.
- Было обещано сделать что-то подобное п. 5 - ждем...
- Хочется, чтобы в панелях маски опционально работали по коротким именам (напр., так).
- http://forum.farmanager.com/viewtopic.p ... 15#p115415
- Перепутана логика работы подсвеченных букв в диалоге "Настройки поиска в несколько строк": нажатие на подсвеченную букву в слове "строк" перебрасывает нас в поле "КБ", а чтобы перейти в поле "строк", нужно нажать букву из слова "Несколько". По идее, здесь вообще подсвеченные буквы не нужны - всего два функциональных элемента диалога.
- Почему галки "Выполнить как 'Показать все'" и "Выполнить как 'Посчитать все'" дизаблятся при [ ] Добавить в меню плагина?
Magically yours
Raistlin
Raistlin
Re: Regular Expression Search and Replace (RESearch)
В RESearch 8.30 (FAR 3.0.3835) сломался такой пресет:
В результате каждой замены пропадает целиком первая из двух строк. Затем поиск продолжается не после вхождения, а со строки следующей за строками в которых был найден шаблон.
В результате каждой замены пропадает целиком первая из двух строк. Затем поиск продолжается не после вхождения, а со строки следующей за строками в которых был найден шаблон.
- John Doe
- Бюрократ
- Posts: 13866
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: Regular Expression Search and Replace (RESearch)
Работает как заявлено, но есть несколько пожеланий: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>")
- Нет возможности просто показать список имеющихся батчей.
Предлагаю использовать для этого команду "Batch" без параметров. - BatchName было бы несколько удобнее задавать отдельным (третим) параметром. То же касается PresetName.
- Команда "Preset" могла бы отображать список пресетов, актуальный для текущей области.
- Если указанный BatchName/PresetName не существует, то хотелось бы увидеть сообщение об ошибке.
Альтернативно, плагин мог бы сигнализировать об ошибке возвращаемым значением Plugin.Call. - Если при выполнении батча/пресета ничего не найдено, то происходит позиционирование в начало файла, что нежелательно.
(Результат улучшений не прилагаю, пока жду комментариев по пожеланиям.)
Но среди прочего:
- mmode(3,1) сейчас ничего не делает, вместо этого есть 2 независимых команды Plugin.Call/Plugin.SyncCall
- в 2х макросах почему-то используется древний формат вызова
Keys("F11 s s")
, вероятно это уже не надо. - зачем-то предусмотрены 2 функции
function CallRS1(p)
иfunction CallRS2(p1, p2)
Второй вариант никак не используется, и вероятно не имеет смысла (если не будет принято одно из предложений выше).
Или есть недокументированные способы использования?
В любом случае, достаточно было бы одной функции с двумя параметрами (в случае если вызвать её с одним - недостающий автоматически принимает значениеnil
)
Re: Regular Expression Search and Replace (RESearch)
Можно ли сделать во Viewer поддержку SRAgainRev? Очень не хватает
Re: Regular Expression Search and Replace (RESearch)
похоже баг с многострочной заменой в редакторе:
пытаюсь удалить все скрипты в html-файле, например с таким содержимым:
запускаю замену в RESearch по такому выражению: <((?<no>no)?script).+?</\1>
плагин находит нужное вхождение и предлагает заменить:
но после замены остается последняя строка от срипта:
RESearch 8.30, Far build 3842 x86 (запускался с единственным плагином), Win7SP1x64
у кого-нибудь повторяется?
пытаюсь удалить все скрипты в html-файле, например с таким содержимым:
запускаю замену в RESearch по такому выражению: <((?<no>no)?script).+?</\1>
плагин находит нужное вхождение и предлагает заменить:
но после замены остается последняя строка от срипта:
RESearch 8.30, Far build 3842 x86 (запускался с единственным плагином), Win7SP1x64
у кого-нибудь повторяется?
- Dark_Diver
- Posts: 26
- Joined: Wed 26 Aug, 2009 10:59
- Location: Kyiv
- Has thanked: 1 time
- Been thanked: 1 time
Re: Regular Expression Search and Replace (RESearch)
Я пару дней назад так же пытался в XML-файле (UTF-8) воспользоваться заменой регулярного многострочного выражения - заменяло не то, что надо. Поиском находит и выделяет именно то, что надо, но замена изменяла не искомый текст, а что-то рядом. RESearch 8.30, Far 3.0.3835.
Re: Regular Expression Search and Replace (RESearch)
Обновил подправленные lng-файлы для RESearch 8.27 / 8.30. По сравнению с файлами для 7.85 есть breaking changes:
- В диалоге Grep убрана жесткая подсвеченная буква для and line count / и количество совпавших строк.
- В диалоге Grep изменена подсвеченная буква для Output matched lines / Выводить совпавшие строки с "m" на "i".
- В диалоге Replace из панелей убрана жесткая подсвеченная буква для Overwrite prev. backup / Перезаписывать пред. копию.
- В Several-line settings / Настройках поиска в несколько строк убраны подсвеченные буквы (из-за перепутанной по состоянию на 8.30 логики).
- В Panel search settings / Настройках поиска в файловой панели убрана за ненадобностью подсвеченная буква для 'All codepages' include: / 'Все кодировки' включают:.
- В диалоге Replace из редактора изменена подсвеченная буква для Remove emptied lines / Удалить ставшие пустыми строки с "m" на "e".
- В диалоге пресета изменена подсвеченная буква для Add to RESearch menu / Добавить в меню плагина с "n" на "m".
- Attachments
-
- RESearch830_lng_Raistlin.zip
- (5.17 KiB) Downloaded 62 times
Magically yours
Raistlin
Raistlin
Re: Regular Expression Search and Replace (RESearch)
Привет всем, я вернулся из командировки, отпуска и т.п.
Ща начнется!
3. Заголовок окна после Editor|Search|Show all
4. Не я обрабатываю стрелки и т.п., и мне не кажется правильным нарушать стандарт, что стрелка вниз аналогична Tab.
5. Будет '['
6. Planned
7. Fixed
8. Ну вообще везде так, что хоткей на тексте перекидывает на следующее поле
Ща начнется!
2. FixedRaistlin wrote:
- В порядке информации: падение из п. 4 воспроизводится в версиях с 7.85 по 8.01. В 7.84 и ранее и в 8.21 и далее - не воспроизводится.
- Почему кнопка "Закрыть" отсутствует в диалоге замены из панелей?
- В каком диалоге используется строка 128 из lng - "List all lines"?
- Диалоги "Переименовать" и "Переименовать выделенные". Можно сделать так, чтобы нажатие стрелки вверх в полях "Маска файлов", "Содержащий текст", "Заменить на" перебрасывало нас на соответствующие галки "Учитывать регистр" и "Многократная замена"? Соответственно, нажатие стрелки вниз - на галки, относящиеся к следующему полю. А Tab чтобы работал, как сейчас. Сейчас добраться до упомянутых галок стрелками вряд ли у кого терпения хватит.
- Было обещано сделать что-то подобное п. 5 - ждем...
- Хочется, чтобы в панелях маски опционально работали по коротким именам (напр., так).
- http://forum.farmanager.com/viewtopic.p ... 15#p115415
- Перепутана логика работы подсвеченных букв в диалоге "Настройки поиска в несколько строк": нажатие на подсвеченную букву в слове "строк" перебрасывает нас в поле "КБ", а чтобы перейти в поле "строк", нужно нажать букву из слова "Несколько". По идее, здесь вообще подсвеченные буквы не нужны - всего два функциональных элемента диалога.
- Почему галки "Выполнить как 'Показать все'" и "Выполнить как 'Посчитать все'" дизаблятся при [ ] Добавить в меню плагина?
3. Заголовок окна после Editor|Search|Show all
4. Не я обрабатываю стрелки и т.п., и мне не кажется правильным нарушать стандарт, что стрелка вниз аналогична Tab.
5. Будет '['
6. Planned
7. Fixed
8. Ну вообще везде так, что хоткей на тексте перекидывает на следующее поле
- John Doe
- Бюрократ
- Posts: 13866
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: Regular Expression Search and Replace (RESearch)
Что значит везде? См. например диалог настройки File descriptions.Cavaler wrote:8. Ну вообще везде так, что хоткей на тексте перекидывает на следующее поле
(хотя в случае настроек Several-line settings мне кажется это не имеет значения)
Re: Regular Expression Search and Replace (RESearch)
Поведение должно быть в первую очередь функциональным. Как установить галку "Учитывать регистр" для поля "Содержащих текст", находясь в этом поле, не с помощью мыши? Для этого требуется четыре нажатия Tab'а, при этом галка находится выше поля, откуда нужно начинать нажатия. А подсвеченной буквой для этого не воспользоваться в принципе, т. к. название поля дублируется с полем "Маска файлов".Cavaler wrote:4. Не я обрабатываю стрелки и т.п., и мне не кажется правильным нарушать стандарт, что стрелка вниз аналогична Tab.
Если же сделать, как я предлагаю, будет логично: по подсвеченной букве переходим в поле "Содержащих текст", два нажатия стрелки вверх - и мы на нужной галке.
Интуитивно жмешь подсвеченную букву, относящуюся к нужному полю, а не предшествующую ей.Cavaler wrote:8. Ну вообще везде так, что хоткей на тексте перекидывает на следующее поле
Magically yours
Raistlin
Raistlin
Re: Regular Expression Search and Replace (RESearch)
Да, баги есть. Я сильно запутался с проблемками типа добавления/удаления последних строк и т.п.ivank wrote:похоже баг с многострочной заменой в редакторе
Re: Regular Expression Search and Replace (RESearch)
Это потребует непропорционально большой кучи дополнительного кода кастомной навигации.Raistlin wrote:Поведение должно быть в первую очередь функциональным. Как установить галку "Учитывать регистр" для поля "Содержащих текст", находясь в этом поле, не с помощью мыши? Для этого требуется четыре нажатия Tab'а, при этом галка находится выше поля, откуда нужно начинать нажатия. А подсвеченной буквой для этого не воспользоваться в принципе, т. к. название поля дублируется с полем "Маска файлов".Cavaler wrote:4. Не я обрабатываю стрелки и т.п., и мне не кажется правильным нарушать стандарт, что стрелка вниз аналогична Tab.
Если же сделать, как я предлагаю, будет логично: по подсвеченной букве переходим в поле "Содержащих текст", два нажатия стрелки вверх - и мы на нужной галке.
Как минимум в Far API так. Порядок элементов внутри соответствуе ттому, что на экране, и если разработчики сделали именно такое поведение - возможно, не случайно.Raistlin wrote:Интуитивно жмешь подсвеченную букву, относящуюся к нужному полю, а не предшествующую ей.Cavaler wrote:8. Ну вообще везде так, что хоткей на тексте перекидывает на следующее поле