Commit Graph
100 Commits
Author SHA1 Message Date
Marshall Bowers 50b9e5d8d2 Add Gleam support (#6733)
This PR adds support for [Gleam](https://gleam.run/).

<img width="1320" alt="Screenshot 2024-01-25 at 6 39 18 PM"
src="https://github.com/zed-industries/zed/assets/1486634/7891b6e9-d7dc-46a0-b7c5-8aa7854c1f35">

<img width="757" alt="Screenshot 2024-01-25 at 6 39 37 PM"
src="https://github.com/zed-industries/zed/assets/1486634/f7ce6b3f-6175-45cb-8547-cfd286d918c6">

<img width="694" alt="Screenshot 2024-01-25 at 6 39 55 PM"
src="https://github.com/zed-industries/zed/assets/1486634/b0838027-c377-47e6-bdd1-bdc9b67a8672">

There are still some areas of improvement, like extending what
constructs we support in the outline view, but this is a good start.

Release Notes:

- Added Gleam support
([#5162](https://github.com/zed-industries/zed/issues/5162)).
2024-01-25 18:44:35 -05:00
Marshall Bowers 20c90f07e1 Clean up references in doc comments in language crate (#6729)
This PR cleans up a handful of references in doc comments in the
`language` crate so that `rustdoc` will link and display them correctly.

Release Notes:

- N/A
2024-01-25 16:04:58 -05:00
Marshall Bowers a3d431d86f Remove placeholder description from PR template (#6726)
This PR removes the placeholder description from the PR template, opting
to just leave empty space instead.

I've seen lots of instances where authors will not delete the
placeholder, and it ends up in Git history, which is not desirable.

Release Notes:

- N/A
2024-01-25 14:19:22 -05:00
Marshall BowersandConrad 6103f67875 Make follower avatars smaller (#6724)
This PR makes the avatars of followers in a facepile smaller than the
leader's avatar.

<img width="227" alt="Screenshot 2024-01-25 at 1 42 14 PM"
src="https://github.com/zed-industries/zed/assets/1486634/defc22b4-4ae1-4d63-a0d8-53e3ca8cce04">

Release Notes:

- Adjusted the size of follower avatars to be smaller than the leader.

Co-authored-by: Conrad <conrad@zed.dev>
2024-01-25 13:53:50 -05:00
Marshall Bowers 7068161bd7 Sort .mailmap alphabetically (#6711)
This PR sorts the entries in the `.mailmap` file to keep them in
alphabetical order.

Release Notes:

- N/A
2024-01-25 09:51:47 -05:00
Marshall Bowers bf7489269e Clean up docs (#6464)
This PR cleans up some of the Zed meta docs.

Namely:
- Removed references to the `zed-industries/community` repository
- Removed old docs directory (it'll be in Git history if we need it)

Release Notes:

- N/A
2024-01-25 00:05:15 -05:00
Marshall Bowers 90c1d8f734 Update Cargo.lock (#6445)
This PR updates `Cargo.lock` to reflect the changes made in #6435.

Release Notes:

- N/A
2024-01-24 17:46:40 -05:00
Marshall Bowers f654b89657 Make it clearer that macOS Sonoma is supported (#4249)
This PR updates the docs to make it clearer that macOS Sonoma is
supported.

Release Notes:

- N/A
2024-01-24 09:59:13 -05:00
Marshall Bowers c07e416dc0 Clean up gpui docs (#4240)
This PR does some cleanup of the `gpui` docs, making sure we're linking
things appropriately and following good Rust documentation style.

Release Notes:

- N/A
2024-01-23 23:20:05 -05:00
Marshall Bowers ab3aba9d2f Add CODE_OF_CONDUCT.md (#4239)
This PR adds a `CODE_OF_CONDUCT.md` that links out to the existing code
of conduct on the Zed site.

The link in the file is currently a dead link, but will work once the
new site goes live tomorrow.

Release Notes:

- N/A
2024-01-23 22:31:39 -05:00
Marshall Bowers 6b50509182 Balance headings in README (#4238)
This PR balances the headings in the README.

Release Notes:

- N/A
2024-01-23 22:15:37 -05:00
Marshall Bowers a936aab72f Update README (#4237)
This PR updates the README by removing the TODO items and linking out to
the contributing docs.

Release Notes:

- N/A
2024-01-23 22:09:38 -05:00
Marshall Bowers 63d86fb137 Add barebones GPUI README (#4235)
This PR adds a barebones README to the `gpui` crate, just so folks have
somewhere to land on when we link them here from
[gpui.rs](https://www.gpui.rs/).

We can flesh this out as we go.

Release Notes:

- N/A
2024-01-23 19:22:49 -05:00
Marshall Bowers 74cf1992a7 Remove unused screenshot (#4224)
This PR removes an unused screenshot from the `assets/` directory.

As a note, we should probably be careful about what kinds of extraneous
binary assets we're committing to the repo (especially ones not required
for Zed itself), as these can bloat the repo size.

Release Notes:

- N/A
2024-01-23 14:28:04 -05:00
Marshall Bowers 24de848fdf Prevent breadcrumbs from overflowing the toolbar (#4177)
This PR prevents the breadcrumbs from overflowing the toolbar when its
contents are long:

<img width="1270" alt="Screenshot 2024-01-19 at 6 15 58 PM"
src="https://github.com/zed-industries/zed/assets/1486634/ecee7a42-51ef-43d4-99a1-9c3da784dede">

Release Notes:

- Fixed an issue where long breadcrumbs would overflow the toolbar.
2024-01-19 18:23:14 -05:00
Marshall Bowers 7620feb8b2 Prevent many call participants from overflowing the title bar (#4173)
This PR fixes an issue where having a lot of participants in a call
could cause the avatars/facepiles to overflow the title bar, pushing the
call controls off-screen.

The participant list will now scroll when it would otherwise exceed the
available space:


https://github.com/zed-industries/zed/assets/1486634/806c77e6-bd4c-4864-8567-92e0960734ee

Release Notes:

- Fixed participant list overflowing the title bar.
2024-01-19 17:21:24 -05:00
Marshall Bowers df2b0f6d2e Add more terminal colors to the theme (#4168)
This PR adds more terminal colors that were present in the Zed1 themes
to the Zed2 theme.

Namely, we now have the `dim_` variants for the various ANSI colors and
various `foreground` colors.

Release Notes:

- Improved terminal colors.
2024-01-19 14:22:53 -05:00
Marshall Bowers 1cc7f66f86 Fix documentation labels obscuring other content in completion menu (#4167)
This PF fixes an issue where the documentation labels in the completion
menu could end up completing obscuring the primary content.

#### Before
<img width="691" alt="Screenshot 2024-01-19 at 1 42 19 PM"
src="https://github.com/zed-industries/zed/assets/1486634/187f2978-08be-4f5e-ba93-91ed09cd6e87">

#### After

<img width="704" alt="Screenshot 2024-01-19 at 1 39 45 PM"
src="https://github.com/zed-industries/zed/assets/1486634/e5929c04-bace-4336-b878-4ada5660d235">

Since this involved changes to the `ListItem`, I also made sure to test
the other problematic case that was fixed in #3845 to make sure we
didn't regress there:

<img width="665" alt="Screenshot 2024-01-19 at 1 39 11 PM"
src="https://github.com/zed-industries/zed/assets/1486634/14b72d44-b6a6-4aef-a708-37fb60b8875a">

I also tried to capture these cases in the `ListItem` stories to make it
easier to test all of them at once:

<img width="1141" alt="Screenshot 2024-01-19 at 1 40 03 PM"
src="https://github.com/zed-industries/zed/assets/1486634/333886ff-e394-4cba-89db-98352481c7f6">

Release Notes:

- Fixed an issue where documentation labels could obscure other content
in the editor completion menu
([#2419](https://github.com/zed-industries/community/issues/2419)).
2024-01-19 14:01:09 -05:00
Marshall Bowers 0578c1bdae Style notifications for notification panel (#4163)
This PR styles the notifications for the notification panel.

These are the notification toasts you receive when you have a new
notification (e.g., a mention in chat):

<img width="423" alt="Screenshot 2024-01-19 at 11 39 16 AM"
src="https://github.com/zed-industries/zed/assets/1486634/a1fc7a67-5aad-4cb2-8dc9-35d302984fcb">

Release Notes:

- Improved the look of toasts for incoming notifications.
2024-01-19 11:46:28 -05:00
Marshall Bowers 01f06f96a1 Update tenses of doc comment summary lines (#4161)
This PR updates the tenses used by the summary line of doc comments to
match the [Rust API documentation
conventions](https://rust-lang.github.io/rfcs/1574-more-api-documentation-conventions.html#summary-sentence).

Specifically:

> The summary line should be written in third person singular present
indicative form. Basically, this means write ‘Returns’ instead of
‘Return’.

I'm sure there are plenty occurrences that I missed.

Release Notes:

- N/A
2024-01-19 11:18:50 -05:00
Marshall Bowers 14863e9a28 Fix assistant panel header when viewing conversation history (#4160)
This PR fixes the assistant panel header when in the conversation
history view to hide the irrelevant tools and/or the slots where they
would go.

Release Notes:

- Improved the assistant panel header when viewing conversation history.
2024-01-19 11:00:22 -05:00
Marshall Bowers f4e3c4a107 Remove VS Code config (#4151)
Who uses VS Code anymore?

Release Notes:

- N/A
2024-01-19 08:24:24 -05:00
Marshall Bowers 4ce0c27e0a Remove more commented-out code (#4150)
This PR removes some more commented-out code from various spots in the
codebase.

Release Notes:

- N/A
2024-01-18 23:17:41 -05:00
Marshall Bowers ebce6226bb Remove commented-out code in auto_update (#4149)
This PR removes some commented-out code in the `auto_update` crate that
we no longer need.

Release Notes:

- N/A
2024-01-18 23:12:42 -05:00
Marshall Bowers 03826be196 Fix docs references in ui (#4147)
This PR fixes some more references in the docs in the `ui` crate.

Release Notes:

- N/A
2024-01-18 22:52:30 -05:00
Marshall Bowers decf320a74 Rename overflow_hidden_{x,y} to overflow_{x,y}_hidden (#4146)
This PR renames the `overflow_hidden_x` and `overflow_hidden_y` methods
to `overflow_x_hidden` and `overflow_y_hidden`, respectively.

This provides consistency with our `overflow_x_scroll` /
`overflow_y_scroll` methods, as well as better matches Tailwind's
naming.

Release Notes:

- N/A
2024-01-18 22:10:41 -05:00
Marshall Bowers 9993418f58 Prevent diagnostics from overflowing the status bar (#4145)
This PR makes it so long diagnostic messages no longer overflow the
status bar and push the right tools off-screen.

Here is an example with a long (placeholder) diagnostic message:

<img width="1136" alt="Screenshot 2024-01-18 at 9 47 07 PM"
src="https://github.com/zed-industries/zed/assets/1486634/18568527-c608-4d4a-9118-b84c6d81c13e">

Release Notes:

- Fixed long diagnostic messages overflowing the status bar.
2024-01-18 21:56:37 -05:00
Marshall Bowers e278410fbc Make FacePile a component again (#4143)
This PR turns `FacePile` back into a component.

Our usage of it seemed a little weird, with us calling `render`
manually.

We're now implementing `Styled` on `FacePile` through its inner `Div` so
that we can apply the `p_1` at the call site.

Release Notes:

- N/A
2024-01-18 20:49:51 -05:00
Marshall Bowers 3542b99c9d Tweak the description of the gpui crate (#4142)
This PR tweaks the description of the `gpui` crate, since it's now the
only version.

There can only be one!

Release Notes:

- N/A
2024-01-18 18:52:16 -05:00
Marshall Bowers 0691ad480b Make clicking ListHeader labels toggle the disclosure (#4140)
This PR makes clicking the label inside of a `ListHeader` with a
disclosure also toggle the disclosure.

Release Notes:

- Added support for clicking the "Online", "Offline", and "Requests"
headers in the contact list to toggle their expansion.
2024-01-18 18:21:53 -05:00
Marshall Bowers f3a76c8636 Remove VS Code themes (#4139)
This PR removes the VS Code themes from the `assets/` directory, as
we're not currently using them (and it's unlikely we will in their
current state).

Release Notes:

- N/A
2024-01-18 17:52:22 -05:00
Marshall Bowers 93a567adfb Add Git .mailmap file (#4138)
This PR adds a Git [`.mailmap`](https://git-scm.com/docs/gitmailmap)
file to canonicalize committer names/emails.

Release Notes:

- N/A
2024-01-18 17:38:28 -05:00
Marshall Bowers 547aab2fea Style the reset key state for the assistant panel (#4136)
This PR styles the reset key state for the assistant panel.

Community issue: https://github.com/zed-industries/community/issues/2429

<img width="641" alt="Screenshot 2024-01-18 at 4 28 32 PM"
src="https://github.com/zed-industries/zed/assets/1486634/57377804-2867-45d3-906c-353130ec78e6">

Release Notes:

- Fixed the reset key screen for the assistant panel.
2024-01-18 16:38:14 -05:00
Marshall Bowers 7b9e7fea4e Use regular info color for speaker borders (#4126)
This PR updates the speaker borders to use the regular `info` status
color instead of the `info_border` color.

This should provide more contrast and make it clearer as to who is
speaking.

Release Notes:

- Made the active speakers' borders more visible when in a call.
2024-01-18 11:12:45 -05:00
Marshall Bowers 9521f49160 Clean up references in doc comments in lsp crate (#4109)
This PR cleans up a handful of references in doc comments in the `lsp`
crate so that `rustdoc` will link and display them correctly.

Release Notes:

- N/A
2024-01-17 19:06:19 -05:00
Marshall Bowers 8f3d79c3b8 Fix file paths in stories (#4104)
This PR fixes some file paths used in our stories that were still
referencing the `ui2` crate.

Release Notes:

- N/A
2024-01-17 16:59:57 -05:00
Marshall Bowers b2afa73321 Decrease the size of timestamps in the assistant conversation editor (#4101)
This PR decreases the size of the timestamps in the assistant's
conversation editor.

Ideally we'd want to align the baseline of the timestamp text with the
text in the sender button. I spent a while trying to do this, but it
seems like it may be pretty tricky.

Release Notes:

- Decreased the size of timestamps in the assistant panel conversation
editor.
2024-01-17 15:45:17 -05:00
Marshall BowersandConrad cf5dc099fb Add more documentation to collab (#4095)
This PR adds more documentation to the `collab` crate.

Release Notes:

- N/A

---------

Co-authored-by: Conrad <conrad@zed.dev>
2024-01-17 13:38:12 -05:00
Marshall BowersandConrad 4e4a1e0dd1 Document the public interface of the vim crate (#4093)
This PR documents the public interface of the `vim` crate.

Release Notes:

- N/A

---------

Co-authored-by: Conrad <conrad@zed.dev>
2024-01-17 13:32:38 -05:00
Marshall Bowers df67917768 Make channel buttons square (#4092)
This PR makes the channel buttons square.

Release Notes:

- Adjusted the shape of the channel buttons.
2024-01-17 11:47:43 -05:00
Marshall Bowers 9c557aae9e Fix regression of welcome screen background color (#4091)
In #3910 we made the welcome screen use the same background color as the
editor.

However, this later regressed in
cdd5cb16ed.

This PR fixes that regression and restores the correct color for the
welcome page.

Release Notes:

- Fixed the background color of the welcome screen.
2024-01-17 11:00:59 -05:00
Marshall Bowers 26a3f68080 Tweak mute indicator positioning (#4080)
This PR tweaks the positioning of the mute indicators so that they cover
a little bit less of the avatar:

#### Before

<img width="305" alt="Screenshot 2024-01-16 at 6 32 51 PM"
src="https://github.com/zed-industries/zed/assets/1486634/3f6ad2f4-2c3e-498b-97a4-8b522f3ceda9">

#### After

<img width="311" alt="Screenshot 2024-01-16 at 6 26 48 PM"
src="https://github.com/zed-industries/zed/assets/1486634/37161557-084d-4b69-b61f-a0958e8e867c">

(It's a bit hard to tell in the screenshot, but there is a gap between
the bottom of the indicator and the top of the color ribbon).

Release Notes:

- N/A
2024-01-16 18:49:37 -05:00
Marshall Bowers 4e8ad363f1 Increase border width used to indicate speaking (#4077)
This PR increases the width of the border that we use to indicate when a
call participant is speaking.

This should make it more apparent in the UI when someone is speaking.

Release Notes:

- Increased the width of the ring used to indicate when someone is
speaking in a call.
2024-01-16 17:09:28 -05:00
Marshall Bowers 2e03c848e3 Add dedicated indicator for showing a muted call participant (#4076)
This PR improves the muted indicators to make it clearer when a call
participant is muted.

Previously we used a red border color to denote when a participant was
muted.

Now we render an indicator with an icon to more clearly indicate the
participant's muted status:

<img width="303" alt="Screenshot 2024-01-16 at 4 05 15 PM"
src="https://github.com/zed-industries/zed/assets/1486634/d30fcd84-48e7-4959-b3c4-1054162c6bd6">

Hovering over the indicator will display a tooltip for further
explanation:

<img width="456" alt="Screenshot 2024-01-16 at 4 05 25 PM"
src="https://github.com/zed-industries/zed/assets/1486634/6345846f-196c-47d9-8d65-c8d86e63f823">

This change also paves the way for denoting the deafened status for call
participants.

Release Notes:

- Improved the mute indicator for call participants.
2024-01-16 16:18:06 -05:00
Marshall Bowers 9903b7ae6e Add color ribbon for local player (#4075)
This PR adds a color ribbon for the local player in the current call.

This fixes the alignment of the local user's avatar so that it lines up
with the rest of the collaborators in the call:

<img width="307" alt="Screenshot 2024-01-16 at 2 56 04 PM"
src="https://github.com/zed-industries/zed/assets/1486634/979ee3fa-70c9-482a-9351-020402ad68b9">

Release Notes:

- Added a color ribbon for the local player when in a call.
2024-01-16 15:17:29 -05:00
Marshall Bowers ca4a8b2226 Rework Avatar indicator to be more general-purpose (#4073)
This PR reworks the way we add indicators to `Avatar`s to make them more
general-purpose.

Previously we had logic specific to the availability indicator embedded
in the `Avatar` component, which made it unwieldy to repurpose for
something else.

Now the `indicator` is just a slot that we can put anything into.

Release Notes:

- N/A
2024-01-16 14:05:05 -05:00
Marshall Bowers 90f4c70a82 Rename h_stack and v_stack to h_flex and v_flex, respectively (#4053)
This PR renames the `h_stack` and `v_stack` to `h_flex` and `v_flex`,
respectively.

We were previously using `h_stack` and `v_stack` to match SwiftUI, but
`h_flex` and `v_flex` fit better with the web/flexbox terminology that
the rest of GPUI uses.

Additionally, we were already calling the utility functions used to
implement `h_stack` and `v_stack` by the new names.

Release Notes:

- N/A
2024-01-15 11:34:06 -05:00
Marshall Bowers b136d21ebf Make tab close button square (#4052)
This PR makes the close button for tabs square.

`IconButton` now accepts a `shape`, and using `IconButtonShape::Square`
will ensure the `IconButton` is square with respect to its contained
icon.

#### Before

<img width="119" alt="Screenshot 2024-01-15 at 10 32 40 AM"
src="https://github.com/zed-industries/zed/assets/1486634/dc806b9b-411f-4cd9-8c10-676d2cbd298b">

#### After

<img width="116" alt="Screenshot 2024-01-15 at 10 32 24 AM"
src="https://github.com/zed-industries/zed/assets/1486634/8b4ef43c-14b6-449f-a235-5d7affd82c4e">

Release Notes:

- Changed the tab close button to be square.
2024-01-15 10:43:03 -05:00
Marshall Bowers bc09ce6ffc Clean up some theme TODOs (#4034)
This PR cleans up some TODOs we had in the themes.

We won't be addressing these in the immediate term, so no need to have
them show up when folks are looking for TODOs to burn down before
launch.

I added some general notes as signposts until we're ready to revisit
this.

Release Notes:

- N/A
2024-01-12 10:37:18 -05:00
Marshall Bowers a5203364b1 Use the .selected style for buffer search option buttons (#4000)
This PR updates the `IconButton`s used to control the buffer search
options to use the `.selected` state to denote when they are active.
This matches what we are doing in the project search.

This should improve the contrast in certain themes.

Release Notes:

- Improved the active style for the search options in buffer search.
2024-01-10 10:35:06 -05:00
Marshall Bowers aff119b80a Fix possessive "its" in docs and comments (#3998)
This PR fixes a number of places where we were incorrectly using "it's"
where we needed to use the possessive "its".

Release Notes:

- N/A
2024-01-10 10:09:48 -05:00
Marshall Bowers 8cb291baa4 Take a different approach to rendering channel buttons (#3991)
This PR changes the approach we're using to render the channel buttons
to use a more straightforward (and less hacky) approach.

### Motivation

Even with the variety of hacks that were employed to make the current
approach work, there are still a number of issues with the current
solution:

- Hovering in the empty space to the left of a channel doesn't correctly
apply the hover background to the container for the channel buttons
- Hovering to the very right of the collab panel (right on top of the
drag handle) causes the channel button container to apply its hover
background without applying it to the rest of the row
- The buttons would still get pushed off to the right by the indent
space in the channel tree, resulting in jagged indicators at small sizes

Additionally, the rectangular background placed behind the channel
buttons still didn't look great when it overlapped with the channel
names.

### Explanation

For these reasons, I decided to explore a simpler approach that
addresses these issues, albeit with some tradeoffs that I think are
acceptable.

We now render the absolutely-positioned button container as a sibling
element of the `ListItem`. This is to avoid issues with the container
getting pushed around based on the contents of the `ListItem` rather
than staying absolutely positioned at the end of the row.

We also have gotten rid of the background for the button container, and
now rely on the background of the individual `IconButton`s to occlude
the channel name behind them when the two are overlapping.

Here are some examples of the new UI in various configurations:

#### When the channel entry is hovered

<img width="270" alt="Screenshot 2024-01-09 at 6 15 24 PM"
src="https://github.com/zed-industries/zed/assets/1486634/0207a129-30eb-4067-8490-3b6c9cbf75ea">

#### Overlapping with the channel name

<img width="229" alt="Screenshot 2024-01-09 at 6 15 43 PM"
src="https://github.com/zed-industries/zed/assets/1486634/0a67507e-45c8-4325-a71e-d416edc3a115">

#### Narrow collab panel

<img width="116" alt="Screenshot 2024-01-09 at 6 16 07 PM"
src="https://github.com/zed-industries/zed/assets/1486634/887ebaa3-e4d6-4497-9141-afcc8b7cd356">

### Tradeoffs

The new approach comes with the following tradeoffs that I am currently
aware of:

The occlusion can look a little weird when the icons are in the middle
of a channel name (as opposed to fully occluding the end of the channel
name):
<img width="190" alt="Screenshot 2024-01-09 at 6 24 32 PM"
src="https://github.com/zed-industries/zed/assets/1486634/0062b806-1b8f-47eb-af8d-f061d9829366">

Hovering one of the icons causes the icon to be hovered instead of the
row:

<img width="232" alt="Screenshot 2024-01-09 at 6 31 38 PM"
src="https://github.com/zed-industries/zed/assets/1486634/cbcc1a45-64d2-4890-8ad6-c5a5ee961b86">

Release Notes:

- Improved the way channel buttons are displayed.
2024-01-09 18:39:29 -05:00
Marshall Bowers 684bd530f0 ui: Fix doc tests (#3989)
There were a ton of doc tests that weren't compiling in the `ui` crate,
so this PR fixes them.

Release Notes:

- N/A
2024-01-09 16:56:28 -05:00
Marshall Bowers a579ef17d7 Rename Shape to AvatarShape (#3986)
This PR renames the `Shape` enum to `AvatarShape`, since it seems pretty
specific to `Avatar`s.

Release Notes:

- N/A
2024-01-09 16:21:27 -05:00
Marshall Bowers 7ed3f5f392 Clean up references in doc comments in ui and theme crates (#3985)
This PR cleans up a number of references in doc comments in the `ui` and
`theme` crates so that `rustdoc` will link and display them correctly.

Release Notes:

- N/A
2024-01-09 15:22:36 -05:00
Marshall Bowers 74dadd68d2 Clean up references in doc comments (#3983)
This PR cleans up a number of references in doc comments so that
`rustdoc` will link and display them correctly.

Release Notes:

- N/A
2024-01-09 14:48:48 -05:00
Marshall Bowers 824d06e2b2 Remove Default impl for StatusColors (#3977)
This PR removes the `Default` impl for `StatusColors`.

Since we need default light and dark variants for `StatusColors`, we
can't use a single `Default` impl.

Release Notes:

- N/A
2024-01-09 11:31:19 -05:00
Marshall Bowers f0ef63bfa0 gpui: Add SharedUrl type (#3975)
This PR adds a `SharedUrl` type to GPUI.

It's just like a `SharedString`, but for denoting that the contained
value is a URL.

Mainlined from @nathansobo's GPUI blog post:
https://github.com/zed-industries/zed/pull/3968/files#diff-7ee75937e2daf7dd53f71b17698d8bd6d46993d06928d411781b9bd739b5f231R9-R12

Release Notes:

- N/A
2024-01-09 10:55:49 -05:00
Marshall Bowers fa53353c57 Rename IconElement to just Icon (#3974)
This PR renames the `IconElement` component to just `Icon`.

This better matches the rest of our components, as `IconElement` was the
only one using this naming convention.

The `Icon` enum has been renamed to `IconName` to free up the name.

I was trying to come up with a way that would allow rendering an
`Icon::Zed` directly (and thus make the `IconElement` a hidden part of
the API), but I couldn't come up with a way to do this cleanly.

Release Notes:

- N/A
2024-01-09 10:11:20 -05:00
Marshall Bowers 4afa5fb23e Add stories for collab notifications (#3967)
This PR adds some basic stories for collab notifications to make them
easier to work on:

<img width="1076" alt="Screenshot 2024-01-08 at 9 43 39 PM"
src="https://github.com/zed-industries/zed/assets/1486634/4a0adcfa-1134-49c2-b589-74ac1d52af4c">

I factored out a `CollabNotification` component that defines the general
structure for one of these notifications, and this is the component that
we use in the stories, with representative values passed to it to
simulate the different instances of the notification.

We can't use the actual notification components in the stories due to
their data dependencies.

Release Notes:

- N/A
2024-01-08 21:54:59 -05:00
Marshall Bowers c40a7f3445 Stop propagation when deploying the context menu for a project panel entry (#3965)
This PR fixes an issue where right-click on any project panel entry
would cause the context menu on the root of the project panel
(introduced in #3954) to deploy.

We need to stop propagation in the handler on the inner project panel
list items so that the click event doesn't bubble up the tree.

Release Notes:

- Fixed an issue where the project panel was always deploying the root
context menu rather than on the clicked item.
2024-01-08 20:51:14 -05:00
Marshall Bowers 4007b2f72b Tighten up feedback modal design (#3960)
This PR tightens up the design of the feedback dialog:

<img width="680" alt="Screenshot 2024-01-08 at 6 20 50 PM"
src="https://github.com/zed-industries/zed/assets/1486634/8dc0e687-2459-4ab3-b69f-b610ce067ef1">

<img width="682" alt="Screenshot 2024-01-08 at 6 21 24 PM"
src="https://github.com/zed-industries/zed/assets/1486634/f0730710-16e0-4d61-a919-60874442186a">

Release Notes:

- Improved the design of the feedback dialog.
2024-01-08 18:28:37 -05:00
Marshall Bowers fac8ebf2cc Fix error border color for email input in feedback dialog (#3959)
This PR fixes the border color used when the email input in the feedback
dialog is invalid.

Previously this was hardcoded just to `red` instead of using the
appropriate color from the theme.

<img width="653" alt="Screenshot 2024-01-08 at 5 40 07 PM"
src="https://github.com/zed-industries/zed/assets/1486634/ea01cd76-d661-4512-b668-c82b8d00d84e">

Release Notes:

- Fixed the border color used for the email input in the feedback dialog
when an invalid email is entered.
2024-01-08 17:46:25 -05:00
Marshall Bowers 80f204fabb Style the chat panel message input (#3956)
This PR styles the message input in the chat panel.

<img width="242" alt="Screenshot 2024-01-08 at 4 28 33 PM"
src="https://github.com/zed-industries/zed/assets/1486634/48e83692-878e-4891-8e40-8738cdeb23a8">

Release Notes:

- Improved the styling of the message editor in the chat panel.
2024-01-08 16:45:18 -05:00
Marshall Bowers 667d90180d Improve chat panel empty states (#3955)
This PR improves the empty states for the chat panel:

- The signed-out state has been updated to match our other signed-out
panel states.
- A new state has been added to account for the case where a user is
signed in but doesn't have an active chat.

Release Notes:

- Improved the design of empty states in the chat panel.
2024-01-08 15:56:52 -05:00
Marshall Bowers 8214a7f656 Fix inconsistent sizing between the buffer search and the project search (#3951)
This PR fixes the inconsistent sizing between the buffer search and the
project search when both elements have both a primary and secondary item
shown in the toolbar.

Release Notes:

- Fixed some inconsistent sizing in the buffer search and project search
when both have two rows of tools in the toolbar.
2024-01-08 14:40:48 -05:00
Marshall Bowers 5c28c688fa theme: Removed commented-out ActiveTheme impl (#3950)
This PR removes a commented-out implementation for the `ActiveTheme`
trait on the `WindowContext`.

We don't need this implementation as we can go through the
`AppContext`'s implementation.

Release Notes:

- N/A
2024-01-08 13:51:18 -05:00
Marshall Bowers 9b06c66e00 terminal: Remove resolved TODO (#3948)
This PR removes a resolved TODO in the `terminal` crate.

Release Notes:

- N/A
2024-01-08 13:39:56 -05:00
Marshall Bowers 00fc22a461 terminal: Clean up doc comment for rgb_for_index (#3947)
This PR cleans up the doc comment for the `rgb_for_index` function.

Release Notes:

- N/A
2024-01-08 13:33:41 -05:00
Marshall Bowers 5e401e4550 Fix layout shift when renaming a channel (#3946)
This PR fixes the layout shift that would occur in the channel list when
opening a rename editor for a channel.

Release Notes:

- Fixed layout shift when opening a rename editor for a channel.
2024-01-08 13:28:21 -05:00
Marshall Bowers 72de75dd45 Adjust spacing of extra call participant count indicator (#3945)
This PR adjusts the spacing of the indicator showing the number of extra
call participants that appears after the facepile:

<img width="242" alt="Screenshot 2024-01-08 at 1 09 39 PM"
src="https://github.com/zed-industries/zed/assets/1486634/6d9cbefa-3b4e-4501-ab11-51026dfb5b6c">

Release Notes:

- Added more space between the call participant facepile and the number
indicating additional call participants.
2024-01-08 13:24:56 -05:00
Marshall Bowers a8c193c7a6 Remove resolved TODO (#3943)
This PR removes a resolved TODO in drawing diff hunk status.

Release Notes:

- N/A
2024-01-08 13:08:44 -05:00
Marshall Bowers 46a99feb97 Use correct color for folded diff indicator (#3942)
This PR updates the indicator for changes within a fold to use the
correct color from the theme:

<img width="380" alt="Screenshot 2024-01-08 at 12 52 56 PM"
src="https://github.com/zed-industries/zed/assets/1486634/b8bf6bf3-6acc-43a4-8c4b-a02c975c7f02">

Release Notes:

- Updated the color of the indicator for a fold containing modified
lines.
2024-01-08 12:58:04 -05:00
Marshall Bowers 2f6bbde785 Improve styling of tree branches in collab panel (#3941)
This PR updates the styling of the tree branches in the current call
section of the collab panel:

- Fixed the gap between the notes and chat items.
- We now overdraw the tree branch on the notes item so it fills the gap.
- The tree branch lines are now thinner.

<img width="231" alt="Screenshot 2024-01-08 at 12 35 35 PM"
src="https://github.com/zed-industries/zed/assets/1486634/844c9e18-c2de-4163-9384-41d1577e23a0">

Note: I think the signature for `render_tree_branch` could use some
improvement. I don't like having the multiple `bool` parameters, but any
change I could think of was going to be a bit more invasive than I
wanted to take on in this PR.

Release Notes:

- Improved the style of the tree branches in current call details in the
collab panel.
2024-01-08 12:40:34 -05:00
Marshall Bowers fd2abb7ba1 Adjust thickness of tree branches 2024-01-08 12:32:01 -05:00
Marshall Bowers 04f01ab408 Overdraw the tree branch to avoid gaps 2024-01-08 12:01:13 -05:00
Marshall Bowers 3541dd8a6d Tweak message role indicator in the assistant panel (#3938)
This PR tweaks the message role indicator in the assistant panel.

Previously we added a negative margin in #3925 to align the indicator
with the text, but the result of this was the left side of the button
getting clipped on hover.

To remedy this, we now use the filled button style so that the
background always shows and maintains the visual alignment.

### Before

<img width="451" alt="Screenshot 2024-01-08 at 10 50 21 AM"
src="https://github.com/zed-industries/zed/assets/1486634/dd3ae3dc-13c5-4d81-abd7-8023aca496c8">

### After

<img width="401" alt="Screenshot 2024-01-08 at 10 54 42 AM"
src="https://github.com/zed-industries/zed/assets/1486634/c089a879-1c88-4d94-9532-4e9433a35828">

We could also do what we did in Zed1, where the hover style doesn't have
any padding and is flush with the left side of the text, but I don't
think this looks as polished.

The "Assistant" role now also uses a separate color from "System".

Release Notes:

- Updated the style of the message role indicator in the assistant
panel.
2024-01-08 11:06:02 -05:00
Marshall Bowers 42bd9ffa7e Use filled button style for role indicator in assistant panel
This fixes the left side of the button getting clipped on hover.
2024-01-08 10:52:12 -05:00
Marshall Bowers 58664206cf Use info color for assistant role indicator 2024-01-08 10:51:20 -05:00
Marshall Bowers be98ff408e Iterate on design of channel management modal (#3923)
This PR refines the design of the channel management modal:

#### Before

<img width="585" alt="Screenshot 2024-01-05 at 4 17 32 PM"
src="https://github.com/zed-industries/zed/assets/1486634/a6d96674-b688-4549-8fb8-0a7b2c7c88be">

#### After

<img width="589" alt="Screenshot 2024-01-05 at 4 15 20 PM"
src="https://github.com/zed-industries/zed/assets/1486634/31ae8dc1-a129-4a15-963e-9779b9b79bd9">

Release Notes:

- Improved the look of the channel management modal.
2024-01-05 16:22:43 -05:00
Marshall Bowers 6cb8b86aeb Tidy up styling of connection status in the title bar (#3922)
This PR tidies up the styling of the connection status indicators in the
title bar.

Removed some debug styles and tweaked the styling to match the rest of
the title bar overall.

Release Notes:

- Improved the connection status indicators in the title bar.
2024-01-05 15:36:30 -05:00
Marshall Bowers ff82fb980b Gracefully prevent submitting feedback while in a shared project (#3919)
This PR fixes a panic that would occur when trying to submit feedback
while within a shared project.

There may be a way we want to support this in the future, but for now we
just show a toast letting the user know this is not supported:

<img width="415" alt="Screenshot 2024-01-05 at 2 46 02 PM"
src="https://github.com/zed-industries/zed/assets/1486634/d3eff4d9-90ba-4257-9857-19b1bc933cf3">

Release Notes:

- Fixed a panic when attempting to open the feedback modal while in a
shared project.
2024-01-05 15:03:09 -05:00
Marshall Bowers 79cccdb6d1 Use regular text color for diagnostic popovers (#3918)
This PR updates the diagnostic popovers to use the regular editor text
color rather than one specific to the diagnostic kind.

Release Notes:

- Updated text color in diagnostic popovers.
2024-01-05 14:13:43 -05:00
Marshall Bowers 1e7e3804f2 Merge branch 'main' into remove-old-theme 2024-01-05 13:39:45 -05:00
Marshall Bowers c7c874a371 Decouple theme license generation from TypeScript theme definitions (#3917)
This PR decouples the generation of licenses for the themes we ship from
the TypeScript theme definitions.

For now, we are embedding the license information for the themes in the
`theme_importer`, and emit a combined `LICENSES` file in the `theme`
crate whenever we import themes. This is also where we check that each
theme has a valid license.

We then use this `LICENSES` file when building up the global license
file for Zed.

This decoupling is one step towards us being able to delete the old Zed1
styles.

Release Notes:

- N/A
2024-01-05 13:38:12 -05:00
Marshall Bowers 4644d55493 Upgrade ctor to v0.2.6 (#3915)
This PR upgrades our version of `ctor` to v0.2.6.

We were previously using a fork that contained this fix:
https://github.com/mmastrac/rust-ctor/pull/295.

A new version of `ctor` has now been released with that change, so we
can switch back to the mainline version.

I scanned through the diff between versions (since we're upgrading from
effectively v0.1.20) and didn't notice anything that seemed obviously
breaking:
https://github.com/mmastrac/rust-ctor/compare/564b87f1dc13cf061ef9997ee501fa5378f35ba1...ee6b4b1c7bd3c9c1edad3b6f4d906e767767ba3d

Release Notes:

- N/A
2024-01-05 12:08:41 -05:00
Marshall Bowers ea43d7a5c6 Iterate on design of project search bar (#3913)
This PR iterates on the design of the project search bar:

- Mode selections have been updated to use `ToggleButton`s
- Spacing has been added between the various elements.

Release Notes:

- Improved the look of the project search bar.
2024-01-05 11:48:52 -05:00
Marshall Bowers 319f18e962 Use the editor_background color for the project search empty state (#3911)
This PR updates the project search empty state to use the same
background color as the editor.

Release Notes:

- Updated the background color of the project search's empty state to
match the editor background.
2024-01-05 11:42:40 -05:00
Marshall Bowers 0083ca38e3 Use the editor_background color for the welcome screen's background (#3910)
This PR updates the welcome screen to use the same background color as
the editor.

<img width="1136" alt="Screenshot 2024-01-05 at 11 28 19 AM"
src="https://github.com/zed-industries/zed/assets/1486634/30f2bd7b-e25f-4851-9f43-eb187d1d62e6">

Release Notes:

- Updated the background color of the welcome screen to match the editor
background.
2024-01-05 11:34:32 -05:00
Marshall Bowers c8dcc80a1f Respect the setting to show/hide the assistant and chat panels (#3909)
This PR makes it so we respect the setting to show/hide the assistant
and chat panels.

Resolves https://github.com/zed-industries/community/issues/2370.

Release Notes:

- Fixed an issue where the settings to show/hide certain panels were not
respected.
2024-01-05 11:17:29 -05:00
Marshall Bowers 3f06a05060 Iterate on collab panel filter input style (#3900)
This PR takes another pass at the collab panel filter input to improve
its styling.

Release Notes:

- Improved the look of the filter input in the collab panel.
2024-01-04 18:08:28 -05:00
Marshall Bowers e5af1cb9a2 Remove unneeded branches 2024-01-04 17:35:18 -05:00
Marshall Bowers afbbb1c41f Merge branch 'main' into collab-titlebar-fixes 2024-01-04 17:31:58 -05:00
Marshall Bowers 47476faef1 Fix label color for inactive tabs (#3899)
This PR fixes an issue where certain tabs were not using the correct
color for their labels when they were inactive.

Release Notes:

- Fixed an issue where some inactive tabs were not using the correct
label color.
2024-01-04 17:25:11 -05:00
Marshall Bowers 32cd4d778a Render an empty placeholder when not showing file icons in the project panel (#3897)
This PR makes it so when we're not showing file icons in the project
panel we render an empty placeholder instead of nothing.

This prevents the indentation of the items in the file tree from
changing based on the presence of the icon.

Release Notes:

- Fixed layout shift when `project_panel.file_icons` is set to `false`.
2024-01-04 17:10:08 -05:00
Marshall Bowers 2da314fb79 Fix font resolution for UI text so we render with the fallback font (#3893)
This PR updates the font resolution for shaped text to use the new
`resolve_font` method on the text system.

This makes it so we use the fallback font if the desired font cannot be
found rather than rendering nothing.

Release Notes:

- Fixed an issue where nothing would render when the font set in
`ui_font_family` was not found.
2024-01-04 14:26:08 -05:00
Marshall Bowers e4aa7ba4f2 Try to load fallback fonts instead of panicking when a font is not found (#3891)
This PR adjusts our font resolution code to attempt to use a fallback
font if the specified font cannot be found.

Right now our fallback font stack is `Zed Mono`, followed by `Helvetica`
(in practice we should always be able to resolve `Zed Mono` since we
bundle it with the app).

In the future we'll want to surface the ability to set the fallback font
stack from GPUI consumers, and potentially even support specifying font
stacks in the user settings (as opposed to a single font family).

Release Notes:

- Fixed a panic when trying to load a font that could not be found.
2024-01-04 14:10:46 -05:00
Marshall Bowers e903adf016 Use dense spacing for completion menu items (#3874)
This PR updates the completion menu to use dense spacing for its items.

Release Notes:

- Adjusted styling of completion menu entries.
2024-01-03 23:06:16 -05:00
Marshall Bowers 3ddba6fc71 Restore timestamp insertion for journal: new journal entry (#3870)
This PR restores the insertion of the timestamp when using the `journal:
new journal entry` action.

Release Notes:

- Restored timestamp insertion when creating new journal entries.
2024-01-03 18:09:55 -05:00
Marshall Bowers 1a3c931d61 Fix icon path for Icon::AudioOn (#3869)
This PR fixes the icon path for `Icon::AudioOn` so that it points to a
file that exists.

Release Notes:

- Fixed the loading of the deafen icon in the call controls.
2024-01-03 17:54:53 -05:00