Page 13 of 13

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

Posted: Mon 23 Oct, 2017 07:28
by John Doe

Latest post of the previous page:

sToLp wrote: Sun 22 Oct, 2017 20:08Если, при этом, хоткеи/шорткаты, первые из содержащихся в этом поле (т.е. проставленные пользователем в самом его начале), будут дополнительно выводиться в конце строк данного меню (вслед за содержанием поля description),
Совсем автоматически не будут, но ваш скрипт может и это делать.

Но я тут подумал, что с дополнительным полем не так всё просто: сторонний скрипт (ваш) должен как-то получить к нему доступ, и мне пока не ясно как.

Одно из возможных направлений — возможность заменить меню конфликта макросов своей функцией (ещё одна тема для мантиса).

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

Posted: Mon 23 Oct, 2017 07:36
by John Doe
sToLp wrote: Sun 22 Oct, 2017 20:08
Если для описаний, то и description можно сейчас многострочный создавать.
Кажется, я пропустил информацию об этом.
Не было об этом никакой специальной информации.
Любая строка может содержать символы перевода строки, вот и всё. Но как вы это собрались использовать я не знаю.
sToLp wrote: Sun 22 Oct, 2017 20:08[...]Ведь одновременно то эти позиции, кажется, не совместимы?
Ничего об этом не знаю. Вы просили только многострочное поле, которое можно будет где-то там как-то использовать.
sToLp wrote: Sun 22 Oct, 2017 20:08Хотелка вынесена на обсуждение, чтобы выяснить: не предпочтительнее ли и для других форумчан был бы переход к началу макроса
Если что, то такая возможность есть давным давно, если использовать rebind + альтернативные макробраузеры (на выбор: macrobrowseralt или luamanager).

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

Posted: Mon 23 Oct, 2017 13:54
by John Doe
Редактирование макроса из Macro Browser: переходить к началу спецификации, а не к определению action (отделил обсуждение, поскольку вопрос касается не только меню конфликта макросов)

Вопрос описания макросов тоже выходит за рамки данной темы, к тому же существует специальная: Скрипты: система их названий и описаний. Обсуждение продолжил там.

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

Posted: Mon 26 Nov, 2018 09:12
by sToLp
Сейчас при наличии в конкретной макрообласти более одного макроса с одинаковым ключом и с одинаковым наибольшим приоритетом выводится меню выбора макроса. А макросы с меньшими приоритетами остаются как бы "спрятанными" за его пределами. И вызвать их можно только через макробраузеры или по другим ключам.

А нельзя ли функцию eval(S[,Mode[,Lang]]) дополнить ещё одним опциональным параметром что-то типа: eval(S[,Mode[,Lang[,Prior]]]), с допустимыми значениями параметра Prior 0 и 1, где 0: значение по умолчанию, а 1: игнорировать priority?

Чтобы eval могла отключать влияние priority и, тем самым позволяла бы выводить в меню выбора макросов макросы с каждым приоритетом.

Это не только дало бы возможность по-быстрому вызывать макросы с любыми приоритетами. Но и кроме того позволило бы активно использовать штатное поле priority для вывода ещё более гибких меню выбора макросов, удобно добавляя к обычным также и расширенные их варианты.

Например, редко используемые макросы, справочные макросы и макросы, дублирующие нативные команды Far`а, можно было бы помечать пониженным приоритетом и в нужные моменты оперативно дополнять ими "базовые" меню выбора и также изымать их оттуда. И делать это можно было бы простыми макросами-переключателями, применяя эту самую eval, дополненную новым параметром.

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

Posted: Mon 26 Nov, 2018 12:13
by John Doe
sToLp wrote: Mon 26 Nov, 2018 09:12 А нельзя ли функцию eval(S[,Mode[,Lang]]) дополнить ещё одним опциональным параметром
Безотносительно сути пожелания: функцию eval необходимо оставить в покое.
Она и так страшна, поскольку (а) совмещает черезчур много функций (б) в целях совместимости поддеживаются и экзотические, в современной практике ненужные.

Вот как раз функционал работы с макросами имхо стоит реализовать заново, отдельной функцией, предусмотрев потенциальные интересные возможности.
 ! Message from: John Doe
Часть сообщений выделена в отдельную тему: Меню конфликта как средство организации макросов

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

Posted: Wed 28 Nov, 2018 16:51
by sToLp
Shmuel wrote: Wed 28 Nov, 2018 14:20Но раз уже вы спросили - я стараюсь не превышать длину 120 символов.
Спасибо за информацию! Для получения первого опыта я привёл длину строк в макросах своего сообщения в соответствие с этой величиной. И заодно сделал в них некоторые маленькие оформительские поправки без изменения функциональности.

Что же касается сути проблемы ситуативного включения в меню выбора макросов также и макросов с пониженным приоритетом, то, на мой взгляд, решение этого вопроса, получившееся благодаря изобретательности John Doe, всё же больше подходит для отдельных энтузиастов, а не для массы "рядовых" пользователей. Исходя из моего опыта, предпочтительнее было бы иметь "централизованное" решение. И желательно бы в форме некой новой команды, подаваемой клавишей или клавишесочетанием (м.б. даже тем же двойным нажатием Shift`а) непосредственно в меню выбора макросов, и обеспечивающей включение и выключение показа в этом меню макросов с пониженным приоритетом.

И если Вы не против, то я всё-таки отправил бы такой виш на мантис.

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

Posted: Wed 28 Nov, 2018 17:05
by Shmuel
sToLp, для отправки виша на мантис не нужно разрешения.
За всей вашей перепиской с John Doe я не очень тщательно следил, поэтому желательно сформулировать виш на мантисе, желательно отделив главное от менее главного. Если ваш пост выше излагает всё, что требуется, то это выглядит не слишком сложно для реализации.

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

Posted: Wed 28 Nov, 2018 17:46
by sToLp
Shmuel wrote: Wed 28 Nov, 2018 17:05 sToLp, для отправки виша на мантис не нужно разрешения.
Отправил.

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

Posted: Wed 28 Nov, 2018 18:13
by John Doe
sToLp wrote: Wed 28 Nov, 2018 16:51 на мой взгляд, решение этого вопроса , получившееся благодаря изобретательности John Doe, всё же больше подходит для отдельных энтузиастов, а не для массы "рядовых" пользователей.
На мой взгляд перед массой рядовых пользователей вопрос это просто не стоит, а ваш случай весьма специфичен.
Имхо, конечно.

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

Posted: Wed 28 Nov, 2018 19:02
by sToLp
John Doe wrote: Wed 28 Nov, 2018 18:13На мой взгляд перед массой рядовых пользователей вопрос этот просто не стоит, а ваш случай весьма специфичен.
Со стороны, возможно, виднее. Однако первое, что я предполагаю сделать, когда будет реализован виш, это спрятать "подпол" почти всю уйму моих банальных макросов, дублирующих нативные команды Far`а. И, насколько я знаю, у многих рядовых пользователей таких команд тоже поднакапливается немало. А к специфичным подобные макросы навряд ли можно отнести. Во всяком случае, вреда от реализации виша я не предполагаю.
John Doe wrote: Wed 28 Nov, 2018 18:23 1. Макрос Common/Shift как отдельный врядли нужен, лучше включите его в ваш Menu/Shift
Спасибо за совет! Обязательно попробую сделать.
John Doe wrote: Wed 28 Nov, 2018 18:23 2. condition=LFS_Exist and isFullMenu; это работает не так, как вам хотелось. Необходимо объединить в одну функцию.
Подумаю и попытаюсь, но не уверен, что это у меня получится.
John Doe wrote: Wed 28 Nov, 2018 18:23 3. Если вы хотите использовать тот же подход в другом макрофайле, то как уже говорилось выше, необходимы изменения (глобальная переменная либо модуль).
А вот по этому пункту без Вашей помощи я точно пока что ни чего не смогу сделать, поскольку ни того, ни другого ни разу и не пробовал даже, кажется.

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

Posted: Wed 28 Nov, 2018 19:20
by John Doe
sToLp wrote: Wed 28 Nov, 2018 19:02 И, насколько я знаю, у многих рядовых пользователей таких команд тоже поднакапливается немало.
Редкоиспользуемые команды накапливается конечно, но то как с этим справляетесь вы - весьма специфично.
Обычно же приоритеты используются для того, чтобы отсеять ненужные в данном контексте макросы (в идеале до 1 макроса, который сразу же и запустится, без меню).

Я не утверждаю, что ваш способ плох, отнюдь. Просто он не универсален.

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

Posted: Thu 29 Nov, 2018 20:24
by sToLp
John Doe wrote: Wed 28 Nov, 2018 19:20 Обычно же приоритеты используются для того, чтобы отсеять ненужные в данном контексте макросы (в идеале до 1 макроса, который сразу же и запустится, без меню).

Я не утверждаю, что ваш способ плох, отнюдь. Просто он не универсален.
Так он же никогда и не претендовал на универсальность. Однако, согласитесь, что он и не противоречит указанному Вами способу, позволяющему "отсеять ненужные в данном контексте макросы", не препятствует его применению. А, как раз, дополняет его и, тем самым, расширяет возможности применения приоритетов. А это и есть ни что иное как некоторое прибавление (небольшое, но заметное) к универсальности полю priority.

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

Posted: Fri 30 Nov, 2018 08:44
by John Doe
sToLp wrote: Thu 29 Nov, 2018 20:24 Однако, согласитесь, что он и не противоречит указанному Вами способу, позволяющему "отсеять ненужные в данном контексте макросы"
Вот именно что "противоречит", ведь используется в противоположных целях)

Но действительно нет препятствий для того чтобы совмещать оба варианта, просто ваш - не самоочевиден, поэтому я и постарался детально описать его в отдельной теме.

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

Posted: Mon 03 Dec, 2018 15:55
by sToLp
После того как в меню выбора макросов стали показываться макросы с пониженным приоритетом
shmuel 01.12.2018 22:09:18 +0200 - build 676

1. M#3684: Включать и выключать показ макросов с пониженным приоритетом в меню выбора макросов.
--> включение и выключение решено не делать, а показывать их всегда после макросов с наивысшим
приоритетом, отделёнными от них сепаратором.
"всплыли" два полезных, но позабытых-позаброшенных редко использовавшихся макроса. И, вполне возможно, что это не последнее "всплытие".

Это приятный дополнительный бонус к очередному удачному нововведению.

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

Posted: Mon 24 Dec, 2018 12:04
by sToLp
shmuel 01.12.2018 22:09:18 +0200 - build 676

1. M#3684: Включать и выключать показ макросов с пониженным приоритетом в меню выбора макросов.
--> включение и выключение решено не делать, а показывать их всегда после макросов с наивысшим
приоритетом, отделёнными от них сепаратором.
Полагаю весьма полезным публикацию следующего разъяснения к выше акцентированному моменту:
Shmuel wrote: "Показывать всегда" относится к макросам с низким приоритетом в контексте, когда меню "исполнить макрос" выводится.

Меню "исполнить макрос" выводится только тогда, когда система сама не может определить, который макрос надо исполнить, и перекладывает выбор макроса для исполнения на пользователя.

Если вы хотите, чтобы это меню выводилось всегда, просто не допускайте ситуации, когда приоритет одного из макросов выше остальных.
ИМХО, можно также добавить, что в подобном случае при наличии одного или нескольких макросов с пониженным приоритетом, назначенных на тот же ключ, что и макрос с наивысшим приоритетом, посмотреть их можно, например, посредством макробраузера.