Лево-/правосторонние модификаторы в макросах

Здесь обсуждается всё, что касается макросов.
User avatar
John Doe
Бюрократ
Posts: 11026
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 9 times
Been thanked: 61 times

Re: Названия клавиш и InputRecordToName

Postby John Doe » Wed 27 Feb, 2013 14:21

Latest post of the previous page:

Max Rusov wrote:Регэкспы экзотика потому, что в 99% случаев они не нужны. Обычно макрос привязан к одной клавише.
У меня другая статистика.
Возьмём к примеру ваш набор макросов для Console Control

2 макроса с регэкспами
6 макросов без, из них 3 привязаны не "к одной клавише", и их можно привязать к регекспу.

Тогда получится 5 "с" и 3 "без"

User avatar
Max Rusov
Posts: 3599
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Been thanked: 6 times
Contact:

Re: Названия клавиш и InputRecordToName

Postby Max Rusov » Wed 27 Feb, 2013 14:41

Выборка маловата. Вот у меня всего 129 fml макросов, из них 8 c регэкспами. А fml позволял регэкспы уже давно...

И если "не к одной клавише" то это еще не значит, что нужен регэксп. Ими вообще лучше не злоупотреблять, не бесплатно...

Acerbic
Posts: 80
Joined: Wed 07 Apr, 2010 12:30
Been thanked: 1 time

Re: Названия клавиш и InputRecordToName

Postby Acerbic » Sat 20 Apr, 2013 00:02

Недавно сам столкнулся.
Хотел послать в Keys() комбинации типа "ShiftQ", а он их не понимает. Притом с другими модификаторами всё гуд, а с шифтом одним - нини. Можно конечно посылать уже обработанные клавиши, тогда возникают потенциально заморочки с CapsLock и национальными раскладками клавиатур. Вообще кто-нибудь знает как из имени клавиши с модификаторами получить маппинг на юникодный символ в текущей раскладке с учётом капса? Через Win API только, мнится мне.

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

Spring — внедрение Lua в качестве макроязыка

Postby HaRT » Fri 06 May, 2016 13:47

Shmuel wrote:
John Doe wrote:key="/RCtrlRAlt(.+)/";
Source of the post А что с этим key не в порядке? У меня работает.
Прошу помощи. Пишу простенький тестовый макрос: Macro { area = "Menu MainMenu UserMenu"; key = 'AltW'; code = [[far.Message'OK']] } — работает (например, в меню плагинов). Как только делаю key = '/AltW/'; (хочу позже вставить более развесистую регулярку) — не работает (ничего не происходит). Куда копать?
Фар есть инструмент, а не нянька. © 2009 DrKnS

Shmuel
Posts: 4906
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 10 times
Been thanked: 118 times

RegExp & Lua patterns

Postby Shmuel » Fri 06 May, 2016 14:14

В регулярных выражениях для key не может быть просто Alt, приходит LAlt или RAlt. Таким образом, простейший фикс это /.Alt/ или длиннее - /[LR]Alt/.

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

RegExp & Lua patterns

Postby HaRT » Fri 06 May, 2016 16:18

Shmuel wrote:Source of the post key не может быть просто Alt, приходит LAlt или RAlt
При этом akey(1) возвращает AltW без L — неинтуитивно, но как быть, ясно.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Shmuel
Posts: 4906
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 10 times
Been thanked: 118 times

RegExp & Lua patterns

Postby Shmuel » Fri 06 May, 2016 16:25

HaRT wrote:Source of the post При этом akey(1) возвращает AltW без L — неинтуитивно, но как быть, ясно.
Не совсем так. Для правого альта возвращается RAltW.
Это - прежнее (до Lua) поведение, оставленное таковым для сохранения совместимости (или из лени).

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

RegExp & Lua patterns

Postby John Doe » Sun 08 May, 2016 15:12

Shmuel wrote:Source of the post для сохранения совместимости
Хочу обратить внимание, что в апи плагинов используется именно та нотация, что в akey.
На практике в нескольких скриптах ввиду использования обоих апи приходится переводить одну нотацию в другую, что довольно хлопотно (и вообще источник множества потенциальных ошибок).

Собственно к чему я это: изменить поведение akey можно, но не уверен что стоит. Хотелось бы более общего решения.

Smitis
Posts: 1427
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 9 times
Been thanked: 21 times
Contact:

RegExp & Lua patterns

Postby Smitis » Sun 08 May, 2016 18:01

John Doe wrote:Хотелось бы более общего решения.
Ага, а ещё есть far.Menu вообще со своим обозначением BreakKey.
И far.InputRecordToName, с тем же результатом, что и akey
Разум когда-нибудь победит.

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

Лево-/правосторонние модификаторы в макросах

Postby John Doe » Mon 09 May, 2016 12:32

Smitis wrote:Source of the post Ага, а ещё есть far.Menu вообще со своим обозначением BreakKey.
Это отдельное неудобство, не столь существенное, да и легче поправимое.


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

Who is online

Users browsing this forum: No registered users and 1 guest