Go to the documentation of this file. 1 #ifndef NVIM_MARKTREE_H
2 #define NVIM_MARKTREE_H
13 #define MT_MAX_DEPTH 20
14 #define MT_BRANCH_FACTOR 10
49 #define MT_INVALID_KEY (mtkey_t) { { -1, -1 }, 0, 0, 0, 0, 0, NULL }
51 #define MT_FLAG_REAL (((uint16_t)1) << 0)
52 #define MT_FLAG_END (((uint16_t)1) << 1)
53 #define MT_FLAG_PAIRED (((uint16_t)1) << 2)
54 #define MT_FLAG_HL_EOL (((uint16_t)1) << 3)
56 #define DECOR_LEVELS 4
57 #define MT_FLAG_DECOR_OFFSET 4
58 #define MT_FLAG_DECOR_MASK (((uint16_t)(DECOR_LEVELS - 1)) << MT_FLAG_DECOR_OFFSET)
63 #define MT_FLAG_RIGHT_GRAVITY (((uint16_t)1) << 14)
64 #define MT_FLAG_LAST (((uint16_t)1) << 15)
66 #define MT_FLAG_EXTERNAL_MASK (MT_FLAG_DECOR_MASK | MT_FLAG_RIGHT_GRAVITY | MT_FLAG_HL_EOL)
68 #define MARKTREE_END_FLAG (((uint64_t)1) << 63)
69 static inline uint64_t mt_lookup_id(uint32_t ns, uint32_t
id,
bool enda)
73 #undef MARKTREE_END_FLAG
75 static inline uint64_t mt_lookup_key(
mtkey_t key)
92 return mt_paired(
key) && !mt_end(
key);
100 static inline uint8_t marktree_decor_level(
mtkey_t key)
105 static inline uint16_t mt_flags(
bool right_gravity, uint8_t decor_level)
130 PMap(uint64_t) id2node[1];
134 #ifdef INCLUDE_GENERATED_DECLARATIONS
135 # include "marktree.h.generated.h"
138 #endif // NVIM_MARKTREE_H
int i
Definition: marktree.h:31
Decoration * decor_full
Definition: marktree.h:47
int32_t col
Definition: marktree.h:18
int i
Definition: marktree.h:24
mtpos_t pos
Definition: marktree.h:28
#define MT_FLAG_DECOR_MASK
Definition: marktree.h:58
Definition: marktree.h:22
int32_t row
Definition: marktree.h:17
#define MT_FLAG_RIGHT_GRAVITY
Definition: marktree.h:63
int32_t hl_id
Definition: marktree.h:44
#define DECOR_LEVELS
Definition: marktree.h:56
int key
Definition: keycodes.c:571
int32_t level
Definition: marktree.h:115
#define MT_FLAG_PAIRED
Definition: marktree.h:53
mtpos_t pos
Definition: marktree.h:41
size_t n_nodes
Definition: marktree.h:127
Definition: marktree.h:16
Definition: marktree.h:113
Definition: marktree.h:40
Definition: marktree.h:27
uint32_t ns
Definition: marktree.h:42
int32_t n
Definition: marktree.h:114
#define MARKTREE_END_FLAG
Definition: marktree.h:68
mtnode_t * root
Definition: marktree.h:126
uint16_t priority
Definition: marktree.h:46
#define MT_FLAG_DECOR_OFFSET
Definition: marktree.h:57
char * s
Definition: eval.c:797
mtnode_t * node
Definition: marktree.h:30
mtkey_t key[2 *MT_BRANCH_FACTOR - 1]
Definition: marktree.h:119
mtnode_t * ptr[]
Definition: marktree.h:120
int lvl
Definition: marktree.h:29
uint32_t id
Definition: marktree.h:43
Definition: marktree.h:125
int oldcol
Definition: marktree.h:23
#define MT_MAX_DEPTH
Definition: marktree.h:13
#define MT_FLAG_END
Definition: marktree.h:52
#define PMap(T)
Definition: map_defs.h:10
#define MT_BRANCH_FACTOR
Definition: marktree.h:14
Definition: decoration.h:38
mtnode_t * parent
Definition: marktree.h:118
uint16_t flags
Definition: marktree.h:45