Regular Expression Search and Replace (RESearch)

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

Hedin
Posts: 207
Joined: Thu 17 Mar, 2005 10:29
Has thanked: 3 times

Re: Regular Expression Search and Replace (RESearch)

Post by Hedin »

Latest post of the previous page:

Cavaler wrote:
Hedin wrote:UPD: А, понял. Ну в принципе можно.
Было бы здорово. :)

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

Re: Regular Expression Search and Replace (RESearch)

Post by Cavaler »

HaRT wrote:Ну а идеально мне давно грезится
В принципе надо подумать.
Хотя есть некоторые проблемы реализации - например, при выборе и [X] match count и [X] matched lines придутся сначала все искать, хранить все строки в буфере, а потом уже выводить. А лень )
И не очень понятно, может тогда стоит ли еще для режима [X] only matched fragment сделать под-опцию [X] several fragments per line

Shmuel
Posts: 6035
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 27 times
Been thanked: 295 times

Re: Regular Expression Search and Replace (RESearch)

Post by Shmuel »

Cavaler wrote:
AleXH wrote:ага, есть косяк.
Да, причем вопросы по нему - к разработчикам Far3.
Нету здесь косяка в Фаре. Plugin.Call / callplugin никогда не создавал панель, в т.ч. в Far2.
Возможно, будет создавать, посмотрим.

User avatar
HaRT
Moderator
Posts: 9276
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 98 times
Been thanked: 207 times

Re: Regular Expression Search and Replace (RESearch)

Post by HaRT »

Cavaler wrote:при выборе и [X] match count и [X] matched lines придутся сначала все искать, хранить все строки в буфере, а потом уже выводить
Ну, в первом приближении можно запретить те сочетания, которые ещё не реализованы, и записать их в фиче-реквесты.
Cavaler wrote:И не очень понятно, может тогда стоит ли еще для режима [X] only matched fragment сделать под-опцию [X] several fragments per line
Идея неплохая, однако я предпочёл бы поэтапное добавление хорошо работающих плюшек целому скопу работающих так себе.
Фар есть инструмент, а не нянька. © 2009 DrKnS

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

Re: Regular Expression Search and Replace (RESearch)

Post by Cavaler »

Shmuel wrote:
Cavaler wrote:
AleXH wrote:ага, есть косяк.
Да, причем вопросы по нему - к разработчикам Far3.
Нету здесь косяка в Фаре. Plugin.Call / callplugin никогда не создавал панель, в т.ч. в Far2.
Возможно, будет создавать, посмотрим.
Ну косяк в данном случае - недоработка, а не баг.

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

Re: Regular Expression Search and Replace (RESearch)

Post by Cavaler »

HaRT wrote:
Cavaler wrote:при выборе и [X] match count и [X] matched lines придутся сначала все искать, хранить все строки в буфере, а потом уже выводить
Ну, в первом приближении можно запретить те сочетания, которые ещё не реализованы, и записать их в фиче-реквесты.
Да, можно и так.
HaRT wrote:
Cavaler wrote:И не очень понятно, может тогда стоит ли еще для режима [X] only matched fragment сделать под-опцию [X] several fragments per line
Идея неплохая, однако я предпочёл бы поэтапное добавление хорошо работающих плюшек целому скопу работающих так себе.
Ну вообще это как фичу уже только что просили. Я тут скорее думаю, делать ли это поведение опциональным. И я с большей вероятностью буду желать фичу без изменения UI, чем наоборот.

Hedin
Posts: 207
Joined: Thu 17 Mar, 2005 10:29
Has thanked: 3 times

Re: Regular Expression Search and Replace (RESearch)

Post by Hedin »

Cavaler wrote:И не очень понятно, может тогда стоит ли еще для режима [X] only matched fragment сделать под-опцию [X] several fragments per line
Лично мне, как просившему эту функцию, кажется что режим когда надо только первое вхождение отдавать - нужен значительно реже (если вообще нужен), так что опции лучше делать наоборот. :)

User avatar
HaRT
Moderator
Posts: 9276
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 98 times
Been thanked: 207 times

Re: Regular Expression Search and Replace (RESearch)

Post by HaRT »

Cavaler wrote:Я тут скорее думаю, делать ли это поведение опциональным.
Тут видятся варианты:
1. Выводить только первое вхождение из входной строки.
2. Выводить все вхождения из входной строки, каждое на отдельной строке.
3. Выводить все вхождения из входной строки в одну общую выходную строку (с предопределённым или конфигурируемым разделителем).
Лично меня устроит (2) без опции.
Фар есть инструмент, а не нянька. © 2009 DrKnS

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

Re: Regular Expression Search and Replace (RESearch)

Post by Cavaler »

Hedin wrote:
Cavaler wrote:И не очень понятно, может тогда стоит ли еще для режима [X] only matched fragment сделать под-опцию [X] several fragments per line
Лично мне, как просившему эту функцию, кажется что режим когда надо только первое вхождение отдавать - нужен значительно реже (если вообще нужен), так что опции лучше делать наоборот. :)
А вот тогда скажи мне, как автор. Для режима (*) Output file names and match count - выводить количество чего, строк или совпадений? Или еще опцию?

Hedin
Posts: 207
Joined: Thu 17 Mar, 2005 10:29
Has thanked: 3 times

Re: Regular Expression Search and Replace (RESearch)

Post by Hedin »

Cavaler wrote:Для режима (*) Output file names and match count - выводить количество чего, строк или совпадений? Или еще опцию?
Мне кажется, что считать надо то что выдаётся в файл: если стоит флаг "Output only matched line fragment" - то совпадения, иначе строки.

ruv
Posts: 7
Joined: Tue 12 Mar, 2013 15:13

Remove empty lines in multiple files

Post by ruv »

А как удалить пустые (опустевшие) строки при массовой замене по файлам (в панели)?

Там в диалоге почему-то нету галочки "Remove empty lines". В режиме же "Several-line regular expression" не удается удалить строки CRLF, т.к. \n заменяет LF, а CR остается (паттерн \r\n в этом режиме не действителен). Как включить режим "Multi-line search from panels" (в соответствии с Hints.txt) — тоже не понятно. RESearch Version 7.83

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

Re: Remove empty lines in multiple files

Post by Cavaler »

ruv wrote:А как удалить пустые (опустевшие) строки при массовой замене по файлам (в панели)?
Нет возможности напрямую.
ruv wrote:В режиме же "Several-line regular expression" не удается удалить строки CRLF, т.к. \n заменяет LF, а CR остается (паттерн \r\n в этом режиме не действителен).
работает нормлаьно замена \n на пустую строку, например. Если нет - приведи конкретный пример.
ruv wrote:Как включить режим "Multi-line search from panels" (в соответствии с Hints.txt) — тоже не понятно. RESearch Version 7.83
(*) Multi-line regular expression

ruv
Posts: 7
Joined: Tue 12 Mar, 2013 15:13

Re: Remove empty lines in multiple files

Post by ruv »

Cavaler wrote:
ruv wrote:А как удалить пустые (опустевшие) строки при массовой замене по файлам (в панели)?
Нет возможности напрямую.
А не планируется добавить? Ведь, при замене в редакторе есть такая возможность.
Cavaler wrote:
ruv wrote:В режиме же "Several-line regular expression" не удается удалить строки CRLF, т.к. \n заменяет LF, а CR остается (паттерн \r\n в этом режиме не действителен).
работает нормлаьно замена \n на пустую строку, например. Если нет - приведи конкретный пример.
HEX-dump привести? ;)

Замена "\n" на "", на входе файл:

Code: Select all

41 0D 0A 42 0D 0A │ A..B..
В панелях на выходе получается

Code: Select all

41 0D 42 0D | A.B.
В редакторе на выходе получается

Code: Select all

41 42 0A | AB.
Cavaler wrote:
ruv wrote:Как включить режим "Multi-line search from panels" (в соответствии с Hints.txt) — тоже не понятно. RESearch Version 7.83
(*) Multi-line regular expression
В диалоге не вижу этой опции:

Code: Select all

╔════════════════════ Regular Expression Replace ════════════════════╗
║ File mask(s):                 [ ] As regular expression            ║
║ test.txt                                                          ↓║
║ Search for:                                                        ║
║ \n                                                           ↓[ \ ]║
║ Replace with:                                                      ║
║                                                              ↓[ / ]║
╟────────────────────────────────────────────────────────────────────╢
║ ( ) Plain text                                         [ Presets ] ║
║ ( ) Regular expression                             [ ] [ Advanced ]║
║ (•) Several-line regular expression                  [ RE Builder ]║
║ [ ] Case-sensitive                                                 ║
║ [ ] Use all character tables                                       ║
║ [ ] Evaluate as script:  JScript                   ↓   [ Editor ]  ║
║                                                                    ║
║ Search:   From the current folder                       ↓          ║
║                                                                    ║
║ [ ] List modified files            [x] Backup original file        ║
║ [ ] Confirm each file              [x] Overwrite prev. backup      ║
║ [x] Confirm each replacement       [ ] Result in new file          ║
║                                                                    ║
║                         { Ok } [ Cancel ]                          ║
║                                                                    ║
╚════════════════════════════════════════════════════════════════════╝
Far 3.0 build 3614 x64

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

Re: Remove empty lines in multiple files

Post by Cavaler »

ruv wrote:
Cavaler wrote:
ruv wrote:А как удалить пустые (опустевшие) строки при массовой замене по файлам (в панели)?
Нет возможности напрямую.
А не планируется добавить? Ведь, при замене в редакторе есть такая возможность.
Не планирую.
ruv wrote:В режиме же "Several-line regular expression" не удается удалить строки CRLF, т.к. \n заменяет LF, а CR остается (паттерн \r\n в этом режиме не действителен).
Странно, я же блин вроде чинил уже...
ruv wrote:
Cavaler wrote:
ruv wrote:Как включить режим "Multi-line search from panels" (в соответствии с Hints.txt) — тоже не понятно. RESearch Version 7.83
(*) Multi-line regular expression
В диалоге не вижу этой опции
Правильно, потому что это опция для Search.

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

Re: Remove empty lines in multiple files

Post by Cavaler »

Cavaler wrote:
ruv wrote:В режиме же "Several-line regular expression" не удается удалить строки CRLF, т.к. \n заменяет LF, а CR остается (паттерн \r\n в этом режиме не действителен).
Странно, я же блин вроде чинил уже...
Прикладываю тестовый фикс. Что-то мне в пятницу под конец рабочей недели уже не разобраться, что может поломаться из-за этого.
Затрагивает только Several-line search/replace в панелях.
Attachments
RESearchU3_test.rar
(449.85 KiB) Downloaded 54 times

User avatar
HaRT
Moderator
Posts: 9276
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 98 times
Been thanked: 207 times

Re: Regular Expression Search and Replace (RESearch)

Post by HaRT »

Cavaler
Спасибо за новый UI и за исправление ошибок!
Только пришлось немного мнемоники (ну и по мелочам):
Фар есть инструмент, а не нянька. © 2009 DrKnS

Post Reply

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