@elextr I’m [trying 
out](https://github.com/vfaronov/geany/commit/ff1f28d8295e785abea27033d48c1e40d064373f)
 an approach based on Scintilla indicators. Instead of storing the actual 
position in the navqueue, I store a unique ID, and then fill that position with 
a special, hidden indicator with [its value 
set](http://www.scintilla.org/ScintillaDoc.html#SCI_SETINDICATORVALUE) to the 
same ID. To go to another queue item, I iterate over all ranges of this 
indicator in the document, until I get the range with the necessary ID.

So, in cases like replace-all, Scintilla does all the work for me.

I don’t even think this is too much of a hack. That indicator could reasonably 
be shown with 
[`INDIC_POINT`](http://www.scintilla.org/ScintillaDoc.html#SCI_INDICSETSTYLE) 
style, it would look like a trail of breadcrumbs.

I will probably need to limit the navqueue to some reasonable maximum length, 
so I don’t accumulate too many ranges that must be walked every time.

Also, I lose navqueue items whenever the document is reloaded.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/issues/1480#issuecomment-297057587

Reply via email to