b594e59
Lay some groundwork for language plugins (#3837)
Click to expand commit body
This PR adds undocumented functionality for loading custom language
plugins at runtime. I don't intend to expose the functionality to end
users yet, but this will allow the team to test the capability
internally.
### Implementation
There isn't much new code in Zed. Most of the work here is within
Tree-sitter, in PRs https://github.com/tree-sitter/tree-sitter/pull/1864
and https://github.com/tree-sitter/tree-sitter/pull/2840, which allow
Tree-sitter to load languages from WASM blobs. I've tested the
functionality in Tree-sitter's test suite and via its CLI, but having it
wired into Zed allows us to test the functionality more fully.
### Details
Now, on startup, Zed will look for subdirectories inside of
`~/Application Support/plugins`. These subdirectories are expected to
look similar to the per-language subdirectories in
[`crates/zed2/src/languages`](https://github.com/zed-industries/zed/tree/main/crates/zed2/src/languages),
except that they also contain a `.wasm` file for the parser itself.
I'll add more details here as I go.
Max Brunsfeld
created
5f84172
Return `impl IntoElement` in `Render` and `RenderOnce` traits (#3839)
Click to expand commit body
- Returning `IntoElement` because it's more universal than `Element` and
allows us to easily return components.
- Using `impl IntoElement` in `RenderOnce` for consistency, which
requires `Component` to allocate an `AnyElement`. We use a bump
allocated arena anyway for these, and my benchmark doesn't show an
impact.

In this histogram, frames-0 is this PR, frames-1 is main.
Release Notes:
- N/A
Nathan Sobo
created
d3e9760
Layout completion single-line documentation to the right of item (#3845)
Click to expand commit body
Don't love how this turned out, it seems uniform list doesn't tie the
widths of its items together, so there needs to be a set size to fill in
order to put the documentation detail on the right side. That means it
won't be able to shrink for completion lists which don't need the full
width. Zed1 has this same limitation but it would be nice to do it nicer
now
Before

After

Release Notes:
- N/A
This PR polishes off the channel buttons such that they behave as
expected.
The absolutely-positioned button container will now no longer take up
space—and thus obscure the channel name—when there are no notifications
and the channel entry is not hovered.
Release Notes:
- N/A
Marshall Bowers
created
b4a205b
Pane: Fix flicker when opening/closing tabs
Click to expand commit body
Tab bar was losing focus for one frame which led to it skipping rendering of tab controls & flickering. It also occured when opening new tabs.
Piotr Osiewicz
created
406edd2
Merge branch 'main' into refine-render-traits
1810824
Merge branch 'main' into completion-menu-detail-layout
Julia
created
017b25e
Add debounce time back to telemetry queue (#3856)
Click to expand commit body
After talking with Max, we decided to bring back the debounce time to
the telemetry queue, only, with a longer duration than before.
Release Notes:
- N/A
Joseph T. Lyons
created
2a73eb3
Add `icon_tooltip` for panel buttons rather than using persistent name (#3849)
Click to expand commit body
Fixes missing spaces in these tooltips
Release Notes:
- N/A
This reverts commit 09951208a78c9933159c68c6f8105eda40e8bd7e, reversing
changes made to 93a818d0186dce098cae4ae08dd368c23b895a4b.
I noticed an issue where context menus were appearing in the wrong
location (shifted to the right) as a result of this change.
Release Notes:
- N/A
Marshall Bowers
created
4b006cc
Use buffer font size for editor overlays and blocks
Click to expand commit body
Co-authored-by: Nathan <nathan@zed.dev>
Max Brunsfeld
and
Nathan
created
74468a8
Improve positioning of channel buttons (#3850)
Click to expand commit body
This PR is another pass at improving the positioning of channel buttons.
I had to employ some dirty hacks to get it to work, but I think it is
~mostly there.
Release Notes:
- N/A
Marshall Bowers
created
335e007
Add nightly environment for collab (#3848)
Click to expand commit body
For now, we'll need to deploy to `nightly` manually, using the same
scripts that we use to deploy to `preview` and `production`.
We've renamed the `deploy` script to `deploy-collab`, and added a new
script, `deploy-postgrest` that sets up the Postgrest database admin
API. We split that out, since it's not needed for environments that
share a database with prod.
Max Brunsfeld
created
14066c4
Add `icon_tooltip` for panel buttons rather than using persistent name
Also, move postgrest service + deployment into a separate manifest
file, which is deployed via a separate script, `deploy-postgrest`.
This way, we don't have unused postgrest instances in preview and
nightly, since those use the prod database.
Co-authored-by: Conrad <conrad@zed.dev>
Adds the infractucture for settings events and specifically tracks theme
settings. Currently, we only take note of the theme at app open and when
the user switches the theme with the theme selector. Changes at the
config file are ignored, as putting code that low leads to a lot of
chances of reporting theme events when the user hasn't done anything.
This change is done in both Zed 1 and Zed 2.
I'll open up a PR on zed.dev and adjust the database accordingly.
Release Notes:
- N/A
There was a hypothesis that this would fix border rendering.
It doesn't :D; but it does at least mean that they are always
consistently
broken, so it may be easier to fix.
Conrad Irwin
created
ce5855d
Render completion menu items using `ListItem`s
93a818d
Add additional status colors and style diagnostic popovers (#3846)
Click to expand commit body
This PR adds additional background and border colors for each of the
status colors to the theme.
These colors are then used to style the diagnostic popovers:
<img width="407" alt="Screenshot 2024-01-02 at 4 25 50 PM"
src="https://github.com/zed-industries/zed/assets/1486634/fbc64ea7-3dcd-43b7-8520-91f16304bfba">
<img width="396" alt="Screenshot 2024-01-02 at 4 26 05 PM"
src="https://github.com/zed-industries/zed/assets/1486634/6e4a44bf-4aac-4595-afff-7fbf8b2b9e1f">
Release Notes:
- N/A
Marshall Bowers
created
ae71d1a
Layout completion single-line documentation to the right of item
This PR fixes the spacing in the diagnostics tab.
#### Before
<img width="108" alt="Screenshot 2024-01-02 at 3 40 51 PM"
src="https://github.com/zed-industries/zed/assets/1486634/9508d867-5b5d-45b0-8b16-be35a23e3e7a">
#### After
<img width="121" alt="Screenshot 2024-01-02 at 3 40 54 PM"
src="https://github.com/zed-industries/zed/assets/1486634/33e665e7-2935-4d4f-b1d0-9cb655235867">
Release Notes:
- N/A
Marshall Bowers
created
d64d91a
Restore transparency to scroll bar handles (#3843)
Click to expand commit body
This PR restores the semi-transparency to the scroll bar handle colors
that were lost in #3842.
If we adjust the rendering of the scrollbar to draw the status
indicators on top of the scrollbar handle then we can remove the
transparency.
Release Notes:
- N/A
Marshall Bowers
created
8247be3
Use Zed1 Color Scheme to update Zed1 Theme Importer (#3842)
Click to expand commit body
Bring Zed1 themes closer to their old appearance using the `base_theme`
values.
This will inevitably re-introduce some outstanding design issues from
Zed 1 that we will need to solve (low contrasts in some places, etc.)
We'll work on some of these in a later PR.
Known issues introduced:
- Scrollbar thumb is incorrectly drawn in front of the indicators
- Borders aren't quite correct - will fix in a followup
- Titlebar/status bar buttons will now have low contrast states
- Keybinding background color blends with palette
There are likely more issues, add them to the product checklist as you
find them.
Release Notes:
- N/A