aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/extmark_defs.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/extmark_defs.h')
-rw-r--r--src/nvim/extmark_defs.h15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/nvim/extmark_defs.h b/src/nvim/extmark_defs.h
index c927048981..899fbdf38a 100644
--- a/src/nvim/extmark_defs.h
+++ b/src/nvim/extmark_defs.h
@@ -14,12 +14,19 @@ 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
+} 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;