MultiPanel — стек панелей

Здесь выкладываются готовые к использованию макросы и скрипты.
User avatar
John Doe
Бюрократ
Posts: 13000
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 40 times
Been thanked: 310 times

MultiPanel — стек панелей

Post by John Doe »



Панелей на экране помещается всё так же две, но каждую из них в любой момент можно поместить в MRU-стек, и в любой другой момент достать оттуда в изначальном их состоянии (режим, сортировка, выделение).
Запомнить в стеке можно произвольное число панелей.
Список панелей сохраняется между запусками фара.
Если папка панели в данный момент не существует, то это индицируется (пункт списка серый).
Панели плагинов в основном поддерживаются, а если же панель невозможно сохранить, то это индицируется (пункт списка серый).

Запуск: Ctrl-~ — переключиться между активной и сохранённой, с отображением списка.

Шорткаты в списке (Ctrl должен удерживаться):

Шорткаты в панелях:

source | download

Last edited by HaRT on Wed 05 Aug, 2020 15:46, edited 2 times in total.
Reason: Добавлен шоткат Shift-~, исправлены опечатки, слегка унифицировано форматирование.
buniak_a_h
Posts: 2286
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 139 times
Been thanked: 245 times
Contact:

MultiPanel — стек панелей

Post by buniak_a_h »

Latest post of the previous page:

1. Что-то мне кажется, что "стек" (с изменением порядка) очень похож на обычную историю папок, к которой добавили (как, например, в истории команд и просмотров) возможность (а) отметки фаворитных и (б) показ "только фаворитов" (по CtrlH, например). Кстати, по-моему, правильная идея . Не?
2. Для использования в макросах (и просто мышечной памятью пальцев) надо, естественно, номера (и буквы-шоткаты) "закреплять" за папками. Но только это - другой механизм, другая логика и, возможно, другой скрипт. Я так думаю…
User avatar
John Doe
Бюрократ
Posts: 13000
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 40 times
Been thanked: 310 times

MultiPanel — стек панелей

Post by John Doe »

buniak_a_h wrote: Fri 24 Jan, 2020 12:19 очень похож на обычную историю папок
Что-то в этом конечно есть.
Но не забывайте также что тут ещё сохраняется и выделение, и режим сортировки, режим панели, потожение курсора, и т.п.
Т.е. может существовать (и имеет практический смысл) 2 элемента с одним и тем же путём.
User avatar
HaRT
Moderator
Posts: 9651
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 119 times
Been thanked: 244 times

MultiPanel — стек панелей

Post by HaRT »

John Doe wrote: Fri 24 Jan, 2020 11:59 что если я хочу использовать номера как постоянные шорткаты?
Мне кажется, постоянные лучше брать не из автоматически добавленной нумерации, а либо подбирать из текста самих элементов, либо назначать вручную (примерно как в меню плагинов). И да, в этом случае польза нумерации резко снижается.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 13000
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 40 times
Been thanked: 310 times

MultiPanel — стек панелей

Post by John Doe »

v0.4-alpha
- Постоянные шорткаты
- Частичная поддержка Временной панели
- Исправления и рефакторинг
User avatar
John Doe
Бюрократ
Posts: 13000
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 40 times
Been thanked: 310 times

MultiPanel — стек панелей

Post by John Doe »

v0.5
- Правильный MRU-порядок при переключении
https://t.me/FarManager — Telegram чат
DV
Posts: 439
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 23 times
Been thanked: 15 times

MultiPanel — стек панелей

Post by DV »

Возможно, это несколько вне темы данного макроса... но хотелось бы среди списка (стека) панелей иметь возможность создавать (помечать) так называемые "постоянные" папки. Суть "постоянной" папки в том, что когда после выбора этой папки в стеке мы переходим в другую папку средствами FAR (навигацией по файловой панели или с помощью истории папок), то в стеке остаётся первоначальная "постоянная" папка, а рядом с ней создаётся ещё один элемент стека, соответствующий текущей папке. Таким образом, "постоянная" папка никогда не исчезает из стека папок. При этом, если мы постоянно из неё переходим в другую папку средствами FAR, то стек растёт. Либо же, если это технически не сложно, вместо постоянного роста стека можно каждый раз использовать один и тот же "временный" элемент стека, который всегда будет содержать текущую папку, в которую мы перешли из любой "постоянной" папки.
Last edited by DV on Wed 29 Jul, 2020 13:36, edited 3 times in total.
User avatar
John Doe
Бюрократ
Posts: 13000
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 40 times
Been thanked: 310 times

MultiPanel — стек панелей

Post by John Doe »

DV wrote: Wed 29 Jul, 2020 13:31 Возможно, это несколько вне темы данного макроса...
Это вполне попадает в тему: я и сам задумывался о подобной функциональности.
Но не придумал как это реализовать интуитивно понятным способом.
https://t.me/FarManager — Telegram чат
User avatar
John Doe
Бюрократ
Posts: 13000
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 40 times
Been thanked: 310 times

MultiPanel — стек панелей

Post by John Doe »

Sergej_Sim wrote: Fri 31 Jul, 2020 05:47 Модуль Мульти-панель для FAR, История изменений
2003-Дек-02 (ревизия 94) - Версия 3.2
Этот плагин в настоящий момент никем не развивается и не поддерживается.
В данной теме обсуждается альтернативная реализация сходной функциональности, подробности в шапке.
https://t.me/FarManager — Telegram чат
DV
Posts: 439
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 23 times
Been thanked: 15 times

MultiPanel — стек панелей

Post by DV »

John Doe wrote: Thu 30 Jul, 2020 13:27я и сам задумывался о подобной функциональности.
Но не придумал как это реализовать интуитивно понятным способом.
Если Macro API позволяет, то "прицепить" скрипт к событию смены папки в файловой панели (чтобы часть скрипта вызывалась как callback на событие смены папки) - и, если в скрипте MultiPanel последним выбранным элементом была "постоянная" папка, то по событию смены папки создать новый (или переключиться на "временный") элемент в стеке папок MultiPanel.
Last edited by DV on Fri 31 Jul, 2020 12:27, edited 1 time in total.
User avatar
HaRT
Moderator
Posts: 9651
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 119 times
Been thanked: 244 times

MultiPanel — стек панелей

Post by HaRT »

John Doe, спасибо за удобный скрипт!
Несколько мелочей по документации:
1. В шапке после “~ — выбрать следующую сохранённую панель в стеке” хорошо бы написать также “Shift-~ — выбрать предыдущую сохранённую панель в стеке”.
2. Желательно также добавить ~ и Shift-~ на нижнюю рамку меню списка сохранённых панелей.
3. Там в списке Ctrl-Enter немного сбивает с толку, ведь Ctrl и так уже нажат и у прочих клавиш не приписан. Предлагаю и тут оставить просто Enter.
4. Если в списке нажать F1, то появится диалоговое окно с зачаточной справкой: See Bottom title for hotkeys. Предлагаю скопировать туда хотя бы команды для работы с настройками.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 13000
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 40 times
Been thanked: 310 times

MultiPanel — стек панелей

Post by John Doe »

1, 2: сознательно не включал самоочевидные функции.
3. Ctrl-~ это умолчательный шорткат. Функциональность на нём не завязана, список возможно вызвать как обычное меню.
4. Так и задумывалось, но руки не дошли.
Если вдруг захотите заняться сами, то пожалуйста.
https://t.me/FarManager — Telegram чат
User avatar
HaRT
Moderator
Posts: 9651
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 119 times
Been thanked: 244 times

MultiPanel — стек панелей

Post by HaRT »

John Doe wrote: Wed 05 Aug, 2020 15:29 Если вдруг захотите заняться сами, то пожалуйста.
Для начала слегка доработал шапку. :)
Фар есть инструмент, а не нянька. © 2009 DrKnS
Shmuel
Posts: 6194
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 337 times

MultiPanel — стек панелей

Post by Shmuel »

HaRT wrote: Wed 05 Aug, 2020 15:47 Для начала слегка доработал шапку
В шапке встречается как "шорткат", так и "шоткат".
citRiks
Posts: 1100
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 342 times
Been thanked: 57 times

MultiPanel — стек панелей

Post by citRiks »

Скрипт прекрасен, но я все же сломал моск,
пытаясь понять зачем позволяется сохранять по Ф3 неограниченное количество одинаковых копий?
(Это не про клонирование, а именно "Ctrl-F3" в панелях)
Еще много об чего сломал моск,
так логика весьма хитрая, а я пытался не менять эту логику,
а тоже типа "хитро" вставить куда надо то чего не хватает для юзабельности.
Об чт-то еще там я ломал моск, и давай чинить, два дня чинил ..
(как вы думаете, это нормально, или идиотизм?)
То чего я начинил, лежит тут:
https://github.com/dr-dba/far-lua-nav-multi-panel/

P.S:
Вспомнил что мешало больше всего.
при переключении в панель (=закладку), и далее переходам туда-сюда,
закладка становилась в этот самый переход,
вместо того чтобы оставаться той же самой папкой.
Может я чего то не понял?
на мой взгляд как-то совсем не логично
citRiks
Posts: 1100
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 342 times
Been thanked: 57 times

MultiPanel — стек панелей

Post by citRiks »

John Doe,
Традиционно код переформатирован, переменные переименованы,
логика осталась в болшинстве той-же, и нетронутой,
насколько это возможно для добавления функциональности:
DV wrote: Fri 31 Jul, 2020 12:26 Если Macro API позволяет, то "прицепить" скрипт к событию смены папки в файловой панели (чтобы часть скрипта вызывалась как callback на событие смены папки) - и, если в скрипте MultiPanel последним выбранным элементом была "постоянная" папка, то по событию смены папки создать новый (или переключиться на "временный") элемент в стеке папок MultiPanel.
Так у меня и получилось что-то вроде того, закладки не меняют свою директорию,
текущая директория, если она не в закладках, то сидит в меню под номером "0" (ноль)
Чтобы ее тоже можно было сохранить как закладку и вернутся.
Далее, если
1.) прошлая последняя директория НЕ в закладках,
2.) а настоящая (текущая) директория ДА в закладках,
.. то уже эта прошлая директория будет под номером "0" (ноль),
чтобы быстрый switch осуществлялся в нее, что логично и интуитивно.
Пказывать текущую тогда не нужно, потому что пункт (2.)
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
citRiks
Posts: 1100
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 342 times
Been thanked: 57 times

MultiPanel — стек панелей

Post by citRiks »

citRiks wrote: Fri 15 Jan, 2021 20:11 Об чт-то еще там я ломал моск, и давай чинить, два дня чинил ..
Мдя, плюс еще полдня починки багов
починено, плюс косметические правки
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
Post Reply

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