View Issue Details

IDProjectCategoryView StatusLast Update
0002742WishesMacropublic2019-12-31 13:03
ReporterJohnDoe Assigned To 
PrioritynormalSeverityminorReproducibilityN/A
Status newResolutionopen 
Product Version3.0 
Summary0002742: LuaFAR: в функциях panel.* сделать "whatpanel" опциональным параметром
DescriptionМногие панельные функции позволяют обозначить панель двумя разными способами:
- указать первый параметр "handle"
- указать второй параметр "whatpanel"

Параметр "whatpanel" на мой взгляд не нужен, и в C API ничего такого нет: http://api.farmanager.com/ru/service_functions/panelcontrol.html
Для различения активной/пассивной в качестве "handle" используются предопределённые константы PANEL_ACTIVE/PANEL_PASSIVE
Steps To ReproduceПредлагаю сделать "whatpanel" опциональным.
Это актуально для следующих функций:
panel.ClearSelection
panel.GetPanelItem
panel.GetSelectedPanelItem
panel.RedrawPanel
panel.SetCaseSensitiveSort
panel.SetDirectoriesFirst
panel.SetNumericSort
panel.SetPanelDirectory
panel.SetSelection
panel.SetSortMode
panel.SetSortOrder
panel.SetViewMode
panel.UpdatePanel

В каждой из них есть возможность различить какой параметр подразумевается вторым: либо по типу значения, либо по общему числу переданных параметров.
TagsNo tags attached.
Build

Relationships

related to 0003760 new Wishes.Plugins LuaFAR panel API: возможность указать панель числом в первом аргументе 

Activities

shmuel

2014-07-20 12:16

developer   bugnote:0012760

Нужен пример кода, демонстрирующего, что параметр "whatpanel" в текущей версии LuaFAR не является опциональным.

JohnDoe

2014-07-20 12:22

updater   bugnote:0012761

Под опциональностью имелась ввиду возможность его полностью опустить.
Из документации следует что такая возможность не предусмотрена.

Или намекаете на то, что это работает, хоть и не документировано?

shmuel

2014-07-20 12:25

developer   bugnote:0012762

Этот параметр опциональный при условии, что 1-й параметр ("handle") задан. Если первый параметр nil, то второй параметр обязательный.

JohnDoe

2014-07-20 12:31

updater   bugnote:0012763

Ок, в таком случае предлагаю рассматривать данный тикет как предложение усовершенствования документации.

Например есть ряд определений такого вида:
item = panel.GetPanelItem ([handle], whatpanel, itemindex)
Их стоит записать так:
item = panel.GetPanelItem (handle, [whatpanel,] itemindex)

В некоторых других определениях опциональность сейчас никак не выделена квадратными скобками.

JohnDoe

2014-07-22 10:55

updater   bugnote:0012772

Запускаю из панелей:
lua:=panel.ClearSelection (far.Flags.PANEL_ACTIVE,1)
Получаю ошибку о том, что не хватает третьего параметра.

Значит второй параметр сейчас нельзя опускать.

shmuel

2014-07-22 15:08

developer   bugnote:0012774

Если он последний, можно опускать. Если не последний - можно передавать nil.

JohnDoe

2014-07-22 15:19

updater   bugnote:0012776

Так и делаю.
А wish о том, чтобы опускать его совсем.

Собственно, после того как я убедился, что константы PANEL_ACTIVE/PANEL_PASSIVE прекрасно работают в первом параметре, я второй нигде не использую.
Имхо стоило бы его совсем вывести, но совместимость...

Issue History

Date Modified Username Field Change
2014-07-20 12:07 JohnDoe New Issue
2014-07-20 12:16 shmuel Note Added: 0012760
2014-07-20 12:22 JohnDoe Note Added: 0012761
2014-07-20 12:25 shmuel Note Added: 0012762
2014-07-20 12:31 JohnDoe Note Added: 0012763
2014-07-22 10:55 JohnDoe Note Added: 0012772
2014-07-22 15:08 shmuel Note Added: 0012774
2014-07-22 15:19 JohnDoe Note Added: 0012776
2019-12-31 13:03 shmuel Relationship added related to 0003760