diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2020-01-20 19:29:12 +0100 |
---|---|---|
committer | Björn Linse <bjorn.linse@gmail.com> | 2020-01-20 19:36:35 +0100 |
commit | 48a869dc6d29514e943070da9f22f702f5179826 (patch) | |
tree | a419f94caa361cbc79480e3468fea437e710f312 /src/nvim/extmark_defs.h | |
parent | 4d4035400ea9cc349fa77d5ac6128c9249c5cb7a (diff) | |
download | rneovim-48a869dc6d29514e943070da9f22f702f5179826.tar.gz rneovim-48a869dc6d29514e943070da9f22f702f5179826.tar.bz2 rneovim-48a869dc6d29514e943070da9f22f702f5179826.zip |
shed biking: it's always extmarks, never marks extended
Diffstat (limited to 'src/nvim/extmark_defs.h')
-rw-r--r-- | src/nvim/extmark_defs.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/nvim/extmark_defs.h b/src/nvim/extmark_defs.h new file mode 100644 index 0000000000..c927048981 --- /dev/null +++ b/src/nvim/extmark_defs.h @@ -0,0 +1,37 @@ +#ifndef NVIM_EXTMARK_DEFS_H +#define NVIM_EXTMARK_DEFS_H + +#include "nvim/pos.h" // for colnr_T +#include "nvim/lib/kvec.h" + +typedef struct { + char *text; + int hl_id; +} VirtTextChunk; + +typedef kvec_t(VirtTextChunk) VirtText; +#define VIRTTEXT_EMPTY ((VirtText)KV_INITIAL_VALUE) + +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; +} ExtmarkItem; + +typedef struct undo_object ExtmarkUndoObject; +typedef kvec_t(ExtmarkUndoObject) extmark_undo_vec_t; + +// Undo/redo extmarks + +typedef enum { + kExtmarkNOOP, // Extmarks shouldn't be moved + kExtmarkUndo, // Operation should be reversable/undoable + kExtmarkNoUndo, // Operation should not be reversable + kExtmarkUndoNoRedo, // Operation should be undoable, but not redoable +} ExtmarkOp; + +#endif // NVIM_EXTMARK_DEFS_H |