F3 для "подплагина" на пункте меню плагинов

Место, где разработчики плагинов могут поделиться своим опытом.
Post Reply
Shmuel
Posts: 6068
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 301 times

F3 для "подплагина" на пункте меню плагинов

Post by Shmuel »

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

Например, у LuaMacro есть фича "MenuItem", позволяющая юзеру добавлять свои "подплагины" в меню. Но при нажатии F3 на добавленные пункты увидим всё ту же информацию о плагине LuaMacro. Хотелось бы дать плагину возможность задавать эту информацию индивидуально по пунктам меню.

Я уже не помню, для чего в своё время во многие структуры, передаваеиые экспортируемым функциям, было добавлено поле Instance, может быть для этого? Но по коду Фара я не вижу его использования.

User avatar
NightRoman
Posts: 5924
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 13 times
Been thanked: 14 times
Contact:

F3 для "подплагина" на пункте меню плагинов

Post by NightRoman »

И мне хотелось бы. Все модули FarNet со своими элементами меню показывают одну и ту же информацию основного плагина (FaNetMan).

User avatar
NightRoman
Posts: 5924
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 13 times
Been thanked: 14 times
Contact:

F3 для "подплагина" на пункте меню плагинов

Post by NightRoman »

Извините, если это покажется офтопиком. Это только вершина айсберга. Основная
проблема, кажется, в том, что у Фара нет концепции подплагинов. Я Фар за это не
осуждаю, если что. Не было таких плагинов с подплагинами. Но в какой-то момент
стали появляться.

Проблемы подплагинов: нет своего хелпа, языковых файлов, информации,
конфигурации, сохраняемых настроек. "Мультиплагину" приходится как-то
выкручиваться, изобретать велосипеды.

buniak_a_h
Posts: 1610
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 109 times
Been thanked: 141 times
Contact:

F3 для "подплагина" на пункте меню плагинов

Post by buniak_a_h »

Я бы немножко расширил (связанная тема, по-моему).
Есть пункты, добавляемые в различные МЕНЮ макросами вызовом MenuItem; в этом вызове даже предусмотрены поля и description, и guid, но по F3 эта информация не выводится. Абыдно, да?
Ну и "рядом" с темой.
Панель создана панельным модулем. У панельного модуля есть свой GUID (в Info). Но чтоб добраться до него, я извращался страшно! В частности, я не нашёл в документации ничего про поле tPanelInfo.PluginObject (единственное описание - non-false Lua value). А что в нём есть module.Info.Guid - хорошо, что у меня куча поделок для анализа таблиц! Нигде не нашёл, как определить, какой панельный модуль открыт на панели! Если нет возможности "сократить" путь к этому GUID-у, то, может, как-то добавить в описание панельного модуля способ, как определить Id модуля-владельца панели? Может, я слишком усложнил получение GUID-а ПМ?

User avatar
DrKnS
Posts: 5571
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 7 times
Been thanked: 291 times

F3 для "подплагина" на пункте меню плагинов

Post by DrKnS »

Shmuel wrote:
Sat 21 Mar, 2020 08:35
для чего в своё время во многие структуры, передаваеиые экспортируемым функциям, было добавлено поле Instance
Для этого.

Оно, кстати, решает как сабж, так и
NightRoman wrote:
Sat 21 Mar, 2020 09:17
нет своего хелпа, языковых файлов, информации, конфигурации, сохраняемых настроек
но переписывать надо много, да.

Shmuel
Posts: 6068
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 301 times

F3 для "подплагина" на пункте меню плагинов

Post by Shmuel »

DrKnS wrote:
Sat 21 Mar, 2020 10:58
Для этого.
DrKnS wrote:
Sat 21 Mar, 2020 10:58
но переписывать надо много, да.
Мне это видится скорее как задача для Far4. (Изначально я думал воспользоваться имеющимся полем Instance, но вижу, что оно зарезервировано для более масштабных изменений).

Однако позволю себе вернуться к исходному пожеланию, которое гораздо скромнее по запросам и, как мне кажется, может быть реализовано без революции в коде. Например, расширением структуры PluginInfo или добавлением экспортируемой функции "GetPluginInfoEx".

P.S. Реализовать (возможно), смогу и сам, но всегда лучше обсудить заранее.
Last edited by Shmuel on Sat 21 Mar, 2020 11:55, edited 1 time in total.

Post Reply

Return to “Разработка плагинов”