View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003536 | Wishes.Plugins | LuaMacro / Macro Browser | public | 2017-10-23 14:19 | 2023-06-10 18:30 |
Reporter | JohnDoe | Assigned To | |||
Priority | normal | Severity | feature | Reproducibility | N/A |
Status | closed | Resolution | fixed | ||
Platform | x86 | OS | Windows | OS Version | XP SP3 |
Product Version | 3.0 | ||||
Summary | 0003536: GetMacroCopy: возвращать все типы определений, не только макросы | ||||
Description | Сейчас mf.GetMacroCopy возвращает определения (1) стационарных/клавиатурных/программных макросов и (2) обработчиков событий. Хочется же получать также информацию об остальных типах определений: 3. MenuItem - добавочные пункты меню конфигурации/плагинов 4. CommandLine - добавочные префиксы командной строки 5. PanelModule 6. ContentColumns Учитывая многообразие разных типов предлагаю также добавить в возвращаемую таблицу служебное поле, однозначно определяющее тип. | ||||
Additional Information | Независимое пожелание: отображать эту информацию в макробраузере | ||||
Tags | No tags attached. | ||||
|
Будут определённые сложности: если макросы и обработчики событий хранятся в одной таблице, то пункты меню плагинов, префиксы, панельные модули и контент-колонки помещаются каждый тип в свою таблицу, и единого номера, как для GetMacroCopy, просто не может быть. Кроме того, префиксы вообще индексируются в своей таблице не по номеру, а по имени префикса, что добавит дополнительных сложностей. Можно, в принципе, добавить GetMacroCopy второй аргумент: тип запрашиваемого скрипта, но с префиксами, опять же, будут проблема: их, перебирая номера, не вытянешь. Так что наиболее логично было бы добавить функцию mf.GetAllScriptsCopy() с необязательным параметром "тип скрипта". Я бы даже написал её для utils (благо, в LuaManager это всё есть), но как добавить её в mf[], я не в курсе. P. S. Разобрался, добавляется через api.lua. Ну, тогда, без проблем, набросаю, если надо. |
|
Нам не очень интересно как они храняться внутри, главное чтобы возвращались последовательно и консистентно. Очень даже может, достаточно инкрементировать индекс. Возможно, что стоит дублировать и в единую таблицу. Его можно хранить, а не вытягивать.Тут есть нюанс: сейчас индексы элементов постоянны, а если фильтровать, то будет несоответствие. Поэтому да, лучше отдельную функцию завести, с обязательным вторым аргументом (возможно его стоит сделать первым). Полагаю что надо. |
|
Для удобства обсуждения кода открыл PR: https://github.com/FarGroup/FarManager/pull/417 |
|
@IgorZ А про кастомные сортировки забыли? |
|
А зачем они? Я как-то слабо представляю писателя на Lua, который нуждается в списке скриптов, но при этом не в состоянии воспользоваться table.sort. А тот, кто в состоянии, скорее предпочтёт сам написать нужную сортировку, чем использовать готовую, которая вряд ли устроит его на 100%. Или предусмотреть дополнительный параметр, для указания функции сортировки? |
|
Как минимум для того чтобы макробраузер знал где они определены, и пользователь мог бы к ним переходить. Edit: сделал так https://github.com/FarGroup/FarManager/pull/420/commits/3e02c63428a3a331f251351c08555c3defde3397 |
|
@IgorZ Речь не о сортировке таблицы, а о кастомных сортировках панели (Panel.LoadCustomSortMode) |
|
GetAllScriptsCopy снимаем с дистанции? Вариант с итератором мне и самому понравился больше. |
|
@IgorZ https://github.com/FarGroup/FarManager/pull/420 |
Date Modified | Username | Field | Change |
---|---|---|---|
2017-10-23 14:19 | JohnDoe | New Issue | |
2021-06-12 11:08 | JohnDoe | Description Updated | |
2021-06-15 06:33 | IgorZ | Note Added: 0017086 | |
2021-06-15 06:44 | IgorZ | Note Edited: 0017086 | |
2021-06-15 08:57 | JohnDoe | Note Added: 0017087 | |
2021-06-15 11:18 | JohnDoe | Note Edited: 0017087 | |
2021-06-16 10:19 | JohnDoe | Note Added: 0017089 | |
2021-06-20 15:16 | JohnDoe | Note Added: 0017090 | |
2021-06-21 12:01 | IgorZ | Note Added: 0017091 | |
2021-06-21 12:07 | JohnDoe | Note Added: 0017092 | |
2021-06-22 09:41 | JohnDoe | Note Edited: 0017092 | |
2021-06-22 09:44 | JohnDoe | Note Added: 0017093 | |
2021-06-25 07:47 | IgorZ | Note Added: 0017094 | |
2021-06-25 08:51 | JohnDoe | Note Added: 0017095 | |
2023-06-10 18:30 | JohnDoe | Status | new => closed |
2023-06-10 18:30 | JohnDoe | Resolution | open => fixed |