F11 - выделение в меню плагинов предыдущего выбранного

Здесь обсуждается всё, что касается макросов.
Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

F11 - выделение в меню плагинов предыдущего выбранного

Post by Maximus5 » Thu 06 May, 2010 22:55

Цель - открыть меню плагинов и выделить плагин, выбранный в предыдущее открытие F11 (любая область) или AltShiftF9 (файловые панели)





Примечание модератора:
lua-скрипт (Far 3) аналогичного назначения Автовыделение последнего выполненного пункта меню

AlexII
Posts: 266
Joined: Mon 10 Apr, 2006 00:53
Location: станица Григорополисская
Has thanked: 95 times
Contact:

Re: F11 - выделение в меню плагинов предыдущего выбранного

Post by AlexII » Fri 07 May, 2010 01:01

В качестве оффтопика: внешний плагин PlugMenu - Расширенное меню плагинов так делает по умолчанию.

Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

Re: F11 - выделение в меню плагинов предыдущего выбранного

Post by Maximus5 » Fri 07 May, 2010 07:44

Я в курсе, и макрос делал именно чтобы избавиться от этого плагина

User avatar
John Doe
Бюрократ
Posts: 12526
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 229 times

Re: F11 - выделение в меню плагинов предыдущего выбранного

Post by John Doe » Fri 07 May, 2010 09:47

Как вариант: весь этот набор макросов можно заменить одним "интерактивным" макросом.

User avatar
SUSim
Posts: 1534
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 5 times
Been thanked: 9 times

Re: F11 - выделение в меню плагинов предыдущего выбранного

Post by SUSim » Sat 08 May, 2010 13:10

Имхо, запоминать область лишнее: не восстанавливать позицию если перед этим вызывал из панелей, а в данный момент вызвал, например, из быстрого поиска нехорошо...
Полезно запоминать позицию если плагин вызвали хоткем!

Вот чем я пользуюсь:
SimSU ··· ·· -- ··· ··-

Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

Re: F11 - выделение в меню плагинов предыдущего выбранного

Post by Maximus5 » Sat 08 May, 2010 20:06

"Запоминать область" - не лишнее. При вызове F11 в редакторе, например, количество плагинов будет меньше чем в панелях, так что спозиционируется выделение фиг знает куда... Сейчас в принципе можно сделать ветвление по областям, но пока лень...

В идеале - было бы позиционироваться по имени плагина, но вот в макродвижке отсутствует возможность получить текст выделенного пункта меню :(

User avatar
John Doe
Бюрократ
Posts: 12526
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 229 times

Re: F11 - выделение в меню плагинов предыдущего выбранного

Post by John Doe » Sat 08 May, 2010 20:36

Menu.Value (Far Manager 2.0 build 1127)

User avatar
SUSim
Posts: 1534
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 5 times
Been thanked: 9 times

Re: F11 - выделение в меню плагинов предыдущего выбранного

Post by SUSim » Sun 09 May, 2010 08:38

Maximus5 wrote:"Запоминать область" - не лишнее. При вызове F11 в редакторе, например, количество плагинов будет меньше чем в панелях, так что спозиционируется выделение фиг знает куда... Сейчас в принципе можно сделать ветвление по областям, но пока лень...
Так разницы нет: "фиг знает куда" или на первый плагин спозиционировались! Если НЕ запоминать область, то потеря позиции происходит при смене области в меньшем количестве мест...
John Doe wrote:Menu.Value (Far Manager 2.0 build 1127)
Спасибо надо будет посмотреть :) в Энциклопедии правда не нашел...
SimSU ··· ·· -- ··· ··-

User avatar
SUSim
Posts: 1534
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 5 times
Been thanked: 9 times

Re: F11 - выделение в меню плагинов предыдущего выбранного

Post by SUSim » Sun 09 May, 2010 09:35

:) Вот, на мой взгляд, хороший вариант :) спасибо, John Doe!


А если бы существовало Menu.getValue(Pos), то кусок:
%pos=CheckHotKey(%VK);
$IF (%pos>0)
mmode(1,1)
Home $REP (%pos-1) Down $END
%%SimSULastPlugin=Menu.Value;
$END
можно было бы заменить на
%%SimSULastPlugin=Menu.getValue(CheckHotKey(%VK));
SimSU ··· ·· -- ··· ··-

User avatar
John Doe
Бюрократ
Posts: 12526
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 229 times

Re: F11 - выделение в меню плагинов предыдущего выбранного

Post by John Doe » Sun 09 May, 2010 17:42

SUSim wrote:

Code: Select all

  $IF (len(%VK)==1)
1) Не учитываются комбинации с Alt
2) Не учитывается режим фильтрации (Ctrl-Alt-F)
3) При смене регистра checkhotkey не будет работать. (надо бы на мантис запостить)
SUSim wrote:в Энциклопедии правда не нашел...
Ага, упустили. На мантис надо.

User avatar
SUSim
Posts: 1534
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 5 times
Been thanked: 9 times

Re: F11 - выделение в меню плагинов предыдущего выбранного

Post by SUSim » Sun 09 May, 2010 21:20

John Doe :) если все учитывать, тогда это не макрос а плагин получится :)
по п.1 это подумать надо, я никогда хоткеи в меню с альтом не нажимал (даже и не подозревал об этом :) )
по п.2 а причем тут это режим? позиционирование происходит пока этот режим еще не включен! или его можно как-то заранее включить?
по п.3 не понял! Макрос срабатывает и при больших и при малых хоткеях и при нажатии клавиши хоткея на клаве просто/с_Shift/в_режиме_Caps_Lokc и при изменении регистра хоткея между вызовами...

на мантис писать не буду ничего, пока в макровью хотя бы одну строчку не передвинут в другое место...
http://bugs.farmanager.com/view.php?id=1366
SimSU ··· ·· -- ··· ··-

User avatar
John Doe
Бюрократ
Posts: 12526
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 229 times

Re: F11 - выделение в меню плагинов предыдущего выбранного

Post by John Doe » Sun 09 May, 2010 22:25

SUSim wrote:Очень помогло бы Menu.getValue(%pos)
Подпрограмму легко написать самостоятельно.
SUSim wrote:по п.2 а причем тут это режим? позиционирование происходит пока этот режим еще не включен! или его можно как-то заранее включить?
Что помешает мне включить фильтрацию в процессе работы макроса?
SUSim wrote:по п.3 не понял! Макрос срабатывает и при больших и при малых хоткеях и при нажатии клавиши хоткея на клаве просто/с_Shift/в_режиме_Caps_Lokc и при изменении регистра хоткея между вызовами...
А что с Ru/En?


User avatar
SUSim
Posts: 1534
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 5 times
Been thanked: 9 times

Re: F11 - выделение в меню плагинов предыдущего выбранного

Post by SUSim » Mon 10 May, 2010 08:00

John Doe wrote:
SUSim wrote:Очень помогло бы Menu.getValue(%pos)
Подпрограмму легко написать самостоятельно.
Это понятно, если кому нибудь понадобится, то могу оформить тот кусочек в виде подпрограммы...
John Doe wrote:
SUSim wrote:по п.2 а причем тут это режим? позиционирование происходит пока этот режим еще не включен! или его можно как-то заранее включить?
Что помешает мне включить фильтрацию в процессе работы макроса?
Ничего не мешает: режим включается-макрос работает-выбранный плагин запоминается.
John Doe wrote:
SUSim wrote:по п.3 не понял! Макрос срабатывает и при больших и при малых хоткеях и при нажатии клавиши хоткея на клаве просто/с_Shift/в_режиме_Caps_Lokc и при изменении регистра хоткея между вызовами...
А что с Ru/En?
Это не ко мне :) эта неоднозначность в самом меню...

По поводу FarEncyclopedia на Mantis: кроме Menu.Value нет описания $Continue (что это вообще и как работает?)
Кстати, логично бы смотрелась команда $Comment, после которой текст не парсится до конца строки :) удобней чем используемый мной метод %comment="коментарий";. Хотя вы тут любители одно строчных макросов...
SimSU ··· ·· -- ··· ··-

User avatar
John Doe
Бюрократ
Posts: 12526
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 229 times

Re: F11 - выделение в меню плагинов предыдущего выбранного

Post by John Doe » Mon 10 May, 2010 10:43

SUSim wrote:
John Doe wrote:
SUSim wrote:по п.2 а причем тут это режим? позиционирование происходит пока этот режим еще не включен! или его можно как-то заранее включить?
Что помешает мне включить фильтрацию в процессе работы макроса?
Ничего не мешает: режим включается-макрос работает-выбранный плагин запоминается.
Ну как же: зря срабатывает условие $IF (len(%VK)==1), и соответственно далее происходит ошибочное запоминание (не говоря уже о лишнем позиционировании).
SUSim wrote:
John Doe wrote:
SUSim wrote:по п.3 не понял! Макрос срабатывает и при больших и при малых хоткеях и при нажатии клавиши хоткея на клаве просто/с_Shift/в_режиме_Caps_Lokc и при изменении регистра хоткея между вызовами...
А что с Ru/En?
Это не ко мне :) эта неоднозначность в самом меню...
В меню всё нормально - вызов срабатывает независимо от регистра. А в вашем макросе - нет.
[Баг checkhotkey() можно компенсировать с помощью xlat().]
SUSim wrote:По поводу FarEncyclopedia на Mantis: кроме Menu.Value нет описания $Continue (что это вообще и как работает?)
Советую при обновлении смотреть changelog.
[Несложно сделать так чтобы измененения автоматически выдавались на экран. Например]
SUSim wrote:Кстати, логично бы смотрелась команда $Comment, после которой текст не парсится до конца строки :) удобней чем используемый мной метод %comment="коментарий";. Хотя вы тут любители одно строчных макросов...
Отнюдь. А комментарии "мы" пишем в строках начинающихся с ;;
(Colorer в курсе)
[Сам фар такого (пока?) не понимает, но мы-то храним исходники макросов в макрофайлах.]

User avatar
SUSim
Posts: 1534
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 5 times
Been thanked: 9 times

Re: F11 - выделение в меню плагинов предыдущего выбранного

Post by SUSim » Mon 10 May, 2010 15:24

John Doe wrote:Ну как же: зря срабатывает условие $IF (len(%VK)==1), и соответственно далее происходит ошибочное запоминание (не говоря уже о лишнем позиционировании).
Аааа! понял, действительно косячок :(, буду думать, это условие $IF (len(%VK)==1) появилось только из-за того что CheckHotKey("Esc")==CheckHotKey("E") это баг фара?
John Doe wrote:В меню всё нормально - вызов срабатывает независимо от регистра. А в вашем макросе - нет.
[Баг checkhotkey() можно компенсировать с помощью xlat().]

Не всё там нормально: нажимаю Alt+а (русская раскладка, а-русская) -
ожидаю запуска Расширенное сравнение, а запускается FTP- клиент... :(
Все равно не понимаю в чем глюк? :? как повторить? или что в какой строке поправить?

Кроме того макрос отключается при нажатии F4.
Даже с этими недочетами мой вариант, я считаю, лучше исходного от Maximus5... :oops:
John Doe wrote:Советую при обновлении смотреть changelog.
Смотрю перед каждым обновлением, VisualCompare 0.9 для FAR 2 рулит :wink:
Я FAR 2 начал пользоваться только с этого года, до этого 1.71 альфа 4 была, и при чтении ~10000 строк changelog Menu.value пропустил :(. $Continue я как раз в changelog и увидел, но из "Macro: добавлен "$Continue" - для циклов" не понял как работает...
Имхо, это всё должно быть в FarEncyclopedia, а не только changelog.

John Doe wrote: А комментарии "мы" пишем в строках начинающихся с ;;
(Colorer в курсе)
[Сам фар такого (пока?) не понимает, но мы-то храним исходники макросов в макрофайлах.]
Макрофайлы это хорошо, но я хранить одно и тоже в двух местах не люблю, я макрос сразу в реестре правлю и комментарии в моем стиле ( %comment="комментарий"; ) удобнее а с $Comment или с ;; было бы еще удобнее еслиб FAR понимал...

Внимание:
Часть обсуждения выделена в отдельные темы:
SimSU ··· ·· -- ··· ··-

User avatar
SUSim
Posts: 1534
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 5 times
Been thanked: 9 times

Re: F11 - выделение в меню плагинов предыдущего выбранного

Post by SUSim » Mon 10 May, 2010 23:56

:o ВОТ СВАЯЛ :) запоминаем/восстанавливаем позицию в меню плагинов, а остальное все как было в фаре:
- хоткеи
- ALTхоткеи (даже, c тем же глюком, что и в фаре)
- режим фильтра
- ALTхоткеи в режиме фильтра
- F4
:? проще плагин написать :)

Я понял откуда непонятки: Когда просто нажимается хоткей, то фар сначала ищет в текущей раскладке, а потом во всех остальных. Когда же нажимается ALTхоткей, то фар сначала ищет в АНГЛИЙСКОЙ, а уж потом в остальных!!!
SimSU ··· ·· -- ··· ··-

Post Reply

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