Page MenuHomePhabricator

[Refactor] Add logic to get all reuses from a `listIndex`
Open, Needs TriagePublic

Description

Context

In some places in the code we need to get all MWReferenceNodes using the same listKey, aka the reuses. Currently this can be done by calling InternalListNodeGroup.getAllReuses that uses InternalListNodeGroup.keyedNodes. If we want to move away from the listKey as identifier for reuses, we need another way to get "all reuses" of a ref by using the listIndex.\

Currently there's only a mapping on group level that's about the listKey. A mapping based on the listIndex should be stored in the InternalList directly.

Task
  • Maintain a map in ve.dm.InternalList.addNode whenever nodes are added
  • Make sure nodes are removed in ve.dm.InternalList.removeNode

Event Timeline

Change #1238390 had a related patch set uploaded (by WMDE-Fisch; author: WMDE-Fisch):

[VisualEditor/VisualEditor@master] Add mapping for nodes by listIndex

https://gerrit.wikimedia.org/r/1238390

Change #1238684 had a related patch set uploaded (by WMDE-Fisch; author: WMDE-Fisch):

[mediawiki/extensions/Cite@master] VE: Streamline ref usage numbers in MWReferenceEditPanel

https://gerrit.wikimedia.org/r/1238684

Change #1238694 had a related patch set uploaded (by WMDE-Fisch; author: WMDE-Fisch):

[mediawiki/extensions/Cite@master] [WIP] Use new reusesByListIndex method

https://gerrit.wikimedia.org/r/1238694

Change #1238684 merged by jenkins-bot:

[mediawiki/extensions/Cite@master] VE: Streamline ref usage numbers in MWReferenceEditPanel

https://gerrit.wikimedia.org/r/1238684

Change #1238694 had a related patch set uploaded (by WMDE-Fisch; author: WMDE-Fisch):

[mediawiki/extensions/Cite@master] [WIP] Add helper method for using listIndex for reuses

https://gerrit.wikimedia.org/r/1238694