diff options
Diffstat (limited to 'syntax.h')
| -rw-r--r-- | syntax.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/syntax.h b/syntax.h new file mode 100644 index 0000000..0cb673e --- /dev/null +++ b/syntax.h @@ -0,0 +1,36 @@ +#pragma once + +#include <stdlib.h> + +#include "editor.h" +#include "row.h" + +#define HIGHLIGHT_FLAG_NUMBERS (1 << 0) +#define HIGHLIGHT_FLAG_STRINGS (1 << 1) + +struct editor_syntax { + char* filetype; + char** filetype_match; + char** keywords; + char* single_line_comment_start; + char* multi_line_comment_start; + char* multi_line_comment_end; + int flags; +}; + +enum editor_highlight { + HIGHLIGHT_NORMAL = 0, + HIGHLIGHT_COMMENT, + HIGHLIGHT_MULTILINE_COMMENT, + HIGHLIGHT_KEYWORD1, + HIGHLIGHT_KEYWORD2, + HIGHLIGHT_STRING, + HIGHLIGHT_NUMBER, + HIGHLIGHT_MATCH +}; + +#define HIGHLIGHT_DATABASE_ENTRY_COUNT (sizeof(highlight_database) / sizeof(highlight_database[0])) + +void editor_update_syntax(struct editor_state* editor, struct editor_row* row); +int editor_syntax_to_colour(int highlight); +void editor_select_syntax_highlight(struct editor_state* editor); |
