add findInFiles plugin
This commit is contained in:
@@ -33,18 +33,50 @@ def sort_menu_contributions(menu_contributions: [MenuContribution]) -> [MenuCont
|
||||
result = []
|
||||
items = _sort_by_action_id(menu_contributions[:])
|
||||
|
||||
_recursive_half_order_adder(result, items)
|
||||
|
||||
# add remaining items to the end (ordered by their action_id)
|
||||
# This resolves cycles.
|
||||
for item in items:
|
||||
result.append(item)
|
||||
return result
|
||||
|
||||
|
||||
def _recursive_half_order_adder(result: [MenuContribution], items: [MenuContribution]):
|
||||
for item in items:
|
||||
mc: MenuContribution = item
|
||||
if not mc.after:
|
||||
result.append(mc)
|
||||
items.remove(mc)
|
||||
result = result + _new_recursive(mc.action_id, items)
|
||||
|
||||
# _recursive_half_order_adder(result, items)
|
||||
|
||||
# add remaining items to the end (ordered by their action_id)
|
||||
# This resolves cycles.
|
||||
for item in items:
|
||||
if result.count(item) == 0:
|
||||
result.append(item)
|
||||
return result
|
||||
|
||||
|
||||
def _new_recursive(current_action_id: str, items: [MenuContribution]) -> [MenuContribution]:
|
||||
result = []
|
||||
for item in items:
|
||||
|
||||
mc: MenuContribution = item
|
||||
print("%s checking %s" % (current_action_id, mc.action_id))
|
||||
if mc.after == current_action_id:
|
||||
print("%s adding %s" % (current_action_id, mc.action_id))
|
||||
result.append(mc)
|
||||
result = result + _new_recursive(mc.action_id, items)
|
||||
|
||||
return result
|
||||
|
||||
|
||||
def _recursive_half_order_adder(result: [MenuContribution], items: [MenuContribution]):
|
||||
print("%s -- %s" % ([mc.action_id for mc in result], [mc.action_id for mc in items]))
|
||||
for item in items:
|
||||
mc: MenuContribution = item
|
||||
if mc.after:
|
||||
index = 0
|
||||
for r in result:
|
||||
index = index + 1
|
||||
mc_in_result: MenuContribution = r
|
||||
if mc.after == mc_in_result.action_id:
|
||||
result.insert(index, mc)
|
||||
items.remove(mc)
|
||||
_recursive_half_order_adder(result, items)
|
||||
if not mc.after:
|
||||
result.append(mc)
|
||||
items.remove(mc)
|
||||
|
||||
Reference in New Issue
Block a user