Skip to content

Commit 9aaf181

Browse files
JSON syntax highlighting and some other highlighting improvements
1 parent 8947c50 commit 9aaf181

File tree

3 files changed

+103
-27
lines changed

3 files changed

+103
-27
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"printableName": "Cache Web Terminal",
66
"description": "Web-based terminal emulator for Caché administering.",
77
"author": "ZitRo",
8-
"version": "4.2.14",
8+
"version": "4.2.15",
99
"gaID": "UA-83005064-2",
1010
"releaseNumber": 26,
1111
"scripts": {

src/client/js/parser/grammar.js

Lines changed: 101 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ rule("cosCommand").split(
333333
.split(
334334
char("}").optWhitespace().id({ CI, value: "catch", class: "keyword" })
335335
.optWhitespace().split(
336-
char("(").id({ class: "variable" }).char(")"),
336+
char("(").optWhitespace().id({ class: "variable" }).optWhitespace().char(")"),
337337
id({ class: "variable" })
338338
).optWhitespace().char("{").branch().optWhitespace().split(
339339
char("}"),
@@ -345,7 +345,7 @@ rule("cosCommand").split(
345345
{ CI, value: "kill", class: "keyword" },
346346
{ CI, value: "k", class: "keyword" }
347347
]).call("postCondition").whitespace().branch().split(
348-
char("(").call("variableListExpression").char(")"),
348+
char("(").optWhitespace().call("variableListExpression").optWhitespace().char(")"),
349349
call("variable")
350350
).optWhitespace().split(
351351
char(",").optWhitespace().merge(), // -> loop to the last branch
@@ -475,13 +475,13 @@ rule("cosCommand").split(
475475
).end();
476476

477477
rule("setExpression").split(
478-
char("(").call("variableListExpression").char(")"),
478+
char("(").optWhitespace().call("variableListExpression").optWhitespace().char(")"),
479479
call("variable")
480480
).optWhitespace().char("=").optWhitespace()
481481
.call("expression").exit().end();
482482

483-
rule("variableListExpression").branch().optWhitespace().call("variable").optWhitespace().split(
484-
char(",").merge(),
483+
rule("variableListExpression").branch().call("variable").optWhitespace().split(
484+
char(",").optWhitespace().merge(),
485485
any()
486486
).exit().end();
487487

@@ -532,7 +532,7 @@ rule("doArgument").split(
532532
char({ value: "%", type: "memberMethod" }),
533533
any()
534534
).id({ type: "memberMethod" }).split(
535-
char("(").call("argumentList").char(")").split(
535+
char("(").optWhitespace().call("argumentList").optWhitespace().char(")").split(
536536
char({ value: ".", type: "*" }).merge(),
537537
any()
538538
),
@@ -541,32 +541,108 @@ rule("doArgument").split(
541541
call("class")
542542
).call("postCondition").exit().end();
543543

544+
rule("jsonValue").split(
545+
char("(").optWhitespace().call("expression").optWhitespace().char(")"),
546+
char({
547+
value: "{",
548+
class: "argument"
549+
}).optWhitespace().split(
550+
char({
551+
value: "}",
552+
class: "argument"
553+
}).exit(),
554+
call("jsonObjectBody").optWhitespace().char({
555+
value: "}",
556+
class: "argument"
557+
})
558+
),
559+
char({
560+
value: "[",
561+
class: "argument"
562+
}).optWhitespace().split(
563+
char({
564+
value: "]",
565+
class: "argument"
566+
}),
567+
call("jsonArrayBody").optWhitespace().char({
568+
value: "]",
569+
class: "argument"
570+
})
571+
),
572+
string(),
573+
constant()
574+
).exit().end();
575+
576+
rule("jsonObjectBody").branch().string().optWhitespace().char(":").optWhitespace().call("jsonValue")
577+
.optWhitespace().split(
578+
char(",").optWhitespace().merge(),
579+
any()
580+
).exit().end();
581+
582+
rule("jsonArrayBody").branch().optWhitespace().call("jsonValue").optWhitespace().split(
583+
char(",").merge(),
584+
any()
585+
).exit().end();
586+
544587
rule("expression").split(
545588
constant(),
546-
char("(").call("expression").char(")"),
589+
char("(").optWhitespace().call("expression").optWhitespace().char(")"),
590+
char({
591+
value: "[",
592+
class: "argument"
593+
}).optWhitespace().split(
594+
char({
595+
value: "]",
596+
class: "argument"
597+
}),
598+
call("jsonArrayBody").optWhitespace().char({
599+
value: "]",
600+
class: "argument"
601+
})
602+
),
603+
char({
604+
value: "{",
605+
class: "argument"
606+
}).optWhitespace().split(
607+
char({
608+
value: "}",
609+
class: "argument"
610+
}),
611+
call("jsonObjectBody").optWhitespace().char({
612+
value: "}",
613+
class: "argument"
614+
})
615+
),
616+
char("-").call("expression"),
547617
char("'").call("expression"),
548618
string(),
549619
tryCall("variable"),
550620
tryCall("class"),
551621
tryCall("function")
552622
).optWhitespace().split(
553623
split(
554-
char("+"),
555-
char("-"),
556-
char("*"),
557-
char("/"),
558-
char("_"),
559-
char("="),
560-
char("'").char(["=", ">", "<"]),
561-
char(["<", ">"]).split(
562-
char("="),
624+
char({ value: "+", class: "special" }),
625+
char({ value: "-", class: "special" }),
626+
char({ value: "*", class: "special" }),
627+
char({ value: "/", class: "special" }),
628+
char({ value: "_", class: "special" }),
629+
char({ value: "=", class: "special" }),
630+
char({ value: "'", class: "special" }).char([
631+
{ value: "=", class: "special" },
632+
{ value: ">", class: "special" },
633+
{ value: "<", class: "special" }
634+
]),
635+
char([{ value: "<", class: "special" }, { value: ">", class: "special" }]).split(
636+
char({ value: "=", class: "special" }),
563637
any()
564638
),
565-
char("&").split(
566-
char("&"),
639+
char({ value: "&", class: "special" }).split(
640+
char({ value: "&", class: "special" }),
567641
any()
568642
),
569-
char("|").char("|")
643+
char({ value: "|", class: "special" }).char({ value: "|", class: "special" }),
644+
char({ value: "[", class: "special" }),
645+
char({ value: "]", class: "special" })
570646
).optWhitespace().call("expression"),
571647
any()
572648
).exit().end();
@@ -581,7 +657,7 @@ rule("variable").split(
581657
char({ value: "%", class: "variable", type: "variable" })
582658
.id({ class: "variable", type: "variable" })
583659
).split(
584-
char("(").call("nonEmptyArgumentList").char(")"),
660+
char("(").optWhitespace().call("nonEmptyArgumentList").optWhitespace().char(")"),
585661
any()
586662
).branch().split(
587663
char({ value: ".", type: "*" }).call("member").merge(),
@@ -596,7 +672,7 @@ rule("globalBody").split(
596672
char({ value: ".", class: "global", type: "global" }).merge(),
597673
any()
598674
).split(
599-
char("(").call("argumentList").char(")"),
675+
char("(").optWhitespace().call("argumentList").optWhitespace().char(")"),
600676
any()
601677
).exit().end();
602678

@@ -605,7 +681,7 @@ rule("member").split(
605681
char({ value: "#", type: "member" }),
606682
any()
607683
).id({ type: "member" }).split(
608-
char("(").call("argumentList").char(")"),
684+
char("(").optWhitespace().call("argumentList").optWhitespace().char(")"),
609685
any()
610686
).exit().end();
611687

@@ -637,7 +713,7 @@ rule("classStatic").split(
637713
char({ value: "%", type: "publicClassMember", class: "keyword" }),
638714
any()
639715
).id({ type: "publicClassMember", class: "keyword" }).split(
640-
char("(").call("argumentList").char(")")
716+
char("(").optWhitespace().call("argumentList").optWhitespace().char(")")
641717
)
642718
).exit().end();
643719

@@ -745,7 +821,7 @@ rule("function").char({ value: "$", class: "keyword" }).split(
745821
char({ value: "$", class: "keyword" }).id({ class: "keyword" }),
746822
any()
747823
).split(
748-
char("(").call("argumentList").char(")"),
824+
char("(").optWhitespace().call("argumentList").optWhitespace().char(")"),
749825
any()
750826
).exit().end();
751827

@@ -831,7 +907,7 @@ rule("SQLClassName").split(
831907

832908
rule("SQLExpression").split(
833909
constant(),
834-
char("(").call("SQLExpression").char(")"),
910+
char("(").optWhitespace().call("SQLExpression").optWhitespace().char(")"),
835911
id({ CI, value: "not", class: "keyword" }).optWhitespace().call("SQLExpression"),
836912
char({ value: "'", class: "string" }).branch().split(
837913
char({ value: "'", class: "string" }),

src/client/scss/graphic.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ a {
132132
}
133133

134134
.g.argument {
135-
color: magenta;
135+
color: #da7cff;
136136
}
137137

138138
.g.error {

0 commit comments

Comments
 (0)