X7H44WPHVQCEHAR67QZO4X6HR3GPJCQMNN76NGW64W2BFUTYFQGQC
RE65KR4CD2MNRKP422XD7MFIJDJWLVBDODBHJKZGFVUDXGF7S3WQC
TAOVHUDMSPGIUIYWRQAY7WOBPEKWXFI5BQW5DAIFXL3I3GP2QYYQC
N22REYSY6QUUIOJDES76VJRF6GSQ2T4XOBFXV2ZNUNF3UXDLJL5AC
QL2LGEEHC46ZSJNELJSDV4VCW7GZQEWKHZZT77WFI4ABW7USKROQC
DTBFNHJDOFMUXRAFVN3NYK2IJYH75EITUIPJIS3CNP7RS6OY5LVQC
2N4JZKVTSJJJIXM2VVCU5INC4IGY7J6FF4JD3TAFK5THD2QWSQPQC
BJ5X5O4ACBBJ56LRBBSTCW6IBQP4HAEOOOPNH3SKTA4F66YTOIDAC
G25JLJ5S6AIL76ILEAXQS3EN2SEWH2X6QT4IPHRXBIPLQVHKGXFAC
EZZBR2VSITUTJOQ3AR4ESYJMHWTQHOUMKMRD6HCM53QSTTLDFGHQC
SSKATFOICVE2SUDO4FYWSTQRY5ZLNRTXJILW2RG5EGKDUYAZJC6AC
EVDBN4WF54TPW76XAMHBIMCPZAY6H5E5CRDX4Y3V47UHWWGYPY7AC
PDUNKNWCDKUFUNDPCGWIV75NUW5JACIAYTU74GXSJBMDA4IHVTOQC
LVQ4PXNNSMS5XWU6DBKWYSLTNGTVYMYSECIQJLJ625GBSUXLA3WAC
VEUT3GXVN2JBXT7VHNVPSZBJWJFNSCH2ZAZVZGEP2VXHBGVXMWHAC
JQ6BQZBLU3OUANQMZML2FWWIE4QI2GDLOYL6GJTXFKONQDQLKDMAC
5WHW3IDOHOBXY3M3QPXNMHFFNXXD6RR5B2WL6TB5TTVNZJYCN2AQC
JRHL6P5PWAVQCUZYUHT2ZZCMPXMDTVHYTVPWGYPJQNTEN4GYW2VAC
Panning:
* Zoom = 1
short node entirely within viewer, cursor in middle of screen
✓ arrow keys
✓ page-up positions cursor on top line
✓ page-down positions cursor on bottom line
✓ mouse panning
tall node extending below viewport
✓ repeated down arrow near bottom pans down
✓ repeated up arrow
✓ repeated down arrow
✓ repeated pagedown
✓ pageup
✓ mouse panning
tall node extending above viewport
✓ repeated up arrow near top pans up
✓ repeated down arrow
✓ repeated up arrow
✓ pagedown
✓ repeated pageup
✓ mouse panning
tall node extending both below and above viewport
✓ repeated up arrow near top pans up
✓ repeated down arrow
✓ repeated down arrow near bottom pans down
✓ repeated up arrow
✓ repeated pagedown
✓ repeated pageup
✓ mouse panning
Panning around on an infinite surface:
* The upstream luaML needs to pass all its manual tests.
* Zoom > 1 (e.g. ctrl+0 ctrl+= ctrl+=)
short node entirely within viewer, cursor in middle of screen
✓ arrow keys
✓ page-up positions cursor on top line
✓ page-down positions cursor on bottom line
✓ mouse panning
tall node extending below viewport
✓ repeated down arrow near bottom pans down
✓ repeated up arrow
✓ repeated down arrow
✓ repeated pagedown
✓ pageup
✓ mouse panning
tall node extending above viewport
✓ repeated up arrow near top pans up
✓ repeated down arrow
✓ repeated up arrow
✓ pagedown
✓ repeated pageup
✓ mouse panning
tall node extending both below and above viewport
✓ repeated up arrow near top pans up
✓ repeated down arrow
✓ repeated down arrow near bottom pans down
✓ repeated up arrow
✓ repeated pagedown
✓ repeated pageup
✓ mouse panning
* Zoom < 1 (e.g. ctrl+0 ctrl+- ctrl+-)
short node entirely within viewer, cursor in middle of screen
✓ arrow keys
✓ page-up positions cursor on top line
✓ page-down positions cursor on bottom line
✓ mouse panning
tall node extending below viewport
✓ repeated down arrow near bottom pans down
✓ repeated up arrow
✓ repeated down arrow
✓ repeated pagedown
✓ repeated pageup
✓ mouse panning
tall node extending above viewport
✓ repeated up arrow near top pans up
✓ repeated down arrow
✓ repeated up arrow
✓ repeated pagedown
✓ repeated pageup
✓ mouse panning
tall node extending both below and above viewport
✓ repeated up arrow near top pans up
✓ repeated down arrow
✓ repeated down arrow near bottom pans down
✓ repeated up arrow
✓ repeated pagedown
✓ repeated pageup
✓ mouse panning
* press C-n, add an empty definition:
```
foo = function()
end
```
Press C-d, select `foo` to delete its definition.
Driver doesn't hang, no errors in logs.
* press C-d, select `on` to try to delete its definition.
Driver shows an error that it's not allowed.
Editing:
* The upstream template-live-editor needs to pass all its manual tests.
[1] We never clear the app from the driver's config. driver.love needs to be
robust to apps changing out from under it.