7380ab8
Remove old extension dir when upgrading (#9800)
Click to expand commit body
Fixes #9799
Release Notes:
- Fixed a bug where upgrading an extension did not work correctly if the
extension had switched from using an old extension schema with
`extension.json` to the new schema with `extension.toml`.
9ed7822
Update to vscode-eslint 2.4.4 & support flat config file extensions (#9708)
Click to expand commit body
This upgrades to vscode-eslint 2.4.4 to support flat configs, in
multiple configuration files, ending in `.js`, `.cjs`, `.mjs`.
We changed the code to not use the GitHub release because we actually
don't need the artifacts of the release, we just need the source code,
which we compile anyway.
Fixes #7271.
Release Notes:
- Added support for ESLint flat config files.
([#7271](https://github.com/zed-industries/zed/issues/7271)).
Co-authored-by: Kristján Oddsson <koddsson@gmail.com>
Thorsten Ball
and
Kristján Oddsson
created
ff0164e
Fix `prettier-plugin-organize-imports` plugin removes used imports (#9598)
Click to expand commit body
So this pull request fixes an issue that was driven me crazy. The issue
was that when you use the `prettier-plugin-organize-imports` It would
remove some imports that should not be removed before they were used
inside the module itself.
You can reproduce it with the following `prettierrc.json` config and
source code. When you **save** the file, it would remove the `import
clsx from "clsx";` import from the file.
**Prettier config**
```json
{
"semi": true,
"tabWidth": 4,
"trailingComma": "es5",
"useTabs": true,
"plugins": [
"prettier-plugin-tailwindcss",
"prettier-plugin-organize-imports"
]
}
```
**Source code**
```typescript
import clsx from "clsx";
export default function Home() {
return (
<main>
{clsx("asdjklasdjlkasd", "asdjlkasjdjlk")}
</main>
);
}
```
After a deep dive with @mrnugget, I was debugging deep down the prettier
plugin system and found the issue that was causing this issue. When I
was looking inside the
`node_modules/prettier-plugin-organize-imports/lib/organize.js`. I saw
the following code that looked strange to me because it falls back to
`file.ts` if `filepath` is not passed through inside the prettier config
options.
<img width="860" alt="Screenshot 2024-03-20 at 21 31 46"
src="https://github.com/zed-industries/zed/assets/62463826/47177fe5-e5a9-41d8-9f2f-0304b2c2159f">
So the issue was small, if you look at the following code, the `path`
key should be `filepath` inside the
`crates/prettier/src/prettier_server.js:205`

Release Notes:
- Fixed prettier integration not using the correct filepath when
invoking prettier, which could lead to some prettier plugins failing to
format correctly.
([#9496](https://github.com/zed-industries/zed/issues/9496)).
Remco Smits
created
4296755
chat panel: Fix tooltips not working for links (cherry-pick #9691) (#9699)
Click to expand commit body
Cherry-picked chat panel: Fix tooltips not working for links (#9691)
Closes #9418
Noticed a difference in the `cx.set_tooltip(...)` calls between `div`
and `InteractiveText`. `div` calls `cx.set_tooltip(...)` inside
`after_layout`, but `InteractiveText` was calling this inside `paint`. I
believe as #9012 was merged, we need to call `cx.set_tooltip` inside
`after_layout`, as inserting inside `paint` does not seem to be
supported anymore.
I moved the code for setting the tooltip to `after_layout` and hovering
over links inside the chat seems to bring up the tooltips again.
Before:
See https://github.com/zed-industries/zed/issues/9418#issue-2189398784
After:

Release Notes:
- Fixed tooltip not showing up when hovering over links inside the chat
panel ([#9418](https://github.com/zed-industries/zed/issues/9418))
Co-authored-by: Bennet Bo Fenner <53836821+bennetbo@users.noreply.github.com>
gcp-cherry-pick-bot[bot]
and
Bennet Bo Fenner
created
We can convert shell, npm and gulp tasks to a Zed format. Additionally, we convert a subset of task variables that VsCode supports.
Release notes:
- Zed can now load tasks in Visual Studio Code task format
---------
Co-authored-by: Piotr Osiewicz <piotr@zed.dev>
Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Anthony Eid
,
Piotr Osiewicz
, and
Piotr Osiewicz
created
269d251
Add support for applying theme after extension is installed (#9529)
Click to expand commit body
Release Notes:
- Added support for opening the theme selector with installed themes
after installing an extension containing themes.
([#9228](https://github.com/zed-industries/zed/issues/9228)).
<img width="1315" alt="Screenshot 2024-03-20 at 11 00 35 AM"
src="https://github.com/zed-industries/zed/assets/1486634/593389b3-eade-4bce-ae17-25c02a074f21">
---------
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Jason Lee
and
Marshall Bowers
created
6cec389
ui: Make `top_padding` an associated function on the `TitleBar` (#9577)
Click to expand commit body
This PR makes the function for computing the top padding for the
`TitleBar` an associated function.
Release Notes:
- N/A
7855b9e
Allow to handle autoclosed characters differently (#8666)
Click to expand commit body
Adds the `always_treat_brackets_as_autoclosed` setting to control how
the autoclosed characters are handled.
The setting is off by default, meaning the behaviour stays the same
(following how VSCode handles autoclosed characters).
When set to `true`, the autoclosed characters are always skipped over
and auto-removed no matter how they were inserted (following how Sublime
Text/Xcode handle this).
https://github.com/zed-industries/zed/assets/471335/304cd04a-59fe-450f-9c65-cc31b781b0db
https://github.com/zed-industries/zed/assets/471335/0f5b09c2-260f-48d4-8528-23f122dee45f
Release Notes:
- Added the setting `always_treat_brackets_as_autoclosed` (default:
`false`) to always treat brackets as "auto-closed" brackets, i.e.
deleting the pair when deleting start/end, etc.
([#7146](https://github.com/zed-industries/zed/issues/7146)).
---------
Co-authored-by: Thorsten Ball <mrnugget@gmail.com>
Tim Masliuchenko
and
Thorsten Ball
created
d5e0817
windows: Fix title bar height when maximized (#9449)
Click to expand commit body
screenshots and description incoming
## title bar when window is maximized
| before | after |
| --- | --- |
|

|

|
## ~~caption buttons at 200%~~
~~buttons are now properly responsive at different scales~~
~~closes #9438~~
~~proper scale factor handling in follow up PR (possibly #9440)~~
<details>
<summary>out of date image</summary>

</details>
should be fixed by https://github.com/zed-industries/zed/pull/9456
Release Notes:
- N/A
**Summary**:
- Removed reply message from message_menu
- Made render_popover_buttons a bit more reusable
- Fixed issue that you can't close the reply/edit preview when you are
not focusing the message editor
- Notify only the new people that were mentioned inside the edited
message
**Follow up**
- Fix that we update the notification message for the people that we
mentioned already
- Fix that we remove the notification when a message gets deleted.
- Fix last acknowledge message id is in correct now
**Todo**:
- [x] Add tests
- [x] Change new added bindings to the `Editor::Cancel` event.
Release Notes:
- Added editing of chat messages
([#6707](https://github.com/zed-industries/zed/issues/6707)).
<img width="239" alt="Screenshot 2024-03-09 at 11 55 23"
src="https://github.com/zed-industries/zed/assets/62463826/b0949f0d-0f8b-43e1-ac20-4c6d40ac41e1">
<img width="240" alt="Screenshot 2024-03-13 at 13 34 23"
src="https://github.com/zed-industries/zed/assets/62463826/d0636da2-c5aa-4fed-858e-4bebe5695ba7">
---------
Co-authored-by: Bennet Bo Fenner <53836821+bennetbo@users.noreply.github.com>
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Remco Smits
,
Bennet Bo Fenner
, and
Conrad Irwin
created
As I mentioned before, there are the following issues with how GPUI
handles scale factors greater than 1.0:
1. The title bar buttons do not function correctly, with minimizing
button performing maximization and maximizing button performing closure.
2. As discussed in #8809, setting a scale factor greater than 1.0 causes
GPUI's drawing content to be pushed off the screen.
This PR introduces `LogicalSize` and `PhysicalSize` to differentiate
between coordinate systems for proper GPUI rendering, and now scale
factors above 1.5 are working correctly.
`Zed` with a scale factor equals 1.5, and change between different scale
factors:
https://github.com/zed-industries/zed/assets/14981363/3348536d-8bd3-41dd-82f6-052723312a5b
Release Notes:
- N/A
张小白
created
2c36652
wayland: fix handling of non-discrete scroll events (#9548)
Click to expand commit body
https://github.com/zed-industries/zed/pull/9103 broke touchpad scrolling
on Wayland
This PR correctly filters the `Axis` to handle all non-discrete scroll
events (see
https://wayland.app/protocols/wayland#wl_pointer:enum:axis_source)
Should fix https://github.com/zed-industries/zed/issues/9525
Release Notes:
- N/A
apricotbucket28
created
8ae5a3b
Allow AI interactions to be proxied through Zed's server so you don't need an API key (#7367)
Click to expand commit body
Co-authored-by: Antonio <antonio@zed.dev>
Resurrected this from some assistant work I did in Spring of 2023.
- [x] Resurrect streaming responses
- [x] Use streaming responses to enable AI via Zed's servers by default
(but preserve API key option for now)
- [x] Simplify protobuf
- [x] Proxy to OpenAI on zed.dev
- [x] Proxy to Gemini on zed.dev
- [x] Improve UX for switching between openAI and google models
- We current disallow cycling when setting a custom model, but we need a
better solution to keep OpenAI models available while testing the google
ones
- [x] Show remaining tokens correctly for Google models
- [x] Remove semantic index
- [x] Delete `ai` crate
- [x] Cloud front so we can ban abuse
- [x] Rate-limiting
- [x] Fix panic when using inline assistant
- [x] Double check the upgraded `AssistantSettings` are
backwards-compatible
- [x] Add hosted LLM interaction behind a `language-models` feature
flag.
Release Notes:
- We are temporarily removing the semantic index in order to redesign it
from scratch.
---------
Co-authored-by: Antonio <antonio@zed.dev>
Co-authored-by: Antonio Scandurra <me@as-cii.com>
Co-authored-by: Thorsten <thorsten@zed.dev>
Co-authored-by: Max <max@zed.dev>
Nathan Sobo
,
Antonio
,
Antonio Scandurra
,
Thorsten
, and
Max
created
905a240
Add GitHub Action for publishing the extension CLI (#9542)
Click to expand commit body
This PR adds a GitHub Action for publishing the extension CLI.
When the `extension-cli` tag is pushed, this Action will run, build the
`zed-extension` binary, and upload it to DigitalOcean for consumption.
This will allow us to consume the pre-built binary in the CI for the
extensions repo.
Release Notes:
- N/A
---------
Co-authored-by: Max <max@zed.dev>
Marshall Bowers
and
Max
created
2ea333f
Insert hitbox if div contains tooltip (#9545)
Click to expand commit body
Release Notes:
- Fixed a bug that would cause certain tooltips to not show up
(preview-only).
the space key was being reported as key " " which didn't allow it to be
used in keybindings
Release Notes:
- N/A
Ezekiel Warren
created
fd0071f
Add an animation to the LSP checking indicator (#9463)
Click to expand commit body
Spinner go spinny.
Extra thanks to @kvark for helping me with the shaders.
https://github.com/zed-industries/zed/assets/2280405/9d5f4f4e-0d43-44d2-a089-5d69939938e9
Release Notes:
- Added a spinning animation to the LSP checking indicator
---------
Co-authored-by: Dzmitry Malyshau <kvark@fastmail.com>
This builds on #9353 by adding an image viewer to Zed. Closes #5251.
Release Notes:
- Added support for rendering image files
([#5251](https://github.com/zed-industries/zed/issues/5251)).
<img width="1840" alt="image"
src="https://github.com/zed-industries/zed/assets/836375/3bccfa8e-aa5c-421f-9dfa-671caa274c3c">
---------
Co-authored-by: Mikayla Maki <mikayla@zed.dev>
Kyle Kelley
and
Mikayla Maki
created
8d515a6
Update binary name for extension CLI (#9541)
Click to expand commit body
This PR updates the binary name used by the extension CLI from
`extension_cli` to `zed-extension`.
Release Notes:
- N/A
Follow-up from #9138
Release Notes:
- Adds suggested extensions for some filetypes
([#7096](https://github.com/zed-industries/zed/issues/7096)).
---------
Co-authored-by: Felix Zeller <felixazeller@gmail.com>
Conrad Irwin
and
Felix Zeller
created
7573f35
Simplify and document parts of linux text system code (#9443)
Click to expand commit body
I mainly focused on improving the `font_id` function, see the
description of e286483262e525c64c29d3747838ea9d2bac7bad for more
details. The rest are some drive-by changes I could not resist to.
When I am right about af4d6c43ce87ff5f16ad39c223e13326550010dd, someone
with a Mac could change it there as well.
This PR is probably best reviewed commit by commit :)
cc @gabydd @h3mosphere
Release Notes:
- N/A
---------
Signed-off-by: Niklas Wimmer <mail@nwimmer.me>
`HANDLE` is wrapped in a RAII struct.
Release Notes:
- N/A
Co-authored-by: Mikayla Maki <mikayla@zed.dev>
白山風露
and
Mikayla Maki
created
868616d
Introduce `extension-cli` binary, for packaging extensions in CI (#9523)
Click to expand commit body
This will be used in the
[extensions](https://github.com/zed-industries/extensions) repository
for packaging the extensions that users submit.
Release Notes:
- N/A
---------
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Max Brunsfeld
and
Marshall Bowers
created
7ef6600
Improve Ruby language to recognize Guardfiles (#9530)
Click to expand commit body
Release Notes:
- Improved Ruby language to recognize Guardfile.
Ben Hamment
created
97fbec9
Clean up the live_kit_client manifest file (#9532)
Click to expand commit body
Removes some redundant dependency defenitions and updates one
dependency.
TL;DR:
- shaves off about 0.5 seconds from most of our debug builds.
- It would've slightly regressed release build due to preventing build pipelining, but as a tradeoff I've bumped up codegen-units for zed.
\# What did you come up with this time Piotr
In our zed repository I've noticed that merely *loading dependencies* in each crate takes non-trivial amount of time (~800ms in case of editor).
That is to say, the moment you \`use editor\`, your build time increases by 800ms - this happens just once in crate though, as it looks like compiler has to load .rlibs of all of the referenced dependencies.
This is visible under rustc's self-profile. Repro steps on twitter: https://twitter.com/PiotrOsiewicz/status/1762845413072101567
\# How does this commit alleviate this?
zed lib + zed bin are on critical path of every build and cumulatively take about 3s to build. This commit bundles all of this up into ~2.2s of bin build time instead.
\# Wait, splitting binary targets is good, no?
Splitting up a binary target into lib + bin is generally considered to be a good practice, as you can then reuse the lib part elsewhere if needed.
It also allows the build to kick off the moment metadata for all of the dependencies is available (thus, you don't need to wait for codegen).
However, we do not really use zed as a lib, so the first benefit is not really a thing for us.
The latter *is* indeed something we lose out on in release mode (in dev codegen phase of leaf-ish crates is insignificant, as we use shared generics - thus we don't spend much time codegening).
That's why I've bumped codegen units for zed crate to 16 in release mode to keep build times in tact.
Piotr Osiewicz
created
79a424f
Add Vue language server auto update (#9474)
Click to expand commit body
For #9401
---------
Co-authored-by: Joseph T. Lyons <JosephTLyons@gmail.com>
Hans
and
Joseph T. Lyons
created
192cd5f
Fix file git status refresh on .gitignore update (#9466)
Click to expand commit body
This PR fixes file name coloring in the project panel and tabs when
.gitignore file is updated. It's intended to fix #7831.
There's another, less vivid, problem with git-aware labels coloring.
It's about files that are both ignored and contained in the git index.
I'll file a separate issue for it to keep this fix focused.
Release Notes:
- Fixed file Git status refreshing on .gitignore update (#7831).
This patch puts the prost, prost-build, and prost-types dependencies
together and unifies their version. This improves organization a bit in
addition to improving build time slightly, since a redundant version of
prost is now removed.
The dependencies are _not_ updated to the newest versions, because the
newest versions add a dependency on the `protoc` application, which is
not provided by cargo and thus breaks the building process.
We made a change last week to allow creating files with names. This
means some files have null saved_mtime, which old versions of zed panic
on.
A fix is available in 0.126.3 and above
Release Notes:
- N/A
This PR adjusts scrolling to be a lot faster on Linux and also makes
terminal scrolling work.
For Wayland, it makes scrolling faster by handling the `AxisValue120`
event (which also allows high-resolution scrolling on supported mice)
On X11, changed the 1 line per scroll to 3.
### Different solutions
I tried replicating Chromium's scrolling behaviour, but it was
inconsistent in X11/Wayland and found it too fast on Wayland. Plus, it
also didn't match VSCode, since it seems that they do something
different.
Release Notes:
- Made scrolling faster on Linux
- Made terminal scroll on Linux
Since Windows has a distinction between symlinks for directories and
symlinks for files, the implementation is adapted to this distinction.
Release Notes:
- N/A
白山風露
created
cd9b865
maintain channel subscriptions in RAM (#9512)
Click to expand commit body
This avoids a giant database query on every leave/join event.
Release Notes:
- N/A
Conrad Irwin
created
963618a
Upgrade Tree-sitter to handle high memory usage and memory errors in wasm parsers (#9518)
Click to expand commit body
Fixes #8528
Release Notes:
- Fixed a crash that could occur when editing certain SQL files.
- Fixed a general class of crashes that could occur due to bugs in
grammars added via extensions.
Co-authored-by: Marshall <marshall@zed.dev>
Max Brunsfeld
and
Marshall
created
18fa84b
Fix panic loading language queries (#9506)
Click to expand commit body
Release Notes:
- Fixed a panic when loading a language with queries but no grammar