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

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

О порядке расположения макросов в меню их выбора

Post by Shmuel » Thu 03 Mar, 2016 17:59

Latest post of the previous page:

sToLp
Идея 1: А может сортировать по именам файлов, а порядок макросов внутри каждого файла сохранять и в меню?

Идея 2: Добавить в определение макроса опциональное поле SortingPriority (0-100, default=50), тогда можно будет полностью управлять порядком макросов в меню.

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

О порядке расположения макросов в меню их выбора

Post by sToLp » Thu 03 Mar, 2016 18:57

Shmuel wrote:Идея 1: А может сортировать по именам файлов, а порядок макросов внутри каждого файла сохранять и в меню?
Этот вариант представляется мне весьма гибким. Но, предполагаю, что у тех, кто вполне доволен автоматической сортировкой, он может вызвать неудобство необходимостью следить за взаимным расположением файлов.
Shmuel wrote:Идея 2: Добавить в определение макроса опциональное поле SortingPriority (0-100, default=50), тогда можно будет полностью управлять порядком макросов в меню.
А вот этот вариант представляется мне идеальным. Поскольку, если я правильно понимаю, он не затрагивает интересы тех, кого устраивает любая сортировка по умолчанию. И вместе с тем позволяет тем, кому нужна пользовательская сортировка, делать её когда требуется.

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

О порядке расположения макросов в меню их выбора

Post by Shmuel » Thu 03 Mar, 2016 21:06

sToLp wrote: А вот этот вариант представляется мне идеальным.
Уговорили.

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

О порядке расположения макросов в меню их выбора

Post by sToLp » Fri 04 Mar, 2016 03:10

Shmuel wrote:Уговорили.
shmuel 03.03.2016 21:40:00 +0200 - build 561
1. В определение стационарных макросов добавлено опциональное поле sortpriority - для управления
порядком расположения макросов в меню "Исполнить макрос".
Большое спасибо за сугубо деловой подход!

IgorZ
Posts: 579
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 9 times
Been thanked: 35 times

О порядке расположения макросов в меню их выбора

Post by IgorZ » Fri 04 Mar, 2016 05:45

Р-р-р-р-р!!! Вам деловой подход, а мне теперь LuaManager допиливать! ;)
Кстати, нововведение ведь и к .lua, и к .moon относится?

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

О порядке расположения макросов в меню их выбора

Post by Shmuel » Fri 04 Mar, 2016 09:21

IgorZ
1. Допиливать во всяком случае не срочно, т.к. это поле ничего не ломает в существующих скриптах.
2. Естественно.

User avatar
abelenki
Posts: 441
Joined: Thu 02 Jul, 2009 07:39
Location: Perm, Russia
Has thanked: 125 times
Been thanked: 17 times
Contact:

О порядке расположения макросов в меню их выбора

Post by abelenki » Fri 04 Mar, 2016 09:38

после build 536 я для себя вот такой выход нашёл, чтобы не терять кастомную сортировку:



т.е. просто добавил цифры в описание макросов (description).

IgorZ
Posts: 579
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 9 times
Been thanked: 35 times

О порядке расположения макросов в меню их выбора

Post by IgorZ » Wed 09 Mar, 2016 11:37

Shmuel wrote:IgorZ
1. Допиливать во всяком случае не срочно, т.к. это поле ничего не ломает в существующих скриптах.
Поздно. Уже. :quiet:

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

О порядке расположения макросов в меню их выбора

Post by sToLp » Wed 16 Mar, 2016 09:27

Shmuel
Регулярно возникают ситуации, когда достаточно выставить sortpriority даже одному, ну двум, макросам из набора, и сформированным этим набором макросов меню "Исполнить макрос" становится заметно приятнее пользоваться. Вот даже ещё раз захотелось выразить благодарность за удачно найденное и реализованное решение.

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

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

Post by John Doe » Wed 09 Aug, 2017 14:15

Гуид меню конфликта макросов не попал в far.Guids

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

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

Post by Shmuel » Wed 09 Aug, 2017 14:28

John Doe wrote:
Wed 09 Aug, 2017 14:15
Гуид меню конфликта макросов не попал в far.Guids
Это неудивительно, т.к far.Guids содержит только гуиды Фара, но не плагинов. Эта таблица генерируется из файла DlgGuid.hpp.

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

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

Post by Shmuel » Mon 14 Aug, 2017 08:27

Некоторые тонкости в связи с последними изменениями:

1. Автоматически добавляемые номера пунктов меню (1-9, A-Z) не подсвечиваются, но тем не менее являются "горячими клавишами".

2. Если пользователь с помощью амперсанда & добавил горячую клавишу, то она будет работать как обычно, если нет конфликта с символом-номером какого-либо пункта меню. Если же есть конфликт, например на символе D, то при нажатии D победит номер пункта, а при нажатии AltD победит подсвеченная амперсандом клавиша.

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

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

Post by John Doe » Wed 16 Aug, 2017 09:07

Shmuel wrote:
Mon 14 Aug, 2017 08:27
1. Автоматически добавляемые номера пунктов меню (1-9, A-Z) не подсвечиваются, но тем не менее являются "горячими клавишами".
Эти горячие клавиши реализованы сейчас через BreakKeys, что делает невозможным их обработку в ProcessDialogEvent (это использует скрипт ConcurrentHotkeys).

Предлагаю использовать не BreakKeys, а фаровский встроенный механизм хоткеев — AccelKey.
Мои тесты показывают, что это работает хорошо, и ровно с теми тонкостями, что описаны постом выше.

Пример:

Code: Select all

far.Show(far.Menu({},{
  {text="&A",AccelKey="1"},
  {text="&B",AccelKey="2"},
  {text="&B2",AccelKey="3"},
  {text="&5",AccelKey="4"},
  {text="&4",AccelKey="5"},
}))

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

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

Post by Shmuel » Wed 16 Aug, 2017 09:14

AccelKey - регистрозависимый. BreakKey - тоже, но их можно добавить по 2 штуки на клавишу, а AccelKey - нельзя.

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

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

Post by John Doe » Wed 16 Aug, 2017 09:44

Shmuel wrote:
Wed 16 Aug, 2017 09:14
AccelKey - регистрозависимый.
Мои эксперименты показывают, что всё хуже.
AccelKey просто не срабатывает без Shift (проблема только с буквами).
Зато с Shift'ом одинаково срабатывают оба варианта

Code: Select all

far.Menu({},{{text="Q",AccelKey="Q"},})
far.Menu({},{{text="q",AccelKey="q"},})
Есть и другие странности, для обсуждения создам отдельную тему.

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

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

Post by sToLp » Sun 22 Oct, 2017 10:22

Выношу три хотелки на предварительное рассмотрение.

1. По нажатию AltF4 в строке меню выбора макросов соответствующий макрос открывается в редакторе на позиции action. И когда он по объёму кода относительно небольшой, то это вполне практично. А вот когда объём кода макроса значительный, то предпочтительнее было бы открывать его в позиции сразу за открывающей фигурной скобкой. Поскольку опыт показывает, что чаще всего из меню выбора макросов обращаться приходится к полям area, key и description, в т.ч., и особенно, когда одно или некоторые из них отсутствуют.

2. Формат стационарных макросов дополнить чем-то типа многострочного опционального поля userinfo, с возможностью оперативного доступа к нему в т.ч. из макробраузеров. Для помещения в это поле зачастую необходимой поясняющей пользовательской информации произвольного содержания, порой весьма объёмной.

3. Стационарные макросы дополнить проверенной временем полезной функциональностью, уже более двух лет реализуемой сервисным макросом, обеспечивающим запуск макросов из меню выбора макросов, при наличии в конце поля description обозначения запускающего ключа. По возможности, предпочтительнее было бы иметь эту функциональность "из коробки".

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

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

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

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

Post Reply

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