Поведение, когда нужно сделать выбор из нескольких макросов

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

Re: Поведение, когда нужно сделать выбор из нескольких макро

Post by John Doe »

Latest post of the previous page:

К чёрту стандартное поведение, всё банальнее.

Alt должен быть Альтом.
Он не может быть в одном месте альтом а в другом шифтом.

Если у нас Alt - это "Левый Альт", значит везде должен иметься ввиду Левый.
Если у нас Alt - это "Любой Альт", значит везде должен иметься ввиду Любой.

Мне по большому счёту всё равно будет он Левым или Любым.
Я хочу лишь чтобы значение Alt было ОДНО И ТО ЖЕ.

P.S.
"Авторскую" же позицию мы вообще так и не узнали.
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: Поведение, когда нужно сделать выбор из нескольких макро

Post by zg »

John Doe wrote:Если у нас Alt - это "Левый Альт", значит везде должен иметься ввиду Левый.
так и было ещё совсем недавно.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: Поведение, когда нужно сделать выбор из нескольких макро

Post by John Doe »

Было или не было - вопрос второй.

Главное: значение должно быть одно. Одинаковое. Везде.
И непонятно что тут (в вопросе единообразия) вообще можно обсуждать.

Какое приняли значение - такое и надо реализовывать.
Не нравится "Любой Альт" - давайте вернём Левый.

Но не годится чтоб один разработчик гнул свою линию, а второй - свою. Договоритесь, а?
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Re: Поведение, когда нужно сделать выбор из нескольких макро

Post by Smitis »

Что-то ещё с удалением макросов надо делать (которое через Ctrl. Ctrl.) Раньше такой макрос удалялся до перезагрузки макросов (имею ввиду период, когда макросы уже начали хранится в файлах, но ещё были "обычными"). Теперь предлагается удаление, причём только одного макроса из нескольких, но реального удаления не происходит. Удаление работает только для макросов, добавленых вручную, а для макросов из файлов надо предупреждение, что ли, выдавать.
Разум когда-нибудь победит.
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

Re: Поведение, когда нужно сделать выбор из нескольких макро

Post by 2useven10 »

Приведение правых модификаторов к левым было вполне актуально, когда на каждый модификатор надо было вешать свой макрос. В свете новых возможностей это скорее анахронизм, можно и выкинуть. Хотя желающие включить слюноразбрызгиватель и тогда вполне могут найтись. Так как фичу добавлял я, могу сделать опцию с умолчанием OFF. К сожалению, раньше чем через неделю заняться этим не смогу...
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: Поведение, когда нужно сделать выбор из нескольких макро

Post by Shmuel »

2useven10 wrote:Так как фичу добавлял я, могу сделать опцию с умолчанием OFF. К сожалению, раньше чем через неделю заняться этим не смогу...
Там уже всё сильно изменилось. И функции GetIndex больше нет.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Поведение, когда нужно сделать выбор из нескольких макро

Post by Max Rusov »

Ну так может все таки сделать так, чтобы regexp'ы работали по стандартным правилам? "Проблема" не стоит выведенного яйца - я даже код привел.
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Re: Поведение, когда нужно сделать выбор из нескольких макро

Post by Smitis »

А это, вообще, очень восстребовано - различать правый и левый модификаторы? Может проще их в condition с побитовой проверкой? А то их три и каждый может быть как левым, так и правым, в любом сочетании.
Разум когда-нибудь победит.
User avatar
SUSim
Posts: 1633
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 9 times
Been thanked: 25 times

Re: Поведение, когда нужно сделать выбор из нескольких макро

Post by SUSim »

Почему 3 различных? различных только две пары LAlt-RAlt, LCtrl-RCtrl, а третий модификатор Shift это одна клавиша хоть и разнесённая, или вы про Win - это не модификатор с точки зрения Фара это две клавиши LWin и RWin.
С битами в кондитион как-то возится не охота...
SimSU ··· ·· -- ··· ··-
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Re: Поведение, когда нужно сделать выбор из нескольких макро

Post by Smitis »

Теоретически, левый и правый Shift то же можно различать.
А что бы не возится с битами - именованные константы. Или даже внутренняя функция, возвращаяющая логическое значение. Извращатся можно любым безумным способом
key="CtrlAltShiftA"; condition=shifts(RCtrl,LCtrl,LAlt)
- одновременно нажаты два Ctrl, левый Alt, любой Shift и A. :)
Разум когда-нибудь победит.
User avatar
SUSim
Posts: 1633
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 9 times
Been thanked: 25 times

Re: Поведение, когда нужно сделать выбор из нескольких макро

Post by SUSim »

И всё таки, при нескольких макросах на одну клавишу, для которой есть стандартное действие FARа, при появлении меню (макросы с одинаковым приоритетом), надо добавить в меню стандартную клавишу FARа и ничего не делать при отмене меню!
SimSU ··· ·· -- ··· ··-
EGez
Posts: 145
Joined: Thu 04 Oct, 2012 13:53
Location: Hamburg, DE
Has thanked: 2 times
Been thanked: 2 times

Re: Поведение, когда нужно сделать выбор из нескольких макро

Post by EGez »

John Doe wrote:Недовольные говорите?
Не знаю кто тут недоволен, а я лично искренне и глубоко недоумеваю.

Действительно ли будет хорошим решением, если "/RAlt/" не перекроет "Alt"??
Может я просто чего-то не понимаю?
Объясните хоть кто-нибудь, раз автор обиделся.
Данное перекрывание, на старый лад, реализованно в самом Фаре, если же вы хотите использовать регулярные выражения, тогда, по моему, придется вообще все клавиши делить на LAlt/RAlt, LCtrl/RCtrl и выкинуть при этом Alt (как AnyAlt) и Ctrl (как AnyCtrl). В таком случае AnyAlt придется задавать регулярным выражением /.Alt/, а конкретные как /LAlt/ и /RAlt/.

Если же клавиши не разделить, то как вы думаете, Фар угадает, что было нажато, Alt (как AnyAlt) или Alt (как LAlt/RAlt)?? И правильно вам сказали, у регулярных выражений есть только "да, подходит" и "нет, не подходит", и нет таких понятий как "это подходит больше чем то". А дальше, сформировав один раз название клавиш и передав его на поиск по регулярным выражениям мы получаем ровно то, что нам скажут эти регулярные выражения. И менять это поведение на ДАННОМ УРОВНЕ никакого смысла нет, ибо тогда оно уже будет называться извращением.

И получается, все еще на старый лад, что /R?Alt/ вовсе не обязан перекрыть /.Alt/ или "Alt", т.к. "да, подходит" действительно для двоих, а там уже либо кто вперед, либо приоритет.

EDIT:
Либо, еще вариант, перебирать все возможности, сначала искать по старому и по регулярным выражениям для клавиш с модификаторами как есть и повторять поиск постепенно вынимая все модификаторы по одному.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Поведение, когда нужно сделать выбор из нескольких макро

Post by Max Rusov »

EGez wrote:...много букв...
Вам не кажется, что все эти теоретические рассуждения опровергаются практикой?

И все работает.
baldr
Posts: 16
Joined: Wed 07 Mar, 2012 11:10

Re: Поведение, когда нужно сделать выбор из нескольких макро

Post by baldr »

Max Rusov wrote:Вам не кажется, что все эти теоретические рассуждения опровергаются практикой?

И все работает.
Это работает в стоковом Far? "Сомненья смутные меня терзают." ;-)

Идея ведь не в том, что MacroLib (честь ей и хвала) работает так, а в том, что в оригинале так не удаётся.

Вкратце (как неоднократно уже сказано было): просто "Alt" или "Ctrl" или "Shift" -- это любой из них, а при конкретном указании -- конкретный (c "Shift", если верно помню, всё непросто). Ну и как с селекторами в CSS -- более специфицированный бьёт.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: Поведение, когда нужно сделать выбор из нескольких макро

Post by Shmuel »

baldr wrote:Идея ведь не в том, что MacroLib (честь ей и хвала) работает так, а в том, что в оригинале так не удаётся.
Ну почему не удаётся? Просто "о вкусах не спорят". Макролибовское решение вполне нормальное и рабочее, но это не значит, что оно единственное или самое лучшее. То, что сделано сейчас в Фаре, это было первое приближение (и прошла всего неделя). Будут внесены коррекции, но по всей вероятности решение будет отличаться от макролибовского.
User avatar
SUSim
Posts: 1633
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 9 times
Been thanked: 25 times

Re: Поведение, когда нужно сделать выбор из нескольких макро

Post by SUSim »

Что-то надо делать с коммон:
есть макрос в Shell с приоритетом 0,
есть макрос в Common с приоритетом 50.
Ожидал что Common макрос перекроет Shellовский, ан нет...
Что посоветуете?
SimSU ··· ·· -- ··· ··-
Post Reply

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