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 */ /* 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 "\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 OVERLAY_2_BG "\033[38;2;147;153;178m"
#define BLACK_FG "\033[40m" #define BLACK_FG "\033[40m"
#define BLACK_BG "\033[30m" #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); 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 */ /* text */
switch (cur_editor->mode) { switch (cur_editor->mode) {
case NORMAL: case NORMAL:
@ -120,7 +120,7 @@ void draw_status_bar(void)
while (file_len < cols) { while (file_len < cols) {
if (cols - mode_len - git_len - file_len == info_len + lines_len + coord_len) { 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) { if (cur_editor->mode == NORMAL) {
bprintf(BLUE_FG); bprintf(BLUE_FG);
} else if (cur_editor->mode == INSERT) { } else if (cur_editor->mode == INSERT) {
@ -585,11 +585,19 @@ void draw_rows(void)
char *c = &cur_editor->row[filerow].render[cur_editor->coloff]; char *c = &cur_editor->row[filerow].render[cur_editor->coloff];
unsigned char *hl = &cur_editor->row[filerow].hl[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++) { for (int j = 0; j < len; j++) {
if (iscntrl(c[j])) { if (iscntrl(c[j])) {
bprintf("%s%c\033[m", OVERLAY_2_BG, '@' + 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 { } else {
switch (hl[j]) { switch (hl[j]) {
case NUMBER: case NUMBER: