Introduction
Introduction Statistics Contact Development Disclaimer Help
tvi: for ex messages use "---" filetype - neatvi - [fork] simple vi-type editor…
git clone git://src.adamsgaard.dk/neatvi
Log
Files
Refs
README
---
commit d9562b264f00d015c0bcd75bd8fa3e4cece9eddb
parent 89738c4b7ea3a3d705c408090a85c14610158251
Author: Ali Gholami Rudi <[email protected]>
Date: Fri, 10 Mar 2017 14:10:40 +0330
vi: for ex messages use "---" filetype
Diffstat:
M led.c | 22 +++++++++++++++++++---
M vi.c | 2 +-
M vi.h | 1 +
3 files changed, 21 insertions(+), 4 deletions(-)
---
diff --git a/led.c b/led.c
t@@ -1,3 +1,4 @@
+/* line editing and drawing */
#include <ctype.h>
#include <stdio.h>
#include <string.h>
t@@ -33,6 +34,7 @@ static int led_offdir(char **chrs, int *pos, int i)
return 0;
}
+/* highlight text in reverse direction */
static void led_markrev(int n, char **chrs, int *pos, int *att)
{
int i = 0, j;
t@@ -51,7 +53,8 @@ static void led_markrev(int n, char **chrs, int *pos, int *a…
}
}
-static char *led_render(char *s0, int cbeg, int cend)
+/* render and highlight a line */
+static char *led_render(char *s0, int cbeg, int cend, char *syn)
{
int n;
int *pos; /* pos[i]: the screen position of the i-th character …
t@@ -75,7 +78,7 @@ static char *led_render(char *s0, int cbeg, int cend)
for (j = 0; j < curwid; j++)
off[led_posctx(ctx, pos[i] + j, cbeg, cend)] =…
}
- att = syn_highlight(ex_filetype(), s0);
+ att = syn_highlight(syn, s0);
led_markrev(n, chrs, pos, att);
out = sbuf_make();
i = cbeg;
t@@ -107,9 +110,20 @@ static char *led_render(char *s0, int cbeg, int cend)
return sbuf_done(out);
}
+/* print a line on the screen */
void led_print(char *s, int row)
{
- char *r = led_render(s, xleft, xleft + xcols);
+ char *r = led_render(s, xleft, xleft + xcols, ex_filetype());
+ term_pos(row, 0);
+ term_kill();
+ term_str(r);
+ free(r);
+}
+
+/* print a line on the screen; for ex messages */
+void led_printmsg(char *s, int row)
+{
+ char *r = led_render(s, xleft, xleft + xcols, "---");
term_pos(row, 0);
term_kill();
term_str(r);
t@@ -199,6 +213,7 @@ static char *led_readchar(int c, char *kmap)
return kmap_map(kmap, c);
}
+/* read a character from the terminal */
char *led_read(char **kmap)
{
int c = term_read();
t@@ -218,6 +233,7 @@ char *led_read(char **kmap)
return NULL;
}
+/* read a line from the terminal */
static char *led_line(char *pref, char *post, char *ai, int ai_max, int *key, …
{
struct sbuf *sb;
diff --git a/vi.c b/vi.c
t@@ -45,7 +45,7 @@ static void vi_drawmsg(void)
{
int oleft = xleft;
xleft = 0;
- led_print(vi_msg, xrows);
+ led_printmsg(vi_msg, xrows);
vi_msg[0] = '\0';
xleft = oleft;
}
diff --git a/vi.h b/vi.h
t@@ -133,6 +133,7 @@ char *led_prompt(char *pref, char *post, char **kmap);
char *led_input(char *pref, char *post, char **kmap);
char *led_read(char **kmap);
void led_print(char *msg, int row);
+void led_printmsg(char *s, int row);
int led_pos(char *s, int pos);
/* ex commands */
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.