Commit graph

68 commits

Author SHA1 Message Date
Nathan Sobo
6fca1d2b0b
Eliminate GPUI View, ViewContext, and WindowContext types (#22632)
There's still a bit more work to do on this, but this PR is compiling
(with warnings) after eliminating the key types. When the tasks below
are complete, this will be the new narrative for GPUI:

- `Entity<T>` - This replaces `View<T>`/`Model<T>`. It represents a unit
of state, and if `T` implements `Render`, then `Entity<T>` implements
`Element`.
- `&mut App` This replaces `AppContext` and represents the app.
- `&mut Context<T>` This replaces `ModelContext` and derefs to `App`. It
is provided by the framework when updating an entity.
- `&mut Window` Broken out of `&mut WindowContext` which no longer
exists. Every method that once took `&mut WindowContext` now takes `&mut
Window, &mut App` and every method that took `&mut ViewContext<T>` now
takes `&mut Window, &mut Context<T>`

Not pictured here are the two other failed attempts. It's been quite a
month!

Tasks:

- [x] Remove `View`, `ViewContext`, `WindowContext` and thread through
`Window`
- [x] [@cole-miller @mikayla-maki] Redraw window when entities change
- [x] [@cole-miller @mikayla-maki] Get examples and Zed running
- [x] [@cole-miller @mikayla-maki] Fix Zed rendering
- [x] [@mikayla-maki] Fix todo! macros and comments
- [x] Fix a bug where the editor would not be redrawn because of view
caching
- [x] remove publicness window.notify() and replace with
`AppContext::notify`
- [x] remove `observe_new_window_models`, replace with
`observe_new_models` with an optional window
- [x] Fix a bug where the project panel would not be redrawn because of
the wrong refresh() call being used
- [x] Fix the tests
- [x] Fix warnings by eliminating `Window` params or using `_`
- [x] Fix conflicts
- [x] Simplify generic code where possible
- [x] Rename types
- [ ] Update docs

### issues post merge

- [x] Issues switching between normal and insert mode
- [x] Assistant re-rendering failure
- [x] Vim test failures
- [x] Mac build issue



Release Notes:

- N/A

---------

Co-authored-by: Antonio Scandurra <me@as-cii.com>
Co-authored-by: Cole Miller <cole@zed.dev>
Co-authored-by: Mikayla <mikayla@zed.dev>
Co-authored-by: Joseph <joseph@zed.dev>
Co-authored-by: max <max@zed.dev>
Co-authored-by: Michael Sloan <michael@zed.dev>
Co-authored-by: Mikayla Maki <mikaylamaki@Mikaylas-MacBook-Pro.local>
Co-authored-by: Mikayla <mikayla.c.maki@gmail.com>
Co-authored-by: joão <joao@zed.dev>
2025-01-26 03:02:45 +00:00
Conrad Irwin
57b5bff299
Support very large channel membership lists (#11939)
Fixes the channel membership dialogue for the zed channel by not
downloading all 111k people in one go.

Release Notes:

- N/A
2024-05-16 20:02:25 -06:00
Conrad Irwin
e0c83a1d32
remote projects per user (#10594)
Release Notes:

- Made remote projects per-user instead of per-channel. If you'd like to
be part of the remote development alpha, please email hi@zed.dev.

---------

Co-authored-by: Bennet Bo Fenner <53836821+bennetbo@users.noreply.github.com>
Co-authored-by: Bennet <bennetbo@gmx.de>
Co-authored-by: Nate Butler <1714999+iamnbutler@users.noreply.github.com>
Co-authored-by: Nate Butler <iamnbutler@gmail.com>
2024-04-23 15:33:09 -06:00
Marshall Bowers
fe04f69caf
Enable clippy::useless_conversion (#8767)
This PR enables the
[`clippy::useless_conversion`](https://rust-lang.github.io/rust-clippy/master/index.html#/useless_conversion)
rule and fixes the outstanding violations.

Release Notes:

- N/A
2024-03-03 10:22:55 -05:00
Conrad Irwin
c31626717f
channel projects (#8456)
Add plumbing for hosted projects. This will currently show them if they
exist
but provides no UX to create/rename/delete them.

Also changed the `ChannelId` type to not auto-cast to u64; this avoids
type
confusion if you have multiple id types.


Release Notes:

- N/A
2024-02-26 22:15:11 -07:00
Conrad Irwin
2294d99046
revert single channel click (#7738)
- Revert "collab tweaks (#7706)"
- Revert "2112 (#7640)"
- Revert "single click channel (#7596)"
- Reserve protobufs
- Don't revert migrations

Release Notes:

- N/A

**or**

- N/A
2024-02-13 12:53:49 -07:00
Conrad Irwin
efe23ebfcd
single click channel (#7596)
- Open channel notes and chat on channel click
- WIP
- Fix compile error
- Don't join live kit until requested
- Track in_call state separately from in_room



Release Notes:

- Improved channels: you can now be in a channel without joining the
audio call automatically

**or**

- N/A

---------

Co-authored-by: Nathan Sobo <nathan@zed.dev>
2024-02-09 14:18:27 -07:00
Conrad Irwin
7e7a9c2d96 lint 2024-01-26 14:04:21 -07:00
Conrad Irwin
fd5994bc0a Allow people to leave channels
Co-Authored-By: Max <max@zed.dev>
2024-01-26 11:38:13 -07:00
Conrad Irwin
c6d33d4bb9 Only allow Manage Members on root channels 2024-01-26 09:40:41 -07:00
Conrad Irwin
4b672621d3 Aggressively simplify channel permissions:
- Only allow setting permissions on the root channel
- Only allow public channels to be children of public channels
2024-01-25 23:26:32 -07:00
Mikayla
57400e9687
Fix typos detected by crate-ci/typos 2024-01-17 14:31:21 -08:00
Mikayla
5897b18cfd
remove more commented code 2024-01-12 20:10:40 -08:00
Conrad Irwin
2ca462722c Fix some tests (mostly more run_until_parked's...) 2024-01-09 22:14:11 -07:00
Max Brunsfeld
0cf65223ce Remove 2 suffix for collab, rope, settings, menu
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-01-03 12:29:16 -08:00
Max Brunsfeld
32367eba14 Set up UI to allow dragging a channel to the root 2023-10-25 15:39:02 +02:00
Max Brunsfeld
5c03b6a610 Remove logic for multiple channel parents
Co-authored-by: Conrad <conrad@zed.dev>
Co-authored-by: Kyle <kyle@zed.dev>
Co-authored-by: Joseph <joseph@zed.dev>
2023-10-24 17:29:23 +02:00
Conrad Irwin
3358420f6a fix format 2023-10-24 11:17:17 +02:00
Conrad Irwin
aa6990bb6b Fix set_channel_visibility for public channels 2023-10-24 10:55:10 +02:00
Conrad Irwin
e6087e0ed9 Fix tests 2023-10-24 09:46:46 +02:00
Conrad Irwin
ea4e67fb76 Merge branch 'main' into guest-exp 2023-10-23 17:47:21 +02:00
Conrad Irwin
aa4b8d7246 Fix notifications for membership changes too 2023-10-19 23:05:06 -06:00
Max Brunsfeld
b07f9fe3b5 Merge branch 'main' into notifications 2023-10-18 17:20:04 -07:00
Conrad Irwin
2b11463567 Fix notifications on channel changes 2023-10-18 15:56:33 -06:00
Mikayla
0ce1ec5d15
Restrict DAG-related functionality, but retain infrastructure for implementing symlinks 2023-10-18 05:28:05 -07:00
Conrad Irwin
70aed4a605 Sync Role as part of channels
Begin to fix guest notifications
2023-10-17 22:48:44 -06:00
Max Brunsfeld
f225039d36 Display invite response buttons inline in notification panel 2023-10-17 09:12:55 -07:00
Conrad Irwin
2feb091961 Ensure that invitees do not have permissions
They have to accept the invite, (which joining the channel will do),
first.
2023-10-16 16:24:10 -06:00
Conrad Irwin
4e7b35c917 Make joining a channel as a guest always succeed 2023-10-16 15:14:13 -06:00
Conrad Irwin
a7db2aa39d Add check_is_channel_participant
Refactor permission checks to load ancestor permissions into memory
for all checks to make the different logics more explicit.
2023-10-12 19:59:50 -06:00
Conrad Irwin
540436a1f9 Push role refactoring through RPC/client 2023-10-12 13:05:54 -06:00
Mikayla
40430cf01b
Update channel rooms to be ephemeral
Remove redundant live kit initialization code
Fix bug in recent channel links changes where channel rooms would have the incorrect release set

co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
co-authored-by: Max <max@zed.dev>
2023-10-10 12:39:16 -07:00
Mikayla
4ff44dfa3b
Fix bugs in moving channels that could cause channels to be stranded or moved unexpectedly
Made channel linking not query in a loop

co-authored-by: Max <max@zed.dev>
2023-09-20 15:32:06 -07:00
Mikayla
ac65e7590c
Add hover styles to channels matching the current selection
Fix chat desync from moving / linking channels
2023-09-19 17:50:02 -07:00
Mikayla
5f9c56c8b0
WIP: Send the channel name and the channel edges seperately, so we're not repeating them constantly
This commit is currently broken and includes debug data for a failed attempt at rewriting the insert_edge logic
2023-09-15 17:57:23 -07:00
Mikayla
f9fff3a7b2
fmt 2023-09-15 11:39:56 -07:00
Mikayla
d424e27164
Finish testing new channel store client behavior 2023-09-15 11:39:56 -07:00
Mikayla
67ad75a376
Clean up implementation of channel index, get simple channel moving test cases working 2023-09-15 11:39:56 -07:00
Mikayla
9afb67f2cf
Implement final move, link, unlink db APIs 2023-09-15 11:39:56 -07:00
Mikayla
7fa68a9aa4
WIP: improve move and link handling around 'root paths', currently very incorrect and in need of a deeper rework 2023-09-15 11:39:56 -07:00
Mikayla
cda54b8b5f
Improve database and RPC API for moving and linking channels, improve test legibility 2023-09-15 11:39:55 -07:00
Mikayla
9e68d4a8ea
WIP: Add channel DAG related RPC messages, change update message 2023-09-15 11:23:12 -07:00
Max Brunsfeld
358a20494c Make channel notes read-only when disconnected
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-24 16:50:13 -07:00
Mikayla
a7a4e2e369
Add buffer integration test
Rearrange channel crate structure
Get channel buffer from database

co-authored-by: Max <max@zed.dev>
2023-08-23 18:34:43 -07:00
Mikayla
5bc481112e
Add test for lost channel update 2023-08-16 20:05:21 -07:00
Mikayla
3074455386
WIP 2023-08-16 16:56:00 -07:00
Max Brunsfeld
1ffde7bddc Implement calling contacts into your current channel
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-15 14:56:54 -07:00
Max Brunsfeld
cbf497bc12 Fix race condition when UpdateChannel message is received while fetching participants for previous update
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-14 17:36:35 -07:00
Max Brunsfeld
d7f21a9155 Ensure channels are sorted alphabetically
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-14 16:27:35 -07:00
Max Brunsfeld
b3447ada27 Dial in the channel creating/renaming UI
* Ensure channel list is in a consistent state with no flicker while the
  channel creation / rename request is outstanding.
* Maintain selection properly when renaming and creating channels.
* Style the channel name editor more consistently with the non-editable
  channel names.

Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-09 17:11:57 -07:00