Antonio Scandurra
74aa9c1320
Capture mouse events when rendering disconnected overlay
...
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.
2022-06-04 10:41:29 +02:00
Max Brunsfeld
ff3e3d0799
Merge pull request #1084 from zed-industries/private-projects
...
Offline projects
2022-06-03 17:14:46 -07:00
Max Brunsfeld
41b7fd4a27
Rename a public/private to online/offline in a few more places
2022-06-03 17:08:44 -07:00
Max Brunsfeld
ed14fd6e0d
Add setting to make projects online/offline by default
2022-06-03 17:01:15 -07:00
Max Brunsfeld
24aafde1e8
Avoid persisting project's state before it has been initialized
2022-06-03 16:40:16 -07:00
Max Brunsfeld
e18bc24989
Rename project's 'public'/'private' flag to 'online'/'offline'
2022-06-03 14:39:06 -07:00
Max Brunsfeld
b2aa831017
Store a FakeFs on TestClient
2022-06-03 13:49:47 -07:00
Max Brunsfeld
8bd4a0ab81
Don't store Project on TestClient in integration tests
2022-06-03 13:00:56 -07:00
Max Brunsfeld
afdd386057
Move persistence and restoration logic from workspace into project
...
Co-authored-by: Antonio Scandurra <me@as-cii.com>
2022-06-03 11:52:14 -07:00
Max Brunsfeld
3ce739f759
Merge pull request #1098 from zed-industries/cpp
...
Introduce support for C++
2022-06-03 10:52:17 -07:00
Max Brunsfeld
6a3a3a1124
Add tooltip to the toggle public button in the contacts panel
...
Co-authored-by: Antonio Scandurra <me@as-cii.com>
2022-06-03 10:36:29 -07:00
Antonio Scandurra
55fc2341d8
Consolidate C and C++ LSP adapters
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-06-03 18:05:43 +02:00
Antonio Scandurra
1db4970c5a
Implement CppLspAdapter::name
by delegating to CLspAdapter::name
...
This makes it more evident that both languages share the same language
server.
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-06-03 17:49:31 +02:00
Antonio Scandurra
416496225e
Syntax-highlight project-wide symbols for C++
2022-06-03 11:47:56 +02:00
Antonio Scandurra
c6e6a9f1eb
Show prettier completions for C++
2022-06-03 11:33:03 +02:00
Antonio Scandurra
8ca0127658
Make LspAdapter::process_diagnostics
optional
2022-06-03 10:56:26 +02:00
Antonio Scandurra
d4da5135f4
Introduce support for C++
2022-06-03 10:52:34 +02:00
Max Brunsfeld
98b54763b9
Bump protocol version
2022-06-02 18:06:29 -07:00
Max Brunsfeld
36a4d31b5b
Keep unregistered projects' ids until pending contact updates are done
2022-06-02 18:04:54 -07:00
Max Brunsfeld
db97dcd76f
Don't update contacts when a project is first registered
...
Until the host has sent an UpdateProject message to populate the project's
metadata, there is no reason to update contacts.
2022-06-02 17:41:21 -07:00
Max Brunsfeld
f7e7a7c6a7
Use rocksdb to store project paths' public/private state
2022-06-02 17:38:33 -07:00
Max Brunsfeld
724affc442
Upgrade deps to avoid multiple versions of transitive deps
...
* env_logger
* prost-build
* bindgen
2022-06-02 17:38:33 -07:00
Max Brunsfeld
d45db1718e
Style the contact panel while public/private operations are in-flight
2022-06-02 17:38:33 -07:00
Max Brunsfeld
d11beb3c02
Change project registration RPC APIs to smooth out UI updates
...
* 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.
2022-06-02 17:32:43 -07:00
Max Brunsfeld
4d4ec793e2
Remove stray println
2022-06-02 17:32:43 -07:00
Max Brunsfeld
b70396b8fb
Disconnect FakeServer when dropping it
...
This prevents memory leak errors in tests, due to parked tasks waiting
for RPC responses.
2022-06-02 17:32:43 -07:00
Max Brunsfeld
3ea061a11e
Allow making projects private
2022-06-02 17:32:42 -07:00
Max Brunsfeld
8f676e76b3
Fix mismatched client/context in integration test
2022-06-02 17:29:11 -07:00
Max Brunsfeld
8d46edd26c
Avoid holding RefCell borrow while calling TestAppContext::spawn callback
2022-06-02 17:29:11 -07:00
Max Brunsfeld
7ef9de32b1
Show private projects in the contacts panel
...
Introduce a ProjectStore that lets you iterate through all open projects.
Allow projects to be made public by clicking the lock.
2022-06-02 17:29:11 -07:00
Max Brunsfeld
a60fef52c4
Start work on private projects
2022-06-02 17:29:11 -07:00
Antonio Scandurra
3ffbd56c65
Merge pull request #1093 from zed-industries/fix-panic-version
...
Report the correct app version when sending panics to server
2022-06-02 13:55:00 +02:00
Antonio Scandurra
7ecc67bcd5
Report the correct app version when sending panics to server
...
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.
2022-06-02 13:00:21 +02:00
Antonio Scandurra
a8cde09070
v0.36.1
2022-06-02 12:11:49 +02:00
Antonio Scandurra
7beb1946b2
Merge pull request #1091 from zed-industries/fix-project-diagnostics-panic
...
Don't reuse the same diagnostic group id across buffers
2022-06-02 12:11:09 +02:00
Antonio Scandurra
6baf8b033b
Don't reuse the same diagnostic group id across buffers
...
This lets us use the group id as the key for an `ElementState`, which
fixes a panic that would occur in project diagnostics when opening it
while there were multiple diagnostic groups with the same id.
2022-06-02 12:05:28 +02:00
Antonio Scandurra
c34b30e739
Merge pull request #1090 from zed-industries/context-menu-polish
...
Context menu polish
2022-06-02 10:06:44 +02:00
Antonio Scandurra
12267308e4
Don't dismiss context menu when right-clicking project panel again
2022-06-02 10:00:52 +02:00
Antonio Scandurra
701e2090cd
Align context menu to fit within the window bounds
2022-06-02 09:47:06 +02:00
Antonio Scandurra
f1964cf2a0
Merge pull request #1089 from zed-industries/jump-to-diagnostic
...
Jump to diagnostic
2022-06-02 09:35:57 +02:00
Antonio Scandurra
6979e67bed
Use anchors to jump to diagnostic whenever possible
2022-06-02 09:30:07 +02:00
Antonio Scandurra
cc028cca78
Simplify usage of tooltip
...
Now you simply specify a text, an action and a style and GPUI will
take of rendering it properly. This is simpler compared to always
providing a custom element and should make tooltip more consistent
across the UI.
2022-06-02 09:12:50 +02:00
Antonio Scandurra
ba6be46e82
v0.36.0
2022-06-02 08:38:36 +02:00
Antonio Scandurra
9ca9f63046
Match figma styling for tooltips
2022-06-02 08:36:42 +02:00
Max Brunsfeld
b9dc476e74
Avoid sending unnecessary messages for local projects that aren't shared
2022-06-01 14:49:12 -07:00
Antonio Scandurra
0e1307fb23
📝
2022-06-01 10:18:10 +02:00
Antonio Scandurra
b63d965b46
Space out tooltip a little bit to ensure it doesn't overlap cursor
2022-06-01 10:08:25 +02:00
Antonio Scandurra
238827642a
Align tooltip based on the available window space
2022-06-01 10:03:46 +02:00
Antonio Scandurra
b3242417b3
Show tooltip when hovering over jump to diagnostic icon
2022-06-01 09:55:45 +02:00
Antonio Scandurra
982de971fa
Introduce a new Tooltip
element and a with_tooltip
helper
2022-06-01 09:55:25 +02:00