[Модуль] Регистрация хоткеев на плагины и скрипты

Здесь обсуждается всё, что касается макросов.
Post Reply
User avatar
Tim Sobolev
Posts: 729
Joined: Fri 01 Apr, 2005 14:46
Location: Украина
Has thanked: 1 time
Been thanked: 7 times

[Модуль] Регистрация хоткеев на плагины и скрипты

Post by Tim Sobolev »

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

Текст модуля (версия 1.5) :

Примеры:
  • Регистрация плагинов:
Last edited by Tim Sobolev on Sun 09 Jan, 2022 13:24, edited 3 times in total.
User avatar
John Doe
Бюрократ
Posts: 13851
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: Регистрация хоткеев на плагины и скрипты

Post by John Doe »

Пример использования для регистрации хоткеев скрипта?
Update: Из кода функции ScriptInfo можно понять.
Но если при написании каждого определения придётся возвращаться к коду модуля, то в чём вообще профит??

Выводы на основании беглого ознакомления
Отсутствие документации не позволит нормально пользоваться вашим модулем.
Нужен список полей pluginInfo, тем более он разный в зависимости от способа вызова плагина.
Пока что я не в состоянии представить чем это может быть удобнее традиционного Macro.
ИМХО это тот случай когда компактность не окупается, и быстрее и понятнее использовать стандартные средства LuaMacro.

А вот регистрация в кейбаре это интересно (связанная тема на форуме: Хоткеи макросов на линейке клавиш).
К сожалению о возможностях, ограничениях и деталях реализации ни слова.

Некоторые соображения по использованию переменных
  1. far - cтандартная таблица LuaFAR, писать в неё какие-то внутренние переменные не стоит
  2. far заведомо глобальна, и адресовать её через _G нет нужды.
  3. Да и вообще, глобальные переменные модуля (в отличии от переменных макросов) всегда попадают в окружение _G, поэтому нет необходимости адресовать _G явно.
  4. Модуль не должен устанавливать глобальные переменные.
    И в вашем случае они вообще-то и не нужны, ничего не изменится если заменить их на локальные
    (т.е. добавить в начало модуля local keybarEditor,keybarViewer,keybarPanel,KeyBar,lang,vk).
  5. Macro и Event можно не передавать из функции в функцию, а запомнить в локальных переменных, общих для всех использующих её функций (т.е. объявленных в начале модуля). Это конечно не принципиально, но зато разгружает интерфейс функций, а значит разобраться в коде проще (документация ведь не предусмотрена)
User avatar
John Doe
Бюрократ
Posts: 13851
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: Регистрация хоткеев на плагины и скрипты

Post by John Doe »

Что если мы захотим использовать реализованную вами функцию отображения хоткеев макросов на линейке клавиш c привычным способ определения макросов с помощью Macro {...} ?

Сделать это очень просто, берём ваш модуль целиком, и комментируем в конце блок .
Далее дописываем вот этот код:
Вот и всё, теперь мы можем использовать модуль вот так:
P.S.
Динамически переопределять метки хоткеев можно только в областях Editor и Viewer, это ограничение API фара.


Не буду мусорить в вашей теме, лучше продолжу изначальную Хоткеи макросов на линейке клавиш
User avatar
Tim Sobolev
Posts: 729
Joined: Fri 01 Apr, 2005 14:46
Location: Украина
Has thanked: 1 time
Been thanked: 7 times

Регистрация хоткеев на плагины и скрипты

Post by Tim Sobolev »

Обновил до последней версии, что в наличии (1.5), обновил примеры. Смотреть в шапке.
Last edited by Tim Sobolev on Sun 09 Jan, 2022 13:23, edited 1 time in total.


Last bumped by Tim Sobolev on Sun 09 Jan, 2022 13:22.
Post Reply

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