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

Здесь обсуждается всё, что касается макросов.
User avatar
SUSim
Posts: 1472
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 4 times
Been thanked: 3 times

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

Post by SUSim » Sun 06 Jan, 2013 03:40

Latest post of the previous page:

Придумал - в Common макросе добавил область Shell :)
SimSU ··· ·· -- ··· ··-

User avatar
zg
zero-gravity
Posts: 5246
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 42 times
Contact:

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

Post by zg » Sun 06 Jan, 2013 12:14

а нужна ли в текущей ситуации область common?

User avatar
SUSim
Posts: 1472
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 4 times
Been thanked: 3 times

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

Post by SUSim » Sun 06 Jan, 2013 12:25

лучше оставить, а то перечислять очень много...
SimSU ··· ·· -- ··· ··-

User avatar
zg
zero-gravity
Posts: 5246
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 42 times
Contact:

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

Post by zg » Sun 06 Jan, 2013 12:51

SUSim wrote:лучше оставить, а то перечислять очень много...
внутри фара. при задании области коммон просто раскрывать макрос на все области.

User avatar
Aidar
Posts: 524
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 7 times
Been thanked: 6 times
Contact:

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

Post by Aidar » Sun 06 Jan, 2013 20:06

zg wrote:
SUSim wrote:лучше оставить, а то перечислять очень много...
внутри фара. при задании области коммон просто раскрывать макрос на все области.
По-моему, не нужно.
Текущее поведение позволяет перекрыть общий макрос в Common специальным для конкретной области (напр., Shell).
Кроме того, в текущем варианте для области Shell выберется Shell-макрос, а при раскрытии (и равенстве приоритетов) будет меню из двух макросов - из Common-Shell и из Shell.
Кому нужно второе поведение, тот впишет дополнительно к Common область Shell - как это сделал SUSim.

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

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

Post by John Doe » Tue 15 Jan, 2013 14:01

shmuel 13.01.2013 11:40:40 +0200 - build 3078 wrote:

Code: Select all

1.4. Спецификации ключей не имеют приоритетов друг перед другом.
     Если есть макросы 1 (key="RCtrlX"), 2 (key="CtrlX") и 3 (key="/.CtrlX/"), то при нажатии RCtrlX все они
     будут рассматриваться на одинаковых основаниях, а выбор будет производиться по совокупности заданных полей:
     flags (включая возможный вызов callback для макросов MCTL_ADDMACRO), condition и priority.
Т.е. просто "перегрузить" обобщённое значение точным (как раньше) теперь нельзя.
Нет больше такого механизма.
Надо использовать приоритеты (или условия).

Но что такое этот callback?

Shmuel
Posts: 5154
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 14 times
Been thanked: 144 times

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

Post by Shmuel » Tue 15 Jan, 2013 14:11

John Doe wrote:Т.е. просто "перегрузить" обобщённое значение точным (как раньше) теперь нельзя.
Нет больше такого механизма.
Надо использовать приоритеты (или условия).
Этот механизм убран, потому что получалось слишком много механизмов, а условия или приоритеты успешно решают эту же задачу.
John Doe wrote:Но что такое этот callback?
Это актуально только для плагинописателей. Плагин может добавить макросы во время своей работы (см. MCTL_ADDMACRO), а callback в этом случае является аналогом condition (только он не на Lua, а на C, Pascal и т.п.).

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

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

Post by John Doe » Tue 15 Jan, 2013 14:21

shmuel 13.01.2013 11:40:40 +0200 - build 3078 wrote:

Code: Select all

1.6. Макросы, назначенные на область "Common", имеют приоритет по умолчанию = 40.
Т.е. поведение по умолчанию не изменилось, и например макрос из Shell перекроет Common.
Но при необходимости можно поднять приоритет макроса из Common, и тогда он будет иметь приоритет.

Стало гибче. Имхо слишком гибко.

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

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

Post by John Doe » Tue 15 Jan, 2013 14:34

Возвращаясь к прошлому обсуждению:
Shmuel wrote:
John Doe wrote:Зачем множить сущности?
Я вижу только усложнение.
Со стороны это может показаться так. Детально объяснять сейчас нет времени. Когда что-то живое появится, можно будет говорить конкретнее.
Живое появилось, и хотелось бы поговорить конкретнее.


Т.е. появилась новая сущность, да ещё и с собственным форматом.
1) Почему бы не продолжать хранить их как раньше и в прежнем формате?
2) Почему вообще понадобилось отдельная сущность?

User avatar
NightRoman
Posts: 5849
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

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

Post by NightRoman » Tue 15 Jan, 2013 14:47

Наверное, потому что это дает больший контроль над тем, что определено файлом клавиатурного макроса. Если бы это был обычный макро-скрипт, то он мог бы все что угодно делать и кучу макросов определить или ни одного. А тут ожидается конкретно определение данных для одного единственного макроса. Мне такой подход понятен вроде.

Мне только интересно из любопытства - имена файлов клавиатурных макросов существенны?

Shmuel
Posts: 5154
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 14 times
Been thanked: 144 times

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

Post by Shmuel » Tue 15 Jan, 2013 14:59

John Doe wrote:Зачем понадобилась новая отдельная сущность, да ещё и с собственным форматом?
Почему бы не продолжать хранить их как раньше и в прежнем формате?
Макросы, записываемые с клавиатуры, выделены в отдельную сущность, поскольку, в отличие от "стационарных" макросов, они:
1. Являются "read-write" (стационарные являются "read-only").
2. Являются средством временной автоматизации, то-есть покрывают какие-то сиюминутные нужды, после чего обычно удаляются. Их "сиюминутность" обуславливает их высокий приоритет. Если такой макрос оказался полезным в долговременном плане (что бывает редко), его следует сделать стационарным.

Что касается их формата, то это - детали реализации. На данный момент выбран самый простой из всех форматов. Вообще, пользователю не рекомендуется полагаться на детали содержимого папки internal. Нет гарантии неизменности форматов макросов, имён файлов и прочих деталей внутри этой папки.
NightRoman wrote:Мне только интересно из любопытства - имена файлов клавиатурных макросов существенны?
Да, они более чем существенны - при удалении или модификации этих макросов. Не исключено, что поля "area" и "key" будут вообще убраны из содержимого этих файлов, а останутся только в имени.

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

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

Post by John Doe » Tue 15 Jan, 2013 15:05

1. Являются "read-write" (стационарные являются "read-only").
Правильно ли я понимаю, что основная причина выделения их в отдельную сущность состоит в том, что реализация "write" для стационарных проблематична?
Если такой макрос оказался полезным в долговременном плане (что бывает редко), его следует сделать стационарным.
Будь они в одном формате - это существенно упростило бы такой перенос.

User avatar
NightRoman
Posts: 5849
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

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

Post by NightRoman » Tue 15 Jan, 2013 15:06

Да, они более чем существенны - при удалении или модификации этих макросов. Не исключено, что поля "area" и "key" будут вообще убраны из содержимого этих файлов, а останутся только в имени.
Да, это я и имел в виду. Если инфа в имени файла, то внутри как-то некошерно повторять. (Но это так, типа дублирование *почти* всегда плохо).

Shmuel
Posts: 5154
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 14 times
Been thanked: 144 times

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

Post by Shmuel » Tue 15 Jan, 2013 15:16

John Doe wrote:
1. Являются "read-write" (стационарные являются "read-only").
Правильно ли я понимаю, что основная причина выделения их в отдельную сущность состоит в том, что реализация "write" для стационарных проблематична?
Реализация "write" для стационарных просто не нужна. Открывается редактор, в нём эта функциональность уже имеется.
John Doe wrote:
Если такой макрос оказался полезным в долговременном плане (что бывает редко), его следует сделать стационарным.
Будь они в одном формате - это существенно упростило бы такой перенос.
Согласен, но поскольку данные макросы обычно короткие и простые, а необходимость в переносе возникает редко, то и проблемы как бы нет.

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

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

Post by John Doe » Tue 15 Jan, 2013 15:29

Shmuel wrote:
John Doe wrote:
1. Являются "read-write" (стационарные являются "read-only").
Правильно ли я понимаю, что основная причина выделения их в отдельную сущность состоит в том, что реализация "write" для стационарных проблематична?
Реализация "write" для стационарных просто не нужна. Открывается редактор, в нём эта функциональность уже имеется.
Как-бы нужна.
В идеале хочется нажать клавишу, получить список назначенных на неё макросов, и чтобы редактор открылся с нужным файлом, и в нужном месте.
Shmuel wrote:
John Doe wrote:Будь они в одном формате - это существенно упростило бы такой перенос.
Согласен, но поскольку данные макросы обычно короткие и простые, а необходимость в переносе возникает редко, то и проблемы как бы нет.
Многие сложные макросы начинаются с простого.
Да и вообще удобно начинать макрос с клавиатуры, чтобы фар создал "шаблон". Особенно для неподготовленного пользователя


И наличие избыточных сущностей мне видится проблемой.
Начиная с того, что это сложно в понимании.

Обсуждаем ли вообще вариант событий с объединением макросов обратно, в один тип?

User avatar
NightRoman
Posts: 5849
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

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

Post by NightRoman » Tue 15 Jan, 2013 15:49

John Doe
Критичный подход - это хорошо. Но ты не нагнетаешь черезчур?
В идеале хочется нажать клавишу, получить список назначенных на неё макросов, и чтобы редактор открылся с нужным файлом, и в нужном месте.
Может быть, ну и что. Много чего в Фаре хочется еще, "что б само".
Да и вообще удобно начинать макрос с клавиатуры, чтобы фар создал "шаблон". Особенно для неподготовленного пользователя

Да не поможет это неподготовленному пользователю. А шаблонов полно в аддонах.

Shmuel
Posts: 5154
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 14 times
Been thanked: 144 times

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

Post by Shmuel » Tue 15 Jan, 2013 15:52

John Doe wrote:В идеале хочется нажать клавишу, получить список назначенных на неё макросов, и чтобы редактор открылся с нужным файлом, и в нужном месте.
Никто не против. Это никак не нарушает общую концепцию. (Качественные патчи принимаются).
John Doe wrote:И наличие избыточных сущностей мне видится проблемой.
Начиная с того, что это сложно в понимании.

Обсуждаем ли вообще вариант событий с объединением макросов обратно, в один тип?
1. Не разделяю ваше вИдение.
2. Обсуждать можно всё. Лично я необходимости в "объединении обратно" не ощущаю. Но я здесь не диктатор, просто на данном этапе занимаюсь макросами больше других. И далеко не все решения принимаю единолично.
То-есть, пожалуйста, обсуждайте, если переубедите меня - хорошо. Единственно, у меня нет возможности отвечать на каждое сообщение на тему макросов в форуме, увы.

Post Reply

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