@senx/warpview-editor
Version:
WarpView Editor Elements
256 lines (255 loc) • 11.9 kB
JSON
{
"macro": {
"prefix": "macro (example)",
"body": [
"info = {",
" 'name': '${1:euclideanDivision}',",
" 'desc': ",
"'",
"${2:This macro returns the quotient and the remainder of a/b.}",
"',",
" 'sig': [ [ [ ${3:'a:LONG', 'b:LONG'} ], [ ${4:'q:LONG', 'r:LONG'} ] ] ], // Signature",
" 'params': {",
" // Signature params description",
" ${5:'b': 'second parameter',",
" 'a': 'first parameter',",
" 'q': 'the quotient of a/b, first result',",
" 'r': 'the remainder of a/b, second result'}",
" },",
" 'examples': [",
"\"",
"${6:(q, r) = @mymacros/euclideanDivision(10 3);",
"return 'quotient is :' + TOSTRING(q),",
" 'remainder is :' + TOSTRING(r)",
"}",
"\"",
" ]",
"};",
"",
"macro = ${7:(a, b) -> {",
" INFO(info!)",
" TRY(() => {",
" // Set your output variables",
" q = TOLONG(a / b)",
" r = a % b",
" \\},",
" () => { // catch any exception",
" RETHROW()",
" \\},",
" () => { // finally",
" \\})",
" // return your output variables",
" return q, r",
"\\}}",
"",
"// Unit tests",
"${8:(q, r) = @macro(10, 3)",
"ASSERT(q == 3)",
"ASSERT(r == 1)",
"ASSERT(TYPEOF(q) == \"LONG\")",
"ASSERT(TYPEOF(r) == \"LONG\")",
"}",
"return macro"
],
"description": "Macro"
},
"macro(empty)": {
"prefix": "macro (empty)",
"body": [
"info = {",
" 'name': '${1: }',",
" 'desc': ",
"\"",
"${2: }",
"\",",
" 'sig': [ [ [ ], [ ] ] ], // Signature",
" 'params': {",
" // Signature params description",
" },",
" 'examples': [",
"\"",
" ",
"\"",
" ]",
"}",
"",
"macro = () -> {",
" INFO(info!)",
" TRY(() => {",
" // Code of the actual macro, set output variables",
" ${3: }",
" },",
" () -> { // catch any exception",
" RETHROW()",
" },",
" () => { // finally",
" });",
" // return your output variables",
" // return ...",
"}",
"",
"// Unit tests",
"",
"return macro"
],
"description": "Macro"
},
"fetch": {
"prefix": "fetch",
"body": [
"gts = FETCH([ 'TOKEN', 'className', { 'label0': '=value0', 'label1': '~val.' }, start, timespan ])"
]
},
"bucketize": {
"prefix": "bucketize",
"body": [
"bucketizedGts = BUCKETIZE([ ${1:gts}, ${2|MACROBUCKETIZER((data) -> { return [tick\\, latitude\\, longitude\\, elevation\\, value]; }),bucketizer.and(),bucketizer.count(),bucketizer.count().exclude-nulls(),bucketizer.count.include-nulls(),bucketizer.count.nonnull(),bucketizer.first(),bucketizer.join(','),bucketizer.join.forbid-nulls(),bucketizer.last(),bucketizer.max(),bucketizer.max.forbid-nulls(),bucketizer.mean(),bucketizer.mean.circular(),bucketizer.mean.circular.exclude-nulls(),bucketizer.mean.exclude-nulls(),bucketizer.median(),bucketizer.min(),bucketizer.min.forbid-nulls(),bucketizer.or(),bucketizer.sum(),bucketizer.sum.forbid-nulls()|}, ${3:lastbucket}, ${4:bucketspan}, ${5:bucketcount} ])"
]
},
"filter": {
"prefix": "filter",
"body": [
"filtredGts = FILTER([ ${1:gts}, [${2:labels}], ${3|MACROFILTER((data) -> { return gtslist\\, labels_equivalence_class_map; }),filter.byattr({}),filter.byclass(''),filter.bylabels({}),filter.bylabelsattr({}),filter.bymetadata([]),filter.last.eq(filterValue),filter.last.ge(filterValue),filter.last.gt(filterValue),filter.last.le(filterValue),filter.last.lt(filterValue),filter.last.ne(filterValue),filter.latencies(minLatency\\, maxLatency\\, [])|} ]"
]
},
"map": {
"prefix": "map",
"body": [
"mappedGts = MAP([ ${1:gts}, ${2|MACROMAPPER((data) -> { return [tick\\, latitude\\, longitude\\, elevation\\, value]; }),mapper.abs(),mapper.add(constant),mapper.and(),mapper.ceil(),mapper.count(),mapper.count.exclude-nulls(),mapper.count.include-nulls(),mapper.count.nonnull(),mapper.day(timezone\\|offset),mapper.delta(),mapper.dotproduct([]),mapper.dotproduct.positive([]),mapper.dotproduct.sigmoid([]),mapper.dotproduct.tanh([]),mapper.eq(constant),mapper.exp(constant),mapper.finite(),mapper.first(),mapper.floor(),mapper.ge(threshold),mapper.geo.approximate(resolution),mapper.geo.clear(),mapper.geo.outside(geoZone),mapper.geo.within(geoZone),mapper.gt(threshold),mapper.hdist(),mapper.highest(),mapper.hour(timezone\\|offset),mapper.hspeed(),mapper.join(','),mapper.join.forbid-nulls(','),mapper.kernel.cosine(bandwidth\\, step),mapper.kernel.epanechnikov(bandwidth\\, step),mapper.kernel.gaussian(bandwidth\\, step),mapper.kernel.logistic(bandwidth\\, step),mapper.kernel.quartic(bandwidth\\, step),mapper.kernel.silverman(bandwidth\\, step),mapper.kernel.triangular(bandwidth\\, step),mapper.kernel.tricube(bandwidth\\, step),mapper.kernel.triweight(bandwidth\\, step),mapper.kernel.uniform(bandwidth\\, step),mapper.last(),mapper.le(threshold),mapper.log(constant),mapper.lowest(),mapper.lt(threshold),mapper.mad(),mapper.max(),mapper.max.forbid-nulls(),mapper.max.x(),mapper.mean(),mapper.mean.circular(),mapper.mean.circular.exclude-nulls(),mapper.mean.exclude-nulls(),mapper.median(),mapper.min(),mapper.min.forbid-nulls(),mapper.min.x(),mapper.minute(timezone\\|offset),mapper.mod(modulus),mapper.month(timezone\\|offset),mapper.mul(constant),mapper.ne(constant),mapper.npdf(mu\\, sigma),mapper.or(),mapper.parsedouble(),mapper.percentile(percentile),mapper.pow(constant),mapper.product(),mapper.rate(),mapper.replace(constant),mapper.round(),mapper.sd(bessel),mapper.sd.forbid-nulls(bessel),mapper.second(timezone\\|offset),mapper.sigmoid(),mapper.sqrt(),mapper.sum(),mapper.sum.forbid-nulls(),mapper.tanh(),mapper.tick(),mapper.toboolean(),mapper.todouble(),mapper.tolong(),mapper.tostring(),mapper.truecourse(),mapper.var(bessel),mapper.var.forbid-nulls(bessel),mapper.vdist(),mapper.vspeed(),mapper.weekday(timezone\\|offset),mapper.year(timezone\\|offset),max.tick.sliding.window(),max.time.sliding.window()|}, ${3:pre}, ${4:post}, ${5:occurrences} ])"
]
},
"reduce": {
"prefix": "reduce",
"body": [
"reducedGts = REDUCE([ ${1:gts}, [${2:labels}], ${3|MACROREDUCER((data) -> { return [tick\\, latitude\\, longitude\\, elevation\\, value]; }),reducer.and(),reducer.and.exclude-nulls(),reducer.argmax(),reducer.argmin(),reducer.count(),reducer.count.exclude-nulls(),reducer.count.include-nulls(),reducer.count.nonnull(),reducer.join(),reducer.join.forbid-nulls(),reducer.join.nonnull(),reducer.join.urlencoded(),reducer.max(),reducer.max.forbid-nulls(),reducer.max.nonnull(),reducer.mean(),reducer.mean.circular(),reducer.mean.circular.exclude-nulls(),reducer.mean.exclude-nulls(),reducer.median(),reducer.min(),reducer.min.forbid-nulls(),reducer.min.nonnull(),reducer.or(),reducer.or.exclude-nulls(),reducer.sd(),reducer.sd.forbid-nulls(),reducer.shannonentropy.0(),reducer.shannonentropy.1(),reducer.sum(),reducer.sum.forbid-nulls(),reducer.sum.nonnull(),reducer.var(),reducer.var.forbid-nulls()|} ]"
]
},
"apply": {
"prefix": "apply",
"body": [
"transformedGts = APPLY([ ${1:gts}, [${2:labels}], ${3|op.add(),op.add.ignore-nulls(),op.and(),op.and.ignore-nulls(),op.div(),op.eq(),op.ge(),op.gt(),op.le(),op.lt(),op.mask(),op.mul(),op.mul.ignore-nulls(),op.ne(),op.negmask(),op.or(),op.or.ignore-nulls(),op.sub()|} ])"
],
"description": "Apply framework"
},
"ift": {
"prefix": "ift",
"body": [
"IFT(",
" () -> { return ${1:condition}; }, ",
" () -> { return ${2:action_if_true} }",
");"
],
"description": "If statement"
},
"ifte": {
"prefix": "ifte",
"body": [
"IFTE(",
" () -> { return ${1:condition}; }, ",
" () -> { return ${2:action_if_true} },",
" () -> { return ${2:action_if_false} }",
");"
],
"description": "If then else statement"
},
"switch": {
"prefix": "switch",
"body": [
"SWITCH(",
" () -> { return ${1:case_1}; }, { return ${2:action_1}; },",
" () -> { return ${3:case_2}; }, { return ${4:action_2}; },",
" () -> { return ${5:case_3}; }, { return ${6:action_3}; },",
" () -> { return ${7:default}; },",
" ${8:number_of_cases}",
");"
],
"description": "Switch statement"
},
"try": {
"prefix": "try",
"body": [
"TRY(",
" () -> { ${1:try} },",
" () -> { ${2:catch} },",
" () -> { ${3:finally} }",
");"
],
"description": "Try/Catch statement"
},
"while": {
"prefix": "while",
"body": [
"WHILE(",
" () -> { return ${1:condition}; },",
" () -> { ${2:action_while_true} }",
");"
],
"description": "While loop"
},
"until": {
"prefix": "until",
"body": [
"UNTIL(",
" () -> { ${1:action_until_true} },",
" () -> { return ${2:condition}; }",
");"
],
"description": "Until loop"
},
"for": {
"prefix": "for",
"body": [
"FOR(${1:initial_value}, ${2:final_value},",
" () -> { ${3:action} }",
");"
],
"description": "For loop"
},
"foreach": {
"prefix": "foreach",
"body": [
"FOREACH(${1:object}, ",
" (key, value) -> { // object is a map",
" (value) -> { // object is a list",
" ${2:action}",
" }",
");"
],
"description": "Foreach loop"
},
"forstep": {
"prefix": "forstep",
"body": [
"FORSTEP(${1:initial_value}, ${2:final_value}, () -> { return ${3: + 1}; },",
" () -> { ${4:action} }",
");"
],
"description": "Forstep loop"
},
"shm": {
"prefix": "shm",
"body": [
"MUTEX(() -> { // prevent a concurrent execution on the same SHM data",
" TRY(() -> {",
" // try to read data from SHared Memory",
" SHMLOAD('gtsList')",
" },",
" () -> {",
" // when not found, store data in SHM",
" SHMSTORE('gtsList', ${1:FETCH([ token 'classname' {\\} NOW() d(365) ]))}",
" },",
" () -> {",
" // finally, load the reference from SHM and store it ",
" gtsList = SHMLOAD('gtsList')",
" });",
"",
" // analytics on gtsList",
" ${2:gtsList}",
"",
"",
"",
"}, 'myMutex');"
],
"description": "Keep fetched data in RAM. You need to enable the SHM extension."
}
}