I've developed a custom menus plugin which has been working great
https://github.com/familiar-studio/craft-menus
Im trying to get it work with the build in template caching and realizing the reorder actions are not triggering the caches to clear properly?
The template is using the "getNodes(menuHandle)" variable https://github.com/familiar-studio/craft-menus/blob/master/menus/variables/MenusVariable.php
which just uses standard element criteria? We are also using native structures so is there some way to specifically tell it to clear on reordering as well?
UPDATE: here is the code thats in my _layout that im hoping will clear when i reorder or add new elements
{% cache %}
<ul class="nav navbar-nav navbar-right">
{% nav node in craft.menus.getNodes('utilityMenu') %}
<li class="{{ node.children|length ? 'dropdown' }}
{{ node.active ? 'active' }}">
<a href="{{node.link}}"
{% if node.children|length %}
class="dropdown-toggle" data-toggle="dropdown"
{% endif %}>
{{ node.title }}
</a>
{% ifchildren %}
<ul class="dropdown-menu" role="menu">
<div class="arrow"></div>
{% children %}
</ul>
{% endifchildren %}
</li>
{% endnav %}
</ul>
{% endcache %}
UPDATE 2: So on deeper investivation it appears that the issue is only that it doesnt clear the cache when the structure is reordered, editing and saving nodes seems to clear it after all.