v0.1.0 28f9d6e

join.json RawHistoryFolder

1{
2  "join": [
3    {
4      "expr": "join(github.event.issue.labels.*.name, ', ')",
5      "contexts": {
6        "github": {
7          "event": {
8            "issue": {
9              "labels": [
10                {
11                  "name": "bug"
12                },
13                {
14                  "name": "enhancement"
15                },
16                {
17                  "name": "help wanted"
18                }
19              ]
20            }
21          }
22        }
23      },
24      "result": { "kind": "String", "value": "bug, enhancement, help wanted" }
25    },
26    {
27      "expr": "join(null)",
28      "result": { "kind": "String", "value": "" }
29    },
30    {
31      "expr": "join(true)",
32      "result": { "kind": "String", "value": "true" }
33    },
34    {
35      "expr": "join(123.456)",
36      "result": { "kind": "String", "value": "123.456" }
37    },
38    {
39      "expr": "join('abc')",
40      "result": { "kind": "String", "value": "abc" }
41    },
42    {
43      "expr": "join(myArray)",
44      "contexts": { "myArray": [] },
45      "result": { "kind": "String", "value": "" }
46    },
47    {
48      "expr": "join(myObject)",
49      "contexts": { "myObject": {} },
50      "result": { "kind": "String", "value": "" }
51    },
52    {
53      "expr": "join(myObject)",
54      "contexts": { "myObject": { "key1": "value1" } },
55      "result": { "kind": "String", "value": "" }
56    },
57    {
58      "expr": "join(myArray)",
59      "contexts": { "myArray": [ null, true, 123.456, "abc", [], ["def"], {}, { "key1": "value1" } ] },
60      "result": { "kind": "String", "value": ",true,123.456,abc,Array,Array,Object,Object" }
61    },
62    {
63      "expr": "join(myArray, null)",
64      "contexts": { "myArray": [ "_ITEM-1_", "_ITEM-2_", "_ITEM-3_" ] },
65      "result": { "kind": "String", "value": "_ITEM-1__ITEM-2__ITEM-3_" }
66    },
67    {
68      "expr": "join(myArray, true)",
69      "contexts": { "myArray": [ "_ITEM-1_", "_ITEM-2_", "_ITEM-3_" ] },
70      "result": { "kind": "String", "value": "_ITEM-1_true_ITEM-2_true_ITEM-3_" }
71    },
72    {
73      "expr": "join(myArray, 123.456)",
74      "contexts": { "myArray": [ "_ITEM-1_", "_ITEM-2_", "_ITEM-3_" ] },
75      "result": { "kind": "String", "value": "_ITEM-1_123.456_ITEM-2_123.456_ITEM-3_" }
76    },
77    {
78      "expr": "join(myArray, ' | ')",
79      "contexts": { "myArray": [ "_ITEM-1_", "_ITEM-2_", "_ITEM-3_" ] },
80      "result": { "kind": "String", "value": "_ITEM-1_ | _ITEM-2_ | _ITEM-3_" }
81    },
82    {
83      "expr": "join(myArray, mySeparator)",
84      "contexts": {
85        "myArray": [ "_ITEM-1_", "_ITEM-2_", "_ITEM-3_" ],
86        "mySeparator": []
87      },
88      "result": { "kind": "String", "value": "_ITEM-1_,_ITEM-2_,_ITEM-3_" }
89    },
90    {
91      "expr": "join(myArray, mySeparator)",
92      "contexts": {
93        "myArray": [ "_ITEM-1_", "_ITEM-2_", "_ITEM-3_" ],
94        "mySeparator": {}
95      },
96      "result": { "kind": "String", "value": "_ITEM-1_,_ITEM-2_,_ITEM-3_" }
97    },
98    {
99      "expr": "join()",
100      "err": {
101        "kind": "parsing",
102        "value": "Too few parameters supplied: "
103      }
104    },
105    {
106      "expr": "join(1, 2, 3)",
107      "err": {
108        "kind": "parsing",
109        "value": "Too many parameters supplied: "
110      }
111    }
112  ]
113}

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