8826ad5
Make `Buffer::edit` and `MultiBuffer::edit` resilient to inverted ranges
Click to expand commit body
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.
Antonio Scandurra
created
939020a
Merge pull request #1114 from zed-industries/fix-menu-bindings
Click to expand commit body
Add keystroke for menu item only when action is equal to binding
22dd68f
Add keystroke for menu item only when action is equal to binding
Click to expand commit body
This fixes a bug where we would show `cmd-e` instead of `cmd-f` for
`Edit -> Find` because both bindings would have the `buffer_search::Deploy`
action and we were mistakenly selecting the former.
Antonio Scandurra
created
3a69943
Require that `PartialEq` is implemented for `Action`
Antonio Scandurra
created
492cc71
Don't manipulate selections when syncing options if vim-mode is disabled
Click to expand commit body
Previously, we were always mutating selections when `sync_editor_options`
was called. This seems to happen every time vim is enabled/disabled, but also
when vim is disabled and editors are simply focused/blurred.
This commit changes it so that we only manipulate selections when vim-mode is active.
Antonio Scandurra
created
905fbac
vim: Avoid collapsing selections on editor creation when vim_mode is disabled
Max Brunsfeld
created
eae7c22
Merge pull request #1107 from zed-industries/event-handler-capture-all
Click to expand commit body
Capture mouse events when rendering disconnected overlay
Antonio Scandurra
created
74aa9c1
Capture mouse events when rendering disconnected overlay
Click to expand commit body
We do so by replacing `EventHandler::capture` with a new `::capture_all` method.
After switching to mouse regions as part of zed-industries/zed#1081, overriding
`dispatch_event` on `EventHandler` wasn't enough anymore because mouse interactions
take place on a privileged code path that runs *before* dispatching any event.
With this change, `EventHandler` will now push a mouse region that intercepts all
mouse interactions, as well as pushing a cursor region that resets the cursor style
to `Arrow`.
One interesting change as part of this is that we've removed the ability to see which
event we are capturing: we were not using this capability anyway and `capture_all` provides
a simpler interface, so I went with that. In the future, we can opt into capturing specific
events or mouse interactions if there's a code path that needs that.
Antonio Scandurra
created
ff3e3d0
Merge pull request #1084 from zed-industries/private-projects
Click to expand commit body
Offline projects
Max Brunsfeld
created
41b7fd4
Rename a public/private to online/offline in a few more places
Max Brunsfeld
created
ed14fd6
Add setting to make projects online/offline by default
Max Brunsfeld
created
24aafde
Avoid persisting project's state before it has been initialized
Max Brunsfeld
created
e18bc24
Rename project's 'public'/'private' flag to 'online'/'offline'
36a4d31
Keep unregistered projects' ids until pending contact updates are done
Max Brunsfeld
created
db97dcd
Don't update contacts when a project is first registered
Click to expand commit body
Until the host has sent an UpdateProject message to populate the project's
metadata, there is no reason to update contacts.
Max Brunsfeld
created
f7e7a7c
Use rocksdb to store project paths' public/private state
Max Brunsfeld
created
724affc
Upgrade deps to avoid multiple versions of transitive deps
Click to expand commit body
* env_logger
* prost-build
* bindgen
Max Brunsfeld
created
d45db17
Style the contact panel while public/private operations are in-flight
Max Brunsfeld
created
d11beb3
Change project registration RPC APIs to smooth out UI updates
Click to expand commit body
* Make `UnregisterProject` a request. This way the client-side project can wait
to clear out its remote id until the request has completed, so that the
contacts panel can avoid showing duplicate private/public projects in the
brief time after unregistering a project, before the next UpdateCollaborators
message is received.
* Remove the `RegisterWorktree` and `UnregisterWorktree` methods and replace
them with a single `UpdateProject` method that idempotently updates the
Project's list of worktrees.
3ffbd56
Merge pull request #1093 from zed-industries/fix-panic-version
Click to expand commit body
Report the correct app version when sending panics to server
Antonio Scandurra
created
7ecc67b
Report the correct app version when sending panics to server
Click to expand commit body
Previously, we were just relying on the `ZED_APP_VERSION` environment
variable without consulting `Platform::app_version`. That would always
report "dev" as the app version because `ZED_APP_VERSION` is only used
for testing.