/* * re_plugin_highlighter.h * * A programmers editor * * re_data plugin to support the syntax highlighter. * * HEADER FILE * * Author: Dario Rodriguez antartica@whereismybit.com * This program is licensed under the terms of GNU GPL v2.1+ */ #include "re_data.h" typedef struct linecolor_t { int len; int color; } linecolor_t; typedef struct line_t { long pos; int off; /* offset int buf */ int len; /* size used in buf */ int endingmode; } hline_t; typedef struct hcolor_t { char origrgba[5]; char rgba[5]; } hcolor_t; typedef struct highlighter_t { int sizelines; int usedlines; hline_t *lines; long sizebuf; long usedbuf; char *buf; int sizecolors; hcolor_t *colors; int flag_doneall; int sizekeywordbuf; int usedkeywordbuf; char *keywordbuf; int keywordbufstart; int sizedirectivebuf; int useddirectivebuf; char *directivebuf; int directivebufstart; } highlighter_t; int redata_highlighter_register(redata_t *redata, redata_plugin_t *slot); int redata_highlighter_unregister(redata_t *redata, redata_plugin_t *slot,char *filename); hcolor_t *redata_highlighter_getcolors(redata_t *redata, int *ncolors); linecolor_t *redata_highlighter_getline(redata_t *redata, int line, int *nlinecolors); int redata_highlighter_getcolorindex(redata_t *redata, int line, int nthbyte); int redata_highlighter_settheme(redata_t *redata, int ntheme, int invert);