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

Здесь обсуждается всё, что касается макросов.
Post Reply
buniak_a_h
Posts: 2097
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 207 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_3.7z
(27.82 KiB) Downloaded 16 times
Last edited by buniak_a_h on Mon 12 Oct, 2020 22:46, edited 27 times in total.
citRiks
Posts: 895
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 269 times
Been thanked: 46 times

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

Post by citRiks »

Latest post of the previous page:

buniak_a_h wrote: Wed 15 Apr, 2020 05:35 Вообще-то, эти строки и так Separator = true
По поводу «collapse теперь делать по какому-то нажатию» я не понял. И так делается по Enter на разделителе или по Ctrl← на любой найденной строке
да, странно получается, флаг сепаратора есть, но это явно не сепаратор почему то,
а хоткеи действительно уже есть, да, спасибо
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
citRiks
Posts: 895
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 269 times
Been thanked: 46 times

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

Post by citRiks »

buniak_a_h wrote: Wed 15 Apr, 2020 05:35 Это я не понял. Т.е. при поиске смотреть, и если файл открыт в редакторе, то искать не на диске, а в редакторе? Или искать только в редактируемом файле?
ну типа того, да это имелось ввиду
Второй случай - возьмите стандартный поиск, активируйте кнопкой Show All и прикрутить мой же макрос для синхронизации результатов поиска с редактором.
"Show All" нет редкатирования, т.е. если захотеть чего-то скопировать из найденного, то результаты Show All закроются,
а в "FindAndGo" можно сколько угодно копировать и вообще гулять в редкаторе, и он не закроется
Ну в целом можно обойтись конечно, например в поиске из шелла задать конкретное это имя файла
---
на этом пока все, остальное не сказанное и не упомянутое - значит совсем уже не важно :)
спасибо
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
buniak_a_h
Posts: 2097
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 207 times
Contact:

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

Post by buniak_a_h »

citRiks, про нумерацию: я для случая, если не вся нужная информация помещается, сделал вызов редактора в модальном режиме: Alt+F4 - и редактор вызывается (ReadOnly), и в историю не записывается. Типа просмотреть токо…
buniak_a_h
Posts: 2097
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 207 times
Contact:

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

Post by buniak_a_h »

citRiks, может, ещё не увидели такой фишки: можно пометить несколько строк (по одной в файле), нажать Enter - и откроются на редактирование все помеченные файлы.
С поиском в открытом файле - если, например, нашёл, что делать? Переключаться на редактор и позиционироваться на найденную строку? А позиция потеряна будет …
Наверно, концепцию продумать надо …
buniak_a_h
Posts: 2097
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 207 times
Contact:

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

Post by buniak_a_h »

По поводу Find All:
Была замечательная идея показывать список найденного в не-модальном диалоге. Единственное, что мешает: клик вне диалога (в данном случае - на редакторе) закрывает диалог. Об этом уже писалось, но видимо слишком сложно сделать, чтоб не закрывался. Кроме того, Always-on-Top диалог был бы тут полезен. Но это хоть обсуждалось, есть надежда…
Кстати, диалог, который выводит плагин FudioPlayer, не закрывается при клике на панели. Как это сделано? (вопрос к случайно забредшим сюда знатокам)
User avatar
HaRT
Moderator
Posts: 9568
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 112 times
Been thanked: 232 times

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

Post by HaRT »

buniak_a_h wrote: Wed 15 Apr, 2020 15:44 клик вне диалога (в данном случае - на редакторе) закрывает диалог
Именно закрывает? Например, диалог AudioPlayer в таких условиях не закрывается, а уходит под окно редактора, но всё ещё доступен через список окон по F12.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
HaRT
Moderator
Posts: 9568
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 112 times
Been thanked: 232 times

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

Post by HaRT »

buniak_a_h wrote: Wed 15 Apr, 2020 15:44 Как это сделано? (вопрос к случайно забредшим сюда знатокам)
Я не знаток, но у этого плагина открытый код — можно посмотреть, с какими флагами он создаётся, какие события как обрабатывает и т.п.
Фар есть инструмент, а не нянька. © 2009 DrKnS
buniak_a_h
Posts: 2097
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 207 times
Contact:

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

Post by buniak_a_h »

HaRT wrote: Wed 15 Apr, 2020 16:22 Именно закрывает? Например, диалог AudioPlayer
Ну вот именно закрывает. Про AudioPlayer я написал.
Вы когда-то присылали мне пример немодального диалога (он там секундочки по таймеру считал) - на нём проверил …
Мне кто-то написал, как сделать, чтоб не закрывался. Пришлось ФАР снимать - он вообще никак не закрывался:-)
HaRT wrote: Wed 15 Apr, 2020 16:26 этого плагина открытый код
Спасибо за ссылку.
citRiks
Posts: 895
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 269 times
Been thanked: 46 times

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

Post by citRiks »

buniak_a_h, HaRT,
Простейший и рабочий пример не-модального диалога:

Code: Select all

lua:far.DialogInit(win.Uuid(), -1, -1, 20, 5, nil, {{far.Flags.DI_TEXT, 1, 1, 0, 0, 0, 0, 0, 0, "abc 123"}}, far.Flags.FDLG_NONMODAL, nil)
можно перключаться на панели, редкатор, туда сюда, он продолжает быть.
Но )) когда он наверху, и мы кликнули ЗА пределом этого диалога, то он закрывается совсем
Победить это можно если сделать эту конфигу:

Я считаю впрочем что эта конфига все равно не нужна (в смысле пусть будет, но неотмеченная)
Но с другой стороны, кажется можно еще прикрутить евент МышеКлик,
который нейтрализирует это кликанье если диалог не-модальный
(это я не пробовал, говорю в теории)
Last edited by citRiks on Wed 15 Apr, 2020 17:10, edited 1 time in total.
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
citRiks
Posts: 895
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 269 times
Been thanked: 46 times

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

Post by citRiks »

buniak_a_h wrote: Wed 15 Apr, 2020 15:27 про нумерацию: я для случая, если не вся нужная информация помещается, сделал вызов редактора в модальном режиме: Alt+F4 - и редактор вызывается (ReadOnly), и в историю не записывается. Типа просмотреть токо…
да, но надо заходить в редактор, а весь смысл grep-like utilities это получить некую "суммарность",
или "вид с птичьего полета" не спускаясь на грешную землю
(что не отменяет необходимость возможности и спустится если ио когда надо)
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
citRiks
Posts: 895
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 269 times
Been thanked: 46 times

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

Post by citRiks »

buniak_a_h wrote: Wed 15 Apr, 2020 15:33 может, ещё не увидели такой фишки:
можно пометить несколько строк (по одной в файле),
нажать Enter - и откроются на редактирование все помеченные файлы.
это замечательно. проглядел немного, да, но опять же, нужен режим "с птичьего полета",
с нумерацией строк, и наверное с нумерацией резульсатов
С поиском в открытом файле - если, например, нашёл, что делать?
Переключаться на редактор и позиционироваться на найденную строку? А позиция потеряна будет …
ну если юзер сам это сделал, то и пусть позиция будет "потеряна",
может это не потеря, а юзер и хотел туда перейти?
Я если бы искал в существующем файле, и начал кликаьт на резултаты поиска,
то это и значит что ничего я не терял, а наоборот туда мне и надо :)
Наверно, концепцию продумать надо …
Ну я пока не вижу проблемы с концепцией если честно, давайте думать вместе если видите
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
buniak_a_h
Posts: 2097
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 207 times
Contact:

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

Post by buniak_a_h »

citRiks wrote: Wed 15 Apr, 2020 17:19 ну если юзер сам это сделал, то и пусть позиция будет "потеряна",
может это не потеря, а юзер и хотел туда перейти?
Наиболее естественное (мне) использование такой фишки - я что-то набираю, забыл как пишется (какие параметры), поискал, найденное отметил, вернулся и скопировал.
Впрочем, пока поиск в отрытом редакторе мне не кажется таким уж актуальным. Для этого у редактора есть вполне удобные средства. Тем более если надо именно перейти.
buniak_a_h
Posts: 2097
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 207 times
Contact:

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

Post by buniak_a_h »

citRiks, я не понял, к чему Вы пример прислали. В моих скриптах я достаточно часто использую немодальные диалоги. Поиск, например. В панельном модуле просмотра таблиц поиск по AltF7 тоже реализован немодальным диалогом. К чему этот пример?
citRiks
Posts: 895
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 269 times
Been thanked: 46 times

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

Post by citRiks »

Ну я попытался найти ответ к этой незадаче:
buniak_a_h wrote: Wed 15 Apr, 2020 15:44 Была замечательная идея показывать список найденного в не-модальном диалоге. Единственное, что мешает: клик вне диалога (в данном случае - на редакторе) закрывает диалог
Там я ответил как предотвратить закрытие немодального диалога от мыше-клика,
и это же ответ как (я думаю что) делается то же самое в АудиоПлаере
Разве не?
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
buniak_a_h
Posts: 2097
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 207 times
Contact:

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

Post by buniak_a_h »

В аудиоплейере диалог не закрывается независимо от настройки [ ] Mouse click outside a dialog closes it. Насчёт аудиоплейера - я ещё не смотрел.
citRiks
Posts: 895
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 269 times
Been thanked: 46 times

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

Post by citRiks »

buniak_a_h wrote: Wed 15 Apr, 2020 18:31 В аудиоплейере диалог не закрывается независимо от настройки
Ну значит остается вариант с нейтрализацией в AudioPlayer мыше-клика, не?
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
Post Reply

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