d383ff3
Introduce randomized test for collaboration on buffers
Click to expand commit body
This test will exercise serialization of operations as well as peers
replicating from an existing buffer.
Antonio Scandurra
created
7bc8eb4
Fix compile errors and get serialization unit test passing
Antonio Scandurra
created
984e366
WIP - Serialize buffer in terms of its state, not its base text + ops
Click to expand commit body
The main reason for this is that we need to include information about
a buffer's UndoMap into its protobuf representation. But it's a bit
complex to correctly incorporate this information into the current
protobuf representation.
If we want to continue reusing `Buffer::apply_remote_edit` for
incorporating the historical operations, we need to either make
that method capable of incorporating already-undone edits, or
serialize the UndoMap into undo *operations*, so that we can apply
these undo operations after the fact when deserializing. But this is
not trivial, because an UndoOperation requires information about
the full offset ranges that were undone.
Max Brunsfeld
created
0bcd0a3
Forward events from remote worktrees to their projects
Max Brunsfeld
created
d7ecbdc
Add unit test showing problem with serialization of undo ops
496066d
Run `Project::diagnose` when registering a new language on Worktree
Antonio Scandurra
created
2b31a48
Clip right when moving to next word in case we land on a block line
Antonio Scandurra
created
ed361f2
Position selections correctly when duplicating lines in a multi-buffer
Antonio Scandurra
created
8dc9197
Position cursors correctly in `Editor::delete_line` in a multi-buffer
Antonio Scandurra
created
05a6137
Capture a new buffer snapshot for excerpts whose selections got updated
Antonio Scandurra
created
a4027aa
Introduce a WorktreeId struct, fix incorrect use of remote worktrees' handle id
Max Brunsfeld
created
7f8e76e
Remove worktree-specific methods from language::File trait
Click to expand commit body
Use downcasting instead for accessing worktree-specific state of the Files.
This will allow us to introduce a WorktreeId type and use that everywhere
for identifying worktrees. It also just removes some unnecessary coupling
between the language crate and the worktree.
Max Brunsfeld
created
8270e8e
Merge pull request #302 from zed-industries/sign-in-redirect
Click to expand commit body
Allow the zed app to connect to both the old and new rpc endpoints
Antonio Scandurra
created
a080ae9
Allow the zed app to connect to both the old and new rpc endpoints
Click to expand commit body
In the case of the new Next.js app, the app will follow a redirect
from 'zed.dev/rpc' to the subdomain where the rust service is hosted.
Until then, the app will connect directly to zed.dev/rpc.
Max Brunsfeld
created
f499a1d
Merge pull request #301 from zed-industries/move-lines-in-multibuffer
Click to expand commit body
Support moving lines up and down in multi-buffers
Nathan Sobo
created
6d6a826
Create blocks with anchors to allow a bias to be specified
Click to expand commit body
This allows us to respect the bias on anchors we use to create excerpt headers so that they always remain above any content inserted at the start of an excerpt.
Nathan Sobo
created
ba75007
Merge pull request #300 from zed-industries/fix-move-line-panic
Click to expand commit body
Fix panics when moving lines with block decorations and simplify line boundary detection
Nathan Sobo
created
984378e
Use anchors for line movement edits to support multi-buffers
Click to expand commit body
Because multi-buffers can contain the same content multiple times, we need to use anchors to track our desired insertion and removal locations when moving lines. This is because deleting a line in order to move it might end up deleting *multiple* lines.
Nathan Sobo
created
7c9e4e5
Provide an accurate panic message when translating points off the end of a line
Click to expand commit body
Maybe we should fail more gracefully in this case, but I think we should at least make the message accurate and see how we do.
Nathan Sobo
created
137fbd0
Update editor element to use new `{next,prev}_line_boundary` methods
Click to expand commit body
Since these methods take buffer points instead of display points, this adjusts
the logic for retrieving the visible selections, so that they are initially returned
in terms of buffer points.
Max Brunsfeld
created
7f786ca
WIP: Start moving toward a simpler interface for detecting prev/next line boundaries
Use this method to disable move_line_down across excerpt boundaries.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Max Brunsfeld
and
Nathan Sobo
created
cbc162a
WIP: Allow lines to be moved down across excerpts
Click to expand commit body
This is still a bit weird because we can't remove the last line of an excerpt but we still move it into another buffer. There also seem to be issues with undo.
We added clipping of points against the buffer when excerpt headers were in the buffer, but now that they're just blocks, I think we can avoid the potential to panic in these methods by going back to not clipping.
Nathan Sobo
created
d352165
Merge pull request #296 from zed-industries/fix-autoindent
Click to expand commit body
Fix regressions that happened when moving selections into Editor
cbd9e18
Store selections with a right start bias so that autoindent moves them
Click to expand commit body
Previously, cursors at column 0 had to be explicitly moved when those lines
were autoindented. This behavior was lost when we moved selections from
the buffer to the editor. Now, with the right bias, we get this behavior automatically.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Max Brunsfeld
and
Nathan Sobo
created
43db9e8
Clear autoindent requests when applying autoindent
Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Max Brunsfeld
and
Nathan Sobo
created
6f26fa0
Merge pull request #295 from zed-industries/api
Click to expand commit body
Add remaining API endpoints needed to support the new website
Nathan Sobo
created
13ed9dc
Document database setup and fix issue in script/seed-db
Click to expand commit body
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>