Page 20 of 28

LuaFAR Search

Posted: Fri 13 Nov, 2009 07:29
by Shmuel
Здесь можно обсуждать плагин LuaFAR Search. (Анонс).

LuaFAR Search

Posted: Sat 01 Jul, 2017 17:15
by Dennis_Moore

Latest post of the previous page:

buniak_a_h wrote: Sat 01 Jul, 2017 12:22 Вместо того, чтоб указать размер и возраст, приходится настраивать фильтр, который нужен только на один раз - для поиска.
Извините что встряю, но эту проблему можно решить макросом. По нажатию того же Alt+L можно выдавать диалог который запрашивает только то что вам нужно и по Enter создает фильтр и начинает поиск. Выше по теме несколько способов узнать ID диалога.

LuaFAR Search

Posted: Sat 01 Jul, 2017 18:22
by buniak_a_h
Dennis_Moore wrote: Sat 01 Jul, 2017 17:15можно решить макросом
Спасибо. Пока не знаю, как создать фильтр из макроса, но идея интересная.

LuaFAR Search

Posted: Sat 01 Jul, 2017 20:58
by Dennis_Moore
buniak_a_h wrote: Sat 01 Jul, 2017 18:22Спасибо. Пока не знаю, как создать фильтр из макроса, но идея интересная
Вот. Топорно, зато работает и вашу задачу решает:



Файл поместить в %FARPROFILE%\Macros\scripts, сочетание для вызова Alt+Q (из диалога поиска плагина), формат ввода такой: xxx , /xxx, xxx/xxx. Если не хотим фильтровать по одному из значений нажимаем Esc или Enter в пустом поле. Ввод не фильтруется.

Если раскомментировать строки 12 и 13 то можно будет выбрать какую дату брать (создания, изменения, доступа, чтения), еcли раскомментировать строку 34 то дата будет относительной (напр. за последие 5 дней).

LuaFAR Search

Posted: Sat 08 Jul, 2017 00:06
by Dennis_Moore
Заметил странность при использовании своего макроса из поста выше (ссылка).

Проиллюстрирую на чейнджлоге плагина. Открываю поиск в редакторе, ввожу в строку поиска 39, нажимаю Enter (макрос нажимает Alt4). Подсвечивается только одно совпадение из трех, но после нажатия стрелки вниз подсвечиваются все три. Жму Esc, подсветка найденного остается. Снова открываю поиск, ввожу 2017, опять же подсвечивается только одно совпадение из 25-ти и еще при этом остаются выделенными три найденных 39. При нажатии стрелки вниз все приходит в норму.

Если в диалоге нажимать Alt4, а не Enter который перехватывает макрос, то таких эффектов нет.

Ни в какую не могу понять в чем дело. Прошу помощи.

LuaFAR Search

Posted: Sat 08 Jul, 2017 00:25
by Shmuel
Dennis_Moore,
По умолчанию, при исполнении макроса запрещена перерисовка экрана.
Либо поставьте в макросе Flags="EnableOutput", либо замените Keys("Alt4") на Keys("EnOut Alt4").

LuaFAR Search

Posted: Sat 08 Jul, 2017 01:16
by buniak_a_h
Dennis_Moore wrote: Sat 01 Jul, 2017 20:58Вот. Топорно, зато работает и вашу задачу решает
На самом деле не так "топорно", но задача установки фильтра из макроса (более корректно) решена в макросе panelfilter.lua (Author: Maxim Gonchar; Modifications: Shmuel Zeigerman). Во всяком случае там не последовательность нажатий DOWN, TAB и т.п., а переход на элементы меню по имени (командой Menu.Select). Но - спасибо.
На самом деле хотелось бы иметь "активный" ("процедурный") фильтр: не перечень условий, а вызов некой процедура: на входе - panel.item, на выходе - visible. Так можно было бы отфильтровывать по совершенно неожиданным условиям (например, модули, отличающиеся от сохранённых в репозитории SVN/GIT).
Такая же идеология была бы полезна для раскраски файлов (например, к примеру с SVN/GIT: среди отфильтрованных файлов изменённые - одним цветом, конфликтные - другим, устаревшие - третьим и т.д.).
Может, такая возможность есть, просто я не знаю? Напрашивается...

LuaFAR Search

Posted: Sat 08 Jul, 2017 20:38
by HaRT
buniak_a_h wrote: Sat 08 Jul, 2017 01:16"активный" ("процедурный") фильтр: не перечень условий, а вызов некой процедура: на входе - panel.item, на выходе - visible
В таком виде это бы дико тормозило при большом кол-ве файлов. Если что-то подобное и делать, то фильтровать надо сразу целую директорию, а это и так можно сделать — панельным плагином.

LuaFAR Search

Posted: Sat 08 Jul, 2017 21:22
by buniak_a_h
HaRT wrote: Sat 08 Jul, 2017 20:38
buniak_a_h wrote: Sat 08 Jul, 2017 01:16"активный" ("процедурный") фильтр: не перечень условий, а вызов некой процедура: на входе - panel.item, на выходе - visible
  1. В таком виде это бы дико тормозило при большом кол-ве файлов.
    Никто ж не заставляет пользоваться такой фичей! Но... Бывает, что в не особо больших папках фильтр очень хитрый (например, *.db и чтоб было поле с именем G32, и чтоб G32 > 5). Сейчас я такие задачи решаю помещением отобранных файлов в список, который используется как временная панель. Работает, но через задний проход как-то...
  2. Если что-то подобное и делать, то фильтровать надо сразу целую директорию, а это и так можно сделать — панельным плагином.
    Вот это я не понял. Что за панельный плагин? Или имеется в виду самому написать?
  3. Кстати, интересная появилась идея: на входе - имя папки (или список всех item-ов без фильтрации); на выходе (StdOut) - список отфильтрованных item-ов. Процедура (или макрос) вызывается при смене папки либо при обновлении содержимого. Это был бы красивый компромисс: и эффективно, и гибко.

LuaFAR Search

Posted: Sat 08 Jul, 2017 21:29
by Shmuel
buniak_a_h, HaRT, нельзя ли эту интересную тему обсудить где-то в другом месте?

LuaFAR Search

Posted: Sat 29 Jul, 2017 17:26
by Mauro72
Hi Shmuel..
Update Spanish translation.

LuaFAR Search

Posted: Sat 29 Jul, 2017 18:05
by Shmuel
Mauro72 wrote: Sat 29 Jul, 2017 17:26Update Spanish translation
Many thanks.

LuaFAR Search

Posted: Mon 04 Sep, 2017 03:43
by Sikambr
Очень не хватает статистики. Сколько найдено вхождений в стольких-то файлах.

LuaFAR Search

Posted: Mon 04 Sep, 2017 06:20
by Shmuel
В режиме поиска файлов из панелей с заданным образцом поиска каждый файл ищется до первого найденного вхождения - для повышения быстродействия. Поэтому в этом режиме вывод статистики невозможен.

Можно было бы сделать опцию типа "искать все вхождения", но я не уверен, что это необходимо.

LuaFAR Search

Posted: Tue 09 Jan, 2018 20:10
by Shmuel
Плагин стал open source: https://github.com/shmuz/far_plugins

LuaFAR Search

Posted: Fri 19 Jan, 2018 08:19
by buniak_a_h
А вот я, наверно, ошибку нашёл.
Windows 10x64
Far 3.0.5123 x64
В комплекте с плагином поставляются reader.dl, rex_onig.dl, rex_pcre.dl и ucd.dl. Не знаю, как остальные, но при загрузке rex_pcre.dl возникает ошибка:
Image
Подозреваю, что ДЛЛ не 64-разрядная.

LuaFAR Search

Posted: Fri 19 Jan, 2018 08:36
by Shmuel
rex_pcre.dl работает вместе с pcre.dll той же разрядности.
Скачайте lfsearch-addon (там же, где брали плагин), вытащите оттуда 64-битные pcre.dll и onig.dll, и положите их в %FARHOME%.