[Github-comments] [geany/geany] Push current position to navqueue before navigating back (#1537)

Vasiliy Faronov notifications at xxxxx
Sat Jul 8 18:11:54 UTC 2017


Consider the following C document:

```
int foo(void)
{
    return bar(123);
}

int bar(int n)
{
    return n + 1;
}
```

**Scenario 1.** Place the cursor on line 3, column 12, and invoke *Go to Symbol Definition*. The cursor jumps to line 6, column 0. Now invoke *Navigate back a location*. The cursor jumps to 3,12 — just what you’d expect.

**Scenario 2.** Place the cursor on line 3, column 12, and invoke *Go to Symbol Definition*. The cursor jumps to line 6, column 0. Now move the cursor manually to line 8, column 15, and then invoke *Navigate back a location*. Again, the cursor jumps to 3,12. Is this what you’d expect? Depends; but clearly there are cases where you’d prefer to jump to 6,0 first. In addition, you can’t *Navigate forward a location* to 8,15.

This PR changes *Navigate back a location* so that it first pushes the current position onto the navqueue. This does not affect scenario 1, because the navqueue’s `add_new_position` deduplicates positions at the head. But in scenario 2, this has the effect that *Navigate back* takes you to 6,0 first. If you want 3,12, it’s just one more *Navigate back* away. And you can *Navigate forward* to 8,15 now.

I have realized over time that this is kind of a prerequisite for my PR #1114. Otherwise it is very counter-intuitive that *Navigate back* does **not** take you to the position you just pushed with *Remember location in history*.

You can view, comment on, or merge this pull request online at:

  https://github.com/geany/geany/pull/1537

-- Commit Summary --

  * Push current position to navqueue before navigating back

-- File Changes --

    M src/navqueue.c (8)

-- Patch Links --

https://github.com/geany/geany/pull/1537.patch
https://github.com/geany/geany/pull/1537.diff

-- 
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/pull/1537
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.geany.org/pipermail/github-comments/attachments/20170708/e25b586b/attachment.html>


More information about the Github-comments mailing list