Commit Graph
565 Commits
Author SHA1 Message Date
Max Brunsfeld 06bb8d2779 Fix panic when canceling with a pending selection 2022-02-11 15:31:54 -08:00
01664d494c 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
680d1fedc2 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
947fe848c1 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 fa194c8e14 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 ad9a0e2d4f Revert "Ensure there's always at least one selection in the editor"
This reverts commit b1a44b5816.
2022-02-11 09:21:04 -07:00
Antonio ScandurraandNathan Sobo 612a33147a Allow toggling of code actions
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-11 17:01:22 +01:00
Antonio ScandurraandNathan Sobo 7b28418979 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 b1a44b5816 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 a41725daee Render code actions indicator
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-11 16:01:15 +01:00
Antonio ScandurraandNathan Sobo 2fcdcac080 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
424b35253a 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
5049c1b286 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
Antonio Scandurra d1f1563278 Push transaction into multi-buffer to allow undoing of a code action 2022-02-10 09:55:03 +01:00
Antonio Scandurra dd223f93ec 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
Max Brunsfeld 9749fea705 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 471c23e22f Allow inserting multiple excerpts in a batch
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-09 17:56:06 -08:00
Max BrunsfeldandNathan Sobo aa7dfbdd9c Remove ExcerptProperties struct
Pass buffer and range as separate parameters

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-09 17:52:17 -08:00
Max BrunsfeldandNathan Sobo b67be5ded3 Add MultiBufferItemHandle
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-09 17:09:03 -08:00
Max Brunsfeld 5b4c0d64bc Get tests passing and project diagnostics view working w/ new excerpt headers 2022-02-09 13:51:52 -08:00
Antonio ScandurraandNathan Sobo f1e3d5285b Fix randomized test failures on BlockMap with excerpt headers
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-09 15:17:40 +01:00
Antonio Scandurra 0e1318dfe4 WIP: Make editor crate compile again
Tests are still failing though.
2022-02-09 11:09:11 +01:00
Max BrunsfeldandNathan Sobo c7e2fae9cb WIP - Add excerpt headers as a built-in feature of BlockMap
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-08 18:15:45 -08:00
Max BrunsfeldandNathan Sobo 6731d92f60 Give the editor a handle to the project, not a weak handle to the workspace
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-08 15:48:44 -08:00
Max BrunsfeldandNathan Sobo 624dbc1d0e Fix confirming completions in a multibuffer
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-08 15:05:34 -08:00
Max Brunsfeld 93bcde953c Consolidate logic for completion alongside code actions in Project
This way, completions are dealt with more consistently with code actions,
and the logic is not spread across so many places. The `language::File`
trait and the multibuffer no longer need to deal with completions. Completions
are no longer generic over an anchor type.
2022-02-08 14:24:45 -08:00
Max Brunsfeld 722c84c976 Consolidate all code actions logic into Project 2022-02-08 13:17:57 -08:00
Max Brunsfeld 8bad05a4ba Don't populate editor's context menu state if there are no completions
This would accidentally stop the enter key from working.
2022-02-08 12:37:20 -08:00
Antonio ScandurraandNathan Sobo 7d8641afb6 Make transactions serializable to enable edits on behalf of other users
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-08 19:48:21 +01:00
Antonio Scandurra dca974c7d4 Apply code actions remotely 2022-02-08 12:18:14 +01:00
Antonio Scandurra 8f3ff1590e Apply edits received from LSP code actions and open all touched buffers 2022-02-07 18:48:45 +01:00
Antonio ScandurraandNathan Sobo a172c3c5c6 Apply file-system operations coming from an LSP code action
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-07 16:11:40 +01:00
Antonio Scandurra 982e90539d WIP: Start on applying code actions 2022-02-07 12:20:03 +01:00
Nathan Sobo dc20be256e Start on code action confirmation 2022-02-05 12:37:34 -07:00
Nathan Sobo ba99b01de6 Generalize showing and hiding of context menus
We still cancel pending completions when hiding the context menu so its not perfectly general, but I think this is ok.
2022-02-05 12:13:02 -07:00
Nathan Sobo 025e83c1ec Render code actions context menu 2022-02-05 11:04:05 -07:00
Nathan Sobo 93a3f4b615 Move rendering and select prev/next into ContextMenu enum
This prepares the way to have a code actions context menu.
2022-02-05 10:19:43 -07:00
Nathan Sobo ee661516fa Start generalizing the completions menu into a context menu
This will let us render the code actions menu in a way that's mutually exclusive with completions.
2022-02-05 09:43:25 -07:00
Max BrunsfeldandNathan Sobo 83d4fe8e3a Start work on code actions
Just print out the returned code actions for now

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-04 17:45:00 -08:00
Antonio Scandurra fe1729ff70 Merge pull request #424 from zed-industries/fix-goal-column-on-cut
Clear selection goal column when cutting a full line
2022-02-04 19:01:23 +01:00
3f897ed588 Clear selection goal column when cutting a full line
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-02-04 10:19:26 -07:00
Nathan SoboandAntonio Scandurra c38fe473cd Delete to hard line boundary when deleting to start/end of line
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-02-04 10:10:30 -07:00
Nathan SoboandAntonio Scandurra aa12eb6b55 Span across soft-wraps when triple clicking a line
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-02-04 09:21:13 -07:00
Antonio Scandurra bf043fe3fb Merge pull request #396 from zed-industries/fix-autocomplete-bugs
Refine autocomplete
2022-02-04 16:13:16 +01:00
Antonio ScandurraandNathan Sobo 55f0933872 Show completions as soon as possible
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-04 16:01:04 +01:00
Antonio ScandurraandNathan Sobo 625beaaa9b Finish writing test for the new autocompletion behavior
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-04 15:47:19 +01:00
Nathan Sobo f8dce23440 Merge pull request #394 from zed-industries/fix-selections-after-format
Fix selection positions after typing with old selection anchors
2022-02-04 06:02:18 -07:00
Antonio Scandurra 0f266cff54 WIP: Start refactoring completion test
The idea is to write more assertions related to how autocompletion
behaves with multiple cursors, prefixes that don't match, etc.
2022-02-04 12:24:04 +01:00
Antonio Scandurra 32859a38ed Refine autocompletion when text matches a prefix of the suggestion 2022-02-04 12:05:57 +01:00
Antonio Scandurra 8d17287167 Move cursor to diagnostic even if the only diagnostic is currently shown 2022-02-04 09:34:32 +01:00