View Issue Details

IDProjectCategoryView StatusLast Update
0002268WishesMacropublic2014-06-14 12:53
ReporterJohnDoeAssigned To 
PrioritynormalSeverityfeatureReproducibilityN/A
Status newResolutionopen 
Product Version3.0 
Target VersionFixed in Version 
Summary0002268: Нормальные имена флагов-условий выполнения макросов
DescriptionПоскольку макросы теперь составляются в редакторе, то актуализировалась проблема наименований флагов.
Глядя только список флагов можно растеряться: их много, все почему-то названы через отрицание.
А ведь в диалоге назначения макроса всё кажется просто.
Причину вижу именно в неудачных наименованиях.

Предлагаю свою версию.
Вместо пары флагов - один. Отрицание придаётся тильдой, например ~PPanel.Plugin.
Имена в основном соответствуют наименованию свойств в макроязыке.

Возможности форматирования здесь ограничены, поэтому за подробностями отсылаю на форум http://forum.farmanager.com/viewtopic.php?f=15&t=7580
Steps To Reproduce[ ]
  [ ] APanel.Plugin
  [ ] APanel.Folder
  [ ] APanel.Selected

[ ]
  [ ] PPanel.Plugin
  [ ] PPanel.Folder
  [ ] PPanel.Selected
──────────────────────────────────────────────────────────
[ ] CmdLine.Empty
[ ] Text.Selected
Additional InformationВ исходниках можно встретить флаг ReuseMacro, вроде как сейчас уже неактуален.
Убрать.

Как лучше назвать оставшиеся 3 флага, пока не думал.
[ ] NoSendKeysToPlugins
[ ] DisableOutput
[ ] RunAfterFARStart

DisableOutput предлагается инвертировать в EnableOutput
TagsNo tags attached.
Build

Activities

JohnDoe

2013-01-23 20:38

updater   bugnote:0010101

[ ] Text.Selected - не соответствует никакому макросвойству.
Хотя в принципе есть такое общее (зависящае от контекста) свойство как "Selected".
Меня смущает именно эта чрезмерная обобщённость.
Очевидно, что как флаг макроса, Selected будет себя иначе.

JohnDoe

2013-01-23 20:40

updater   bugnote:0010102

На форуме было только альтернативное предложение: сделать флаги как в MacroLib.
http://forum.farmanager.com/viewtopic.php?p=101436#p101436

shmuel

2013-01-23 21:01

developer   bugnote:0010103

> Поскольку макросы теперь составляются в редакторе, то актуализировалась проблема наименований флагов.

Не будучи в принципе противником данного предложения, замечу, что написать макрос, выводящий в редакторе диалог с флагами (наподобие того, что при записи макроса) и вставляющий в редактор текстовое выражение флагов при закрытии этого диалога, весьма несложно.

JohnDoe

2013-01-24 14:19

updater   bugnote:0010113

Спасибо за макрос (http://forum.farmanager.com/viewtopic.php?f=15&t=7654).

Однако он не не умеет редактировать существующие.
Это конечно дело техники, но даже если и будет макрос для редактирования, всё равно - останется вопрос читабельности этих флагов в тексте.

Условия на самом же макроязыке сильно предпочтительнее.
Благо, сейчас для этого можно использовать condition.

Тем не менее предлагаю флаги всё-таки причесать.
Или ликвидировать.

NightRoman

2013-01-24 16:14

reporter   bugnote:0010119

Согласен, что надо как-то это все причесать. В текущем виде очень некрасиво, неудобно, а нередко и неинтуитивно, надо ломать голову, что же означает название того или иного флага.

Использование только condition кажется симпатичным и гибче некуда. Непривычно, конечно, боязно слегка (мне - точно). Но ведь флагов не напасешься все равно на все случаи.

NightRoman

2013-01-24 16:29

reporter   bugnote:0010120

Но некоторые флаги все равно нужны. Те, которые не условие, а режим задают.

max rusov

2013-01-24 18:56

reporter   bugnote:0010121

DisableOutput и NoSendKeysToPlugins лучше сделать не флагами, а логическими свойствами, при чем с правильным умолчанием, чтобы их вообще никогда не надо было писать. А RunAfterFARStart - выкинуть.

JohnDoe

2014-06-14 12:53

updater   bugnote:0012506

>Использование только condition кажется симпатичным и гибче некуда.
Единственное неудобство: необходимость определения анонимной функции, что громоздко.
Тикет 0002704 может это исправить.

Issue History

Date Modified Username Field Change
2013-01-23 20:13 JohnDoe New Issue
2013-01-23 20:38 JohnDoe Note Added: 0010101
2013-01-23 20:40 JohnDoe Note Added: 0010102
2013-01-23 21:01 shmuel Note Added: 0010103
2013-01-24 14:19 JohnDoe Note Added: 0010113
2013-01-24 16:14 NightRoman Note Added: 0010119
2013-01-24 16:29 NightRoman Note Added: 0010120
2013-01-24 18:56 max rusov Note Added: 0010121
2013-01-30 02:51 alexy Project Far Manager => Wishes
2013-02-03 04:31 alexy Severity minor => feature
2014-06-14 12:53 JohnDoe Note Added: 0012506