Antonio Scandurra
a88cff4fa0
Remove lifetime parameter from TextDimension trait
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-12-08 09:45:57 -08:00
Max Brunsfeld
6a44a7448e
Consolidate Edit types in editor crate
2021-12-08 09:33:55 -08:00
Max Brunsfeld
fa379885f1
Give more specific names to all snapshot and text iterator types
2021-12-08 09:24:00 -08:00
Max Brunsfeld
6d9bf802e2
Don't pass GH auth header when following redirects for release assets
2021-12-07 12:34:55 -08:00
Max Brunsfeld
ad33111a22
Fix assertion in excerpt unit test after fixing edits
2021-12-06 17:40:32 -08:00
Max Brunsfeld
39cc0cac93
Fix Subscription re-export after moving it into its own module
2021-12-06 17:40:17 -08:00
Max Brunsfeld
102926d171
Implement and randomized test excerpt list point translation and clipping
2021-12-06 17:39:31 -08:00
Max Brunsfeld
09c0c3a0e7
🎨 excerpt_list::Chunks::next
2021-12-06 16:28:44 -08:00
Max Brunsfeld
416033a01c
Get random excerpts test passing w/ text in range, edits
2021-12-06 16:17:31 -08:00
Nathan Sobo
02f42f2877
WIP
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-12-06 14:51:23 -07:00
Nathan Sobo
88e3d87098
Get randomized test passing on basic excerpt list features
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-12-06 13:48:07 -07:00
Nathan Sobo
4578938ea1
Implement ExcerptList::subscribe
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-12-06 13:37:17 -07:00
Nathan Sobo
a02a29944c
Get the basic ExcerptList unit test passing again
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-12-06 13:01:09 -07:00
Nathan Sobo
6965117dd8
Allow patches to be composed with edit iterators in addition to other Patches
...
This can avoid an extra allocation in some cases.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-12-06 13:00:51 -07:00
Nathan Sobo
cff610e1ec
Rename FragmentList to ExcerptList
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-12-06 11:59:32 -07:00
Antonio Scandurra
42eba7268d
Introduce Buffer::edits_since_in_range
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-12-06 19:48:45 +01:00
Antonio Scandurra
e37908cf3b
Start on a simple randomized test for FragmentList
2021-12-06 16:08:17 +01:00
Antonio Scandurra
8354d1520d
🎨
2021-12-06 14:03:38 +01:00
Antonio Scandurra
45d6f5ab04
Start on maintaining edits in FragmentList
2021-12-06 12:10:25 +01:00
Antonio Scandurra
8f90d42723
Merge branch 'main' into project-diagnostics
2021-12-06 09:39:03 +01:00
Max Brunsfeld
b1ed9c88a4
Add tree-sitter-markdown, set up simple markdown higlighting
2021-12-05 21:37:31 -08:00
Max Brunsfeld
026c3476db
Upgrade tree-sitter to 0.20.1
2021-12-05 21:37:08 -08:00
Antonio Scandurra
45d1690f6e
Use 16-bit float to store path windings
...
Previously, we were using a normalized 8-bit unsigned integer which forced us
to represent each increment of the winding number as a fraction of the max
value (1 / 255) which we would then add up using additive alpha blending.
This had three major drawbacks:
- The max winding number could not be greater than 255.
- Adding up (1 / 255) several times could result in a loss of precision.
- Due to also computing anti-aliasing as a fractional winding number, we had to
reduce the max winding number to 32. This was still not good enough because
we would multiply a fractional value with `1 / 32`, thus introducing more and
more loss of precision.
This commit changes the texture type to an `f16` which doesn't require the
division by 255 and enables greater precision in the computation of the
anti-aliased parts of a curve. Note how this also removes the limitation of 255
windings at most per curve. The tradeoff is paying twice as much memory for
storing the texture, but that seems totally valid to achieve rendering accuracy.
Note that this kind of texture should be compatible with WebGL2 once we start
working on a web version of Zed.
2021-12-05 11:17:26 +01:00
Nathan Sobo
0be897d5ac
WIP: Edit one of the excerpted buffers and add an assertion
...
We'll need to detect edits on the child buffers and understand their impact on the tree.
2021-12-04 07:19:30 -07:00
Nathan Sobo
811696670a
Start on a new FragmentList
...
Here I'm exploring a new approach to the project-wide diagnostics view that can exactly mirror the contents of cargo check. The `FragmentList` composes an arbitrary list of fragments from other buffers and presents them as if they were a single buffer.
2021-12-04 06:57:56 -07:00
Antonio Scandurra
3426d46b69
Clear pending keystrokes after dispatching an action
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-12-03 17:59:46 +01:00
Antonio Scandurra
0e93bc41dd
In add_option_view
, avoid bumping view's ref counts if view is None
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-12-03 17:52:39 +01:00
Nathan Sobo
5ae46709b0
Fix alignment of blocks adjacent to other blocks
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-12-01 17:58:44 -07:00
Nathan Sobo
ee693a8d2b
Get all tests passing with new blocks API
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-12-01 17:52:34 -07:00
Nathan Sobo
512a10b037
Use new BlockMap API to render diagnostics
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-12-01 17:22:40 -07:00
Max Brunsfeld
0c714210ff
Start work on generalizing the BlockMap to allow arbitrary elements
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-12-01 15:25:55 -08:00
Antonio Scandurra
e668ff8bcd
Avoid allocating a Patch
just to check if there are no edits
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-12-01 16:47:04 +01:00
Antonio Scandurra
733e0cb21b
Use the new buffer subscription API to keep DisplayMap
in sync
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-12-01 16:08:53 +01:00
Antonio Scandurra
3b536f153f
Introduce text::Buffer::subscribe
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-12-01 15:55:05 +01:00
Antonio Scandurra
47c467dafc
Bump FoldMap's version in FoldMap::sync
(and not in DisplayMap
)
2021-12-01 12:05:02 +01:00
Antonio Scandurra
b841b3eb79
Don't produce invalid intermediate edits in Patch::compose
2021-12-01 11:44:33 +01:00
Max Brunsfeld
faba276fdc
WIP - maintain foldmap with Buffer::edits_since
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-30 17:23:02 -08:00
Max Brunsfeld
924e1578ea
Use &Snapshot
directly instead of impl Into<Content<'a>>
...
The text::Buffer and its snapshot already used the same representation
for their content, so we can just make Buffer deref to a Snapshot.
2021-11-30 13:32:11 -08:00
Nathan Sobo
1445ce10b5
Name the root file of every crate after the crate to ease navigation
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-11-30 12:46:39 -07:00
Nathan Sobo
748b1ba602
Fix warning
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-11-30 12:27:00 -07:00
Nathan Sobo
d3f28166cb
Rename buffer crate to text and name its entrypoint after the crate
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-11-30 12:26:12 -07:00
Nathan Sobo
eacd2a45bb
Bump versions in preparation for release
2021-11-30 09:43:51 -07:00
Nathan Sobo
0ed488d93b
Avoid building up pending edits when soft wrapping is disabled
...
This was causing us to get slower over time as we stacked up hundreds of thousands of pending edits whenever soft wrap was disabled.
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-11-30 08:28:29 -07:00
Antonio Scandurra
2449834868
Use display coordinates for the highlighted row in "go to line"
2021-11-30 11:40:53 +01:00
Nathan Sobo
a1412166f0
Fix randomized test failures by waiting for client_b to be added to worktree_a
...
We perform an async fetch of client_b's user data on worktree_a, which ends up holding a handle that prevents worktree_a from being released later in the test. By waiting for this fetch to finish before proceeding, we can be sure worktree_a actually gets released.
A more comprehensive fix would be some way to ensure we actually perform a release if an entity is fully dropped outside of an update cycle, but this fixes the issue for now.
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-11-29 16:48:09 -07:00
Max Brunsfeld
1a91aa8194
Introduce a collections crate w/ deterministic hashmap, hashset in tests
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-29 15:22:45 -08:00
Max Brunsfeld
5ec003530f
Consolidate pending effects logic into MutableAppContext::update
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-29 14:16:19 -08:00
Max Brunsfeld
4cc1556ca4
Introduce weak_handle methods on ModelContext and ViewContext
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-29 14:13:22 -08:00
Max Brunsfeld
88e0fe6f88
Paint highlighted lines correctly when horizontally scrolled
2021-11-29 11:28:43 -08:00
Antonio Scandurra
1803bd77ef
Fix test assertions
2021-11-29 18:15:03 +01:00
Antonio Scandurra
9d7039ed51
Embed a plain text grammar and override settings for that too
2021-11-29 18:01:51 +01:00
Antonio Scandurra
2c17ae9aa6
Introduce a new Grammar
struct and allow it to be optional
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-29 17:38:59 +01:00
Antonio Scandurra
b9edde7b26
Make settings fields that can be overridden private
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-29 17:08:43 +01:00
Antonio Scandurra
cc78ae14d4
Add a sample markdown grammar to honor the new soft wrap override
2021-11-29 09:39:16 +01:00
Antonio Scandurra
93de2bcfed
Allow overriding editor settings on a per-language basis
2021-11-29 09:39:13 +01:00
Nathan Sobo
815cc7ee91
Give avatar ribbons a rounded top
2021-11-28 14:04:31 -07:00
Nathan Sobo
fbc307cd5e
Associate collaborator avatars with "ribbons" corresponding to their cursor color
2021-11-28 13:25:05 -07:00
Nathan Sobo
a5039cad65
Tweak avatar sizes in titlebar
2021-11-28 12:41:46 -07:00
Nathan Sobo
6ce76ca13e
Render active worktree collaborator avatars in the titlebar
2021-11-28 12:28:10 -07:00
Nathan Sobo
4bd43e67ef
Introduce a TestClient and associate it with a PeerId
...
This makes it easier to integration test peer interactions because now we know their PeerIds.
2021-11-27 12:33:25 -07:00
Nathan Sobo
b307a7e91d
Populate the user data of worktree collaborators
...
This will make it possible for us to render their avatars. Previously we only had the user ids. During rendering, everything needs to be available synchronously. So now, whenever collaborators are added, we perform the async I/O to fetch their user data prior to adding them to the worktree.
2021-11-26 20:35:50 -07:00
Nathan Sobo
9930e92412
WIP: Give worktrees a reference to the UserStore
...
This will allow them to fetch user data when peers are added or removed. Still work to do though.
2021-11-26 19:12:12 -07:00
Nathan Sobo
21aba54dc3
Introduce a worktree::Collaborator struct that holds the user_id
...
We can use this to render avatars.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-11-26 11:28:30 -07:00
Nathan Sobo
d78d5712be
Rename PeoplePanel to ContactsPanel
...
Yeah, it's true they're people, but this is a more specific way in which they're people.
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-11-26 11:13:05 -07:00
Nathan Sobo
c8ad5b68e0
Rename collaborator_logins to authorized_logins
...
Again, this is about reserving the concept of a "collaborator" for actual collaborators on a worktree.
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-11-26 11:08:34 -07:00
Nathan Sobo
cd2c3c3606
Rename Collaborators to Contacts
...
This will allow us to use the word "collaborator" to describe users that are actively collaborating on a worktree.
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-11-26 10:59:41 -07:00
Nathan Sobo
9f29eeda03
Associate Peers with a user_id
...
This will help us render the collaborator avatars for the active worktree when we know its peers.
2021-11-26 10:22:34 -07:00
Nathan Sobo
f453928b44
Associate the project with an active worktree
...
This is similar to the active entry, but it can remain assigned even if there is no active entry and we can potentially manipulate it in other scenarios such as interaction with the project browser. This prepares the ground to show the collaborators for the active worktree.
2021-11-26 10:21:56 -07:00
Nathan Sobo
74cdd32c58
Merge pull request #257 from zed-industries/go-to-line-plus-mouse
...
Preserve selection when clicking on editor dismisses go-to-line dialog
2021-11-25 14:17:29 -07:00
Nathan Sobo
ad26362a82
Preserve selection when clicking on editor dismisses go-to-line dialog
2021-11-25 14:10:43 -07:00
Nathan Sobo
fc2ae42f4b
Implement cmd-k cmd-d to replace selection with next
2021-11-25 13:39:08 -07:00
Nathan Sobo
d249618ee6
Improve range-based selection queries to only resolve the requested selections
2021-11-25 13:19:49 -07:00
Antonio Scandurra
09a53a0c64
WIP
2021-11-25 17:11:30 +01:00
Antonio Scandurra
2f78d93383
Make summaries_for_anchors
/summaries_for_anchor_ranges
more generic
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-25 17:03:06 +01:00
Antonio Scandurra
2f43ef67fd
Allow a single start/end bias per AnchorRangeMap
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-25 16:53:10 +01:00
Antonio Scandurra
f42fd8e1bb
Return Selection
s from Editor::selections_in_range
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-25 16:45:06 +01:00
Antonio Scandurra
861893b7b6
Autoscroll vertically to the newest selection on SelectNext
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-25 16:02:39 +01:00
Antonio Scandurra
10b3fae2c3
Implement SelectNext
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-25 15:44:06 +01:00
Antonio Scandurra
543ebb7e4e
Adjust padding on sign in prompt in titlebar
2021-11-25 10:37:30 +01:00
Antonio Scandurra
0d8c68ae1d
Replace signed out silhouette with a "Sign in" label
2021-11-25 10:34:03 +01:00
Nathan Sobo
f7532c785e
Render the current line, column, and line count in go to line dialog
2021-11-24 16:52:18 -07:00
Nathan Sobo
a07fe3aa58
Improve styling of the go to line modal
2021-11-24 16:16:29 -07:00
Nathan Sobo
1e49b56626
Restore scroll position and selections when cancelling go-to-line
...
But preserve the line when confirming.
2021-11-24 15:43:48 -07:00
Nathan Sobo
8c0541b455
Fix warnings
2021-11-24 15:24:27 -07:00
Nathan Sobo
0854976691
Highlight the selected line when typing in the go to line dialog
2021-11-24 15:23:45 -07:00
Antonio Scandurra
53a7da9d3f
Allow centering selections when requesting autoscroll
...
We use this new capability in the "go to line" modal.
2021-11-24 19:50:47 +01:00
Antonio Scandurra
cea8107242
WIP: Start on go to line
2021-11-24 18:45:36 +01:00
Antonio Scandurra
afdac15572
Move integration test up into the zed
crate
2021-11-24 17:39:15 +01:00
Antonio Scandurra
e88d3bb97e
Invert dependency between editor
and workspace
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-24 17:07:16 +01:00
Antonio Scandurra
2cf44d30b7
🔥
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-24 16:17:41 +01:00
Antonio Scandurra
03bd6d6c33
Pull up diagnostic and cursor position status bar items creation
2021-11-24 16:04:24 +01:00
Antonio Scandurra
9bb195e177
Introduce "entry openers" but still register editors in workspace
2021-11-24 15:18:15 +01:00
Antonio Scandurra
a7186c643f
Skip over block lines when building columnar selections
2021-11-24 10:40:06 +01:00
Antonio Scandurra
3a9b69077e
Reverse columnar selections when head moves before tail's column
2021-11-24 10:37:35 +01:00
Antonio Scandurra
d19d3bbe45
Calculate an overshoot when mousing to build columnar selections
2021-11-24 10:28:32 +01:00
Nathan Sobo
2b9db911c7
WIP
2021-11-24 09:18:41 +01:00
Nathan Sobo
e0bf5337ca
Merge pull request #244 from zed-industries/mouse-selections
...
Improve support for selecting text via the mouse
2021-11-23 18:11:04 -07:00
Max Brunsfeld
294769be35
Add outdent command, fix indent bugs
2021-11-23 16:44:05 -08:00
Nathan Sobo
bfecdb7bc0
Remove newest selection when adding a selection with a click count > 1
...
This prevents selections added in earlier clicks from being rendered under the pending selection.
2021-11-23 16:30:33 -07:00
Nathan Sobo
73afb29b04
Use alt modifier instead of cmd to add selections
2021-11-23 16:23:30 -07:00
Nathan Sobo
9e651ee127
Simplify handling of shift-click to extend selections
2021-11-23 16:03:21 -07:00
Nathan Sobo
d969f38850
Implement shift-click to extend the newest selection
2021-11-23 15:42:21 -07:00
Max Brunsfeld
f0db748ba1
Implement toggle-comments
2021-11-23 14:13:28 -08:00
Max Brunsfeld
091ed9ab47
Maximize new windows
2021-11-23 10:24:31 -08:00
Antonio Scandurra
63089badf1
Simulate line-wise selection when clicking on the gutter
2021-11-23 19:14:39 +01:00
Antonio Scandurra
7a79df7a24
Implement line-wise selection
2021-11-23 19:10:15 +01:00
Antonio Scandurra
bcf38e6bb5
Implement word-wise mouse selection
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-23 18:50:17 +01:00
Max Brunsfeld
a0287920e5
Remove cargo-bundle from dev-dependencies
...
The cargo-bundle crate is installed separately in the
'bundle' script via 'cargo install'.
2021-11-23 09:25:22 -08:00
Antonio Scandurra
3269b9925f
WIP: Start integrating SelectMode
and movement::surrounding_word
2021-11-23 17:04:58 +01:00
Antonio Scandurra
a0ea5b38a0
Add a new movement::surrounding_word
function
2021-11-23 17:04:37 +01:00
Antonio Scandurra
005a7076af
Expose a count
field on Event::LeftMouseDown
2021-11-23 16:18:17 +01:00
Antonio Scandurra
6b7ee10287
Retry flaky test_soft_wraps
5 times before giving up
...
We have other tests that rely on loading fonts that intermittently
fail on CI and for which we used the same mitigation.
2021-11-23 11:25:04 +01:00
Max Brunsfeld
4002be882f
Clear sprite cache when scale factor changes
2021-11-22 16:47:51 -08:00
Max Brunsfeld
23fbeaf978
Include scale factor in glyph cache keys
2021-11-22 16:37:01 -08:00
Max Brunsfeld
66e27b7420
Merge pull request #233 from zed-industries/fix-split-selection-into-lines
...
Place the cursor at end of first line when splitting selections into lines
2021-11-22 16:25:19 -08:00
Max Brunsfeld
ce71ed3959
Adjust assertion in test for split_selection_into_lines
2021-11-22 16:19:24 -08:00
Nathan Sobo
68223bdb67
Place the cursor at end of first line when splitting selections into lines
2021-11-22 15:53:37 -07:00
Nathan Sobo
2f39dee28b
Use uniform biases in AnchorMap, AnchorRangeMap
...
Specifying a different bias for every point makes the interface feel pretty unwieldy and we don't really use it.
2021-11-22 15:30:46 -07:00
Max Brunsfeld
612b4404a9
Fix the bias of deserialized selection sets
...
Fixes #224
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-22 14:14:48 -08:00
Max Brunsfeld
cfe6103daf
Fix selection set id mismatch when rendering guest selections
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-22 14:10:17 -08:00
Max Brunsfeld
ca4086b844
0.8.0
2021-11-22 13:33:54 -08:00
Max Brunsfeld
c13a26ff7b
Bump RPC protocol version
2021-11-22 13:33:05 -08:00
Max Brunsfeld
cfaab6cfb6
Merge pull request #228 from zed-industries/faster-clock-global
...
Switch to a dense representation for `clock::Global`
2021-11-22 13:31:27 -08:00
Max Brunsfeld
7474813a17
Impose a timeout on writing RPC messages
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-22 13:23:55 -08:00
Antonio Scandurra
b25c3eb740
Switch to a dense representation for clock::Global
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-22 17:20:43 +01:00
Max Brunsfeld
447f710570
Merge pull request #226 from zed-industries/1d-block-map
...
Allow full diagnostic messages to be displayed in the editor
2021-11-19 09:16:49 -08:00
Antonio Scandurra
6f5ca6064b
Use anchor_after
in randomized tests to match BlockMap
2021-11-19 18:04:31 +01:00
Antonio Scandurra
c844fcdc09
Invalidate active diagnostic when its primary range collapses
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-19 16:46:54 +01:00
Antonio Scandurra
b0afc80678
Ignore diagnostics with empty ranges
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-19 16:30:26 +01:00
Antonio Scandurra
a023950f28
Remove unused group_range
field
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-19 16:17:50 +01:00
Antonio Scandurra
8e74cc178e
Invalidate active diagnostics when they are removed
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-19 16:15:22 +01:00
Antonio Scandurra
61d8848b31
Make BlockMap::sync
private
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-19 15:44:19 +01:00
Antonio Scandurra
dfbfa86548
WIP
2021-11-19 15:31:33 +01:00
Antonio Scandurra
2664dad2bc
Allow styling of invalid diagnostics
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-19 14:35:00 +01:00
Antonio Scandurra
8d5e3fb159
Allow styling of the gutter for block lines
2021-11-19 11:30:01 +01:00
Max Brunsfeld
8d1a4a6a24
Start work on allowing blocks to be styled
2021-11-18 18:16:35 -08:00
Max Brunsfeld
c04151f999
Bind ShowNextDiagnostic to f8
2021-11-18 14:24:03 -08:00
Max Brunsfeld
0b63d882ce
Allow key bindings to F1 through F12
2021-11-18 14:23:36 -08:00
Max Brunsfeld
6aa346dec8
Fix switched input + output rows in BlockSnapshot::buffer_rows
2021-11-18 12:41:58 -08:00
Max Brunsfeld
bef09696f6
Align block text with the anchor's column
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-18 12:17:22 -08:00
Antonio Scandurra
1a8b23e118
Color diagnostic messages based on their severity
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-18 17:47:10 +01:00
Antonio Scandurra
f39942863b
Dismiss active diagnostics when hitting escape
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-18 16:57:05 +01:00
Antonio Scandurra
5094380c83
Enhance keyboard navigation when showing next diagnostic
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-18 16:55:18 +01:00
Antonio Scandurra
643545e91e
When showing the next diagnostic, advance to the next *primary* one
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-18 16:04:16 +01:00
Antonio Scandurra
0e51365770
In a diagnostic group, mark the highest-severity diagnostic as primary
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-18 15:53:00 +01:00
Antonio Scandurra
401b59be5c
Refactor retrieving oldest and newest selection
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-18 15:18:35 +01:00
Antonio Scandurra
0a6293bcda
Support highlighting in blocks
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-18 14:08:21 +01:00
Antonio Scandurra
0f1eb3dd2e
Skip block lines when moving up and down
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-18 13:45:06 +01:00
Antonio Scandurra
856768a43c
Remove aggressive logging from WrapMap
update code paths
2021-11-18 11:13:40 +01:00
Antonio Scandurra
08e0444ee4
Use char count instead of byte count to determine longest row
2021-11-18 11:01:12 +01:00
Antonio Scandurra
b80887dabe
Don't insert blocks within multi-byte characters in randomized test
2021-11-18 10:54:25 +01:00
Antonio Scandurra
572e571927
Test longest row only when tabs are not present or the tab size is 1
...
This is because the longest row calculation is best-effort at the moment,
since this information is not indexed in the `TabMap`.
2021-11-18 10:54:22 +01:00
Antonio Scandurra
5a9dea5299
Ensure TabMap
works correctly when there are folds
2021-11-18 10:37:04 +01:00
Antonio Scandurra
9ba24794c7
Re-enable tabs, spaces and multi-byte characters in randomized tests
2021-11-18 10:35:31 +01:00
Antonio Scandurra
84d257470a
Fix empty range edge case in FoldMap
2021-11-18 10:33:31 +01:00
Antonio Scandurra
4967a8d5ef
Trim expanded tabs if they overshoot the provided range
2021-11-18 09:52:42 +01:00
Antonio Scandurra
b10c82c015
Stop at range.end
when computing text summary for range in TabMap
2021-11-18 09:52:05 +01:00
Nathan Sobo
213aa36e1c
WIP: Track down bugs with longest_row on wrap map
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-11-17 19:45:56 -07:00
Nathan Sobo
c5956a0363
Start at the end of the last transform when catching up to edits during wrapping
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-11-17 19:44:17 -07:00
Max Brunsfeld
8230dd9a3b
WIP - BlockSnapshot::longest_row
2021-11-17 16:00:52 -08:00
Max Brunsfeld
cb18131432
Represent scroll position correctly when scrolled mid-block
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-17 14:56:55 -08:00
Max Brunsfeld
707ffe8ff3
Implement BlockSnapshot::line_len, use it in DisplayMap
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-17 14:56:05 -08:00
Max Brunsfeld
00b5cc472e
Fix BlockSnapshot::chunks when starting in a block
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-17 14:54:47 -08:00
Max Brunsfeld
1c3bf90a8a
Reimplement BlockSnapshot::{clip_point,to_block_point,max_point}
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-17 12:54:14 -08:00
Antonio Scandurra
e60500dd7c
Re-enable soft-wrapping in randomized tests
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-11-17 19:46:43 +01:00
Antonio Scandurra
88d0c04444
Implement BlockSnapshot::buffer_rows
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-11-17 19:45:06 +01:00
Antonio Scandurra
198f6694b7
Use options to represent soft-wrapped buffer rows
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-11-17 19:30:40 +01:00
Antonio Scandurra
d9283efbe6
Make BlockMap
1d
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-11-17 19:26:57 +01:00
Nathan Sobo
18354c5e04
Hack in show next diagnostic command
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-11-16 16:51:38 -08:00
Nathan Sobo
52a4c15c14
Eliminate non-highlighted chunks APIs
...
Now we only have a single code path for chunks across all layers, but highlighting is optional and controlled by a flag.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-11-16 16:51:38 -08:00
Nathan Sobo
7dd9b9539e
WIP
2021-11-16 13:19:04 -07:00
Nathan Sobo
092689ed56
WIP
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-11-16 13:10:06 -07:00
Nathan Sobo
880b3f087f
Insert empty isomorphic transforms on empty lines
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-11-16 12:14:00 -07:00
Antonio Scandurra
d25ec39a23
Rework BufferRows
iterator to pass the randomized tests
...
...without booleans.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-11-16 18:18:47 +01:00
Antonio Scandurra
712616d167
Start on a randomized test for BlockMap::buffer_rows
2021-11-16 15:35:35 +01:00
Max Brunsfeld
1cc7615d06
Implement basic version of BlockMap::buffer_rows
...
Passed 1 simple test
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-15 17:41:13 -08:00
Max Brunsfeld
76ee44748e
Fix minor bug in BlockMap::clip_point
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-15 16:25:51 -08:00
Nathan Sobo
7d1ba6455b
Implement BlockMapWriter::remove
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-11-15 17:09:26 -07:00
Nathan Sobo
7b12c1c9e0
Enable soft wrap in randomized test of BlockMap
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-11-15 16:59:02 -07:00
Nathan Sobo
862b988d56
Position blocks above/below buffer lines, even when the anchored line is soft-wrapped
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-11-15 16:45:51 -07:00
Max Brunsfeld
2cb8b0fcd3
wip
2021-11-15 15:04:53 -08:00
Max Brunsfeld
3bd4542bce
Remove bias parameter when converting display points to buffer points
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-15 14:36:03 -08:00
Max Brunsfeld
213b94afd4
Remove bias parameter from to_display_point
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-15 14:21:55 -08:00
Max Brunsfeld
8b1b35913a
Fix group_ids assertions in diagnostics test
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-15 14:18:58 -08:00
Max Brunsfeld
0a704b8d67
Fix infinite loop in BlockMap::highlighted_chunks
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-15 14:18:45 -08:00
Max Brunsfeld
b4bc7906d2
Propagate wrap edits to block map when folding / unfolding
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-15 14:18:24 -08:00
Max Brunsfeld
d2f4d37af8
Get BlockMap randomized test passing w/o soft wraps
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-15 13:36:40 -08:00
Max Brunsfeld
3498e92d1c
Get BlockMap unit test passing
2021-11-15 12:39:40 -08:00
Antonio Scandurra
763ab4d5f1
WIP
2021-11-15 19:52:48 +01:00
Antonio Scandurra
53872a6024
WIP
2021-11-15 19:38:06 +01:00
Antonio Scandurra
314c97715d
WIP
2021-11-15 18:01:30 +01:00
Antonio Scandurra
131979dff0
WIP
2021-11-15 17:54:28 +01:00
Antonio Scandurra
34f85b5690
WIP
2021-11-15 17:15:30 +01:00
Antonio Scandurra
cebab56c94
Make BlockMap
randomized test pass in low-complexity cases
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-15 16:47:30 +01:00
Antonio Scandurra
296944e34d
Make BlockMap
unit test pass with 2d coordinates
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-15 16:30:58 +01:00
Nathan Sobo
3154ccbafe
WIP
2021-11-14 16:24:40 -07:00
Nathan Sobo
e644c0876e
WIP: Start moving BlockMap to a 2d indexing scheme
2021-11-14 08:29:41 -07:00
Nathan Sobo
5832153712
Hack: Synthesize a newline before blocks below the last line of the buffer
2021-11-14 07:43:35 -07:00
Nathan Sobo
b6e6dafca7
Account for trailing below blocks in BlockSnapshot::max_point
2021-11-13 19:50:42 -07:00
Nathan Sobo
d6bc05cad0
Fix BlockMap unit test by skipping below blocks when advancing transforms
2021-11-13 18:19:21 -07:00
Nathan Sobo
c9cbeafc05
Start on BlockSnapshot::clip_point
...
Not sure it works yet. Ran into another failure in the unit tests.
2021-11-13 17:44:09 -07:00
Max Brunsfeld
364fab7b5f
wip - wiring up blockmap into displaymap
2021-11-12 17:29:09 -08:00
Max Brunsfeld
c278503166
Make block insertion work in simple cases
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-12 16:40:01 -08:00
Max Brunsfeld
2e61a586b6
Fix compile errors
2021-11-12 13:55:47 -08:00
Nathan Sobo
e605a5ead2
Sketch an initial implementation for block_map::HighlightedChunks
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-11-12 14:51:25 -07:00
Max Brunsfeld
6f97a9be3b
wip
2021-11-12 12:09:35 -08:00
Max Brunsfeld
227c612dac
BlockMap WIP
2021-11-12 11:49:48 -08:00
Antonio Scandurra
c8e47a8c63
Start on a randomized test for BlockMap
...
This is currently passing and ensures we maintain the input coordinate
space correctly.
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-11-12 19:01:39 +01:00
Antonio Scandurra
d721c2ba4b
Remove redundant code path in Patch::compose
2021-11-12 17:24:25 +01:00
Antonio Scandurra
3f11b8af56
Maintain row edits since last sync in WrapMap
2021-11-12 17:05:49 +01:00
Antonio Scandurra
4e32fabfdc
Add text manipulation facilities to Rope
for test purposes
2021-11-12 17:02:51 +01:00
Antonio Scandurra
fe786f3366
Init env_logger
in the editor
crate for tests only
2021-11-12 17:01:57 +01:00
Antonio Scandurra
b9c459e800
Use log::info
instead of println
in patch randomized tests
2021-11-12 17:00:44 +01:00
Antonio Scandurra
b2aab0c773
🎨
2021-11-12 16:31:01 +01:00
Antonio Scandurra
f49c9db423
Make Patch::compose
work
2021-11-12 15:07:28 +01:00
Antonio Scandurra
6e882bcd02
Avoid composing edits together for now
2021-11-12 09:01:15 +01:00
Nathan Sobo
068aa1adb3
WIP
2021-11-12 00:20:39 -07:00
Nathan Sobo
47ad9baebc
wip
2021-11-12 00:03:47 -07:00
Nathan Sobo
84d789b8ac
WIP
2021-11-11 23:28:45 -07:00
Max Brunsfeld
0159019850
Simplify assertions in randomized patch test, fix some patch bugs
2021-11-11 18:28:07 -08:00
Max Brunsfeld
1f2eb9ddbc
Add patch unit tests, get composition working for ops <= 3
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-11 17:36:30 -08:00
Antonio Scandurra
d75f415b25
WIP
2021-11-11 19:49:01 +01:00
Antonio Scandurra
4fecab6d4b
WIP
2021-11-11 19:42:55 +01:00
Antonio Scandurra
e0897cd019
WIP
2021-11-11 18:13:35 +01:00
Antonio Scandurra
a939535d95
WIP
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-11 16:52:14 +01:00
Antonio Scandurra
59bbe43a46
WIP
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-11 16:00:52 +01:00
Antonio Scandurra
b2caf9e905
WIP: Start on BlockMap
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-11 15:04:39 +01:00
Antonio Scandurra
7dcf30c954
WIP
2021-11-11 15:04:31 +01:00
Nathan Sobo
118f137f18
WIP: Rework injection map to be focused solely on block injections
2021-11-10 20:49:06 -07:00
Nathan Sobo
0fff7d9166
WIP: Probably the wrong direction
2021-11-10 17:44:56 -07:00
Nathan Sobo
62ec105bff
WIP
2021-11-10 14:00:51 -07:00
Max Brunsfeld
8b9488bacb
Add missing group_id fields in rpc test
2021-11-04 17:34:33 -07:00
Antonio Scandurra
2f4d8932dc
Allow querying a diagnostic group by its id
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-04 15:16:59 +01:00
Antonio Scandurra
78bbb83448
Assign diagnostics a group_id
based on their related_information
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-04 14:52:34 +01:00
Max Brunsfeld
61b9179fb1
Merge pull request #222 from zed-industries/fix-hover-beachball
...
Give the MouseEventHandlers for each tab bar their own id
2021-11-03 19:38:04 -07:00
Max Brunsfeld
a72bdac7df
Fix paths to server crate in scripts and gitignore
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-03 19:22:00 -07:00
Nathan Sobo
0ff87e603f
Give the MouseEventHandlers for each tab bar their own id
...
This fixes a beachball where we oscillate back and forth between hovered and unhovered due to confusing two different tab bars as the same tab bar.
2021-11-03 19:15:55 -06:00
Nathan Sobo
2d6285a6e1
Start on a test for grouped diagnostics
2021-11-03 18:47:18 -06:00
Nathan Sobo
44e0a00734
Only show the first line of diagnostic messages in the status bar
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-11-03 16:52:32 -06:00
Max Brunsfeld
1ec31738e6
Improve styling of diagnostic status bar item
2021-11-03 14:15:22 -07:00
Max Brunsfeld
baf636a4a4
Extend empty diagnostic ranges at the ends of lines
2021-11-03 13:49:39 -07:00
Max Brunsfeld
9384823e47
Remove logging in worktree tests
2021-11-03 12:36:57 -07:00
Max Brunsfeld
8b5089c759
In the status bar, show the diagnostic under the cursor
2021-11-03 12:33:16 -07:00
Antonio Scandurra
941d935c4a
End pending selection when starting a transaction
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-03 19:15:54 +01:00
Antonio Scandurra
c07d794249
Avoid ending the pending selection until updating selections
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-11-03 19:07:06 +01:00
Antonio Scandurra
9dc3c74260
Make resolving selections generic
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-11-03 17:51:57 +01:00
Antonio Scandurra
a26b066788
Introduce a status bar and add the cursor position to it
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-11-03 17:27:51 +01:00
Antonio Scandurra
258b89bb70
Request autoscroll when undoing/redoing
2021-11-03 09:44:23 +01:00
Antonio Scandurra
20a77f4c5e
Fix test for disk-based diagnostics
2021-11-03 09:39:15 +01:00
Max Brunsfeld
9a7ecfbc4f
Use status colors for diagnostic underlines
2021-11-02 17:51:18 -07:00
Max Brunsfeld
8d3f42de52
Start language servers based on buffers' languages
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-02 17:41:01 -07:00
Max Brunsfeld
a66b81d60a
Add an integration test for replicating buffer's diagnostics
2021-11-02 14:57:24 -07:00
Max Brunsfeld
89392cd23d
Avoid using worktree handle in File's path methods
...
This avoids a circular model update that was happening
when trying to retrieve the absolute path from a buffer's
file while applying remote operations.
2021-11-02 14:33:55 -07:00
Max Brunsfeld
1995bd89a6
Deserialize buffer's diagnostics
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-02 12:29:03 -07:00
Nathan Sobo
2c57703ad6
Explicitly shut down language servers when quitting the app
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-11-02 13:16:25 -06:00
Antonio Scandurra
882c8ce696
Avoid error during deserialization if the result
field isn't there
2021-11-02 14:58:00 +01:00
Antonio Scandurra
f5aa07aac9
Remove all windows before quitting
...
This gives all entities a chance of running `Drop::drop` which,
in turn, could cause them to spawn a critical task. For example,
we use this capability when a language server is dropped and we
need to asynchronously send a shutdown message.
2021-11-02 14:55:31 +01:00
Max Brunsfeld
61e06487b7
Avoid circular model update when sending diagnostics operations
2021-11-01 17:14:22 -07:00
Max Brunsfeld
0e62ddbb65
Replicate diagnostics to remote buffers
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-01 15:28:37 -07:00
Max Brunsfeld
40c861c249
Move protobuf logic from buffer crate to language crate
...
This will enable us to add operations that only pertain to the language crate.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-01 14:05:19 -07:00
Max Brunsfeld
78d97a3db2
Use Diagnostic struct in buffer's diagnostics multimap
2021-11-01 12:59:01 -07:00
Max Brunsfeld
1aee7bdb1d
Delay quit until language servers are gracefully shut down
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-01 11:57:31 -07:00
Max Brunsfeld
b8994c2a89
Add a facility for delaying quit until critical tasks finish
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-11-01 11:57:31 -07:00
Antonio Scandurra
6e5ec2a00d
Take a &clock::Global
instead of cloning in edits_since
2021-11-01 10:48:20 +01:00
Antonio Scandurra
f59be5fecf
Always notify when receiving buffer operations
...
We had changed it to only emit a notification when the buffer was
actually edited, but we also want to notify when we receive non-edit
operations, such as a selection update.
2021-11-01 10:06:23 +01:00
Nathan Sobo
3228a55329
Fix test-support feature propagation for editor and workspace
2021-10-30 07:40:20 -06:00
Antonio Scandurra
b571eae4f3
Extend empty diagnostic ranges by one character
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-29 19:09:19 +02:00
Antonio Scandurra
6212ebad9b
Communicate with language servers in terms of UTF-16 coordinates
...
This required indexing UTF-16 positions in `Rope`. We tried opting
into the UTF-8 experimental support but it didn't seem to work
correctly and the standard is UTF-16 anyway.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-29 18:33:23 +02:00
Antonio Scandurra
9c1b01521a
Avoid unnecessary conversion to offsets in diagnostics_in_range
2021-10-29 14:41:41 +02:00
Antonio Scandurra
78c158e1a4
Support only UTF-8 for now when communicating with language server
2021-10-29 12:02:42 +02:00
Max Brunsfeld
2cbb313467
Avoid panic when rust language isn't present (project unit tests)
2021-10-28 17:12:17 -07:00
Max Brunsfeld
e1556893f7
Merge branch 'anchor-map-selections' into lsp
2021-10-28 17:08:06 -07:00
Max Brunsfeld
2952f2c905
🎨 anchor.rs
2021-10-28 16:48:07 -07:00
Max Brunsfeld
a1e576343e
Rename AnchorRangeSet::to_point_ranges -> point_ranges
2021-10-28 16:32:49 -07:00
Max Brunsfeld
9bc08e446b
Fix unit test for on-disk-changes to not rely on selection bias
2021-10-28 16:17:07 -07:00
Max Brunsfeld
f3cd710f21
Create valid disjoint selection sets in selections_in_ranges
2021-10-28 16:04:16 -07:00
Max Brunsfeld
efc85d1b75
Get the Editor crate compiling
2021-10-28 15:42:24 -07:00
Antonio Scandurra
9c74be3bf2
Start fixing compilation errors on Editor
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-10-28 19:36:43 +02:00
Antonio Scandurra
ce8741977b
Clip points coming from language server
...
This avoids panicking in Zed if the points they give us are invalid.
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-10-28 19:02:26 +02:00
Antonio Scandurra
d12387b753
Ensure start endpoints always come before end endpoints
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-10-28 18:26:32 +02:00
Antonio Scandurra
50afb2d65f
Remove stray println! statements in the LSP I/O code
2021-10-28 14:07:14 +02:00
Antonio Scandurra
ee78d6f17b
Express multi-cursor edits using the new coordinate space
...
The language server expects that ranges further in the list of edits
account for the impact of prior changes in the edit list.
2021-10-28 13:40:55 +02:00
Antonio Scandurra
7091e0c567
Add a unit test for disk-based diagnostics
2021-10-28 11:37:24 +02:00
Antonio Scandurra
ac76706aa7
Sort LSP diagnostics by (start, end)
2021-10-28 11:36:33 +02:00
Antonio Scandurra
fcb217b9e8
Report new_lines
extent correctly when coalescing edits
2021-10-28 11:32:10 +02:00
Nathan Sobo
9977248926
Adjust disk-based diagnostics based on edits since the last save
...
Still need to add tests... not sure if this is right yet.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-10-27 18:58:07 -06:00
Max Brunsfeld
0c10d6c82d
Introduce FullOffset type
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-10-27 18:30:00 -06:00
Antonio Scandurra
bc076c1cc1
Update display map snapshots when diagnostics are updated
...
This is similar to what we do when we receive new parse trees from
tree-sitter.
2021-10-27 12:42:16 +02:00
Antonio Scandurra
a7a73a5b0b
Fix bug in to_full_offset
when Anchor::version
!= Content::version
2021-10-27 11:56:04 +02:00
Max Brunsfeld
c539069cbb
Include diagnostic info in HighlightedChunks iterator
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-26 17:57:50 -07:00
Max Brunsfeld
f1db618be2
Generalize AnchorRangeMultimap's 'intersecting ranges' API
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-26 17:56:39 -07:00
Max Brunsfeld
79ba217485
Fix routing of diagnostics to buffers in worktree
2021-10-26 15:46:39 -07:00
Max Brunsfeld
ef4fc42d93
Allow retrieving a buffer's diagnostics
2021-10-26 15:46:08 -07:00
Max Brunsfeld
5bfbeb55c0
Simplify buffer constructor methods
...
Don't expose the `buffer::History` to callers of `language::Buffer`
2021-10-26 14:26:47 -07:00
Max Brunsfeld
4069db4959
Allow underlines to have different color than the text
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-26 12:46:46 -07:00
Max Brunsfeld
7d5425e142
Move lsp configuration into language crate
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-26 12:17:51 -07:00
Max Brunsfeld
de8218314c
Notify language server when saving a buffer
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-26 11:45:59 -07:00
Nathan Sobo
1a92a19954
Remove Anchor from protocol
2021-10-26 12:04:04 -06:00
Antonio Scandurra
0674e76864
WIP
2021-10-26 19:42:40 +02:00
Antonio Scandurra
60abc5f090
Take ToOffset
instead of anchors in intersecting_point_ranges
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-26 17:04:12 +02:00
Antonio Scandurra
e8a2885721
Introduce Content::anchor_range_multimap
2021-10-26 14:28:02 +02:00
Antonio Scandurra
5dc47c625e
Fix compilation errors
2021-10-26 14:27:00 +02:00
Max Brunsfeld
64445c7d1c
Start work on AnchorRangeMultimap
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-25 21:42:55 -07:00
Max Brunsfeld
50c77daa0b
Start work on a test for worktree handling LSP diagnostics
2021-10-25 21:42:55 -07:00
Max Brunsfeld
c3ff489fee
Handle initialize request internally in fake lsp server
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-25 18:04:27 -07:00
Max Brunsfeld
6384950d56
Merge remote-tracking branch 'origin/main' into lsp
2021-10-25 16:24:08 -07:00
Max Brunsfeld
b49a268031
Add a fake lsp server
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-25 15:28:40 -07:00
Antonio Scandurra
2d6d10f920
Log unhandled notifications in LanguageServer
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-10-25 19:46:33 +02:00
Antonio Scandurra
580bad2042
Get a basic end-to-end test for rust-analyzer integration working
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-10-25 18:11:52 +02:00
Nathan Sobo
ab4f90a20a
Get language and project compiling
2021-10-25 09:26:36 -06:00
Antonio Scandurra
7105589904
Don't send notifications or requests until LSP is initialized
2021-10-25 12:29:28 +02:00
Antonio Scandurra
59ed535cdf
Implement a more robust way of locating rust-analyzer
...
When bundled, we will retrieve it out of the `Resources` folder.
Locally, we're expected to run `script/download-rust-analyzer` and
put `vendor/bin` in our $PATH.
2021-10-25 11:02:35 +02:00
Nathan Sobo
60a8e74430
Get buffer compiling with new SelectionSets based on AnchorRangeMap
...
One test is failing however.
2021-10-22 14:12:16 -06:00
Nathan Sobo
6ba4af3e26
WIP: Start converting SelectionSet to use AnchorRangeMap
2021-10-22 13:19:19 -06:00
Nathan Sobo
3ae5ba09fd
Implement TryFrom<proto::SelectionSet> on SelectionSet
...
More prep work for changing the selection set representation.
2021-10-22 12:46:02 -06:00
Nathan Sobo
401bdf0ba1
Simplify protocol messages related to selection sets
...
This prepares the way to switch to using AnchorRangeMaps to store and transmit selection sets.
2021-10-22 12:35:29 -06:00
Nathan Sobo
087ff28d0d
Move SelectionSet and Into impl to selection module
2021-10-22 09:56:47 +02:00
Antonio Scandurra
715faaaceb
WIP
2021-10-21 19:27:10 +02:00
Antonio Scandurra
2c6aeaed7c
Start on integrating rust-analyzer
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-10-21 16:26:37 +02:00
Max Brunsfeld
282195b13e
Assign new file handles on buffers when their files change on disk
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-21 13:08:54 +02:00
Max Brunsfeld
eb9d7c8660
Update buffer's saved mtime when file is reloaded after on-disk change
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-21 12:05:44 +02:00
Max Brunsfeld
eea0f35d38
Rename TextBuffer back to Buffer
2021-10-21 11:12:19 +02:00
Max Brunsfeld
37eae2ba67
Remove unnecessary dependencies in buffer and language crates
2021-10-21 09:40:50 +02:00
Max Brunsfeld
81a85e9c79
Extract a language crate
2021-10-20 22:51:40 +02:00
Max Brunsfeld
cdb268e656
Re-enable randomized concurrent edits test
2021-10-20 21:44:26 +02:00
Max Brunsfeld
30e2e2014d
Extract a TextBuffer from Buffer, which has no tree or file
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-20 00:10:57 +02:00
Nathan Sobo
76774d6a3c
Merge pull request #205 from zed-industries/autoindent
...
Autoindent
2021-10-19 14:23:04 +02:00
Nathan Sobo
5558d553bb
Insert an extra newline between brackets
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-10-19 13:17:16 +02:00
Nate Butler
2286a94185
Make light collab cursor not yellow for Nathan ;)
2021-10-17 18:28:05 +02:00
Nathan Sobo
561857fdf2
Restore all active selections when undoing/redoing autoindent
...
In the unlikely event that we're handling autoindent requests from multiple editors, we undo/redo selections from both editors. This is somewhat imperfect but probably good enough and easier than performing auto-indents on a per-editor basis.
2021-10-11 17:22:18 -06:00
Max Brunsfeld
47372e7342
Move selections explicitly when applying autoindents
2021-10-11 15:27:38 -07:00
Max Brunsfeld
63e775eb4c
Add unit tests for selective indentation adjustment
2021-10-11 13:02:01 -07:00
Max Brunsfeld
6dc9d3ac19
Move buffer tests into their own file
2021-10-11 12:18:31 -07:00
Max Brunsfeld
53f1078119
Ensure that autoindent task yields frequently to respect cancellation
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-11 11:25:15 -07:00
Antonio Scandurra
28ffd750ce
WIP: Determine autoindents asynchronously
...
We still need to insert yield points in `compute_autoindents`.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-11 18:00:48 +02:00
Antonio Scandurra
7f5d454b2d
Fix creation of anchors for the inserted portion of an edit
2021-10-11 13:08:50 +02:00
Antonio Scandurra
b43c78053b
Always use seek_forward
when resolving anchors
2021-10-11 09:37:21 +02:00
Nathan Sobo
6531df2368
Improve auto-indenting of inserted lines
...
Still not working totally correctly with our new approach, but getting closer.
2021-10-08 22:07:01 -06:00
Max Brunsfeld
e78a5642fa
Start on new way of comparing old and new indent suggestions
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-08 16:54:27 -07:00
Nathan Sobo
b85ae89b7e
Extend Rust where clauses past their final newline for indentation
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-10-08 10:32:15 -06:00
Nathan Sobo
810315e04c
Don't request auto-indent if there is no language assigned on the buffer
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-10-08 10:25:16 -06:00
Nathan Sobo
b4680144c5
Unconditionally preserve indentation when inserting newlines
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-10-08 10:25:00 -06:00
Antonio Scandurra
c60bc00c9e
💄
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-08 17:43:19 +02:00
Antonio Scandurra
f66b52239e
Cancel out outdents and indents referring to the previous row
2021-10-08 12:52:48 +02:00
Antonio Scandurra
18e5d75fd3
Bias the start of an autoindent request towards the right for new text
...
When a newline is inserted, this prevents the request from including
the line on which the newline got inserted.
2021-10-08 12:15:21 +02:00
Max Brunsfeld
451f0e7adb
Replace Buffer::request_autoindent API with ::edit_with_autoindent
...
When computing the "previous autoindent suggestion", we can't just
use the old tree and the current text. We need to find out what the
suggestion would have been before we made any changes.
2021-10-07 17:55:23 -07:00
Max Brunsfeld
c0a75abcd2
Preserve indentation for lines that are both indented and outdented
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-07 13:55:59 -07:00
Max Brunsfeld
d77025540a
Remove no-longer-used dirty
field on buffer::SyntaxTree
...
This became unnecessary when we reworked our reparsing logic
to block from 1ms on each parse.
2021-10-07 12:46:08 -07:00
Max Brunsfeld
b5d3ffb16c
Fix collection of row ranges in Buffer::perform_autoindent
2021-10-07 12:43:26 -07:00
Max Brunsfeld
2f295382c4
Implement selective auto-indent by comparing old and new suggestions
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-10-07 10:46:40 -07:00
Antonio Scandurra
54932a8050
WIP
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-10-07 19:09:14 +02:00
Antonio Scandurra
2018537bb8
Introduce a Tab
action to indent line or insert soft tabs
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-07 17:31:58 +02:00
Antonio Scandurra
d36805c464
Don't push empty transactions onto the undo stack
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-07 16:06:55 +02:00
Max Brunsfeld
77af9ef902
Add more rust indent nodes
2021-10-06 22:16:30 -07:00
Max Brunsfeld
add1467d32
Generalize strategy for processing indentation ranges
...
* Take into account the ranges' start and end columns, not just the rows
* Generalize the approach to dedenting
2021-10-06 22:16:18 -07:00
Max Brunsfeld
b83b4ad7c7
Start work on a Buffer API for requesting autoindent on the next parse
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-06 16:09:30 -07:00
Antonio Scandurra
724272931a
Skip autoclosed pairs
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-10-06 19:04:55 +02:00
Antonio Scandurra
05d7e9c4e7
Start on autoclosing pairs
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-06 16:34:57 +02:00
Max Brunsfeld
3cb7ba0f57
Make the fields of buffer::Language private
2021-10-05 14:19:33 -07:00
Max Brunsfeld
0282e6f255
Add Cargo.toml features to fix compilation of individual crates
2021-10-05 14:18:04 -07:00
Antonio Scandurra
f70e3878b6
Flip the dependency between editor and theme
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-10-05 19:21:13 +02:00
Antonio Scandurra
f09798c4a7
Use the same test::run_test
function for async gpui::test
s
2021-10-05 18:04:22 +02:00
Antonio Scandurra
9c7ef39da6
Minimize code generation for synchronous gpui::test
macro
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-05 17:47:46 +02:00
Antonio Scandurra
7a05461c50
Avoid loading Rust grammar in zed
tests
2021-10-05 15:43:57 +02:00
Antonio Scandurra
2280c75103
Extract theme_selector
into its own crate
2021-10-05 15:38:25 +02:00
Antonio Scandurra
47b29a5f21
Extract people_panel
into its own crate
2021-10-05 14:36:38 +02:00
Antonio Scandurra
cd6378e848
Extract file_finder
into its own crate
2021-10-05 14:30:56 +02:00
Antonio Scandurra
1ec0afb2d1
Extract chat_panel
into its own crate
2021-10-05 14:23:45 +02:00
Antonio Scandurra
d04a11405c
Extract project_panel
into its own crate
2021-10-05 14:19:57 +02:00
Antonio Scandurra
499616d769
Move workspace
module into its own crate
2021-10-05 13:49:10 +02:00
Antonio Scandurra
2087c4731f
Extract theme
into its own crate
2021-10-05 11:14:30 +02:00
Antonio Scandurra
0022c6b828
Move settings::test
helper into zed::test
2021-10-05 11:00:46 +02:00
Antonio Scandurra
5105596918
Move sidebar-specific code out of Workspace
2021-10-05 10:59:20 +02:00
Antonio Scandurra
36594ecf1d
Use edition = 2018 instead of 2021 for the editor crate
2021-10-05 10:16:13 +02:00
Max Brunsfeld
bbb27b9654
Move ChannelList, UserStore into client crate
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-04 17:30:11 -07:00
Max Brunsfeld
94209d2b6d
Rename rpc_client -> client
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-04 17:14:21 -07:00
Max Brunsfeld
2f0212ee98
Rename worktree crate to project, pull in Project
...
Also, move the high-level fuzzy mathcing functions in
zed::fuzzy into the fuzzy crate so that project can
use them.
This required defining a 'PathMatchCandidateSet' trait
to avoid a circular dependency from fuzzy to worktree.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-04 16:45:05 -07:00
Max Brunsfeld
748598e419
Improve logging when avatar request fails
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-04 15:47:18 -07:00
Max Brunsfeld
75cf2488db
List path dependencies first in all Cargo.toml files
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-04 15:36:52 -07:00
Max Brunsfeld
1d97f08901
Move editor into its own crate
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-04 15:23:10 -07:00
Nathan Sobo
d5b60ad124
Rename zrpc to rpc
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-10-04 13:28:00 -06:00
Nathan Sobo
fdfed3d7db
Move all crates to a top-level crates folder
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-10-04 13:22:21 -06:00