mirror of
https://github.com/MidnightCommander/mc
synced 2024-12-23 21:06:52 +03:00
3213 lines
104 KiB
C
3213 lines
104 KiB
C
/* editor syntax highlighting.
|
|
|
|
Copyright (C) 1996, 1997, 1998 the Free Software Foundation
|
|
|
|
Authors: 1998 Paul Sheer
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|
|
|
#include <config.h>
|
|
#if defined(MIDNIGHT) || defined(GTK)
|
|
#include "edit.h"
|
|
#else
|
|
#include "coolwidget.h"
|
|
#endif
|
|
|
|
/* bytes */
|
|
#define SYNTAX_MARKER_DENSITY 512
|
|
|
|
#if !defined(MIDNIGHT) || defined(HAVE_SYNTAXH)
|
|
|
|
int option_syntax_highlighting = 1;
|
|
|
|
/* these three functions are called from the outside */
|
|
void edit_load_syntax (WEdit * edit, char **names, char *type);
|
|
void edit_free_syntax_rules (WEdit * edit);
|
|
void edit_get_syntax_color (WEdit * edit, long byte_index, int *fg, int *bg);
|
|
|
|
static void *syntax_malloc (size_t x)
|
|
{
|
|
void *p;
|
|
p = malloc (x);
|
|
memset (p, 0, x);
|
|
return p;
|
|
}
|
|
|
|
#define syntax_free(x) {if(x){free(x);(x)=0;}}
|
|
|
|
static int compare_word_to_right (WEdit * edit, long i, char *text, char *whole_left, char *whole_right, int line_start)
|
|
{
|
|
char *p;
|
|
int c, d, j;
|
|
if (!*text)
|
|
return 0;
|
|
c = edit_get_byte (edit, i - 1);
|
|
if (line_start)
|
|
if (c != '\n')
|
|
return 0;
|
|
if (whole_left)
|
|
if (strchr (whole_left, c))
|
|
return 0;
|
|
for (p = text; *p; p++, i++) {
|
|
switch (*p) {
|
|
case '\001':
|
|
p++;
|
|
for (;;) {
|
|
c = edit_get_byte (edit, i);
|
|
if (c == *p)
|
|
break;
|
|
if (c == '\n')
|
|
return 0;
|
|
i++;
|
|
}
|
|
break;
|
|
case '\002':
|
|
p++;
|
|
j = 0;
|
|
for (;;) {
|
|
c = edit_get_byte (edit, i);
|
|
if (c == *p)
|
|
j = i;
|
|
if (j && strchr (p + 1, c)) /* c exists further down, so it will get matched later */
|
|
break;
|
|
if (c == '\n' || c == '\t' || c == ' ') {
|
|
if (!j)
|
|
return 0;
|
|
i = j;
|
|
break;
|
|
}
|
|
if (whole_right)
|
|
if (!strchr (whole_right, c)) {
|
|
if (!j)
|
|
return 0;
|
|
i = j;
|
|
break;
|
|
}
|
|
i++;
|
|
}
|
|
break;
|
|
case '\003':
|
|
p++;
|
|
#if 0
|
|
c = edit_get_byte (edit, i++);
|
|
for (j = 0; p[j] != '\003'; j++)
|
|
if (c == p[j])
|
|
goto found_char1;
|
|
return 0;
|
|
found_char1:
|
|
#endif
|
|
c = -1;
|
|
for (;; i++) {
|
|
d = c;
|
|
c = edit_get_byte (edit, i);
|
|
for (j = 0; p[j] != '\003'; j++)
|
|
if (c == p[j])
|
|
goto found_char2;
|
|
break;
|
|
found_char2:
|
|
j = c; /* dummy command */
|
|
}
|
|
i--;
|
|
while (*p != '\003')
|
|
p++;
|
|
if (p[1] == d)
|
|
i--;
|
|
break;
|
|
#if 0
|
|
case '\004':
|
|
p++;
|
|
c = edit_get_byte (edit, i++);
|
|
for (j = 0; p[j] != '\004'; j++)
|
|
if (c == p[j])
|
|
return 0;
|
|
for (;; i++) {
|
|
c = edit_get_byte (edit, i);
|
|
for (j = 0; p[j] != '\004'; j++)
|
|
if (c == p[j])
|
|
goto found_char4;
|
|
continue;
|
|
found_char4:
|
|
break;
|
|
}
|
|
i--;
|
|
while (*p != '\004')
|
|
p++;
|
|
break;
|
|
#endif
|
|
default:
|
|
if (*p != edit_get_byte (edit, i))
|
|
return 0;
|
|
}
|
|
}
|
|
if (whole_right)
|
|
if (strchr (whole_right, edit_get_byte (edit, i)))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int compare_word_to_left (WEdit * edit, long i, char *text, char *whole_left, char *whole_right, int line_start)
|
|
{
|
|
char *p;
|
|
int c, d, j;
|
|
if (!*text)
|
|
return 0;
|
|
if (whole_right)
|
|
if (strchr (whole_right, edit_get_byte (edit, i + 1)))
|
|
return 0;
|
|
for (p = text + strlen (text) - 1; (unsigned long) p >= (unsigned long) text; p--, i--) {
|
|
switch (*p) {
|
|
case '\001':
|
|
p--;
|
|
for (;;) {
|
|
c = edit_get_byte (edit, i);
|
|
if (c == *p)
|
|
break;
|
|
if (c == '\n')
|
|
return 0;
|
|
i--;
|
|
}
|
|
break;
|
|
case '\002':
|
|
p--;
|
|
for (;;) {
|
|
c = edit_get_byte (edit, i);
|
|
if (c == *p)
|
|
break;
|
|
if (c == '\n' || c == '\t' || c == ' ')
|
|
return 0;
|
|
if (whole_right)
|
|
if (!strchr (whole_right, c))
|
|
return 0;
|
|
i--;
|
|
}
|
|
break;
|
|
case '\003':
|
|
while (*(--p) != '\003');
|
|
p++;
|
|
#if 0
|
|
c = edit_get_byte (edit, i--);
|
|
for (j = 0; p[j] != '\003'; j++)
|
|
if (c == p[j])
|
|
goto found_char1;
|
|
return 0;
|
|
found_char1:
|
|
#endif
|
|
c = -1;
|
|
d = '\0';
|
|
for (;; i--) {
|
|
d = c;
|
|
c = edit_get_byte (edit, i);
|
|
for (j = 0; p[j] != '\003'; j++)
|
|
if (c == p[j])
|
|
goto found_char2;
|
|
break;
|
|
found_char2:
|
|
j = c; /* dummy command */
|
|
}
|
|
i++;
|
|
p--;
|
|
if (*(p - 1) == d)
|
|
i++;
|
|
break;
|
|
#if 0
|
|
case '\004':
|
|
while (*(--p) != '\004');
|
|
d = *p;
|
|
p++;
|
|
c = edit_get_byte (edit, i--);
|
|
for (j = 0; p[j] != '\004'; j++)
|
|
if (c == p[j])
|
|
return 0;
|
|
for (;; i--) {
|
|
c = edit_get_byte (edit, i);
|
|
for (j = 0; p[j] != '\004'; j++)
|
|
if (c == p[j] || c == '\n' || c == d)
|
|
goto found_char4;
|
|
continue;
|
|
found_char4:
|
|
break;
|
|
}
|
|
i++;
|
|
p--;
|
|
break;
|
|
#endif
|
|
default:
|
|
if (*p != edit_get_byte (edit, i))
|
|
return 0;
|
|
}
|
|
}
|
|
c = edit_get_byte (edit, i);
|
|
if (line_start)
|
|
if (c != '\n')
|
|
return 0;
|
|
if (whole_left)
|
|
if (strchr (whole_left, c))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
|
|
#if 0
|
|
#define debug_printf(x,y) fprintf(stderr,x,y)
|
|
#else
|
|
#define debug_printf(x,y)
|
|
#endif
|
|
|
|
static inline unsigned long apply_rules_going_right (WEdit * edit, long i, unsigned long rule)
|
|
{
|
|
struct context_rule *r;
|
|
int context, contextchanged = 0, keyword, c1, c2;
|
|
int found_right = 0, found_left = 0, keyword_foundleft = 0;
|
|
int done = 0;
|
|
unsigned long border;
|
|
context = (rule & RULE_CONTEXT) >> RULE_CONTEXT_SHIFT;
|
|
keyword = (rule & RULE_WORD) >> RULE_WORD_SHIFT;
|
|
border = rule & (RULE_ON_LEFT_BORDER | RULE_ON_RIGHT_BORDER);
|
|
c1 = edit_get_byte (edit, i - 1);
|
|
c2 = edit_get_byte (edit, i);
|
|
if (!c2 || !c1)
|
|
return rule;
|
|
|
|
debug_printf ("%c->", c1);
|
|
debug_printf ("%c ", c2);
|
|
|
|
/* check to turn off a keyword */
|
|
if (keyword) {
|
|
struct key_word *k;
|
|
k = edit->rules[context]->keyword[keyword];
|
|
if (c1 == '\n')
|
|
keyword = 0;
|
|
if (k->last == c1 && compare_word_to_left (edit, i - 1, k->keyword, k->whole_word_chars_left, k->whole_word_chars_right, k->line_start)) {
|
|
keyword = 0;
|
|
keyword_foundleft = 1;
|
|
debug_printf ("keyword=%d ", keyword);
|
|
}
|
|
}
|
|
debug_printf ("border=%s ", border ? ((border & RULE_ON_LEFT_BORDER) ? "left" : "right") : "off");
|
|
|
|
/* check to turn off a context */
|
|
if (context && !keyword) {
|
|
r = edit->rules[context];
|
|
if (r->first_right == c2 && compare_word_to_right (edit, i, r->right, r->whole_word_chars_left, r->whole_word_chars_right, r->line_start_right) \
|
|
&&!(rule & RULE_ON_RIGHT_BORDER)) {
|
|
debug_printf ("A:3 ", 0);
|
|
found_right = 1;
|
|
border = RULE_ON_RIGHT_BORDER;
|
|
if (r->between_delimiters)
|
|
context = 0;
|
|
} else if (!found_left) {
|
|
if (r->last_right == c1 && compare_word_to_left (edit, i - 1, r->right, r->whole_word_chars_left, r->whole_word_chars_right, r->line_start_right) \
|
|
&&(rule & RULE_ON_RIGHT_BORDER)) {
|
|
/* always turn off a context at 4 */
|
|
debug_printf ("A:4 ", 0);
|
|
found_left = 1;
|
|
border = 0;
|
|
if (!keyword_foundleft)
|
|
context = 0;
|
|
} else if (r->last_left == c1 && compare_word_to_left (edit, i - 1, r->left, r->whole_word_chars_left, r->whole_word_chars_right, r->line_start_left) \
|
|
&&(rule & RULE_ON_LEFT_BORDER)) {
|
|
/* never turn off a context at 2 */
|
|
debug_printf ("A:2 ", 0);
|
|
found_left = 1;
|
|
border = 0;
|
|
}
|
|
}
|
|
}
|
|
debug_printf ("\n", 0);
|
|
|
|
/* check to turn on a keyword */
|
|
if (!keyword) {
|
|
char *p;
|
|
p = (r = edit->rules[context])->keyword_first_chars;
|
|
while ((p = strchr (p + 1, c2))) {
|
|
struct key_word *k;
|
|
int count;
|
|
count = (unsigned long) p - (unsigned long) r->keyword_first_chars;
|
|
k = r->keyword[count];
|
|
if (compare_word_to_right (edit, i, k->keyword, k->whole_word_chars_left, k->whole_word_chars_right, k->line_start)) {
|
|
keyword = count;
|
|
debug_printf ("keyword=%d ", keyword);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
/* check to turn on a context */
|
|
if (!context) {
|
|
int count;
|
|
for (count = 1; edit->rules[count] && !done; count++) {
|
|
r = edit->rules[count];
|
|
if (!found_left) {
|
|
if (r->last_right == c1 && compare_word_to_left (edit, i - 1, r->right, r->whole_word_chars_left, r->whole_word_chars_right, r->line_start_right) \
|
|
&&(rule & RULE_ON_RIGHT_BORDER)) {
|
|
debug_printf ("B:4 count=%d", count);
|
|
found_left = 1;
|
|
border = 0;
|
|
context = 0;
|
|
contextchanged = 1;
|
|
keyword = 0;
|
|
} else if (r->last_left == c1 && compare_word_to_left (edit, i - 1, r->left, r->whole_word_chars_left, r->whole_word_chars_right, r->line_start_left) \
|
|
&&(rule & RULE_ON_LEFT_BORDER)) {
|
|
debug_printf ("B:2 ", 0);
|
|
found_left = 1;
|
|
border = 0;
|
|
if (r->between_delimiters) {
|
|
context = count;
|
|
contextchanged = 1;
|
|
keyword = 0;
|
|
debug_printf ("context=%d ", context);
|
|
if (r->first_right == c2 && compare_word_to_right (edit, i, r->right, r->whole_word_chars_left, r->whole_word_chars_right, r->line_start_right)) {
|
|
debug_printf ("B:3 ", 0);
|
|
found_right = 1;
|
|
border = RULE_ON_RIGHT_BORDER;
|
|
context = 0;
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
if (!found_right) {
|
|
if (r->first_left == c2 && compare_word_to_right (edit, i, r->left, r->whole_word_chars_left, r->whole_word_chars_right, r->line_start_left)) {
|
|
debug_printf ("B:1 ", 0);
|
|
found_right = 1;
|
|
border = RULE_ON_LEFT_BORDER;
|
|
if (!r->between_delimiters) {
|
|
debug_printf ("context=%d ", context);
|
|
if (!keyword)
|
|
context = count;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (!keyword && contextchanged) {
|
|
char *p;
|
|
p = (r = edit->rules[context])->keyword_first_chars;
|
|
while ((p = strchr (p + 1, c2))) {
|
|
struct key_word *k;
|
|
int coutner;
|
|
coutner = (unsigned long) p - (unsigned long) r->keyword_first_chars;
|
|
k = r->keyword[coutner];
|
|
if (compare_word_to_right (edit, i, k->keyword, k->whole_word_chars_left, k->whole_word_chars_right, k->line_start)) {
|
|
keyword = coutner;
|
|
debug_printf ("keyword=%d ", keyword);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
debug_printf ("border=%s ", border ? ((border & RULE_ON_LEFT_BORDER) ? "left" : "right") : "off");
|
|
debug_printf ("keyword=%d ", keyword);
|
|
|
|
debug_printf (" %d#\n\n", context);
|
|
|
|
return (context << RULE_CONTEXT_SHIFT) | (keyword << RULE_WORD_SHIFT) | border;
|
|
}
|
|
|
|
static unsigned long edit_get_rule (WEdit * edit, long byte_index)
|
|
{
|
|
long i;
|
|
if (byte_index < 0) {
|
|
edit->last_get_rule = -1;
|
|
edit->rule = 0;
|
|
return 0;
|
|
}
|
|
if (byte_index > edit->last_get_rule) {
|
|
for (i = edit->last_get_rule + 1; i <= byte_index; i++) {
|
|
edit->rule = apply_rules_going_right (edit, i, edit->rule);
|
|
if (i > (edit->syntax_marker ? edit->syntax_marker->offset + SYNTAX_MARKER_DENSITY : SYNTAX_MARKER_DENSITY)) {
|
|
struct _syntax_marker *s;
|
|
s = edit->syntax_marker;
|
|
edit->syntax_marker = malloc (sizeof (struct _syntax_marker));
|
|
edit->syntax_marker->next = s;
|
|
edit->syntax_marker->offset = i;
|
|
edit->syntax_marker->rule = edit->rule;
|
|
}
|
|
}
|
|
} else if (byte_index < edit->last_get_rule) {
|
|
struct _syntax_marker *s;
|
|
for (;;) {
|
|
if (!edit->syntax_marker) {
|
|
edit->rule = 0;
|
|
for (i = -1; i <= byte_index; i++)
|
|
edit->rule = apply_rules_going_right (edit, i, edit->rule);
|
|
break;
|
|
}
|
|
if (byte_index >= edit->syntax_marker->offset) {
|
|
edit->rule = edit->syntax_marker->rule;
|
|
for (i = edit->syntax_marker->offset + 1; i <= byte_index; i++)
|
|
edit->rule = apply_rules_going_right (edit, i, edit->rule);
|
|
break;
|
|
}
|
|
s = edit->syntax_marker->next;
|
|
syntax_free (edit->syntax_marker);
|
|
edit->syntax_marker = s;
|
|
}
|
|
}
|
|
edit->last_get_rule = byte_index;
|
|
return edit->rule;
|
|
}
|
|
|
|
static void translate_rule_to_color (WEdit * edit, unsigned long rule, int *fg, int *bg)
|
|
{
|
|
struct key_word *k;
|
|
k = edit->rules[(rule & RULE_CONTEXT) >> RULE_CONTEXT_SHIFT]->keyword[(rule & RULE_WORD) >> RULE_WORD_SHIFT];
|
|
*bg = k->bg;
|
|
*fg = k->fg;
|
|
}
|
|
|
|
void edit_get_syntax_color (WEdit * edit, long byte_index, int *fg, int *bg)
|
|
{
|
|
unsigned long rule;
|
|
if (!edit->rules || byte_index >= edit->last_byte || !option_syntax_highlighting) {
|
|
#ifdef MIDNIGHT
|
|
*fg = EDITOR_NORMAL_COLOR;
|
|
#else
|
|
*fg = NO_COLOR;
|
|
*bg = NO_COLOR;
|
|
#endif
|
|
} else {
|
|
rule = edit_get_rule (edit, byte_index);
|
|
translate_rule_to_color (edit, rule, fg, bg);
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
Returns 0 on error/eof or a count of the number of bytes read
|
|
including the newline. Result must be free'd.
|
|
*/
|
|
static int read_one_line (char **line, FILE * f)
|
|
{
|
|
char *p;
|
|
int len = 256, c, r = 0, i = 0;
|
|
p = syntax_malloc (len);
|
|
for (;;) {
|
|
c = fgetc (f);
|
|
if (c == -1) {
|
|
r = 0;
|
|
break;
|
|
} else if (c == '\n') {
|
|
r = i + 1; /* extra 1 for the newline just read */
|
|
break;
|
|
} else {
|
|
if (i >= len - 1) {
|
|
char *q;
|
|
q = syntax_malloc (len * 2);
|
|
memcpy (q, p, len);
|
|
syntax_free (p);
|
|
p = q;
|
|
len *= 2;
|
|
}
|
|
p[i++] = c;
|
|
}
|
|
}
|
|
p[i] = 0;
|
|
*line = p;
|
|
return r;
|
|
}
|
|
|
|
static char *strdup_convert (char *s)
|
|
{
|
|
#if 0
|
|
int e = 0;
|
|
#endif
|
|
char *r, *p;
|
|
p = r = strdup (s);
|
|
while (*s) {
|
|
switch (*s) {
|
|
case '\\':
|
|
s++;
|
|
switch (*s) {
|
|
case ' ':
|
|
*p = ' ';
|
|
s--;
|
|
break;
|
|
case 'n':
|
|
*p = '\n';
|
|
break;
|
|
case 'r':
|
|
*p = '\r';
|
|
break;
|
|
case 't':
|
|
*p = '\t';
|
|
break;
|
|
case 's':
|
|
*p = ' ';
|
|
break;
|
|
case '*':
|
|
*p = '*';
|
|
break;
|
|
case '\\':
|
|
*p = '\\';
|
|
break;
|
|
case '[':
|
|
case ']':
|
|
if ((unsigned long) p == (unsigned long) r || strlen (s) == 1)
|
|
*p = *s;
|
|
else {
|
|
#if 0
|
|
if (!strncmp (s, "[^", 2)) {
|
|
*p = '\004';
|
|
e = 1;
|
|
s++;
|
|
} else {
|
|
if (e)
|
|
*p = '\004';
|
|
else
|
|
#endif
|
|
*p = '\003';
|
|
#if 0
|
|
e = 0;
|
|
}
|
|
#endif
|
|
}
|
|
break;
|
|
default:
|
|
*p = *s;
|
|
break;
|
|
}
|
|
break;
|
|
case '*':
|
|
/* a * or + at the beginning or end of the line must be interpreted literally */
|
|
if ((unsigned long) p == (unsigned long) r || strlen (s) == 1)
|
|
*p = '*';
|
|
else
|
|
*p = '\001';
|
|
break;
|
|
case '+':
|
|
if ((unsigned long) p == (unsigned long) r || strlen (s) == 1)
|
|
*p = '+';
|
|
else
|
|
*p = '\002';
|
|
break;
|
|
default:
|
|
*p = *s;
|
|
break;
|
|
}
|
|
s++;
|
|
p++;
|
|
}
|
|
*p = 0;
|
|
return r;
|
|
}
|
|
|
|
#define whiteness(x) ((x) == '\t' || (x) == '\n' || (x) == ' ')
|
|
|
|
static void get_args (char *l, char **args, int *argc)
|
|
{
|
|
*argc = 0;
|
|
l--;
|
|
for (;;) {
|
|
char *p;
|
|
for (p = l + 1; *p && whiteness (*p); p++);
|
|
if (!*p)
|
|
break;
|
|
for (l = p + 1; *l && !whiteness (*l); l++);
|
|
*l = '\0';
|
|
*args = strdup_convert (p);
|
|
(*argc)++;
|
|
args++;
|
|
}
|
|
*args = 0;
|
|
}
|
|
|
|
static void free_args (char **args)
|
|
{
|
|
while (*args) {
|
|
syntax_free (*args);
|
|
*args = 0;
|
|
args++;
|
|
}
|
|
}
|
|
|
|
#define check_a {if(!*a){result=line;break;}}
|
|
#define check_not_a {if(*a){result=line;break;}}
|
|
|
|
#ifdef MIDNIGHT
|
|
|
|
int try_alloc_color_pair (char *fg, char *bg);
|
|
|
|
int this_try_alloc_color_pair (char *fg, char *bg)
|
|
{
|
|
char f[80], b[80], *p;
|
|
if (bg)
|
|
if (!*bg)
|
|
bg = 0;
|
|
if (fg)
|
|
if (!*fg)
|
|
fg = 0;
|
|
if (fg) {
|
|
strcpy (f, fg);
|
|
p = strchr (f, '/');
|
|
if (p)
|
|
*p = '\0';
|
|
fg = f;
|
|
}
|
|
if (bg) {
|
|
strcpy (b, bg);
|
|
p = strchr (b, '/');
|
|
if (p)
|
|
*p = '\0';
|
|
bg = b;
|
|
}
|
|
return try_alloc_color_pair (fg, bg);
|
|
}
|
|
#else
|
|
#ifdef GTK
|
|
int allocate_color (WEdit *edit, gchar *color);
|
|
|
|
int this_allocate_color (WEdit *edit, char *fg)
|
|
{
|
|
char *p;
|
|
if (fg)
|
|
if (!*fg)
|
|
fg = 0;
|
|
if (!fg)
|
|
return allocate_color (edit, 0);
|
|
p = strchr (fg, '/');
|
|
if (!p)
|
|
return allocate_color (edit, fg);
|
|
return allocate_color (edit, p + 1);
|
|
}
|
|
#else
|
|
int this_allocate_color (WEdit *edit, char *fg)
|
|
{
|
|
char *p;
|
|
if (fg)
|
|
if (!*fg)
|
|
fg = 0;
|
|
if (!fg)
|
|
return allocate_color (0);
|
|
p = strchr (fg, '/');
|
|
if (!p)
|
|
return allocate_color (fg);
|
|
return allocate_color (p + 1);
|
|
}
|
|
#endif
|
|
#endif
|
|
|
|
/* returns line number on error */
|
|
static int edit_read_syntax_rules (WEdit * edit, FILE * f)
|
|
{
|
|
char *fg, *bg;
|
|
char last_fg[32] = "", last_bg[32] = "";
|
|
char whole_right[256];
|
|
char whole_left[256];
|
|
char *args[1024], *l = 0;
|
|
int line = 0;
|
|
struct context_rule **r, *c;
|
|
int num_words = -1, num_contexts = -1;
|
|
int argc, result = 0;
|
|
int i, j;
|
|
|
|
args[0] = 0;
|
|
|
|
strcpy (whole_left, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_01234567890");
|
|
strcpy (whole_right, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_01234567890");
|
|
|
|
r = edit->rules = syntax_malloc (256 * sizeof (struct context_rule *));
|
|
|
|
for (;;) {
|
|
char **a;
|
|
line++;
|
|
if (!read_one_line (&l, f))
|
|
break;
|
|
get_args (l, args, &argc);
|
|
a = args + 1;
|
|
if (!args[0]) {
|
|
/* do nothing */
|
|
} else if (!strcmp (args[0], "wholechars")) {
|
|
check_a;
|
|
if (!strcmp (*a, "left")) {
|
|
a++;
|
|
strcpy (whole_left, *a);
|
|
} else if (!strcmp (*a, "right")) {
|
|
a++;
|
|
strcpy (whole_right, *a);
|
|
} else {
|
|
strcpy (whole_left, *a);
|
|
strcpy (whole_right, *a);
|
|
}
|
|
a++;
|
|
check_not_a;
|
|
} else if (!strcmp (args[0], "context")) {
|
|
check_a;
|
|
if (num_contexts == -1) {
|
|
if (strcmp (*a, "default")) { /* first context is the default */
|
|
*a = 0;
|
|
check_a;
|
|
}
|
|
a++;
|
|
c = r[0] = syntax_malloc (sizeof (struct context_rule));
|
|
c->left = strdup (" ");
|
|
c->right = strdup (" ");
|
|
num_contexts = 0;
|
|
} else {
|
|
c = r[num_contexts] = syntax_malloc (sizeof (struct context_rule));
|
|
if (!strcmp (*a, "exclusive")) {
|
|
a++;
|
|
c->between_delimiters = 1;
|
|
}
|
|
check_a;
|
|
if (!strcmp (*a, "whole")) {
|
|
a++;
|
|
c->whole_word_chars_left = strdup (whole_left);
|
|
c->whole_word_chars_right = strdup (whole_right);
|
|
} else if (!strcmp (*a, "wholeleft")) {
|
|
a++;
|
|
c->whole_word_chars_left = strdup (whole_left);
|
|
} else if (!strcmp (*a, "wholeright")) {
|
|
a++;
|
|
c->whole_word_chars_right = strdup (whole_right);
|
|
}
|
|
check_a;
|
|
if (!strcmp (*a, "linestart")) {
|
|
a++;
|
|
c->line_start_left = 1;
|
|
}
|
|
check_a;
|
|
c->left = strdup (*a++);
|
|
check_a;
|
|
if (!strcmp (*a, "linestart")) {
|
|
a++;
|
|
c->line_start_right = 1;
|
|
}
|
|
check_a;
|
|
c->right = strdup (*a++);
|
|
c->last_left = c->left[strlen (c->left) - 1];
|
|
c->last_right = c->right[strlen (c->right) - 1];
|
|
c->first_left = *c->left;
|
|
c->first_right = *c->right;
|
|
c->single_char = (strlen (c->right) == 1);
|
|
}
|
|
c->keyword = syntax_malloc (1024 * sizeof (struct key_word *));
|
|
num_words = 1;
|
|
c->keyword[0] = syntax_malloc (sizeof (struct key_word));
|
|
fg = *a;
|
|
if (*a)
|
|
a++;
|
|
bg = *a;
|
|
if (*a)
|
|
a++;
|
|
strcpy (last_fg, fg ? fg : "");
|
|
strcpy (last_bg, bg ? bg : "");
|
|
#ifdef MIDNIGHT
|
|
c->keyword[0]->fg = this_try_alloc_color_pair (fg, bg);
|
|
#else
|
|
c->keyword[0]->fg = this_allocate_color (edit, fg);
|
|
c->keyword[0]->bg = this_allocate_color (edit, bg);
|
|
#endif
|
|
c->keyword[0]->keyword = strdup (" ");
|
|
check_not_a;
|
|
num_contexts++;
|
|
} else if (!strcmp (args[0], "keyword")) {
|
|
struct key_word *k;
|
|
if (num_words == -1)
|
|
*a = 0;
|
|
check_a;
|
|
k = r[num_contexts - 1]->keyword[num_words] = syntax_malloc (sizeof (struct key_word));
|
|
if (!strcmp (*a, "whole")) {
|
|
a++;
|
|
k->whole_word_chars_left = strdup (whole_left);
|
|
k->whole_word_chars_right = strdup (whole_right);
|
|
} else if (!strcmp (*a, "wholeleft")) {
|
|
a++;
|
|
k->whole_word_chars_left = strdup (whole_left);
|
|
} else if (!strcmp (*a, "wholeright")) {
|
|
a++;
|
|
k->whole_word_chars_right = strdup (whole_right);
|
|
}
|
|
check_a;
|
|
if (!strcmp (*a, "linestart")) {
|
|
a++;
|
|
k->line_start = 1;
|
|
}
|
|
check_a;
|
|
if (!strcmp (*a, "whole")) {
|
|
*a = 0;
|
|
check_a;
|
|
}
|
|
k->keyword = strdup (*a++);
|
|
k->last = k->keyword[strlen (k->keyword) - 1];
|
|
k->first = *k->keyword;
|
|
fg = *a;
|
|
if (*a)
|
|
a++;
|
|
bg = *a;
|
|
if (*a)
|
|
a++;
|
|
if (!fg)
|
|
fg = last_fg;
|
|
if (!bg)
|
|
bg = last_bg;
|
|
#ifdef MIDNIGHT
|
|
k->fg = this_try_alloc_color_pair (fg, bg);
|
|
#else
|
|
k->fg = this_allocate_color (edit, fg);
|
|
k->bg = this_allocate_color (edit, bg);
|
|
#endif
|
|
check_not_a;
|
|
num_words++;
|
|
} else if (!strncmp (args[0], "#", 1)) {
|
|
/* do nothing for comment */
|
|
} else if (!strcmp (args[0], "file")) {
|
|
break;
|
|
} else { /* anything else is an error */
|
|
*a = 0;
|
|
check_a;
|
|
}
|
|
free_args (args);
|
|
syntax_free (l);
|
|
}
|
|
free_args (args);
|
|
syntax_free (l);
|
|
|
|
if (result)
|
|
return result;
|
|
|
|
if (num_contexts == -1) {
|
|
result = line;
|
|
return result;
|
|
}
|
|
|
|
{
|
|
char first_chars[1024], *p;
|
|
char last_chars[1024], *q;
|
|
for (i = 0; edit->rules[i]; i++) {
|
|
c = edit->rules[i];
|
|
p = first_chars;
|
|
q = last_chars;
|
|
*p++ = (char) 1;
|
|
*q++ = (char) 1;
|
|
for (j = 1; c->keyword[j]; j++) {
|
|
*p++ = c->keyword[j]->first;
|
|
*q++ = c->keyword[j]->last;
|
|
}
|
|
*p = '\0';
|
|
*q = '\0';
|
|
c->keyword_first_chars = strdup (first_chars);
|
|
c->keyword_last_chars = strdup (last_chars);
|
|
}
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
void (*syntax_change_callback) (CWidget *) = 0;
|
|
|
|
void edit_set_syntax_change_callback (void (*callback) (CWidget *))
|
|
{
|
|
syntax_change_callback = callback;
|
|
}
|
|
|
|
void edit_free_syntax_rules (WEdit * edit)
|
|
{
|
|
int i, j;
|
|
if (!edit)
|
|
return;
|
|
if (!edit->rules)
|
|
return;
|
|
syntax_free (edit->syntax_type);
|
|
edit->syntax_type = 0;
|
|
if (syntax_change_callback)
|
|
#ifdef MIDNIGHT
|
|
(*syntax_change_callback) (&edit->widget);
|
|
#else
|
|
(*syntax_change_callback) (edit->widget);
|
|
#endif
|
|
for (i = 0; edit->rules[i]; i++) {
|
|
if (edit->rules[i]->keyword) {
|
|
for (j = 0; edit->rules[i]->keyword[j]; j++) {
|
|
syntax_free (edit->rules[i]->keyword[j]->keyword);
|
|
syntax_free (edit->rules[i]->keyword[j]->whole_word_chars_left);
|
|
syntax_free (edit->rules[i]->keyword[j]->whole_word_chars_right);
|
|
syntax_free (edit->rules[i]->keyword[j]);
|
|
}
|
|
}
|
|
syntax_free (edit->rules[i]->left);
|
|
syntax_free (edit->rules[i]->right);
|
|
syntax_free (edit->rules[i]->whole_word_chars_left);
|
|
syntax_free (edit->rules[i]->whole_word_chars_right);
|
|
syntax_free (edit->rules[i]->keyword);
|
|
syntax_free (edit->rules[i]->keyword_first_chars);
|
|
syntax_free (edit->rules[i]->keyword_last_chars);
|
|
syntax_free (edit->rules[i]);
|
|
}
|
|
for (;;) {
|
|
struct _syntax_marker *s;
|
|
if (!edit->syntax_marker)
|
|
break;
|
|
s = edit->syntax_marker->next;
|
|
syntax_free (edit->syntax_marker);
|
|
edit->syntax_marker = s;
|
|
}
|
|
syntax_free (edit->rules);
|
|
}
|
|
|
|
#define CURRENT_SYNTAX_RULES_VERSION "44"
|
|
|
|
char *syntax_text[] = {
|
|
"# syntax rules version " CURRENT_SYNTAX_RULES_VERSION,
|
|
"# (after the slash is a Cooledit color, 0-26 or any of the X colors in rgb.txt)",
|
|
"# black",
|
|
"# red",
|
|
"# green",
|
|
"# brown",
|
|
"# blue",
|
|
"# magenta",
|
|
"# cyan",
|
|
"# lightgray",
|
|
"# gray",
|
|
"# brightred",
|
|
"# brightgreen",
|
|
"# yellow",
|
|
"# brightblue",
|
|
"# brightmagenta",
|
|
"# brightcyan",
|
|
"# white",
|
|
"",
|
|
"###############################################################################",
|
|
"file ..\\*\\\\.diff$ Unified\\sDiff\\sOutput ^diff.\\*(-u|--unified)",
|
|
"# yawn",
|
|
"context default",
|
|
" keyword linestart @@*@@ green/16",
|
|
" keyword linestart \\s black/0 white/26",
|
|
"context linestart diff \\n white/26 red/9",
|
|
"context linestart --- \\n brightmagenta/20",
|
|
"context linestart +++ \\n brightmagenta/20",
|
|
"context linestart + \\n brightgreen/6",
|
|
"context linestart - \\n brightred/18",
|
|
"context linestart A \\n white/26 black/0",
|
|
"context linestart B \\n white/26 black/0",
|
|
"context linestart C \\n white/26 black/0",
|
|
"context linestart D \\n white/26 black/0",
|
|
"context linestart E \\n white/26 black/0",
|
|
"context linestart F \\n white/26 black/0",
|
|
"context linestart G \\n white/26 black/0",
|
|
"context linestart H \\n white/26 black/0",
|
|
"context linestart I \\n white/26 black/0",
|
|
"context linestart J \\n white/26 black/0",
|
|
"context linestart K \\n white/26 black/0",
|
|
"context linestart L \\n white/26 black/0",
|
|
"context linestart M \\n white/26 black/0",
|
|
"context linestart N \\n white/26 black/0",
|
|
"context linestart O \\n white/26 black/0",
|
|
"context linestart P \\n white/26 black/0",
|
|
"context linestart Q \\n white/26 black/0",
|
|
"context linestart R \\n white/26 black/0",
|
|
"context linestart S \\n white/26 black/0",
|
|
"context linestart T \\n white/26 black/0",
|
|
"context linestart U \\n white/26 black/0",
|
|
"context linestart V \\n white/26 black/0",
|
|
"context linestart W \\n white/26 black/0",
|
|
"context linestart X \\n white/26 black/0",
|
|
"context linestart Y \\n white/26 black/0",
|
|
"context linestart Z \\n white/26 black/0",
|
|
"",
|
|
"###############################################################################",
|
|
"file ..\\*\\\\.lsm$ LSM\\sFile",
|
|
"",
|
|
"context default",
|
|
" keyword linestart Begin3 brightmagenta/20",
|
|
" keyword linestart Title:\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s red/9 yellow/24",
|
|
" keyword linestart Version:\\s\\s\\s\\s\\s\\s\\s\\s red/9 yellow/24",
|
|
" keyword linestart Entered-date:\\s\\s\\s red/9 yellow/24",
|
|
" keyword linestart Description:\\s\\s\\s\\s red/9 yellow/24",
|
|
" keyword linestart Keywords:\\s\\s\\s\\s\\s\\s\\s red/9 yellow/24",
|
|
" keyword linestart Alternate-site:\\s red/9 yellow/24",
|
|
" keyword linestart Primary-site:\\s\\s\\s red/9 yellow/24",
|
|
" keyword linestart Original-site:\\s\\s red/9 yellow/24",
|
|
" keyword linestart Platforms:\\s\\s\\s\\s\\s\\s red/9 yellow/24",
|
|
" keyword linestart Copying-policy:\\s red/9 yellow/24",
|
|
" keyword linestart End brightmagenta/20",
|
|
"",
|
|
" keyword linestart \\t\\t white/26 yellow/24",
|
|
" keyword linestart \\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s white/26 yellow/24",
|
|
" keyword whole GPL green/6",
|
|
" keyword whole BSD green/6",
|
|
" keyword whole Shareware green/6",
|
|
" keyword whole sunsite.unc.edu green/6",
|
|
" keyword wholeright \\s*.tar.gz green/6",
|
|
" keyword wholeright \\s*.lsm green/6",
|
|
"",
|
|
"context linestart Author:\\s\\s\\s\\s\\s\\s\\s\\s\\s \\n brightred/19",
|
|
" keyword whole \\s*@*\\s(*) cyan/16",
|
|
"",
|
|
"context linestart Maintained-by:\\s\\s \\n brightred/19",
|
|
" keyword whole \\s*@*\\s(*) cyan/16",
|
|
"",
|
|
"###############################################################################",
|
|
"file ..\\*\\\\.sh$ Shell\\sScript ^#!\\s\\*/.\\*/(ksh|bash|sh|pdkzsh)$",
|
|
"",
|
|
"context default",
|
|
" keyword whole for yellow/24",
|
|
" keyword whole in yellow/24",
|
|
" keyword whole do yellow/24",
|
|
" keyword whole done yellow/24",
|
|
" keyword whole select yellow/24",
|
|
" keyword whole case yellow/24",
|
|
" keyword whole esac yellow/24",
|
|
" keyword whole if yellow/24",
|
|
" keyword whole then yellow/24",
|
|
" keyword whole elif yellow/24",
|
|
" keyword whole else yellow/24",
|
|
" keyword whole fi yellow/24",
|
|
" keyword whole while yellow/24",
|
|
" keyword whole until yellow/24",
|
|
" keyword ;; brightred/18",
|
|
" keyword \\\\\" brightred/18",
|
|
" keyword \\\\' brightred/18",
|
|
" keyword ` brightred/18",
|
|
" keyword ; brightcyan/17",
|
|
" keyword $(*) brightgreen/16",
|
|
" keyword ${*} brightgreen/16",
|
|
" keyword { brightcyan/14",
|
|
" keyword } brightcyan/14",
|
|
"",
|
|
" keyword whole linestart #!\\[\\s\\]/bin/\\[abkpct\\]sh brightcyan/17 black/0",
|
|
"",
|
|
" keyword $\\* brightred/18",
|
|
" keyword $@ brightred/18",
|
|
" keyword $# brightred/18",
|
|
" keyword $? brightred/18",
|
|
" keyword $- brightred/18",
|
|
" keyword $$ brightred/18",
|
|
" keyword $! brightred/18",
|
|
" keyword $_ brightred/18",
|
|
"",
|
|
" keyword wholeright $\\[0123456789\\]0 brightred/18",
|
|
" keyword wholeright $\\[0123456789\\]1 brightred/18",
|
|
" keyword wholeright $\\[0123456789\\]2 brightred/18",
|
|
" keyword wholeright $\\[0123456789\\]3 brightred/18",
|
|
" keyword wholeright $\\[0123456789\\]4 brightred/18",
|
|
" keyword wholeright $\\[0123456789\\]5 brightred/18",
|
|
" keyword wholeright $\\[0123456789\\]6 brightred/18",
|
|
" keyword wholeright $\\[0123456789\\]7 brightred/18",
|
|
" keyword wholeright $\\[0123456789\\]8 brightred/18",
|
|
" keyword wholeright $\\[0123456789\\]9 brightred/18",
|
|
"",
|
|
" keyword wholeright $+A brightgreen/16",
|
|
" keyword wholeright $+B brightgreen/16",
|
|
" keyword wholeright $+C brightgreen/16",
|
|
" keyword wholeright $+D brightgreen/16",
|
|
" keyword wholeright $+E brightgreen/16",
|
|
" keyword wholeright $+F brightgreen/16",
|
|
" keyword wholeright $+G brightgreen/16",
|
|
" keyword wholeright $+H brightgreen/16",
|
|
" keyword wholeright $+I brightgreen/16",
|
|
" keyword wholeright $+J brightgreen/16",
|
|
" keyword wholeright $+K brightgreen/16",
|
|
" keyword wholeright $+L brightgreen/16",
|
|
" keyword wholeright $+M brightgreen/16",
|
|
" keyword wholeright $+N brightgreen/16",
|
|
" keyword wholeright $+O brightgreen/16",
|
|
" keyword wholeright $+P brightgreen/16",
|
|
" keyword wholeright $+Q brightgreen/16",
|
|
" keyword wholeright $+R brightgreen/16",
|
|
" keyword wholeright $+S brightgreen/16",
|
|
" keyword wholeright $+T brightgreen/16",
|
|
" keyword wholeright $+U brightgreen/16",
|
|
" keyword wholeright $+V brightgreen/16",
|
|
" keyword wholeright $+W brightgreen/16",
|
|
" keyword wholeright $+X brightgreen/16",
|
|
" keyword wholeright $+Y brightgreen/16",
|
|
" keyword wholeright $+Z brightgreen/16",
|
|
"",
|
|
" keyword wholeright $+a brightgreen/16",
|
|
" keyword wholeright $+b brightgreen/16",
|
|
" keyword wholeright $+c brightgreen/16",
|
|
" keyword wholeright $+d brightgreen/16",
|
|
" keyword wholeright $+e brightgreen/16",
|
|
" keyword wholeright $+f brightgreen/16",
|
|
" keyword wholeright $+g brightgreen/16",
|
|
" keyword wholeright $+h brightgreen/16",
|
|
" keyword wholeright $+i brightgreen/16",
|
|
" keyword wholeright $+j brightgreen/16",
|
|
" keyword wholeright $+k brightgreen/16",
|
|
" keyword wholeright $+l brightgreen/16",
|
|
" keyword wholeright $+m brightgreen/16",
|
|
" keyword wholeright $+n brightgreen/16",
|
|
" keyword wholeright $+o brightgreen/16",
|
|
" keyword wholeright $+p brightgreen/16",
|
|
" keyword wholeright $+q brightgreen/16",
|
|
" keyword wholeright $+r brightgreen/16",
|
|
" keyword wholeright $+s brightgreen/16",
|
|
" keyword wholeright $+t brightgreen/16",
|
|
" keyword wholeright $+u brightgreen/16",
|
|
" keyword wholeright $+v brightgreen/16",
|
|
" keyword wholeright $+w brightgreen/16",
|
|
" keyword wholeright $+x brightgreen/16",
|
|
" keyword wholeright $+y brightgreen/16",
|
|
" keyword wholeright $+z brightgreen/16",
|
|
"",
|
|
" keyword wholeright $+0 brightgreen/16",
|
|
" keyword wholeright $+1 brightgreen/16",
|
|
" keyword wholeright $+2 brightgreen/16",
|
|
" keyword wholeright $+3 brightgreen/16",
|
|
" keyword wholeright $+4 brightgreen/16",
|
|
" keyword wholeright $+5 brightgreen/16",
|
|
" keyword wholeright $+6 brightgreen/16",
|
|
" keyword wholeright $+7 brightgreen/16",
|
|
" keyword wholeright $+8 brightgreen/16",
|
|
" keyword wholeright $+9 brightgreen/16",
|
|
"",
|
|
" keyword $ brightgreen/16",
|
|
"",
|
|
" keyword wholeleft function*() brightblue/11",
|
|
"",
|
|
"wholechars right abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._",
|
|
"wholechars left abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._",
|
|
"",
|
|
" keyword whole arch cyan/14",
|
|
" keyword whole ash cyan/14",
|
|
" keyword whole awk cyan/14",
|
|
" keyword whole basename cyan/14",
|
|
" keyword whole bash cyan/14",
|
|
" keyword whole basnemae cyan/14",
|
|
" keyword whole bg_backup cyan/14",
|
|
" keyword whole bg_restore cyan/14",
|
|
" keyword whole bsh cyan/14",
|
|
" keyword whole cat cyan/14",
|
|
" keyword whole chgrp cyan/14",
|
|
" keyword whole chmod cyan/14",
|
|
" keyword whole chown cyan/14",
|
|
" keyword whole cp cyan/14",
|
|
" keyword whole cpio cyan/14",
|
|
" keyword whole csh cyan/14",
|
|
" keyword whole date cyan/14",
|
|
" keyword whole dd cyan/14",
|
|
" keyword whole df cyan/14",
|
|
" keyword whole dmesg cyan/14",
|
|
" keyword whole dnsdomainname cyan/14",
|
|
" keyword whole doexec cyan/14",
|
|
" keyword whole domainname cyan/14",
|
|
" keyword whole echo cyan/14",
|
|
" keyword whole ed cyan/14",
|
|
" keyword whole egrep cyan/14",
|
|
" keyword whole ex cyan/14",
|
|
" keyword whole false cyan/14",
|
|
" keyword whole fgrep cyan/14",
|
|
" keyword whole fsconf cyan/14",
|
|
" keyword whole gawk cyan/14",
|
|
" keyword whole grep cyan/14",
|
|
" keyword whole gunzip cyan/14",
|
|
" keyword whole gzip cyan/14",
|
|
" keyword whole hostname cyan/14",
|
|
" keyword whole igawk cyan/14",
|
|
" keyword whole ipcalc cyan/14",
|
|
" keyword whole kill cyan/14",
|
|
" keyword whole ksh cyan/14",
|
|
" keyword whole linuxconf cyan/14",
|
|
" keyword whole ln cyan/14",
|
|
" keyword whole login cyan/14",
|
|
" keyword whole lpdconf cyan/14",
|
|
" keyword whole ls cyan/14",
|
|
" keyword whole mail cyan/14",
|
|
" keyword whole mkdir cyan/14",
|
|
" keyword whole mknod cyan/14",
|
|
" keyword whole mktemp cyan/14",
|
|
" keyword whole more cyan/14",
|
|
" keyword whole mount cyan/14",
|
|
" keyword whole mt cyan/14",
|
|
" keyword whole mv cyan/14",
|
|
" keyword whole netconf cyan/14",
|
|
" keyword whole netstat cyan/14",
|
|
" keyword whole nice cyan/14",
|
|
" keyword whole nisdomainname cyan/14",
|
|
" keyword whole ping cyan/14",
|
|
" keyword whole ps cyan/14",
|
|
" keyword whole pwd cyan/14",
|
|
" keyword whole red cyan/14",
|
|
" keyword whole remadmin cyan/14",
|
|
" keyword whole rm cyan/14",
|
|
" keyword whole rmdir cyan/14",
|
|
" keyword whole rpm cyan/14",
|
|
" keyword whole sed cyan/14",
|
|
" keyword whole setserial cyan/14",
|
|
" keyword whole sh cyan/14",
|
|
" keyword whole sleep cyan/14",
|
|
" keyword whole sort cyan/14",
|
|
" keyword whole stty cyan/14",
|
|
" keyword whole su cyan/14",
|
|
" keyword whole sync cyan/14",
|
|
" keyword whole taper cyan/14",
|
|
" keyword whole tar cyan/14",
|
|
" keyword whole tcsh cyan/14",
|
|
" keyword whole touch cyan/14",
|
|
" keyword whole true cyan/14",
|
|
" keyword whole umount cyan/14",
|
|
" keyword whole uname cyan/14",
|
|
" keyword whole userconf cyan/14",
|
|
" keyword whole usleep cyan/14",
|
|
" keyword whole vi cyan/14",
|
|
" keyword whole view cyan/14",
|
|
" keyword whole vim cyan/14",
|
|
" keyword whole xconf cyan/14",
|
|
" keyword whole ypdomainname cyan/14",
|
|
" keyword whole zcat cyan/14",
|
|
" keyword whole zsh cyan/14",
|
|
"",
|
|
"wholechars right abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
|
|
"wholechars left abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
|
|
"",
|
|
"context # \\n brown/22",
|
|
"",
|
|
"context exclusive whole <\\[\\s\\\\\\]EOF EOF green/6",
|
|
"",
|
|
"context ' ' green/6",
|
|
"",
|
|
"context \" \" green/6",
|
|
" keyword \\\\' brightgreen/16",
|
|
" keyword \\\\\" brightgreen/16",
|
|
" keyword $(*) brightgreen/16",
|
|
" keyword ${*} brightgreen/16",
|
|
" keyword $\\* brightred/18",
|
|
" keyword $@ brightred/18",
|
|
" keyword $# brightred/18",
|
|
" keyword $? brightred/18",
|
|
" keyword $- brightred/18",
|
|
" keyword $$ brightred/18",
|
|
" keyword $! brightred/18",
|
|
" keyword $_ brightred/18",
|
|
" keyword wholeright $\\[0123456789\\]0 brightred/18",
|
|
" keyword wholeright $\\[0123456789\\]1 brightred/18",
|
|
" keyword wholeright $\\[0123456789\\]2 brightred/18",
|
|
" keyword wholeright $\\[0123456789\\]3 brightred/18",
|
|
" keyword wholeright $\\[0123456789\\]4 brightred/18",
|
|
" keyword wholeright $\\[0123456789\\]5 brightred/18",
|
|
" keyword wholeright $\\[0123456789\\]6 brightred/18",
|
|
" keyword wholeright $\\[0123456789\\]7 brightred/18",
|
|
" keyword wholeright $\\[0123456789\\]8 brightred/18",
|
|
" keyword wholeright $\\[0123456789\\]9 brightred/18",
|
|
"",
|
|
" keyword wholeright $+A brightgreen/16",
|
|
" keyword wholeright $+B brightgreen/16",
|
|
" keyword wholeright $+C brightgreen/16",
|
|
" keyword wholeright $+D brightgreen/16",
|
|
" keyword wholeright $+E brightgreen/16",
|
|
" keyword wholeright $+F brightgreen/16",
|
|
" keyword wholeright $+G brightgreen/16",
|
|
" keyword wholeright $+H brightgreen/16",
|
|
" keyword wholeright $+I brightgreen/16",
|
|
" keyword wholeright $+J brightgreen/16",
|
|
" keyword wholeright $+K brightgreen/16",
|
|
" keyword wholeright $+L brightgreen/16",
|
|
" keyword wholeright $+M brightgreen/16",
|
|
" keyword wholeright $+N brightgreen/16",
|
|
" keyword wholeright $+O brightgreen/16",
|
|
" keyword wholeright $+P brightgreen/16",
|
|
" keyword wholeright $+Q brightgreen/16",
|
|
" keyword wholeright $+R brightgreen/16",
|
|
" keyword wholeright $+S brightgreen/16",
|
|
" keyword wholeright $+T brightgreen/16",
|
|
" keyword wholeright $+U brightgreen/16",
|
|
" keyword wholeright $+V brightgreen/16",
|
|
" keyword wholeright $+W brightgreen/16",
|
|
" keyword wholeright $+X brightgreen/16",
|
|
" keyword wholeright $+Y brightgreen/16",
|
|
" keyword wholeright $+Z brightgreen/16",
|
|
"",
|
|
" keyword wholeright $+a brightgreen/16",
|
|
" keyword wholeright $+b brightgreen/16",
|
|
" keyword wholeright $+c brightgreen/16",
|
|
" keyword wholeright $+d brightgreen/16",
|
|
" keyword wholeright $+e brightgreen/16",
|
|
" keyword wholeright $+f brightgreen/16",
|
|
" keyword wholeright $+g brightgreen/16",
|
|
" keyword wholeright $+h brightgreen/16",
|
|
" keyword wholeright $+i brightgreen/16",
|
|
" keyword wholeright $+j brightgreen/16",
|
|
" keyword wholeright $+k brightgreen/16",
|
|
" keyword wholeright $+l brightgreen/16",
|
|
" keyword wholeright $+m brightgreen/16",
|
|
" keyword wholeright $+n brightgreen/16",
|
|
" keyword wholeright $+o brightgreen/16",
|
|
" keyword wholeright $+p brightgreen/16",
|
|
" keyword wholeright $+q brightgreen/16",
|
|
" keyword wholeright $+r brightgreen/16",
|
|
" keyword wholeright $+s brightgreen/16",
|
|
" keyword wholeright $+t brightgreen/16",
|
|
" keyword wholeright $+u brightgreen/16",
|
|
" keyword wholeright $+v brightgreen/16",
|
|
" keyword wholeright $+w brightgreen/16",
|
|
" keyword wholeright $+x brightgreen/16",
|
|
" keyword wholeright $+y brightgreen/16",
|
|
" keyword wholeright $+z brightgreen/16",
|
|
"",
|
|
" keyword wholeright $+0 brightgreen/16",
|
|
" keyword wholeright $+1 brightgreen/16",
|
|
" keyword wholeright $+2 brightgreen/16",
|
|
" keyword wholeright $+3 brightgreen/16",
|
|
" keyword wholeright $+4 brightgreen/16",
|
|
" keyword wholeright $+5 brightgreen/16",
|
|
" keyword wholeright $+6 brightgreen/16",
|
|
" keyword wholeright $+7 brightgreen/16",
|
|
" keyword wholeright $+8 brightgreen/16",
|
|
" keyword wholeright $+9 brightgreen/16",
|
|
"",
|
|
" keyword $ brightgreen/16",
|
|
"",
|
|
"context exclusive ` ` white/26 black/0",
|
|
" keyword '*' green/6",
|
|
" keyword \" green/6",
|
|
" keyword ; brightcyan/17",
|
|
" keyword $(*) brightgreen/16",
|
|
" keyword ${*} brightgreen/16",
|
|
" keyword { brightcyan/14",
|
|
" keyword } brightcyan/14",
|
|
"",
|
|
" keyword $\\* brightred/18",
|
|
" keyword $@ brightred/18",
|
|
" keyword $# brightred/18",
|
|
" keyword $? brightred/18",
|
|
" keyword $- brightred/18",
|
|
" keyword $$ brightred/18",
|
|
" keyword $! brightred/18",
|
|
" keyword $_ brightred/18",
|
|
"",
|
|
" keyword wholeright $\\[0123456789\\]0 brightred/18",
|
|
" keyword wholeright $\\[0123456789\\]1 brightred/18",
|
|
" keyword wholeright $\\[0123456789\\]2 brightred/18",
|
|
" keyword wholeright $\\[0123456789\\]3 brightred/18",
|
|
" keyword wholeright $\\[0123456789\\]4 brightred/18",
|
|
" keyword wholeright $\\[0123456789\\]5 brightred/18",
|
|
" keyword wholeright $\\[0123456789\\]6 brightred/18",
|
|
" keyword wholeright $\\[0123456789\\]7 brightred/18",
|
|
" keyword wholeright $\\[0123456789\\]8 brightred/18",
|
|
" keyword wholeright $\\[0123456789\\]9 brightred/18",
|
|
"",
|
|
" keyword wholeright $+A brightgreen/16",
|
|
" keyword wholeright $+B brightgreen/16",
|
|
" keyword wholeright $+C brightgreen/16",
|
|
" keyword wholeright $+D brightgreen/16",
|
|
" keyword wholeright $+E brightgreen/16",
|
|
" keyword wholeright $+F brightgreen/16",
|
|
" keyword wholeright $+G brightgreen/16",
|
|
" keyword wholeright $+H brightgreen/16",
|
|
" keyword wholeright $+I brightgreen/16",
|
|
" keyword wholeright $+J brightgreen/16",
|
|
" keyword wholeright $+K brightgreen/16",
|
|
" keyword wholeright $+L brightgreen/16",
|
|
" keyword wholeright $+M brightgreen/16",
|
|
" keyword wholeright $+N brightgreen/16",
|
|
" keyword wholeright $+O brightgreen/16",
|
|
" keyword wholeright $+P brightgreen/16",
|
|
" keyword wholeright $+Q brightgreen/16",
|
|
" keyword wholeright $+R brightgreen/16",
|
|
" keyword wholeright $+S brightgreen/16",
|
|
" keyword wholeright $+T brightgreen/16",
|
|
" keyword wholeright $+U brightgreen/16",
|
|
" keyword wholeright $+V brightgreen/16",
|
|
" keyword wholeright $+W brightgreen/16",
|
|
" keyword wholeright $+X brightgreen/16",
|
|
" keyword wholeright $+Y brightgreen/16",
|
|
" keyword wholeright $+Z brightgreen/16",
|
|
"",
|
|
" keyword wholeright $+a brightgreen/16",
|
|
" keyword wholeright $+b brightgreen/16",
|
|
" keyword wholeright $+c brightgreen/16",
|
|
" keyword wholeright $+d brightgreen/16",
|
|
" keyword wholeright $+e brightgreen/16",
|
|
" keyword wholeright $+f brightgreen/16",
|
|
" keyword wholeright $+g brightgreen/16",
|
|
" keyword wholeright $+h brightgreen/16",
|
|
" keyword wholeright $+i brightgreen/16",
|
|
" keyword wholeright $+j brightgreen/16",
|
|
" keyword wholeright $+k brightgreen/16",
|
|
" keyword wholeright $+l brightgreen/16",
|
|
" keyword wholeright $+m brightgreen/16",
|
|
" keyword wholeright $+n brightgreen/16",
|
|
" keyword wholeright $+o brightgreen/16",
|
|
" keyword wholeright $+p brightgreen/16",
|
|
" keyword wholeright $+q brightgreen/16",
|
|
" keyword wholeright $+r brightgreen/16",
|
|
" keyword wholeright $+s brightgreen/16",
|
|
" keyword wholeright $+t brightgreen/16",
|
|
" keyword wholeright $+u brightgreen/16",
|
|
" keyword wholeright $+v brightgreen/16",
|
|
" keyword wholeright $+w brightgreen/16",
|
|
" keyword wholeright $+x brightgreen/16",
|
|
" keyword wholeright $+y brightgreen/16",
|
|
" keyword wholeright $+z brightgreen/16",
|
|
"",
|
|
" keyword wholeright $+0 brightgreen/16",
|
|
" keyword wholeright $+1 brightgreen/16",
|
|
" keyword wholeright $+2 brightgreen/16",
|
|
" keyword wholeright $+3 brightgreen/16",
|
|
" keyword wholeright $+4 brightgreen/16",
|
|
" keyword wholeright $+5 brightgreen/16",
|
|
" keyword wholeright $+6 brightgreen/16",
|
|
" keyword wholeright $+7 brightgreen/16",
|
|
" keyword wholeright $+8 brightgreen/16",
|
|
" keyword wholeright $+9 brightgreen/16",
|
|
"",
|
|
" keyword $ brightgreen/16",
|
|
"",
|
|
"wholechars right abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._",
|
|
"wholechars left abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._",
|
|
"",
|
|
" keyword whole arch cyan/14",
|
|
" keyword whole ash cyan/14",
|
|
" keyword whole awk cyan/14",
|
|
" keyword whole basename cyan/14",
|
|
" keyword whole bash cyan/14",
|
|
" keyword whole basnemae cyan/14",
|
|
" keyword whole bg_backup cyan/14",
|
|
" keyword whole bg_restore cyan/14",
|
|
" keyword whole bsh cyan/14",
|
|
" keyword whole cat cyan/14",
|
|
" keyword whole chgrp cyan/14",
|
|
" keyword whole chmod cyan/14",
|
|
" keyword whole chown cyan/14",
|
|
" keyword whole cp cyan/14",
|
|
" keyword whole cpio cyan/14",
|
|
" keyword whole csh cyan/14",
|
|
" keyword whole date cyan/14",
|
|
" keyword whole dd cyan/14",
|
|
" keyword whole df cyan/14",
|
|
" keyword whole dmesg cyan/14",
|
|
" keyword whole dnsdomainname cyan/14",
|
|
" keyword whole doexec cyan/14",
|
|
" keyword whole domainname cyan/14",
|
|
" keyword whole echo cyan/14",
|
|
" keyword whole ed cyan/14",
|
|
" keyword whole egrep cyan/14",
|
|
" keyword whole ex cyan/14",
|
|
" keyword whole false cyan/14",
|
|
" keyword whole fgrep cyan/14",
|
|
" keyword whole fsconf cyan/14",
|
|
" keyword whole gawk cyan/14",
|
|
" keyword whole grep cyan/14",
|
|
" keyword whole gunzip cyan/14",
|
|
" keyword whole gzip cyan/14",
|
|
" keyword whole hostname cyan/14",
|
|
" keyword whole igawk cyan/14",
|
|
" keyword whole ipcalc cyan/14",
|
|
" keyword whole kill cyan/14",
|
|
" keyword whole ksh cyan/14",
|
|
" keyword whole linuxconf cyan/14",
|
|
" keyword whole ln cyan/14",
|
|
" keyword whole login cyan/14",
|
|
" keyword whole lpdconf cyan/14",
|
|
" keyword whole ls cyan/14",
|
|
" keyword whole mail cyan/14",
|
|
" keyword whole mkdir cyan/14",
|
|
" keyword whole mknod cyan/14",
|
|
" keyword whole mktemp cyan/14",
|
|
" keyword whole more cyan/14",
|
|
" keyword whole mount cyan/14",
|
|
" keyword whole mt cyan/14",
|
|
" keyword whole mv cyan/14",
|
|
" keyword whole netconf cyan/14",
|
|
" keyword whole netstat cyan/14",
|
|
" keyword whole nice cyan/14",
|
|
" keyword whole nisdomainname cyan/14",
|
|
" keyword whole ping cyan/14",
|
|
" keyword whole ps cyan/14",
|
|
" keyword whole pwd cyan/14",
|
|
" keyword whole red cyan/14",
|
|
" keyword whole remadmin cyan/14",
|
|
" keyword whole rm cyan/14",
|
|
" keyword whole rmdir cyan/14",
|
|
" keyword whole rpm cyan/14",
|
|
" keyword whole sed cyan/14",
|
|
" keyword whole setserial cyan/14",
|
|
" keyword whole sh cyan/14",
|
|
" keyword whole sleep cyan/14",
|
|
" keyword whole sort cyan/14",
|
|
" keyword whole stty cyan/14",
|
|
" keyword whole su cyan/14",
|
|
" keyword whole sync cyan/14",
|
|
" keyword whole taper cyan/14",
|
|
" keyword whole tar cyan/14",
|
|
" keyword whole tcsh cyan/14",
|
|
" keyword whole touch cyan/14",
|
|
" keyword whole true cyan/14",
|
|
" keyword whole umount cyan/14",
|
|
" keyword whole uname cyan/14",
|
|
" keyword whole userconf cyan/14",
|
|
" keyword whole usleep cyan/14",
|
|
" keyword whole vi cyan/14",
|
|
" keyword whole view cyan/14",
|
|
" keyword whole vim cyan/14",
|
|
" keyword whole xconf cyan/14",
|
|
" keyword whole ypdomainname cyan/14",
|
|
" keyword whole zcat cyan/14",
|
|
" keyword whole zsh cyan/14",
|
|
"",
|
|
"###############################################################################",
|
|
"file ..\\*\\\\.(pl|PL])$ Perl\\sProgram ^#!\\s\\*/.\\*/perl$",
|
|
"context default",
|
|
" keyword whole linestart #!\\[\\s\\]/\\[abcdefghijklmnopqrstuvwxyz\\]/\\[abcdefghijklmnopqrstuvwxyz\\]/\\[abcdefghijklmnopqrstuvwxyz\\]/\\[abcdefghijklmnopqrstuvwxyz\\]/bin/perl brightcyan/17 black/0",
|
|
" keyword whole linestart #!\\[\\s\\]/\\[abcdefghijklmnopqrstuvwxyz\\]/\\[abcdefghijklmnopqrstuvwxyz\\]/\\[abcdefghijklmnopqrstuvwxyz\\]/bin/perl brightcyan/17 black/0",
|
|
" keyword whole linestart #!\\[\\s\\]/\\[abcdefghijklmnopqrstuvwxyz\\]/\\[abcdefghijklmnopqrstuvwxyz\\]/bin/perl brightcyan/17 black/0",
|
|
" keyword whole linestart #!\\[\\s\\]/\\[abcdefghijklmnopqrstuvwxyz\\]/bin/perl brightcyan/17 black/0",
|
|
" keyword whole linestart #!\\[\\s\\]/bin/perl brightcyan/17 black/0",
|
|
"",
|
|
" keyword $_ red/orange",
|
|
" keyword $. red/orange",
|
|
" keyword $/ red/orange",
|
|
" keyword $, red/orange",
|
|
" keyword $\" red/orange",
|
|
" keyword $\\\\ red/orange",
|
|
" keyword $# red/orange",
|
|
" keyword $\\* red/orange",
|
|
" keyword $? red/orange",
|
|
" keyword $] red/orange",
|
|
" keyword $[ red/orange",
|
|
" keyword $; red/orange",
|
|
" keyword $! red/orange",
|
|
" keyword $@ red/orange",
|
|
" keyword $: red/orange",
|
|
" keyword $0 red/orange",
|
|
" keyword $$ red/orange",
|
|
" keyword $< red/orange",
|
|
" keyword $> red/orange",
|
|
" keyword $( red/orange",
|
|
" keyword $) red/orange",
|
|
"",
|
|
" keyword $% red/orange",
|
|
" keyword $= red/orange",
|
|
" keyword $- red/orange",
|
|
" keyword $~ red/orange",
|
|
" keyword $| red/orange",
|
|
" keyword $& red/orange",
|
|
" keyword $` red/orange",
|
|
" keyword $' red/orange",
|
|
" keyword $+ red/orange",
|
|
" keyword $11 red/orange",
|
|
" keyword $12 red/orange",
|
|
" keyword $13 red/orange",
|
|
" keyword $14 red/orange",
|
|
" keyword $15 red/orange",
|
|
" keyword $16 red/orange",
|
|
" keyword $17 red/orange",
|
|
" keyword $18 red/orange",
|
|
" keyword $19 red/orange",
|
|
" keyword $20 red/orange",
|
|
" keyword $10 red/orange",
|
|
" keyword $1 red/orange",
|
|
" keyword $2 red/orange",
|
|
" keyword $3 red/orange",
|
|
" keyword $4 red/orange",
|
|
" keyword $5 red/orange",
|
|
" keyword $6 red/orange",
|
|
" keyword $7 red/orange",
|
|
" keyword $8 red/orange",
|
|
" keyword $9 red/orange",
|
|
" keyword $0 red/orange",
|
|
"",
|
|
" keyword $^A red/orange",
|
|
" keyword $^D red/orange",
|
|
" keyword $^E red/orange",
|
|
" keyword $^I red/orange",
|
|
" keyword $^L red/orange",
|
|
" keyword $^P red/orange",
|
|
" keyword $^T red/orange",
|
|
" keyword $^W red/orange",
|
|
" keyword $^X red/orange",
|
|
" keyword $^A red/orange",
|
|
"",
|
|
" keyword @EXPORT red/orange",
|
|
" keyword @EXPORT_OK red/orange",
|
|
" keyword @INC red/orange",
|
|
" keyword @ISA red/orange",
|
|
" keyword @_ red/orange",
|
|
" keyword @ENV red/orange",
|
|
" keyword @OVERLOAD red/orange",
|
|
" keyword @SIG red/orange",
|
|
"",
|
|
" keyword $ brightgreen/15",
|
|
" keyword & brightmagenta/19",
|
|
" keyword % brightcyan/17",
|
|
" keyword @ white/21",
|
|
" keyword \\\\\" brightred/18",
|
|
" keyword \\\\' brightred/18",
|
|
"",
|
|
" keyword <+> brightred/18",
|
|
" keyword -> yellow/24",
|
|
" keyword => yellow/24",
|
|
" keyword > yellow/24",
|
|
" keyword < yellow/24",
|
|
" keyword \\+ yellow/24",
|
|
" keyword - yellow/24",
|
|
" keyword \\* yellow/24",
|
|
" keyword / yellow/24",
|
|
" keyword % yellow/24",
|
|
" keyword = yellow/24",
|
|
" keyword != yellow/24",
|
|
" keyword == yellow/24",
|
|
" keyword whole ge yellow/24",
|
|
" keyword whole le yellow/24",
|
|
" keyword whole gt yellow/24",
|
|
" keyword whole lt yellow/24",
|
|
" keyword whole eq yellow/24",
|
|
" keyword whole ne yellow/24",
|
|
" keyword whole cmp yellow/24",
|
|
" keyword ~ yellow/24",
|
|
" keyword { brightcyan/14",
|
|
" keyword } brightcyan/14",
|
|
" keyword ( brightcyan/15",
|
|
" keyword ) brightcyan/15",
|
|
" keyword [ brightcyan/14",
|
|
" keyword ] brightcyan/14",
|
|
" keyword , brightcyan/14",
|
|
" keyword .. brightcyan/14",
|
|
" keyword : brightcyan/14",
|
|
" keyword ; brightmagenta/19",
|
|
"",
|
|
" keyword whole sub yellow/24",
|
|
" keyword whole STDIN brightred/18",
|
|
" keyword whole STDOUT brightred/18",
|
|
" keyword whole STDERR brightred/18",
|
|
" keyword whole STDARGV brightred/18",
|
|
" keyword whole DATA brightred/18",
|
|
"",
|
|
" keyword whole do magenta/23",
|
|
" keyword whole if magenta/23",
|
|
" keyword whole until magenta/23",
|
|
" keyword whole elsif magenta/23",
|
|
" keyword whole else magenta/23",
|
|
" keyword whole unless magenta/23",
|
|
" keyword whole while magenta/23",
|
|
" keyword whole foreach magenta/23",
|
|
" keyword whole goto magenta/23",
|
|
" keyword whole last magenta/23",
|
|
" keyword whole next magenta/23",
|
|
" keyword whole bless magenta/23",
|
|
" keyword whole caller magenta/23",
|
|
" keyword whole import magenta/23",
|
|
" keyword whole package magenta/23",
|
|
" keyword whole require magenta/23",
|
|
" keyword whole return magenta/23",
|
|
" keyword whole untie magenta/23",
|
|
" keyword whole use magenta/23",
|
|
"",
|
|
" keyword whole diagnostics brightcyan/17",
|
|
" keyword whole integer brightcyan/17",
|
|
" keyword whole less brightcyan/17",
|
|
" keyword whole lib brightcyan/17",
|
|
" keyword whole ops brightcyan/17",
|
|
" keyword whole overload brightcyan/17",
|
|
" keyword whole sigtrap brightcyan/17",
|
|
" keyword whole strict brightcyan/17",
|
|
" keyword whole vars brightcyan/17",
|
|
"",
|
|
" keyword whole abs yellow/24",
|
|
" keyword whole atan2 yellow/24",
|
|
" keyword whole cos yellow/24",
|
|
" keyword whole exp yellow/24",
|
|
" keyword whole int yellow/24",
|
|
" keyword whole log yellow/24",
|
|
" keyword whole rand yellow/24",
|
|
" keyword whole sin yellow/24",
|
|
" keyword whole sqrt yellow/24",
|
|
" keyword whole srand yellow/24",
|
|
" keyword whole time yellow/24",
|
|
" keyword whole chr yellow/24",
|
|
" keyword whole gmtime yellow/24",
|
|
" keyword whole hex yellow/24",
|
|
" keyword whole localtime yellow/24",
|
|
" keyword whole oct yellow/24",
|
|
" keyword whole ord yellow/24",
|
|
" keyword whole vec yellow/24",
|
|
" keyword whole pack yellow/24",
|
|
" keyword whole unpack yellow/24",
|
|
"",
|
|
" keyword whole chomp yellow/YellowGreen",
|
|
" keyword whole chop yellow/YellowGreen",
|
|
" keyword whole crypt yellow/YellowGreen",
|
|
" keyword whole eval yellow/YellowGreen",
|
|
" keyword whole index yellow/YellowGreen",
|
|
" keyword whole length yellow/YellowGreen",
|
|
" keyword whole lc yellow/YellowGreen",
|
|
" keyword whole lcfirst yellow/YellowGreen",
|
|
" keyword whole quotemeta yellow/YellowGreen",
|
|
" keyword whole rindex yellow/YellowGreen",
|
|
" keyword whole substr yellow/YellowGreen",
|
|
" keyword whole uc yellow/YellowGreen",
|
|
" keyword whole ucfirst yellow/YellowGreen",
|
|
"",
|
|
" keyword whole delete yellow/24",
|
|
" keyword whole each yellow/24",
|
|
" keyword whole exists yellow/24",
|
|
" keyword whole grep yellow/24",
|
|
" keyword whole join yellow/24",
|
|
" keyword whole keys yellow/24",
|
|
" keyword whole map yellow/24",
|
|
" keyword whole pop yellow/24",
|
|
" keyword whole push yellow/24",
|
|
" keyword whole reverse yellow/24",
|
|
" keyword whole scalar yellow/24",
|
|
" keyword whole shift yellow/24",
|
|
" keyword whole sort yellow/24",
|
|
" keyword whole splice yellow/24",
|
|
" keyword whole split yellow/24",
|
|
" keyword whole unshift yellow/24",
|
|
" keyword whole values yellow/24",
|
|
"",
|
|
" keyword whole chmod yellow/24",
|
|
" keyword whole chown yellow/24",
|
|
" keyword whole truncate yellow/24",
|
|
" keyword whole link yellow/24",
|
|
" keyword whole lstat yellow/24",
|
|
" keyword whole mkdir yellow/24",
|
|
" keyword whole readlink yellow/24",
|
|
" keyword whole rename yellow/24",
|
|
" keyword whole rmdir yellow/24",
|
|
" keyword whole stat yellow/24",
|
|
" keyword whole symlink yellow/24",
|
|
" keyword whole unlink yellow/24",
|
|
" keyword whole utime yellow/24",
|
|
"",
|
|
" keyword whole binmade yellow/24",
|
|
" keyword whole close yellow/24",
|
|
" keyword whole dbmclose yellow/24",
|
|
" keyword whole dbmopen yellow/24",
|
|
" keyword whole binmade yellow/24",
|
|
" keyword whole eof yellow/24",
|
|
" keyword whole fcntl yellow/24",
|
|
" keyword whole fileno yellow/24",
|
|
" keyword whole flock yellow/24",
|
|
" keyword whole getc yellow/24",
|
|
" keyword whole ioctl yellow/24",
|
|
" keyword whole open yellow/24",
|
|
" keyword whole pipe yellow/24",
|
|
" keyword whole print yellow/24",
|
|
" keyword whole printf yellow/24",
|
|
" keyword whole read yellow/24",
|
|
" keyword whole seek yellow/24",
|
|
" keyword whole select yellow/24",
|
|
" keyword whole sprintf yellow/24",
|
|
" keyword whole sysopen yellow/24",
|
|
" keyword whole sysread yellow/24",
|
|
" keyword whole syswrite yellow/24",
|
|
" keyword whole tell yellow/24",
|
|
"",
|
|
" keyword whole formline yellow/24",
|
|
" keyword whole write yellow/24",
|
|
"",
|
|
" keyword whole closedir yellow/24",
|
|
" keyword whole opendir yellow/24",
|
|
" keyword whole readdir yellow/24",
|
|
" keyword whole rewinddir yellow/24",
|
|
" keyword whole seekdir yellow/24",
|
|
" keyword whole telldir yellow/24",
|
|
"",
|
|
" keyword whole alarm yellow/24",
|
|
" keyword whole chdir yellow/24",
|
|
" keyword whole chroot yellow/24",
|
|
" keyword whole die yellow/24",
|
|
" keyword whole exec yellow/24",
|
|
" keyword whole exit yellow/24",
|
|
" keyword whole fork yellow/24",
|
|
" keyword whole getlogin yellow/24",
|
|
" keyword whole getpgrp yellow/24",
|
|
" keyword whole getppid yellow/24",
|
|
" keyword whole getpriority yellow/24",
|
|
" keyword whole glob yellow/24",
|
|
" keyword whole kill yellow/24",
|
|
" keyword whole setpgrp yellow/24",
|
|
" keyword whole setpriority yellow/24",
|
|
" keyword whole sleep yellow/24",
|
|
" keyword whole syscall yellow/24",
|
|
" keyword whole system yellow/24",
|
|
" keyword whole times yellow/24",
|
|
" keyword whole umask yellow/24",
|
|
" keyword whole wait yellow/24",
|
|
" keyword whole waitpid yellow/24",
|
|
" keyword whole warn yellow/24",
|
|
"",
|
|
" keyword whole accept yellow/24",
|
|
" keyword whole bind yellow/24",
|
|
" keyword whole connect yellow/24",
|
|
" keyword whole getpeername yellow/24",
|
|
" keyword whole getsockname yellow/24",
|
|
" keyword whole getsockopt yellow/24",
|
|
" keyword whole listen yellow/24",
|
|
" keyword whole recv yellow/24",
|
|
" keyword whole send yellow/24",
|
|
" keyword whole setsockopt yellow/24",
|
|
" keyword whole shutdown yellow/24",
|
|
" keyword whole socket yellow/24",
|
|
" keyword whole socketpair yellow/24",
|
|
"",
|
|
" keyword whole msgctl yellow/24",
|
|
" keyword whole msgget yellow/24",
|
|
" keyword whole msgsnd yellow/24",
|
|
" keyword whole msgrcv yellow/24",
|
|
" keyword whole semctl yellow/24",
|
|
" keyword whole semget yellow/24",
|
|
" keyword whole semop yellow/24",
|
|
" keyword whole shmctl yellow/24",
|
|
" keyword whole shmget yellow/24",
|
|
" keyword whole shmread yellow/24",
|
|
" keyword whole shmwrite yellow/24",
|
|
"",
|
|
" keyword whole defined yellow/24",
|
|
" keyword whole dump yellow/24",
|
|
" keyword whole eval yellow/24",
|
|
" keyword whole local yellow/24",
|
|
" keyword whole my yellow/24",
|
|
" keyword whole ref yellow/24",
|
|
" keyword whole reset yellow/24",
|
|
" keyword whole scalar yellow/24",
|
|
" keyword whole undef yellow/24",
|
|
" keyword whole wantarray yellow/24",
|
|
"",
|
|
" keyword whole endpwent yellow/24",
|
|
" keyword whole getpwent yellow/24",
|
|
" keyword whole getpwnam yellow/24",
|
|
" keyword whole getpwuid yellow/24",
|
|
" keyword whole setpwent yellow/24",
|
|
" keyword whole endgrent yellow/24",
|
|
" keyword whole getgrgid yellow/24",
|
|
" keyword whole getgrnam yellow/24",
|
|
" keyword whole getgrent yellow/24",
|
|
" keyword whole setgrent yellow/24",
|
|
"",
|
|
" keyword whole endhostent yellow/24",
|
|
" keyword whole gethostbyaddr yellow/24",
|
|
" keyword whole gethostbyname yellow/24",
|
|
" keyword whole gethostent yellow/24",
|
|
" keyword whole sethostent yellow/24",
|
|
"",
|
|
" keyword whole endnetent yellow/24",
|
|
" keyword whole getnetbyaddr yellow/24",
|
|
" keyword whole getnetbyname yellow/24",
|
|
" keyword whole getnetent yellow/24",
|
|
" keyword whole setnetent yellow/24",
|
|
" keyword whole endservent yellow/24",
|
|
" keyword whole getservbyname yellow/24",
|
|
" keyword whole getservbyport yellow/24",
|
|
" keyword whole getservent yellow/24",
|
|
" keyword whole serservent yellow/24",
|
|
" keyword whole endprotoent yellow/24",
|
|
" keyword whole getprotobyname yellow/24",
|
|
" keyword whole getprotobynumber yellow/24",
|
|
" keyword whole getprotoent yellow/24",
|
|
" keyword whole setprotoent yellow/24",
|
|
"",
|
|
"context exclusive whole <\\[\\s\\\\\\]EOF EOF green/6",
|
|
"context # \\n brown/22",
|
|
"context linestart = =cut brown/22",
|
|
"context \" \" green/6",
|
|
" keyword \\\\\" brightgreen/16",
|
|
" keyword \\\\\\\\ brightgreen/16",
|
|
"context ' ' brightgreen/16",
|
|
" keyword \\\\' green/6",
|
|
" keyword \\\\\\\\ green/6",
|
|
"",
|
|
"context exclusive ` ` white/26 black/0",
|
|
"",
|
|
"context whole __END__ guacomale_pudding white/26 black/0",
|
|
"",
|
|
"###############################################################################",
|
|
"file ..\\*\\\\.(py|PY])$ Python\\sProgram ^#!\\s\\*/.\\*/python$",
|
|
"context default",
|
|
" keyword : brightred/18",
|
|
" keyword > yellow/24",
|
|
" keyword < yellow/24",
|
|
" keyword \\+ yellow/24",
|
|
" keyword - yellow/24",
|
|
" keyword \\* yellow/24",
|
|
" keyword / yellow/24",
|
|
" keyword % yellow/24",
|
|
" keyword = yellow/24",
|
|
" keyword != yellow/24",
|
|
" keyword == yellow/24",
|
|
" keyword { brightcyan/14",
|
|
" keyword } brightcyan/14",
|
|
" keyword ( brightcyan/15",
|
|
" keyword ) brightcyan/15",
|
|
" keyword [ brightcyan/14",
|
|
" keyword ] brightcyan/14",
|
|
" keyword , brightcyan/14",
|
|
" keyword : brightcyan/14",
|
|
" keyword ; brightmagenta/19",
|
|
" keyword whole self brightred/18",
|
|
" keyword whole access yellow/24",
|
|
" keyword whole and yellow/24",
|
|
" keyword whole break yellow/24",
|
|
" keyword whole class yellow/24",
|
|
" keyword whole continue yellow/24",
|
|
" keyword whole def yellow/24",
|
|
" keyword whole del yellow/24",
|
|
" keyword whole elif yellow/24",
|
|
" keyword whole else yellow/24",
|
|
" keyword whole except yellow/24",
|
|
" keyword whole exec yellow/24",
|
|
" keyword whole finally yellow/24",
|
|
" keyword whole for yellow/24",
|
|
" keyword whole from yellow/24",
|
|
" keyword whole global yellow/24",
|
|
" keyword whole if yellow/24",
|
|
" keyword whole import yellow/24",
|
|
" keyword whole in yellow/24",
|
|
" keyword whole is yellow/24",
|
|
" keyword whole lambda yellow/24",
|
|
" keyword whole not yellow/24",
|
|
" keyword whole or yellow/24",
|
|
" keyword whole pass yellow/24",
|
|
" keyword whole print yellow/24",
|
|
" keyword whole raise yellow/24",
|
|
" keyword whole return yellow/24",
|
|
" keyword whole try yellow/24",
|
|
" keyword whole while yellow/24",
|
|
"",
|
|
" keyword whole abs brightcyan/17",
|
|
" keyword whole apply brightcyan/17",
|
|
" keyword whole callable brightcyan/17",
|
|
" keyword whole chr brightcyan/17",
|
|
" keyword whole cmp brightcyan/17",
|
|
" keyword whole coerce brightcyan/17",
|
|
" keyword whole compile brightcyan/17",
|
|
" keyword whole delattr brightcyan/17",
|
|
" keyword whole dir brightcyan/17",
|
|
" keyword whole divmod brightcyan/17",
|
|
" keyword whole eval brightcyan/17",
|
|
" keyword whole exec brightcyan/17",
|
|
" keyword whole execfile brightcyan/17",
|
|
" keyword whole filter brightcyan/17",
|
|
" keyword whole float brightcyan/17",
|
|
" keyword whole getattr brightcyan/17",
|
|
" keyword whole globals brightcyan/17",
|
|
" keyword whole hasattr brightcyan/17",
|
|
" keyword whole hash brightcyan/17",
|
|
" keyword whole hex brightcyan/17",
|
|
" keyword whole id brightcyan/17",
|
|
" keyword whole input brightcyan/17",
|
|
" keyword whole int brightcyan/17",
|
|
" keyword whole len brightcyan/17",
|
|
" keyword whole locals brightcyan/17",
|
|
" keyword whole long brightcyan/17",
|
|
" keyword whole map brightcyan/17",
|
|
" keyword whole max brightcyan/17",
|
|
" keyword whole min brightcyan/17",
|
|
" keyword whole oct brightcyan/17",
|
|
" keyword whole open brightcyan/17",
|
|
" keyword whole ord brightcyan/17",
|
|
" keyword whole pow brightcyan/17",
|
|
" keyword whole range brightcyan/17",
|
|
" keyword whole raw_input brightcyan/17",
|
|
" keyword whole reduce brightcyan/17",
|
|
" keyword whole reload brightcyan/17",
|
|
" keyword whole repr brightcyan/17",
|
|
" keyword whole round brightcyan/17",
|
|
" keyword whole setattr brightcyan/17",
|
|
" keyword whole str brightcyan/17",
|
|
" keyword whole tuple brightcyan/17",
|
|
" keyword whole type brightcyan/17",
|
|
" keyword whole vars brightcyan/17",
|
|
" keyword whole xrange brightcyan/17",
|
|
"",
|
|
" keyword whole atof magenta/23",
|
|
" keyword whole atoi magenta/23",
|
|
" keyword whole atol magenta/23",
|
|
" keyword whole expandtabs magenta/23",
|
|
" keyword whole find magenta/23",
|
|
" keyword whole rfind magenta/23",
|
|
" keyword whole index magenta/23",
|
|
" keyword whole rindex magenta/23",
|
|
" keyword whole count magenta/23",
|
|
" keyword whole split magenta/23",
|
|
" keyword whole splitfields magenta/23",
|
|
" keyword whole join magenta/23",
|
|
" keyword whole joinfields magenta/23",
|
|
" keyword whole strip magenta/23",
|
|
" keyword whole swapcase magenta/23",
|
|
" keyword whole upper magenta/23",
|
|
" keyword whole lower magenta/23",
|
|
" keyword whole ljust magenta/23",
|
|
" keyword whole rjust magenta/23",
|
|
" keyword whole center magenta/23",
|
|
" keyword whole zfill magenta/23",
|
|
"",
|
|
" keyword whole __init__ lightgray/13",
|
|
" keyword whole __del__ lightgray/13",
|
|
" keyword whole __repr__ lightgray/13",
|
|
" keyword whole __str__ lightgray/13",
|
|
" keyword whole __cmp__ lightgray/13",
|
|
" keyword whole __hash__ lightgray/13",
|
|
" keyword whole __call__ lightgray/13",
|
|
" keyword whole __getattr__ lightgray/13",
|
|
" keyword whole __setattr__ lightgray/13",
|
|
" keyword whole __delattr__ lightgray/13",
|
|
" keyword whole __len__ lightgray/13",
|
|
" keyword whole __getitem__ lightgray/13",
|
|
" keyword whole __setitem__ lightgray/13",
|
|
" keyword whole __delitem__ lightgray/13",
|
|
" keyword whole __getslice__ lightgray/13",
|
|
" keyword whole __setslice__ lightgray/13",
|
|
" keyword whole __delslice__ lightgray/13",
|
|
" keyword whole __add__ lightgray/13",
|
|
" keyword whole __sub__ lightgray/13",
|
|
" keyword whole __mul__ lightgray/13",
|
|
" keyword whole __div__ lightgray/13",
|
|
" keyword whole __mod__ lightgray/13",
|
|
" keyword whole __divmod__ lightgray/13",
|
|
" keyword whole __pow__ lightgray/13",
|
|
" keyword whole __lshift__ lightgray/13",
|
|
" keyword whole __rshift__ lightgray/13",
|
|
" keyword whole __and__ lightgray/13",
|
|
" keyword whole __xor__ lightgray/13",
|
|
" keyword whole __or__ lightgray/13",
|
|
" keyword whole __neg__ lightgray/13",
|
|
" keyword whole __pos__ lightgray/13",
|
|
" keyword whole __abs__ lightgray/13",
|
|
" keyword whole __invert__ lightgray/13",
|
|
" keyword whole __nonzero__ lightgray/13",
|
|
" keyword whole __coerce__ lightgray/13",
|
|
" keyword whole __int__ lightgray/13",
|
|
" keyword whole __long__ lightgray/13",
|
|
" keyword whole __float__ lightgray/13",
|
|
" keyword whole __oct__ lightgray/13",
|
|
" keyword whole __hex__ lightgray/13",
|
|
"",
|
|
" keyword whole __init__ lightgray/13",
|
|
" keyword whole __del__ lightgray/13",
|
|
" keyword whole __repr__ lightgray/13",
|
|
" keyword whole __str__ lightgray/13",
|
|
" keyword whole __cmp__ lightgray/13",
|
|
" keyword whole __hash__ lightgray/13",
|
|
" keyword whole __call__ lightgray/13",
|
|
" keyword whole __getattr__ lightgray/13",
|
|
" keyword whole __setattr__ lightgray/13",
|
|
" keyword whole __delattr__ lightgray/13",
|
|
" keyword whole __len__ lightgray/13",
|
|
" keyword whole __getitem__ lightgray/13",
|
|
" keyword whole __setitem__ lightgray/13",
|
|
" keyword whole __delitem__ lightgray/13",
|
|
" keyword whole __getslice__ lightgray/13",
|
|
" keyword whole __setslice__ lightgray/13",
|
|
" keyword whole __delslice__ lightgray/13",
|
|
" keyword whole __add__ lightgray/13",
|
|
" keyword whole __sub__ lightgray/13",
|
|
" keyword whole __mul__ lightgray/13",
|
|
" keyword whole __div__ lightgray/13",
|
|
" keyword whole __mod__ lightgray/13",
|
|
" keyword whole __divmod__ lightgray/13",
|
|
" keyword whole __pow__ lightgray/13",
|
|
" keyword whole __lshift__ lightgray/13",
|
|
" keyword whole __rshift__ lightgray/13",
|
|
" keyword whole __and__ lightgray/13",
|
|
" keyword whole __xor__ lightgray/13",
|
|
" keyword whole __or__ lightgray/13",
|
|
" keyword whole __neg__ lightgray/13",
|
|
" keyword whole __pos__ lightgray/13",
|
|
" keyword whole __abs__ lightgray/13",
|
|
" keyword whole __invert__ lightgray/13",
|
|
" keyword whole __nonzero__ lightgray/13",
|
|
" keyword whole __coerce__ lightgray/13",
|
|
" keyword whole __int__ lightgray/13",
|
|
" keyword whole __long__ lightgray/13",
|
|
" keyword whole __float__ lightgray/13",
|
|
" keyword whole __oct__ lightgray/13",
|
|
" keyword whole __hex__ lightgray/13",
|
|
"",
|
|
" keyword whole __radd__ lightgray/13",
|
|
" keyword whole __rsub__ lightgray/13",
|
|
" keyword whole __rmul__ lightgray/13",
|
|
" keyword whole __rdiv__ lightgray/13",
|
|
" keyword whole __rmod__ lightgray/13",
|
|
" keyword whole __rdivmod__ lightgray/13",
|
|
" keyword whole __rpow__ lightgray/13",
|
|
" keyword whole __rlshift__ lightgray/13",
|
|
" keyword whole __rrshift__ lightgray/13",
|
|
" keyword whole __rand__ lightgray/13",
|
|
" keyword whole __rxor__ lightgray/13",
|
|
" keyword whole __ror__ lightgray/13",
|
|
"",
|
|
" keyword whole __*__ brightred/18",
|
|
"",
|
|
"context \"\"\" \"\"\" brown/22",
|
|
"context # \\n brown/22",
|
|
"context \" \" green/6",
|
|
" keyword \\\\\" brightgreen/16",
|
|
" keyword %% brightgreen/16",
|
|
" keyword %\\[#0\\s-\\+,\\]\\[0123456789\\]\\[.\\]\\[0123456789\\]\\[L\\]e brightgreen/16",
|
|
" keyword %\\[#0\\s-\\+,\\]\\[0123456789\\]\\[.\\]\\[0123456789\\]\\[L\\]E brightgreen/16",
|
|
" keyword %\\[#0\\s-\\+,\\]\\[0123456789\\]\\[.\\]\\[0123456789\\]\\[L\\]f brightgreen/16",
|
|
" keyword %\\[#0\\s-\\+,\\]\\[0123456789\\]\\[.\\]\\[0123456789\\]\\[L\\]g brightgreen/16",
|
|
" keyword %\\[#0\\s-\\+,\\]\\[0123456789\\]\\[.\\]\\[0123456789\\]\\[L\\]G brightgreen/16",
|
|
" keyword %\\[0\\s-\\+,\\]\\[0123456789\\]\\[.\\]\\[0123456789\\]\\[hl\\]d brightgreen/16",
|
|
" keyword %\\[0\\s-\\+,\\]\\[0123456789\\]\\[.\\]\\[0123456789\\]\\[hl\\]i brightgreen/16",
|
|
" keyword %\\[#0\\s-\\+,\\]\\[0123456789\\]\\[.\\]\\[0123456789\\]\\[hl\\]o brightgreen/16",
|
|
" keyword %\\[0\\s-\\+,\\]\\[0123456789\\]\\[.\\]\\[0123456789\\]\\[hl\\]u brightgreen/16",
|
|
" keyword %\\[#0\\s-\\+,\\]\\[0123456789\\]\\[.\\]\\[0123456789\\]\\[hl\\]x brightgreen/16",
|
|
" keyword %\\[#0\\s-\\+,\\]\\[0123456789\\]\\[.\\]\\[0123456789\\]\\[hl\\]X brightgreen/16",
|
|
" keyword %\\[hl\\]n brightgreen/16",
|
|
" keyword %\\[.\\]\\[0123456789\\]s brightgreen/16",
|
|
" keyword %[*] brightgreen/16",
|
|
" keyword %c brightgreen/16",
|
|
" keyword \\\\\\\\ brightgreen/16",
|
|
" keyword \\\\' brightgreen/16",
|
|
" keyword \\\\a brightgreen/16",
|
|
" keyword \\\\b brightgreen/16",
|
|
" keyword \\\\t brightgreen/16",
|
|
" keyword \\\\n brightgreen/16",
|
|
" keyword \\\\v brightgreen/16",
|
|
" keyword \\\\f brightgreen/16",
|
|
" keyword \\\\r brightgreen/16",
|
|
" keyword \\\\0 brightgreen/16",
|
|
"",
|
|
"context ' ' green/6",
|
|
" keyword \\\\\" brightgreen/16",
|
|
" keyword %% brightgreen/16",
|
|
" keyword %\\[#0\\s-\\+,\\]\\[0123456789\\]\\[.\\]\\[0123456789\\]\\[L\\]e brightgreen/16",
|
|
" keyword %\\[#0\\s-\\+,\\]\\[0123456789\\]\\[.\\]\\[0123456789\\]\\[L\\]E brightgreen/16",
|
|
" keyword %\\[#0\\s-\\+,\\]\\[0123456789\\]\\[.\\]\\[0123456789\\]\\[L\\]f brightgreen/16",
|
|
" keyword %\\[#0\\s-\\+,\\]\\[0123456789\\]\\[.\\]\\[0123456789\\]\\[L\\]g brightgreen/16",
|
|
" keyword %\\[#0\\s-\\+,\\]\\[0123456789\\]\\[.\\]\\[0123456789\\]\\[L\\]G brightgreen/16",
|
|
" keyword %\\[0\\s-\\+,\\]\\[0123456789\\]\\[.\\]\\[0123456789\\]\\[hl\\]d brightgreen/16",
|
|
" keyword %\\[0\\s-\\+,\\]\\[0123456789\\]\\[.\\]\\[0123456789\\]\\[hl\\]i brightgreen/16",
|
|
" keyword %\\[#0\\s-\\+,\\]\\[0123456789\\]\\[.\\]\\[0123456789\\]\\[hl\\]o brightgreen/16",
|
|
" keyword %\\[0\\s-\\+,\\]\\[0123456789\\]\\[.\\]\\[0123456789\\]\\[hl\\]u brightgreen/16",
|
|
" keyword %\\[#0\\s-\\+,\\]\\[0123456789\\]\\[.\\]\\[0123456789\\]\\[hl\\]x brightgreen/16",
|
|
" keyword %\\[#0\\s-\\+,\\]\\[0123456789\\]\\[.\\]\\[0123456789\\]\\[hl\\]X brightgreen/16",
|
|
" keyword %\\[hl\\]n brightgreen/16",
|
|
" keyword %\\[.\\]\\[0123456789\\]s brightgreen/16",
|
|
" keyword %[*] brightgreen/16",
|
|
" keyword %c brightgreen/16",
|
|
" keyword \\\\\\\\ brightgreen/16",
|
|
" keyword \\\\' brightgreen/16",
|
|
" keyword \\\\a brightgreen/16",
|
|
" keyword \\\\b brightgreen/16",
|
|
" keyword \\\\t brightgreen/16",
|
|
" keyword \\\\n brightgreen/16",
|
|
" keyword \\\\v brightgreen/16",
|
|
" keyword \\\\f brightgreen/16",
|
|
" keyword \\\\r brightgreen/16",
|
|
" keyword \\\\0 brightgreen/16",
|
|
"",
|
|
"###############################################################################",
|
|
"file ..\\*\\\\.(man|[0-9n]|[0-9]x)$ NROFF\\sSource",
|
|
"",
|
|
"context default",
|
|
" keyword \\\\fP brightgreen/6",
|
|
" keyword \\\\fR brightgreen/6",
|
|
" keyword \\\\fB brightgreen/6",
|
|
" keyword \\\\fI brightgreen/6",
|
|
" keyword linestart .AS cyan/5",
|
|
" keyword linestart .Ar cyan/5",
|
|
" keyword linestart .At cyan/5",
|
|
" keyword linestart .BE cyan/5",
|
|
" keyword linestart .BH cyan/5",
|
|
" keyword linestart .BI cyan/5",
|
|
" keyword linestart .BR cyan/5",
|
|
" keyword linestart .BS cyan/5",
|
|
" keyword linestart .Bd cyan/5",
|
|
" keyword linestart .Bk cyan/5",
|
|
" keyword linestart .Bl cyan/5",
|
|
" keyword linestart .Bu cyan/5",
|
|
" keyword linestart .Bx cyan/5",
|
|
" keyword linestart .CE cyan/5",
|
|
" keyword linestart .CM cyan/5",
|
|
" keyword linestart .CS cyan/5",
|
|
" keyword linestart .CT cyan/5",
|
|
" keyword linestart .CW cyan/5",
|
|
" keyword linestart .Cm cyan/5",
|
|
" keyword linestart .Co cyan/5",
|
|
" keyword linestart .DA cyan/5",
|
|
" keyword linestart .DE cyan/5",
|
|
" keyword linestart .DS cyan/5",
|
|
" keyword linestart .DT cyan/5",
|
|
" keyword linestart .Dd cyan/5",
|
|
" keyword linestart .De cyan/5",
|
|
" keyword linestart .Dl cyan/5",
|
|
" keyword linestart .Dq cyan/5",
|
|
" keyword linestart .Ds cyan/5",
|
|
" keyword linestart .Dt cyan/5",
|
|
" keyword linestart .Dv cyan/5",
|
|
" keyword linestart .EE cyan/5",
|
|
" keyword linestart .EN cyan/5",
|
|
" keyword linestart .EQ cyan/5",
|
|
" keyword linestart .EX cyan/5",
|
|
" keyword linestart .Ed cyan/5",
|
|
" keyword linestart .Ee cyan/5",
|
|
" keyword linestart .Ek cyan/5",
|
|
" keyword linestart .El cyan/5",
|
|
" keyword linestart .Em cyan/5",
|
|
" keyword linestart .En cyan/5",
|
|
" keyword linestart .Ev cyan/5",
|
|
" keyword linestart .Ex cyan/5",
|
|
" keyword linestart .FI cyan/5",
|
|
" keyword linestart .FL cyan/5",
|
|
" keyword linestart .FN cyan/5",
|
|
" keyword linestart .FT cyan/5",
|
|
" keyword linestart .Fi cyan/5",
|
|
" keyword linestart .Fl cyan/5",
|
|
" keyword linestart .Fn cyan/5",
|
|
" keyword linestart .HP cyan/5",
|
|
" keyword linestart .HS cyan/5",
|
|
" keyword linestart .Hh cyan/5",
|
|
" keyword linestart .Hi cyan/5",
|
|
" keyword linestart .IB cyan/5",
|
|
" keyword linestart .IP cyan/5",
|
|
" keyword linestart .IR cyan/5",
|
|
" keyword linestart .IX cyan/5",
|
|
" keyword linestart .Ic cyan/5",
|
|
" keyword linestart .Id cyan/5",
|
|
" keyword linestart .Ip cyan/5",
|
|
" keyword linestart .It cyan/5",
|
|
" keyword linestart .LI cyan/5",
|
|
" keyword linestart .LO cyan/5",
|
|
" keyword linestart .LP cyan/5",
|
|
" keyword linestart .LR cyan/5",
|
|
" keyword linestart .Li cyan/5",
|
|
" keyword linestart .MF cyan/5",
|
|
" keyword linestart .ML cyan/5",
|
|
" keyword linestart .MU cyan/5",
|
|
" keyword linestart .MV cyan/5",
|
|
" keyword linestart .N cyan/5",
|
|
" keyword linestart .NF cyan/5",
|
|
" keyword linestart .Nd cyan/5",
|
|
" keyword linestart .Nm cyan/5",
|
|
" keyword linestart .No cyan/5",
|
|
" keyword linestart .OP cyan/5",
|
|
" keyword linestart .Oc cyan/5",
|
|
" keyword linestart .Oo cyan/5",
|
|
" keyword linestart .Op cyan/5",
|
|
" keyword linestart .Os cyan/5",
|
|
" keyword linestart .PD cyan/5",
|
|
" keyword linestart .PN cyan/5",
|
|
" keyword linestart .PP cyan/5",
|
|
" keyword linestart .PU cyan/5",
|
|
" keyword linestart .Pa cyan/5",
|
|
" keyword linestart .Pf cyan/5",
|
|
" keyword linestart .Pp cyan/5",
|
|
" keyword linestart .Pq cyan/5",
|
|
" keyword linestart .Pr cyan/5",
|
|
" keyword linestart .Ps cyan/5",
|
|
" keyword linestart .Ql cyan/5",
|
|
" keyword linestart .RB cyan/5",
|
|
" keyword linestart .RE cyan/5",
|
|
" keyword linestart .RI cyan/5",
|
|
" keyword linestart .RS cyan/5",
|
|
" keyword linestart .RT cyan/5",
|
|
" keyword linestart .Re cyan/5",
|
|
" keyword linestart .Rs cyan/5",
|
|
" keyword linestart .SB cyan/5",
|
|
" keyword linestart .SH cyan/5",
|
|
" keyword linestart .SM cyan/5",
|
|
" keyword linestart .SP cyan/5",
|
|
" keyword linestart .SS cyan/5",
|
|
" keyword linestart .Sa cyan/5",
|
|
" keyword linestart .Sh cyan/5",
|
|
" keyword linestart .Sm cyan/5",
|
|
" keyword linestart .Sp cyan/5",
|
|
" keyword linestart .Sq cyan/5",
|
|
" keyword linestart .Ss cyan/5",
|
|
" keyword linestart .St cyan/5",
|
|
" keyword linestart .Sx cyan/5",
|
|
" keyword linestart .Sy cyan/5",
|
|
" keyword linestart .TE cyan/5",
|
|
" keyword linestart .TH cyan/5",
|
|
" keyword linestart .TP cyan/5",
|
|
" keyword linestart .TQ cyan/5",
|
|
" keyword linestart .TS cyan/5",
|
|
" keyword linestart .Tn cyan/5",
|
|
" keyword linestart .Tp cyan/5",
|
|
" keyword linestart .UC cyan/5",
|
|
" keyword linestart .Uh cyan/5",
|
|
" keyword linestart .Ux cyan/5",
|
|
" keyword linestart .VE cyan/5",
|
|
" keyword linestart .VS cyan/5",
|
|
" keyword linestart .Va cyan/5",
|
|
" keyword linestart .Vb cyan/5",
|
|
" keyword linestart .Ve cyan/5",
|
|
" keyword linestart .Xc cyan/5",
|
|
" keyword linestart .Xe cyan/5",
|
|
" keyword linestart .Xr cyan/5",
|
|
" keyword linestart .YN cyan/5",
|
|
" keyword linestart .ad cyan/5",
|
|
" keyword linestart .am cyan/5",
|
|
" keyword linestart .bd cyan/5",
|
|
" keyword linestart .bp cyan/5",
|
|
" keyword linestart .br cyan/5",
|
|
" keyword linestart .ce cyan/5",
|
|
" keyword linestart .cs cyan/5",
|
|
" keyword linestart .de cyan/5",
|
|
" keyword linestart .ds cyan/5",
|
|
" keyword linestart .ec cyan/5",
|
|
" keyword linestart .eh cyan/5",
|
|
" keyword linestart .el cyan/5",
|
|
" keyword linestart .eo cyan/5",
|
|
" keyword linestart .ev cyan/5",
|
|
" keyword linestart .fc cyan/5",
|
|
" keyword linestart .fi cyan/5",
|
|
" keyword linestart .ft cyan/5",
|
|
" keyword linestart .hy cyan/5",
|
|
" keyword linestart .iX cyan/5",
|
|
" keyword linestart .ie cyan/5",
|
|
" keyword linestart .if cyan/5",
|
|
" keyword linestart .ig cyan/5",
|
|
" keyword linestart .in cyan/5",
|
|
" keyword linestart .ll cyan/5",
|
|
" keyword linestart .lp cyan/5",
|
|
" keyword linestart .ls cyan/5",
|
|
" keyword linestart .mk cyan/5",
|
|
" keyword linestart .na cyan/5",
|
|
" keyword linestart .ne cyan/5",
|
|
" keyword linestart .nf cyan/5",
|
|
" keyword linestart .nh cyan/5",
|
|
" keyword linestart .nr cyan/5",
|
|
" keyword linestart .ns cyan/5",
|
|
" keyword linestart .oh cyan/5",
|
|
" keyword linestart .ps cyan/5",
|
|
" keyword linestart .re cyan/5",
|
|
" keyword linestart .rm cyan/5",
|
|
" keyword linestart .rn cyan/5",
|
|
" keyword linestart .rr cyan/5",
|
|
" keyword linestart .so cyan/5",
|
|
" keyword linestart .sp cyan/5",
|
|
" keyword linestart .ss cyan/5",
|
|
" keyword linestart .ta cyan/5",
|
|
" keyword linestart .ti cyan/5",
|
|
" keyword linestart .tm cyan/5",
|
|
" keyword linestart .tr cyan/5",
|
|
" keyword linestart .ul cyan/5",
|
|
" keyword linestart .vs cyan/5",
|
|
" keyword linestart .zZ cyan/5",
|
|
" keyword linestart .e cyan/5",
|
|
" keyword linestart .d cyan/5",
|
|
" keyword linestart .h cyan/5",
|
|
" keyword linestart .B cyan/5",
|
|
" keyword linestart .I cyan/5",
|
|
" keyword linestart .R cyan/5",
|
|
" keyword linestart .P cyan/5",
|
|
" keyword linestart .L cyan/5",
|
|
" keyword linestart .V cyan/5",
|
|
" keyword linestart .F cyan/5",
|
|
" keyword linestart .T cyan/5",
|
|
" keyword linestart .X cyan/5",
|
|
" keyword linestart .Y cyan/5",
|
|
" keyword linestart .b cyan/5",
|
|
" keyword linestart .l cyan/5",
|
|
" keyword linestart .i cyan/5",
|
|
"",
|
|
"context exclusive linestart .SH \\n brightred/18",
|
|
"context exclusive linestart .TH \\n brightred/18",
|
|
"context exclusive linestart .B \\n magenta/23",
|
|
"context exclusive linestart .I \\n yellow/24",
|
|
"context exclusive linestart .nf linestart .fi green/15",
|
|
"",
|
|
"# font changes should end in a \\fP",
|
|
"context exclusive \\\\fB \\\\fP magenta/23",
|
|
"context exclusive \\\\fI \\\\fP yellow/24",
|
|
"context linestart .\\\\\" \\n brown/22",
|
|
"",
|
|
"###############################################################################",
|
|
"# Assumes you've set a dark background, e.g. navy blue.",
|
|
"file ..\\*\\\\.(htm|html|HTM|HTML)$ HTML\\sFile",
|
|
"",
|
|
"context default white/25",
|
|
" keyword whole &*; brightgreen/16",
|
|
"context <!-- --> white/26",
|
|
"context < > brightcyan/17",
|
|
" keyword \"http:*\" magenta/22",
|
|
" keyword \"ftp:*\" magenta/22",
|
|
" keyword \"mailto:*\" magenta/22",
|
|
" keyword \"gopher:*\" magenta/22",
|
|
" keyword \"telnet:*\" magenta/22",
|
|
" keyword \"file:*\" magenta/22",
|
|
" keyword \"*.gif\" brightred/19",
|
|
" keyword \"*.jpg\" brightred/19",
|
|
" keyword \"*.png\" brightred/19",
|
|
" keyword \"*\" cyan/5",
|
|
"",
|
|
"###############################################################################",
|
|
"# Pascal (BP7 IDE alike)",
|
|
"file ..\\*\\\\.(pp|PP|pas|PAS)$ Pascal Program",
|
|
"context default yellow/24",
|
|
" keyword whole absolute white/25",
|
|
" keyword whole and white/25",
|
|
" keyword whole array white/25",
|
|
" keyword whole as white/25",
|
|
" keyword whole asm white/25",
|
|
" keyword whole assembler white/25",
|
|
" keyword whole begin white/25",
|
|
" keyword whole break white/25",
|
|
" keyword whole case white/25",
|
|
" keyword whole class white/25",
|
|
" keyword whole const white/25",
|
|
" keyword whole continue white/25",
|
|
" keyword whole constructor white/25",
|
|
" keyword whole destructor white/25",
|
|
" keyword whole dispose white/25",
|
|
" keyword whole div white/25",
|
|
" keyword whole do white/25",
|
|
" keyword whole downto white/25",
|
|
" keyword whole else white/25",
|
|
" keyword whole end white/25",
|
|
" keyword whole except white/25",
|
|
" keyword whole exit white/25",
|
|
" keyword whole export white/25",
|
|
" keyword whole exports white/25",
|
|
" keyword whole external white/25",
|
|
" keyword whole fail white/25",
|
|
" keyword whole far white/25",
|
|
" keyword whole false white/25",
|
|
" keyword whole file white/25",
|
|
" keyword whole finally white/25",
|
|
" keyword whole for white/25",
|
|
" keyword whole forward white/25",
|
|
" keyword whole function white/25",
|
|
" keyword whole goto white/25",
|
|
" keyword whole if white/25",
|
|
" keyword whole implementation white/25",
|
|
" keyword whole in white/25",
|
|
" keyword whole inherited white/25",
|
|
" keyword whole initialization white/25",
|
|
" keyword whole inline white/25",
|
|
" keyword whole interface white/25",
|
|
" keyword whole interrupt white/25",
|
|
" keyword whole is white/25",
|
|
" keyword whole label white/25",
|
|
" keyword whole library white/25",
|
|
" keyword whole mod white/25",
|
|
" keyword whole near white/25",
|
|
" keyword whole new white/25",
|
|
" keyword whole nil white/25",
|
|
" keyword whole not white/25",
|
|
" keyword whole object white/25",
|
|
" keyword whole of white/25",
|
|
" keyword whole on white/25",
|
|
" keyword whole operator white/25",
|
|
" keyword whole or white/25",
|
|
" keyword whole otherwise white/25",
|
|
" keyword whole packed white/25",
|
|
" keyword whole procedure white/25",
|
|
" keyword whole program white/25",
|
|
" keyword whole property white/25",
|
|
" keyword whole raise white/25",
|
|
" keyword whole record white/25",
|
|
" keyword whole repeat white/25",
|
|
" keyword whole self white/25",
|
|
" keyword whole set white/25",
|
|
" keyword whole shl white/25",
|
|
" keyword whole shr white/25",
|
|
" keyword whole string white/25",
|
|
" keyword whole then white/25",
|
|
" keyword whole to white/25",
|
|
" keyword whole true white/25",
|
|
" keyword whole try white/25",
|
|
" keyword whole type white/25",
|
|
" keyword whole unit white/25",
|
|
" keyword whole until white/25",
|
|
" keyword whole uses white/25",
|
|
" keyword whole var white/25",
|
|
" keyword whole virtual white/25",
|
|
" keyword whole while white/25",
|
|
" keyword whole with white/25",
|
|
" keyword whole xor white/25",
|
|
" keyword whole .. white/25",
|
|
" ",
|
|
" keyword > cyan/5",
|
|
" keyword < cyan/5",
|
|
" keyword \\+ cyan/5",
|
|
" keyword - cyan/5",
|
|
" keyword / cyan/5",
|
|
" keyword % cyan/5",
|
|
" keyword = cyan/5",
|
|
" keyword [ cyan/5",
|
|
" keyword ] cyan/5",
|
|
" keyword ( cyan/5",
|
|
" keyword ) cyan/5",
|
|
" keyword , cyan/5",
|
|
" keyword . cyan/5",
|
|
" keyword : cyan/5",
|
|
" keyword ; cyan/5",
|
|
" keyword {$*} brightred/19",
|
|
"",
|
|
"context ' ' brightcyan/22",
|
|
"context // \\n brown/22",
|
|
"context (\\* \\*) brown/22",
|
|
"# context {$ } brightred/19",
|
|
"# keyword \\[ABCDEFGHIJKLMNOPQRSTUVWXYZ\\]\\[-\\+\\] brightgreen/16",
|
|
"# keyword $* brightgreen/16",
|
|
"context { } lightgray/22",
|
|
"",
|
|
"",
|
|
"###############################################################################",
|
|
"file ..\\*\\\\.tex$ LaTeX\\s2.09\\sDocument",
|
|
"context default",
|
|
"wholechars left \\\\ ",
|
|
"wholechars right abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
|
|
"",
|
|
"# type style",
|
|
" keyword whole \\\\tiny yellow/24",
|
|
" keyword whole \\\\scriptsize yellow/24",
|
|
" keyword whole \\\\footnotesize yellow/24",
|
|
" keyword whole \\\\small yellow/24",
|
|
" keyword whole \\\\normalsize yellow/24",
|
|
" keyword whole \\\\large yellow/24",
|
|
" keyword whole \\\\Large yellow/24",
|
|
" keyword whole \\\\LARGE yellow/24",
|
|
" keyword whole \\\\huge yellow/24",
|
|
" keyword whole \\\\Huge yellow/24",
|
|
"",
|
|
"# accents and symbols",
|
|
" keyword whole \\\\`{\\[aeiouAEIOU\\]} yellow/24",
|
|
" keyword whole \\\\'{\\[aeiouAEIOU\\]} yellow/24",
|
|
" keyword whole \\\\^{\\[aeiouAEIOU\\]} yellow/24",
|
|
" keyword whole \\\\\"{\\[aeiouAEIOU\\]} yellow/24",
|
|
" keyword whole \\\\~{\\[aeiouAEIOU\\]} yellow/24",
|
|
" keyword whole \\\\={\\[aeiouAEIOU\\]} yellow/24",
|
|
" keyword whole \\\\.{\\[aeiouAEIOU\\]} yellow/24",
|
|
" keyword whole \\\\u{\\[aeiouAEIOU\\]} yellow/24",
|
|
" keyword whole \\\\v{\\[aeiouAEIOU\\]} yellow/24",
|
|
" keyword whole \\\\H{\\[aeiouAEIOU\\]} yellow/24",
|
|
" keyword whole \\\\t{\\[aeiouAEIOU\\]} yellow/24",
|
|
" keyword whole \\\\c{\\[aeiouAEIOU\\]} yellow/24",
|
|
" keyword whole \\\\d{\\[aeiouAEIOU\\]} yellow/24",
|
|
" keyword whole \\\\b{\\[aeiouAEIOU\\]} yellow/24",
|
|
"",
|
|
" keyword whole \\\\dag yellow/24",
|
|
" keyword whole \\\\ddag yellow/24",
|
|
" keyword whole \\\\S yellow/24",
|
|
" keyword whole \\\\P yellow/24",
|
|
" keyword whole \\\\copyright yellow/24",
|
|
" keyword whole \\\\pounds yellow/24",
|
|
"",
|
|
"# sectioning and table of contents",
|
|
" keyword whole \\\\part[*]{*} brightred/19",
|
|
" keyword whole \\\\part{*} brightred/19",
|
|
" keyword whole \\\\part\\*{*} brightred/19",
|
|
" keyword whole \\\\chapter[*]{*} brightred/19",
|
|
" keyword whole \\\\chapter{*} brightred/19",
|
|
" keyword whole \\\\chapter\\*{*} brightred/19",
|
|
" keyword whole \\\\section[*]{*} brightred/19",
|
|
" keyword whole \\\\section{*} brightred/19",
|
|
" keyword whole \\\\section\\*{*} brightred/19",
|
|
" keyword whole \\\\subsection[*]{*} brightred/19",
|
|
" keyword whole \\\\subsection{*} brightred/19",
|
|
" keyword whole \\\\subsection\\*{*} brightred/19",
|
|
" keyword whole \\\\subsubsection[*]{*} brightred/19",
|
|
" keyword whole \\\\subsubsection{*} brightred/19",
|
|
" keyword whole \\\\subsubsection\\*{*} brightred/19",
|
|
" keyword whole \\\\paragraph[*]{*} brightred/19",
|
|
" keyword whole \\\\paragraph{*} brightred/19",
|
|
" keyword whole \\\\paragraph\\*{*} brightred/19",
|
|
" keyword whole \\\\subparagraph[*]{*} brightred/19",
|
|
" keyword whole \\\\subparagraph{*} brightred/19",
|
|
" keyword whole \\\\subparagraph\\*{*} brightred/19",
|
|
"",
|
|
" keyword whole \\\\appendix brightred/19",
|
|
" keyword whole \\\\tableofcontents brightred/19",
|
|
"",
|
|
"# misc",
|
|
" keyword whole \\\\item[*] yellow/24",
|
|
" keyword whole \\\\item yellow/24",
|
|
" keyword whole \\\\\\\\ yellow/24",
|
|
" keyword \\\\\\s yellow/24 black/0",
|
|
" keyword %% yellow/24",
|
|
"",
|
|
"# docuement and page styles ",
|
|
" keyword whole \\\\documentstyle[*]{*} yellow/20",
|
|
" keyword whole \\\\documentstyle{*} yellow/20",
|
|
" keyword whole \\\\pagestyle{*} yellow/20",
|
|
"",
|
|
"# cross references",
|
|
" keyword whole \\\\label{*} yellow/24",
|
|
" keyword whole \\\\ref{*} yellow/24",
|
|
"",
|
|
"# bibliography and citations",
|
|
" keyword whole \\\\bibliography{*} yellow/24",
|
|
" keyword whole \\\\bibitem[*]{*} yellow/24",
|
|
" keyword whole \\\\bibitem{*} yellow/24",
|
|
" keyword whole \\\\cite[*]{*} yellow/24",
|
|
" keyword whole \\\\cite{*} yellow/24",
|
|
"",
|
|
"# splitting the input",
|
|
" keyword whole \\\\input{*} yellow/20",
|
|
" keyword whole \\\\include{*} yellow/20",
|
|
" keyword whole \\\\includeonly{*} yellow/20",
|
|
"",
|
|
"# line breaking",
|
|
" keyword whole \\\\linebreak[\\[01234\\]] yellow/24",
|
|
" keyword whole \\\\nolinebreak[\\[01234\\]] yellow/24",
|
|
" keyword whole \\\\linebreak yellow/24",
|
|
" keyword whole \\\\nolinebreak yellow/24",
|
|
" keyword whole \\\\[+] yellow/24",
|
|
" keyword whole \\\\- yellow/24",
|
|
" keyword whole \\\\sloppy yellow/24",
|
|
"",
|
|
"# page breaking",
|
|
" keyword whole \\\\pagebreak[\\[01234\\]] yellow/24",
|
|
" keyword whole \\\\nopagebreak[\\[01234\\]] yellow/24",
|
|
" keyword whole \\\\pagebreak yellow/24",
|
|
" keyword whole \\\\nopagebreak yellow/24",
|
|
" keyword whole \\\\samepage yellow/24",
|
|
" keyword whole \\\\newpage yellow/24",
|
|
" keyword whole \\\\clearpage yellow/24",
|
|
"",
|
|
"# defintiions",
|
|
" keyword \\\\newcommand{*}[*] cyan/5",
|
|
" keyword \\\\newcommand{*} cyan/5",
|
|
" keyword \\\\newenvironment{*}[*]{*} cyan/5",
|
|
" keyword \\\\newenvironment{*}{*} cyan/5",
|
|
"",
|
|
"# boxes",
|
|
"",
|
|
"# begins and ends",
|
|
" keyword \\\\begin{document} brightred/14",
|
|
" keyword \\\\begin{equation} brightred/14",
|
|
" keyword \\\\begin{eqnarray} brightred/14",
|
|
" keyword \\\\begin{quote} brightred/14",
|
|
" keyword \\\\begin{quotation} brightred/14",
|
|
" keyword \\\\begin{center} brightred/14",
|
|
" keyword \\\\begin{verse} brightred/14",
|
|
" keyword \\\\begin{verbatim} brightred/14",
|
|
" keyword \\\\begin{itemize} brightred/14",
|
|
" keyword \\\\begin{enumerate} brightred/14",
|
|
" keyword \\\\begin{description} brightred/14",
|
|
" keyword \\\\begin{list} brightred/14",
|
|
" keyword \\\\begin{array} brightred/14",
|
|
" keyword \\\\begin{tabular} brightred/14",
|
|
" keyword \\\\begin{thebibliography}{*} brightred/14",
|
|
" keyword \\\\begin{sloppypar} brightred/14",
|
|
"",
|
|
" keyword \\\\end{document} brightred/14",
|
|
" keyword \\\\end{equation} brightred/14",
|
|
" keyword \\\\end{eqnarray} brightred/14",
|
|
" keyword \\\\end{quote} brightred/14",
|
|
" keyword \\\\end{quotation} brightred/14",
|
|
" keyword \\\\end{center} brightred/14",
|
|
" keyword \\\\end{verse} brightred/14",
|
|
" keyword \\\\end{verbatim} brightred/14",
|
|
" keyword \\\\end{itemize} brightred/14",
|
|
" keyword \\\\end{enumerate} brightred/14",
|
|
" keyword \\\\end{description} brightred/14",
|
|
" keyword \\\\end{list} brightred/14",
|
|
" keyword \\\\end{array} brightred/14",
|
|
" keyword \\\\end{tabular} brightred/14",
|
|
" keyword \\\\end{thebibliography}{*} brightred/14",
|
|
" keyword \\\\end{sloppypar} brightred/14",
|
|
"",
|
|
" keyword \\\\begin{*} brightcyan/16",
|
|
" keyword \\\\end{*} brightcyan/16",
|
|
"",
|
|
" keyword \\\\theorem{*}{*} yellow/24",
|
|
"",
|
|
"# if all else fails",
|
|
" keyword whole \\\\+[*]{*}{*}{*} brightcyan/17",
|
|
" keyword whole \\\\+[*]{*}{*} brightcyan/17",
|
|
" keyword whole \\\\+{*}{*}{*}{*} brightcyan/17",
|
|
" keyword whole \\\\+{*}{*}{*} brightcyan/17",
|
|
" keyword whole \\\\+{*}{*} brightcyan/17",
|
|
" keyword whole \\\\+{*} brightcyan/17",
|
|
" keyword \\\\\\[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\\]\\n brightcyan/17",
|
|
" keyword \\\\\\[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\\]\\s brightcyan/17",
|
|
" keyword \\\\\\[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\\]\\t brightcyan/17",
|
|
"",
|
|
"context \\\\pagenumbering{ } yellow/20",
|
|
" keyword arabic brightcyan/17",
|
|
" keyword roman brightcyan/17",
|
|
" keyword alph brightcyan/17",
|
|
" keyword Roman brightcyan/17",
|
|
" keyword Alph brightcyan/17",
|
|
"",
|
|
"context % \\n brown/22",
|
|
"",
|
|
"# mathematical formulas",
|
|
"context $ $ brightgreen/6",
|
|
"context exclusive \\\\begin{equation} \\\\end{equation} brightgreen/6",
|
|
"context exclusive \\\\begin{eqnarray} \\\\end{eqnarray} brightgreen/6",
|
|
"",
|
|
"",
|
|
"###############################################################################",
|
|
"file ..\\*\\\\.([chC]|CC|cxx|cc|cpp|CPP|CXX)$ C/C\\+\\+\\sProgram",
|
|
"context default",
|
|
" keyword whole auto yellow/24",
|
|
" keyword whole break yellow/24",
|
|
" keyword whole case yellow/24",
|
|
" keyword whole char yellow/24",
|
|
" keyword whole const yellow/24",
|
|
" keyword whole continue yellow/24",
|
|
" keyword whole default yellow/24",
|
|
" keyword whole do yellow/24",
|
|
" keyword whole double yellow/24",
|
|
" keyword whole else yellow/24",
|
|
" keyword whole enum yellow/24",
|
|
" keyword whole extern yellow/24",
|
|
" keyword whole float yellow/24",
|
|
" keyword whole for yellow/24",
|
|
" keyword whole goto yellow/24",
|
|
" keyword whole if yellow/24",
|
|
" keyword whole int yellow/24",
|
|
" keyword whole long yellow/24",
|
|
" keyword whole register yellow/24",
|
|
" keyword whole return yellow/24",
|
|
" keyword whole short yellow/24",
|
|
" keyword whole signed yellow/24",
|
|
" keyword whole sizeof yellow/24",
|
|
" keyword whole static yellow/24",
|
|
" keyword whole struct yellow/24",
|
|
" keyword whole switch yellow/24",
|
|
" keyword whole typedef yellow/24",
|
|
" keyword whole union yellow/24",
|
|
" keyword whole unsigned yellow/24",
|
|
" keyword whole void yellow/24",
|
|
" keyword whole volatile yellow/24",
|
|
" keyword whole while yellow/24",
|
|
" keyword whole asm yellow/24",
|
|
" keyword whole catch yellow/24",
|
|
" keyword whole class yellow/24",
|
|
" keyword whole friend yellow/24",
|
|
" keyword whole delete yellow/24",
|
|
" keyword whole inline yellow/24",
|
|
" keyword whole new yellow/24",
|
|
" keyword whole operator yellow/24",
|
|
" keyword whole private yellow/24",
|
|
" keyword whole protected yellow/24",
|
|
" keyword whole public yellow/24",
|
|
" keyword whole this yellow/24",
|
|
" keyword whole throw yellow/24",
|
|
" keyword whole template yellow/24",
|
|
" keyword whole try yellow/24",
|
|
" keyword whole virtual yellow/24",
|
|
" keyword whole bool yellow/24",
|
|
" keyword whole const_cast yellow/24",
|
|
" keyword whole dynamic_cast yellow/24",
|
|
" keyword whole explicit yellow/24",
|
|
" keyword whole false yellow/24",
|
|
" keyword whole mutable yellow/24",
|
|
" keyword whole namespace yellow/24",
|
|
" keyword whole reinterpret_cast yellow/24",
|
|
" keyword whole static_cast yellow/24",
|
|
" keyword whole true yellow/24",
|
|
" keyword whole typeid yellow/24",
|
|
" keyword whole typename yellow/24",
|
|
" keyword whole using yellow/24",
|
|
" keyword whole wchar_t yellow/24",
|
|
" keyword whole ... yellow/24",
|
|
"",
|
|
" keyword /\\* brown/22",
|
|
" keyword \\*/ brown/22",
|
|
"",
|
|
" keyword '\\s' brightgreen/16",
|
|
" keyword '+' brightgreen/16",
|
|
" keyword > yellow/24",
|
|
" keyword < yellow/24",
|
|
" keyword \\+ yellow/24",
|
|
" keyword - yellow/24",
|
|
" keyword \\* yellow/24",
|
|
"# keyword / yellow/24",
|
|
" keyword % yellow/24",
|
|
" keyword = yellow/24",
|
|
" keyword != yellow/24",
|
|
" keyword == yellow/24",
|
|
" keyword { brightcyan/14",
|
|
" keyword } brightcyan/14",
|
|
" keyword ( brightcyan/15",
|
|
" keyword ) brightcyan/15",
|
|
" keyword [ brightcyan/14",
|
|
" keyword ] brightcyan/14",
|
|
" keyword , brightcyan/14",
|
|
" keyword : brightcyan/14",
|
|
" keyword ; brightmagenta/19",
|
|
"context exclusive /\\* \\*/ brown/22",
|
|
"context // \\n brown/22",
|
|
"context linestart # \\n brightred/18",
|
|
" keyword \\\\\\n yellow/24",
|
|
" keyword /\\**\\*/ brown/22",
|
|
" keyword \"+\" red/19",
|
|
" keyword <+> red/19",
|
|
"context \" \" green/6",
|
|
" keyword \\\\\" brightgreen/16",
|
|
" keyword %% brightgreen/16",
|
|
" keyword %\\[#0\\s-\\+,\\]\\[0123456789\\]\\[.\\]\\[0123456789\\]\\[L\\]e brightgreen/16",
|
|
" keyword %\\[#0\\s-\\+,\\]\\[0123456789\\]\\[.\\]\\[0123456789\\]\\[L\\]E brightgreen/16",
|
|
" keyword %\\[#0\\s-\\+,\\]\\[0123456789\\]\\[.\\]\\[0123456789\\]\\[L\\]f brightgreen/16",
|
|
" keyword %\\[#0\\s-\\+,\\]\\[0123456789\\]\\[.\\]\\[0123456789\\]\\[L\\]g brightgreen/16",
|
|
" keyword %\\[#0\\s-\\+,\\]\\[0123456789\\]\\[.\\]\\[0123456789\\]\\[L\\]G brightgreen/16",
|
|
" keyword %\\[0\\s-\\+,\\]\\[0123456789\\]\\[.\\]\\[0123456789\\]\\[hl\\]d brightgreen/16",
|
|
" keyword %\\[0\\s-\\+,\\]\\[0123456789\\]\\[.\\]\\[0123456789\\]\\[hl\\]i brightgreen/16",
|
|
" keyword %\\[#0\\s-\\+,\\]\\[0123456789\\]\\[.\\]\\[0123456789\\]\\[hl\\]o brightgreen/16",
|
|
" keyword %\\[0\\s-\\+,\\]\\[0123456789\\]\\[.\\]\\[0123456789\\]\\[hl\\]u brightgreen/16",
|
|
" keyword %\\[#0\\s-\\+,\\]\\[0123456789\\]\\[.\\]\\[0123456789\\]\\[hl\\]x brightgreen/16",
|
|
" keyword %\\[#0\\s-\\+,\\]\\[0123456789\\]\\[.\\]\\[0123456789\\]\\[hl\\]X brightgreen/16",
|
|
" keyword %\\[hl\\]n brightgreen/16",
|
|
" keyword %\\[.\\]\\[0123456789\\]s brightgreen/16",
|
|
" keyword %[*] brightgreen/16",
|
|
" keyword %c brightgreen/16",
|
|
" keyword \\\\\\\\ brightgreen/16",
|
|
" keyword \\\\' brightgreen/16",
|
|
" keyword \\\\a brightgreen/16",
|
|
" keyword \\\\b brightgreen/16",
|
|
" keyword \\\\t brightgreen/16",
|
|
" keyword \\\\n brightgreen/16",
|
|
" keyword \\\\v brightgreen/16",
|
|
" keyword \\\\f brightgreen/16",
|
|
" keyword \\\\r brightgreen/16",
|
|
" keyword \\\\0 brightgreen/16",
|
|
"",
|
|
"###############################################################################",
|
|
"file .\\*ChangeLog$ GNU\\sDistribution\\sChangeLog\\sFile",
|
|
"",
|
|
"context default",
|
|
" keyword \\s+() brightmagenta/23",
|
|
" keyword \\t+() brightmagenta/23",
|
|
"",
|
|
"context linestart \\t\\* : brightcyan/17",
|
|
"context linestart \\s\\s\\s\\s\\s\\s\\s\\s\\* : brightcyan/17",
|
|
"",
|
|
"context linestart 19+-+\\s \\n yellow/24",
|
|
" keyword <+@+> brightred/19",
|
|
"context linestart 20+-+\\s \\n yellow/24",
|
|
" keyword <+@+> brightred/19",
|
|
"context linestart Mon\\s+\\s+\\s+\\s \\n yellow/24",
|
|
" keyword <+@+> brightred/19",
|
|
"context linestart Tue\\s+\\s+\\s+\\s \\n yellow/24",
|
|
" keyword <+@+> brightred/19",
|
|
"context linestart Wed\\s+\\s+\\s+\\s \\n yellow/24",
|
|
" keyword <+@+> brightred/19",
|
|
"context linestart Thu\\s+\\s+\\s+\\s \\n yellow/24",
|
|
" keyword <+@+> brightred/19",
|
|
"context linestart Fri\\s+\\s+\\s+\\s \\n yellow/24",
|
|
" keyword <+@+> brightred/19",
|
|
"context linestart Sat\\s+\\s+\\s+\\s \\n yellow/24",
|
|
" keyword <+@+> brightred/19",
|
|
"context linestart Sun\\s+\\s+\\s+\\s \\n yellow/24",
|
|
" keyword <+@+> brightred/19",
|
|
"",
|
|
"",
|
|
"###############################################################################",
|
|
"file .\\*Makefile[\\\\\\.a-z]\\*$ Makefile",
|
|
"",
|
|
"context default",
|
|
" keyword $(*) yellow/24",
|
|
" keyword ${*} brightgreen/16",
|
|
" keyword whole linestart include magenta",
|
|
" keyword whole linestart endif magenta",
|
|
" keyword whole linestart ifeq magenta",
|
|
" keyword whole linestart ifneq magenta",
|
|
" keyword whole linestart else magenta",
|
|
" keyword linestart \\t lightgray/13 red",
|
|
" keyword whole .PHONY white/25",
|
|
" keyword whole .NOEXPORT white/25",
|
|
" keyword = white/25",
|
|
" keyword : yellow/24",
|
|
" keyword \\\\\\n yellow/24",
|
|
"# this handles strange cases like @something@@somethingelse@ properly",
|
|
" keyword whole @+@ brightmagenta/23 black/0",
|
|
" keyword @+@ brightmagenta/23 black/0",
|
|
"",
|
|
"context linestart # \\n brown/22",
|
|
" keyword whole @+@ brightmagenta/23 black/0",
|
|
" keyword @+@ brightmagenta/23 black/0",
|
|
"",
|
|
"context exclusive = \\n brightcyan/17",
|
|
" keyword \\\\\\n yellow/24",
|
|
" keyword $(*) yellow/24",
|
|
" keyword ${*} brightgreen/16",
|
|
" keyword linestart \\t lightgray/13 red",
|
|
" keyword whole @+@ brightmagenta/23 black/0",
|
|
" keyword @+@ brightmagenta/23 black/0",
|
|
"",
|
|
"context exclusive linestart \\t \\n",
|
|
" keyword \\\\\\n yellow/24",
|
|
" keyword $(*) yellow/24",
|
|
" keyword ${*} brightgreen/16",
|
|
" keyword linestart \\t lightgray/13 red",
|
|
" keyword whole @+@ brightmagenta/23 black/0",
|
|
" keyword @+@ brightmagenta/23 black/0",
|
|
"",
|
|
"###############################################################################",
|
|
"",
|
|
"file .\\*syntax$ Syntax\\sHighlighting\\sdefinitions",
|
|
"",
|
|
"context default",
|
|
" keyword whole keyw\\ord yellow/24",
|
|
" keyword whole whole\\[\\t\\s\\]l\\inestart brightcyan/17",
|
|
" keyword whole whole\\[\\t\\s\\]l\\inestart brightcyan/17",
|
|
" keyword whole wh\\oleleft\\[\\t\\s\\]l\\inestart brightcyan/17",
|
|
" keyword whole wh\\oleright\\[\\t\\s\\]l\\inestart brightcyan/17",
|
|
" keyword whole l\\inestart\\[\\t\\s\\]wh\\ole",
|
|
" keyword whole l\\inestart\\[\\t\\s\\]wh\\ole",
|
|
" keyword whole l\\inestart\\[\\t\\s\\]wh\\oleleft",
|
|
" keyword whole l\\inestart\\[\\t\\s\\]wh\\oleright",
|
|
" keyword wholeleft whole\\s brightcyan/17",
|
|
" keyword wholeleft whole\\t brightcyan/17",
|
|
" keyword whole wh\\oleleft brightcyan/17",
|
|
" keyword whole wh\\oleright brightcyan/17",
|
|
" keyword whole lin\\[e\\]start brightcyan/17",
|
|
" keyword whole c\\ontext\\[\\t\\s\\]exclusive brightred/18",
|
|
" keyword whole c\\ontext\\[\\t\\s\\]default brightred/18",
|
|
" keyword whole c\\ontext brightred/18",
|
|
" keyword whole wh\\olechars\\[\\t\\s\\]left brightcyan/17",
|
|
" keyword whole wh\\olechars\\[\\t\\s\\]right brightcyan/17",
|
|
" keyword whole wh\\olechars brightcyan/17",
|
|
" keyword whole f\\ile brightgreen/6",
|
|
"",
|
|
" keyword whole 0 lightgray/0 blue/26",
|
|
" keyword whole 1 lightgray/1 blue/26",
|
|
" keyword whole 2 lightgray/2 blue/26",
|
|
" keyword whole 3 lightgray/3 blue/26",
|
|
" keyword whole 4 lightgray/4 blue/26",
|
|
" keyword whole 5 lightgray/5 blue/26",
|
|
" keyword whole 6 lightgray/6",
|
|
" keyword whole 7 lightgray/7",
|
|
" keyword whole 8 lightgray/8",
|
|
" keyword whole 9 lightgray/9",
|
|
" keyword whole 10 lightgray/10",
|
|
" keyword whole 11 lightgray/11",
|
|
" keyword whole 12 lightgray/12",
|
|
" keyword whole 13 lightgray/13",
|
|
" keyword whole 14 lightgray/14",
|
|
" keyword whole 15 lightgray/15",
|
|
" keyword whole 16 lightgray/16",
|
|
" keyword whole 17 lightgray/17",
|
|
" keyword whole 18 lightgray/18",
|
|
" keyword whole 19 lightgray/19",
|
|
" keyword whole 20 lightgray/20",
|
|
" keyword whole 21 lightgray/21",
|
|
" keyword whole 22 lightgray/22",
|
|
" keyword whole 23 lightgray/23",
|
|
" keyword whole 24 lightgray/24",
|
|
" keyword whole 25 lightgray/25",
|
|
" keyword whole 26 lightgray/26",
|
|
"",
|
|
" keyword wholeleft black\\/ black/0",
|
|
" keyword wholeleft red\\/ red/DarkRed",
|
|
" keyword wholeleft green\\/ green/green3",
|
|
" keyword wholeleft brown\\/ brown/saddlebrown",
|
|
" keyword wholeleft blue\\/ blue/blue3",
|
|
" keyword wholeleft magenta\\/ magenta/magenta3",
|
|
" keyword wholeleft cyan\\/ cyan/cyan3",
|
|
" keyword wholeleft lightgray\\/ lightgray/lightgray",
|
|
" keyword wholeleft gray\\/ gray/gray",
|
|
" keyword wholeleft brightred\\/ brightred/red",
|
|
" keyword wholeleft brightgreen\\/ brightgreen/green1",
|
|
" keyword wholeleft yellow\\/ yellow/yellow",
|
|
" keyword wholeleft brightblue\\/ brightblue/blue1",
|
|
" keyword wholeleft brightmagenta\\/ brightmagenta/magenta",
|
|
" keyword wholeleft brightcyan\\/ brightcyan/cyan1",
|
|
" keyword wholeleft white\\/ white/26",
|
|
"",
|
|
"context linestart # \\n brown/22",
|
|
"",
|
|
"file \\.\\* Help\\ssupport\\sother\\sfile\\stypes",
|
|
"context default",
|
|
"file \\.\\* by\\scoding\\srules\\sin\\s~/.cedit/syntax.",
|
|
"context default",
|
|
"file \\.\\* See\\sman/syntax\\sin\\sthe\\ssource\\sdistribution",
|
|
"context default",
|
|
"file \\.\\* and\\sconsult\\sthe\\sman\\spage.",
|
|
"context default",
|
|
"",
|
|
0};
|
|
|
|
|
|
FILE *upgrade_syntax_file (char *syntax_file)
|
|
{
|
|
FILE *f;
|
|
char line[80];
|
|
f = fopen (syntax_file, "r");
|
|
if (!f) {
|
|
char **syntax_line;
|
|
f = fopen (syntax_file, "w");
|
|
if (!f)
|
|
return 0;
|
|
for (syntax_line = syntax_text; *syntax_line; syntax_line++)
|
|
fprintf (f, "%s\n", *syntax_line);
|
|
fclose (f);
|
|
return fopen (syntax_file, "r");
|
|
}
|
|
memset (line, 0, 79);
|
|
fread (line, 80, 1, f);
|
|
if (!strstr (line, "syntax rules version")) {
|
|
goto rename_rule_file;
|
|
} else {
|
|
char *p;
|
|
p = strstr (line, "version") + strlen ("version") + 1;
|
|
if (atoi (p) < atoi (CURRENT_SYNTAX_RULES_VERSION)) {
|
|
char s[1024];
|
|
rename_rule_file:
|
|
strcpy (s, syntax_file);
|
|
strcat (s, ".OLD");
|
|
unlink (s);
|
|
rename (syntax_file, s);
|
|
unlink (syntax_file); /* might rename() fail ? */
|
|
#if defined(MIDNIGHT) || defined(GTK)
|
|
edit_message_dialog (" Load Syntax Rules ", " Your syntax rule file is outdated \n A new rule file is being installed. \n Your old rule file has been saved with a .OLD extension. ");
|
|
#else
|
|
CMessageDialog (0, 20, 20, 0, " Load Syntax Rules ", " Your syntax rule file is outdated \n A new rule file is being installed. \n Your old rule file has been saved with a .OLD extension. ");
|
|
#endif
|
|
return upgrade_syntax_file (syntax_file);
|
|
} else {
|
|
rewind (f);
|
|
return (f);
|
|
}
|
|
}
|
|
return 0; /* not reached */
|
|
}
|
|
|
|
/* returns -1 on file error, line number on error in file syntax */
|
|
static int edit_read_syntax_file (WEdit * edit, char **names, char *syntax_file, char *editor_file, char *first_line, char *type)
|
|
{
|
|
FILE *f;
|
|
regex_t r, r2;
|
|
regmatch_t pmatch[1];
|
|
char *args[1024], *l;
|
|
int line = 0;
|
|
int argc;
|
|
int result = 0;
|
|
int count = 0;
|
|
|
|
f = upgrade_syntax_file (syntax_file);
|
|
if (!f)
|
|
return -1;
|
|
args[0] = 0;
|
|
|
|
for (;;) {
|
|
line++;
|
|
if (!read_one_line (&l, f))
|
|
break;
|
|
get_args (l, args, &argc);
|
|
if (!args[0]) {
|
|
} else if (!strcmp (args[0], "file")) {
|
|
if (!args[1] || !args[2]) {
|
|
result = line;
|
|
break;
|
|
}
|
|
if (regcomp (&r, args[1], REG_EXTENDED)) {
|
|
result = line;
|
|
break;
|
|
}
|
|
if (regcomp (&r2, args[3] ? args[3] : "^nEvEr MaTcH aNyThInG$", REG_EXTENDED)) {
|
|
result = line;
|
|
break;
|
|
}
|
|
if (names) {
|
|
names[count++] = strdup (args[2]);
|
|
names[count] = 0;
|
|
} else if (type) {
|
|
if (!strcmp (type, args[2]))
|
|
goto found_type;
|
|
} else if (editor_file && edit) {
|
|
if (!regexec (&r, editor_file, 1, pmatch, 0) || !regexec (&r2, first_line, 1, pmatch, 0)) {
|
|
int line_error;
|
|
found_type:
|
|
line_error = edit_read_syntax_rules (edit, f);
|
|
if (line_error)
|
|
result = line + line_error;
|
|
else {
|
|
syntax_free (edit->syntax_type);
|
|
edit->syntax_type = strdup (args[2]);
|
|
if (syntax_change_callback)
|
|
#ifdef MIDNIGHT
|
|
(*syntax_change_callback) (&edit->widget);
|
|
#else
|
|
(*syntax_change_callback) (edit->widget);
|
|
#endif
|
|
/* if there are no rules then turn off syntax highlighting for speed */
|
|
if (!edit->rules[1])
|
|
if (!edit->rules[0]->keyword[1])
|
|
edit_free_syntax_rules (edit);
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
free_args (args);
|
|
syntax_free (l);
|
|
}
|
|
free_args (args);
|
|
syntax_free (l);
|
|
|
|
fclose (f);
|
|
|
|
return result;
|
|
}
|
|
|
|
static char *get_first_editor_line (WEdit * edit)
|
|
{
|
|
int i;
|
|
static char s[256];
|
|
s[0] = '\0';
|
|
if (!edit)
|
|
return s;
|
|
for (i = 0; i < 255; i++) {
|
|
s[i] = edit_get_byte (edit, i);
|
|
if (s[i] == '\n') {
|
|
s[i] = '\0';
|
|
break;
|
|
}
|
|
}
|
|
s[255] = '\0';
|
|
return s;
|
|
}
|
|
|
|
/* loads rules into edit struct. one of edit or names must be zero. if
|
|
edit is zero, a list of types will be stored into name. type may be zero
|
|
in which case the type will be selected according to the filename. */
|
|
void edit_load_syntax (WEdit * edit, char **names, char *type)
|
|
{
|
|
int r;
|
|
char *f;
|
|
|
|
edit_free_syntax_rules (edit);
|
|
|
|
#ifdef MIDNIGHT
|
|
if (!SLtt_Use_Ansi_Colors || !use_colors)
|
|
return;
|
|
#endif
|
|
|
|
if (edit) {
|
|
if (!edit->filename)
|
|
return;
|
|
if (!*edit->filename && !type)
|
|
return;
|
|
}
|
|
f = catstrs (home_dir, SYNTAX_FILE, 0);
|
|
r = edit_read_syntax_file (edit, names, f, edit ? edit->filename : 0, get_first_editor_line (edit), type);
|
|
if (r == -1) {
|
|
edit_free_syntax_rules (edit);
|
|
edit_error_dialog (_ (" Load syntax file "), _ (" File access error "));
|
|
return;
|
|
}
|
|
if (r) {
|
|
char s[80];
|
|
edit_free_syntax_rules (edit);
|
|
sprintf (s, _ (" Syntax error in file %s on line %d "), f, r);
|
|
edit_error_dialog (_ (" Load syntax file "), s);
|
|
return;
|
|
}
|
|
}
|
|
|
|
#else
|
|
|
|
int option_syntax_highlighting = 0;
|
|
|
|
void edit_load_syntax (WEdit * edit, char **names, char *type)
|
|
{
|
|
return;
|
|
}
|
|
|
|
void edit_free_syntax_rules (WEdit * edit)
|
|
{
|
|
return;
|
|
}
|
|
|
|
void edit_get_syntax_color (WEdit * edit, long byte_index, int *fg, int *bg)
|
|
{
|
|
*fg = NORMAL_COLOR;
|
|
}
|
|
|
|
#endif /* !defined(MIDNIGHT) || defined(HAVE_SYNTAXH) */
|
|
|