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

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

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

Post by IgorZ »

IgorZ wrote: Wed 17 Apr, 2019 12:26 Описание:
Скрипт является панельным модулем, предназначенным заменять временную панель при выводе результатов поиска файлов. Основные отличия
  • форма вывода информации приближёна к формату результатов поиска в диалоге поиска Far.
  • функциональность скрипта, в отличие от стандартной временной панели, ограничена реальными файлами.


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

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



Attachments
TmpPanel.1.2.3.7z
(12.73 KiB) Downloaded 84 times
Last edited by IgorZ on Tue 18 Aug, 2020 07:14, edited 16 times in total.
citRiks
Posts: 895
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 269 times
Been thanked: 46 times

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

Post by citRiks »

Latest post of the previous page:

IgorZ,
да, сейчас чудесным образом не тормозит
можешь ли прокомментировать в чем было дело и где сидит изменение?
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
IgorZ
Posts: 702
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 13 times
Been thanked: 66 times

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

Post by IgorZ »

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

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

Post by IgorZ »

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

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

Post by ccaid »

IgorZ wrote: Wed 17 Apr, 2019 12:26 Требуемая версия Far 3.0.5182+.
5356 — в целом скрипт работает, но есть глюк. для элементов временной панели, открытой из скрипта по AltShiftF5/6, поле UNCPath не пустое (как в обычной временной панели, или как в панели самого скрипта), а заполнено путем к временному файлу Far со списком файлов панели. это нарушает работу скриптов, использующих это поле.
Фар делают добрые люди
IgorZ
Posts: 702
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 13 times
Been thanked: 66 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: 869
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 19 times
Been thanked: 5 times

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

Post by ccaid »

IgorZ, я выразился неясно, к сожалению.
в крайней версии Far этой проблемы нет. но поскольку для скрипта заявлен минимальный поддерживаемый билд, то я решил сообщить о своем наблюдении. меня эта проблема в общем-то не задевает. что с ней делать — на ваше усмотрение. если проблема оказалась исправлена в плагине временной панели, то достаточно в требованиях к скрипту скорректировать требуемый билд.
Фар делают добрые люди
IgorZ
Posts: 702
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 13 times
Been thanked: 66 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: 869
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 19 times
Been thanked: 5 times

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

Post by ccaid »

IgorZ, не понял, что такое "обычный способ" и TmpPanel.
я сравниваю три варианта:
  • плагин Временная панель
  • ваш скрипт
  • плагин Временная панель, открытый из вашего скрипта через AltShiftF5/6
на двух билдах Far:
  • 5356
  • 5649
я смотрю поле UNCPath для некоторого элемента на панели (и элемент .. мне безразличен).
результат: для сочетания №3+№1 (плагин, открытый из скрипта через AltShiftF5/6 — в билде 5356) UNCPath содержит путь к временному файлу, а в остальных пяти сочетаниях UNCPath — пустой.
Фар делают добрые люди
IgorZ
Posts: 702
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 13 times
Been thanked: 66 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: 869
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 19 times
Been thanked: 5 times

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

Post by ccaid »

IgorZ, воспроизводится на чистой копии Far с чистым, новым локальным профилем. дополнительно удалил стандартные плагины кроме двух нужных. то есть настройки Временной панели — стандартные.
проверочный скрипт использовал и свой аналогичный, и ваш тоже пробовал.
Far x86, Win10 x64
Фар делают добрые люди
IgorZ
Posts: 702
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 13 times
Been thanked: 66 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: 702
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 13 times
Been thanked: 66 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: 869
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 19 times
Been thanked: 5 times

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

Post by ccaid »

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

Обнаружил еще один нюанс, о котором полезно знать заранее, чтобы потом не удивляться происходящему.
Панель скрипта TmpPanel для своей работы требует режим сортировки Unsorted и отключенный Show directories first, а архивные плагины за единственным исключением (у ArcLite можно настроить запоминание своего режима сортировки) наследуют эти режимы из той панели, на которой находится архив. Поэтому, если мы заходим в архив из панели скрипта, то список файлов выглядит не так, как мы ожидаем.
Фар делают добрые люди
Post Reply

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