This PR improves adding and working with icons by using the new
`DerivePathStr` to derive icon paths.
This means paths no longer need to be manually specified, and the
`IconName` and file name will always be consistent between icons.
This PR does not do any work to standardize icons visually, remove
unused icons, or any other such cleanup.
Release Notes:
- N/A
Nate Butler
created
ce84837
add `ui::Vector` and separate images from icons (#17815)
Click to expand commit body
This PR pulls non-icon assets out of `ui::components::icon` in
preparation for icon standardization.
In the future icons will have standard names and sizes, and these image
assets won't conform to those constraints.
We can also add a `ui::components::image::Image` wrapper around the
`gpui::img` element in the future for any Zed-specific image styling we
want to enforce.
Of note:
```rust
#[derive(Debug, PartialEq, Eq, Copy, Clone, EnumIter, EnumString, IntoStaticStr, Serialize, Deserialize, DerivePathStr)]
#[strum(serialize_all = "snake_case")]
#[path_str(prefix = "images", suffix = ".svg")]
pub enum VectorName {
ZedLogo,
ZedXCopilot,
}
```
You can see in the above code we no longer need to manually specify
paths for image/icon enums like we currently do in
`ui::components::icon`.
The icon component will get this same treatment in the future, once we:
- do the design work needed to standardize the icons
- remove unused icons
- update icon names
Release Notes:
- N/A
This PR adds the `ui_macros` crate to allow building supporting macros
for the `ui` crate.
Additionally, it implements the `DerivePathStr` derive macro and the
`path_str` attribute macro. These macros work together to generate a
`path` method for enum variants, which is useful for creating
standardized string representations of enum variants.
The `DerivePathStr` macro provides the following functionality:
- Generates a `path` method for each enum variant.
- Allows specifying a prefix (required) and suffix (optional) for all
paths.
- Supports `strum` attributes for case conversion (e.g., snake_case,
lowercase).
Usage example:
```rust
#[derive(DerivePathStr)]
#[path_str(prefix = "my_prefix", suffix = ".txt")]
#[strum(serialize_all = "snake_case")]
enum MyEnum {
VariantOne,
VariantTwo,
}
// Generated paths:
// MyEnum::VariantOne.path() -> "my_prefix/variant_one.txt"
// MyEnum::VariantTwo.path() -> "my_prefix/variant_two.txt"
```
In a later PR this will be used to automate the creation of icon & image
paths in the `ui` crate.
This gives the following benefits:
1. Ensures standard naming of assets as paths are not manually
specified.
2. Makes adding new enum variants less tedious and error-prone.
3. Quickly catches missing or incorrect paths during compilation.
3. Adds a building block towards being able to lint for unused assets in
the future.
Release Notes:
- N/A
Nate Butler
created
d245f5e
OpenAI o1-preview and o1-mini support (#17796)
Click to expand commit body
Release Notes:
- Added support for OpenAI o1-mini and o1-preview models.
---------
Co-authored-by: Jason Mancuso <7891333+jvmncs@users.noreply.github.com>
Co-authored-by: Bennet <bennet@zed.dev>
Peter Tripp
,
Jason Mancuso
, and
Bennet
created
e145c13
Add stray UI polish to the SSH flow (#17798)
Click to expand commit body
Some super subtle refinement opportunities I spotted while playing
around with this flow. There are mostly copywriting tweaks and some UI
tweaks here and there (including editing the modal horizontal padding).
---
Release Notes:
- N/A
Danilo Leal
created
c71f052
Add ability to use o1-preview and o1-mini as custom models (#17804)
Click to expand commit body
This is a barebones modification of the OpenAI provider code to
accommodate non-streaming completions. This is specifically for the o1
models, which do not support streaming. Tested that this is working by
running a `/workflow` with the following (arbitrarily chosen) settings:
```json
{
"language_models": {
"openai": {
"version": "1",
"available_models": [
{
"name": "o1-preview",
"display_name": "o1-preview",
"max_tokens": 128000,
"max_completion_tokens": 30000
},
{
"name": "o1-mini",
"display_name": "o1-mini",
"max_tokens": 128000,
"max_completion_tokens": 20000
}
]
}
},
}
```
Release Notes:
- Changed `low_speed_timeout_in_seconds` option to `600` for OpenAI
provider to accommodate recent o1 model release.
---------
Co-authored-by: Peter <peter@zed.dev>
Co-authored-by: Bennet <bennet@zed.dev>
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
jvmncs
,
Peter
,
Bennet
, and
Marshall Bowers
created
1b36c62
Add keybinding to swap pane items (#15583)
Click to expand commit body
- Rearrange tabs (left: `ctrl-shift-pageup`, right: `ctrl-shift-pagedown`) like Chrome
Co-authored-by: Peter Tripp <peter@zed.dev>
tepek2
and
Peter Tripp
created
adbe973
editor: In OpenFile check if file with path_suffix exists (#17805)
Click to expand commit body
Demo:
https://github.com/user-attachments/assets/6acb6c1e-bb15-4205-9dcb-2aa4bb99dcf9
Release Notes:
- When using `OpenFile` (`gf` in Vim mode) and the word under the cursor
is not an existing file path, we now fall back and additionally check
whether a file called
`<word-under-cursor>.<language-specific-path-suffixes>` exists. That's
similar to Vim's `suffixesadd` option.
---------
Co-authored-by: Abdelhakim Qbaich <abdelhakim@qbaich.com>
Co-authored-by: Pete LeVasseur <plevasseur@gmail.com>
Thorsten Ball
,
Abdelhakim Qbaich
, and
Pete LeVasseur
created
8f833ea
Fix missing on-mouseup when dragging the window on Linux (#17801)
Click to expand commit body
Zed Hackathon entry :D
Release Notes:
- Fixed a bug where Zed would initiate a window move and then refuse to
release the mouse.
Co-authored-by: Mikayla <mikayla@zed.dev>
Barry Penner
and
Mikayla
created
de344c8
zed_extension_api: Use v0.2.0 WIT types (#17802)
Click to expand commit body
This PR makes `zed_extension_api` use the WIT types from v0.2.0 of
extension API.
A follow-up from #17795, since I had forgotten to do it there.
Release Notes:
- N/A
Add `/auto` behind a feature flag that's disabled for now, even for
staff.
We've decided on a different design for context inference, but there are
parts of /auto that will be useful for that, so we want them in the code
base even if they're unused for now.
Release Notes:
- N/A
---------
Co-authored-by: Antonio Scandurra <me@as-cii.com>
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Richard Feldman
,
Antonio Scandurra
, and
Marshall Bowers
created
93a3e8b
zed_extension_api: Fork new version of extension API (#17795)
Click to expand commit body
This PR forks a new version of the `zed_extension_api` in preparation
for new changes.
Release Notes:
- N/A
---------
Co-authored-by: Max <max@zed.dev>
Release Notes:
- Fixed the `is` and `...` highlights for TypeScript
Albert Marashi
created
3613ebd
editor: Fix an error when cut with vim visual line select (#17591)
Click to expand commit body
Becuause in vim visual mode, we will always select next char, hit
[here](https://github.com/zed-industries/zed/blob/66ef31882341852229c74996867916fbd4a2fe2a/crates/vim/src/visual.rs#L174),
when using editor method
for `cut` this selection, will hit this error.
Closes #17585
Release Notes:
- N/A
---------
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
CharlesChen0823
and
Conrad Irwin
created
461812d
windows: Use the existing `open_target` function for `platform::open_with_system` (#17705)
Click to expand commit body
Release Notes:
- N/A
Junkui Zhang
created
af819bf
windows: Implement `fs::trash_file` and `fs::trash_dir` (#17711)
ee96d69
gpui: Fix CJK line wrap for GPUI text render (#17737)
Click to expand commit body
Release Notes:
- N/A
This changes is going to let GPUI render correct text wrapping for CJK
characters. We was done this in PR #11296 for Editor, but this is also
need support for other text renders.
| Before | After |
| --- | --- |
| <img width="488" alt="SCR-20240912-jtvo"
src="https://github.com/user-attachments/assets/d061669c-62ab-4a7e-a724-2df84815d1ed">
| <img width="438" alt="image"
src="https://github.com/user-attachments/assets/ec27fd80-69db-48b6-8ade-694cd65d1843">
|
Jason Lee
created
b9b6284
lsp: Treat unrooted paths as relative to the worktree root (#17769)
Click to expand commit body
gopls would send us watch patterns like `**/*.mod` and we'd fall back to
watching `/`.
Release Notes:
- Fix file watching for go projects resorting to watching the fs root.
Co-authored-by: Thorsten <thorsten@zed.dev>
Piotr Osiewicz
and
Thorsten
created
4d26f83
Revert "settings: Remove auxiliary Content types where possible (#16744)" (#17768)
Click to expand commit body
This breaks setting `{"scrollbar": {"show":"never"}}`
Release Notes:
- N/A
Conrad Irwin
created
3b37db4
Improve button copy on database load error toast (#17767)
Click to expand commit body
Minimal copywriting improvement as that just happened to me while
working on Zed during ReactConf.
Release Notes:
- N/A
Danilo Leal
created
bba380e
docs: Add copywriting tweaks to the Vim page (#17766)
Click to expand commit body
Quick writing refinements as we displayed this docs over at RustConf.
Namely:
- Removal of "here" links
- Making link anchors generally bigger
- Adding commas where suitable
- Capitalizing "Vim" (although "vim mode" is still lowercased)
---
Release Notes:
- N/A
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [python](https://redirect.github.com/containerbase/python-prebuild) |
dependencies | patch | `3.12.5` -> `3.12.6` |
---
### Release Notes
<details>
<summary>containerbase/python-prebuild (python)</summary>
###
[`v3.12.6`](https://redirect.github.com/containerbase/python-prebuild/releases/tag/3.12.6)
[Compare
Source](https://redirect.github.com/containerbase/python-prebuild/compare/3.12.5...3.12.6)
##### Bug Fixes
- **deps:** update dependency python to v3.12.6
</details>
---
### Configuration
📅 **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone
America/New_York, Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
Release Notes:
- N/A
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC43NC4xIiwidXBkYXRlZEluVmVyIjoiMzguNzQuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate[bot]
and
renovate[bot]
created
f39c175
Update Rust crate serde_json_lenient to 0.2 (#17732)
Click to expand commit body
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
|
[serde_json_lenient](https://redirect.github.com/google/serde_json_lenient)
| workspace.dependencies | minor | `0.1` -> `0.2` |
---
### Release Notes
<details>
<summary>google/serde_json_lenient (serde_json_lenient)</summary>
###
[`v0.2.1`](https://redirect.github.com/google/serde_json_lenient/releases/tag/v0.2.1)
[Compare
Source](https://redirect.github.com/google/serde_json_lenient/compare/v0.2.0...v0.2.1)
- Fixed newline handling
([#​20](https://redirect.github.com/google/serde_json_lenient/issues/20))
###
[`v0.2.0`](https://redirect.github.com/google/serde_json_lenient/releases/tag/v0.2.0)
[Compare
Source](https://redirect.github.com/google/serde_json_lenient/compare/v0.1.8...v0.2.0)
- Merged from upstream `serde_json`
- Introduce cfg!(parse_negative_zero_as_int) to create a build-time
option to parse -0 the same as other JSON parsers.
([#​16](https://redirect.github.com/google/serde_json_lenient/issues/16))
- Add an option to control escaped newlines separately from other
control
([#​18](https://redirect.github.com/google/serde_json_lenient/issues/18))
</details>
---
### Configuration
📅 **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone
America/New_York, Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
Release Notes:
- N/A
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC43NC4xIiwidXBkYXRlZEluVmVyIjoiMzguNzQuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate[bot]
and
renovate[bot]
created
0043b0d
editor: Render documentation popovers using UI font (#17761)
Click to expand commit body
This PR updates the documentation popovers to render non-code using the
UI font:
<img width="603" alt="Screenshot 2024-09-12 at 11 10 46 AM"
src="https://github.com/user-attachments/assets/c5be0676-0f0f-4ff6-8a96-76b44684e1cf">
<img width="347" alt="Screenshot 2024-09-12 at 11 21 12 AM"
src="https://github.com/user-attachments/assets/842ba922-9837-45c1-9cf2-846fe8362f99">
Requested by @davidbarsky.
Release Notes:
- Changed documentation popovers to render Markdown prose using the UI
font instead of the buffer font. Code blocks still using the buffer
font.
02d5f32
lsp: Fix initialization_options being used as workspace configuration (#17757)
Click to expand commit body
Release Notes:
- Fixed user-configured `initialization_options` being passed as
`workspace/Configuration` for the vtsls, TypeScript, and YAML language
servers.
Co-authored-by: Bennet <bennet@zed.dev>
Thorsten Ball
and
Bennet
created
9db68ee
lsp: Use project-local settings if available (#17753)
Click to expand commit body
Release Notes:
- Changed built-in language support (Rust, Go, C, YAML, ...) to lookup
language-server specific settings locally in project directory first
before falling back to global value.
---------
Co-authored-by: Bennet <bennet@zed.dev>
Thorsten Ball
and
Bennet
created
092f29d
Use a bigger prefix for numeric sorting (#17752)
Click to expand commit body
Release Notes:
- Fixed sorting of files with YYYYmmddHHMMSS prefix
Release Notes:
- Increased memory limit for eslint to reduce crashes
Conrad Irwin
created
3a6a29f
vim: Fix inline completions showing up in normal mode (#17727)
Click to expand commit body
Booleans are hard.
Release Notes:
- Fixed inline completions showing up in Vim normal mode.
Thorsten Ball
created
9407d86
project: Use login shell to get environment per project (#17717)
Click to expand commit body
This is a follow-up to #17075 to spawn a login shell when getting the
environment for projects.
The reason why we didn't do it before is that we only used the
environment for certain language servers and not a lot of other things,
like tasks.
But with #17075 we now use the project more often and use it as the
_base_ environment for tasks/terminals.
Before the change, terminals and tasks would inherit the Zed process'
environment, including PATH and so on. After the change, we would set
the environment, overwriting the PATH instead of merging. But the
non-login shell environment is a subset of the login-shell environment.
Release Notes:
- Fixed environment variables used per project in terminals/tasks
overwriting the base environment and not making use of a login-shell
environment.
Thorsten Ball
created
b5c42ed
lsp: Fix noisy logs when starting language servers (#17713)
Click to expand commit body
We would log every time we'd lookup a language server for a file and
we'd also log "starting language server" even though we were about to
only download it and not start it.
Release Notes:
- N/A
Thorsten Ball
created
13c553c
Doc Fix: Shortcut of "Go forward" in key-bindings.md (#17689)
Click to expand commit body
"Control + _" => "Control + Shift + _"
Doc was edited so quickly using zed that caused a typo 😄
### shot
<img width="729" alt="image"
src="https://github.com/user-attachments/assets/104af7da-1205-43fd-b721-ffab7312487b">
### doc url
https://zed.dev/docs/key-bindings
Release Notes:
- N/A
Nero Song
created
ec189fe
Add a way to join all panes into one (#17673)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/17536
Closes https://github.com/zed-industries/zed/pull/17548
Release Notes:
- Added a way to join all panes into one with `pane::JoinAll` action
([#17536](https://github.com/zed-industries/zed/issues/17536))
---------
Co-authored-by: Yogesh Dhamija <ydhamija96@gmail.com>
Kirill Bulatov
and
Yogesh Dhamija
created
331d28d
php: Remove invalid node types from highlights queries (#17680)
Click to expand commit body
This PR removes some invalid node types from the PHP highlights queries.
Release Notes:
- N/A
This PR simplifies how images are inserted into the context editor.
We don't need to hold the `images` in a `HashMap` on the `Context`, as
we were only inserting them to pull them out again.
Release Notes:
- N/A
Marshall Bowers
created
3cea7cc
pane: Fix pinned tabs being persisted after closing (#17666)