LuaFAR Search

Здесь можно обсудить ваш любимый плагин.
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

LuaFAR Search

Post by Shmuel »

Здесь можно обсуждать плагин LuaFAR Search. (Анонс).
User avatar
Dennis_Moore
Posts: 295
Joined: Tue 03 Mar, 2015 19:54
Location: Kiev
Has thanked: 6 times
Been thanked: 17 times

LuaFAR Search

Post by Dennis_Moore »

Latest post of the previous page:

buniak_a_h wrote: Sat 01 Jul, 2017 12:22 Вместо того, чтоб указать размер и возраст, приходится настраивать фильтр, который нужен только на один раз - для поиска.
Извините что встряю, но эту проблему можно решить макросом. По нажатию того же Alt+L можно выдавать диалог который запрашивает только то что вам нужно и по Enter создает фильтр и начинает поиск. Выше по теме несколько способов узнать ID диалога.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

LuaFAR Search

Post by buniak_a_h »

Dennis_Moore wrote: Sat 01 Jul, 2017 17:15можно решить макросом
Спасибо. Пока не знаю, как создать фильтр из макроса, но идея интересная.
User avatar
Dennis_Moore
Posts: 295
Joined: Tue 03 Mar, 2015 19:54
Location: Kiev
Has thanked: 6 times
Been thanked: 17 times

LuaFAR Search

Post 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 дней).
Last edited by Dennis_Moore on Sun 02 Jul, 2017 09:39, edited 4 times in total.
User avatar
Dennis_Moore
Posts: 295
Joined: Tue 03 Mar, 2015 19:54
Location: Kiev
Has thanked: 6 times
Been thanked: 17 times

LuaFAR Search

Post by Dennis_Moore »

Заметил странность при использовании своего макроса из поста выше (ссылка).

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

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

Ни в какую не могу понять в чем дело. Прошу помощи.
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

LuaFAR Search

Post by Shmuel »

Dennis_Moore,
По умолчанию, при исполнении макроса запрещена перерисовка экрана.
Либо поставьте в макросе Flags="EnableOutput", либо замените Keys("Alt4") на Keys("EnOut Alt4").
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

LuaFAR Search

Post 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: среди отфильтрованных файлов изменённые - одним цветом, конфликтные - другим, устаревшие - третьим и т.д.).
Может, такая возможность есть, просто я не знаю? Напрашивается...
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

LuaFAR Search

Post by HaRT »

buniak_a_h wrote: Sat 08 Jul, 2017 01:16"активный" ("процедурный") фильтр: не перечень условий, а вызов некой процедура: на входе - panel.item, на выходе - visible
В таком виде это бы дико тормозило при большом кол-ве файлов. Если что-то подобное и делать, то фильтровать надо сразу целую директорию, а это и так можно сделать — панельным плагином.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

LuaFAR Search

Post 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-ов. Процедура (или макрос) вызывается при смене папки либо при обновлении содержимого. Это был бы красивый компромисс: и эффективно, и гибко.
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

LuaFAR Search

Post by Shmuel »

buniak_a_h, HaRT, нельзя ли эту интересную тему обсудить где-то в другом месте?
User avatar
Mauro72
Posts: 220
Joined: Wed 11 Aug, 2010 00:23
Location: Rosario, Argentina
Been thanked: 9 times

LuaFAR Search

Post by Mauro72 »

Hi Shmuel..
Update Spanish translation.
Attachments
lfs_spa.lng.7z
(2.22 KiB) Downloaded 209 times
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

LuaFAR Search

Post by Shmuel »

Mauro72 wrote: Sat 29 Jul, 2017 17:26Update Spanish translation
Many thanks.
Sikambr
Posts: 18
Joined: Fri 11 Apr, 2014 11:04

LuaFAR Search

Post by Sikambr »

Очень не хватает статистики. Сколько найдено вхождений в стольких-то файлах.
Last edited by Sikambr on Mon 04 Sep, 2017 05:57, edited 1 time in total.
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

LuaFAR Search

Post by Shmuel »

В режиме поиска файлов из панелей с заданным образцом поиска каждый файл ищется до первого найденного вхождения - для повышения быстродействия. Поэтому в этом режиме вывод статистики невозможен.

Можно было бы сделать опцию типа "искать все вхождения", но я не уверен, что это необходимо.
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

LuaFAR Search

Post by Shmuel »

Плагин стал open source: https://github.com/shmuz/far_plugins
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

LuaFAR Search

Post 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-разрядная.
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

LuaFAR Search

Post by Shmuel »

rex_pcre.dl работает вместе с pcre.dll той же разрядности.
Скачайте lfsearch-addon (там же, где брали плагин), вытащите оттуда 64-битные pcre.dll и onig.dll, и положите их в %FARHOME%.
Post Reply

Return to “Обсуждение плагинов”