When deepest level symbol becomes folded, restore location cannot set cursor to the deepest parent visible.
When cursor is not in any top level symbol per se (eg editing docstring of a function which exists outside of that function), highlighter puts cursor to the top of outline window. Rather than doing this we could update the search algorithm to use binary search and put cursor in nearest position of items in outline