[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: |
Mon, 10 Aug 2015 18:29:49 +0000 |
CVSROOT: /sources/qemacs
Module name: qemacs
Changes by: Charlie Gordon <chqrlie> 15/08/10 18:29:49
Modified files:
. : clang.c
Log message:
added colorizer for C2 language
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/qemacs/clang.c?cvsroot=qemacs&r1=1.92&r2=1.93
Patches:
Index: clang.c
===================================================================
RCS file: /sources/qemacs/qemacs/clang.c,v
retrieving revision 1.92
retrieving revision 1.93
diff -u -b -r1.92 -r1.93
--- clang.c 7 Aug 2015 20:55:40 -0000 1.92
+++ clang.c 10 Aug 2015 18:29:49 -0000 1.93
@@ -25,6 +25,7 @@
enum {
CLANG_C,
CLANG_CPP,
+ CLANG_C2,
CLANG_OBJC,
CLANG_CSHARP,
CLANG_AWK,
@@ -850,6 +851,10 @@
}
break;
case '@':
+ if (flavor == CLANG_C2) {
+ // XXX: should colorize attributes as C_STYLE_PREPROC
+ // @(...)
+ }
if (flavor == CLANG_CSHARP || flavor == CLANG_SQUIRREL) {
if (str[i] == '\"') {
/* Csharp and Squirrel Verbatim strings */
@@ -1646,6 +1651,36 @@
.fallback = &c_mode,
};
+/*---------------- C2 language ----------------*/
+
+static const char c2_keywords[] = {
+ // should remove C keywords:
+ //"extern|static|typedef|long|short|signed|unsigned|"
+ /* new C2 keywords */
+ "module|import|as|public|local|type|func|nil|elemsof|"
+ /* boolean values */
+ "false|true|"
+};
+
+static const char c2_types[] = {
+ "bool|int8|int16|int32|int64|uint8|uint16|uint32|uint64|"
+ "float32|float64|"
+};
+
+ModeDef c2_mode = {
+ .name = "C2",
+ .extensions = "c2|c2h|c2t",
+ .colorize_func = c_colorize_line,
+ .colorize_flags = CLANG_C2 | CLANG_CC,
+ .keywords = c2_keywords,
+ .types = c2_types,
+ .indent_func = c_indent_line,
+ .auto_indent = 1,
+ .fallback = &c_mode,
+};
+
+/*---------------- Objective C ----------------*/
+
static int objc_mode_probe(ModeDef *mode, ModeProbeData *p)
{
if (match_extension(p->filename, mode->extensions)) {
@@ -2135,6 +2170,7 @@
qe_register_mode(&yacc_mode, MODEF_SYNTAX);
qe_register_mode(&lex_mode, MODEF_SYNTAX);
qe_register_mode(&cpp_mode, MODEF_SYNTAX);
+ qe_register_mode(&c2_mode, MODEF_SYNTAX);
qe_register_mode(&objc_mode, MODEF_SYNTAX);
qe_register_mode(&csharp_mode, MODEF_SYNTAX);
qe_register_mode(&awk_mode, MODEF_SYNTAX);