diff options
Diffstat (limited to 'src/nvim/extmark_defs.h')
-rw-r--r-- | src/nvim/extmark_defs.h | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/nvim/extmark_defs.h b/src/nvim/extmark_defs.h index c927048981..76804db848 100644 --- a/src/nvim/extmark_defs.h +++ b/src/nvim/extmark_defs.h @@ -14,12 +14,20 @@ typedef kvec_t(VirtTextChunk) VirtText; typedef struct { - uint64_t ns_id; - uint64_t mark_id; int hl_id; // highlight group - // TODO(bfredl): virt_text is pretty larger than the rest, - // pointer indirection? VirtText virt_text; + // TODO(bfredl): style, signs, etc + bool shared; // shared decoration, don't free +} Decoration; + +typedef struct +{ + uint64_t ns_id; + uint64_t mark_id; + // TODO(bfredl): a lot of small allocations. Should probably use + // kvec_t(Decoration) as an arena. Alternatively, store ns_id/mark_id + // _inline_ in MarkTree and use the map only for decorations. + Decoration *decor; } ExtmarkItem; typedef struct undo_object ExtmarkUndoObject; |