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

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

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

Post by SUSim »

Latest post of the previous page:

Придумал - в Common макросе добавил область Shell :)
SimSU ··· ·· -- ··· ··-
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 »

а нужна ли в текущей ситуации область common?
User avatar
SUSim
Posts: 1633
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 9 times
Been thanked: 25 times

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

Post by SUSim »

лучше оставить, а то перечислять очень много...
SimSU ··· ·· -- ··· ··-
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 »

SUSim wrote:лучше оставить, а то перечислять очень много...
внутри фара. при задании области коммон просто раскрывать макрос на все области.
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

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

Post by Aidar »

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

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: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

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

Post by Shmuel »

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

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: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

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


Т.е. появилась новая сущность, да ещё и с собственным форматом.
1) Почему бы не продолжать хранить их как раньше и в прежнем формате?
2) Почему вообще понадобилось отдельная сущность?
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

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

Мне только интересно из любопытства - имена файлов клавиатурных макросов существенны?
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

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

Post by Shmuel »

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

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

1. Являются "read-write" (стационарные являются "read-only").
Правильно ли я понимаю, что основная причина выделения их в отдельную сущность состоит в том, что реализация "write" для стационарных проблематична?
Если такой макрос оказался полезным в долговременном плане (что бывает редко), его следует сделать стационарным.
Будь они в одном формате - это существенно упростило бы такой перенос.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

Да, они более чем существенны - при удалении или модификации этих макросов. Не исключено, что поля "area" и "key" будут вообще убраны из содержимого этих файлов, а останутся только в имени.
Да, это я и имел в виду. Если инфа в имени файла, то внутри как-то некошерно повторять. (Но это так, типа дублирование *почти* всегда плохо).
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

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

Post by Shmuel »

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

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


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

Обсуждаем ли вообще вариант событий с объединением макросов обратно, в один тип?
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

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

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

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