mirror of
https://github.com/node-red/node-red.git
synced 2025-03-01 10:36:34 +00:00
Include jsonata from dependency on build and improve func highlight
This commit is contained in:
40
editor/vendor/jsonata/formatter.js
vendored
40
editor/vendor/jsonata/formatter.js
vendored
@@ -105,5 +105,43 @@
|
||||
}
|
||||
|
||||
jsonata.format = formatExpression;
|
||||
jsonata.functions = ["$sum", "$count", "$max", "$min", "$average", "$string", "$substring", "$substringBefore", "$substringAfter", "$lowercase", "$uppercase", "$length", "$split", "$join", "$number", "$boolean", "$not", "$map", "$reduce", "$keys", "$lookup", "$append", "$exists", "$spread"]
|
||||
jsonata.functions =
|
||||
{
|
||||
'$append':{ args:['array','array'] },
|
||||
'$average':{ args:['value'] },
|
||||
'$boolean':{ args:['value'] },
|
||||
'$count':{ args:['array'] },
|
||||
'$exists':{ args:['value'] },
|
||||
'$join':{ args:['array','separator'] },
|
||||
'$keys':{ args:['object'] },
|
||||
'$length':{ args:['string'] },
|
||||
'$lookup':{ args:['object','key'] },
|
||||
'$lowercase':{ args:['string'] },
|
||||
'$map':{ args:[] },
|
||||
'$max':{ args:['array'] },
|
||||
'$min':{ args:['array'] },
|
||||
'$not':{ args:['value'] },
|
||||
'$number':{ args:['value'] },
|
||||
'$reduce':{ args:[] },
|
||||
'$split':{ args:['string','separator','limit'] },
|
||||
'$spread':{ args:['object'] },
|
||||
'$string':{ args:['value'] },
|
||||
'$substring':{ args:['string','start','length'] },
|
||||
'$substringAfter':{ args:['string','chars'] },
|
||||
'$substringBefore':{ args:['string','chars'] },
|
||||
'$sum':{ args:['array'] },
|
||||
'$uppercase':{ args:['string'] }
|
||||
}
|
||||
jsonata.getFunctionSnippet = function(fn) {
|
||||
var snippetText = "";
|
||||
if (jsonata.functions.hasOwnProperty(fn)) {
|
||||
var def = jsonata.functions[fn];
|
||||
snippetText = "\\"+fn+"(";
|
||||
if (def.args) {
|
||||
snippetText += def.args.map(function(a,i) { return "${"+(i+1)+":"+a+"}"}).join(", ");
|
||||
}
|
||||
snippetText += ")\n"
|
||||
}
|
||||
return snippetText;
|
||||
}
|
||||
})();
|
||||
|
2807
editor/vendor/jsonata/jsonata.js
vendored
2807
editor/vendor/jsonata/jsonata.js
vendored
File diff suppressed because it is too large
Load Diff
17
editor/vendor/jsonata/mode-jsonata.js
vendored
17
editor/vendor/jsonata/mode-jsonata.js
vendored
@@ -6,6 +6,13 @@ define("ace/mode/jsonata",["require","exports","module","ace/lib/oop","ace/mode/
|
||||
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
|
||||
|
||||
var WorkerClient = require("../worker/worker_client").WorkerClient;
|
||||
var jsonataFunctions = Object.keys(jsonata.functions);
|
||||
// sort in length order (long->short) otherwise substringAfter gets matched
|
||||
// as substring etc.
|
||||
jsonataFunctions.sort(function(A,B) {
|
||||
return B.length-A.length;
|
||||
});
|
||||
jsonataFunctions = jsonataFunctions.join("|").replace(/\$/g,"\\$");
|
||||
|
||||
var JSONataHighlightRules = function() {
|
||||
|
||||
@@ -17,11 +24,7 @@ define("ace/mode/jsonata",["require","exports","module","ace/lib/oop","ace/mode/
|
||||
"constant.language.boolean":
|
||||
"true|false",
|
||||
"storage.type":
|
||||
"function",
|
||||
"keyword":
|
||||
"$sum|$count|$max|$min|$average|$string|$substring|$substringBefore|"+
|
||||
"$substringAfter|$lowercase|$uppercase|$length|$split|$join|$number|"+
|
||||
"$boolean|$not|$map|$reduce|$keys|$lookup|$append|$exists|$spread"
|
||||
"function"
|
||||
}, "identifier");
|
||||
this.$rules = {
|
||||
"start" : [
|
||||
@@ -46,6 +49,10 @@ define("ace/mode/jsonata",["require","exports","module","ace/lib/oop","ace/mode/
|
||||
{ token: "keyword",
|
||||
regex: /λ/
|
||||
},
|
||||
{
|
||||
token: "keyword",
|
||||
regex: jsonataFunctions
|
||||
},
|
||||
{
|
||||
token : keywordMapper,
|
||||
regex : "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"
|
||||
|
Reference in New Issue
Block a user