aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/highlight_defs.h
blob: 927fc94bbe471ad9300b978564e63c50735033f3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#ifndef NVIM_HIGHLIGHT_DEFS_H
#define NVIM_HIGHLIGHT_DEFS_H

#include <inttypes.h>

#include "nvim/macros.h"

typedef int32_t RgbValue;

/// Values for index in highlight_attr[].
/// When making changes, also update hlf_names below!
typedef enum {
  HLF_8 = 0         // Meta & special keys listed with ":map", text that is
                    // displayed different from what it is
  , HLF_EOB         // after the last line in the buffer
  , HLF_TERM        // terminal cursor focused
  , HLF_TERMNC      // terminal cursor unfocused
  , HLF_AT          // @ characters at end of screen, characters that
                    // don't really exist in the text
  , HLF_D           // directories in CTRL-D listing
  , HLF_E           // error messages
  , HLF_I           // incremental search
  , HLF_L           // last search string
  , HLF_M           // "--More--" message
  , HLF_CM          // Mode (e.g., "-- INSERT --")
  , HLF_N           // line number for ":number" and ":#" commands
  , HLF_CLN         // current line number
  , HLF_R           // return to continue message and yes/no questions
  , HLF_S           // status lines
  , HLF_SNC         // status lines of not-current windows
  , HLF_C           // column to separate vertically split windows
  , HLF_T           // Titles for output from ":set all", ":autocmd" etc.
  , HLF_V           // Visual mode
  , HLF_VNC         // Visual mode, autoselecting and not clipboard owner
  , HLF_W           // warning messages
  , HLF_WM          // Wildmenu highlight
  , HLF_FL          // Folded line
  , HLF_FC          // Fold column
  , HLF_ADD         // Added diff line
  , HLF_CHD         // Changed diff line
  , HLF_DED         // Deleted diff line
  , HLF_TXD         // Text Changed in diff line
  , HLF_SC          // Sign column
  , HLF_CONCEAL     // Concealed text
  , HLF_SPB         // SpellBad
  , HLF_SPC         // SpellCap
  , HLF_SPR         // SpellRare
  , HLF_SPL         // SpellLocal
  , HLF_PNI         // popup menu normal item
  , HLF_PSI         // popup menu selected item
  , HLF_PSB         // popup menu scrollbar
  , HLF_PST         // popup menu scrollbar thumb
  , HLF_TP          // tabpage line
  , HLF_TPS         // tabpage line selected
  , HLF_TPF         // tabpage line filler
  , HLF_CUC         // 'cursurcolumn'
  , HLF_CUL         // 'cursurline'
  , HLF_MC          // 'colorcolumn'
  , HLF_QFL         // selected quickfix line
  , HLF_0           // Whitespace
  , HLF_INACTIVE    // NormalNC: Normal text in non-current windows
  , HLF_COUNT       // MUST be the last one
} hlf_T;

EXTERN const char *hlf_names[] INIT(= {
  [HLF_8] = "SpecialKey",
  [HLF_EOB] = "EndOfBuffer",
  [HLF_TERM] = "TermCursor",
  [HLF_TERMNC] = "TermCursorNC",
  [HLF_AT] = "NonText",
  [HLF_D] = "Directory",
  [HLF_E] = "ErrorMsg",
  [HLF_I] = "IncSearch",
  [HLF_L] = "Search",
  [HLF_M] = "MoreMsg",
  [HLF_CM] = "ModeMsg",
  [HLF_N] = "LineNr",
  [HLF_CLN] = "CursorLineNr",
  [HLF_R] = "Question",
  [HLF_S] = "StatusLine",
  [HLF_SNC] = "StatusLineNC",
  [HLF_C] = "VertSplit",
  [HLF_T] = "Title",
  [HLF_V] = "Visual",
  [HLF_VNC] = "VisualNC",
  [HLF_W] = "WarningMsg",
  [HLF_WM] = "WildMenu",
  [HLF_FL] = "Folded",
  [HLF_FC] = "FoldColumn",
  [HLF_ADD] = "DiffAdd",
  [HLF_CHD] = "DiffChange",
  [HLF_DED] = "DiffDelete",
  [HLF_TXD] = "DiffText",
  [HLF_SC] = "SignColumn",
  [HLF_CONCEAL] = "Conceal",
  [HLF_SPB] = "SpellBad",
  [HLF_SPC] = "SpellCap",
  [HLF_SPR] = "SpellRare",
  [HLF_SPL] = "SpellLocal",
  [HLF_PNI] = "Pmenu",
  [HLF_PSI] = "PmenuSel",
  [HLF_PSB] = "PmenuSbar",
  [HLF_PST] = "PmenuThumb",
  [HLF_TP] = "TabLine",
  [HLF_TPS] = "TabLineSel",
  [HLF_TPF] = "TabLineFill",
  [HLF_CUC] = "CursorColumn",
  [HLF_CUL] = "CursorLine",
  [HLF_MC] = "ColorColumn",
  [HLF_QFL] = "QuickFixLine",
  [HLF_0] = "Whitespace",
  [HLF_INACTIVE] = "NormalNC"
});


EXTERN int highlight_attr[HLF_COUNT];       // Highl. attr for each context.
EXTERN int highlight_user[9];                   // User[1-9] attributes
EXTERN int highlight_stlnc[9];                  // On top of user
EXTERN int cterm_normal_fg_color INIT(= 0);
EXTERN int cterm_normal_fg_bold INIT(= 0);
EXTERN int cterm_normal_bg_color INIT(= 0);
EXTERN RgbValue normal_fg INIT(= -1);
EXTERN RgbValue normal_bg INIT(= -1);
EXTERN RgbValue normal_sp INIT(= -1);

#endif  // NVIM_HIGHLIGHT_DEFS_H