main 98594d0

operators_precedence.json RawHistoryFolder

1{
2  "operator_precedence_._and_._evaluate_left_to_right": [
3    {
4      "expr": "foo.bar.baz",
5      "contexts": { "foo": { "bar": { "baz": 2 } } },
6      "result": { "kind": "Number", "value": 2.0 }
7    }
8  ],
9  "operator_precedence_._is_higher_than_!": [
10    {
11      "expr": "!foo.bar",
12      "contexts": { "foo": { "bar": true } },
13      "result": { "kind": "Boolean", "value": false }
14    },
15    {
16      "expr": "(!foo).bar",
17      "contexts": { "foo": { "bar": true } },
18      "result": { "kind": "Null", "value": null }
19    }
20  ],
21  "operator_precedence_._is_higher_than_>": [
22    {
23      "expr": "3 > foo.bar",
24      "contexts": { "foo": { "bar": 2 } },
25      "result": { "kind": "Boolean", "value": true }
26    },
27    {
28      "expr": "foo.bar > 2",
29      "contexts": { "foo": { "bar": 3 } },
30      "result": { "kind": "Boolean", "value": true }
31    }
32  ],
33  "operator_precedence_[]_is_higher_than_>": [
34    {
35      "expr": "3 > foo['bar']",
36      "contexts": { "foo": { "bar": 2 } },
37      "result": { "kind": "Boolean", "value": true }
38    },
39    {
40      "expr": "foo['bar'] > 2",
41      "contexts": { "foo": { "bar": 3 } },
42      "result": { "kind": "Boolean", "value": true }
43    }
44  ],
45  "operator_precedence_!_is_higher_than_<": [
46    {
47      "expr": "!2 < 3",
48      "result": { "kind": "Boolean", "value": true }
49    },
50    {
51      "expr": "!(2 < 3)",
52      "result": { "kind": "Boolean", "value": false }
53    }
54  ],
55  "operator_precedence_<_and_<_evaluate_left_to_right": [
56    {
57      "expr": "3 < 2 < 1",
58      "result": { "kind": "Boolean", "value": true }
59    },
60    {
61      "expr": "3 < (2 < 1)",
62      "result": { "kind": "Boolean", "value": false }
63    }
64  ],
65  "operator_precedence_<_and_<=_evaluate_left_to_right": [
66    {
67      "expr": "3 < 2 <= 1",
68      "result": { "kind": "Boolean", "value": true }
69    },
70    {
71      "expr": "3 < (2 <= 1)",
72      "result": { "kind": "Boolean", "value": false }
73    }
74  ],
75  "operator_precedence_<=_and_<_evaluate_left_to_right": [
76    {
77      "expr": "3 <= 2 < 1",
78      "result": { "kind": "Boolean", "value": true }
79    },
80    {
81      "expr": "3 <= (2 < 1)",
82      "result": { "kind": "Boolean", "value": false }
83    }
84  ],
85  "operator_precedence_>_and_<_evaluate_left_to_right": [
86    {
87      "expr": "0 > 0 < 1",
88      "result": { "kind": "Boolean", "value": true }
89    },
90    {
91      "expr": "0 > (0 < 1)",
92      "result": { "kind": "Boolean", "value": false }
93    }
94  ],
95  "operator_precedence_>_and_>_evaluate_left_to_right": [
96    {
97      "expr": "2 > 2 > 0",
98      "result": { "kind": "Boolean", "value": false }
99    },
100    {
101      "expr": "2 > (2 > 0)",
102      "result": { "kind": "Boolean", "value": true }
103    }
104  ],
105  "operator_precedence_<=_is_higher_than_==": [
106    {
107      "expr": "2 <= 3 == true",
108      "result": { "kind": "Boolean", "value": true }
109    },
110    {
111      "expr": "2 <= (3 == true)",
112      "result": { "kind": "Boolean", "value": false }
113    }
114  ],
115  "operator_precedence_==_and_==_evaluate_left_to_right": [
116    {
117      "expr": "2 == 2 == 1",
118      "result": { "kind": "Boolean", "value": true }
119    },
120    {
121      "expr": "2 == (2 == 1)",
122      "result": { "kind": "Boolean", "value": false }
123    }
124  ],
125  "operator_precedence_==_and_!=_evaluate_left_to_right": [
126    {
127      "expr": "2 == 2 != 0",
128      "result": { "kind": "Boolean", "value": true }
129    },
130    {
131      "expr": "2 == (2 != 0)",
132      "result": { "kind": "Boolean", "value": false }
133    }
134  ],
135  "operator_precedence_==_is_higher_than_&&": [
136    {
137      "expr": "1 == 1 && 2",
138      "result": { "kind": "Number", "value": 2.0 }
139    },
140    {
141      "expr": "1 == (1 && 2)",
142      "result": { "kind": "Boolean", "value": false }
143    },
144    {
145      "expr": "'a' == 'a' && 'b'",
146      "result": { "kind": "String", "value": "b" }
147    },
148    {
149      "expr": "'a' == ('a' && 'b')",
150      "result": { "kind": "Boolean", "value": false }
151    }
152  ],
153  "operator_precedence_&&_is_higher_than_||": [
154    {
155      "expr": "false && 0 || null",
156      "result": { "kind": "Null", "value": null }
157    },
158    {
159      "expr": "false && (0 || null)",
160      "result": { "kind": "Boolean", "value": false }
161    },
162    {
163      "expr": "1 || 2 && 3",
164      "result": { "kind": "Number", "value": 1.0 }
165    },
166    {
167      "expr": "(1 || 2) && 3",
168      "result": { "kind": "Number", "value": 3.0 }
169    }
170  ]
171}

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