ledit

Text editor (WIP)
git clone git://lumidify.org/ledit.git (fast, but not encrypted)
git clone https://lumidify.org/ledit.git (encrypted, but very slow)
git clone git://4kcetb7mo7hj6grozzybxtotsub5bempzo4lirzc3437amof2c2impyd.onion/ledit.git (over tor)
Log | Files | Refs | README | LICENSE

configparser.h (2328B)


      1 #ifndef _CONFIGPARSER_H_
      2 #define _CONFIGPARSER_H_
      3 
      4 #include "common.h"
      5 #include "uglycrap.h"
      6 #include "keys_command.h"
      7 #include "keys_basic.h"
      8 
      9 typedef struct {
     10 	int scrollbar_width;
     11 	int scrollbar_step;
     12 	int text_size;
     13 	int highlight_search;
     14 	int extra_line_spacing;
     15 	XftColor text_fg;
     16 	XftColor text_bg;
     17 	XftColor cursor_fg;
     18 	XftColor cursor_bg;
     19 	XftColor selection_fg;
     20 	XftColor selection_bg;
     21 	XftColor bar_fg;
     22 	XftColor bar_bg;
     23 	XftColor bar_cursor;
     24 	XftColor scrollbar_fg;
     25 	XftColor scrollbar_bg;
     26 	const char *text_font;
     27 	const char *bar_fmt;
     28 } ledit_theme;
     29 
     30 typedef struct {
     31 	char *text;        /* for keys that correspond with text */
     32 	unsigned int mods; /* modifier mask */
     33 	KeySym keysym;     /* for other keys, e.g. arrow keys */
     34 	ledit_mode modes;  /* modes in which this keybinding is functional */
     35 	basic_key_cb *cb;  /* callback */
     36 } basic_key_mapping;
     37 
     38 typedef struct {
     39 	char *text;              /* for keys that correspond with text */
     40 	unsigned int mods;       /* modifier mask */
     41 	KeySym keysym;           /* for other keys, e.g. arrow keys */
     42 	command_mode modes;      /* substitute, etc. */
     43 	command_key_cb *cb;      /* callback */
     44 } command_key_mapping;
     45 
     46 typedef struct {
     47 	char *text;      /* text typed to call command */
     48 	command_cb *cb;  /* callback */
     49 } command_mapping;
     50 
     51 typedef struct {
     52 	basic_key_mapping *keys;
     53 	size_t num_keys;
     54 	size_t alloc_keys;
     55 } basic_key_array;
     56 
     57 typedef struct {
     58 	command_key_mapping *keys;
     59 	size_t num_keys;
     60 	size_t alloc_keys;
     61 } command_key_array;
     62 
     63 typedef struct {
     64 	command_mapping *cmds;
     65 	size_t num_cmds;
     66 	size_t alloc_cmds;
     67 } command_array;
     68 
     69 /* Note: The config is initialized immediately when ledit starts, so these
     70  * should not return NULL (unless an invalid language index is given), but
     71  * it's still better to check just in case. */
     72 
     73 /* Note: The returned pointers are invalidated if the config is reloaded. */
     74 
     75 ledit_theme *config_get_theme(void);
     76 basic_key_array *config_get_basic_keys(size_t lang_index);
     77 command_key_array *config_get_command_keys(size_t lang_index);
     78 command_array *config_get_commands(size_t lang_index);
     79 int config_get_language_index(char *lang, size_t *idx_ret);
     80 int config_loadfile(ledit_common *common, char *filename, char **errstr);
     81 void config_cleanup(ledit_common *common);
     82 char *config_get_language_string(size_t lang_index);
     83 
     84 #endif