v0.1.0 28f9d6e

op_idx_star.json RawHistoryFolder

1{
2  "filtered-array-from-literal": [
3    {
4      "expr": "foo.*",
5      "contexts": {
6        "foo": null
7      },
8      "result": { "kind": "Array", "value": [] }
9    },
10    {
11      "expr": "foo.*",
12      "contexts": {
13        "foo": false
14      },
15      "result": { "kind": "Array", "value": [] }
16    },
17    {
18      "expr": "foo.*",
19      "contexts": {
20        "foo": true
21      },
22      "result": { "kind": "Array", "value": [] }
23    },
24    {
25      "expr": "foo.*",
26      "contexts": {
27        "foo": 123
28      },
29      "result": { "kind": "Array", "value": [] }
30    },
31    {
32      "expr": "foo.*",
33      "contexts": {
34        "foo": "abc"
35      },
36      "result": { "kind": "Array", "value": [] }
37    }
38  ],
39  "filtered-array-from-array": [
40    {
41      "expr": "foo.*",
42      "contexts": {
43        "foo": [
44          "zero",
45          "one"
46        ]
47      },
48      "result": { "kind": "Array", "value": ["zero", "one"] }
49    }
50  ],
51  "filtered-array-from-object": [
52    {
53      "expr": "foo.*",
54      "contexts": {
55        "foo": {
56          "one": "one val",
57          "two": "two val"
58        }
59      },
60      "result": { "kind": "Array", "value": ["one val", "two val"] }
61    }
62  ],
63  "nested-object": [
64    {
65      "expr": "foo.*.one",
66      "contexts": {
67        "foo": [
68          {
69            "one": "obj_1_prop_1",
70            "two": "obj_1_prop_2"
71          },
72          {
73            "one": "obj_2_prop_1",
74            "two": "obj_2_prop_2"
75          }
76        ]
77      },
78      "result": { "kind": "Array", "value": ["obj_1_prop_1", "obj_2_prop_1"] }
79    },
80    {
81      "expr": "foo[*]['']",
82      "contexts": {
83        "foo": [
84          {
85            "": "empty string"
86          }
87        ]
88      },
89      "result": { "kind": "Array", "value": ["empty string"] }
90    }
91  ],
92  "nested-object-property-case-insensitive": [
93    {
94      "expr": "foo.*.thePROPERTY",
95      "contexts": {
96        "foo": [
97          {
98            "THEproperty": "the property"
99          }
100        ]
101      },
102      "result": { "kind": "Array", "value": ["the property"] }
103    }
104  ],
105  "nested-object-property-not-found": [
106    {
107      "expr": "foo.*.one",
108      "contexts": {
109        "foo": [
110          {
111            "one": "obj_1_prop_1",
112            "two": "obj_1_prop_2"
113          },
114          {
115            "zero": "obj_2_prop_0",
116            "three": "obj_2_prop_3"
117          },
118          {
119            "one": "obj_3_prop_1",
120            "two": "obj_3_prop_2"
121          }
122        ]
123      },
124      "result": { "kind": "Array", "value": ["obj_1_prop_1", "obj_3_prop_1"] }
125    }
126  ],
127  "nested-object-property-coercion": [
128    {
129      "expr": "foo[*][null]",
130      "contexts": {
131        "foo": [
132          {
133            "": "empty string"
134          }
135        ]
136      },
137      "result": { "kind": "Array", "value": ["empty string"] }
138    },
139    {
140      "expr": "foo[*][false]",
141      "contexts": {
142        "foo": [
143          {
144            "false": "It's false"
145          }
146        ]
147      },
148      "result": { "kind": "Array", "value": ["It's false"] }
149    },
150    {
151      "expr": "foo[*][true]",
152      "contexts": {
153        "foo": [
154          {
155            "true": "It's true"
156          }
157        ]
158      },
159      "result": { "kind": "Array", "value": ["It's true"] }
160    },
161    {
162      "expr": "foo[*][0x0f]",
163      "contexts": {
164        "foo": [
165          {
166            "15": "fifteen"
167          }
168        ]
169      },
170      "result": { "kind": "Array", "value": ["fifteen"] }
171    },
172    {
173      "expr": "foo[*][NaN]",
174      "contexts": {
175        "foo": [
176          {
177            "NaN": "It's NaN"
178          }
179        ]
180      },
181      "result": { "kind": "Array", "value": ["It's NaN"] }
182    },
183    {
184      "expr": "foo[*][Infinity]",
185      "contexts": {
186        "foo": [
187          {
188            "Infinity": "It's Infinity"
189          }
190        ]
191      },
192      "result": { "kind": "Array", "value": ["It's Infinity"] }
193    },
194    {
195      "expr": "foo[*][-Infinity]",
196      "contexts": {
197        "foo": [
198          {
199            "-Infinity": "It's -Infinity"
200          }
201        ]
202      },
203      "result": { "kind": "Array", "value": ["It's -Infinity"] }
204    },
205    {
206      "expr": "foo[*][fromjson('[]')]",
207      "contexts": {
208        "foo": [
209          {
210            "": "empty string",
211            "Array": "It's array"
212          }
213        ]
214      },
215      "result": { "kind": "Array", "value": [] }
216    },
217    {
218      "expr": "foo[*][fromjson('{}')]",
219      "contexts": {
220        "foo": [
221          {
222            "": "empty string",
223            "Object": "It's object"
224          }
225        ]
226      },
227      "result": { "kind": "Array", "value": [] }
228    }
229  ],
230  "nested-array": [
231    {
232      "expr": "foo[*][1]",
233      "contexts": {
234        "foo": [
235          [
236            "ary_0_idx_0",
237            "ary_0_idx_1",
238            "ary_0_idx_2"
239          ],
240          [
241            "ary_1_idx_0",
242            "ary_1_idx_1",
243            "ary_1_idx_2"
244          ]
245        ]
246      },
247      "result": { "kind": "Array", "value": ["ary_0_idx_1", "ary_1_idx_1"] }
248    }
249  ],
250  "nested-array-index-not-found": [
251    {
252      "expr": "foo[*][1]",
253      "contexts": {
254        "foo": [
255          [
256            "ary_0_idx_0",
257            "ary_0_idx_1",
258            "ary_0_idx_2"
259          ],
260          [
261            "ary_1_idx_0"
262          ],
263          [
264            "ary_2_idx_0",
265            "ary_2_idx_1",
266            "ary_2_idx_2"
267          ]
268        ]
269      },
270      "result": { "kind": "Array", "value": ["ary_0_idx_1", "ary_2_idx_1"] }
271    },
272    {
273      "expr": "foo[*][-1]",
274      "contexts": {
275        "foo": [
276          [
277            "zero",
278            "one",
279            "two"
280          ]
281        ]
282      },
283      "result": { "kind": "Array", "value": [] }
284    },
285    {
286      "expr": "foo[*][NaN]",
287      "contexts": {
288        "foo": [
289          [
290            "zero",
291            "one",
292            "two"
293          ]
294        ]
295      },
296      "result": { "kind": "Array", "value": [] }
297    },
298    {
299      "expr": "foo[*][Infinity]",
300      "contexts": {
301        "foo": [
302          [
303            "zero",
304            "one",
305            "two"
306          ]
307        ]
308      },
309      "result": { "kind": "Array", "value": [] }
310    },
311    {
312      "expr": "foo[*][Infinity]",
313      "contexts": {
314        "foo": [
315          [
316            "zero",
317            "one",
318            "two"
319          ]
320        ]
321      },
322      "result": { "kind": "Array", "value": [] }
323    }
324  ],
325  "nested-array-index-coercion": [
326    {
327      "expr": "foo[*][null]",
328      "contexts": {
329        "foo": [
330          [
331            "zero",
332            "one",
333            "two"
334          ]
335        ]
336      },
337      "result": { "kind": "Array", "value": ["zero"] }
338    },
339    {
340      "expr": "foo[*][false]",
341      "contexts": {
342        "foo": [
343          [
344            "zero",
345            "one",
346            "two"
347          ]
348        ]
349      },
350      "result": { "kind": "Array", "value": ["zero"] }
351    },
352    {
353      "expr": "foo[*][true]",
354      "contexts": {
355        "foo": [
356          [
357            "zero",
358            "one",
359            "two"
360          ]
361        ]
362      },
363      "result": { "kind": "Array", "value": ["one"] }
364    },
365    {
366      "expr": "foo[*]['']",
367      "contexts": {
368        "foo": [
369          [
370            "zero",
371            "one",
372            "two"
373          ]
374        ]
375      },
376      "result": { "kind": "Array", "value": ["zero"] }
377    },
378    {
379      "expr": "foo[*]['abc']",
380      "contexts": {
381        "foo": [
382          [
383            "zero",
384            "one",
385            "two"
386          ]
387        ]
388      },
389      "result": { "kind": "Array", "value": [] }
390    },
391    {
392      "expr": "foo[*][' 0x01 ']",
393      "contexts": {
394        "foo": [
395          [
396            "zero",
397            "one",
398            "two"
399          ]
400        ]
401      },
402      "result": { "kind": "Array", "value": ["one"] }
403    },
404    {
405      "expr": "foo[*][fromjson('[]')]",
406      "contexts": {
407        "foo": [
408          [
409            "zero",
410            "one",
411            "two"
412          ]
413        ]
414      },
415      "result": { "kind": "Array", "value": [] }
416    },
417    {
418      "expr": "foo[*][fromjson('{}')]",
419      "contexts": {
420        "foo": [
421          [
422            "zero",
423            "one",
424            "two"
425          ]
426        ]
427      },
428      "result": { "kind": "Array", "value": [] }
429    }
430  ],
431  "double-star": [
432    {
433      "expr": "foo.*.*",
434      "contexts": {
435        "foo": [
436          null,
437          false,
438          true,
439          123,
440          "hello",
441          [
442            "zero",
443            "one",
444            "two"
445          ],
446          {
447            "p1": "v1",
448            "p2": "v2",
449            "p3": "v3"
450          }
451        ]
452      },
453      "result": { "kind": "Array", "value": ["zero", "one", "two", "v1", "v2", "v3"] }
454    }
455  ],
456  "double-property": [
457    {
458      "expr": "foo.*.p.nestedp",
459      "contexts": {
460        "foo": [
461          {
462            "p": {
463              "nestedp": "val 1"
464            }
465          },
466          {
467            "p": {
468              "nestedp": "val 2"
469            }
470          }
471        ]
472      },
473      "result": { "kind": "Array", "value": ["val 1", "val 2"] }
474    }
475  ],
476  "double-index": [
477    {
478      "expr": "foo[*][1][2]",
479      "contexts": {
480        "foo": [
481          [
482            [
483              "0_0_0",
484              "0_0_1",
485              "0_0_2",
486              "0_0_3"
487            ],
488            [
489              "0_1_0",
490              "0_1_1",
491              "0_1_2",
492              "0_1_3"
493            ],
494            [
495              "0_2_0",
496              "0_2_1",
497              "0_2_2",
498              "0_2_3"
499            ]
500          ],
501          [
502            [
503              "1_0_0",
504              "1_0_1",
505              "1_0_2",
506              "1_0_3"
507            ],
508            [
509              "1_1_0",
510              "1_1_1",
511              "1_1_2",
512              "1_1_3"
513            ],
514            [
515              "1_2_0",
516              "1_2_1",
517              "1_2_2",
518              "1_2_3"
519            ]
520          ]
521        ]
522      },
523      "result": { "kind": "Array", "value": ["0_1_2", "1_1_2"] }
524    }
525  ],
526  "not-found-always-returns-empty-array": [
527    {
528      "expr": "foo[*][1]",
529      "contexts": {
530        "foo": []
531      },
532      "result": { "kind": "Array", "value": [] }
533    },
534    {
535      "expr": "foo[*][1][2]",
536      "contexts": {
537        "foo": []
538      },
539      "result": { "kind": "Array", "value": [] }
540    },
541    {
542      "expr": "foo.*.bar",
543      "contexts": {
544        "foo": {}
545      },
546      "result": { "kind": "Array", "value": [] }
547    },
548    {
549      "expr": "foo.*.bar.baz",
550      "contexts": {
551        "foo": []
552      },
553      "result": { "kind": "Array", "value": [] }
554    }
555  ]
556}

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 1

Tags 3

↑↓ moveenter openesc close