diff --git a/demo/kitchen-sink/docs/ion.ion b/demo/kitchen-sink/docs/ion.ion index f9cc3adfa42..26b94fe7d7c 100644 --- a/demo/kitchen-sink/docs/ion.ion +++ b/demo/kitchen-sink/docs/ion.ion @@ -7,7 +7,7 @@ Comment [1,2,3,45 /*TODO: should be 42, obviously*/, 2016-04-21T08:10:46Z, 2016-04-21T08:10:46-08:00, 2016-04-21, 2016, 0x5, 0b0110] (5 7 1 3 [ 'a', 'b', - null, null.int, null.bool, null.list + null, null.int, null.bool, null.list, true, false, nan, -inf, +inf, "str", @@ -33,7 +33,7 @@ states::{ // https://amzn.github.io/ion-docs/docs/spec.html#string string: rules::[ - match::{ + match :: { regex: "(\\\")((?:\\\\\"|[^\"])*)(\\\")", token: ['string.dblq.punc.start', 'string.dblq', 'string.dblq.punc.end'] }, @@ -41,7 +41,7 @@ states::{ regex: "\'{3}", token: 'string.trpq.punc.start', states: rules::[ - pop::{ + pop :: { regex: "\'{3}", token: 'string.trpq.punc.end', }, @@ -58,7 +58,7 @@ states::{ */ } { - "json": { +"json": { "compatibility": true, "open sourced": "2016-04-21T08:10:46Z", "foo": 9, diff --git a/demo/kitchen-sink/docs/partiql.partiql b/demo/kitchen-sink/docs/partiql.partiql index b73e53065ac..a38956799c7 100644 --- a/demo/kitchen-sink/docs/partiql.partiql +++ b/demo/kitchen-sink/docs/partiql.partiql @@ -3,9 +3,8 @@ line comment */ -SELECT a, b, c FROM stuff s INNER CROSS JOIN @s WHERE f(s) -- comment +SELECT "a", b, c FROM stuff s INNER CROSS JOIN @s WHERE f(s) -- comment -- comment -SELECT "a", b FROM stuff s, @s WHERE f(s) SELECT VALUE {'sensor': s.sensor, 'readings': (SELECT VALUE l.co @@ -30,6 +29,7 @@ FROM `[{'a':1, 'b':1}, {'a':2}, "foo"]` AS x SELECT VALUE {v.a: v.b, v.c: v.d} FROM <<{'a':'same', 'b':1, 'c':'same', 'd':2}>> AS v +WHERE v.b SELECT u.id, feedbackId, commentId, upvoteId FROM users as u, u.feedbacks as feedback at feedbackId @@ -52,9 +52,6 @@ SELECT ( SELECT SUM(AVG(n)) FROM <> AS n -SELECT VALUES v.a -FROM [{'a':1, 'b':true}, {'a':2, 'b':null}, {'a':3}] v -WHERE v.b SELECT attributeId, COUNT(*) as the_count FROM repeating_things diff --git a/lib/ace/mode/_test/tokens_ion.json b/lib/ace/mode/_test/tokens_ion.json index e05b28df58b..336c9956c6b 100644 --- a/lib/ace/mode/_test/tokens_ion.json +++ b/lib/ace/mode/_test/tokens_ion.json @@ -62,10 +62,10 @@ ],[ ["punctuation.definition.list.begin.ion","punctuation.definition.sexp.begin.ion"], ["text.ion"," "], - ["constant.other.symbol.quoted.ion","'a'"], + ["storage.type.symbol.quoted.ion","'a'"], ["punctuation.definition.list.separator.ion",","], ["text.ion"," "], - ["constant.other.symbol.quoted.ion","'b'"], + ["storage.type.symbol.quoted.ion","'b'"], ["punctuation.definition.list.separator.ion",","] ],[ ["punctuation.definition.list.begin.ion","punctuation.definition.sexp.begin.ion"], @@ -163,7 +163,8 @@ "start" ],[ "punctuation.definition.struct.begin.ion", - ["variable.language.annotation.ion","states::"], + ["variable.language.annotation.ion","states"], + ["punctuation.definition.annotation.ion","::"], ["punctuation.definition.struct.begin.ion","{"] ],[ "punctuation.definition.struct.begin.ion", @@ -175,13 +176,15 @@ ["constant.other.symbol.identifier.ion","root"], ["punctuation.definition.struct.separator.ion",":"], ["text.ion"," "], - ["variable.language.annotation.ion","rules::"], + ["variable.language.annotation.ion","rules"], + ["punctuation.definition.annotation.ion","::"], ["punctuation.definition.list.begin.ion","["] ],[ ["punctuation.definition.list.begin.ion","punctuation.definition.struct.begin.ion"], ["text.ion"," "], - ["variable.language.annotation.ion","include::"], - ["constant.other.symbol.quoted.ion","'value'"] + ["variable.language.annotation.ion","include"], + ["punctuation.definition.annotation.ion","::"], + ["storage.type.symbol.quoted.ion","'value'"] ],[ "punctuation.definition.struct.begin.ion", ["text.ion"," "], @@ -199,12 +202,14 @@ ["constant.other.symbol.identifier.ion","string"], ["punctuation.definition.struct.separator.ion",":"], ["text.ion"," "], - ["variable.language.annotation.ion","rules::"], + ["variable.language.annotation.ion","rules"], + ["punctuation.definition.annotation.ion","::"], ["punctuation.definition.list.begin.ion","["] ],[ ["punctuation.definition.struct.begin.ion","punctuation.definition.list.begin.ion","punctuation.definition.list.begin.ion","punctuation.definition.struct.begin.ion"], ["text.ion"," "], - ["variable.language.annotation.ion","match::"], + ["variable.language.annotation.ion","match"], + ["punctuation.definition.annotation.ion","::"], ["punctuation.definition.struct.begin.ion","{"] ],[ ["punctuation.definition.struct.begin.ion","punctuation.definition.list.begin.ion","punctuation.definition.list.begin.ion","punctuation.definition.struct.begin.ion"], @@ -223,13 +228,13 @@ ["punctuation.definition.struct.separator.ion",":"], ["text.ion"," "], ["punctuation.definition.list.begin.ion","["], - ["constant.other.symbol.quoted.ion","'string.dblq.punc.start'"], + ["storage.type.symbol.quoted.ion","'string.dblq.punc.start'"], ["punctuation.definition.list.separator.ion",","], ["text.ion"," "], - ["constant.other.symbol.quoted.ion","'string.dblq'"], + ["storage.type.symbol.quoted.ion","'string.dblq'"], ["punctuation.definition.list.separator.ion",","], ["text.ion"," "], - ["constant.other.symbol.quoted.ion","'string.dblq.punc.end'"], + ["storage.type.symbol.quoted.ion","'string.dblq.punc.end'"], ["punctuation.definition.list.end.ion","]"] ],[ ["punctuation.definition.list.begin.ion","punctuation.definition.struct.begin.ion"], @@ -239,7 +244,8 @@ ],[ ["punctuation.definition.struct.begin.ion","punctuation.definition.list.begin.ion","punctuation.definition.list.begin.ion","punctuation.definition.struct.begin.ion"], ["text.ion"," "], - ["variable.language.annotation.ion","push::"], + ["variable.language.annotation.ion","push"], + ["punctuation.definition.annotation.ion","::"], ["punctuation.definition.struct.begin.ion","{"] ],[ ["punctuation.definition.struct.begin.ion","punctuation.definition.list.begin.ion","punctuation.definition.list.begin.ion","punctuation.definition.struct.begin.ion"], @@ -257,7 +263,7 @@ ["constant.other.symbol.identifier.ion","token"], ["punctuation.definition.struct.separator.ion",":"], ["text.ion"," "], - ["constant.other.symbol.quoted.ion","'string.trpq.punc.start'"], + ["storage.type.symbol.quoted.ion","'string.trpq.punc.start'"], ["punctuation.definition.struct.separator.ion",","] ],[ ["punctuation.definition.list.begin.ion","punctuation.definition.struct.begin.ion","punctuation.definition.struct.begin.ion","punctuation.definition.list.begin.ion","punctuation.definition.list.begin.ion","punctuation.definition.struct.begin.ion"], @@ -265,12 +271,14 @@ ["constant.other.symbol.identifier.ion","states"], ["punctuation.definition.struct.separator.ion",":"], ["text.ion"," "], - ["variable.language.annotation.ion","rules::"], + ["variable.language.annotation.ion","rules"], + ["punctuation.definition.annotation.ion","::"], ["punctuation.definition.list.begin.ion","["] ],[ ["punctuation.definition.struct.begin.ion","punctuation.definition.list.begin.ion","punctuation.definition.list.begin.ion","punctuation.definition.struct.begin.ion","punctuation.definition.struct.begin.ion","punctuation.definition.list.begin.ion","punctuation.definition.list.begin.ion","punctuation.definition.struct.begin.ion"], ["text.ion"," "], - ["variable.language.annotation.ion","pop::"], + ["variable.language.annotation.ion","pop"], + ["punctuation.definition.annotation.ion","::"], ["punctuation.definition.struct.begin.ion","{"] ],[ ["punctuation.definition.struct.begin.ion","punctuation.definition.list.begin.ion","punctuation.definition.list.begin.ion","punctuation.definition.struct.begin.ion","punctuation.definition.struct.begin.ion","punctuation.definition.list.begin.ion","punctuation.definition.list.begin.ion","punctuation.definition.struct.begin.ion"], @@ -288,7 +296,7 @@ ["constant.other.symbol.identifier.ion","token"], ["punctuation.definition.struct.separator.ion",":"], ["text.ion"," "], - ["constant.other.symbol.quoted.ion","'string.trpq.punc.end'"], + ["storage.type.symbol.quoted.ion","'string.trpq.punc.end'"], ["punctuation.definition.struct.separator.ion",","] ],[ ["punctuation.definition.list.begin.ion","punctuation.definition.struct.begin.ion","punctuation.definition.struct.begin.ion","punctuation.definition.list.begin.ion","punctuation.definition.list.begin.ion","punctuation.definition.struct.begin.ion"], @@ -298,7 +306,8 @@ ],[ ["punctuation.definition.struct.begin.ion","punctuation.definition.list.begin.ion","punctuation.definition.list.begin.ion","punctuation.definition.struct.begin.ion","punctuation.definition.struct.begin.ion","punctuation.definition.list.begin.ion","punctuation.definition.list.begin.ion","punctuation.definition.struct.begin.ion"], ["text.ion"," "], - ["variable.language.annotation.ion","match::"], + ["variable.language.annotation.ion","match"], + ["punctuation.definition.annotation.ion","::"], ["punctuation.definition.struct.begin.ion","{"] ],[ ["punctuation.definition.struct.begin.ion","punctuation.definition.list.begin.ion","punctuation.definition.list.begin.ion","punctuation.definition.struct.begin.ion","punctuation.definition.struct.begin.ion","punctuation.definition.list.begin.ion","punctuation.definition.list.begin.ion","punctuation.definition.struct.begin.ion"], @@ -316,7 +325,7 @@ ["constant.other.symbol.identifier.ion","token"], ["punctuation.definition.struct.separator.ion",":"], ["text.ion"," "], - ["constant.other.symbol.quoted.ion","'string.trpq'"] + ["storage.type.symbol.quoted.ion","'string.trpq'"] ],[ ["punctuation.definition.list.begin.ion","punctuation.definition.struct.begin.ion","punctuation.definition.struct.begin.ion","punctuation.definition.list.begin.ion","punctuation.definition.list.begin.ion","punctuation.definition.struct.begin.ion"], ["text.ion"," "], diff --git a/lib/ace/mode/_test/tokens_partiql.json b/lib/ace/mode/_test/tokens_partiql.json index 3a3140532f4..d45ba45d757 100644 --- a/lib/ace/mode/_test/tokens_partiql.json +++ b/lib/ace/mode/_test/tokens_partiql.json @@ -2,10 +2,10 @@ "start", ["comment.line.partiql","-- comment"] ],[ - "comment.block.partiql", + "comment__1", ["comment.block.partiql","/* multi"] ],[ - "comment.block.partiql", + "comment__1", ["comment.block.partiql"," line"] ],[ "start", @@ -76,28 +76,28 @@ ],[ "start" ],[ - "start", + "punctuation.definition.tuple.begin.partiql", ["keyword.other.partiql","SELECT"], ["text.partiql"," "], ["keyword.other.partiql","VALUE"], ["text.partiql"," "], - ["punctuation.partiql","{"], + ["punctuation.definition.tuple.begin.partiql","{"], ["punctuation.definition.string.begin.partiql","'"], ["string.quoted.single.partiql","sensor"], ["punctuation.definition.string.end.partiql","'"], - ["punctuation.partiql",":"], + ["punctuation.definition.tuple.separator.partiql",":"], ["text.partiql"," "], ["variable.language.identifier.partiql","s"], ["punctuation.partiql","."], ["variable.language.identifier.partiql","sensor"], - ["punctuation.partiql",","] + ["punctuation.definition.tuple.separator.partiql",","] ],[ - "start", + "punctuation.definition.tuple.begin.partiql", ["text.partiql"," "], ["punctuation.definition.string.begin.partiql","'"], ["string.quoted.single.partiql","readings"], ["punctuation.definition.string.end.partiql","'"], - ["punctuation.partiql",":"], + ["punctuation.definition.tuple.separator.partiql",":"], ["text.partiql"," "], ["punctuation.partiql","("], ["keyword.other.partiql","SELECT"], @@ -108,7 +108,7 @@ ["punctuation.partiql","."], ["variable.language.identifier.partiql","co"] ],[ - "start", + "punctuation.definition.tuple.begin.partiql", ["text.partiql"," "], ["keyword.other.partiql","FROM"], ["text.partiql"," "], @@ -118,7 +118,7 @@ ["text.partiql"," "], ["variable.language.identifier.partiql","l"] ],[ - "start", + "punctuation.definition.tuple.begin.partiql", ["text.partiql"," "], ["keyword.other.partiql","WHERE"], ["text.partiql"," "], @@ -132,13 +132,13 @@ ["punctuation.partiql","."], ["variable.language.identifier.partiql","sensor"] ],[ - "start", + "punctuation.definition.tuple.begin.partiql", ["text.partiql"," "], ["punctuation.partiql",")"] ],[ "start", ["text.partiql"," "], - ["punctuation.partiql","}"] + ["punctuation.definition.tuple.end.partiql","}"] ],[ "start", ["keyword.other.partiql","FROM"], @@ -217,33 +217,36 @@ "start", ["keyword.other.partiql","FROM"], ["text.partiql"," "], - ["punctuation.partiql","[{"], + ["punctuation.definition.array.begin.partiql","["], + ["punctuation.definition.tuple.begin.partiql","{"], ["punctuation.definition.string.begin.partiql","'"], ["string.quoted.single.partiql","a"], ["punctuation.definition.string.end.partiql","'"], - ["punctuation.partiql",":"], + ["punctuation.definition.tuple.separator.partiql",":"], ["constant.numeric.partiql","1"], - ["punctuation.partiql",","], + ["punctuation.definition.tuple.separator.partiql",","], ["text.partiql"," "], ["punctuation.definition.string.begin.partiql","'"], ["string.quoted.single.partiql","b"], ["punctuation.definition.string.end.partiql","'"], - ["punctuation.partiql",":"], + ["punctuation.definition.tuple.separator.partiql",":"], ["constant.numeric.partiql","1"], - ["punctuation.partiql","},"], + ["punctuation.definition.tuple.end.partiql","}"], + ["punctuation.definition.array.separator.partiql",","], ["text.partiql"," "], - ["punctuation.partiql","{"], + ["punctuation.definition.tuple.begin.partiql","{"], ["punctuation.definition.string.begin.partiql","'"], ["string.quoted.single.partiql","a"], ["punctuation.definition.string.end.partiql","'"], - ["punctuation.partiql",":"], + ["punctuation.definition.tuple.separator.partiql",":"], ["constant.numeric.partiql","2"], - ["punctuation.partiql","},"], + ["punctuation.definition.tuple.end.partiql","}"], + ["punctuation.definition.array.separator.partiql",","], ["text.partiql"," "], ["punctuation.definition.string.begin.partiql","'"], ["string.quoted.single.partiql","foo"], ["punctuation.definition.string.end.partiql","'"], - ["punctuation.partiql","]"], + ["punctuation.definition.array.end.partiql","]"], ["text.partiql"," "], ["keyword.other.partiql","AS"], ["text.partiql"," "], @@ -267,19 +270,19 @@ ["punctuation.definition.ion.begin.partiql","`"], ["punctuation.definition.list.begin.ion","["], ["punctuation.definition.struct.begin.ion","{"], - ["constant.other.symbol.quoted.ion","'a'"], + ["storage.type.symbol.quoted.ion","'a'"], ["punctuation.definition.struct.separator.ion",":"], ["constant.numeric.integer.ion","1"], ["punctuation.definition.struct.separator.ion",","], ["text.ion"," "], - ["constant.other.symbol.quoted.ion","'b'"], + ["storage.type.symbol.quoted.ion","'b'"], ["punctuation.definition.struct.separator.ion",":"], ["constant.numeric.integer.ion","1"], ["punctuation.definition.struct.end.ion","}"], ["punctuation.definition.list.separator.ion",","], ["text.ion"," "], ["punctuation.definition.struct.begin.ion","{"], - ["constant.other.symbol.quoted.ion","'a'"], + ["storage.type.symbol.quoted.ion","'a'"], ["punctuation.definition.struct.separator.ion",":"], ["constant.numeric.integer.ion","2"], ["punctuation.definition.struct.end.ion","}"], @@ -289,7 +292,7 @@ ["string.quoted.double.ion","foo"], ["punctuation.definition.string.end.ion","\""], ["punctuation.definition.list.end.ion","]"], - ["punctuation.definition.ion.begin.partiql","`"], + ["punctuation.definition.ion.end.partiql","`"], ["text.partiql"," "], ["keyword.other.partiql","AS"], ["text.partiql"," "], @@ -302,64 +305,64 @@ ["text.partiql"," "], ["keyword.other.partiql","VALUE"], ["text.partiql"," "], - ["punctuation.partiql","{"], + ["punctuation.definition.tuple.begin.partiql","{"], ["variable.language.identifier.partiql","v"], ["punctuation.partiql","."], ["variable.language.identifier.partiql","a"], - ["punctuation.partiql",":"], + ["punctuation.definition.tuple.separator.partiql",":"], ["text.partiql"," "], ["variable.language.identifier.partiql","v"], ["punctuation.partiql","."], ["variable.language.identifier.partiql","b"], - ["punctuation.partiql",","], + ["punctuation.definition.tuple.separator.partiql",","], ["text.partiql"," "], ["variable.language.identifier.partiql","v"], ["punctuation.partiql","."], ["variable.language.identifier.partiql","c"], - ["punctuation.partiql",":"], + ["punctuation.definition.tuple.separator.partiql",":"], ["text.partiql"," "], ["variable.language.identifier.partiql","v"], ["punctuation.partiql","."], ["variable.language.identifier.partiql","d"], - ["punctuation.partiql","}"] + ["punctuation.definition.tuple.end.partiql","}"] ],[ "start", ["keyword.other.partiql","FROM"], ["text.partiql"," "], - ["keyword.operator.partiql","<<"], - ["punctuation.partiql","{"], + ["punctuation.definition.bag.begin.partiql","<<"], + ["punctuation.definition.tuple.begin.partiql","{"], ["punctuation.definition.string.begin.partiql","'"], ["string.quoted.single.partiql","a"], ["punctuation.definition.string.end.partiql","'"], - ["punctuation.partiql",":"], + ["punctuation.definition.tuple.separator.partiql",":"], ["punctuation.definition.string.begin.partiql","'"], ["string.quoted.single.partiql","same"], ["punctuation.definition.string.end.partiql","'"], - ["punctuation.partiql",","], + ["punctuation.definition.tuple.separator.partiql",","], ["text.partiql"," "], ["punctuation.definition.string.begin.partiql","'"], ["string.quoted.single.partiql","b"], ["punctuation.definition.string.end.partiql","'"], - ["punctuation.partiql",":"], + ["punctuation.definition.tuple.separator.partiql",":"], ["constant.numeric.partiql","1"], - ["punctuation.partiql",","], + ["punctuation.definition.tuple.separator.partiql",","], ["text.partiql"," "], ["punctuation.definition.string.begin.partiql","'"], ["string.quoted.single.partiql","c"], ["punctuation.definition.string.end.partiql","'"], - ["punctuation.partiql",":"], + ["punctuation.definition.tuple.separator.partiql",":"], ["punctuation.definition.string.begin.partiql","'"], ["string.quoted.single.partiql","same"], ["punctuation.definition.string.end.partiql","'"], - ["punctuation.partiql",","], + ["punctuation.definition.tuple.separator.partiql",","], ["text.partiql"," "], ["punctuation.definition.string.begin.partiql","'"], ["string.quoted.single.partiql","d"], ["punctuation.definition.string.end.partiql","'"], - ["punctuation.partiql",":"], + ["punctuation.definition.tuple.separator.partiql",":"], ["constant.numeric.partiql","2"], - ["punctuation.partiql","}"], - ["keyword.operator.partiql",">>"], + ["punctuation.definition.tuple.end.partiql","}"], + ["punctuation.definition.bag.end.partiql",">>"], ["text.partiql"," "], ["keyword.other.partiql","AS"], ["text.partiql"," "], @@ -610,12 +613,12 @@ ["text.partiql"," "], ["keyword.other.partiql","FROM"], ["text.partiql"," "], - ["keyword.operator.partiql","<<"], + ["punctuation.definition.bag.begin.partiql","<<"], ["variable.language.identifier.partiql","numbers"], - ["punctuation.partiql",","], + ["punctuation.definition.bag.separator.partiql",","], ["text.partiql"," "], ["variable.language.identifier.partiql","numbers"], - ["keyword.operator.partiql",">>"], + ["punctuation.definition.bag.end.partiql",">>"], ["text.partiql"," "], ["keyword.other.partiql","AS"], ["text.partiql"," "], @@ -635,43 +638,47 @@ "start", ["keyword.other.partiql","FROM"], ["text.partiql"," "], - ["punctuation.partiql","[{"], + ["punctuation.definition.array.begin.partiql","["], + ["punctuation.definition.tuple.begin.partiql","{"], ["punctuation.definition.string.begin.partiql","'"], ["string.quoted.single.partiql","a"], ["punctuation.definition.string.end.partiql","'"], - ["punctuation.partiql",":"], + ["punctuation.definition.tuple.separator.partiql",":"], ["constant.numeric.partiql","1"], - ["punctuation.partiql",","], + ["punctuation.definition.tuple.separator.partiql",","], ["text.partiql"," "], ["punctuation.definition.string.begin.partiql","'"], ["string.quoted.single.partiql","b"], ["punctuation.definition.string.end.partiql","'"], - ["punctuation.partiql",":"], + ["punctuation.definition.tuple.separator.partiql",":"], ["constant.language.partiql","true"], - ["punctuation.partiql","},"], + ["punctuation.definition.tuple.end.partiql","}"], + ["punctuation.definition.array.separator.partiql",","], ["text.partiql"," "], - ["punctuation.partiql","{"], + ["punctuation.definition.tuple.begin.partiql","{"], ["punctuation.definition.string.begin.partiql","'"], ["string.quoted.single.partiql","a"], ["punctuation.definition.string.end.partiql","'"], - ["punctuation.partiql",":"], + ["punctuation.definition.tuple.separator.partiql",":"], ["constant.numeric.partiql","2"], - ["punctuation.partiql",","], + ["punctuation.definition.tuple.separator.partiql",","], ["text.partiql"," "], ["punctuation.definition.string.begin.partiql","'"], ["string.quoted.single.partiql","b"], ["punctuation.definition.string.end.partiql","'"], - ["punctuation.partiql",":"], + ["punctuation.definition.tuple.separator.partiql",":"], ["constant.language.partiql","null"], - ["punctuation.partiql","},"], + ["punctuation.definition.tuple.end.partiql","}"], + ["punctuation.definition.array.separator.partiql",","], ["text.partiql"," "], - ["punctuation.partiql","{"], + ["punctuation.definition.tuple.begin.partiql","{"], ["punctuation.definition.string.begin.partiql","'"], ["string.quoted.single.partiql","a"], ["punctuation.definition.string.end.partiql","'"], - ["punctuation.partiql",":"], + ["punctuation.definition.tuple.separator.partiql",":"], ["constant.numeric.partiql","3"], - ["punctuation.partiql","}]"], + ["punctuation.definition.tuple.end.partiql","}"], + ["punctuation.definition.array.end.partiql","]"], ["text.partiql"," "], ["variable.language.identifier.partiql","v"] ],[ diff --git a/lib/ace/mode/ion_highlight_rules.js b/lib/ace/mode/ion_highlight_rules.js index 79a567b60f8..e7271fec3d2 100644 --- a/lib/ace/mode/ion_highlight_rules.js +++ b/lib/ace/mode/ion_highlight_rules.js @@ -123,8 +123,8 @@ define(function(require, exports, module) { "include": "value" }, { - "token": "punctuation.definition.symbol.operator.ion", - "regex": "[\\!\\#\\%\\&\\*\\+\\-\\./\\;\\<\\=\\>\\?\\@\\^\\`\\|\\~]" + "token": "storage.type.symbol.operator.ion", + "regex": "[\\!\\#\\%\\&\\*\\+\\-\\./\\;\\<\\=\\>\\?\\@\\^\\`\\|\\~]+" } ] } @@ -140,12 +140,16 @@ define(function(require, exports, module) { "push": [ { "token": "comment.block.ion", - "regex": "\\*/", + "regex": "[*]/", "next": "pop" }, { "token": "comment.block.ion", - "regex": "(:?.|[^\\*]+)" + "regex": "[^*/]+" + }, + { + "token": "comment.block.ion", + "regex": "[*/]+" } ] } @@ -218,11 +222,11 @@ define(function(require, exports, module) { ], "symbol": [ { - "token": "constant.other.symbol.quoted.ion", + "token": "storage.type.symbol.quoted.ion", "regex": "(['])((?:(?:\\\\')|(?:[^']))*?)(['])" }, { - "token": "constant.other.symbol.identifier.ion", + "token": "storage.type.symbol.identifier.ion", "regex": "[\\$_a-zA-Z][\\$_a-zA-Z0-9]*" } ], @@ -280,19 +284,29 @@ define(function(require, exports, module) { }, { "token": "string.quoted.triple.ion", - "regex": "(?:\\\\'*|.|[^']+)" + "regex": "(?:\\\\'|[^'])+" + }, + { + "token": "string.quoted.triple.ion", + "regex": "'" } ] } ], "annotation": [ { - "token": "variable.language.annotation.ion", - "regex": "'(?:[^']|\\\\\\\\|\\\\')*'\\s*::" + "token": [ + "variable.language.annotation.ion", + "punctuation.definition.annotation.ion" + ], + "regex": "('(?:[^']|\\\\\\\\|\\\\')*')\\s*(::)" }, { - "token": "variable.language.annotation.ion", - "regex": "[\\$_a-zA-Z][\\$_a-zA-Z0-9]*::" + "token": [ + "variable.language.annotation.ion", + "punctuation.definition.annotation.ion" + ], + "regex": "([\\$_a-zA-Z][\\$_a-zA-Z0-9]*)\\s*(::)" } ], "whitespace": [ diff --git a/lib/ace/mode/partiql.js b/lib/ace/mode/partiql.js index 6a198c98ccd..f9f2188ccb7 100644 --- a/lib/ace/mode/partiql.js +++ b/lib/ace/mode/partiql.js @@ -53,7 +53,7 @@ define(function(require, exports, module) { (function() { this.lineCommentStart = "--"; - this.blockComment = {start: "/*", end: "*/"}; + this.blockComment = {start: "/*", end: "*/", nestable:true}; this.getNextLineIndent = function(state, line, tab) { var indent = this.$getIndent(line); diff --git a/lib/ace/mode/partiql_highlight_rules.js b/lib/ace/mode/partiql_highlight_rules.js index 60bd1f7280d..2d0a9d63fb5 100644 --- a/lib/ace/mode/partiql_highlight_rules.js +++ b/lib/ace/mode/partiql_highlight_rules.js @@ -126,14 +126,79 @@ define(function(require, exports, module) { { "include": "comment" }, + { + "include": "tuple_value" + }, + { + "include": "collection_value" + }, { "include": "scalar_value" + } + ], + "scalar_value": [ + { + "include": "string" }, { - "include": "tuple_value" + "include": "number" }, { - "include": "collection_value" + "include": "keywords" + }, + { + "include": "identifier" + }, + { + "include": "embed-ion" + }, + { + "include": "operator" + }, + { + "include": "punctuation" + } + ], + "punctuation": [ + { + "token": "punctuation.partiql", + "regex": "[;:()\\[\\]\\{\\},.]" + } + ], + "operator": [ + { + "token": "keyword.operator.partiql", + "regex": "[+*/<>=~!@#%&|?^-]+" + } + ], + "identifier": [ + { + "token": "variable.language.identifier.quoted.partiql", + "regex": "([\"])((?:(?:\\\\.)|(?:[^\"\\\\]))*?)([\"])" + }, + { + "token": "variable.language.identifier.at.partiql", + "regex": "@\\w+" + }, + { + "token": "variable.language.identifier.partiql", + "regex": "\\b\\w+(?:\\.\\w+)?\\b" + } + ], + "number": [ + { + "token": "constant.numeric.partiql", + "regex": "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + } + ], + "string": [ + { + "token": [ + "punctuation.definition.string.begin.partiql", + "string.quoted.single.partiql", + "punctuation.definition.string.end.partiql" + ], + "regex": "(['])((?:(?:\\\\.)|(?:[^'\\\\]))*?)(['])" } ], "collection_value": [ @@ -157,12 +222,12 @@ define(function(require, exports, module) { { "include": "comment" }, - { - "include": "value" - }, { "token": "punctuation.definition.bag.separator.partiql", "regex": "," + }, + { + "include": "value" } ] } @@ -175,17 +240,27 @@ define(function(require, exports, module) { { "token": "comment.block.partiql", "regex": "/\\*", - "push": [ - { - "token": "comment.block.partiql", - "regex": "\\*/", - "next": "pop" - }, - { - "token": "comment.block.partiql", - "regex": "(:?.|[^\\*]+)" - } - ] + "push": "comment__1" + } + ], + "comment__1": [ + { + "token": "comment.block.partiql", + "regex": "[*]/", + "next": "pop" + }, + { + "token": "comment.block.partiql", + "regex": "[^*/]+" + }, + { + "token": "comment.block.partiql", + "regex": "/\\*", + "push": "comment__1" + }, + { + "token": "comment.block.partiql", + "regex": "[*/]+" } ], "array_value": [ @@ -201,12 +276,12 @@ define(function(require, exports, module) { { "include": "comment" }, - { - "include": "value" - }, { "token": "punctuation.definition.array.separator.partiql", "regex": "," + }, + { + "include": "value" } ] } @@ -224,81 +299,16 @@ define(function(require, exports, module) { { "include": "comment" }, - { - "include": "value" - }, { "token": "punctuation.definition.tuple.separator.partiql", "regex": ",|:" + }, + { + "include": "value" } ] } ], - "scalar_value": [ - { - "include": "string" - }, - { - "include": "number" - }, - { - "include": "keywords" - }, - { - "include": "identifier" - }, - { - "include": "embed-ion" - }, - { - "include": "operator" - }, - { - "include": "punctuation" - } - ], - "punctuation": [ - { - "token": "punctuation.partiql", - "regex": "[;:()\\[\\]\\{\\},.]" - } - ], - "operator": [ - { - "token": "keyword.operator.partiql", - "regex": "[+*/<>=~!@#%&|?^-]" - } - ], - "identifier": [ - { - "token": "variable.language.identifier.quoted.partiql", - "regex": "([\"])((?:(?:\\\\.)|(?:[^\"\\\\]))*?)([\"])" - }, - { - "token": "variable.language.identifier.at.partiql", - "regex": "@\\w+" - }, - { - "token": "variable.language.identifier.partiql", - "regex": "\\b\\w+(?:\\.\\w+)?\\b" - } - ], - "number": [ - { - "token": "constant.numeric.partiql", - "regex": "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" - } - ], - "string": [ - { - "token": [ - "punctuation.definition.string.begin.partiql", - "string.quoted.single.partiql", - "punctuation.definition.string.end.partiql" - ], - "regex": "(['])((?:(?:\\\\.)|(?:[^'\\\\]))*?)(['])" - } - ], "whitespace": [ { "token": "text.partiql", @@ -309,7 +319,7 @@ define(function(require, exports, module) { this.$rules["keywords"] = [keywordMapperRule]; this.$rules["embed-ion"] = [{token : "punctuation.definition.ion.begin.partiql", regex : "`", next : "ion-start"}]; - this.embedRules(IonHighlightRules, "ion-", [{token : "punctuation.definition.ion.begin.partiql", regex : "`", next : "start"}]); + this.embedRules(IonHighlightRules, "ion-", [{token : "punctuation.definition.ion.end.partiql", regex : "`", next : "start"}]); this.normalizeRules(); };