aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/api/deprecated.c
diff options
context:
space:
mode:
authorbfredl <bjorn.linse@gmail.com>2023-11-03 12:26:38 +0100
committerbfredl <bjorn.linse@gmail.com>2023-11-05 12:18:29 +0100
commit68cb4a7405ea9f8841d1f25ee8997c49e77fa679 (patch)
treef2766eca6c0cb9fefb9739ffc3256649ba8d4a61 /src/nvim/api/deprecated.c
parent92e99bb1058dd837c451675175efb8511c5f8e15 (diff)
downloadrneovim-68cb4a7405ea9f8841d1f25ee8997c49e77fa679.tar.gz
rneovim-68cb4a7405ea9f8841d1f25ee8997c49e77fa679.tar.bz2
rneovim-68cb4a7405ea9f8841d1f25ee8997c49e77fa679.zip
feat(extmarks): add "undo_restore" flag to opt out of undo-restoring
It is a design goal of extmarks that they allow precise tracking of changes across undo/redo, including restore the exact positions after a do/undo or undo/redo cycle. However this behavior is not useful for all usecases. Many plugins won't keep marks around for long after text changes, but uses them more like a cache until some external source (like LSP semantic highlights) has fully updated to changed text and then will explicitly readjust/replace extmarks as needed. Add a "undo_restore" flag which is true by default (matches existing behavior) but can be set to false to opt-out of this behavior. Delete dead u_extmark_set() code.
Diffstat (limited to 'src/nvim/api/deprecated.c')
-rw-r--r--src/nvim/api/deprecated.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/nvim/api/deprecated.c b/src/nvim/api/deprecated.c
index 59b7fc18d6..906edb7b44 100644
--- a/src/nvim/api/deprecated.c
+++ b/src/nvim/api/deprecated.c
@@ -172,8 +172,7 @@ Integer nvim_buf_set_virtual_text(Buffer buffer, Integer src_id, Integer line, A
decor.virt_text_width = width;
decor.priority = 0;
- extmark_set(buf, ns_id, NULL, (int)line, 0, -1, -1, &decor, true,
- false, kExtmarkNoUndo, NULL);
+ extmark_set(buf, ns_id, NULL, (int)line, 0, -1, -1, &decor, true, false, false, NULL);
return src_id;
}