[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, 08 Jun 2015 07:30:12 +0000 |
CVSROOT: /sources/qemacs
Module name: qemacs
Changes by: Charlie Gordon <chqrlie> 15/06/08 07:30:11
Modified files:
. : clang.c
Log message:
added json specific syntax with content based auto-detection
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/qemacs/clang.c?cvsroot=qemacs&r1=1.83&r2=1.84
Patches:
Index: clang.c
===================================================================
RCS file: /sources/qemacs/qemacs/clang.c,v
retrieving revision 1.83
retrieving revision 1.84
diff -u -b -r1.83 -r1.84
--- clang.c 14 May 2015 07:21:36 -0000 1.83
+++ clang.c 8 Jun 2015 07:30:00 -0000 1.84
@@ -29,6 +29,7 @@
CLANG_CSHARP,
CLANG_AWK,
CLANG_CSS,
+ CLANG_JSON,
CLANG_JS,
CLANG_AS,
CLANG_JAVA,
@@ -1635,9 +1636,38 @@
.fallback = &c_mode,
};
+static int json_mode_probe(ModeDef *mode, ModeProbeData *pd)
+{
+ const char *p = cs8(pd->buf);
+
+ if (match_extension(pd->filename, mode->extensions))
+ return 80;
+
+ if (*p == '{' && p[1] == '\n') {
+ while (qe_isspace((unsigned char)*++p))
+ continue;
+ if (*p == '\"')
+ return 50;
+ }
+ return 1;
+}
+
+ModeDef json_mode = {
+ .name = "json",
+ .extensions = "json",
+ .mode_probe = json_mode_probe,
+ .colorize_func = c_colorize_line,
+ .colorize_flags = CLANG_JSON,
+ .keywords = js_keywords,
+ .types = js_types,
+ .indent_func = c_indent_line,
+ .auto_indent = 1,
+ .fallback = &c_mode,
+};
+
ModeDef js_mode = {
.name = "Javascript",
- .extensions = "js|json",
+ .extensions = "js",
.colorize_func = c_colorize_line,
.colorize_flags = CLANG_JS | CLANG_REGEX,
.keywords = js_keywords,
@@ -2011,6 +2041,7 @@
qe_register_mode(&csharp_mode, MODEF_SYNTAX);
qe_register_mode(&awk_mode, MODEF_SYNTAX);
qe_register_mode(&css_mode, MODEF_SYNTAX);
+ qe_register_mode(&json_mode, MODEF_SYNTAX);
qe_register_mode(&js_mode, MODEF_SYNTAX);
qe_register_mode(&as_mode, MODEF_SYNTAX);
qe_register_mode(&java_mode, MODEF_SYNTAX);
- [Qemacs-commit] qemacs clang.c,
Charlie Gordon <=