tAdd user configuration for colors, implement digit coloring - ve - a minimal text editor (work in progress)
 (HTM) git clone git://src.adamsgaard.dk/ve
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 97418d42195f0f408fd2dfd02531fb50120482fc
 (DIR) parent 46d33db19cc6321705a9c52f7929a2a689d88ebc
 (HTM) Author: Anders Damsgaard <anders@adamsgaard.dk>
       Date:   Thu,  8 Aug 2019 09:20:35 +0200
       
       Add user configuration for colors, implement digit coloring
       
       Diffstat:
         M config.def.h                        |      11 +++++++++++
         M ve.1                                |       1 +
         M ve.c                                |      26 +++++++++++++++++++++++---
       
       3 files changed, 35 insertions(+), 3 deletions(-)
       ---
 (DIR) diff --git a/config.def.h b/config.def.h
       t@@ -12,3 +12,13 @@ static int status_message_timeout = 3;
         */
        /* static unsigned int cursorshape_normal = 2; */
        /* static unsigned int cursorshape_insert = 6; */
       +
       +/*
       + * color settings for syntax highglighting
       + */
       +static const int colors[][3] = {
       +        /*                  fg   bg   style  */
       +        [ColorDigits]   = {  1,   0,     0 },
       +        [ColorComments] = {  2,   0,     0 },
       +        [ColorKeywords] = {  3,   0,     0 },
       +};
       +\ No newline at end of file
 (DIR) diff --git a/ve.1 b/ve.1
       t@@ -24,6 +24,7 @@ enter INSERT mode
        .SH SEE ALSO
        .BR vi(1),
        .BR vim(1)
       +.BR vis(1)
        .SH BUGS
        Please report found bugs at https://gitlab.com/admesg/ve/issues
        .SH AUTHOR
 (DIR) diff --git a/ve.c b/ve.c
       t@@ -15,7 +15,6 @@
        #include <time.h>
        #include <unistd.h>
        
       -#include "config.h"
        
        
        /* macros */
       t@@ -56,6 +55,12 @@ struct editor_config {
                int find_direction;
        };
        
       +/* color scheme types */
       +enum { ColorDigits, ColorComments, ColorKeywords };
       +enum { FG, BG, STYLE };
       +
       +/* configuration, allows nested code to access above variables */
       +#include "config.h"
        
        /* function declarations */
        
       t@@ -684,7 +689,9 @@ editor_scroll()
        void
        editor_draw_rows(struct abuf *ab)
        {
       -        int y, len, file_row;
       +        int y, j, len, file_row;
       +        char *c;
       +        char buf[16];
                for (y = 0; y < E.screen_rows; ++y) {
                        file_row = y + E.row_offset;
                        if (file_row < E.num_rows) {
       t@@ -693,7 +700,20 @@ editor_draw_rows(struct abuf *ab)
                                        len = 0;
                                if (len > E.screen_columns)
                                        len = E.screen_columns;
       -                        ab_append(ab, &E.row[file_row].rchars[E.column_offset], len);
       +                        /* ab_append(ab, &E.row[file_row].rchars[E.column_offset], len); */
       +                        c = &E.row[file_row].rchars[E.column_offset];
       +                        for (j = 0; j < len; ++j) {
       +                                if (isdigit(c[j])) {
       +                                        snprintf(buf, sizeof(buf),
       +                                                 "\x1b[3%dm", colors[ColorDigits][FG]);
       +                                        ab_append(ab, buf, strlen(buf));
       +                                        /* ab_append(ab, "\x1b[31m", 5); */
       +                                        ab_append(ab, &c[j], 1);
       +                                        ab_append(ab, "\x1b[39m", 5);
       +                                } else {
       +                                        ab_append(ab, &c[j], 1);
       +                                }
       +                        }
                        } else {
                                ab_append(ab, "~", 1);
                        }