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

Здесь обсуждается всё, что касается макросов.
Post Reply
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 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_7.7z
(31.34 KiB) Downloaded 20 times
Last edited by buniak_a_h on Wed 07 Feb, 2024 18:16, edited 31 times in total.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

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

Post by citRiks »

Latest post of the previous page:

buniak_a_h,

После установки обновления, стала вылезать ошибка с другим Вашим скриптом.
Возможно модули недостаточно чётко синхронизированы с макросами?
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

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

Post by buniak_a_h »

citRiks, да, меня раскритиковали за то, что я свои функции, определённые в модулях, записывал в глобальную таблицу _G.BAX . Я стал убирать, а некоторые старые макросы расчтаны были на это - стали вылетать.
Это - копирование файлов со временной панели с сохранением структуры? Наверно, надо загрузить новую версию … Гляну.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

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

Post by buniak_a_h »

citRiks, у меня проблема. Не могу найти скрипта CopyFiles.TempPanel.lua … Видимо, у меня его уже нету. Не могли бы Вы или прислать (в личку), или (если не потерялось) написать, откуда брали?
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

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

Post by buniak_a_h »

citRiks, возьмите версию 1.5.2 . скрипта CopyFiles.TempPanel.lua
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

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

Post by buniak_a_h »

Опубликована версия 1.0.13. Исправлен вызов panel.GetPanelInfo в связи с новыми требованиями к параметрам
DV
Posts: 455
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 31 times
Been thanked: 15 times

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

Post by DV »

Спасибо за макрос! Попробовал, есть несколько пожеланий:
1. Добавить возможность Свернуть Все / Развернуть Все (полезно, когда в окне результатов очень много элементов)
2. Добавить возможность фильтрации (тот же стандартный Ctrl+Alt+F) или поиска в окне результатов (полезно, когда в окне результатов очень много элементов)
3. Что-то у меня макрос не подружился с кириллицей:
Image
Файл "ContextMenu-Rus.txt" имеет кодировку 1251...
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

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

Post by buniak_a_h »

DV wrote: Fri 03 Jan, 2020 22:59 1. Добавить возможность Свернуть Все / Развернуть Все (полезно, когда в окне результатов очень много элементов)
Сам собирался сделать. Спасибо за (ой!)
DV wrote: Fri 03 Jan, 2020 22:59 2. Добавить возможность фильтрации (тот же стандартный Ctrl+Alt+F) или поиска в окне результатов (полезно, когда в окне результатов очень много элементов)
Фильтр, вроде, работает (тока-што попробовал), и как раз CtrlAltF. Правда, не отображается. Отображается только когда отфильтрованы все строки. Причём оно само, я к этому усилий не прикладывал…
DV wrote: Fri 03 Jan, 2020 22:59 3. Что-то у меня макрос не подружился с кириллицей:
В форме инициализации поиска есть радио-бутоны - переключение кодировки. Отсюда вопросы:
1. Какая кодировка была выбрана радиобутонами при начале поиска?
2. В какой кодировке файл Docs\ContextMenu-Rus.txt (ну, тот что неправильно кириллицу отобразил?
Небольшое замечание. Там есть вариант Auto- так вот он не отлажен до конца. Более того, я его даже не пробовал - написал чисто теоретически. Тупо открываю в редакторе, нём же делаю поиск. В надежде, что редактор-то уж определит кодировку правильно. У меня самого настроены кодировки в зависимости от расширения, как правило это спасает. Правда, в некоторых lua-скриптах, поставляемых с некоторыми плагинами, применена ASCII-кодировка. Ну... Что тут поделать …
Первое замечание
Второе замечание -
DV
Posts: 455
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 31 times
Been thanked: 15 times

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

Post by DV »

buniak_a_h wrote: Fri 03 Jan, 2020 23:34Фильтр, вроде, работает (тока-што попробовал), и как раз CtrlAltF. Правда, не отображается
Точно! Я увидел, что фильтр не отображается - и подумал, что он не работает. Визуализация не помешала бы :)
buniak_a_h wrote: Fri 03 Jan, 2020 23:341. Какая кодировка была выбрана радиобутонами при начале поиска?
2. В какой кодировке файл Docs\ContextMenu-Rus.txt
Была выбрана та, что по умолчанию - Все(All). Это с ней так.
Что интересно, с Авто(Auto) отображает нормально (правильно).
Кодировка файла - стандартная Windows-1251. Я потому и удивился.
Last edited by DV on Fri 03 Jan, 2020 23:49, edited 1 time in total.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

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

Post by buniak_a_h »

DV wrote: Fri 03 Jan, 2020 23:48 Была выбрана та, что по умолчанию - Все(All). Это с ней так.
Что интересно, с Авто(Auto) отображает нормально (правильно).
Кодировка файла - стандартная Windows-1251. Я потому и удивился.
Я, возможно, неправильно сформулировал. [ All ] означает поиск во всех трёх кодировках. Как только найденный образец будет найден, результаты будут сформированы. При этом если поиск не зависит от кодировки (как у Вас - ищется строка на латинице, соответственно, она найдена независимо от кодировки), то могут быть глюки. Я не знаю, как определить кодировку. Единственное, что пришло в голову - это анализировать первые 3 байта на BOM для UTF-8. Открывать каждый раз редактор - получается, вроде, накладно. Принимаются любые идеи. Возможно, имеет смысл уже в результате сделать переключение кодировки вручную. Но я пока не готов. Как определяет кодировку сам ФАР - я не знаю (да он зачастую ошибается). Может, есть какой системный вызов? Если кто ответит - сделаю.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

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

Post by buniak_a_h »

DV wrote: Fri 03 Jan, 2020 22:59 1. Добавить возможность Свернуть Все / Развернуть Все (полезно, когда в окне результатов очень много элементов)
Реализовано (заменой модуля BaxUtils). Можно просто заменить. Номер версии модуля пока не менял. Если соберусь делать "нормальную" библиотеку своих модулей - актуализирую номер версии.
Функции Expand all и Collapse all "повешены" на CtrlShiftLeft / CtrlShiftRight (аналогично Expand / Collapse с добавлением Shift).
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

На скриншоте выше видно что правая рамка не на месте, и что вы по какой-то причине не хотите использовать сепараторы.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

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

Post by buniak_a_h »

John Doe wrote: Sat 04 Jan, 2020 10:29 На скриншоте выше видно что правая рамка не на месте, и что вы по какой-то причине не хотите использовать сепараторы.
Правую рамку я уже (у себя) исправил. Про сепараторы не понял. Изначально список и "подвал" разделялись сепаратором (DI_TEXT с флагом DIF_SEPARATOR), но потом я изменил цвет "подвала" и внёс его в рамку.
Если сообщение "родилось" по причине не-визуализации фильтра, то, как выяснилось, я его (фильтр) вывожу в первую строку, и DI_LIST также с первоё строки вывожу. В результате фильтр "затирается". Сейчас я переделываю работу с фильтрацией.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

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

Post by citRiks »

Только что дошли руки попробовать как следует, скажу вам - СУПЕР
Одна из лучших реализаций GREP-а в ФАРе, уря!
Лишь небольшие придирки:
* Фильтр результатов сейчас невидим, сделать видимым
* Диалог результатов раскрывать на всю ширину ФАРа, или переключаться на всю ширину
* В диалог результатов добавить нумерацию строк
* Разделитель файлов, на котором можно сделать collapse, сделать как и предлагал @JD, type=separator
* .. и тогда collapse теперь делать по какому-то нажатию, в принципе любому, на ваш выбор

Ну пожаааалуста ))

И еще вот, но это я не знаю, наверное будет труднee?
Интегрировать с редактором/вьювером,
так чтобы тот же или похожий диалог вызывался на открытом файле
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

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

Post by buniak_a_h »

citRiks wrote: Tue 14 Apr, 2020 23:21 Только что дошли руки попробовать как следует, скажу вам - СУПЕР
Одна из лучших реализаций GREP-а в ФАРе, уря!
Спасибо на добром слове! :-)
Смешно сказать, но сам этим скриптом пользуюсь часто…
citRiks wrote: Tue 14 Apr, 2020 23:21 Лишь небольшие придирки:
* Фильтр результатов сейчас невидим, сделать видимым
Надо что-то придумывать: либо делать (симулировать) фильтрацию вручную, либо пожертвовать заголовком окна. Я пробовал, честно. С наскока не всё получилось, потом забросил…
citRiks wrote: Tue 14 Apr, 2020 23:21 * Диалог результатов раскрывать на всю ширину ФАРа, или переключаться на всю ширину
Ок, сделаю.
citRiks wrote: Tue 14 Apr, 2020 23:21 * В диалог результатов добавить нумерацию строк
Я пока не знаю, зачем, но если надо - сделаю настройку. Просто горизонтального скроллинга в "подвале" нет, а номер строки будет отжирать полезное место.
citRiks wrote: Tue 14 Apr, 2020 23:21 * Разделитель файлов, на котором можно сделать collapse, сделать как и предлагал @JD, type=separator
* .. и тогда collapse теперь делать по какому-то нажатию, в принципе любому, на ваш выбор
Вообще-то, эти строки и так Separator = true
По поводу «collapse теперь делать по какому-то нажатию» я не понял. И так делается по Enter на разделителе или по Ctrl← на любой найденной строке.
citRiks wrote: Tue 14 Apr, 2020 23:21 И еще вот, но это я не знаю, наверное будет труднее?
Интегрировать с редактором/вьювером,
так чтобы тот же или похожий диалог вызывался на открытом файле
Это я не понял. Т.е. при поиске смотреть, и если файл открыт в редакторе, то искать не на диске, а в редакторе? Или искать только в редактируемом файле?
Второй случай - возьмите стандартный поиск, активируйте кнопкой Show All и прикрутить мой же макрос для синхронизации результатов поиска с редактором.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

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

Post by citRiks »

buniak_a_h wrote: Wed 15 Apr, 2020 05:35 * В диалог результатов добавить нумерацию строк

Я пока не знаю, зачем, но если надо - сделаю настройку. Просто горизонтального скроллинга в "подвале" нет, а номер строки будет отжирать полезное место.
думаю что польза есть, ну можно еще номер строки ставить только в самом списке,
насчет места - можно сделать номер строки только в списке найденного, и/или сделать горизнтальлный скроллинг,
но согласен что это не must feature в принципе, если не особо укладывается в концепт
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

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

Post by citRiks »

buniak_a_h wrote: Wed 15 Apr, 2020 05:35 Вообще-то, эти строки и так Separator = true
По поводу «collapse теперь делать по какому-то нажатию» я не понял. И так делается по Enter на разделителе или по Ctrl← на любой найденной строке
да, странно получается, флаг сепаратора есть, но это явно не сепаратор почему то,
а хоткеи действительно уже есть, да, спасибо
Post Reply

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