qemacs-commit
[Top][All Lists]
Advanced

[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);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]