Commit Graph
39175 Commits
Author SHA1 Message Date
Antonio ScandurraandNathan Sobo 394caca541 Ensure that zed package version matches git tag before packaging a release
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-14 17:17:48 +01:00
Antonio Scandurra c13ec08feb Merge pull request #446 from zed-industries/assists
Implement code actions
2022-02-14 16:09:20 +01:00
Antonio Scandurra 22800b4f88 Use selection instead of just the cursor when fetching code actions 2022-02-14 14:13:36 +01:00
Antonio Scandurra 04e0b7f5fc Add integration test for code actions 2022-02-14 11:42:56 +01:00
Antonio Scandurra b6a34a0886 Implement Server::add_request_handler in terms of ::add_message_handler 2022-02-14 09:31:31 +01:00
Antonio Scandurra 7f44520436 Rename subscribe to add_{message,request}_handler in Client
This makes it easier to distinguish between messages and requests.
2022-02-14 09:25:31 +01:00
Antonio Scandurra 2fa50883d4 🎨 2022-02-14 09:22:10 +01:00
Antonio Scandurra 641bc43710 Pass write(true) when creating a file in RealFs 2022-02-14 09:12:32 +01:00
Antonio Scandurra 8fca79272a Ensure client always responds when receiving a request 2022-02-13 12:21:35 +01:00
Antonio Scandurra 3dee00e928 Ensure server always responds when receiving a request 2022-02-13 10:21:01 +01:00
Antonio Scandurra cc7f0123a1 WIP: Start auditing all forward_request calls on the server
When the host returns an error after a server has forwarded a request,
we want to surface that error to the guest. At the moment, the server
just returns early leaving some requests unresponded on the guest.

I started auditing all the code paths where we do that, but I am
wondering whether there's some other approach that would prevent us
from repeating this mistake in other code paths.
2022-02-12 14:12:13 +01:00
Antonio Scandurra 412645717a Deserialize buffers synchronously when deserializing project transaction
On guests, this ensures we never miss updates to subsequent buffers in
the project transaction that arrive while we're waiting for edits on a
prior buffer in the transaction.
2022-02-12 13:56:07 +01:00
Antonio Scandurra c5ec161647 Proceed with saving a buffer even if formatting fails 2022-02-12 13:02:19 +01:00
Antonio Scandurra 8847f4dff8 Refresh diagnostics and code actions more selectively 2022-02-12 13:01:55 +01:00
Antonio Scandurra e6860b3c00 Reduce number of iterations on test_editing_while_guest_opens_buffer
I think this was mistakenly increased as part of some other change.
2022-02-12 13:01:18 +01:00
Antonio Scandurra c1f875c784 Make test_propagate_saves_and_fs_changes more robust
...by using a condition that awaits on the actual paths as opposed
to the simple file counts.
2022-02-12 12:37:51 +01:00
Antonio Scandurra 4e8b470bc6 Remove stray log statements 2022-02-12 12:32:57 +01:00
Antonio Scandurra 06f54fb050 Fix integration test verifying the rename behavior
Specifically, the test now ensures that the host's worktree observes a/file1's
change event *before* the rename occurs, otherwise when interpreting the change
event it will mistakenly think that the file has been deleted (because its path
has changed) and will subsequently fail to detect the rename, causing the test
to fail.
2022-02-12 12:26:39 +01:00
Antonio Scandurra 81d4457bcb Apply worktree updates in the order they were received 2022-02-12 11:56:20 +01:00
Antonio Scandurra 9579835699 Ensure response barrier is always dropped, even if request is canceled 2022-02-12 10:23:50 +01:00
Max Brunsfeld 5ada39c46c Adjust multibuffer history test to reflect new behavior 2022-02-11 16:55:00 -08:00
Max Brunsfeld 7c1cc69cd3 Reduce logging in lsp tests 2022-02-11 16:37:50 -08:00
Max Brunsfeld 66ce2519e7 Remove Buffer::apply_lsp_edits
Always use `edits_from_lsp`.
2022-02-11 16:22:19 -08:00
Max Brunsfeld 72b1aafb63 Inline MultiBuffer::format
Put all the logic in Editor. Add an `all_buffers` method so the editor can
format all of the buffers by itself.
2022-02-11 16:22:19 -08:00
Max Brunsfeld 956a0d7541 Fix panic when canceling with a pending selection 2022-02-11 15:31:54 -08:00
c574e7eba7 Restructure fake language server to setup request handlers in advance
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-11 15:08:56 -08:00
5eaa51fd07 Always call set_selections in mouse selection methods
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-11 09:52:18 -08:00
a3dba97dd5 Make multibuffer anchor's buffer_id optional
Avoid using 0 for a buffer id on Anchor::min and max

Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-11 09:51:47 -08:00
Nathan SoboandMax Brunsfeld d2c81a378b Pass the pending selection to update_selections and set_selections
This helps us preserve our invariant of always having at least a pending selection in set_selections when comparing old and new cursor positions.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-02-11 10:07:42 -07:00
Nathan Sobo 2f4478e116 Revert "Ensure there's always at least one selection in the editor"
This reverts commit 3e2fdec570.
2022-02-11 09:21:04 -07:00
Antonio ScandurraandNathan Sobo dfb65b7fd0 Allow toggling of code actions
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-11 17:01:22 +01:00
Antonio ScandurraandNathan Sobo 72b7022131 Allow deployment of code actions from indicator
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-11 16:47:40 +01:00
Antonio ScandurraandNathan Sobo 3e2fdec570 Ensure there's always at least one selection in the editor
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-11 16:25:26 +01:00
Antonio ScandurraandNathan Sobo fcdfdc754e Render code actions indicator
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-11 16:01:15 +01:00
Antonio ScandurraandNathan Sobo 85cdfddb31 Fetch code actions on cursor movement instead of on-demand
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-11 14:41:19 +01:00
Antonio ScandurraandNathan Sobo 1a3adbe7ef Don't return error when definition, completions, etc. are unavailable
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-11 13:16:17 +01:00
Antonio Scandurra 165d4c0968 Fix panic when trying to render a diagnostic that has no message 2022-02-11 12:16:20 +01:00
Antonio Scandurra e035758ba9 Move Buffer::format to Project::format 2022-02-11 12:07:46 +01:00
Max Brunsfeld 78e10785b0 Finish implementing Buffer::edits_from_lsp 2022-02-10 18:01:18 -08:00
Max BrunsfeldandAntonio Scandurra 11f6061fbb Start work on applying LSP edits via a diff
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-02-10 11:14:06 -08:00
39baa4d0a3 Don't open a multibuffer when code actions's edits are contained in the current editor
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-10 09:55:21 -08:00
5d59075b5d Make Editor::newest_anchor_selection return a non-optional value
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-02-10 10:16:54 -07:00
Nathan SoboandAntonio Scandurra 8632ae9bc1 Correctly redo all undone edits after undoing in multi-buffer
When undoing edits performed in the multi-buffer, we also undo subsequent edits that may have occurred outside of the multi-buffer. This commit makes us redo those edits as well.

Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-02-10 09:26:20 -07:00
Nathan SoboandAntonio Scandurra e91523b69d Store the oldest transaction id for each excerpted buffer in multi-buffer transactions
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-02-10 09:14:39 -07:00
Nathan SoboandAntonio Scandurra e8ed237265 Undo subsequent edits when undoing in multi-buffer
When undoing in the multi-buffer, don't preserve edits that occurred outside the multi-buffer after the edit being undone.

Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-02-10 09:04:53 -07:00
Antonio Scandurra e7d5529a18 Push transaction into multi-buffer to allow undoing of a code action 2022-02-10 09:55:03 +01:00
Antonio Scandurra 310d43618b Allow editor to be saved when in multi-buffer mode
Also, this commit enables the customization of the title in a multi-buffer.
When specified, it will take precedence over a filename (or "untitled").
2022-02-10 09:35:19 +01:00
Antonio Scandurra 59c879119d Fix push_excerpts_with_context_lines when ranges overlap 2022-02-10 09:06:11 +01:00
Max Brunsfeld 3daba385eb Start work on MultiBuffer::push_excerpts_with_context_lines
Use it in Editor::confirm_code_action
2022-02-09 18:28:15 -08:00
Max BrunsfeldandNathan Sobo db9b19b1be Allow inserting multiple excerpts in a batch
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-09 17:56:06 -08:00