MacroEx — запуск макросов нетрадиционными способами

Здесь выкладываются готовые к использованию макросы и скрипты.
User avatar
John Doe
Бюрократ
Posts: 12896
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 296 times

MacroEx — запуск макросов нетрадиционными способами

Post by John Doe »

Есть полезнейшая возможность в MacroLib — запуск макросов удержанием, двойным нажатием, и др.
Хорошо бы подобное и в родные макросы (тикет на мантисе есть).

А пока попробуем приблизится к решению задачи имеющимися средствами.

Предлагаю скрипт MacroEx, расширяющий возможности запуска макросов следующим образом:
  1. В имени клавиши через двоеточие теперь можно указывать дополнительные модификаторы Hold и Double:
    • key:Double — макрос будет выполнен при двукратном нажатии клавиши (в течении 300 мс, не отпуская клавиши-модификаторы)
    • key:Hold — макрос будет выполнен при удержании (>300 мс)
      Пример:
  2. Поддерживаются последовательности из двух нажатий, перечисленные через "-":
    • key-key2 — макрос будет выполнен при нажатии последовательности клавиш.
      Последовательность следует нажимать так: .
      Если вторая клавиша последовательности в течении секунды не будет нажата, то появится подсказка: из описаний возможных макросов.
      Пример:
    На один и тот же key можно назначить произвольное число макросов, конфликты разрешаются по правилам, принятым в LuaMacro.
    Макросы с модификаторами не лишают указанную комбинацию исходного значения: короткое нажатие выполнит исходное действие (или макрос, если назначен).
Ограничения:
  • В качестве key поддерживаются только комбинации клавиш с модификаторами Ctrl/Alt/Shift.
Установка: достаточно расположить прилагаемый macroEx.lua где-либо в scripts.
Attachments
macroEx-3.2.7z
(3.69 KiB) Downloaded 259 times
User avatar
John Doe
Бюрократ
Posts: 12896
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 296 times

Re: MacroEx — запуск макросов удержанием, двойным нажатием,

Post by John Doe »

Предлагаю модуль MacroEx, реализующий требуемую функциональность (с некоторыми ограничениями).
AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

Re: MacroEx — запуск макросов удержанием, двойным нажатием,

Post by AleXH »

hold/doubletap-макросы имеют приоритет перед обычными, что позволяет им более-менее прозрачно сосуществовать
между собой их (hold/doubletap) тоже надо проранжировать
User avatar
John Doe
Бюрократ
Posts: 12896
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 296 times

Re: MacroEx — запуск макросов удержанием, двойным нажатием,

Post by John Doe »

Небольшое усовершенствование.
— hold/doubletap-макросы имеют приоритет перед обычными, что позволяет им более-менее прозрачно сосуществовать
— можно задать hold и doubletab одновременно
User avatar
John Doe
Бюрократ
Posts: 12896
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 296 times

Re: MacroEx — запуск макросов удержанием, двойным нажатием,

Post by John Doe »

В идеале хотелось бы определять все действия независимо, например:

Надеюсь, что подобное когда-нибудь будет реализовано и в LuaMacro.
User avatar
John Doe
Бюрократ
Posts: 12896
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 296 times

Re: MacroEx — запуск макросов удержанием, двойным нажатием,

Post by John Doe »

Новая функция: запуск макросов последовательностью нажатий.

Не так давно обсуждалось в теме MacroLib.
Хотя сама идея далеко не нова, на форуме обсуждалось и раньше, а на мантисе об этом из самых первых тикетов.

Сейчас встроенные средства LuaMacro уже позволяют легко достичь похожей функциональности, используя меню конфликта макросов.
Однако такой подход накладывает ряд ограничений:

Представляю реализацию запуска макросов последовательностью нажатий без использования меню.
Особенность: функция первой клавиши, активирующей начало последовательности, не теряется!
Это важно, поскольку в фаре не так много свободных сочетаний.

Работает так: последовательность ожидается только до тех пор, пока удерживается модификатор.
Если же отпустить модификатор, то будет задействована штатная функция клавиши (или даже другой макрос, если назначен).

Следует учитывать, что такой подход накладывает свои ограничения:

Использование:

Обновлённая версия в шапке.
User avatar
John Doe
Бюрократ
Posts: 12896
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 296 times

Re: MacroEx — запуск макросов нетрадиционными способами

Post by John Doe »

Новая функция: таблица sequence может содержать поле help.
В этом случае, если в течении секунды не будет нажата следующая клавиша последовательности, то на экран будет выведено сообщение с текстом, заданным в help.

Практический пример использования можно увидеть в наборе макросов turbo — работа с выделением в редакторе.

Обновлённая версия в шапке.

P.S.
Дальнейшее развитие будет идти в направлении, описанном тут (если конечно не будет лучших предложений).
User avatar
John Doe
Бюрократ
Posts: 12896
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 296 times

Re: MacroEx — запуск макросов нетрадиционными способами

Post by John Doe »

Обновление:
  • MacroEx больше не является модулем, его не требуется как-то подключать, для использования достаточно поместить в папку scripts.
  • Больше нет никакого особого синтаксиса, вместо этого аналогично MacroLib в самом имени клавиши можно указать через двоеточие "модификаторы" Hold или Double, или вторую клавишу последовательности.
Всё в шапке.
Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 12 times

Re: MacroEx — запуск макросов нетрадиционными способами

Post by Max Rusov »

Синтаксис key:key2 кажется не очень удачным. Может лучше: key+key2+... ?
User avatar
Wave
Posts: 1773
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 4 times
Been thanked: 16 times

Re: MacroEx — запуск макросов нетрадиционными способами

Post by Wave »

А в зачем было переделывать с модуля на скрипт?
Теперь как минимум скрипты «turbo» тоже надо переделывать.
Пользуюсь ФАРом больше 20 лет © собирательный.
User avatar
John Doe
Бюрократ
Posts: 12896
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 296 times

Re: MacroEx — запуск макросов нетрадиционными способами

Post by John Doe »

Max Rusov wrote:Синтаксис key:key2 кажется не очень удачным. Может лучше: key+key2+... ?
Да, пожалуй...
Что касается второго "+", то на данный момент не поддерживаются последовательности длиннее 2х нажатий.
И не уверен что это может быть полезно.
User avatar
John Doe
Бюрократ
Posts: 12896
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 296 times

Re: MacroEx — запуск макросов нетрадиционными способами

Post by John Doe »

Wave wrote:А в зачем было переделывать с модуля на скрипт?
Модуль или нет — не принципиально, а важно другое: теперь каждое определение никак не зависит от остальных.
Это значит что отдельные макросы не обязаны быть собраны в одном общем определении, а могут быть как угодно разбиты по файлам.
И это отнюдь не мелочи, ведь теперь в одном файле легко собрать макросы c разными хоткеями, использующие общие переменные/функции.

Плюс, такая система гибче, поскольку каждый макрос может иметь собственные условия срабатывания (flags,mask,priority,condition).

P.S.
turbo пока работает со старым модулем. Обновление выложу когда будет готово.
User avatar
HaRT
Moderator
Posts: 9597
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 114 times
Been thanked: 233 times

Re: MacroEx — запуск макросов нетрадиционными способами

Post by HaRT »

John Doe wrote:на данный момент не поддерживаются последовательности длиннее 2х нажатий.
И не уверен что это может быть полезно.
А как же всякие Fatality, IDDQD и т.п.? :laugh:
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 12896
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 296 times

Re: MacroEx — запуск макросов нетрадиционными способами

Post by John Doe »

:ROFL:
User avatar
John Doe
Бюрократ
Posts: 12896
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 296 times

Re: MacroEx — запуск макросов нетрадиционными способами

Post by John Doe »

Отдельно не расписано, но обращаю внимание, что работают и все комбинации клавиш-модификаторов , и различаются правые/левые .
Post Reply

Return to “Полезные макросы и скрипты”