[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemacs-commit] qemacs clang.c
From: |
Charlie Gordon |
Subject: |
[Qemacs-commit] qemacs clang.c |
Date: |
Sat, 09 Aug 2014 17:22:00 +0000 |
CVSROOT: /sources/qemacs
Module name: qemacs
Changes by: Charlie Gordon <chqrlie> 14/08/09 17:22:00
Modified files:
. : clang.c
Log message:
extend clang with new variants
* add awk and csl modes based on clang
* select c-mode on #define and #ifndef
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/qemacs/clang.c?cvsroot=qemacs&r1=1.78&r2=1.79
Patches:
Index: clang.c
===================================================================
RCS file: /sources/qemacs/qemacs/clang.c,v
retrieving revision 1.78
retrieving revision 1.79
diff -u -b -r1.78 -r1.79
--- clang.c 8 Jun 2014 10:56:58 -0000 1.78
+++ clang.c 9 Aug 2014 17:21:59 -0000 1.79
@@ -27,6 +27,7 @@
CLANG_CPP,
CLANG_OBJC,
CLANG_CSHARP,
+ CLANG_AWK,
CLANG_CSS,
CLANG_JS,
CLANG_AS,
@@ -49,6 +50,7 @@
CLANG_QSCRIPT,
CLANG_ELASTIC,
CLANG_JED,
+ CLANG_CSL, /* Peter Koch's CSL C Scripting Language */
CLANG_SWIFT,
CLANG_FLAVOR = 0x1F,
};
@@ -430,6 +432,15 @@
"variable|"
};
+static const char csl_keywords[] = {
+ "const|sizeof|try|catch|throw|static|extern|resize|exists|if|else|"
+ "switch|case|default|while|do|break|continue|for|trace|true|false|"
+};
+
+static const char csl_types[] = {
+ "var|"
+};
+
static const char c_extensions[] = {
"c|h|i|C|H|I|" /* C language */
/* Other C flavors */
@@ -1417,8 +1428,10 @@
return 50;
if (p->buf[0] == '#') {
- /* same for file starting with `#include` or `#pragma`*/
+ /* same for files starting with a preprocessor directive */
if (strstart(cs8(p->buf), "#include", NULL)
+ || strstart(cs8(p->buf), "#ifndef", NULL)
+ || strstart(cs8(p->buf), "#define", NULL)
|| strstart(cs8(p->buf), "#pragma", NULL)) {
return 50;
}
@@ -1538,6 +1551,27 @@
.fallback = &c_mode,
};
+static const char awk_keywords[] = {
+ "BEGIN|break|case|continue|default|do|else|for|if|next|switch|while|"
+ "print|printf|split|"
+};
+
+static const char awk_types[] = {
+ "char|double|float|int|long|unsigned|short|signed|void|"
+};
+
+ModeDef awk_mode = {
+ .name = "awk",
+ .extensions = "awk",
+ .colorize_func = c_colorize_line,
+ .colorize_flags = CLANG_AWK | CLANG_REGEX,
+ .keywords = awk_keywords,
+ .types = awk_types,
+ .indent_func = c_indent_line,
+ .auto_indent = 1,
+ .fallback = &c_mode,
+};
+
ModeDef css_mode = {
.name = "CSS",
.extensions = "css",
@@ -1814,6 +1848,19 @@
.fallback = &c_mode,
};
+ModeDef csl_mode = {
+ .name = "CSL",
+ .extensions = "csl",
+ .shell_handlers = "csl",
+ .colorize_func = c_colorize_line,
+ .colorize_flags = CLANG_CSL | CLANG_PREPROC,
+ .keywords = csl_keywords,
+ .types = csl_types,
+ .indent_func = c_indent_line,
+ .auto_indent = 1,
+ .fallback = &c_mode,
+};
+
#include "swift.c"
static int c_init(void)
@@ -1832,6 +1879,7 @@
qe_register_mode(&cpp_mode, MODEF_SYNTAX);
qe_register_mode(&objc_mode, MODEF_SYNTAX);
qe_register_mode(&csharp_mode, MODEF_SYNTAX);
+ qe_register_mode(&awk_mode, MODEF_SYNTAX);
qe_register_mode(&css_mode, MODEF_SYNTAX);
qe_register_mode(&js_mode, MODEF_SYNTAX);
qe_register_mode(&as_mode, MODEF_SYNTAX);
@@ -1854,6 +1902,7 @@
qe_register_mode(&qscript_mode, MODEF_SYNTAX);
qe_register_mode(&ec_mode, MODEF_SYNTAX);
qe_register_mode(&sl_mode, MODEF_SYNTAX);
+ qe_register_mode(&csl_mode, MODEF_SYNTAX);
swift_init();
return 0;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemacs-commit] qemacs clang.c,
Charlie Gordon <=