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

Здесь обсуждается всё, что касается макросов.
Shmuel
Posts: 5230
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 151 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: 765
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 57 times
Been thanked: 5 times

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

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

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

Shmuel
Posts: 5230
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 151 times

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

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

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

User avatar
sToLp
Posts: 765
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 57 times
Been thanked: 5 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: 463
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 6 times
Been thanked: 9 times

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

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

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

Shmuel
Posts: 5230
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 151 times

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

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

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

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

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

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

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



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

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

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

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

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

User avatar
sToLp
Posts: 765
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 57 times
Been thanked: 5 times

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

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

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

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

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

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

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

Shmuel
Posts: 5230
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 151 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: 5230
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 151 times

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

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

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

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

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

User avatar
John Doe
Бюрократ
Posts: 11415
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 17 times
Been thanked: 101 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: 5230
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 151 times

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

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

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

User avatar
John Doe
Бюрократ
Posts: 11415
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 17 times
Been thanked: 101 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"},})
Есть и другие странности, для обсуждения создам отдельную тему.

Post Reply

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