Commit Graph

12530 Commits

Author SHA1 Message Date
Conrad Irwin
dacc8cb5f4 Begin to use pixels for column selection
For zed-industries/community#759
For zed-industries/community#1966

Co-Authored-By: Julia <floc@unpromptedtirade.com>
2023-10-09 21:47:58 -06:00
Conrad Irwin
a801a4aeef Remove some unnecessary Eqs 2023-10-09 21:47:58 -06:00
Max Brunsfeld
6e98cd5aad
More small following-related fixes (#3110) 2023-10-09 15:25:22 -07:00
Max Brunsfeld
1d29709c32 Avoid possible panic in Room::most_active_project
Participants' locations might momentarily reference projects that have already been unshared.
2023-10-09 15:04:01 -07:00
Max Brunsfeld
bdcbf9b92e Add a Reconnect action, for simulating connection blips 2023-10-09 14:46:33 -07:00
Max Brunsfeld
b807b3c785 Handle participants' participant index changing
This normally doesn't happen, but it can happen if a participant
loses connection ungracefully, restarts their app, and then
explicitly joins again.
2023-10-09 14:45:19 -07:00
Max Brunsfeld
90b54a45e8 Log a warning when leader activates an unknown view 2023-10-09 14:29:45 -07:00
Kirill Bulatov
bb85d6f63e
Detect file paths that end with : (#3109)
New rustc messages look like

```
thread 'tests::test_history_items_vs_very_good_external_match' panicked at crates/file_finder/src/file_finder.rs:1902:13:
assertion `left == right` failed: Only one history item contains collab_ui, it should be present and others should be filtered out
  left: 0
 right: 1
```

now and we fail to parse that `13:` bit properly, fix that.

One caveat is that we highlight the entire word including the trailing
`:`:
<img width="914" alt="image"
src="https://github.com/zed-industries/zed/assets/2690773/d653a8ff-3e6e-4e3d-b6ea-dad0c8db0f06">

this is unfortunate, but better than nothing (as now).
This is due to the fact, that we detect words with regex inside the
`terminal.rs` and send events to other place that's able to check paths
for existence (and whether that's a path at all), currently there's no
way to detect a path and sanitize it in `terminal.rs`

Release Notes:

- N/A
2023-10-09 23:16:03 +02:00
Kirill Bulatov
ba4f4e0a3e Detect file paths that end with :
New rustc messages look like

```
thread 'tests::test_history_items_vs_very_good_external_match' panicked at crates/file_finder/src/file_finder.rs:1902:13:
assertion `left == right` failed: Only one history item contains collab_ui, it should be present and others should be filtered out
  left: 0
 right: 1
```

now and we fail to parse that `13:` bit properly, fix that.
2023-10-09 23:55:58 +03:00
Max Brunsfeld
6b710dc146
Fix bug that allowed following multiple people in one pane (#3108)
I've also simplified the representation of a workspace's leaders, so
that it encodes in the type that there can only be one leader per pane.

Release Notes:

- Fixed a bug where you could accidentally follow multiple collaborators
in one pane at the same time.
2023-10-09 13:50:51 -07:00
Kirill Bulatov
0823a18cff
Ignore history items' paths when matching search queries (#3107)
Follow-up of https://github.com/zed-industries/zed/pull/3059 

Before: 

![image](https://github.com/zed-industries/zed/assets/2690773/4eb2d2d1-1aa3-40b8-b782-bf2bc5f17b43)

After:

![image](https://github.com/zed-industries/zed/assets/2690773/5587d46b-9198-45fe-9372-114a95d4b7d6)

Release Notes:

- N/A
2023-10-09 22:35:11 +02:00
Max Brunsfeld
ca735ad70f Ensure there's only one leader per pane 2023-10-09 13:32:38 -07:00
Max Brunsfeld
af90077a6a Add failing test for switching leaders in a pane 2023-10-09 13:30:14 -07:00
Kirill Bulatov
9cba45910e Ignore history items' paths when matching search queries 2023-10-09 23:14:32 +03:00
Max Brunsfeld
29ccdb3cd9
Unify the two local zed scripts, take a flag for an instance count (#3106)
This PR introduces a new script for running Zed against a local collab
server, called `script/zed-local`. This script replaces the two existing
scripts that we had for this purpose: `script/zed-with-local-servers`
and `script/start-local-collaboration`.

By default, the script starts one single instance of Zed, but you can
pass a numeric flag to start 1, 2, 3 or 4 instances. So to start up two
instances side by side, (like `start-local-collaboration` script), you'd
do this:

```
script/zed-local -2
```

But you can also start *three* (or even four) instances, each taking up
a quarter of the screen, like this:

```
script/zed-local -3
```

Like before, you can pass other arguments to the script, and they will
be passed through to the first zed instance.

Also, unlike the `start-local-collaboration` script, this script now
requires a call to GitHub to determine your GitHub username. It just
logs you in as Nathan by default, unless you set `ZED_IMPERSONATE`
explicitly.
2023-10-09 12:52:20 -07:00
Max Brunsfeld
1e4f5145cf Update docs to refer to new zed-local script 2023-10-09 12:49:12 -07:00
Max Brunsfeld
a0ab9fe56b Unify the 2 local zed scripts, take a flag for instance count 2023-10-09 12:40:36 -07:00
Max Brunsfeld
b2d735e573
Always log panics (#2896)
I just panicked and wanted to see the cause, but forgot that panic files
get deleted when Zed uploads them.

Release Notes:

- Panics are now written to `~/Library/Logs/Zed/Zed.log`
2023-10-09 09:21:08 -07:00
Max Brunsfeld
044701e907
Add a crate-dep-graph script, remove a few unnecessary dependencies (#3103)
This was motivated by me trying to decide which crate I should put a
`NotificationStore` in.

Run `script/crate-dep-graph` to generate an SVG showing the dependency
graph of our `crates` folder, and open it in a web browser.

After running this command, I noticed a couple of dependencies that
didn't make sense and were easy to remove.

Current dependency graph:

![Screen Shot 2023-10-06 at 1 15 42
PM](https://github.com/zed-industries/zed/assets/326587/b5008235-498a-4562-a826-cc923898c052)
2023-10-09 09:20:06 -07:00
Kirill Bulatov
38d53a6fe2 Bump curl-sys to fix Sonoma issues with it
See https://github.com/alexcrichton/curl-rust/issues/524
2023-10-09 17:09:58 +03:00
Joseph T. Lyons
77a932fe3b
Add enable vim mode checkbox to welcome screen (#3105)
Had a user state that they didn't know how to enable vim mode and that
it was "almost a non-starter" for them. IMO, it is a big enough feature
to warrant being on the welcome screen.

<img width="968" alt="SCR-20231008-rnhj"
src="https://github.com/zed-industries/zed/assets/19867440/a189c646-1fa7-497c-b6d9-37cb1caa0492">

Release Notes:

- Added an `Enable vim mode` checkbox to the welcome screen
2023-10-08 21:27:31 -04:00
Joseph T. Lyons
4b2c24dd8c Add enable vim mode checkbox to welcome screen 2023-10-08 20:07:59 -04:00
Max Brunsfeld
f8ca86c6a7 Remove workspace -> channel dependency 2023-10-06 14:19:25 -07:00
Max Brunsfeld
3412bb75be Remove call -> channel dependency 2023-10-06 13:39:10 -07:00
Max Brunsfeld
17925ed563 Remove unnecessary dependencies on client and rpc 2023-10-06 13:14:53 -07:00
Max Brunsfeld
43da36948b Add a crate-dep-graph script for showing the crate dependency graph 2023-10-06 13:14:39 -07:00
Max Brunsfeld
9f32a6e209 collab 0.23.3 2023-10-06 11:25:46 -07:00
Max Brunsfeld
3f66caedfc
Fix error in query for last N channel messages (#3100) 2023-10-06 11:24:34 -07:00
Joseph T. Lyons
1dd82df59e
Use display name for release channel in panic events (#3101)
This was a mistake from long ago - something I've been meaning to fix
for a long time. All other events use `display_name()`, but panic
events, which leads to mistakes when filtering out `Zed Dev`, which
isn't the format that `dev_name()` returns. I'm adding a fix to zed.dev
as well:

- https://github.com/zed-industries/zed.dev/pull/393

so that the values are adjusted for all clients, not just ones with this
fix. I will correct the data in clickhouse, and adjust the queries in
metabase.

Release Notes:

- N/A
2023-10-06 14:20:06 -04:00
Joseph T. Lyons
81bc86be07 Use display name for release channel in panic events 2023-10-06 14:04:38 -04:00
Max Brunsfeld
663649a100 Fix error in query for last N channel messages 2023-10-06 10:58:34 -07:00
Joseph T. Lyons
1e557dddcc
Add session id to panic events (#3098)
Release Notes:

- N/A
2023-10-06 13:32:45 -04:00
Marshall Bowers
456baaa112
Mainline GPUI2 UI work (#3099)
This PR mainlines the current state of new GPUI2-based UI from the
`gpui2-ui` branch.

Included in this is a performance improvement to make use of the
`TextLayoutCache` when calling `layout` for `Text` elements.

Release Notes:

- N/A

---------

Co-authored-by: Nate Butler <iamnbutler@gmail.com>
Co-authored-by: Antonio Scandurra <me@as-cii.com>
2023-10-06 13:18:56 -04:00
Joseph T. Lyons
2c7e37e9ff Add session id to panic events 2023-10-06 12:32:20 -04:00
Piotr Osiewicz
c46137e40d
chore: Upgrade to Rust 1.73 (#3096)
Release Notes:
- N/A
2023-10-06 14:50:29 +02:00
Piotr Osiewicz
b391f5615b
rust: Highlight async functions in completions (#3095)
Before (code in screenshot is from this branch,
`crates/zed/languages/rust.rs:179`):

![image](https://github.com/zed-industries/zed/assets/24362066/6b709f8c-1b80-4aaa-8ddc-8db9dbca5a5e)
Notice how the last 2 entries (that are async functions) are not
highlighted properly.
After:

![image](https://github.com/zed-industries/zed/assets/24362066/88337f43-b97f-4257-9c31-54c9023e8dbb)

This is slightly suboptimal, as it's hard to tell that this is an async
function - I guess adding an `async` prefix is not really an option, as
then we should have a prefix for non-async functions too. Still, at
least you can tell that something is a function in the first place. :)

Release Notes:
- Fixed Rust async functions not being highlighted in completions.
2023-10-06 14:43:03 +02:00
Max Brunsfeld
559433bed0
Fix panic when immediately closing a window while opening paths (#3092)
Fixes this panic that I've been seeing in Slack:


[example](https://zed-industries.slack.com/archives/C04S6T1T7TQ/p1696530575535779)


```
thread 'main' panicked at 'assertion failed: opened_items.len() == project_paths_to_open.len()'
crates/workspace/src/workspace.rs:3628
<backtrace::capture::Backtrace>::create
<backtrace::capture::Backtrace>::new
Zed::init_panic_hook::{closure#0}
std::panicking::rust_panic_with_hook
std::panicking::begin_panic_handler::{{closure}}
std::sys_common::backtrace::__rust_end_short_backtrace
_rust_begin_unwind
core::panicking::panic_fmt
core::panicking::panic
<workspace::Workspace>::new_local::{closure#0}::{closure#0}
```

I believe it was caused by a window being closed immediately, while it
was still loading some paths. There was a mismatch in expectation
between the `workspace::open_items` function (which contains this
assertion), and the `Workspace::load_workspace` method. That later
method can return an empty vector if the workspace handle is dropped
while it is executing.

Release Notes:

- Fixed a crash when closing a Zed window immediately after opening it
2023-10-05 16:28:23 -07:00
Max Brunsfeld
8fafae2cfa Fix panic when immediately closing a window while opening paths 2023-10-05 16:21:14 -07:00
Max Brunsfeld
b3c9473bc8 collab 0.23.2 2023-10-05 16:06:28 -07:00
Max Brunsfeld
b77c815bcd
Fix bugs in handling mutual following (#3091)
This fixes some bugs in our following logic, due to our attempts to
prevent infinite loops when two people follow each other.

* Propagate all of leader's views to a new follower, even if those views
were originally created by that follower.
* Propagate active view changes to followers, even if the active view is
following that follower.
* Avoid redundant active view updates on the client.

Release Notes:

- Fixed bugs where it was impossible to follow someone into a view that
they previously following you into.
2023-10-05 15:16:58 -07:00
Mikayla Maki
37de4a9990
Add markdown parsing to channel chat (#3088)
TODO:
- [x] Add markdown rendering to channel chat
- [x] Unify (?) rendering logic between hover popover and chat
- [x] ~~Determine how to deal with document-oriented markdown like `#`~~
Unimportant until we want to do something special with `#channel`
- [x] Tidy up spacing and styles in chat panel

Release Notes:

- Added markdown rendering to channel chat
- Improved channel chat message style
- Fixed a bug where long chat messages would not soft wrap
2023-10-05 14:30:12 -07:00
Mikayla
c4870e1b6b
re-unify markdown parsing between hover_popover and chat 2023-10-05 14:22:41 -07:00
Max Brunsfeld
438dd42f7d Fix bugs in handling mutual following
* Propagate all of leader's views to a new follower, even if those views
  were originally created by that follower.
* Propagate active view changes to followers, even if the active view is
  following that follower.
* Avoid redundant active view updates on the client.
2023-10-05 13:28:46 -07:00
Mikayla
f57d563578
Improve chat rendering 2023-10-05 11:58:41 -07:00
Joseph T. Lyons
c8535440d3
Add session id (#3090)
Release Notes:

- N/A
2023-10-05 14:57:08 -04:00
Joseph T. Lyons
84ea34f918 Add session id 2023-10-05 14:50:48 -04:00
Mikayla
44ada52185
Fix bug where chat text wouldn't wrap to width 2023-10-05 11:06:29 -07:00
Conrad Irwin
78b1231386
Clear SelectionGoal on input (#3089)
Release Notes:

- `up` and `down` now go to the correct place after inserting
2023-10-05 09:57:36 -06:00
Conrad Irwin
f1c743286d Clear SelectionGoal on input 2023-10-05 09:02:52 -06:00
Mikayla
d298afba01
Create markdown text element and add to channel chat 2023-10-04 17:47:30 -07:00