Commit Graph
433 Commits
Author SHA1 Message Date
Antonio Scandurra d5a38f0bb1 Fix divergence bug in undo/redo
As part of #1405, we changed the way we performed undo and redo to
support combining transactions that were not temporally adjacent for
IME purposes.

We introduced a bug with that release that caused divergence
when performing undo: the bug was caused by only changing the visibility
of fragments whose insertion id was contained in the undo operation. However,
an undo operation also affects deletions which we were mistakenly not
considering. Randomized tests caught this but I guess we didn't run enough
of them.
2022-08-17 11:30:04 +02:00
K Simmons 3dce18540e clippy fixes for focus change 2022-08-10 16:51:01 -07:00
ForLoveOfCatsandMikayla fbea44bc5c One big cleanup pass of clippy lints
Co-authored-by: Mikayla <mikayla@zed.dev>
2022-08-10 16:51:01 -07:00
Julia 1e78c24e45 Merge pull request #1451 from zed-industries/tab-auto-indent
Auto-indent on tab for cursors left of the suggested indent level
2022-08-02 15:52:12 -04:00
Antonio Scandurra 84b1a2722e Compute diffs based on characters rather than lines
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.
2022-08-02 16:52:37 +02:00
Max BrunsfeldandJulia Risley 8505231e9a Start work on auto-indenting lines on tab
Co-authored-by: Julia Risley <floc@unpromptedtirade.com>
2022-08-01 16:47:59 -07:00
Max Brunsfeld 2c732526a9 Fix mistakes in editor auto-indent test 2022-08-01 11:02:29 -07:00
Max Brunsfeld 75c349243c 🎨 Rename and simplify some autoindent stuff 2022-07-28 22:40:30 -07:00
Max Brunsfeld 357c9d53a9 Record start columns when writing to the clipboard from Zed 2022-07-28 22:13:32 -07:00
Max Brunsfeld 345e33fa98 Start work on adjusting pasted text based on old start column 2022-07-28 17:29:42 -07:00
Max BrunsfeldandMikayla Maki 669d716519 Introduce AutoindentMode parameter to Buffer::edit
This controls whether or not we preserve the relative indentation
of inserted text blocks.

Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
2022-07-28 14:03:31 -07:00
Max BrunsfeldandMikayla Maki 48610f5819 Remove indent_size parameter from Buffer::edit_with_autoindent
Instead, compute the indent size by reading the settings inside that method.

Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
2022-07-28 13:00:05 -07:00
Max Brunsfeld d349ca1f4e Fix error in autoindent range calculation 2022-07-28 11:51:03 -07:00
Max Brunsfeld 1a1b7810b7 Restructure autoindent to preserve relative indentation of inserted text 2022-07-26 17:43:43 -07:00
Max Brunsfeld 0232aba028 🎨 compute_autoindents 2022-07-26 17:09:30 -07:00
Max Brunsfeld 07f1486c13 Improve calculation of which lines are new when auto-indenting 2022-07-26 17:09:30 -07:00
Antonio Scandurra 47fce17ff8 Merge branch 'main' into ime-support-2 2022-07-25 10:47:49 +02:00
Antonio Scandurra daff3fc7f6 Coalesce IME compositions into a single edit 2022-07-25 09:53:51 +02:00
Antonio Scandurra db5f26474b Allow grouping local transactions even if remote peer edits in between 2022-07-23 09:27:21 +02:00
Max BrunsfeldandAntonio Scandurra 51868f445b Remove versioned offset ranges from transactions and undo operations
Now, instead of using these versioned offset ranges, we locate the
fragments associated with a transaction using the transaction's
edit ids. To make this possible, buffers now store a new map called
`insertion_slices`, which lets you look up the ranges of insertions
that were affected by a given edit.

Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2022-07-22 17:28:55 -07:00
K Simmons f14c30511d add test coverage for diagnostic popover 2022-07-20 19:02:33 -07:00
Antonio Scandurra 44459a3c7e Merge pull request #1385 from zed-industries/fix-lifetime-error
Fix spurious borrow checker error
2022-07-18 12:22:54 +02:00
Antonio Scandurra 9de9d517fd Differentiate among tabs with the same name
This commit introduces a new, optional `Item::tab_description` method
that lets implementers define a description for the tab with a certain
`detail`. When two or more tabs match the same description, we will
increase the `detail` until tabs don't match anymore or increasing the
`detail` doesn't disambiguate tabs any further.

As soon as we find a valid `detail` that disambiguates tabs enough, we
will pass it to `Item::tab_content`. In `Editor`, this is implemented by
showing more and more of the path's suffix as `detail` is increased.
2022-07-14 11:54:11 +02:00
Max Brunsfeld fad4365565 Fix association of 'json' lsp language id with JSON language 2022-07-12 15:43:59 -07:00
Antonio Scandurra 810a5d5318 Merge pull request #1252 from zed-industries/plugin
Language Server WebAssembly Plugin Integration (Part 2)
2022-07-12 11:04:20 +02:00
Isaac Clayton 99f67fde8c Rename LspAdapterTrait to LspAdapter and LspAdapter to CachedLspAdapter 2022-07-12 09:29:38 +02:00
Isaac Clayton 6a1f649d6a Fix minor issues pointed out in the review 2022-07-11 15:54:03 +02:00
Isaac Clayton aa6fc12980 Remove the blocking call and inline on_lsp_diagnostics_published 2022-07-11 12:11:00 +02:00
Max Brunsfeld 559f6854d0 Upgrade Tree-sitter and limit query cursors' concurrently-buffered matches 2022-07-08 14:09:34 -07:00
Isaac Clayton ce8898acf1 Remove debug statements 2022-07-08 21:28:35 +02:00
Isaac Clayton bf71eb0ae0 Highlight languages as languages load 2022-07-08 21:19:07 +02:00
Antonio ScandurraandMax Brunsfeld d8e346f0e9 Fix spurious borrow checker error
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-07-08 19:03:25 +02:00
Isaac Clayton 3a4657614f Added theme to language 2022-07-08 18:11:28 +02:00
Isaac Clayton 5a48e0fa2a Require theme directly when creating language 2022-07-08 16:08:40 +02:00
Isaac Clayton 2140c81501 Add channel to notify project when languages are added 2022-07-08 14:37:27 +02:00
Isaac Clayton c4c1977bdb Fix errors resulting from rebase 2022-07-07 18:14:16 +02:00
Isaac Clayton 0b85613a86 Done! Finish transition to async, very close to merging 2022-07-07 16:21:20 +02:00
Isaac Clayton ae5262e93a Fix all residual errors, need to polish off warnings and TODOS 2022-07-07 16:17:03 +02:00
Isaac Clayton 2d4bc1704b Switch LspAdapter to struct and revert some async/await 2022-07-07 16:12:10 +02:00
Isaac Clayton 5f055cd352 Going to move LspAdapter from trait to struct 2022-07-07 15:44:21 +02:00
Isaac Clayton 0ba6d9618e Add lsp_settings_changed: Task to Project, need to resolve cx in Project::on_settings_changed 2022-07-07 15:39:59 +02:00
Isaac Clayton b74f90639c Work on updating code to be async 2022-07-07 15:32:41 +02:00
Isaac Clayton eb958dfbb8 Make into async trait, will refactor everything Monday 2022-07-07 15:25:49 +02:00
Isaac Clayton 56a6a81a24 Add JSON LSP plugin 2022-07-07 15:22:16 +02:00
Isaac Clayton f3b8e93a8a Start switching JSON LSP adapter to plugin (take 2) 2022-07-07 15:16:59 +02:00
Antonio Scandurra 3b345cba67 Allow providing an external format in format_on_save setting 2022-07-07 11:04:03 +02:00
Antonio ScandurraandMax Brunsfeld 6d573a2822 Normalize line endings when parsing completions
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-07-06 19:32:45 +02:00
Antonio Scandurra f94bfeb1cc Fix panic on paste when editing with auto-indent
Instead of accepting text as it's input by the user, we will read it
out of the edit operation after it gets sanitized by the buffer.
2022-07-06 19:00:11 +02:00
Max BrunsfeldandKeith Simmons e6c9549bbd Strip carriage returns from all text in text::Buffer
* Moving the logic from Rope to text::Buffer makes it easier
  to keep the Rope in sync with the fragment tree.
* Removing carriage return characters is lossier, but is much
  simpler than incrementally maintaining the invariant that
  there are no carriage returns followed by newlines. We may
  want to do something smarter in the future.

Co-authored-by: Keith Simmons <keith@zed.dev>
2022-07-05 17:25:09 -07:00
Max Brunsfeld 69ed736484 Change Buffer constructors to construct the History internally 2022-07-05 14:51:52 -07:00