Сохранение / восстановление файловых фильтров

Здесь обсуждается всё, что касается макросов.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Сохранение / восстановление файловых фильтров

Post by buniak_a_h »

Накарябал пару-тройку связанных макросов. Один запоминает текущий фильтр панели, другой восстанавливает, третий в текущий фильтр добавляет тип файла (таковой может отсутствовать на панели). Писал чисто для себя, но попросили опубликовать. Так что звиняйте, если чо…

Версия 1.1.8
  1. Доделано то, что в п.2 предыдущей версии
  2. Исправлена ошибка: при аддитивной загрузке фильтров, если в сохранённом фильтре был отмечен только элемент «0. Папки», то при аддитивном режиме восстановления фильтра вообще не происходило.
Версия 1.1.9
Исправлена ошибочка преобразования фильтра пассивной панели в таблицу. Изменения только в модуле FileFilterTools
SaveRestFilter.1_1_9.7z
(9.3 KiB) Downloaded 83 times



сорри, вложение куда-то делось…
Last edited by buniak_a_h on Sun 31 Jan, 2021 05:17, edited 14 times in total.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Сохранение / восстановление файловых фильтров

Post by buniak_a_h »

Latest post of the previous page:

Ann wrote: Wed 27 Jan, 2021 16:37 Отметка на строке «0. Папки» слетает. Хотя во всех случаях на соответствующем крыжике пометка стоит: "[x] Помечать «0. Папки» на общих основаниях".
Что-то у меня не подтвердилось…
User avatar
Ann
Posts: 478
Joined: Tue 26 Jun, 2007 11:05
Has thanked: 141 times
Been thanked: 45 times

Сохранение / восстановление файловых фильтров

Post by Ann »

buniak_a_h wrote: Thu 28 Jan, 2021 03:21Что-то у меня не подтвердилось…
Похоже на то, что дело сложнее, поэтому описываю свои сегодняшние действия пошагово.

1 шаг. Выполняю макрос CtrlF-S – "Сохранить текущий фильтр панели" (он прост: [ + ] *.lua, а все остальные позиции помечены минусами).
2 шаг. Отключаю данный фильтр через Ctrl+I и Shift+BS.
3 шаг. Вхожу в диалог настроек.
4 шаг. Импортирую файл (там была помечена позиция [ + ] *.lu_a, а остальные минусы).
5 шаг. Выполняю макрос CtrlF-R – "Восстановить сохранённый фильтр" и получаю фильтр, ни чего общего не имеющий с импортированным. В нём в т.ч. отмечена позиция [ + ] *.pdf, которой как таковой не было ни в начальном фильтре, ни в ожидаемом. Фильтр такого состава был сохранён вчера.

И ещё. Стойко получаю мёртвое зависание Фара после попытки выполнить макрос CtrlF-H "Дозаполнение фильтра" из Меню фильтров. Из панелей же данный макрос работает нормально.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Сохранение / восстановление файловых фильтров

Post by buniak_a_h »

Ann wrote: Thu 28 Jan, 2021 09:20 Импортирую файл (там была помечена позиция [ + ] *.lu_a, а остальные минусы).
1. Вложили бы файл, а?
2. И скрин настроечного окна, пож.
3. И список файлов активной панели на момент загрузки и включения загруженного фильтра. Точнее, интересует наличие *.lua на панели
Last edited by buniak_a_h on Thu 28 Jan, 2021 13:58, edited 2 times in total.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Сохранение / восстановление файловых фильтров

Post by buniak_a_h »

Ann wrote: Thu 28 Jan, 2021 09:20 В нём в т.ч. отмечена позиция [ + ] *.pdf,…
Фантастика! Верите, что таких буковок в скрипте нету? Значит, они есть либо в фильтре (в списке расширений, либо на панели. Ну, или я должен поверить в "высший разум компа", .
User avatar
Ann
Posts: 478
Joined: Tue 26 Jun, 2007 11:05
Has thanked: 141 times
Been thanked: 45 times

Сохранение / восстановление файловых фильтров

Post by Ann »

buniak_a_h wrote: Thu 28 Jan, 2021 12:50
Ann wrote: Thu 28 Jan, 2021 09:20 Импортирую файл (там была помечена позиция [ + ] *.lu_a, а остальные минусы).
1. Вложили бы файл, а?
.[/quote]
2. И скрин настроечного окна, пож.
.
3. И список файлов активной панели на момент загрузки и включения загруженного фильтра. Точнее, интересует наличие *.lua на панели
А вот этого я сейчас уже и не помню. На наличие же и отсутствие на панели *.lua-файла проверялось неоднократно и в том, и в другом вариантах.
buniak_a_h wrote: Thu 28 Jan, 2021 14:04
Ann wrote: Thu 28 Jan, 2021 09:20 В нём в т.ч. отмечена позиция [ + ] *.pdf,…
Фантастика! Верите, что таких буковок в скрипте нету?
Так это я просто в принципе воспроизводил, а не точно копировал.

Во-вторых, я обязан покаяться в следующем. То, о чём шла речь выше, происходило в обстановке запуска Фар из-под КонЭму и со всеми моими колхозами плагинов и макросов. Очевидно, что сказывалось влияние чего из них постороннего. Хотя до какого-то момента всё шло гладко и поддерживало моё благодушие.

Но теперь я решил попытаться максимально исключить внешние влияния и провёл тестирование в свежей сборке Far.x64.3.0.5733.1957. И для этого несколько переделал ключи, чтобы их можно было использовать из-под "аккордеона" key2Process.lua вместо "комбайна" macroEx, поскольку при присутствии последнего ранее я неоднократно наблюдал разнообразные искажения в работе моего колхоза макросов.

Так что теперь меню вызова макросов сабжевого скрипта из панелей выглядит .

Lua-файл с используемым в тесте сабжевым скриптом , чтобы Вы в случае чего могли убедиться, что искажений в него я не вносил.

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

Сохранение / восстановление файловых фильтров

Post by buniak_a_h »

Ann wrote: Thu 28 Jan, 2021 14:42 Так что теперь меню вызова макросов сабжевого скрипта из панелей выглядит так.
Естественно, без macroEx двойные хоткеи не работают. Стандартно FAR считает, что все макросы "повешены" на CtrlF, соответственно, появляется меню выбора. Тогда уж заменили бы key = в макросах. И, соответственно, пропадёт возможность сохранения-восстановления на пассивной панели (легко сделать, но описывать не буду).
Приложенный скрипт смотреть не буду. На то он и скрипт, чтоб можно было менять под себя. Я и сам этим грешу.
Сообщение об ошибке к скрипту, по-моему, вообще отношения не имеет. Это Вы что-то кардинально сломали
User avatar
Ann
Posts: 478
Joined: Tue 26 Jun, 2007 11:05
Has thanked: 141 times
Been thanked: 45 times

Сохранение / восстановление файловых фильтров

Post by Ann »

buniak_a_h wrote: Thu 28 Jan, 2021 15:06 без macroEx двойные хоткеи не работают
Ну, что Вы! Очень даже прекрасно работают. Если Вам так нравится, то поставьте key2-ключами не одиночные ключи, как я предпочитаю, а те же с Ctrl`ом и нажимайте подряд, например CtrlF и сразу же внось CtrlF, и будет Вам ровно то, что хочется. У меня, например, как Вы видите, CtrlF и тут же F включает-выключает Меню фильтров. И если сразу нажимаете, то Меню выбора макроса мелькает, Вы и не замечаете. А если понадобится что-то вспомнить, нажимаете один раз CtrlF и осматриваете Меню выбора как справку. Поверьте мне, это чрезвычайно удобно.
пропадёт возможность сохранения-восстановления на пассивной панели
А вот ни чуть. А именно как Вы и написали: "лекго сделать".
Сообщение об ошибке к скрипту, по-моему, вообще отношения не имеет. Это Вы что-то кардинально сломали
А вот это мне очень интересно: что же такого я мог сломать при наличии единственного скрипта, запускаемого в фактически целомудренной сборке?
User avatar
Ann
Posts: 478
Joined: Tue 26 Jun, 2007 11:05
Has thanked: 141 times
Been thanked: 45 times

Сохранение / восстановление файловых фильтров

Post by Ann »

buniak_a_h wrote: Thu 28 Jan, 2021 03:21
Ann wrote: Wed 27 Jan, 2021 16:37 Отметка на строке «0. Папки» слетает...
Что-то у меня не подтвердилось…
И всё-таки отметка на строке "0. Папки" слетает. Стабильно. И, более того, — не просто слетает, а некорректно изменяется. А происходит это тогда, когда я экспериментально несколько раз загружаю настройки из одного и того же файла и сразу затем выполняю макрос CtrlF+R "восстановить сохранённый фильтр". Сначала отметка слетает, затем превращается в +, затем возвращается к исходному , потом снова слетает и так далее по кругу. У меня на сборке Far.x64.3.0.5733.1957 это воспроизводится стабильно при установленной настройке восстановления (•) Аддитивное-2.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Сохранение / восстановление файловых фильтров

Post by citRiks »

Ann wrote: Thu 28 Jan, 2021 16:54 А происходит это тогда, когда я экспериментально несколько раз загружаю настройки из одного и того же файла и сразу затем выполняю макрос CtrlF+R "восстановить сохранённый фильтр". Сначала отметка слетает, затем превращается в +, затем возвращается к исходному –, потом снова слетает и так далее по кругу.
похоже на то, что при перезагрузках таких остаются некие глобальные "артефакты",
т.е. перезагрузка произошла не полностью, или, иными словами, не все обнулилось.
ничего не проверял и не утверждаю, просто "похоже на то что.."
но если так, то будет достаточно чтобы аффтор перезагрузил у себя подобным образом и воспроизведется
User avatar
Ann
Posts: 478
Joined: Tue 26 Jun, 2007 11:05
Has thanked: 141 times
Been thanked: 45 times

Сохранение / восстановление файловых фильтров

Post by Ann »

Ann wrote: Thu 28 Jan, 2021 15:44
buniak_a_h wrote: Thu 28 Jan, 2021 15:06 Сообщение об ошибке к скрипту, по-моему, вообще отношения не имеет. Это Вы что-то кардинально сломали
А вот это мне очень интересно: что же такого я мог сломать при наличии единственного скрипта, запускаемого в фактически целомудренной сборке?
Кажется, я разобрался-таки в чём причина появления ошибок.

А дело в том, что скрипт позволяет экспортировать настройки в файл любого типа. Т.е. в т.ч. и в файл без расширения или с любым расширением. В т.ч. и с расширением .lua. И, естественно, скрипт может импортировать настройки из таких файлов.

И вот я, сугубо для пробы, экспортировал настройки в lua-файлы. И всё проходило нормально, пока при импорте это были действительно ранее экспортированные файлы с настройками скрипта. Но как только я нечаянно попытался импортировать действительный lua-файл, не с настройкой, а с макросом, то получил двойное красное сообщение.

Причём сообщения об ошибке выдаются и в том случае, когда в файле содержится макрос, отключённый способом NoMacro. Соответственно, дело, разумеется, не в расширении файла, а в его фактическом содержании. И если, например, у файла с макросом расширение переименовать в .txt, и затем попытаться импортировать из него настройки, то всё равно получим предупреждения.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Сохранение / восстановление файловых фильтров

Post by buniak_a_h »

Ann wrote: Thu 28 Jan, 2021 19:24 А дело в том, что скрипт позволяет экспортировать настройки в файл любого типа. Т.е. в т.ч. и в файл без расширения или с любым расширением. В т.ч. и с расширением .lua. И, естественно, скрипт может импортировать настройки из таких файлов.

И вот я, сугубо для пробы, экспортировал настройки в lua-файлы. …
На самом деле я тоже экспортировал/импортировал файлы в *.lua. Тут главное - чтоб они не были в %FarProfile%\Macros\Scripts, иначе при перезагрузке макросов я ничего не гарантирую. Ну, тут уж надо думать.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Сохранение / восстановление файловых фильтров

Post by buniak_a_h »

citRiks wrote: Thu 28 Jan, 2021 17:54 перезагрузка произошла не полностью, или, иными словами, не все обнулилось.
У товарища выставлено аддитивное-2 восстановление. Т.е. из того, что было, ничего не вычищается. Он сам так просил.
User avatar
Ann
Posts: 478
Joined: Tue 26 Jun, 2007 11:05
Has thanked: 141 times
Been thanked: 45 times

Сохранение / восстановление файловых фильтров

Post by Ann »

buniak_a_h wrote: Thu 28 Jan, 2021 20:07я тоже экспортировал/импортировал файлы в *.lua. Тут главное - чтоб они не были в %FarProfile%\Macros\Scripts ... Ну, тут уж надо думать.
Исходя из своего опыта, я бы предпочёл, чтобы экспортируемые настройки скрипта всё-таки сохранялись бы рядом с файлом самого скрипта. И чтобы у них было значимое, но нейтральное расширение, что-то типа .cfg. Тогда эти файлы и находить можно быстро, и на фоне lua-файлов хорошо отличались бы, и Фар на них вроде бы не ругается.
User avatar
Ann
Posts: 478
Joined: Tue 26 Jun, 2007 11:05
Has thanked: 141 times
Been thanked: 45 times

Сохранение / восстановление файловых фильтров

Post by Ann »

buniak_a_h wrote: Thu 28 Jan, 2021 20:09Он сам так просил.
Так ведь телепаются только настройки строки "0. Папки". Со всеми остальными строками фильтра всё вполне нормально.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Сохранение / восстановление файловых фильтров

Post by buniak_a_h »

Ann wrote: Thu 28 Jan, 2021 23:14
buniak_a_h wrote: Thu 28 Jan, 2021 20:09Он сам так просил.
Так ведь телепаются только настройки строки "0. Папки". Со всеми остальными строками фильтра всё вполне нормально.
Как это - "нормально"? Вы же сами писали:
Ann wrote: Thu 28 Jan, 2021 09:20 В нём в т.ч. отмечена позиция [ + ] *.pdf,
Про папки я, наверно, понял: если они были помечены символов «ку» и снова попытаться его пометить этим же символом, то ФАР совсем сбрасывает настройку. На мой взгляд, это очень неудачно. То, что пробел работает как flip-flop - это правильно, а остальные символы должны только устанавливать пометку собой. А получить символ, которым помечен пункт меню, через АПИ меню невозможно. Увы, придется приспосабливаться.
User avatar
Ann
Posts: 478
Joined: Tue 26 Jun, 2007 11:05
Has thanked: 141 times
Been thanked: 45 times

Сохранение / восстановление файловых фильтров

Post by Ann »

buniak_a_h wrote: Thu 28 Jan, 2021 23:41
Ann wrote: Thu 28 Jan, 2021 23:14
buniak_a_h wrote: Thu 28 Jan, 2021 20:09Он сам так просил.
Так ведь телепаются только настройки строки "0. Папки". Со всеми остальными строками фильтра всё вполне нормально.
Как это - "нормально"? Вы же сами писали:
Ann wrote: Thu 28 Jan, 2021 09:20 В нём в т.ч. отмечена позиция [ + ] *.pdf,
В моём сообщении, из которого Вы процитировали про [ + ] *.pdf, речь шла о сбое, который я наблюдал в своём рабочем Фаре, запускаемом мною из-под КонЭму. И я, к сожалению, не могу поручиться за то, что там не влияли некие внешние, от скрипта не зависящие обстоятельства. Поэтому то я и перешёл к тестированию скрипта в ночной сборке. Позже я обязательно вернусь в рабочий Фар, чтобы постараться найти причину внешнего воздействия на сабжевый скрипт.

Так вот там появление строки с [ + ] *.pdf ни как не объяснимо, т.к. её не было ни в исходном фильтре, ни в подгружаемом конфиге. И откуда она бралась непонятно. Больше похоже на то, что скрипт по какой-то причине восстанавливал фильтр не из загружаемой настройки, а какой-то значительно ранее запомненный. И там это повторялось независимо от того, какую настройку я пытался загрузить. Всегда восстанавливался один и тот же фильтр, к загружаемым настройкам отношения не имевший.

А сейчас, в настоящий момент, речь идёт о неадекватном поведении настроек строки, наблюдаемом мною в ночной сборке. И эта неадекватность относится только к строке "0. Папки". И Вы про это поняли правильно. Все же остальные строки восстанавливаются в соответствии с запомненной настройкой в файле-конфиге. Т.е. если в загружаемой настройке есть строка с [ + ] *.pdf, то она загружается правильно, сколько бы раз не повторялась попытка загрузить соответствующую настройку. А вот отметка в строке "0. Папки" постоянно изменяется, вне зависимости от того, какую настройку и сколько раз подряд я загружаю.
Post Reply

Return to “Обсуждение макросов”