Page 3 of 6

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

Posted: Sun 25 Aug, 2019 17:16
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 ниже)




Попутно в модуле несколько возможно полезных фишек:
1. Заменитель ("расширитель") far.Menu (функция far_Menu)
2. "Прослойка" для удобства создания элементов диалога (функция DialogItem)
3. Функция для проверки флага (TestFarFlag)
Добавлен модуль TmpPanelUtils. В модуле реализованы 3 функции:
  • переключение на временную панель;
  • добавление файлов (по списку) на временную панель (возможно, с предварительной очисткой панели);
  • удаление файлов (по списку) из временной панели. Файлы в списке могут быть регэкспами (если они имеют формат /шаблон/параметр
--

В модуль добавлены кнопкосочетания CtrlShiftLeft и CtrlShiftRight (как расширение CtrlLeft и CtrlRight) - "Свернуть все" и "Распахнуть все". Сам скрипт при этом не изменился. Совместимость с предыдущими версиями гарантируется.
Find_n_Go.1_0_13.7z
(32.46 KiB) Downloaded 20 times
BaxUtils.lua
Модуль, реализующий Expand all и Collapse all
(53.17 KiB) Downloaded 11 times

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

Posted: Fri 01 Nov, 2019 07:56
by stefanenko

Latest post of the previous page:

У меня вот так получается.
2019-11-01_16-50-58.png
Экран 1280х1024
Windows 10
Снизу открыл настройки ConEmu (может в нем дело). Хотя и без него при уменьшении ширины экрана все ломается.

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

Posted: Fri 01 Nov, 2019 09:32
by John Doe
А какой смысл экономить вертикальный размер диалога?

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

Posted: Fri 01 Nov, 2019 13:08
by buniak_a_h
stefanenko wrote:
Fri 01 Nov, 2019 07:56
Экран 1280х1024
Экран значения не имеет, интереснее ширина и высота ФАРа в знакоместах . Наберите в командной строке
lua:=Far.Width, Far.Height
и напишите, что говорит. Ну и проверьте, действительно ли у Вас версия 1.0.7 - написано в строке 97 . Потому что у меня при Far.Width=105 тоже под ConEmu получается так:
image.png
(Стрелкой показано, что Plain text перенесся)

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

Posted: Fri 01 Nov, 2019 13:18
by buniak_a_h
John Doe wrote:
Fri 01 Nov, 2019 09:32
А какой смысл экономить вертикальный размер диалога?
А я не понял вопроса.
Если Вы имеете в виду, что перенести сразу, то просто некрасиво, когда связанные в одну группу радиокнопки расположены вертикально. Когда это - вынужденно, приходится мириться.

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

Posted: Fri 01 Nov, 2019 13:27
by John Doe
А мне например наоборот, предпочтительнее столбцом, нагляднее.
И только если группы две - тогда вторым столбцом.

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

Posted: Fri 01 Nov, 2019 13:28
by buniak_a_h
stefanenko,
buniak_a_h wrote:
Fri 01 Nov, 2019 13:08
проверьте, действительно ли у Вас версия 1.0.7
Ещё проверьте, новые ли модули из архива (%FARPROFILE%\Macros\modules\BAX\BaxUtils.lua и %FARPROFILE%\Macros\modules\BAX\GetMsg.lua)

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

Posted: Fri 01 Nov, 2019 13:34
by buniak_a_h
John Doe wrote:
Fri 01 Nov, 2019 13:27
А мне например наоборот, предпочтительнее столбцом, нагляднее.
И только если группы две - тогда вторым столбцом.
Групп две, и перед каждой заголовок.

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

Posted: Fri 01 Nov, 2019 13:46
by HaRT

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

Posted: Fri 01 Nov, 2019 13:49
by John Doe
Групп две, и перед каждой заголовок.
Вот как по мне - два столбца было бы в 10 раз лучше, чем две строки.
buniak_a_h wrote:
Fri 01 Nov, 2019 13:34
В стабильной версии обе отрабатывают нормально.
Попробуйте настройки по умолчанию. Если поможет, то см. System.Executor.*

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

Posted: Fri 01 Nov, 2019 13:53
by buniak_a_h
HaRT wrote:
Fri 01 Nov, 2019 13:46
Пробелы в значении переменной есть? Если да, то дело в них, и надо закавычить.
Спасибо. Забыл посмотреть, что в %FarProfile%

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

Posted: Fri 01 Nov, 2019 14:30
by stefanenko
buniak_a_h wrote:
Fri 01 Nov, 2019 13:28
Ещё проверьте, новые ли модули
Да, извиняюсь. Мой косяк. стояла версия 1.06
После установки 1.07 стала вылазить ошибка

Code: Select all

...ing\Far Manager\Profile\Macros\scripts\Bax\Find_n_Go.lua:211: attempt to index local 'ListItems' (a nil value) stack traceback:
...ing\Far Manager\Profile\Macros\scripts\Bax\Find_n_Go.lua: in function 'Dialog_Exec'
...ing\Far Manager\Profile\Macros\scripts\Bax\Find_n_Go.lua:918: in function <...ing\Far Manager\Profile\Macros\scripts\Bax\Find_n_Go.lua:917>
От нее избавился исправлением на Checked=0 и Checked=1 как мы выше переписывались.
Итог - все работает. В диалоге опции переносятся. Спасибо!

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

Posted: Fri 01 Nov, 2019 14:49
by buniak_a_h
stefanenko wrote:
Fri 01 Nov, 2019 14:30
После установки 1.07 стала вылазить ошибка
Спасибо, исправил...

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

Posted: Fri 01 Nov, 2019 21:00
by citRiks
buniak_a_h,

А у меня 1.08 что-то не взлетает: .

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

Posted: Fri 01 Nov, 2019 21:17
by buniak_a_h
citRiks wrote:
Fri 01 Nov, 2019 21:00
buniak_a_h,

А у меня 1.08 что-то не взлетает: .
У Вас, видимо, старая %FARPROFILE%\Macros\modules\BAX\GetMsg.lua
Последней строкой д.б. return GetMsg.

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

Posted: Fri 01 Nov, 2019 21:19
by buniak_a_h
citRiks, P/S. Если это так, то проверьте - там и BaxUtils изменились...

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

Posted: Fri 01 Nov, 2019 21:53
by citRiks
В модуль GetMsg.lua добавил последнюю строку: return GetMsg и макрос заработал.

В BaxUtils.lua последние строки:

Code: Select all

return _G.BAX.BaxUtils
else -- Не модуль - для отладки
 --------- Конец отладки ---------
 return
end
end