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

Здесь выкладываются готовые к использованию макросы и скрипты.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 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 494 times
Last edited by John Doe on Wed 10 Jul, 2019 08:50, edited 1 time in total.
fml2
Posts: 534
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 2 times
Been thanked: 8 times

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

Post by fml2 »

Замечательный макрос, спасибо! Буду пользоваться! Часто это именно то, что надо.

У меня еще пара предложений есть:

1. (Если возможно) менять заголовочек в окне ввода фильтра в зависимости от текущего режима (сейчас там всегда "Search"). При смене режима высвечивается короткое сообщение, но если режим не меняется?

2. Если в режиме фильтра стереть все символы фильтра, т.е. сделать фильтр пустым, то, по сути, ничего не фильтруется, однако в панели рядом с символом сортировки стоит звездочка -- как будто есть какой-то фильтр. Нельзя ли эту звездочку убирать?
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

fml2 wrote: (Если возможно) менять заголовочек в окне ввода фильтра в зависимости от текущего режима
Поменять заголовок штатной панельки Search невозможно. Но цветом наверно можно поиграть.

Вообще, согласно названия темы, стоит подумать над тем, как не переключать режимы, а всегда пользоваться автофильтром вместо быстрого поиска.
(Тут возможны варианты, пока думаю как лучше)
fml2 wrote: Нельзя ли эту звездочку убирать?
А чем именно она мешает?
fml2
Posts: 534
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 2 times
Been thanked: 8 times

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

Post by fml2 »

John Doe wrote:
fml2 wrote:Source of the post Нельзя ли эту звездочку убирать?

А чем именно она мешает?
Мешает тем, что создает впечатление, что что-то отфильтровано. И надо снова вызавать фильтр, чтобы убедиться, что на самом деле ничего не фильтруется. Ведь со времени последнего редактирования фильтра может пройти какое-то время, после которого я лично уже не буду помнить, что же я там установил при последнем редактировании. Ну или если несколько экземпляров Фара открыто.

Насчет фильтра вместо поиска: я считаю, что если фильтр (а не поиск) устанавливается по умолчанию, то сохранить функцию быстрого поиска можно, но не обязательно. Клавиша переключения режимов достаточно "трудная", так что так, как оно сейчас, вполне неплохо.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

fml2 wrote: Мешает тем, что создает впечатление, что что-то отфильтровано.
А, понял наконец о какой звёздочке речь.
Конечно её не должно быть при пустом фильтре (у меня сейчас на рабочей версии не воспроизводится).
Возможно какой-то другой фильтр включен? Откройте список по CtrlI и поотключайте ненужное.
fml2 wrote: Насчет фильтра вместо поиска:
В следующей версии будет максимально упрощено отключение фильтра, после этого можно действительно попробовать отказаться от быстрого поиска.

Или же оставить быстрый поиск, назначив его (например) на RAlt.
Альтернативно: одна из функций может запускаться если набирать удерживая Alt (а если без удержания, то запускается вторая функция)
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

John Doe wrote: В следующей версии будет максимально упрощено отключение фильтра, после этого можно действительно попробовать отказаться от быстрого поиска.
Чтобы фильтр не путался под ногами, его надо автоматически отключать после любого действия.
Вот думаю, не слишком ли радикально получится...
fml2
Posts: 534
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 2 times
Been thanked: 8 times

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

Post by fml2 »

John Doe wrote:Чтобы фильтр не путался под ногами, его надо автоматически отключать после любого действия.
Вот думаю, не слишком ли радикально получится...
Думаю, будет слишком радикально. Большие изменения без действий пользователя, специально направленных на это.
fml2
Posts: 534
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 2 times
Been thanked: 8 times

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

Post by fml2 »

John Doe wrote: Конечно её не должно быть при пустом фильтре (у меня сейчас на рабочей версии не воспроизводится).
У меня воспроизводится 100%. Запускаем Фар, никакого фильтра (и поэтому звездочки) нету. Нажимаем Alt и начинаем набирать буквы f, o (в моем случае). Список файлов в панели фильтруется, рядом с n (сортировка по имени) появляется звездочка. Не выходя из режима фильтра, стираем набранные буквы f и o. Список файлов становится полным, но звездочка не пропадает. Нажимаем Esc, чтобы убрать поле ввода фильтра. Все остается как было, т.е., по сути, никакого фильтра, но звездочка имеется. При нажатии Ctrl+I вижу такую первую строчку: + _panelfilter_Right │ .............................. ... │ * Это автоматически создаваемый фильтр? Если да, то нельзя ли его как-нибудь более осмысленно назвать?
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

fml2 wrote: Большие изменения без действий пользователя, специально направленных на это.
Мы сейчас рассматриваем фильтр как замену быстрого поиска.
Быстрый поиск немодален, т.е. после перехода на файл и выполнения какого-либо действия наличие фильтра будет неожиданно.

А для "закрепления" фильтра можно выделить свою комбинацию клавиш.
fml2 wrote: У меня воспроизводится 100%
Разбираться со старой версией смысла нет, а в новой этой проблемы не будет.
fml2 wrote: Если да, то нельзя ли его как-нибудь более осмысленно назвать?
Например?
fml2
Posts: 534
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 2 times
Been thanked: 8 times

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

Post by fml2 »

John Doe wrote: Разбираться со старой версией смысла нет, а в новой этой проблемы не будет.
Хорошо, будем ждать новой версии. Тем более, что в нынешней я обнаружил еще одну странность / неинтуитивность.
John Doe wrote: fml2 wrote:Source of the post Если да, то нельзя ли его как-нибудь более осмысленно назвать?

Например?
Может, что-нибудь типа "Быстрый фильтр справа" ("Right ad hoc filter")? Ну и аналогично слева.
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

fml2 wrote: "Быстрый фильтр справа" ("Right ad hoc filter")
Тогда уж “Right-side ad hoc filter”.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

fml2 wrote: Может, что-нибудь типа "Быстрый фильтр справа" ("Right ad hoc filter")? Ну и аналогично слева.
Мне это всё равно.
Имя настраивается: local filtername="_panelfilter_"
fml2 wrote: в нынешней я обнаружил еще одну странность / неинтуитивность
?
fml2
Posts: 534
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 2 times
Been thanked: 8 times

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

Post by fml2 »

Набираем фильтр "fo". Файлы в панели фильтруются. Выходим из фильтра (нажимаем Esc). Теперь нам хочется отфильтровать файлы, начинающиеся с "g". Нажимаем Alt и, не отпуская ее, набираем g. Появляется поле фильтра, но оно пусто. g туда не вводится (т.к. файлов, начинающихця на "fog" нет?) Выход из ситуации пока такой: нажимаем и отпускаем Alt -- появляется фильтр с "fo". Стираем fo, набираем g.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

fml2 wrote: (т.к. файлов, начинающихця на "fog" нет?)
Потому что на текущей уже отфильтрованной панели нет файлов, содержащих g.
fml2 wrote: Нажимаем Alt и, не отпуская ее, набираем g.
Все возможные комбинации с Alt перехватывать мы не станем, поэтому надо предварительно сбросить имеющийся фильтр.
В следующей версии для этого будет достаточно нажать Esc в панелях.
fml2
Posts: 534
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 2 times
Been thanked: 8 times

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

Post by fml2 »

John Doe wrote: Потому что на текущей уже отфильтрованной панели нет файлов, содержащих g.
Это объяснение сошло бы, если бы ввод фильтра при уже действующем фильтре фильтровал бы "повторно" (или "дополнительным уровнем"). Но это не так: если при имеющемся фильтре "fo" ввести фильтр "*2", то показаваются все файлы на панели, имеющие 2 в имени, а не только те, что начинаются с "fo" и содержат 2.

Дождемся новой версии, зачем обсуждать уже не существующие?
Post Reply

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