extmark.h
Go to the documentation of this file.
1 #ifndef NVIM_EXTMARK_H
2 #define NVIM_EXTMARK_H
3 
4 #include "nvim/buffer_defs.h"
5 #include "nvim/extmark_defs.h"
6 #include "nvim/marktree.h"
7 
8 EXTERN int extmark_splice_pending INIT(= 0);
9 
10 typedef struct
11 {
12  uint64_t ns_id;
13  uint64_t mark_id;
14  int row;
16 } ExtmarkInfo;
17 
18 typedef kvec_t(ExtmarkInfo) ExtmarkArray;
19 
20 
21 // delete the columns between mincol and endcol
22 typedef struct {
23  int start_row;
30 
31 // adjust marks after :move operation
32 typedef struct {
33  int start_row;
34  int start_col;
37  int new_row;
38  int new_col;
39 } ExtmarkMove;
40 
41 // extmark was updated
42 typedef struct {
43  uint64_t mark; // raw mark id of the marktree
44  int old_row;
46  int row;
49 
50 typedef enum {
57 
58 // TODO(bfredl): reduce the number of undo action types
59 struct undo_object {
61  union {
65  } data;
66 };
67 
68 
69 typedef struct {
70  int start_row;
71  int start_col;
72  int end_row;
73  int end_col;
74  int attr_id;
75  VirtText *virt_text;
76 } HlRange;
77 
78 typedef struct {
79  MarkTreeIter itr[1];
81  int top_row;
82  int row;
83  int col_until;
84  int current;
85  VirtText *virt_text;
87 
88 
89 #ifdef INCLUDE_GENERATED_DECLARATIONS
90 # include "extmark.h.generated.h"
91 #endif
92 
93 #endif // NVIM_EXTMARK_H
colnr_T old_col
Definition: extmark.h:45
int start_col
Definition: extmark.h:71
union undo_object::@29 data
int newextent_row
Definition: extmark.h:27
colnr_T newextent_col
Definition: extmark.h:28
VirtText * virt_text
Definition: extmark.h:75
colnr_T col
Definition: extmark.h:47
Definition: extmark.h:55
int extent_col
Definition: extmark.h:36
ExtmarkSavePos savepos
Definition: extmark.h:64
uint64_t ns_id
Definition: extmark.h:12
int extent_row
Definition: extmark.h:35
int start_col
Definition: extmark.h:34
Definition: extmark.h:42
int oldextent_row
Definition: extmark.h:25
Definition: extmark.h:59
EXTERN int extmark_splice_pending INIT(=0)
Definition: extmark.h:53
Definition: extmark.h:51
bool active
Definition: edit.c:216
int colnr_T
Column number type.
Definition: pos.h:9
#define EXTERN
Definition: macros.h:7
UndoObjectType
Definition: extmark.h:50
int attr_id
Definition: extmark.h:74
int start_row
Definition: extmark.h:23
Definition: extmark.h:32
int new_col
Definition: extmark.h:38
Definition: extmark.h:52
uint64_t mark_id
Definition: extmark.h:13
int end_col
Definition: extmark.h:73
int end_row
Definition: extmark.h:72
ExtmarkSplice splice
Definition: extmark.h:62
int start_row
Definition: extmark.h:70
Definition: extmark.h:78
Definition: extmark.h:22
int old_row
Definition: extmark.h:44
int row
Definition: extmark.h:46
typedef kvec_t(ExtmarkInfo) ExtmarkArray
int row
Definition: extmark.h:14
Definition: extmark.h:69
Definition: marktree.h:29
uint64_t mark
Definition: extmark.h:43
ExtmarkMove move
Definition: extmark.h:63
colnr_T oldextent_col
Definition: extmark.h:26
Definition: extmark.h:54
UndoObjectType type
Definition: extmark.h:60
colnr_T col
Definition: extmark.h:15
colnr_T start_col
Definition: extmark.h:24
int new_row
Definition: extmark.h:37
Definition: extmark.h:10
int start_row
Definition: extmark.h:33