View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003684 | Wishes.Plugins | LuaMacro / Macro Browser | public | 2018-11-28 16:42 | 2018-12-02 09:14 |
Reporter | sToLps | Assigned To | shmuel | ||
Priority | normal | Severity | minor | Reproducibility | have not tried |
Status | closed | Resolution | fixed | ||
Summary | 0003684: Включать и выключать показ макросов с пониженным приоритетом в меню выбора макросов. | ||||
Description | Сейчас при наличии в конкретной макрообласти более одного макроса с одинаковым ключом и с одинаковым наибольшим приоритетом выводится меню выбора макроса. А макросы с меньшими приоритетами остаются как бы "спрятанными" за его пределами. И вызвать их можно только через макробраузеры или по другим ключам, либо с помощью изобретательных ухищрений, вполне подходящих для опытных энтузиастов, но ни как не для массы "рядовых" пользователей. Поэтому желательно "централизованное" решение. Предпочтительно в форме некой новой команды, подаваемой клавишей или клавишесочетанием непосредственно в меню выбора макросов, и обеспечивающей включение и выключение показа в этом меню макросов с пониженным приоритетом. Это не только даст возможность по-быстрому вызывать макросы с любыми приоритетами. Но и кроме того позволит активно использовать штатное поле priority для вывода ещё более гибких меню выбора макросов, удобно добавляя к обычным также и расширенные их варианты. Например, редко используемые макросы, справочные макросы и макросы, дублирующие нативные команды Far`а, можно будет тогда помечать пониженным приоритетом и в нужные моменты оперативно дополнять ими "базовые" меню выбора и также изымать их оттуда простой командой, свободно доступной любому пользователю Far`а. Обсуждение проводилось от сюда и далее несколько постов. | ||||
Tags | No tags attached. | ||||
|
На форуме я уже писал, что ваш способ использования не является универсальным, и скорее наоборот, идёт в разрез общепринятому. Само по себе это абсолютно нормально, но вот такая фича в меню конфликта "из коробки" может быть даже вредна (имхо). С другой стороны, можно было бы подумать о расширении функций работы с макросами. По типу того, как вы изначально предлагали добавить новый параметр в eval. |
|
Ума не приложу, чем ситуативный показ макросов с пониженным приоритетом может быть вреден. Поясните, пожалуйста, на чём основано Ваше беспокойство. Расширение функций работы с макросами может ведь осуществляться и пapaллeльнo. И реализация первоначального предложения была бы полезна для составления ещё более разнообразных макросов. Реализация же изложенного в данном више ориентирована, прежде всего, на увеличения удобства их применения. И также может быть использована и при написании макросов. |
|
Приложен файл utils.lua для тестирования. Нужно поставить его вместо LuaMacro\utils.lua и перезапустить Фар. Переключение режимов - в меню "Execute Macro" нажатием CtrlH На данный момент я не уверен, что данное изменение полезно и оправдывает усложнение кода. Хочу получить обратную связь, а там будет видно. |
|
shmuel Большое спасибо! В добротно настроенной сборке, которую я чаще всего использую в качестве тестовой, проба прошла так как ожидалось, так как надо. На Ура! По команде вызова тестовых макросов вывелось меню только с макросами с обычным приоритетом и затем по CtrlH осуществлялось оперативное быстрое переключение режимов "Execute Macro". А когда я провёл то же опробование в свежескачанной ночной сборке Far30b5332.x86.20181201, то по команде вызова тестовых макросов вывелось меню только с макросами с пониженным приоритетом. И оно на CtrlH не реагировало. Возможно, в сборке не достаёт каких-то элементов, что ли? А ещё в одной тестовой сборке Far`а, в которую напихано очень много разных макросов и плагинов, по команде вызова тестовых макросов ожидаемо вывелось меню с макросами с обычным приоритетом. Но потом, при нажатии на CtrlH, оно просто сбрасывалось, без вывода "расширенного" варианта меню. Теперь буду искать виновника, препятствующего нормальной работе в этой сборке. И когда найду, то доложусь. |
|
Имхо, что-то подобное было бы полезно, и не только в сценарии sToLps. Но действительно, прежде чем внедрять стоит обдумать все ньюансы. Например в некоторых случаях я лично хотел бы включить в (подобное) меню не только все макросы невзирая на приоритет, но и те, condition которых не сработал. Кроме того я очень хочу при этом не исполнять выбранный макрос, а лишь получать его, для дальнейшей обработки в своём коде. Наибольшей универсальности можно достичь указывая параметры при вызыве функции, подобной eval. Но здесь это оффтопик, напишу на форуме. |
|
Выше я писал: Докладываю. Препятствовавший макрос найден, но у меня, к сожалению, не отмечено откуда именно он взят.
|
|
Там же ссылка на тему есть. Макрос определённо нуждается в доработке, поскольку имеет серьёзные недостатки, проявляющиеся и в некоторых других случаях. |
|
По поводу файла для тестирования, насколько я понимаю: a) sToLps не пришёл к однозначному выводу. b) JohnDoe и вовсе непонятно, пробовал ли. |
|
Почему же? Вот я написал: Собственно, это и есть вывод — получилось очень хорошо. |
|
У sToLps не работало из-за конфликтующего макроса, перехватывающего CtrlH. У меня тоже работает, как и ожидалось. Сомнения в таком решении у меня лишь идеологические: - выводим макросы отсеянные низким приоритетом, но не отсеянные по флагам/условиям - выводим меню в случае когда есть 2 макроса с одним приоритетом, и нет возможности вывести его если макрос всего один (но есть низкоприоритетные) Т.е. решение получается имхо неоправданно узко специализированное. |
|
Получившееся решение хорошо решает поставленную задачу. Другие задачи или эту же задачу, но при других условиях, можно будет попробовать порешать другими способами. Или, со временем, усовершенствовать этот способ. По-моему, так. |
|
> - выводим макросы отсеянные низким приоритетом, но не отсеянные по флагам/условиям Ну вот зачем же их выводить, если условий для их исполнения нет. Они ведь не то что проиграли макросам-конкурентам, они в данных обстоятельствах просто непригодны для исполнения. Не забудьте, что меню называется "Исполнить макрос". > нет возможности вывести его если макрос всего один (но есть низкоприоритетные) Технически это сделать очень легко, но на мой взгляд, это будет логически неверно. В случае, когда есть ровно один "макрос-победитель", мне представляется, что он должен быть немедленно исполнен, без всякого меню. |
|
Напомню, что автор тикета использует меню не по его прямому назначению. Таким образом кто-то другой (например я) захочет использовать его тоже немного нестандартно. Например, чтобы посмотреть и откорректировать (AltF4) все макросы на данную клавишу, и для этого не имеет значения есть ли условия (как раз для того и требуется отредактировать, чтоб условия поправить). Именно так (и я бы возражал, будь оно иначе). Но в данном случае с помощью этого меню решаются немного другие задачи. Я за то, чтобы в стандартное меню конфликта не добавлять ничего. А вместо этого дать апи, посволяющие легко реализовать подобные свистелки. |
|
> А вместо этого дать апи Ну почему же вместо? Когда намного полезнее сделать вместе с тем. Причём апи — в расширенном варианте. То, что получилось, очень удобно при использовании уже готовых макросов. А апи нужно для их составления. И у меня уже созрели некоторые предложения, которые я намерен изложить в другом месте или другом више. |
|
shmuel Кстати, по оформлению. На мой взгляд очень удачно сделано с разделительной полосой. А не дать ли по ней запись типа: "----- CtrlH: макросы с пониженным priority -----" ? |
|
JohnDoe> Я за то, чтобы в стандартное меню конфликта не добавлять ничего. А вместо этого дать апи, посволяющие легко реализовать подобные свистелки. Ну так если не нажимать CtrlH, то ничего и не добавляется. Кто не знает, ничего и не заметит. По поводу дополнительного API - это вроде отдельная тема, не имеющая прямого отношения к данной. В общем, подумав, склоняюсь к тому, чтобы оставить сделанное изменение. Аргумент "за" таков: приоритеты формируются по заранее заданным алгоритмам, а в данный момент времени (поскольку меню так или иначе выводится) можно дать пользователю бОльшую возможность повлиять на решение. sToLps> удачно сделано с разделительной полосой. А не дать ли по ней запись типа: "----- CtrlH: макросы с пониженным priority -----" ? Думал об этом, пока не определился. Информативность повышается, но меню становится более "забитым", перенасыщенным что ли. |
|
А может имеет смысл обойтись без CtrlH, сразу выводя расширенное меню? Сохраняя при этом разделитель между двумя его частями. |
|
> А может имеет смысл обойтись без CtrlH, сразу выводя расширенное меню? Лично я ни сколько не против. Но я не знаю как к этому отнесутся те пользователи, которые не привыкли в меню выбора макроса видеть макросы с пониженным приоритетом. А ведь привычка — вторая натура. upd: Но, поскольку это удобно и полезно, вероятнее всего, что видеть их в меню быстро войдёт в привычку. |
|
LM build 676. |
|
shmuel Попрактиковавшись, предлагаю ещё раз вернуться к вопросу: > А может имеет смысл обойтись без CtrlH, сразу выводя расширенное меню? Дело ведь в том, что конкретно в момент нажатия клавишесочетания пользователь не намерен исполнять макросы с пониженным приоритетом. И поэтому когда он их не видит в меню, то это для него привычно. А если он, всё-таки, захочет к ним обратиться, то дополнительно нажимает на CtrlH и получает такую возможность. Т.е. при непосредственном выводе этих макросов в меню без дополнительных действий со стороны пользователя возникает, всё же, некоторый диссонанс. Поэтому я предлагаю макросы с пониженным приоритетом в меню выбора выводить, всё же, после нажатия на CtrlH. Либо, как вариант, засеривать их, делать их в данный момент не исполнимыми. Т.е. информировать, таки, пользователя о том, что они имеются, с доступом, причём, к их редактированию по AltF4. По-моему, тогда всё будет вполне гармонично. И если пользователь сочтёт необходимым, то оперативно поменяет приоритет и получит непосредственную возможность исполнить данный макрос из данного меню выбора. И, кстати, м.б. тогда и разделительная черта будет уже излишней? upd: P.S. Хотя вот лично мне такой вариант как есть прямо сейчас даже больше нравится, хоть он и менее логичен. |
|
sToLps> Хотя вот лично мне такой вариант как есть прямо сейчас даже больше нравится, хоть он и менее логичен. Вот его и оставим. Мне он не кажется менее логичным. Низкоприоритетные макросы размещаются внизу, надпись на разделителе информирует об этом. Они не мешают пользователю выбрать один из высокоприоритетных макросов. |
|
shmuel> Вот его и оставим. Вот и отлично! Большое спасибо за очередное улучшение меню выбора макроса! При этом у меня пока что сохраняется вопрос почему так странно работает меню в ночнушке? М.б. он уже и не касается данного виша, тогда я готов обсудить его в другом месте, дайте, пожалуйста, только знать об этом. Дело в следующем. Выше я писал: [quote=А когда я провёл то же опробование в свежескачанной ночной сборке Far30b5332.x86.20181201, то по команде вызова тестовых макросов вывелось меню только с макросами с пониженным приоритетом. И оно на CtrlH не реагировало. Возможно, в сборке не достаёт каких-то элементов, что ли?][/quote] А сегодня я распаковал в отдельную папку Far30b5333.x86.20181202.7z, дополнил в неё default.farconfig и Far.exe.ini, а в \Profile\Macros\scripts\ положил два lua-файла с наборами макросов для тестирования. Один в области Shell, а другой в Editor. Оба файла в двух других разных сборках выдают правильные меню выбора. А здесь в области Shell меню выводится правильное, а в области Editor показывает только 3 макроса вместо 12. Причём те, что с пониженным приоритетом. И без разделительной черты над ними. Даже не представляю себе что нужно было бы посмотреть, чтобы определить в чём дело? |
|
@sToLps, если ваши макросы не секретные, заархивируйте их и приложите здесь, а я повторю ваш эксперимент. Если не хотите выкладывать в открытый доступ - можете приложить мне в личном сообщении на форуме. |
|
sToLps> в области Editor показывает только 3 макроса вместо 12. Причём те, что с пониженным приоритетом. И без разделительной черты над ними. Даже не представляю себе что нужно было бы посмотреть, чтобы определить в чём дело? Такое легко может быть. Те 9 макросов, что не показываются, были отсеяны либо по флагам, либо по маске файлов, либо по condition(). Оставшиеся 3 показываются, разделительной черты быть не должно, поскольку в данный момент это макросы с наивысшим приоритетом (приоритет отсеявшихся макросов при этом не учитывается). |
|
shmuel>а я повторю ваш эксперимент Послал в личку. Причём тот аттач принимает файлы размером не более чем 50 Кбайт и не более чем по одному файлу за раз. Уф. upd: а ещё он не принимает файлы с расширением типа .001 |
|
shmuel> Такое легко может быть. Почему же тогда в двух других сборках эти же самые макросы из этих же самых файлов в меню отражаются нормально, а в ночнушке — нет? Мне представляется, что, возможно, что-то не то с настройкой ночнушки. Но вот я повторил эксперимент без подставления в неё default.farconfig и Far.exe.ini и всё равно результат в ней тот же... "Всё страньше и страньше" — сказала Алиса". |
|
@sToLps, я распаковал, глянул внутрь, увидел макрос John Doe по показу/скрытию макросов в этом самом меню. Дальше даже пробовать не буду - разбирайтесь с автором. |
|
shmuel Большое спасибо! Извините, пожалуйста, за переполох. |
|
shmuel Позапускал ещё макросы разные из-под одного из LiveCD, в системе которого в других случаях бывают неожиданные результаты. И получил отличный результат (за исключением проблемного файла, что было ожидаемо). Так что с моей стороны выражаю полное удовлетворение. В очередной раз Вы сделали даже лучше, чем я изначально предполагал. Большое спасибо! |
|
@sToLps, ничего такого особенного я не сделал, сначала не был уверен, что это вообще нужно делать, потом пришёл к выводу, что это, пусть небольшое, но улучшение. |
Date Modified | Username | Field | Change |
---|---|---|---|
2018-11-28 16:42 | sToLps | New Issue | |
2018-11-29 07:50 | JohnDoe | Note Added: 0016344 | |
2018-11-30 16:07 | sToLps | Note Added: 0016346 | |
2018-11-30 21:22 | shmuel | File Added: utils.lua.7z | |
2018-11-30 21:22 | shmuel | Note Added: 0016347 | |
2018-12-01 08:00 | sToLps | Note Added: 0016348 | |
2018-12-01 08:57 | JohnDoe | Note Added: 0016349 | |
2018-12-01 09:51 | sToLps | Note Added: 0016350 | |
2018-12-01 09:53 | sToLps | Note Edited: 0016350 | |
2018-12-01 11:51 | JohnDoe | Note Added: 0016351 | |
2018-12-01 13:33 | shmuel | Note Added: 0016352 | |
2018-12-01 13:33 | shmuel | Note Edited: 0016352 | |
2018-12-01 14:18 | sToLps | Note Added: 0016353 | |
2018-12-01 14:27 | JohnDoe | Note Added: 0016354 | |
2018-12-01 14:36 | sToLps | Note Added: 0016355 | |
2018-12-01 14:39 | shmuel | Note Added: 0016356 | |
2018-12-01 14:58 | JohnDoe | Note Added: 0016357 | |
2018-12-01 15:12 | sToLps | Note Added: 0016358 | |
2018-12-01 15:22 | sToLps | Note Added: 0016359 | |
2018-12-01 15:25 | sToLps | Note Edited: 0016359 | |
2018-12-01 15:44 | shmuel | Note Added: 0016360 | |
2018-12-01 15:44 | shmuel | Note Edited: 0016360 | |
2018-12-01 15:48 | shmuel | Note Added: 0016361 | |
2018-12-01 16:02 | sToLps | Note Added: 0016362 | |
2018-12-01 16:08 | sToLps | Note Edited: 0016362 | |
2018-12-01 20:18 | shmuel | Assigned To | => shmuel |
2018-12-01 20:18 | shmuel | Status | new => feedback |
2018-12-01 20:18 | shmuel | Note Added: 0016363 | |
2018-12-02 02:59 | sToLps | Note Added: 0016364 | |
2018-12-02 02:59 | sToLps | Status | feedback => assigned |
2018-12-02 03:30 | sToLps | Note Edited: 0016364 | |
2018-12-02 05:39 | shmuel | Note Added: 0016365 | |
2018-12-02 06:06 | sToLps | Note Added: 0016366 | |
2018-12-02 06:15 | shmuel | Note Added: 0016367 | |
2018-12-02 06:50 | shmuel | Note Added: 0016368 | |
2018-12-02 07:07 | sToLps | Note Added: 0016369 | |
2018-12-02 07:17 | sToLps | Note Added: 0016370 | |
2018-12-02 07:18 | sToLps | Note Edited: 0016369 | |
2018-12-02 07:25 | shmuel | Note Added: 0016371 | |
2018-12-02 07:31 | sToLps | Note Added: 0016372 | |
2018-12-02 09:05 | sToLps | Note Added: 0016373 | |
2018-12-02 09:14 | shmuel | Status | assigned => closed |
2018-12-02 09:14 | shmuel | Resolution | open => fixed |
2018-12-02 09:14 | shmuel | Note Added: 0016374 |