Синхронизация редактора с результатами поиска (Show All)

Здесь обсуждается всё, что касается макросов.
User avatar
buniak_a_h
Posts: 4502
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 240 times
Been thanked: 670 times
Contact:

Синхронизация редактора с результатами поиска (Show All)

Post by buniak_a_h »

У плагина LuaFAR Search имеется удобная фишка, почему-то не реализованная в стандартном поиске: при показе ВСЕХ найденных строк при переходе по найденным строкам редактор позиционируется на соответствующей строке. Сделал я небольшой макрос, делающий аналогичную вещь.
Макрос состоит из четырёх обработчиков событий (два для стандартного диалога поиска и два для поиска по плагину RESearch). Первый Event читает параметры поиска, второй поддерживает переход по найденным строкам. Общая функция преобразовывает строку в координаты и реализует позиционирование и раскраску найденного.




В скрипте используется мой модуль "Расширение GetMsg" Уже не используется.
EditorFindAllList.lua.1_4_1.7z
(3.86 KiB) Downloaded 135 times
Версия 1.5.1 - обещанная фильтрация по вхождению в блок (CtrlH)
EditorFindAllList.lua.1_5_1.7z
С фильтрацией. Увы, в списке айденного пропадает раскраска .
(4.39 KiB) Downloaded 151 times
Версия 1.5.5
EditorFindAllList.lua-1-5-5.7z
(4.67 KiB) Downloaded 10 times
Last edited by buniak_a_h on Fri 09 May, 2025 07:02, edited 8 times in total.
User avatar
HaRT
Moderator
Posts: 11217
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 246 times
Been thanked: 389 times

Синхронизация редактора с результатами поиска (Show All)

Post by HaRT »

Latest post of the previous page:

buniak_a_h wrote: Tue 31 Dec, 2019 15:51 указатель мышки оказывается над списком. Оба!!! Указатель в списке смещается так, чтобы соответствовать указателю мышки. Или это настраивается?
Насколько я понимаю, «в вакууме» ничто никуда не смещается, но в реальных условиях достаточно небольшого дрожания стола, чтобы породить событие движения мыши и привести к выбору другого элемента. Меня это не только в Фаре раздражает и огорчает, но переходить на трэкбол или тачпад я пока не готов. :)
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Xerox
Posts: 395
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 354 times
Been thanked: 9 times

Синхронизация редактора с результатами поиска (Show All)

Post by Xerox »

HaRT,
тут по-моему речь не про движение мыши, а наоборот что если диалог движется,
его место под мышью меняется, и тогда выбирается другой элемент.
в менюхах по моему выбранный элемент всегда следует за мышью,
если же мышь стоит а диалог сдвинулся под нее - то же самое получается
если неправильно понял - поправьте/игнорьте
Last edited by Xerox on Tue 31 Dec, 2019 16:05, edited 1 time in total.
User avatar
DrKnS
Posts: 6115
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 428 times

Синхронизация редактора с результатами поиска (Show All)

Post by DrKnS »

HaRT wrote: Tue 31 Dec, 2019 16:01 достаточно небольшого дрожания стола
Приходящие от ОС события о перемещении мыши игнорируются, пока курсор остается на том же знакоместе (т.е., в общем случае, тряхнуть должно хорошо).
User avatar
HaRT
Moderator
Posts: 11217
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 246 times
Been thanked: 389 times

Синхронизация редактора с результатами поиска (Show All)

Post by HaRT »

Xerox wrote: Tue 31 Dec, 2019 16:03 если диалог движется, его место под мышью меняется, и тогда выбирается другой элемент
Без перемещения мыши в другое знакоместо не выбирается.
Xerox wrote: Tue 31 Dec, 2019 16:03 если же мышь стоит а диалог сдвинулся под нее - то же самое получается
Нет, см. выше.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 103 times

Синхронизация редактора с результатами поиска (Show All)

Post by citRiks »

HaRT wrote: Tue 31 Dec, 2019 15:40 мне довольно и своих (простеньких), которые прижимают диалог влево/ вверх/ вправо/ вниз или центруют — в зависимости от нажатого кнопкосочетания
А нам их не покажете?
User avatar
buniak_a_h
Posts: 4502
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 240 times
Been thanked: 670 times
Contact:

Синхронизация редактора с результатами поиска (Show All)

Post by buniak_a_h »

HaRT wrote: Tue 31 Dec, 2019 16:38
Xerox wrote: Tue 31 Dec, 2019 16:03 если диалог движется, его место под мышью меняется, и тогда выбирается другой элемент
Без перемещения мыши в другое знакоместо не выбирается.
Да-да, именно это я и имел в виду. Ну да, сразу перемещаться по списку не начнет. Но представьте - окно сместилось так, что указатель мыши закрыл часть текста первой позиции списка. Юзер захочет просто сдвинуть - первый станет активным, редактор "прыгнет" на другое место, которое - вдруг - окажется опять под диалогом, диалог прыгнет, а юзер ещё двигает мыша, куда попадает - фих знает … Короче, сценарий стихийного бедствия на одном мониторе.
User avatar
HaRT
Moderator
Posts: 11217
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 246 times
Been thanked: 389 times

Синхронизация редактора с результатами поиска (Show All)

Post by HaRT »

citRiks wrote: Tue 31 Dec, 2019 17:01 А нам их не покажете?
Покажу, но не в этом году и не в этой теме.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Xerox
Posts: 395
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 354 times
Been thanked: 9 times

Синхронизация редактора с результатами поиска (Show All)

Post by Xerox »

В принципе ХаРТ и ДрКнс были правы что мышь на самодвигающиеся под ей менюхи не так уж легко влияет, надо ее реально сдвинуть, но это все же возможно случайно как-то итп, как Буняк говорил.
User avatar
Xerox
Posts: 395
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 354 times
Been thanked: 9 times

Синхронизация редактора с результатами поиска (Show All)

Post by Xerox »

Моя идея/предложение для дальнейшего развития
Может быть сделать фильтрацию редактора по найденому, как например в FilterLines (lua-script)?
User avatar
Xerox
Posts: 395
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 354 times
Been thanked: 9 times

Синхронизация редактора с результатами поиска (Show All)

Post by Xerox »

buniak_a_h wrote: Tue 31 Dec, 2019 06:27 Версия 1.5.1 - сделана фильтрация по вхождению в блок. Увы, после обновления списка теряется раскраска найденных образцов в списке найденных. Ели кто знает, как с этим бороться - поможите кто чем может! Нашёл, но уже не сегодня…
Удалось в конечно итоге?
В версии 1.5.1 там я не до конца понял фильтрацию, и чего это должна быть фильтрация
КтрлХ - упомянут, нa кажется что ничего не делает
С другой стороны, через Альт+Буква, да, произойдет фильтрация диалога(меню) ПО ОДНОЙ ЭТОЙ БУКВЕ ) (?)
С третьей стороны, штатный КтрлАльтФ тоже прекрасно фильтрует результаты
(или это не штатный, а какой-то другой скрипт который у меня есть,
но все Ок в общем с филтрацией результов поиска дв диалоге по КтрлАльтФ)

Ну в обще, что бы реально буыло бы полезно, это отфилтровать сам редактор по найденному, желательно еслиможно сохраняя 1/2/3 линии сверху и снизу от найденного
Кстати, ваш FindAndGo который подобно тоже ищет (grep-alike) звучит многообещающе, спасибо, к сожалению руки не дошли протестрировать в полной мере
User avatar
buniak_a_h
Posts: 4502
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 240 times
Been thanked: 670 times
Contact:

Синхронизация редактора с результатами поиска (Show All)

Post by buniak_a_h »

Xerox wrote: Fri 03 Jan, 2020 09:28 Моя идея/предложение для дальнейшего развития
Может быть сделать фильтрацию редактора по найденому, как например в FilterLines (lua-script)?
Я попробовал упомянутый скрипт. Написал в его тему замечание, делающее использование невозможным. Не нашёл я отмены фильтрации, я по UnDo непонятно, сколько раз (нету блока begin-end).
Xerox wrote: Fri 03 Jan, 2020 09:49
buniak_a_h wrote: Tue 31 Dec, 2019 06:27 Версия 1.5.1 - сделана фильтрация по вхождению в блок. Увы, после обновления списка теряется раскраска найденных образцов в списке найденных. Ели кто знает, как с этим бороться - поможите кто чем может! Нашёл, но уже не сегодня…
Удалось в конечно итоге?
Удалось при включении фильтра. При выключении раскраска пропадает.
buniak_a_h wrote: Tue 31 Dec, 2019 06:27 В версии 1.5.1 там я не до конца понял фильтрацию, и чего это должна быть фильтрация
КтрлХ - упомянут, нa кажется что ничего не делает
Мысль была при наличии отмеченного блока оставлять только те строки, которые входят в блок. Типа "искать в отпеченном". У меня работает.
User avatar
buniak_a_h
Posts: 4502
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 240 times
Been thanked: 670 times
Contact:

Синхронизация редактора с результатами поиска (Show All)

Post by buniak_a_h »

Вышли версии 1.5.3 и 1.5.4.
Версия 1.5.3
  1. В диалоге поиска текста EditorSearch начиная с некоторой версии ФАРа изменились позиции элементов. В этой версии учтены эти перемены, но без учёта версии ФАРа.
  2. Изменился формат списка найденных строк (разделитель между строкой и позицией изменился с ":" на "│"). Изменения отражены в шаблоне поиска/разбора строки списка.
Версия 1.5.4
  1. Исправлен разбор элемента МЕНЮ - списка найденных вхождений. Для ФАРа версии позже 6473 номер строки и номер позиции занимают фиксированные позиции (1-6 и 7-11 соответственно) в элементе списка.
User avatar
HaRT
Moderator
Posts: 11217
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 246 times
Been thanked: 389 times

Синхронизация редактора с результатами поиска (Show All)

Post by HaRT »

buniak_a_h wrote: Tue 06 May, 2025 02:51 Для ФАРа версии позже 6473 номер строки и номер позиции занимают фиксированные позиции (1-6 и 7-11 соответственно) в элементе списка.
Вы уверены, что эти позиции фиксированные вне зависимости от количества строк в файле и длины этих строк? Просто в ходе реализации обсуждалась именно адаптивная ширина.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4502
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 240 times
Been thanked: 670 times
Contact:

Синхронизация редактора с результатами поиска (Show All)

Post by buniak_a_h »

HaRT wrote: Tue 06 May, 2025 03:40 обсуждалась именно адаптивная ширина.
1. Я так понял, что "адаптивная ширина" касательно "внешнего" представления номеров (т.е. как это выглядит на экране, т.к. речь идёт об экономии экранного пространства). Например, у меня номер строки выводится в 3 цифры, номер позиции - в две. При этом у "внутреннем" значении пункта МЕНЮ выделено по 5 символов на счётчик. И да, что будет, если номера превысят 5 цифр, я не знаю. Надеюсь, что это произойдёт не скоро. В этом случае, надеюсь, пострадает только позиционирование.
Самое для меня странное - это то, что автор изменений (Kadaner) указывает в качестве причины экономию памяти:
Kadaner wrote: Tue 06 May, 2025 01:41 Я регулярно работаю с меню, содержащими десятки тысяч "пунктов", так что эти байты накапливаются.
Хотя вроде как фиксированная ширина счётчиков - это как раз расход.
User avatar
Kadaner
Posts: 52
Joined: Sun 28 Jan, 2018 05:00
Has thanked: 4 times
Been thanked: 3 times

Синхронизация редактора с результатами поиска (Show All)

Post by Kadaner »

buniak_a_h wrote: Tue 06 May, 2025 03:56 Хотя вроде как фиксированная ширина счётчиков - это как раз расход.
Раньше на номер строки, номер колонки, двоеточие-разделитель и вертикальную чёрточку выделялось всегда ровно 13 позиций, как в строке пункта меню, так и на экране. Если бы образец был найден в позиции 100000 сроки 500000, колонка на экране выглядела бы "сломанной".

Сейчас в строке пункта меню, на номер строки выделяется столько позиций, сколько может понадобиться, учитывая количество строк в файле. Например, если в файле 100 строк, будет выделено 3 позиции, если 500000, то 6. На номера колонок всегда выделяется 6 позиций, потому, что мы не знаем (без просмотра всех строк, что дорого), максимальную длину строки. Разделители вообще не занимают места во внутреннем представлении. Так что кое-что удаётся сэкономить, хотя немного.
Last edited by Kadaner on Wed 07 May, 2025 00:34, edited 2 times in total.
User avatar
buniak_a_h
Posts: 4502
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 240 times
Been thanked: 670 times
Contact:

Синхронизация редактора с результатами поиска (Show All)

Post by buniak_a_h »

Версия 1.5.5
Опять исправлен разбор элемента в связи с этим:
Kadaner wrote: Wed 07 May, 2025 00:29 Сейчас в строке пункта меню, на номер строки выделяется столько позиций, сколько может понадобиться, учитывая количество строк в файле.
… … …
На номера колонок всегда выделяется 6 позиций
Исхожу из предположения, что реальный номер позиции занимает меньше 6-ти символов; соответственно, между номером строки и номером позиции всегда будет хотя бы один пробел
Last edited by buniak_a_h on Fri 09 May, 2025 07:04, edited 1 time in total.
Post Reply

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