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

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

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

Post by John Doe » Sun 20 Jul, 2014 00:42

Есть полезнейшая возможность в 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 75 times

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

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

Post by John Doe » Sun 20 Jul, 2014 17:04

Предлагаю модуль MacroEx, реализующий требуемую функциональность (с некоторыми ограничениями).

AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

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

Post by AleXH » Mon 21 Jul, 2014 06:05

hold/doubletap-макросы имеют приоритет перед обычными, что позволяет им более-менее прозрачно сосуществовать
между собой их (hold/doubletap) тоже надо проранжировать

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

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

Post by John Doe » Mon 21 Jul, 2014 14:03

Небольшое усовершенствование.
— hold/doubletap-макросы имеют приоритет перед обычными, что позволяет им более-менее прозрачно сосуществовать
— можно задать hold и doubletab одновременно

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

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

Post by John Doe » Tue 22 Jul, 2014 18:39

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

Надеюсь, что подобное когда-нибудь будет реализовано и в LuaMacro.

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

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

Post by John Doe » Tue 29 Jul, 2014 20:12

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

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

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

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

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

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

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

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

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

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

Post by John Doe » Thu 07 Aug, 2014 22:43

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

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

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

P.S.
Дальнейшее развитие будет идти в направлении, описанном тут (если конечно не будет лучших предложений).

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

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

Post by John Doe » Mon 18 Aug, 2014 00:58

Обновление:
  • MacroEx больше не является модулем, его не требуется как-то подключать, для использования достаточно поместить в папку scripts.
  • Больше нет никакого особого синтаксиса, вместо этого аналогично MacroLib в самом имени клавиши можно указать через двоеточие "модификаторы" Hold или Double, или вторую клавишу последовательности.
Всё в шапке.

Max Rusov
Posts: 3600
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Been thanked: 7 times

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

Post by Max Rusov » Mon 18 Aug, 2014 07:24

Синтаксис key:key2 кажется не очень удачным. Может лучше: key+key2+... ?

User avatar
Wave
Posts: 1721
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 2 times
Been thanked: 10 times

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

Post by Wave » Mon 18 Aug, 2014 08:06

А в зачем было переделывать с модуля на скрипт?
Теперь как минимум скрипты «turbo» тоже надо переделывать.
Пользуюсь ФАРом больше 15 лет © собирательный.

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

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

Post by John Doe » Mon 18 Aug, 2014 08:40

Max Rusov wrote:Синтаксис key:key2 кажется не очень удачным. Может лучше: key+key2+... ?
Да, пожалуй...
Что касается второго "+", то на данный момент не поддерживаются последовательности длиннее 2х нажатий.
И не уверен что это может быть полезно.

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

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

Post by John Doe » Mon 18 Aug, 2014 08:55

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

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

P.S.
turbo пока работает со старым модулем. Обновление выложу когда будет готово.

User avatar
HaRT
Moderator
Posts: 8118
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 68 times
Been thanked: 107 times

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

Post by HaRT » Mon 18 Aug, 2014 11:56

John Doe wrote:на данный момент не поддерживаются последовательности длиннее 2х нажатий.
И не уверен что это может быть полезно.
А как же всякие Fatality, IDDQD и т.п.? :laugh:
Фар есть инструмент, а не нянька. © 2009 DrKnS

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

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

Post by John Doe » Mon 18 Aug, 2014 12:09

:ROFL:

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

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

Post by John Doe » Tue 19 Aug, 2014 20:24

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

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

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

Post by John Doe » Tue 19 Aug, 2014 20:55

Обновление:
  • Последовательности теперь указываются через знак - (минус), например CtrlK-B.
  • В качестве модификатора теперь поддерживается и Shift.
Всё в шапке.

Update: исправлена ошибка

Post Reply

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