Page 12 of 13

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

Posted: Sun 22 Oct, 2017 11:11
by Shmuel

Latest post of the previous page:

sToLp, на обсуждение хотелок сейчас времени нет, так что без меня. В заключение, если сочтёте нужным - на мантис.

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

Posted: Sun 22 Oct, 2017 11:47
by zg
sToLp wrote: Sun 22 Oct, 2017 10:223. Стационарные макросы дополнить проверенной временем полезной функциональностью, уже более двух лет реализуемой сервисным макросом, обеспечивающим запуск макросов из меню выбора макросов, при наличии в конце поля description обозначения запускающего ключа. По возможности, предпочтительнее было бы иметь эту функциональность "из коробки".
идея возможно хорошая. я понимаю, что хранение клавиши в конце описания макроса оправдано простотой реализации в качестве макроса. но зачем предлагать это тащить в «коробку»? просто дополнительное поле postkey, в котором хранить или строку или массив строк — гораздо лучше и масштабируемее.

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

Posted: Sun 22 Oct, 2017 14:08
by John Doe
zg wrote: Sun 22 Oct, 2017 11:47просто дополнительное поле postkey
Когда-то обсуждали, что было бы удобно иметь возможность задавать дополнительные поля в таблице макроса.
На мантисе не нашёл, стоит завести виш. Edit: http://forum.farmanager.com/viewtopic.php?f=15&t=10966
sToLp wrote: Sun 22 Oct, 2017 10:22Формат стационарных макросов дополнить чем-то типа многострочного опционального поля userinfo
Если для описаний, то и description можно сейчас многострочный создавать.
sToLp wrote: Sun 22 Oct, 2017 10:22предпочтительнее было бы открывать его в позиции сразу за открывающей фигурной скобкой.
Почему не написать макрос для перемещения к началу определения?

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

Posted: Sun 22 Oct, 2017 20:08
by sToLp
zg wrote: Sun 22 Oct, 2017 11:47хранение клавиши в конце описания макроса оправдано простотой реализации
Именно так. К примеру, текущая реализация меню выбора макросов на хоткей F5 у меня выглядит И наибольшее удобство для меня представляют хоткеи/шорткаты, завершающие строки этого меню. По ним можно запускать соответствующие позиции, и их не нужно всякий раз вытягивать из памяти, поскольку они перед глазами.

zg wrote: Sun 22 Oct, 2017 11:47дополнительное поле postkey, в котором хранить или строку или массив строк — гораздо лучше и масштабируемее
Если, при этом, хоткеи/шорткаты, первые из содержащихся в этом поле (т.е. проставленные пользователем в самом его начале), будут дополнительно выводиться в конце строк данного меню (вслед за содержанием поля description), то я двумя руками за такое решение. Поскольку, к тому же, похоже, что такое поле одновременно стало бы реализацией и второй хотелки.

John Doe wrote: Sun 22 Oct, 2017 14:08
zg wrote: Sun 22 Oct, 2017 11:47просто дополнительное поле postkey
Когда-то обсуждали, что было бы удобно иметь возможность задавать дополнительные поля в таблице макроса.
На мантисе не нашёл, стоит завести виш.
С учётом вышеизложенного, по данной позиции так и сделал.

John Doe wrote: Sun 22 Oct, 2017 14:08
sToLp wrote: Sun 22 Oct, 2017 10:22Формат стационарных макросов дополнить чем-то типа многострочного опционального поля userinfo
Если для описаний, то и description можно сейчас многострочный создавать.
Кажется, я пропустил информацию об этом.
Но коли так, то передо мною встаёт проблема выбора: либо использовать description как на иллюстрации выше (под спойлером), либо дополнять его необходимой поясняющей пользовательской информацией. Ведь одновременно то эти позиции, кажется, не совместимы? Тем с большей надеждой буду ждать результатов реализации виша по предыдущей позиции.

John Doe wrote: Sun 22 Oct, 2017 14:08
sToLp wrote: Sun 22 Oct, 2017 10:22предпочтительнее было бы открывать его в позиции сразу за открывающей фигурной скобкой.
Почему не написать макрос для перемещения к началу определения?
Хотелка вынесена на обсуждение, чтобы выяснить: не предпочтительнее ли и для других форумчан был бы переход к началу макроса, а не к позиции action? Если же ответ нет (т.е. переход к action предпочтительнее) или ответ не однозначен, то и виш заводить не стоит. И тогда решением будет макрос.

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

Posted: Mon 23 Oct, 2017 07:28
by John Doe
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.