Page 3 of 7

RecentScreens — переключение между окнами как в MS Windows™

Posted: Tue 09 Apr, 2013 13:02
by John Doe
В большинстве приложений, которые я использую, переключение между окнами происходит в порядке их использования (MRU order).
Но не во всех, пример исключений: FAR manager, Google Chrome.
Для решения этой проблемы в фаре был когда-то такой плагинчик RecentScreens — меню «Экраны» в порядке использования

Вашему вниманию предлагается LuaMacro-реализация подобной функциональности.

Переключение окон-экранов по умолчанию заменяет LCtrlTab (только левый Ctrl).
В отличии от обычного переключения экранов — в процессе переключения может отображаться список окон (до тех пор, пока удерживается Ctrl).



Требуется FAR3 build 4096 или новее.

Re: RecentScreens — переключение между окнами как в MS Windo

Posted: Mon 15 Apr, 2013 18:40
by John Doe

Latest post of the previous page:

Вроде я указал как и где можно 'исправить' этот т.н. 'баг', не?

Re: RecentScreens — переключение между окнами как в MS Windo

Posted: Mon 15 Apr, 2013 18:50
by Shmuel
John Doe wrote:Вроде я указал как и где можно 'исправить' этот т.н. 'баг', не?
1. Если "т.н.", то вы не считаете это багом?
2. Такими вещами не занимаюсь, то-есть при наличии развивающегося плагина/скрипта, я не буду править что-то сам, а затем делать merge с новыми версиями. Либо беру готовое, либо не пользуюсь.

Re: RecentScreens — переключение между окнами как в MS Windo

Posted: Mon 15 Apr, 2013 18:56
by John Doe
1. Баг это когда функция работает иначе, чем заявлено. А заявлено было не много.
Для меня это вообще не функция, но раз люди просят, почему бы и нет

2. У себя я исправил.

Re: RecentScreens — переключение между окнами как в MS Windo

Posted: Mon 15 Apr, 2013 18:57
by HaRT
Мне одному кажется, что “MS Windows™” в заголовке темы не слишком удачно?
Во-первых, реализованный способ не специфичен для Винды; во-вторых, не вполне ясно, в каком смысле “как” (например, где трёхмерные аэро-эффекты?!).
Я бы предложил термин MRU order. К сожалению, общепринятого русскоязычного термина не знаю, Майкрософт тоже не блещет.

Re: RecentScreens — переключение между окнами как в MS Windo

Posted: Tue 16 Apr, 2013 09:51
by John Doe
'MRU' настолько устойчиво ассоциируется с 'list', что я с удивлением обнаружил что предложенный вами термин тоже используется.
А для русского языка тем более нет термина, так что приходится на пальцах, "как в Opera", "как в Visual Studio", "как в Windows".
"Переключение между окнами в порядке их использования" тоже коряво.

Я исходил из того, что разницу в порядке переключения окон в фаре и в Windows видят все (а фар и Windows есть у каждого).

Re: RecentScreens — переключение между окнами как в MS Windo

Posted: Tue 16 Apr, 2013 10:43
by HaRT
John Doe wrote:"Переключение между окнами в порядке их использования" тоже коряво.
Согласен.
Можно что-нибудь в духе порядок «недавние первее», или «недавние выше» или «недавние ближе»

Re: RecentScreens — переключение между окнами как в MS Windo

Posted: Tue 16 Apr, 2013 10:53
by 2useven10
LRU и MRU переводить не надо, как и Windows.

Re: RecentScreens — переключение между окнами как в MS Windo

Posted: Tue 16 Apr, 2013 11:15
by John Doe
HaRT wrote:Можно что-нибудь в духе порядок «недавние первее», или «недавние выше» или «недавние ближе»
Вы находите это лучше?
2useven10 wrote:LRU и MRU переводить не надо, как и Windows.
И кто поймёт?
RecentScreens и то понятнее

RecentScreens r2.11

Posted: Tue 16 Apr, 2013 22:32
by John Doe
r2.11
- для панелей отображается текущий путь, независимо от элемента под курсором
- теперь игнорируются события QView

PS

RecentScreens — переключение между окнами как в MS Windo

Posted: Tue 16 Apr, 2013 23:50
by John Doe
Shmuel wrote:F12 показывает элемент под курсором, ему простительно. А сабж показывает текущую папку, независимо от элемента под курсором
На плагиновых панелях F12 показывает чёрт-те что (баг там).

А макрос показывает путь от корня плагиновой панели.
Если у вас иное видение, то дайте знать.
Желательно вместе с кодом.

Re: RecentScreens — переключение между окнами как в MS Windo

Posted: Wed 17 Apr, 2013 08:05
by Mr.Merak

Code: Select all

   ╔═══════════════════════════════════════════════════════════════ LuaMacro ════════════════════════════════════════════════════════════════╗
   ║ ...\FAR3\Profile\Macros\scripts\SimSU\RecentScreens.lua:261: View0/Просмотр0                                                            ║
   ║ stack traceback:                                                                                                                        ║
   ║ ○[C]: in function 'assert'                                                                                                              ║
   ║ ○...\FAR3\Profile\Macros\scripts\SimSU\RecentScreens.lua:261: in function <...\FAR3\Profile\Macros\scripts\SimSU\RecentScreens.lua:257> ║
   ╟─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╢
   ║                                                                 { OK }                                                                  ║
   ╚═════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝
far3333

RecentScreens r2.15

Posted: Wed 17 Apr, 2013 09:57
by John Doe
r2.15
- исправлена работа при языках интерфейса отличных от English

Есть косметический дефект, вызванный неюникодностью функции format.
Пока не трогаю, возможно стоит исправить format.

Update
Временный фикс.
Перед строкой 205 надо вставить это:

Code: Select all

    w.TypeName = w.TypeName..(" "):rep(10-w.TypeName:len())
Update 2
Функция format исправлена в FAR build 3349

RecentScreens r3

Posted: Tue 23 Apr, 2013 21:10
by John Doe
r3
  • Пользовательские настройки теперь хранятся в базе LuaMacro, сохраняются при любом изменении.
  • Изменить их можно интерактивно, делается это прямо в списке окон,
    горячие клавиши (цифровая клавиатура) перечислены на рамке, помощь доступна по F1
    /Возможно у кого-то на клавиатуре отсутствует NumPad, дайте знать, добавлю другие хоткеи/
  • Если даже отображение списка отключено, то его всегда можно вызвать по CtrlF12
    /Кроме того меню всегда показывается при вызове из единственного окна, и в модальных редакторах/вьюверах/
  • При закрытии какого-либо окна перемещаемся в "предыдущее" (в смысле MRU)
  • Окна "нумеруются" как в Screens: 0-9,A-Z
    Первые 36 окон можно вызвать по хоткею /[RL]Ctrl\w/
  • Панели в списке дополнительно помечаются
  • При загрузке проверяется билд фара (в последних билдах были важные исправления)
    /Если хотите остаться на "стабильном" 3355 - можно изменить значение minfarbuild, в начале скрипта/

Re: RecentScreens — переключение между окнами как в MS Windo

Posted: Tue 23 Apr, 2013 21:39
by Shmuel

Code: Select all

local switchInstant = S.switchInstant==nil and true or S.switchInstant
"and true" - лишнее.

Code: Select all

local Lock = { ['Num']=0, ['Caps']=1, ['Scroll']=2 }
Можно короче:

Code: Select all

local Lock = { Num=0, Caps=1, Scroll=2 }

Re: RecentScreens — переключение между окнами как в MS Windo

Posted: Tue 23 Apr, 2013 21:41
by John Doe

Code: Select all

local switchInstant = S.switchInstant==nil and true or S.switchInstant
"and true" - лишнее.
Не совсем так.
true выступает как дефолтное значение, применяемое при отсутствии записи в базе.

А со вторым однозначно перемудрил )

Re: RecentScreens — переключение между окнами как в MS Windo

Posted: Tue 23 Apr, 2013 21:48
by Shmuel
John Doe wrote:

Code: Select all

local switchInstant = S.switchInstant==nil and true or S.switchInstant
"and true" - лишнее.
Не совсем так.
true выступает как дефолтное значение, применяемое при отсутствии записи в базе.
А вы подумайте ещё.

Re: RecentScreens — переключение между окнами как в MS Windo

Posted: Tue 23 Apr, 2013 21:54
by John Doe
Что тут думать, вы безусловно правы в том, что СЕЙЧАС его можно безболезненно отбросить, упростив таким образом выражение.
Но представьте, что там не значение, а переменная switchInstantDefault