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

Здесь обсуждается всё, что касается макросов.
Shmuel
Posts: 5615
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 21 times
Been thanked: 187 times

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

Post by Shmuel » Sun 22 Oct, 2017 11:11

Latest post of the previous page:

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

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

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

Post by zg » Sun 22 Oct, 2017 11:47

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

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

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

Post by John Doe » Sun 22 Oct, 2017 14:08

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
предпочтительнее было бы открывать его в позиции сразу за открывающей фигурной скобкой.
Почему не написать макрос для перемещения к началу определения?
Last edited by John Doe on Mon 23 Oct, 2017 13:59, edited 1 time in total.

User avatar
sToLp
Posts: 929
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 106 times
Been thanked: 8 times

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

Post by sToLp » Sun 22 Oct, 2017 20:08

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 предпочтительнее) или ответ не однозначен, то и виш заводить не стоит. И тогда решением будет макрос.
Last edited by sToLp on Sun 22 Oct, 2017 20:30, edited 1 time in total.

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

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

Post by John Doe » Mon 23 Oct, 2017 07:28

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

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

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

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

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

Post by John Doe » Mon 23 Oct, 2017 07:36

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).

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

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

Post by John Doe » Mon 23 Oct, 2017 13:54

Редактирование макроса из Macro Browser: переходить к началу спецификации, а не к определению action (отделил обсуждение, поскольку вопрос касается не только меню конфликта макросов)

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

User avatar
sToLp
Posts: 929
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 106 times
Been thanked: 8 times

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

Post by sToLp » Mon 26 Nov, 2018 09:12

Сейчас при наличии в конкретной макрообласти более одного макроса с одинаковым ключом и с одинаковым наибольшим приоритетом выводится меню выбора макроса. А макросы с меньшими приоритетами остаются как бы "спрятанными" за его пределами. И вызвать их можно только через макробраузеры или по другим ключам.

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

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

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

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

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

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

Post by John Doe » Mon 26 Nov, 2018 12:13

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

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

User avatar
sToLp
Posts: 929
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 106 times
Been thanked: 8 times

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

Post by sToLp » Wed 28 Nov, 2018 16:51

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

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

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

Shmuel
Posts: 5615
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 21 times
Been thanked: 187 times

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

Post by Shmuel » Wed 28 Nov, 2018 17:05

sToLp, для отправки виша на мантис не нужно разрешения.
За всей вашей перепиской с John Doe я не очень тщательно следил, поэтому желательно сформулировать виш на мантисе, желательно отделив главное от менее главного. Если ваш пост выше излагает всё, что требуется, то это выглядит не слишком сложно для реализации.

User avatar
sToLp
Posts: 929
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 106 times
Been thanked: 8 times

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

Post by sToLp » Wed 28 Nov, 2018 17:46

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

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

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

Post by John Doe » Wed 28 Nov, 2018 18:13

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

User avatar
sToLp
Posts: 929
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 106 times
Been thanked: 8 times

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

Post by sToLp » Wed 28 Nov, 2018 19:02

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. Если вы хотите использовать тот же подход в другом макрофайле, то как уже говорилось выше, необходимы изменения (глобальная переменная либо модуль).
А вот по этому пункту без Вашей помощи я точно пока что ни чего не смогу сделать, поскольку ни того, ни другого ни разу и не пробовал даже, кажется.

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

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

Post by John Doe » Wed 28 Nov, 2018 19:20

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

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

User avatar
sToLp
Posts: 929
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 106 times
Been thanked: 8 times

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

Post by sToLp » Thu 29 Nov, 2018 20:24

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

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

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

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

Post by John Doe » Fri 30 Nov, 2018 08:44

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

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

Post Reply

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