aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/sign_defs.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/sign_defs.h')
-rw-r--r--src/nvim/sign_defs.h28
1 files changed, 23 insertions, 5 deletions
diff --git a/src/nvim/sign_defs.h b/src/nvim/sign_defs.h
index b4f2709d45..687c15bbd6 100644
--- a/src/nvim/sign_defs.h
+++ b/src/nvim/sign_defs.h
@@ -2,20 +2,38 @@
#define NVIM_SIGN_DEFS_H
#include "nvim/pos.h"
+#include "nvim/types.h"
// signs: line annotations
+// Sign group
+typedef struct signgroup_S
+{
+ uint16_t refcount; // number of signs in this group
+ int next_sign_id; // next sign id for this group
+ char_u sg_name[1]; // sign group name
+} signgroup_T;
+
+// Macros to get the sign group structure from the group name
+#define SGN_KEY_OFF offsetof(signgroup_T, sg_name)
+#define HI2SG(hi) ((signgroup_T *)((hi)->hi_key - SGN_KEY_OFF))
+
typedef struct signlist signlist_T;
struct signlist
{
- int id; // unique identifier for each placed sign
- linenr_T lnum; // line number which has this sign
- int typenr; // typenr of sign
- signlist_T *next; // next signlist entry
- signlist_T *prev; // previous entry -- for easy reordering
+ int id; // unique identifier for each placed sign
+ linenr_T lnum; // line number which has this sign
+ int typenr; // typenr of sign
+ signgroup_T *group; // sign group
+ int priority; // priority for highlighting
+ signlist_T *next; // next signlist entry
+ signlist_T *prev; // previous entry -- for easy reordering
};
+// Default sign priority for highlighting
+#define SIGN_DEF_PRIO 10
+
// type argument for buf_getsigntype() and sign_get_attr()
typedef enum {
SIGN_ANY,