tconf.h - neatvi - [fork] simple vi-type editor with UTF-8 support
(HTM) git clone git://src.adamsgaard.dk/neatvi
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
---
tconf.h (2523B)
---
1 /* neatvi configuration file */
2
3 /* access mode of new files */
4 #define MKFILE_MODE 0600
5
6 /* map file names to file types */
7 static struct filetype {
8 char *ft; /* file type */
9 char *pat; /* file name pattern */
10 } filetypes[] = {
11 {"c", "\\.[hc]$"}, /* C */
12 {"roff", "\\.(ms|me|mom|tr|roff|tmac|txt|[1-9])$"}, /* troff */
13 {"tex", "\\.tex$"}, /* tex */
14 {"msg", "letter$|mbox$|mail$"}, /* email */
15 {"mk", "Makefile$|makefile$|\\.mk$"}, /* makefile */
16 {"sh", "\\.sh$"}, /* shell script */
17 {"py", "\\.py$"}, /* python */
18 {"bib", "bib$"}, /* refer */
19 {"nm", "\\.nm$"}, /* neatmail */
20 {"diff", "\\.(patch|diff)$"} /* diff */
21 };
22
23 /* syntax highlighting patterns */
24 static struct highlight {
25 char *ft; /* the filetype of this pattern */
26 int att[16]; /* attributes of the matched groups */
27 char *pat; /* regular expression */
28 int end; /* the group ending this pattern */
29 } highlights[] = {
30 {"invalid", {0}, ""},
31 };
32
33 /* how to hightlight current line (hll option) */
34 #define SYN_LINE (SYN_BGMK(11))
35
36 /* how to hightlight text in the reverse direction */
37 #define SYN_REVDIR (SYN_BGMK(7))
38
39 /* define it as "\33[8l" to disable BiDi in vte-based terminals */
40 #define LNPREF ""
41
42 /* right-to-left characters (used only in dircontexts[] and dirmarks[]) */
43 #define CR2L "ءآأؤإئابةتثجحخدذرزسشصضطظعغـفقكلمنهوىييپچژکگی؛،»«؟ًٌٍَُِّْ"
44 /* neutral characters (used only in dircontexts[] and dirmarks[]) */
45 #define CNEUT "-!\"#$%&'()*+,./:;<=>?@^_`{|}~ "
46
47 /* direction context patterns; specifies the direction of a whole line */
48 static struct dircontext {
49 int dir;
50 char *pat;
51 } dircontexts[] = {
52 {-1, "^[" CR2L "]"},
53 {+1, "^[a-zA-Z_0-9]"},
54 };
55
56 /* direction marks; the direction of a few words in a line */
57 static struct dirmark {
58 int ctx; /* the direction context for this mark; 0 means any */
59 int dir; /* the direction of the matched text */
60 int grp; /* the nested subgroup; 0 means no groups */
61 char *pat;
62 } dirmarks[] = {
63 {+0, +1, 1, "\\\\\\*\\[([^]]+)\\]"},
64 {+1, -1, 0, "[" CR2L "][" CNEUT CR2L "]*[" CR2L "]"},
65 {-1, +1, 0, "[a-zA-Z0-9_][^" CR2L "\\\\`$']*[a-zA-Z0-9_]"},
66 {+0, +1, 0, "\\$([^$]+)\\$"},
67 {+0, +1, 1, "\\\\[a-zA-Z0-9_]+\\{([^}]+)\\}"},
68 {-1, +1, 0, "\\\\[^ \t" CR2L "]+"},
69 };
70
71 /* character placeholders */
72 static struct placeholder {
73 char *s; /* the source character */
74 char *d; /* the placeholder */
75 int wid; /* the width of the placeholder */
76 } placeholders[] = {
77 {"", "-", 1},
78 {"", "-", 1},
79 };