Commit log

fa71de8 Tune UX for context menus

Click to expand commit body
Co-authored-by: max <max@zed.dev>

Mikayla and max created

bedf60b Improve local collaboration script to accept a zed impersonate

Click to expand commit body
Gate channels UI behind a flag

co-authored-by: max <max@zed.dev>

Mikayla and max created

8980a9f Add settings for removing the assistant and collaboration panel buttons

Click to expand commit body
Add a not-logged-in state to the collaboration panel

co-authored-by: max <max@zed.dev>

Mikayla and max created

e37e76f Add context menu controls to the channel member management

Click to expand commit body
co-authored-by: Max <max@zed.dev>

Mikayla and Max created

fa16895 Do not query start of range if it's end is the same as the previous hunk's

Piotr Osiewicz created

ca21626 Baseline: Improve selection rendering for large quantities from 270ms to 90ms

Piotr Osiewicz created

9913067 Remove admin and member button

Click to expand commit body
Fix bug with invites in the member list
Fix bug when there are network errors in the member related RPC calls

co-authored-by: Max <max@zed.dev>

Mikayla and Max created

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

Joseph T. Lyons created

580c2ea Fix test name

Joseph T. Lyons created

4e33654 Make LspAdapter::process_diagnostics synchronous

Click to expand commit body
Co-authored-by: Nathan <nathan@zed.dev>

Max Brunsfeld and Nathan created

90cdbe8 Fix modal click throughs and adjust height for channel modal

Mikayla created

f1957b1 Push focus and fix keybindings

Mikayla created

3e0d0e5 WIP

Nathan Sobo created

c537cf2 Merge branch 'main' into collab-panel

Max Brunsfeld created

19eb280 Fix selection background too

Click to expand commit body
Refactor code to centralize the logic too

Conrad Irwin created

d4d3261 WIP

Nathan Sobo created

adc5046 WIP

Nathan Sobo created

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

Joseph T. Lyons created

dcf8b00 WIP

Nathan Sobo created

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

Joseph T. Lyons created

d1048d0 Add more convert to case commands (#2825)

Click to expand commit body
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`

Joseph T. Lyons created

12e8f41 Add more convert to case commands

Click to expand commit body
ConvertToTitleCase
ConvertToSnakeCase
ConvertToKebabCase
ConvertToUpperCamelCase
ConvertToLowerCamelCase

Joseph T. Lyons created

2ccd153 Fix joining descendant channels, style channel invites

Click to expand commit body
Co-authored-by: Mikayla <mikayla@zed.dev>

Max Brunsfeld and Mikayla created

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)).

Joseph T. Lyons created

87b2d59 Flesh out channel member management

Click to expand commit body
Co-authored-by: Mikayla <mikayla@zed.dev>

Max Brunsfeld and Mikayla created

8c98b02 Add `convert to {upper,lower} case` commands

Click to expand commit body
Co-Authored-By: Julia <30666851+ForLoveOfCats@users.noreply.github.com>

Joseph T. Lyons and Julia created

a2486de Don't expose channel admin actions in UI if user isn't admin

Max Brunsfeld created

1762d2c Add test assertion where user is not admin of channel

Max Brunsfeld created

22927fa Fix visual selection cursor in multibuffers

Conrad Irwin created

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

Nathan Sobo created

2d96388 Use WindowHandles in a couple places

Nathan Sobo created

4a6c73c Lay-out channel modal with picker beneath channel name and mode buttons

Click to expand commit body
Co-authored-by: Mikayla <mikayla@zed.dev>

Max Brunsfeld and Mikayla created

485c0a4 Don't refcount window handles

Nathan Sobo created

afcc0d6 WIP

Nathan Sobo created

ee1b4a5 Add `PathExt` trait (#2823)

Click to expand commit body
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

Click to expand commit body
Co-authored-by: Mikayla <mikayla@zed.dev>

Max Brunsfeld and Mikayla created

129f289 simplify server implementation

Mikayla Maki created

9a1dd0c Fetch channel members before constructing channel mgmt modal

Max Brunsfeld created

6c4964f WIP: continue channel management modal and rename panel to collab_panel

Mikayla Maki created

d450c4b WIP: add custom channel modal

Mikayla Maki created

3c938a7 WIP

Nathan Sobo created

30e1bfc Add the ability to jump between channels while in a channel

Mikayla Maki created

0ae1f29 wip

Max Brunsfeld created

4d55110 Restore seeding of random GH users in seed-db

Click to expand commit body
Co-authored-by: Mikayla <mikayla@zed.dev>

Max Brunsfeld and Mikayla created