Commit Graph
8159 Commits
Author SHA1 Message Date
Max Brunsfeld 7288be4251 Make LspAdapter::process_diagnostics synchronous (#2829)
When editing rust code, the project diagnostics view sometimes fails to
update, so that you have to close the view and re-open it to see the
correct state.

This PR fixes one possible cause of that problem. There was an async
step in between *receiving* diagnostics from the language server and
updating the diagnostics, due to an async call to
`LspAdapter::process_diagnostics`. This could cause the following
sequence of events to happen:

1. Rust-analyzer sends us new diagnostics for a file `a.rs`
2. We call `process_diagnostics` with those diagnostics
3. Rust-analyzer sends us a `WorkDoneProgress` message, indicating that
the "flycheck" (aka `cargo check`) process has completed
4. We update the project diagnostics view due to this message.
5. The `process_diagnostics` call for `a.rs` completes
6. 💥 We have the new diagnostics for `a.rs`, but do not update the
project diagnostics view again.

This PR fixes this bug by simply making `process_diagnostics`
synchronous. There is no I/O or expensive computation happening in that
method. If we need to make it asynchronous in the future, we need to
introduce a queue that ensures that `publishDiagnostics` and
`workDoneProgress` messages are processed serially.

Release Notes:

- Fixed a bug where the project diagnostics view would sometimes fail to
update properly when using Rust-analyzer.
2023-08-07 14:31:49 -07:00
Joseph T. Lyons dbf25ea2ff Add syntax highlighting for Cargo.toml files 2023-08-07 17:24:22 -04:00
Joseph T. Lyons 580c2ea8eb Fix test name 2023-08-07 17:07:01 -04:00
Max BrunsfeldandNathan 4e33654aba Make LspAdapter::process_diagnostics synchronous
Co-authored-by: Nathan <nathan@zed.dev>
2023-08-07 13:53:41 -07:00
Mikayla 90cdbe8bf3 Fix modal click throughs and adjust height for channel modal 2023-08-07 13:39:05 -07:00
Mikayla f1957b1737 Push focus and fix keybindings 2023-08-07 13:31:58 -07:00
Nathan Sobo 3e0d0e5c01 WIP 2023-08-07 13:54:47 -06:00
Max Brunsfeld c537cf2a57 Merge branch 'main' into collab-panel 2023-08-07 11:50:40 -07:00
Conrad Irwin 19eb280351 Fix selection background too
Refactor code to centralize the logic too
2023-08-07 19:01:04 +01:00
Piotr Osiewicz 7a1f40405a Add dismiss button to project search 2023-08-07 12:22:10 +02:00
Nathan Sobo d4d32611fe WIP 2023-08-06 18:57:02 -06:00
Nathan Sobo adc50469ff WIP 2023-08-06 12:45:31 -06:00
Joseph T. Lyons ef5b982ea5 Fix bash path_suffixes and add line_comment 2023-08-06 02:20:31 -04:00
Nathan Sobo dcf8b00656 WIP 2023-08-05 18:00:44 -06:00
Joseph T. Lyons 1abb6a0176 Expand empty selections to cover full word and fix bugs 2023-08-05 11:31:21 -04:00
Joseph T. Lyons 12e8f417e4 Add more convert to case commands
ConvertToTitleCase
ConvertToSnakeCase
ConvertToKebabCase
ConvertToUpperCamelCase
ConvertToLowerCamelCase
2023-08-04 22:45:26 -04:00
Max BrunsfeldandMikayla 2ccd153233 Fix joining descendant channels, style channel invites
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-04 16:21:43 -07:00
Max BrunsfeldandMikayla 87b2d599c1 Flesh out channel member management
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-04 14:12:08 -07:00
Joseph T. LyonsandJulia 8c98b02e45 Add convert to {upper,lower} case commands
Co-Authored-By: Julia <30666851+ForLoveOfCats@users.noreply.github.com>
2023-08-04 15:10:33 -04:00
Max Brunsfeld a2486de045 Don't expose channel admin actions in UI if user isn't admin 2023-08-04 10:24:46 -07:00
Piotr OsiewiczandKyle 9889449a81 Adjust row count for project search.
Instead of using the same row count as for the breadcrumbs, we double the height so that there's some space for padding.

Co-authored-by: Kyle <kyle@zed.dev>
2023-08-04 18:54:27 +02:00
Max Brunsfeld 1762d2c6d4 Add test assertion where user is not admin of channel 2023-08-04 09:51:37 -07:00
Piotr OsiewiczandKyle de8e1852a8 Align match count
Co-authored-by: Kyle <kyle@zed.dev>
2023-08-04 18:21:46 +02:00
Piotr OsiewiczandKyle 8fa082c28b Center the query editor (for real now)
Co-authored-by: Kyle <kyle@zed.dev>
2023-08-04 17:49:54 +02:00
Piotr OsiewiczandKyle 82eb6d8bc3 Change styling of match nav buttons
Co-authored-by: Kyle <kyle@zed.dev>
2023-08-04 17:35:59 +02:00
Nathan Sobo b6110fed9e WIP 2023-08-04 07:56:20 -06:00
Conrad Irwin 22927fa1d7 Fix visual selection cursor in multibuffers 2023-08-04 14:39:16 +01:00
Piotr Osiewicz 2c0e3886a5 Align search bar in the middle 2023-08-04 15:38:53 +02:00
Piotr Osiewicz fcefb37ca0 Prevent modes from being vertically centered when row_count changes 2023-08-04 13:54:50 +02:00
Piotr Osiewicz 792f29e288 Refresh windows on toggle_filters. 2023-08-04 12:25:18 +02:00
Piotr Osiewicz 50d03ffc8c Revert "Focus filters when enabled"
This reverts commit 13a6b65a35.
2023-08-04 12:24:57 +02:00
Nathan Sobo 196946cbb6 Squelch warnings for now 2023-08-03 21:21:45 -06:00
Nathan Sobo 379652f074 Merge branch 'main' into cells 2023-08-03 19:33:04 -06:00
Max Brunsfeld 7a04ee3b71 Start work on exposing which channels the user has admin rights to 2023-08-03 18:31:00 -07:00
Max Brunsfeld 95b1ab9574 Implement channel member removal, permission check for member retrieval 2023-08-03 18:03:40 -07:00
Nathan Sobo d3c1966d96 WIP: Return WindowHandle<V: View> from AppContext::add_window (#2820)
Instead of returning a usize for the window id, I'm instead returning a
`WindowHandle<V: View>` where `V` is the type of the window's root view.
@as-cii helped me with a cool technique using generic associated types
where methods on `WindowHandle` can return either T or Option<T>
depending on the `BorrowWindowContext::Result` associated type.

Some example usage...

```rs
let window = cx.add_window(|cx| MyView::new(cx));
let my_view = window.root(cx); // If cx is TestAppContext, returns MyView. Otherwise returns Option<MyView>, because the window could be closed.
```


This isn't insanely beneficial on its own, but I think it will help
clean up our testing story. I'm planning on making `window` more useful
in tests for laying out elements, etc.

- [x] Rework tests that call `add_window` 😅 to expect only a window in
return.
- [x] Get tests passing
- [x] 🚬  test
2023-08-03 18:45:51 -06:00
Piotr Osiewicz 13a6b65a35 Focus filters when enabled 2023-08-04 02:33:48 +02:00
Nathan Sobo 2d96388be3 Use WindowHandles in a couple places 2023-08-03 17:46:34 -06:00
Max BrunsfeldandMikayla 4a6c73c6fd Lay-out channel modal with picker beneath channel name and mode buttons
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-03 16:15:29 -07:00
Nathan Sobo 485c0a482e Don't refcount window handles 2023-08-03 17:11:47 -06:00
Nathan Sobo afcc0d621b WIP 2023-08-03 17:03:39 -06:00
Joseph T. Lyons ee1b4a52cc Add PathExt trait (#2823)
This PR adds a `PathExt` trait. It pulls in our existing `compact()`
function, as a method, and then adds a method, and testing, for
`icon_suffix()`. A test was added to fix:

- https://github.com/zed-industries/community/issues/1877

Release Notes:

- Fixed a bug where file icons would not be registered for files with
with `.` characters in their name
([#1877](https://github.com/zed-industries/community/issues/1877)).
2023-08-03 18:57:43 -04:00
Max BrunsfeldandMikayla a7e883d956 Implement basic channel member management UI
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-03 14:49:01 -07:00
KCaverly c14a99d8fa updated project_search text 2023-08-03 17:02:46 -04:00
Mikayla Maki 129f2890c5 simplify server implementation 2023-08-03 13:27:00 -07:00
Max Brunsfeld 9a1dd0c6bc Fetch channel members before constructing channel mgmt modal 2023-08-03 12:10:53 -07:00
Mikayla Maki 6c4964f071 WIP: continue channel management modal and rename panel to collab_panel 2023-08-03 11:40:55 -07:00
31fb503418 Rewrite permission queries (it no longer blocks)
Co-authored-by: Kyle <kyle@zed.dev>
Co-authored-by: Max <max@zed.dev>
2023-08-03 20:26:56 +02:00
Mikayla Maki d450c4be9a WIP: add custom channel modal 2023-08-03 10:59:09 -07:00
Piotr OsiewiczandKyle d157e3598d Query semantic_permissioned on demand.
Co-authored-by: Kyle <kyle@zed.dev>
2023-08-03 19:27:27 +02:00