Hi Bram, On Sat, Jan 12, 2019 at 4:50 AM Bram Moolenaar <[email protected]> wrote: > > > Yegappan wrote: > > > > > When a line with a sign is deleted, the sign is moved to the > > > > next line. If you undo the delete operation, the sign is not > > > > moved back to the original line. > > > > > > > > I expected that when a line with a sign is deleted, the sign > > > > will be removed. If you undo the delete the operation, the > > > > sign will be restored. This is how the named marks work. > > > > The current undo code handles the named marks correctly > > > > but doesn't handle signs. > > > > > > One of the uses of signs is displaying a breakpoint. When a line is > > > deleted, the breakpoint still exists. Displaying it on the next line > > > does seem like the best way to handle this. > > > > > > When undo-ing the delete ideally the sign is moved back to where it was. > > > But this is quite complicated, it would require the undo information to > > > contain data about the moved sign. I don't mind much about the sign > > > being displayed in the wrong line (the debugger with the executable is > > > already not in sync with the source code anyway). I do mind about the > > > sign not being displayed at all, it looks like the breakpoint was > > > removed, while it wasn't. > > > > > > > It will be useful to add a note to sign.txt about this behavior. > > > > When a line with a sign is deleted, the sign is moved to the next line. > > Let me add this: > > When the line on which the sign is placed is deleted, the sign is moved to the > next line (or the last line of the buffer, if there is no next line). When > the delete is undone the sign does not move back. > > > However, when I try it, deleting the lines at the end of the buffer, the > sign disappears. I suppose it's now on a line below the last one. When >
Yes. When you delete the last line, the sign gets moved to the next line below the last line (which is not there). > > undoing the delete the sign is still there, but it's not displayed until > When you undo the delete operation, as the sign line number has already changed, it is not restored back to the last line.. > > reloading the file. Can you look into fixing that? I don't really care > where the sign goes, but reloading the buffer should not be needed. > When adjusting the line number of a sign (after a delete operation), if it goes over the last line, we can limit it to the last line in the buffer. The downside with this approach is that, if multiple lines with signs are deleted at the end of a buffer, then multiple signs will be placed on the same line. What do you think about this approach? - Yegappan -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
