Max Brunsfeld
6120d6488b
Start work on following in multi-buffers
2022-11-29 14:50:43 -08:00
Max Brunsfeld
6d9b55a654
Send full multibuffer anchors to following peers
2022-11-28 18:00:38 -08:00
Max Brunsfeld
3eac3e20d5
Emit events from a multibuffer when adding/removing excerpts
2022-11-28 17:57:55 -08:00
Max Brunsfeld
718f802157
Implement Copy for multibuffer anchors
2022-11-28 14:18:49 -08:00
Max Brunsfeld
f71145bb32
Add a layer of indirection between excerpt ids and locators
2022-11-28 14:18:49 -08:00
Julia
03cfd23ac5
Bump protocol version back down as proto changes are non-breaking
2022-11-23 13:40:49 -05:00
Julia
e51cbf67ab
Fixup compile errors
2022-11-22 02:49:47 -05:00
Julia
436c89650a
Rename clamped -> clipped
2022-11-21 15:23:00 -05:00
Julia
074e3cfbd6
Clamp UTF-16 to point conversions
2022-11-21 14:25:01 -05:00
Julia
c4b21a0ab5
Add action to go to next/previous git diff in editor
...
Co-Authored-By: Kay Simmons <kay@zed.dev>
2022-10-28 15:08:13 -04:00
K Simmons
40c3e925ad
Add cursor blink setting and replicate cursor shape to remote collaborators
2022-10-17 16:20:47 -07:00
Julia
2149c17a0a
Merge pull request #1768 from zed-industries/git-gutter-meets-code-folding
...
Git gutter meets code folding (and word wrap fixes)
2022-10-17 14:51:47 -04:00
Julia
9c47325c25
Use correct range to get diff hunks in the presence of wrapped lines
2022-10-13 13:52:44 -04:00
Max Brunsfeld
6cdf4e98fc
Re-export basic text types from text and language crates
...
Also avoid production dependencies on fs and rope in collab
2022-10-12 15:48:19 -07:00
Mikayla Maki
0beb97547e
Finished refactoring out fs and rope
2022-10-11 15:25:54 -07:00
Max Brunsfeld
51fa06cc8d
Merge pull request #1404 from zed-industries/html-support
...
Basic html support
2022-10-06 10:32:44 -07:00
Max Brunsfeld
7fb5fe036a
Derive indent size from the language at the cursor when auto-indenting
2022-10-05 17:07:35 -07:00
Max Brunsfeld
8b86781ad1
Remove last usages of MultiBufferSnapshot::language
2022-10-05 14:44:34 -07:00
Julia
d5fd531743
Move git related things into specialized git crate
...
Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
2022-09-29 13:16:02 -04:00
Julia
7e5d49487b
WIP Notifying buffers of head text change
...
Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
2022-09-29 13:16:02 -04:00
Julia
b18dd8fcff
Fully qualify outside git-related code when a diff is a git diff
2022-09-29 13:16:02 -04:00
Julia
9c82954877
Changed diffs to be async and dropped git delay
2022-09-29 13:16:02 -04:00
Julia
883d5b7a08
Update git gutter status after debounced delay
...
Co-authored-by: Max Brunsfeld <max@zed.com>
2022-09-29 13:16:02 -04:00
Julia
55ca02351c
Start painting some sort of hunk info, it's wrong but it's close
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-09-29 13:16:01 -04:00
Max Brunsfeld
67e188a015
Add Buffer::language_at, update MultiBuffer to use it
...
Co-authored-by: Julia Risley <floc@unpromptedtirade.com>
2022-09-28 12:32:04 -07:00
Antonio Scandurra
f0d35ccc50
Move operation serialization off the main thread
2022-08-23 16:34:25 +02:00
Antonio Scandurra
954695f5fe
Stream buffer ops in the background when creating buffer for peers
2022-08-23 16:05:56 +02:00
ForLoveOfCats
8ba2f77148
One big cleanup pass of clippy lints
...
Co-authored-by: Mikayla <mikayla@zed.dev>
2022-08-10 16:51:01 -07:00
Max Brunsfeld
115677ec5d
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
868c460620
🎨 Rename and simplify some autoindent stuff
2022-07-28 22:40:30 -07:00
Max Brunsfeld
7a26fa18c7
Record start columns when writing to the clipboard from Zed
2022-07-28 22:13:32 -07:00
Max Brunsfeld
fa5af4383d
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 Brunsfeld
cdf6ae25bb
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
4c8d9384b1
Replaces lines_utf16 with a single u32 - last_line_len_utf16
2022-07-25 11:35:42 -07:00
Antonio Scandurra
47e8bd5f4f
Introduce MultiBuffer::clip_offset_utf16
2022-07-25 15:06:04 +02:00
Antonio Scandurra
c46be992e0
Introduce Rope::clip_offset_utf16
2022-07-25 15:02:45 +02:00
Antonio Scandurra
d3567e381c
Coalesce IME compositions into a single edit
2022-07-25 09:53:51 +02:00
Antonio Scandurra
32662b6b92
Start indexing UTF-16 offsets
...
This is needed because cocoa will report ranges as UTF-16 indices.
2022-07-21 09:40:48 +02:00
Antonio Scandurra
07d269234f
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
Keith Simmons
1f3dc2f534
highlight both brackets, only when empty selection, and add test
2022-07-05 15:19:05 -07:00
Keith Simmons
755636d10e
Use NonZeroU32 to ensure settings tabsize cannot be zero
2022-06-23 12:55:38 -07:00
Antonio Scandurra
c31a233aad
Introduce a new fingerprint
field to TextSummary
...
This is calculated in `Rope` and uses the `bromberg_sl2` homomorphic
hash function to determine the fingerprint of a single chunk and
compose each chunk fingerprint into a single fingerprint for the entire
rope that is equivalent to hashing all the rope's bytes at once.
2022-06-17 12:12:37 +02:00
Keith Simmons
b51bd87c10
Rework hover delay, respect editor font size, and enable hover in multibuffers
2022-06-09 17:03:44 -07:00
Max Brunsfeld
87ba68e3ea
Merge pull request #1155 from zed-industries/golang
...
Add Go support
2022-06-09 14:18:37 -07:00
Max Brunsfeld
f62fd3cddd
Add support for hard tabs
...
* Add a `hard_tabs` setting that causes indentation to be performed
using a tab instead of multiple spaces.
* Change Buffer's indentation-related APIs to return an `IndentSize`
struct with a length and a kind, instead of just a single u32.
* Use hard tabs by default in Go.
2022-06-08 18:30:10 -07:00
Antonio Scandurra
5fdafbe8c9
Expose a unique key: usize
in ExcerptBoundary
2022-06-08 15:02:52 +02:00
Antonio Scandurra
15b13fe511
Introduce an optional primary
field to ExcerptRange
2022-06-08 12:23:12 +02:00
Antonio Scandurra
ffb75b0f02
Extract an ExcerptRange
containing a context
field in multi_buffer
...
This lays the groundwork for adding an optional `primary` field that can
be supplied to provide the "jump to" feature.
2022-06-08 12:13:04 +02:00
Antonio Scandurra
8826ad5ddd
Make Buffer::edit
and MultiBuffer::edit
resilient to inverted ranges
...
Previously, we would accept edits containing out-of-order ranges. When
generating such ranges in our randomized tests, many invariants started
breaking causing e.g. undo/redo to misbehave and operation application
to panic.
In theory, we should never pass inverted ranges, but this commit changes
the above functions to swap the start and the end when that occurs to avoid
breaking the entire system and panicking.
2022-06-06 15:22:36 +02:00
Keith Simmons
d7d17b2148
WIP line mode operations
2022-05-26 17:02:05 -07:00