We can definitely make the
revealToUser change you’ve suggested here.
Regarding the initial report, I’m not sure that I’d call this a ‘bug’, but rather a limitation of the current API. Given that the list model is a plain
TableListBoxModel, it’s only possible for this model to communicate with the
PluginListComponent in terms of indices into the list. There’s no way for an instance of
TableListBoxModel to communicate that it is only displaying a subset of the plugin list. Essentially, the limitations of the model API require that the PluginListComponent and the TableListBoxModel both adhere to the same contract: that table indices in the TableListBoxModel/PluginListComponent exactly correspond to the same plugin indices in the KnownPluginList.
To get the behaviour you’ve requested, I think we’d need to significantly change the interface of the ‘model’ class, so that the PluginListComponent can query it to find the actual
PluginDescriptions that are currently selected, rather than just plain list indices. This would mean moving away from the current use of
TableListBoxModel, and would be a breaking change in the API.
Due the scope of the required changes, I’m going to recategorise this topic as a feature request.