1#ifndef NVIM_SYNTAX_H
2#define NVIM_SYNTAX_H
3
4#include <stdbool.h>
5
6#include "nvim/globals.h"
7#include "nvim/buffer_defs.h"
8#include "nvim/ex_cmds_defs.h"
9
10#define HL_CONTAINED 0x01 /* not used on toplevel */
11#define HL_TRANSP 0x02 /* has no highlighting */
12#define HL_ONELINE 0x04 /* match within one line only */
13#define HL_HAS_EOL 0x08 /* end pattern that matches with $ */
14#define HL_SYNC_HERE 0x10 /* sync point after this item (syncing only) */
15#define HL_SYNC_THERE 0x20 /* sync point at current line (syncing only) */
16#define HL_MATCH 0x40 /* use match ID instead of item ID */
17#define HL_SKIPNL 0x80 /* nextgroup can skip newlines */
18#define HL_SKIPWHITE 0x100 /* nextgroup can skip white space */
19#define HL_SKIPEMPTY 0x200 /* nextgroup can skip empty lines */
20#define HL_KEEPEND 0x400 /* end match always kept */
21#define HL_EXCLUDENL 0x800 /* exclude NL from match */
22#define HL_DISPLAY 0x1000 /* only used for displaying, not syncing */
23#define HL_FOLD 0x2000 /* define fold */
24#define HL_EXTEND 0x4000 /* ignore a keepend */
25#define HL_MATCHCONT 0x8000 /* match continued from previous line */
26#define HL_TRANS_CONT 0x10000 /* transparent item without contains arg */
27#define HL_CONCEAL 0x20000 /* can be concealed */
28#define HL_CONCEALENDS 0x40000 /* can be concealed */
29
30typedef struct {
31 char *name;
32 RgbValue color;
33} color_name_table_T;
34extern color_name_table_T color_name_table[];
35
36/// Array of highlight definitions, used for unit testing
37extern const char *const highlight_init_cmdline[];
38
39#ifdef INCLUDE_GENERATED_DECLARATIONS
40# include "syntax.h.generated.h"
41#endif
42
43#endif // NVIM_SYNTAX_H
44