api/buffer: add "on_bytes" callback to nvim_buf_attach

This implements byte-resolution updates of buffer changes.
Note: there is no promise that the buffer state is valid inside
the callback!
This commit is contained in:
Björn Linse
2020-02-29 15:27:17 +01:00
parent 81fa107f59
commit bc86f76c0a
13 changed files with 280 additions and 125 deletions

View File

@@ -20,6 +20,9 @@ typedef struct
typedef kvec_t(ExtmarkInfo) ExtmarkInfoArray;
// TODO(bfredl): good enough name for now.
typedef ptrdiff_t bcount_t;
// delete the columns between mincol and endcol
typedef struct {
@@ -29,9 +32,9 @@ typedef struct {
colnr_T old_col;
int new_row;
colnr_T new_col;
size_t start_byte;
size_t old_byte;
size_t new_byte;
bcount_t start_byte;
bcount_t old_byte;
bcount_t new_byte;
} ExtmarkSplice;
// adjust marks after :move operation
@@ -42,6 +45,9 @@ typedef struct {
int extent_col;
int new_row;
int new_col;
bcount_t start_byte;
bcount_t extent_byte;
bcount_t new_byte;
} ExtmarkMove;
// extmark was updated