7288be4
Make LspAdapter::process_diagnostics synchronous (#2829)
Click to expand commit body
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.
Max Brunsfeld
created
d417993
Add syntax highlighting for Cargo.toml files (#2830)
Click to expand commit body
Release Notes:
- Added syntax highlighting for `Cargo.toml` files
Joseph T. Lyons
created
dbf25ea
Add syntax highlighting for Cargo.toml files
e3a4d17
Fix bash `path_suffixes `and add `cmd-/` line comment support (#2827)
Click to expand commit body
<img width="1608" alt="SCR-20230806-cyrg"
src="https://github.com/zed-industries/zed/assets/19867440/2491c4bc-5797-4417-9633-08c136b4e8fe">
I noticed we weren't highlghting bash files if the shebang line didn't
exist. After checking, it looks like the `.` were accidentally added to
the `path_suffixes` list. This PR fixes that and adds in support for
`cmd-/` to trigger line comments.
<img width="1608" alt="SCR-20230806-czxh"
src="https://github.com/zed-industries/zed/assets/19867440/37dd0c8e-c4e7-49e2-9997-9dd8145f460e">
Release Notes:
- Fixed a bug where shell files weren't syntax highlighted if a shebang
didn't exist.
- Added support for `cmd-/` to add line comments to shell files.
Joseph T. Lyons
created
ef5b982
Fix bash path_suffixes and add line_comment
7777d97
Expand empty selections to cover full word when doing case conversions and fix bugs (#2826)
Click to expand commit body
When doing case conversions, specifically in the case of an empty
selection, in both VS Code and Sublime, the cursor winds up being in a
different place relative to where it started.
In VS Code, the cursor maintains it position in the text, no matter if
the text expands or shrinks
https://github.com/zed-industries/zed/assets/19867440/b24f5d86-c315-4a72-9ed4-3732b490ea9a
In Sublime, I have no idea what is going on:
https://github.com/zed-industries/zed/assets/19867440/05f21303-6e42-47b2-b844-7accd0bf05d7
I thought it would be a better experience if, when doing an empty
selection transformation, we simply expand the selection and park the
cursor at the end of the newly-transformed text.
https://github.com/zed-industries/zed/assets/19867440/833619ef-04e2-47b6-ad4e-e2b43d54fb2b
This feels similar to us expanding the selection when doing line
manipulations:
https://github.com/zed-industries/zed/assets/19867440/c30c5332-787d-4cf0-a9ee-e66c3c159956
Selections are adjusted to match however each word expands and shrinks,
even when there are multiple:
https://github.com/zed-industries/zed/assets/19867440/d7073aac-8a59-4f2c-b0e5-1df37be1694c
Release Notes:
- Improved behavior of empty-selection case transformations by selecting
resulting word.
- Fixed some bugs with overflow
Joseph T. Lyons
created
1abb6a0
Expand empty selections to cover full word and fix bugs
I'm using [convert_case](https://crates.io/crates/convert_case)
underneath the hood, which has over 35 million downloads and feels
solid.
Release Notes:
- Added commands to convert between variable name styles
([#1821](https://github.com/zed-industries/community/issues/1821)).
- `convert to kebab case`
- `convert to snake case`
- `convert to upper camel case`
- `convert to lower camel case`
- `convert to title case`
5c2f38a
Add `convert to {upper,lower} case` commands (#2824)
Click to expand commit body
Release Notes:
- Added `convert to upper case` and `convert to lower case` commands
([#1011](https://github.com/zed-industries/community/issues/1011)).
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>
Piotr Osiewicz
and
Kyle
created
1762d2c
Add test assertion where user is not admin of channel
7a04ee3
Start work on exposing which channels the user has admin rights to
Max Brunsfeld
created
95b1ab9
Implement channel member removal, permission check for member retrieval
Max Brunsfeld
created
d3c1966
WIP: Return WindowHandle<V: View> from AppContext::add_window (#2820)
Click to expand commit body
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
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)).
Joseph T. Lyons
created
a7e883d
Implement basic channel member management UI