Почему в фаре можно открыть множество просмотрщиков и редакторов, а несколько панелей нельзя?
Был когда-то замечательный плагин Multi-panel, реализующий стек панелей.
Существует и более современный PanelTabs, помимо вкладок там есть и меню, напоминающее Multi-panel.
При переходе на far 3 я "потерял" Multi-panel.
А PanelTabs не прижился, т.к. некоторые мелкие но важные детали реализованы не так как мне хотелось бы.
Долго собирался, но мне окончательно надоело мучаться с фаровской парой панелей, поэтому я набросал свой аналог плагина Multi-panel.
При проектировании специально не ориентировался на оригинальный плагин, поэтому отличия должны быть.
Панелей на экране помещается всё так же две, но каждую из них в любой момент можно поместить в MRU-стек, и в любой другой момент достать оттуда в изначальном их состоянии (режим, сортировка, выделение).
Запомнить в стеке можно произвольное число панелей.
Список панелей сохраняется между запусками фара.
Если папка панели в данный момент не существует, то это индицируется (пункт списка серый).
Панели плагинов в основном поддерживаются, а если же панель невозможно сохранить, то это индицируется (пункт списка серый).
Запуск:Ctrl-~ — переключиться между активной и сохранённой, с отображением списка.
Шорткаты в списке (Ctrl должен удерживаться):
Отпустить Ctrl — осуществить переключение в выбранную панель ~/Shift-~ — выбрать следующую/предыдущую сохранённую панель в стеке Enter — осуществить переключение на пассивной панели F3 — клонировать выбранную панель F4 — удалить выбранную панель (если удаляется первая в списке панель, то происходит переключение в следующую)
Комбинации можно переназначить на обычные, но по умолчанию используются возможности MacroEx и для запуска действия необходимо удерживать клавиши (а обычное короткое нажатие по-прежнему вызывает встроенные фаровские команды):
LCtrl-F3 — сохранить активную панель в стек LCtrl-F4 — восстановить из стека предыдущую панель LCtrl-F8 — "закрыть" панель:
Если панель плагиновая, то выходим в реальную.
Если панель реальная, то устанавливаются папка и режимы по умолчанию (DefPanel в коде).
Те же комбинации с дополнительным Shift выполняют аналогичные действия для пассивной панели.
Выскажусь по другому моменту - порядок следования панелей в списке, имхо, неправильный. Панель №0 на которой стоит курсор, должна быть панелью, которую мы свопнули в прошлый раз и нажатие на Enter свопит её с активной. Панель №1 это панель которую мы свопили до нулевой и тд. Т.е. приоритетом является именно свопинг панелей, а не их клонирование. Текущей активной панели в списке быть не должно, но она может быть добавлена по F3, а удалена по F4(F8). Если же при открытии списка панелей текущая активная добавляется автоматом в позицию 0, то курсор должен стоять на панели 1, а не 0.
Второй момент - шоркаты. Перекрытие сортировок панелей по LCtrl неудобно, RCtrl для сортировок опять же неудобен (мне), поэтому просто удаляю все шоркаты и вызываю через Ctrl список, к тому же это нагляднее.
Re: MultiPanel — стек панелей
Posted: Sat 19 Jul, 2014 17:31
by John Doe
Панель №0 на которой стоит курсор
Курсор стоит на панели #1, если использовать шорткат Ctrl-~
Одиночный Ctrl оставляет курсор на текущей панели, что сделано специально. Сделать настройку не проблема.
Перекрытие сортировок панелей по LCtrl неудобно
А список изменений читали?
Re: MultiPanel — стек панелей
Posted: Sat 19 Jul, 2014 17:38
by AleXH
А список изменений читали?
Какой и где?
Re: MultiPanel — стек панелей
Posted: Sat 19 Jul, 2014 17:56
by John Doe
Позапрошлый.
Короткие нажатия клавиш вызывают встроенные функции фара.
Re: MultiPanel — стек панелей
Posted: Sat 19 Jul, 2014 18:47
by AleXH
Так это... Нихт арбайтен!
Re: MultiPanel — стек панелей
Posted: Sat 19 Jul, 2014 19:01
by John Doe
Вы наверно догадываетесь, что у автора работает.
Поэтому давайте подробности.
Re: MultiPanel — стек панелей
Posted: Sat 19 Jul, 2014 19:18
by AleXH
Даже не знаю - согласно MBA больше ничего на CtrlF3 не висит, в ОС вроде тоже, без сабжа сортировки работают, с сабжем изредка, гораздо чаще добавляет панели, чем сортирует. Сабж альфа 0.2 без правок, как есть.
Re: MultiPanel — стек панелей
Posted: Sat 19 Jul, 2014 19:25
by John Doe
Во-первых, обратите внимание что надо вовремя отпускать Ctrl.
Во-вторых, попробуйте увеличить задержку HoldDelay в коде.
Re: MultiPanel — стек панелей
Posted: Sat 19 Jul, 2014 19:29
by AleXH
надо вовремя отпускать Ctrl
А-а-а! Тут же комбо!!! Тогда работает
Re: MultiPanel — стек панелей
Posted: Tue 05 Aug, 2014 06:54
by AleXH
Клац по Ctrl в панелях - появляется меню с пунктами путей. выбираю любой из пунктов, нажимая соответствующую цифру, вижу
C:\Far3\Profile\Macros\scripts\MultiPanel.lua:106: bad argument #2 to 'band' (bad int64)
stack traceback:
[C]: in function 'band'
C:\Portables\Far3\Profile\Macros\scripts\MultiPanel.lua:106: in function 'setPanel'
C:\Portables\Far3\Profile\Macros\scripts\MultiPanel.lua:166: in function 'Pop'
C:\Portables\Far3\Profile\Macros\scripts\MultiPanel.lua:174: in function 'Swap'
C:\Portables\Far3\Profile\Macros\scripts\MultiPanel.lua:318: in function 'action'
C:\Portables\Far3\Profile\Macros\scripts\MultiPanel.lua:378: in function 'showMultiPanel'
C:\Portables\Far3\Profile\Macros\scripts\MultiPanel.lua:399: in function <C:\Portables\Far3\Profile\Macros\scripts\MultiPanel.lua:398>