Move structs to config.h

This commit is contained in:
Night Kaly 2024-11-09 00:40:44 +00:00
parent 546a6c5f1a
commit 4fb08b462e
Signed by: night0721
SSH key fingerprint: SHA256:B/hgVwUoBpx5vdNsXl9w8XwZljA9766uk6T4ubZp5HM

128
config.h
View file

@ -1,28 +1,114 @@
#ifndef CONFIG_H_ #define VERSION "0.0.1"
#define CONFIG_H_
#include "syntax.h"
#define TAB_SIZE 4 #define TAB_SIZE 4
/* THEME */ /* THEME */
/* 38 and 48 is reversed as bar's color is reversed */ /* 38 and 48 is reversed as bar's color is reversed */
#define SURFACE_1_BG "\x1b[38;2;049;050;068m" #define SURFACE_1_BG "\033[38;2;049;050;068m"
#define OVERLAY_0_BG "\x1b[38;2;108;112;134m" #define OVERLAY_0_BG "\033[38;2;108;112;134m"
#define BLACK_FG "\x1b[48;2;000;000;000m" #define BLACK_FG "\033[48;2;000;000;000m"
#define BLACK_BG "\x1b[38;2;000;000;000m" #define BLACK_BG "\033[38;2;000;000;000m"
#define WHITE_FG "\x1b[48;2;205;214;244m" #define WHITE_FG "\033[48;2;205;214;244m"
#define WHITE_BG "\x1b[38;2;205;214;244m" #define WHITE_BG "\033[38;2;205;214;244m"
#define BLUE_FG "\x1b[48;2;137;180;250m" #define BLUE_FG "\033[48;2;137;180;250m"
#define BLUE_BG "\x1b[38;2;137;180;250m" #define BLUE_BG "\033[38;2;137;180;250m"
#define GREEN_FG "\x1b[48;2;166;227;161m" #define GREEN_FG "\033[48;2;166;227;161m"
#define GREEN_BG "\x1b[38;2;166;227;161m" #define GREEN_BG "\033[38;2;166;227;161m"
#define PEACH_FG "\x1b[48;2;250;179;135m" #define PEACH_FG "\033[48;2;250;179;135m"
#define PEACH_BG "\x1b[38;2;250;179;135m" #define PEACH_BG "\033[38;2;250;179;135m"
#define SKY_FG "\x1b[48;2;137;220;235m" #define SKY_FG "\033[48;2;137;220;235m"
#define SKY_BG "\x1b[38;2;137;220;235m" #define SKY_BG "\033[38;2;137;220;235m"
#define MAUVE_BG "\x1b[38;2;203;166;247m" #define MAUVE_FG "\033[48;2;203;166;247m"
#define YELLOW_BG "\x1b[38;2;249;226;175m" #define MAUVE_BG "\033[38;2;203;166;247m"
#define YELLOW_BG "\033[38;2;249;226;175m"
#endif
enum keys {
BACKSPACE = 127,
ARROW_LEFT = 1000,
ARROW_RIGHT,
ARROW_UP,
ARROW_DOWN,
DEL_KEY,
HOME_KEY,
END_KEY,
PAGE_UP,
PAGE_DOWN
};
enum modes {
NORMAL,
INSERT,
VISUAL,
COMMAND
};
enum highlight {
DEFAULT = 0,
COMMENT,
MLCOMMENT,
KEYWORD1, /* default */
KEYWORD2, /* types */
STRING,
NUMBER,
MATCH,
RESET
};
typedef struct {
int idx;
int size;
int render_size;
char *chars;
char *render;
unsigned char *hl;
int opened_comment;
} row_t;
#define MAX_KEYWORDS 100
#define MAX_EXTENSIONS 10
typedef struct {
char *filetype;
int flags;
char *singleline_comment_start;
char *multiline_comment_start;
char *multiline_comment_end;
char *keywords[MAX_KEYWORDS];
char *extensions[MAX_EXTENSIONS];
} language_t;
typedef struct {
int x, y; /* chars x, y */
int rx; /* render x */
int rowoff;
int coloff;
int rows;
row_t *row;
int dirty;
int mode;
char *filename;
language_t *syntax;
} editor_t;
language_t langs[] = {
{
"c",
HL_NUMBERS | HL_STRINGS,
"//",
"/*",
"*/",
{ "switch", "if", "while", "for", "break", "continue", "return", "else", "struct", "union", "typedef", "static", "enum", "case", "sizeof", "#include", "int|", "long|", "double|", "float|", "char|", "unsigned|", "void|", NULL },
{ ".c", ".h", ".cpp", NULL },
},
};
#define LANGS_LEN (sizeof(langs) / sizeof(langs[0]))
#define HL_NUMBERS (1 << 0)
#define HL_STRINGS (1 << 1)
#define CTRL_KEY(k) ((k) & 0x1f)
#define COLOR_LEN 19