Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hotkeys problem in "Plugin commands" (F11) for Lua macros #61

Closed
sorcodiv opened this issue Apr 21, 2024 · 7 comments
Closed

Hotkeys problem in "Plugin commands" (F11) for Lua macros #61

sorcodiv opened this issue Apr 21, 2024 · 7 comments

Comments

@sorcodiv
Copy link

При назначении "горячих клавиш" макросам в меню плагинов (F11) столкнулся с проблемой смены горячих клавиш при изменении состава макросов. Воспроизвести можно без изменения установленных макросов, достаточно различия в area.
Проиллюстрировать можно простым макросом, который добавляет разные пункты меню в разных area.
Назначаю hotkey "b" только для второго пункта меню в панелях. В редакторе hotkey "b" уже присвоен другому макросу.
Кстати, на чистом профиле, если назначить горячую клавишу только для макроса, то она не будет отображаться, пока не назначить горячую клавишу для любого плагина.

F11 (panel):
Hotkey A
b Hotkey B
Hotkey C

F11 (editor):
Hotkey B
b Hotkey C

Версия far2m 2.6.0-2024-03-12-4906958.
В профиле hotkey прописывается так: ~/.config/far2m/plugins/state.ini
luamacro@8b422a4d00b9d6d6:Hotkey#2=b

Код макроса:

local function Main(cmd)
  far.Message(cmd, "debug", ";OK")
end

MenuItem {
  description = "HotkeyA";
  menu   = "Plugins";
  area   = "Shell";
  guid   = "4F9368C4-38E8-4548-B727-56D8BA05BB99";
  text   = function() return "Hotkey A" end;
  action = function() Main("Hotkey A") end;
}

MenuItem {
  description = "HotkeyB";
  menu   = "Plugins";
  area   = "Shell Editor";
  guid   = "EA448C67-2238-437B-837F-1E6CFB1EC568";
  text   = function() return "Hotkey B" end;
  action = function() Main("Hotkey B") end;
}

MenuItem {
  description = "HotkeyC";
  menu   = "Plugins";
  area   = "Shell Editor Dialog";
  guid   = "7864AEEC-DB2F-4D8B-8926-FAA65EAAFE25";
  text   = function() return "Hotkey C" end;
  action = function() Main("Hotkey C") end;
}

@shmuz
Copy link
Owner

shmuz commented Apr 21, 2024

Кстати, на чистом профиле, если назначить горячую клавишу только для макроса, то она не будет отображаться, пока не назначить горячую клавишу для любого плагина.

Вот это вроде починил.

@shmuz
Copy link
Owner

shmuz commented Apr 21, 2024

При назначении "горячих клавиш" макросам в меню плагинов (F11) столкнулся с проблемой смены горячих клавиш при изменении состава макросов.

Эта проблема есть и в Far3.
Скорее всего устранить её без серьёзных переделок в Фаре не получится.
Попробуйте на Far3, и если убедитесь, что проблема есть, то можно открыть Issue для Far3.

@sorcodiv
Copy link
Author

Эта проблема есть и в Far3.

нет, в far3 пример макроса работает корректно:

F11 (panel):
Hotkey A
b Hotkey B
Hotkey C

F11 (editor):
b Hotkey B
Hotkey C

связка хранится в Profile\pluginhotkeys.db в виде:
pluginkey: 4EBBEFC8-2084-4B7F-94C0-692CE136894D
menuguid: EA448C67-2238-437B-837F-1E6CFB1EC568
type: 1
hotkey: b

@shmuz
Copy link
Owner

shmuz commented Apr 21, 2024

Да, по-видимому я неправильно истолковал результат опыта на Far3.
Но в far2 у пунктов меню нет гуидов, а лишь порядковые номера. Если я это переделаю на манер Far3, то все не мои плагины перестанут работать.

@sorcodiv
Copy link
Author

Т.е. правильным выглядит вариант реализовать menuguid в far2l (для всех плагинов), а затем портировать в far2m? Я в принципе могу завести issue на far2l, но понимаю, что это, наверное, на самая приоритетная задача будет.

@shmuz
Copy link
Owner

shmuz commented Apr 21, 2024

Я в принципе могу завести issue на far2l, но понимаю, что это, наверное, на самая приоритетная задача будет.

Если будете заводить, то сразу стоит порекомендовать использовать структуры из Far3: PluginMenuItem и PluginInfo - оно там красиво сделано. Но какова будет (и будет ли) на это реакция автора far2l, неизвестно.

@shmuz
Copy link
Owner

shmuz commented Jul 10, 2024

Можно проверять.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants