## editing essentials

- [ ] shift-tab
- [ ] do not indent after newline when {
- [ ] typeover detection: wrap {} with {
- [x] proceed with save, even if formatting fails (but notify)
- [x] editor.selectionRange in the presence of a watch
- [x] shard focus and caret movement
- [x] don't error on malformed replacement source
- [ ] clear search field when refocusing
- [ ] replacements break with a leading empty line?
- [ ] comments break finding grammar rules

## lower priority

- [x] unify global shortcut system
- [ ] jsx replacements
- [ ] lsp hover

## diffing

- [ ] `[1, 2, 3] --> [1, 2, 3,]` causes complete unload/load
- [ ] stickiness

## paper

- [ ] todo steps / table aufschreiben
- [ ] matrix with use cases, is it fulfilled? in text and in sb
- [ ] will replacements stay alive across edit operations?
      _ performance?
      _ editing replay benchmarks
- [ ] can replacements block edits? (should be visible through a block in a replacement) \* read-only areas in a text editor (using the example of a game)
