Find & Go - Поиск с предпросмотром и переходом

Здесь обсуждается всё, что касается макросов.
buniak_a_h
Posts: 1879
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 120 times
Been thanked: 168 times
Contact:

Find & Go - Поиск с предпросмотром и переходом

Post by buniak_a_h »

Мне надоело после окончания поиска файлов, содержащих строки, открывать найденные файлы и повторять поиск (особенно, если поиск в файлах по регэкспу с помощь. плагинов, а поиск в файле настроен не через эти плагины. А также если имеется несколько строк, удовлетворяющих критерию поиска, и надо перейти на конкретную). В результате родился предлагаемый к обсуждению макрос.
Его отличия от поиска по CtrlF7:
  1. Образец может быть регэкспом в формате LUA или Perl
  2. В результатах показывается найденная строка (как GREP), а также 3 строки выше и ниже найденной
  3. При переходе на выбранную строку редактор сразу позиционируется на неё.
  4. Можно отметить несколько найденных строк (по одной в каждом файле), и тогда в редакторе будут открыты все отмеченные файлы (также с позиционированием на отмеченных строках)
  5. Из результатов поиска можно удалять "мешающие" строки
  6. Можно сворачивать - разворачивать строки, принадлежащие одному файлу
Окно поиска:
Image
Процесс поиска:
Image
Результат:
Image
Обратите внимание: в результате строки файлов BaseLoad.pas b CHECK2TU.PAS "схлопнуты" (Condensed); несколько строк помечены. Внизу окна выведены 7 строк возле текущей (3 выше и 3 ниже)




Find_n_Go.1_1_2a.7z
Перезалил с модулями
(27.27 KiB) Downloaded 23 times
Last edited by buniak_a_h on Thu 07 May, 2020 23:55, edited 26 times in total.

buniak_a_h
Posts: 1879
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 120 times
Been thanked: 168 times
Contact:

Find & Go - Поиск с предпросмотром и переходом

Post by buniak_a_h »

Latest post of the previous page:

citRiks wrote:
Sat 09 May, 2020 10:17
в связи последними проблем со строками,
Я в теме, посвящённой этой проблеме, опубликовал простой и надёжный выход. Бороться с Shmuel-ем и zg больше не буду. За оптимизацию отдельное спасибо jd.

Code: Select all

В _macroinit.lua вставил такой блок:
for _,v in ipairs({'len','match','find','gmatch','gsub','lower','upper'}) do
 local savedName = 'Utf8_'..v
 if not utf8[savedName] then
  utf8[savedName] = utf8[v]
  utf8[v] = function(s,...)
   return (utf8.utf8valid(s) and utf8[savedName] or string[v])(s,...)
  end
 end
end
Т.к. там всё правильно, то мы имеем дело с одним из следствий закона Мерфи: блок, предназначенный для защиты всей системы от повреждения, выходит из строя первым и выводит из строя всю систему.
Last edited by buniak_a_h on Sat 09 May, 2020 10:34, edited 1 time in total.

buniak_a_h
Posts: 1879
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 120 times
Been thanked: 168 times
Contact:

Find & Go - Поиск с предпросмотром и переходом

Post by buniak_a_h »

P/S.
Тем более, что я не уверен, что замена utf8.len на string.len возможна и корректна везде. Я даже больше скажу! В данном случае (я имею в виду far_Menu.lua) нужна именно длина строки в символах (для определения ширины окна). Ну а если это не строка utf8, то как компромисс можно посчитать и в байтах. Будет слишком широко, но что ж делать…

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

Find & Go - Поиск с предпросмотром и переходом

Post by John Doe »

Некорректную строку можно 'исправить'.
https://t.me/FarManager — Telegram чат

buniak_a_h
Posts: 1879
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 120 times
Been thanked: 168 times
Contact:

Find & Go - Поиск с предпросмотром и переходом

Post by buniak_a_h »

John Doe wrote:
Sat 09 May, 2020 11:23
Некорректную строку можно 'исправить'.
Видимо, не в этой теме. Вас то не забанят, а мне оно надо?

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

Find & Go - Поиск с предпросмотром и переходом

Post by John Doe »

buniak_a_h wrote:
Sat 09 May, 2020 12:46
а мне оно надо?
А вы напишите в "ту", видимо.
https://t.me/FarManager — Telegram чат

buniak_a_h
Posts: 1879
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 120 times
Been thanked: 168 times
Contact:

Find & Go - Поиск с предпросмотром и переходом

Post by buniak_a_h »

John Doe wrote:
Sat 09 May, 2020 14:01
buniak_a_h wrote:
Sat 09 May, 2020 12:46
а мне оно надо?
А вы напишите в "ту", видимо.
Уже и написал, и Вас процитировал.

Post Reply

Return to “Обсуждение макросов”