Автофильтр вместо быстрого поиска

Здесь выкладываются готовые к использованию макросы и скрипты.
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Автофильтр вместо быстрого поиска

Post by John Doe »

Предлагаемый набор макросов реализует в панелях автофильтр, применяющийся динамически, по мере набора текста.
В качестве поля ввода используется панель Быстрого поиска (Search).
Автофильтр может использоваться как вместо Быстрого поиска, так и независимо от него.

Использование:
  • Клавиша активации: Alt (одиночное нажатие) в панелях — открывает панельку автофильтра.
    — Если в активной панели в настоящий момент не установлен фильтр, то подставляется маска *.
    — Если панель уже отфильтрована, то подставляется строка активного фильтра (по возможности: ).
  • По умолчанию действия левой и правой клавиши несколько отличаются:
    • LAlt запускает автофильтр в "немодальном" режиме, удобном для использования вместо Быстрого поиска:
      NB! При закрытии панельки (по Esc, или после выполнения какого-либо действия) фильтр панели сразу снимается.
    • RAlt запускает автофильтр в "постоянном" режиме, т.е. фильтр панели панели не сбросится до тех пор, пока пользователь не снимет его явно.
      NB! Для быстрого снятия фильтра достаточно нажать Esc в панелях.
    • Любое из действий (или оба) можно переназначить на другую комбинацию клавиш:
  • В панельке автофильтра действуют те же клавиши, что и при Быстром поиске, в частности:
    Большинство остальных клавиш передаются в панели, выполняя соответствующие действия в панелях, при этом панелька автофильтра закрывается.
    NB: есть возможность в options задать список клавиш, которые не будут закрывать автофильтр:
Дополнительно:

Credits:

Требования: FAR 3.0 build >= 5416
Attachments
PanelAutoFilter.lua
v2.9.3
(10.76 KiB) Downloaded 784 times
Last edited by John Doe on Wed 10 Jul, 2019 08:50, edited 1 time in total.
User avatar
HaRT
Moderator
Posts: 11458
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

Автофильтр вместо быстрого поиска

Post by HaRT »

Latest post of the previous page:

buniak_a_h wrote: Fri 25 Nov, 2022 17:38 В "быстром поиске" это - вообще не маска
С учётом звёздочки и вопросика как раз маска (wildcard pattern) в её базовом ДОСовом понимании. Просто, вероятно, никто не прикрутил в этом месте «расширенные» фаровские маски.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
goran
Posts: 11
Joined: Thu 19 May, 2016 23:07
Location: Odessa
Has thanked: 1 time
Been thanked: 1 time

Автофильтр вместо быстрого поиска

Post by goran »

HaRT wrote: Fri 25 Nov, 2022 13:45 Да, к сожалению, тут, оказывается, не ввести ни несколько масок, ни регулярное выражение.
И двойную кавычку тоже, почему я и предложил слеш как разделитель нескольких масок (чтобы ввод слеша обозначал, что дальше начнётся ввод следующей маски), поскольку запятая или точка с запятой могут быть частью имени файла. Хотя конечно с учётом того, что в стандартном синтаксисе слешами выделяются регулярные выражения, решение так себе. Но как это можно переделать под стандартный синтаксис с сохранением с сохранением как удобства использования, так и возможности использования запятой или точки с запяток в качестве имени файла, я честно говоря плохо себе представляю. Начинать ввод не с *, а с "*", с позиционированием курсора после звёздочки,как вариант? Такое можно себе представить, и дальше пофантазировать, как должны вести себя как UI, так и логика обработки не до конца введенных масок (у меня даже за несколько минут обдумывания появились некоторые идеи по этому поводу), но это действительно будет радикальное усложнение существующего кода.
HaRT wrote: Fri 25 Nov, 2022 18:37 С учётом звёздочки и вопросика как раз маска (wildcard pattern) в её базовом ДОСовом понимании.
Скажем так, почти маска, с учётом того, что в конце всегда находится "неявная" звёздочка.
Last edited by goran on Sat 26 Nov, 2022 06:01, edited 3 times in total.
User avatar
HaRT
Moderator
Posts: 11458
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

Автофильтр вместо быстрого поиска

Post by HaRT »

goran wrote: Sat 26 Nov, 2022 05:55 в стандартном синтаксисе слешами выделяются регулярные выражения
Более того,
HaRT wrote: Fri 25 Nov, 2022 13:50 На странице Справки про быстрый поиск файлов в панели (@FastFind) не указано, что если в конце маски дописать прямой (/) или обратный (\) слэш, то поиск и перебор будут ограничены директориями.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Alexander84
Posts: 165
Joined: Fri 01 May, 2009 06:38
Has thanked: 22 times
Been thanked: 3 times

Автофильтр вместо быстрого поиска

Post by Alexander84 »

Фар 3.0.6675, скрипт Panel.AutoFilter.lua 2.9.3 показывает теперь ошибку при поиске.



Может быть, это связано с недавним изменением?
drkns 2026-03-27 20:33:11+00:00 - build 6669
1. Add upper limit to API struct size checks to detect uninitialized memory.
This means that some buggy plugins might suddenly stop working. C'est la vie.
Shmuel
Posts: 7244
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 48 times
Been thanked: 636 times

Автофильтр вместо быстрого поиска

Post by Shmuel »

Alexander84,
Сейчас попробовал, скачал версию 2.9.3.
  1. Ошибка при поиске у меня не возникает
  2. У вас на скриншоте указана ошибка на строке 47, но там нету "band", там только "end". Видимо у вас модифицированная версия скрипта.
Shmuel
Posts: 7244
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 48 times
Been thanked: 636 times

Автофильтр вместо быстрого поиска

Post by Shmuel »

Alexander84,
Ошибку воспроизвёл, она имеет место, начиная с билда 6673.
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Автофильтр вместо быстрого поиска

Post by John Doe »

Строку 85 надо заменить на

Code: Select all

local MaskPos,AttrPos,DirsPos = 6,30,9
https://t.me/FarManager — Telegram чат
Post Reply

Return to “Полезные макросы и скрипты”