Previously, we wouldn't generate any `TabEdit` when the tab size
changed, causing coordinate spaces in `WrapMap` and `BlockMap` to
become outdated.
This commit generates a synthetic edit that covers the entire `TabMap`
to ensure layers above are synchronized.
Creating a full-fledged terminal is flaky and causes tests to either
hang or outright panic. The only test that requires creating a terminal
was `test_terminal` but we think the value added by that test is not
worth the flakiness, so we're removing it.
Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
71128d2
Compute diffs based on characters rather than lines
Click to expand commit body
Previously, a change on a given line would cause that whole line to be
replaced. In turn, this caused anchors on that line to go to the start
of that line because they would lie inside of a deleted region after applying
the diff.
By switching to a character-wise diff, we perform smaller edits to the buffer
which stabilizes anchor positions.
Antonio Scandurra
created
f7a3141
Merge pull request #1443 from zed-industries/non-functional-sign-in
Click to expand commit body
Allow signing in again if authentication is pending or was unsuccessful
Antonio Scandurra
created
25d47da
Fix tests assuming a certain execution order
Antonio Scandurra
created
a1d0d2c
Add tests for client authentication while a previous sign in is pending
Antonio Scandurra
created
aa09bc5
Allow signing in again if authentication is pending or was unsuccessful
Click to expand commit body
The local server that we spin up to receive OAuth callbacks isn't
called when an error occurs and it is non-trivial to do so with
next-auth. Besides, there could be cases where the user explicitly
closes the browser window before the callback can be invoked.
With this commit, the user can sign in even while an authentication
is still in progress. As opposed to waiting for at most 10 minutes
before killing the local HTTP server if we haven't received the callback,
we will repeatedly check for a response every second for 100 seconds.
This gives us a chance to determine whether a new authentication has started
in the meantime and, if so, abort the current authentication flow.