Панель для результатов поиска файлов

Здесь выкладываются готовые к использованию макросы и скрипты.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Панель для результатов поиска файлов

Post by IgorZ »

Описание:
Скрипт является панельным модулем, предназначенным заменять временную панель при выводе результатов поиска файлов. Основные отличия:
  • форма вывода информации приближёна к формату результатов поиска в диалоге поиска Far;
  • функциональность скрипта, в отличие от стандартной временной панели, ограничена реальными файлами;
  • работа с файлами внутри архивов.


Требуемая версия Far 3.0.5182+.

Замечание: скрипт передаёт список содержимого плагину "Временная панель" через файл. Сборки плагина 107-109 при заполнении Временной панели содержимым из файла для каждого элемента заполняют APanel.UNCPath полным именем (включая абсолютный путь) файла-списка. Если это может сломать работу Ваших скриптов, используйте сборку Временной панели 106 от более ранней версии Far, а лучше перейдите на Far 3.0.5641+, содержащий Временную панель сборки 110+ с устранённой вышеописанной особенностью.



Attachments
TmpPanel.1.3.5.7z
(14.48 KiB) Downloaded 169 times
Last edited by IgorZ on Thu 12 May, 2022 11:40, edited 23 times in total.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Панель для результатов поиска файлов

Post by citRiks »

Latest post of the previous page:

IgorZ,
да, сейчас чудесным образом не тормозит
можешь ли прокомментировать в чем было дело и где сидит изменение?
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Панель для результатов поиска файлов

Post by IgorZ »

citRiks wrote: Fri 28 Feb, 2020 10:09 IgorZ,
да, сейчас чудесным образом не тормозит
можешь ли прокомментировать в чем было дело и где сидит изменение?
Избавился от сканирования списка файлов на отсутствующие (раньше делался при каждом запросе списка файлов от Far к модулю, сейчас изменил алгоритм избавления от физически отсутствующих файлов) и выбросил довольно прожорливый (как оказалось) UpdatePanel, который раньше стоял "на всякий случай".
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Панель для результатов поиска файлов

Post by IgorZ »

Версия 1.2.3 -
  • Исправлено чтение файлов с временной панели. Ранее в некоторых случаях могли быть различные случайные глюки. Теперь, вроде, нет.
  • А на третий день Зоркий Глаз заметил, что в камере четвёртой стены нет Far передаёт совершенно корректно всю информацию о файлах, найденных в архивах, кроме собственно имени файла. Так что теперь дополнительно к предоставленной Far-ом информации читаются только имена файлов. Нужды в запуске 7zip или принудительной установке колонок списка найденных файлов (а также связанных с этим колдунств) больше нет. Код проще, а информации о файлах в архивах больше (в соответствующих режимах).
  • Прочий разный мелкий рефакторинг.
ccaid
Posts: 908
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 24 times
Been thanked: 6 times

Панель для результатов поиска файлов

Post by ccaid »

IgorZ wrote: Wed 17 Apr, 2019 12:26 Требуемая версия Far 3.0.5182+.
5356 — в целом скрипт работает, но есть глюк. для элементов временной панели, открытой из скрипта по AltShiftF5/6, поле UNCPath не пустое (как в обычной временной панели, или как в панели самого скрипта), а заполнено путем к временному файлу Far со списком файлов панели. это нарушает работу скриптов, использующих это поле.
Фар делают добрые люди
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Панель для результатов поиска файлов

Post by IgorZ »

ccaid wrote: Mon 10 Aug, 2020 13:27
IgorZ wrote: Wed 17 Apr, 2019 12:26 Требуемая версия Far 3.0.5182+.
5356 — в целом скрипт работает, но есть глюк. для элементов временной панели, открытой из скрипта по AltShiftF5/6, поле UNCPath не пустое (как в обычной временной панели, или как в панели самого скрипта), а заполнено путем к временному файлу Far со списком файлов панели. это нарушает работу скриптов, использующих это поле.
Это поле заполняет сама временная панель, когда я передаю ей список файлов. Единственный способ передать его - в файле-списке. А когда временная панель заполняется из файла, UNCPath для корневого элемента заполняется полным именем файла-списка. Изменить поведение временной панели - не ко мне. Попробовать придумать какой-нибудь костыль могу, но ничего не гарантирую.
ccaid
Posts: 908
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 24 times
Been thanked: 6 times

Панель для результатов поиска файлов

Post by ccaid »

IgorZ, я выразился неясно, к сожалению.
в крайней версии Far этой проблемы нет. но поскольку для скрипта заявлен минимальный поддерживаемый билд, то я решил сообщить о своем наблюдении. меня эта проблема в общем-то не задевает. что с ней делать — на ваше усмотрение. если проблема оказалась исправлена в плагине временной панели, то достаточно в требованиях к скрипту скорректировать требуемый билд.
Фар делают добрые люди
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Панель для результатов поиска файлов

Post by IgorZ »

ccaid wrote: Tue 11 Aug, 2020 18:58 IgorZ, я выразился неясно, к сожалению.
в крайней версии Far этой проблемы нет. но поскольку для скрипта заявлен минимальный поддерживаемый билд, то я решил сообщить о своем наблюдении. меня эта проблема в общем-то не задевает. что с ней делать — на ваше усмотрение. если проблема оказалась исправлена в плагине временной панели, то достаточно в требованиях к скрипту скорректировать требуемый билд.
Совсем перестал понимать. Опишу результат своих проверок (для TmpPanel v1.2.3).
  • Версия Far 3.0.5356:
    • открытие из TmpPanel:
      • ..: UNCPath пуст
      • любой другой элемент: UNCPath пуст
    • открытие обычным способом:
      • ..: UNCPath пуст
      • любой другой элемент: UNCPath пуст
  • Версия Far 3.0.5649:
    • открытие из TmpPanel:
      • ..: UNCPath содержит имя файла
      • любой другой элемент: UNCPath пуст
    • открытие обычным способом:
      • ..: UNCPath пуст
      • любой другой элемент: UNCPath пуст
Результаты Ваших изысканий аналогичны, или отличаются? И, если, совпадают, каковы Ваши представления о правильном поведении?
К делу не относится, но просто интересно: работу каких скриптов и как именно нарушает поведение TmpPanel?
ccaid
Posts: 908
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 24 times
Been thanked: 6 times

Панель для результатов поиска файлов

Post by ccaid »

IgorZ, не понял, что такое "обычный способ" и TmpPanel.
я сравниваю три варианта:
  • плагин Временная панель
  • ваш скрипт
  • плагин Временная панель, открытый из вашего скрипта через AltShiftF5/6
на двух билдах Far:
  • 5356
  • 5649
я смотрю поле UNCPath для некоторого элемента на панели (и элемент .. мне безразличен).
результат: для сочетания №3+№1 (плагин, открытый из скрипта через AltShiftF5/6 — в билде 5356) UNCPath содержит путь к временному файлу, а в остальных пяти сочетаниях UNCPath — пустой.
Фар делают добрые люди
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Панель для результатов поиска файлов

Post by IgorZ »

ccaid wrote: Wed 12 Aug, 2020 08:01 IgorZ, не понял, что такое "обычный способ" и TmpPanel.
"Обычный способ" - это без использования TmpPanel. Например, AltF1 1, или набрать tmp: в командной строке и нажать Enter. Соответственно, из TmpPanel - это по AltShiftF5.
ccaid wrote: Wed 12 Aug, 2020 08:01 я сравниваю три варианта:
на двух билдах Far:
я смотрю поле UNCPath для некоторого элемента на панели (и элемент .. мне безразличен).
результат: для сочетания №3+№1 (плагин, открытый из скрипта через AltShiftF5/6 — в билде 5356) UNCPath содержит путь к временному файлу, а в остальных пяти сочетаниях UNCPath — пустой.
Как нетрудно заметить, для билда 5356 мне вообще не удалось получить непустого UNCPath. Также мне не удалось получить непустого UNCPath для любых элементов списка, кроме ... Возможно, проблема в настройках Временной панели (приведите Ваши, кстати), в сторонних плагинах/скриптах или в каких-то настройках самого Far.

P. S. Забыл добавить: я проверял на чистой копии Far (обе версии). Все настройки по-умолчанию, только стандартные плагины, из скриптов только TmpPanel и ещё один, для проверки UNCPath. Его код ниже.

Code: Select all

Macro{
  area="Common"; key="F3";
  action=function() far.Show(APanel.UNCPath) end;
}
Last edited by IgorZ on Wed 12 Aug, 2020 09:51, edited 4 times in total.
ccaid
Posts: 908
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 24 times
Been thanked: 6 times

Панель для результатов поиска файлов

Post by ccaid »

IgorZ, воспроизводится на чистой копии Far с чистым, новым локальным профилем. дополнительно удалил стандартные плагины кроме двух нужных. то есть настройки Временной панели — стандартные.
проверочный скрипт использовал и свой аналогичный, и ваш тоже пробовал.
Far x86, Win10 x64
Фар делают добрые люди
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Панель для результатов поиска файлов

Post by IgorZ »

ccaid wrote: Wed 12 Aug, 2020 11:53 IgorZ, воспроизводится на чистой копии Far с чистым, новым локальным профилем. дополнительно удалил стандартные плагины кроме двух нужных. то есть настройки Временной панели — стандартные.
проверочный скрипт использовал и свой аналогичный, и ваш тоже пробовал.
Far x86, Win10 x64
Очистил заново профиль у обеих тестовых версий (кроме Macros\scripts), удалил все стандартные плагины, кроме LuaMacro и TmpPanel, далее пошагово: запуск, AltF7, Enter, AltP,AltShiftF5,Tab. Проверяю все элементы, включая ... Home,Enter,AltF2,1. Снова проверяю все элементы.
Результат: UNCPath не пустой в единственном случае: билд 5649, элемент .., после AltShiftF5.
Единственное предположение: у меня Windows XP. Но это, по идее, не должно влиять.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Панель для результатов поиска файлов

Post by IgorZ »

ccaid wrote: Wed 12 Aug, 2020 11:53 IgorZ, воспроизводится на чистой копии Far с чистым, новым локальным профилем. дополнительно удалил стандартные плагины кроме двух нужных. то есть настройки Временной панели — стандартные.
проверочный скрипт использовал и свой аналогичный, и ваш тоже пробовал.
Far x86, Win10 x64
Причину нашёл. У меня сборка Far 5356 от 25/01/2019, а Ваша от 04/02/2019 (видимо, долго не было изменений). Соответственно, в моей Временная панель 3.0.106, а у Вас 3.0.107. При добавлении сборки 107 в любую версию Far он начинает вести себя, как Вы описывали, даже Far 3.0.5649. То есть, в сборку 107 внесли изменение, приводящее к заполнению UNCPath, а в более позднюю внесли другое, возвращающее старое поведение для всех элементов, кроме ... Изучение changelog вызвало подозрение, а проверка подтвердила, что второе исправление было в сборке 110, от 14/07/2020. Так что сборки 107-109 Временной панели ведут себя описанным Вами способом, а более ранние и поздние (-яя на данный момент) - нет.
Как видим, причина проблемы не у меня. Указывать в качестве минимальной допустимой сборки Far 5641 (а ещё 5640 встречается со сборкой 109) - нерационально. Максимум - могу оговорить это поведение в описании. Ну, или запихать в скрипт костыль, проверяющий версию и переоткрывающий временную панель. Уродливо, в зависимости от режима может очищать содержимое временной панели, но зато пустой UNCPath. Или же перейдите на свежий Far.
Last edited by IgorZ on Fri 14 Aug, 2020 07:59, edited 1 time in total.
ccaid
Posts: 908
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 24 times
Been thanked: 6 times

Панель для результатов поиска файлов

Post by ccaid »

Полагаю, достаточно добавить примечание, в костыле практического смысла нет. А на свежий Far я уже перешел.

Обнаружил еще один нюанс, о котором полезно знать заранее, чтобы потом не удивляться происходящему.
Панель скрипта TmpPanel для своей работы требует режим сортировки Unsorted и отключенный Show directories first, а архивные плагины за единственным исключением (у ArcLite можно настроить запоминание своего режима сортировки) наследуют эти режимы из той панели, на которой находится архив. Поэтому, если мы заходим в архив из панели скрипта, то список файлов выглядит не так, как мы ожидаем.
Фар делают добрые люди
skipik
Posts: 318
Joined: Wed 03 Jun, 2015 15:24
Has thanked: 67 times
Been thanked: 29 times

Панель для результатов поиска файлов

Post by skipik »

Коллеги, а что вот это такое вылезло в справке данного макроса:

отмечено стрелочкой.
Ради интереса запустил бекап со старой копией Фар 3.0.5689.0 - там нет такого.

UPD: b5716 - исправлено, спасибо.
Last edited by skipik on Sat 12 Dec, 2020 20:49, edited 1 time in total.
skipik
Posts: 318
Joined: Wed 03 Jun, 2015 15:24
Has thanked: 67 times
Been thanked: 29 times

Панель для результатов поиска файлов

Post by skipik »

IgorZ, ловлю такую ошибку при попытке удаления папки с временной панели:

Возможно ли это поправить?
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Панель для результатов поиска файлов

Post by citRiks »

skipik wrote: Fri 11 Dec, 2020 22:23 Коллеги, а что вот это такое вылезло в справке данного макроса:
у меня такого нету :) но проблема не выглядит критичной если честно
version 3.0.5687.0 x86
Post Reply

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