aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLiad Oz <liadozil@gmail.com>2022-12-07 19:07:56 +0200
committerLiad Oz <liadozil@gmail.com>2023-01-14 20:11:03 +0200
commitda70c394053e2110aedf5a8ea72cbaba0ccf06d9 (patch)
tree61442eaa2601dd49b14db9675669028def8b1d8b
parent8b86cb8f5b26699ead075cb6660c9236dfb5c495 (diff)
downloadrneovim-da70c394053e2110aedf5a8ea72cbaba0ccf06d9.tar.gz
rneovim-da70c394053e2110aedf5a8ea72cbaba0ccf06d9.tar.bz2
rneovim-da70c394053e2110aedf5a8ea72cbaba0ccf06d9.zip
fix(extmarks): adjust extmarks when inserting prompt prefix
-rw-r--r--src/nvim/edit.c2
-rw-r--r--test/functional/api/extmark_spec.lua8
2 files changed, 9 insertions, 1 deletions
diff --git a/src/nvim/edit.c b/src/nvim/edit.c
index 36a8674730..b83e732cec 100644
--- a/src/nvim/edit.c
+++ b/src/nvim/edit.c
@@ -1484,7 +1484,7 @@ static void init_prompt(int cmdchar_todo)
}
curwin->w_cursor.lnum = curbuf->b_ml.ml_line_count;
coladvance(MAXCOL);
- changed_bytes(curbuf->b_ml.ml_line_count, 0);
+ inserted_bytes(curbuf->b_ml.ml_line_count, 0, 0, (colnr_T)strlen(prompt));
}
// Insert always starts after the prompt, allow editing text after it.
diff --git a/test/functional/api/extmark_spec.lua b/test/functional/api/extmark_spec.lua
index 00f5b25b8a..9902826c72 100644
--- a/test/functional/api/extmark_spec.lua
+++ b/test/functional/api/extmark_spec.lua
@@ -1454,6 +1454,14 @@ describe('API/extmarks', function()
}} }, get_extmarks(ns, 0, -1, {details=true}))
end)
+ it('in prompt buffer', function()
+ feed('dd')
+ local id = set_extmark(ns, marks[1], 0, 0, {})
+ curbufmeths.set_option('buftype', 'prompt')
+ feed('i<esc>')
+ eq({{id, 0, 2}}, get_extmarks(ns, 0, -1))
+ end)
+
it('can get details', function()
set_extmark(ns, marks[1], 0, 0, {
end_col = 0,