v0.2.0 4f9c11b

contains.json RawHistoryFolder

1{
2  "string": [
3    {
4      "expr": "contains('abcdef', 'cde')",
5      "result": { "kind": "Boolean", "value": true }
6    },
7    {
8      "expr": "contains('abCdEf', 'cDe')",
9      "result": { "kind": "Boolean", "value": true }
10    },
11    {
12      "expr": "contains('abcdef', '')",
13      "result": { "kind": "Boolean", "value": true }
14    },
15    {
16      "expr": "contains('1234', 23)",
17      "result": { "kind": "Boolean", "value": true }
18    },
19    {
20      "expr": "contains('true', true)",
21      "result": { "kind": "Boolean", "value": true }
22    },
23    {
24      "expr": "contains('false', false)",
25      "result": { "kind": "Boolean", "value": true }
26    },
27    {
28      "expr": "contains('asdf', null)",
29      "result": { "kind": "Boolean", "value": true }
30    },
31    {
32      "expr": "contains('true', false)",
33      "result": { "kind": "Boolean", "value": false }
34    }
35  ],
36
37  "array": [
38    {
39      "expr": "contains(test, 'hello')",
40      "result": { "kind": "Boolean", "value": true },
41      "contexts": { "test": ["hello"] }
42    },
43    {
44      "expr": "contains(test, 'world')",
45      "result": { "kind": "Boolean", "value": true },
46      "contexts": { "test": ["hello", "world"] }
47    },
48    {
49      "expr": "contains(test, 'asdf')",
50      "result": { "kind": "Boolean", "value": false },
51      "contexts": { "test": ["hello"] }
52    },
53    {
54      "expr": "contains(test, 123)",
55      "result": { "kind": "Boolean", "value": true },
56      "contexts": { "test": [123.0] }
57    },
58    {
59      "expr": "contains(test, 123)",
60      "result": { "kind": "Boolean", "value": true },
61      "contexts": { "test": [123.0] }
62    },
63    {
64      "expr": "contains(test, null)",
65      "result": { "kind": "Boolean", "value": true },
66      "contexts": { "test": [""] }
67    },
68    {
69      "expr": "contains(test, false)",
70      "result": { "kind": "Boolean", "value": true },
71      "contexts": { "test": [""] }
72    },
73    {
74      "expr": "contains(test, false)",
75      "result": { "kind": "Boolean", "value": true },
76      "contexts": { "test": [0] }
77    }
78  ],
79
80  "filtered_array": [
81    {
82      "expr": "contains(test.*, 'hello')",
83      "result": { "kind": "Boolean", "value": true },
84      "contexts": { "test": ["hello"] }
85    },
86    {
87      "expr": "contains(test.*, 'world')",
88      "result": { "kind": "Boolean", "value": true },
89      "contexts": { "test": ["hello", "world"] }
90    },
91    {
92      "expr": "contains(test.*, 'asdf')",
93      "result": { "kind": "Boolean", "value": false },
94      "contexts": { "test": ["hello"] }
95    },
96    {
97      "expr": "contains(test.*, 123)",
98      "result": { "kind": "Boolean", "value": true },
99      "contexts": { "test": [123.0] }
100    },
101    {
102      "expr": "contains(test.*, 123)",
103      "result": { "kind": "Boolean", "value": true },
104      "contexts": { "test": [123.0] }
105    },
106    {
107      "expr": "contains(test.*, null)",
108      "result": { "kind": "Boolean", "value": true },
109      "contexts": { "test": [""] }
110    },
111    {
112      "expr": "contains(test.*, false)",
113      "result": { "kind": "Boolean", "value": true },
114      "contexts": { "test": [""] }
115    },
116    {
117      "expr": "contains(test.*, false)",
118      "result": { "kind": "Boolean", "value": true },
119      "contexts": { "test": [0] }
120    }
121  ]
122}

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