Add TODO and line numbers

This commit is contained in:
Night Kaly 2024-11-15 00:09:02 +00:00
parent 5b0b67b5eb
commit a92c9cd07a
Signed by: night0721
SSH key fingerprint: SHA256:B/hgVwUoBpx5vdNsXl9w8XwZljA9766uk6T4ubZp5HM
3 changed files with 20 additions and 5 deletions

6
TODO Normal file
View file

@ -0,0 +1,6 @@
Line number
Auto indent
soft wrap lines
copy paste
multiple buffer information
keybinding in config

View file

@ -5,7 +5,8 @@
/* THEME */
/* 38 and 48 is reversed as bar's color is reversed */
#define SURFACE_1_BG "\033[38;2;049;050;068m"
#define SURFACE_0_BG "\033[38;2;49;50;68m"
#define SURFACE_1_BG "\033[38;2;69;71;90m"
#define OVERLAY_2_BG "\033[38;2;147;153;178m"
#define BLACK_FG "\033[40m"
#define BLACK_BG "\033[30m"

16
vip.c
View file

@ -100,7 +100,7 @@ void draw_status_bar(void)
}
int coord_len = snprintf(coord, sizeof(coord), " %d:%d ", cur_editor->y + 1, cur_editor->x + 1);
bprintf(SURFACE_1_BG); /* background */
bprintf(SURFACE_0_BG); /* background */
/* text */
switch (cur_editor->mode) {
case NORMAL:
@ -120,7 +120,7 @@ void draw_status_bar(void)
while (file_len < cols) {
if (cols - mode_len - git_len - file_len == info_len + lines_len + coord_len) {
bprintf("%s%s", info, SURFACE_1_BG);
bprintf("%s%s", info, SURFACE_0_BG);
if (cur_editor->mode == NORMAL) {
bprintf(BLUE_FG);
} else if (cur_editor->mode == INSERT) {
@ -585,11 +585,19 @@ void draw_rows(void)
char *c = &cur_editor->row[filerow].render[cur_editor->coloff];
unsigned char *hl = &cur_editor->row[filerow].hl[cur_editor->coloff];
int absydiff = abs(filerow - cur_editor->y);
if (absydiff == 0) {
int num_digits = snprintf(NULL, 0, "%d", cur_editor->y + 1);
int left_padding = (6 - num_digits) / 2;
int right_padding = 6 - num_digits - left_padding;
bprintf("%s%*s%d%*s ", SURFACE_1_BG, left_padding, "", cur_editor->y + 1, right_padding, "");
} else {
bprintf("%s%6d ", SURFACE_1_BG, absydiff);
}
for (int j = 0; j < len; j++) {
if (iscntrl(c[j])) {
bprintf("%s%c\033[m", OVERLAY_2_BG, '@' + c[j]);
} else if (hl[j] == NORMAL) {
bprintf("%s%c", WHITE_BG, c[j]);
} else {
switch (hl[j]) {
case NUMBER: