94c51c6
Windows: Enable clippy deny warnings (#9920)
Click to expand commit body
~Waiting #9918~ Release Notes: - N/A
白山風露 created
94c51c6
Windows: Enable clippy deny warnings (#9920)
~Waiting #9918~ Release Notes: - N/A
白山風露 created
659ea70
Adjust image viewer tab title font (#9903)
Fix #9895 Release notes: - Changed the tab title of the image preview to be the same as the other tabs ([#9895](https://github.com/zed-industries/zed/issues/9895)). --------- Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Hans and Marshall Bowers created
403b912
Windows: Implement signal in collab (#9918)
Only `CtrlC` and `CtrlBreak` signals are supported. `CtrlLogoff` and `CtrlShutdown` is service only signal and I have not tried these yet. `CtrlClose` occurs when terminal window is closed, but I found tokio's `ctrl_close` does not work well, so I put comment in code. Release Notes: - N/A
白山風露 created
5da951c
Revert "Add working directories for eslint (#9738)" (#9914)
This reverts commit 96a1af7b0f939d7c85e8519164086da47c7077ca from https://github.com/zed-industries/zed/pull/9738 since it doesn't seem to do anything. See: https://github.com/zed-industries/zed/issues/9648#issuecomment-2025132087 Release Notes: - N/A
Thorsten Ball created
cb7c53b
workspace: Fix panel resize handles leaking through zoomed panels (#9909)
Fixes #9501 Release Notes: - Fixed panel resize handle "leaking through" into a zoomed panel or pane.
Piotr Osiewicz created
f5823f9
Split `DuplicateLine` into `DuplicateLineUp` and `DuplicateLineDown` (#9715)
Fixes #9601 Release Notes: - `DuplicateLine` is now split into `DuplicateLineUp` and `DuplicateLineDown`
Daniel Zhu created
c33ee52
Don't update active completion for editors that are not focused (#9904)
Release Notes: - N/A
Antonio Scandurra created
eaec046
vim: Fix `t` operand not working correctly when cursor is on tag (#9899)
Fix #8994 and #9844 Release notes: * Fixed the `t` object in Vim mode not working correctly when cursor was on a tag. #9844 and #8994 This mr fixes the above two problems, for #9844, because our previous logic is to only think that the minimum html tag containing the current cursor is qualified, but the approach of nvim is to get the tag after the current cursor first, followed by the tag around the current cursor, so I modified the corresponding condition For #8994, the situation is a bit more complicated, in our previous implementation, we could only get the range of the object by a `cursor position`, but there are two possible cases for the html tag: When the current cursor length is 1, nvim will return the first tag after the current cursor, as described above When the current cursor length is greater than 1, nvim will return just the smallest tag that can cover the current selection So we may need to pass the current selection to the inside of the method, and the point alone is not enough to support us in calculating these conditions
Hans created
96a1af7
Add working directories for eslint (#9738)
Fix #9648
Release notes:
- Added ability to configure ESLint's `workingDirectories` in settings.
Example:
`{"lsp":{"eslint":{"settings":{"workingDirectories":["./client","./server"]}}}}`.
#9648
---------
Co-authored-by: Thorsten Ball <mrnugget@gmail.com>
Hans and Thorsten Ball created
2f2f236
vim: Make `cc` and `S` auto-indent (#9731)
Fix #9612 Release notes: * Changed `cc` and `S` in Vim mode to only change the current line after its indentation. #9612
Hans created
ff685b2
Extract Zig support into an extension (#9893)
This PR extracts Zig support into an extension and removes the built-in Zig support from Zed. There's a small workaround necessary in order for us to set the file permissions on the `zls` binary so that it can be run. Eventually we'll want to build this into the extension API, but for now we're just hard-coding it on the host side. Release Notes: - Removed built-in support for Zig, in favor of making it available as an extension. The Zig extension will be suggested for download when you open a `.zig` file.
Marshall Bowers created
9bce5e8
Improve diagnostic header UI (#9888)
This PR rearranges the diagnostics to put the headers to the left of the diagnostic messages and adds an additional button to close the diagnostics. <img width="394" alt="Screenshot 2024-03-27 at 2 01 19 PM" src="https://github.com/zed-industries/zed/assets/2280405/83be4051-6441-47c6-9b48-77c75ce9c8eb"> <img width="326" alt="Screenshot 2024-03-27 at 2 01 56 PM" src="https://github.com/zed-industries/zed/assets/2280405/d849ca34-91e9-4de6-9d9c-503b75e97d60"> As a drive by, I also quieted a useless but loud log message. Release Notes: - Added a close button to the `f8` diagnostics.
Mikayla Maki created
8024258
Prepare editor to display multiple LSP hover responses for the same place (#9868)
Kirill Bulatov created
ce37885
Use different icons for terminal tasks (#9876)
Kirill Bulatov created
687d2a4
gleam: Bump to v0.0.2 (#9883)
This PR bumps the Gleam extension to v0.0.2. Release Notes: - N/A
Marshall Bowers created
3046ef6
windows: Prevent command line from opening in release mode (#9839)
Release Notes: - Prevents the terminal from opening on release mode on Windows Note: this also prevents Zed from logging to the terminal when it is launched from the terminal. Is this expected behaviour on other platforms? --------- Co-authored-by: 白山風露 <shirayama.kazatsuyu@gmail.com>
Jason Wen and 白山風露 created
95699a0
gleam: Check for `gleam` on the PATH before installing the latest version (#9882)
This PR updates the Gleam extension to give priority to the `gleam` binary that is already on the PATH before downloading/installing a separate Gleam version. Release Notes: - N/A
Marshall Bowers created
894b39a
Add tab switcher (#7987)
The Tab Switcher implementation (#7653): - `ctrl-tab` opens the Tab Switcher and moves selection to the previously selcted tab. It also cycles selection forward. - `ctrl-shift-tab` opens the Tab Switcher and moves selection to the last tab in the list. It also cycles selection backward. - Tab is selected and the Tab Switcher is closed on the shortcut modifier key (`ctrl` by default) release. - List items are in reverse activation history order. - The list reacts to the item changes in background (new tab, tab closed, tab title changed etc.) Intentionally not in scope of this PR: - File icons - Close buttons I will come back to these features. I think they need to be implemented in separate PRs, and be synchronized with changes in how tabs are rendered, to reuse the code as it's done in the current implementation. The Tab Switcher looks usable even without them. Known Issues: Tab Switcher doesn't react to mouse click on a list item. It's not a tab switcher specific problem, it looks like ctrl-clicks are not handled the same way in Zed as cmd-clicks. For instance, menu items can be activated with cmd-click, but don't react to ctrl-click. Since the Tab Switcher's default keybinding is `ctrl-tab`, the user can only click an item with `ctrl` pushed down, thus preventing `on_click()` from firing. fixes #7653, #7321 Release Notes: - Added Tab Switcher which is accessible via `ctrl-tab` and `ctrl-shift-tab` (#7653) (#7321) Related issues: - Unblocks #7356, I hope 😄 How it looks and works (it's only `ctrl-tab`'s and `ctrl-shift-tab`'s, no `enter`'s or mouse clicks): https://github.com/zed-industries/zed/assets/2101250/4ad4ec6a-5314-481b-8b35-7ac85e43eb92 --------- Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com> Co-authored-by: Mikayla Maki <mikayla@zed.dev>
Andrew Lygin , Conrad Irwin , and Mikayla Maki created
9c22009
Look up extensions in the new index when reporting extension events (#9879)
This PR fixes a bug that was causing extension telemetry events to not be reported. We need to look up the extensions in the new index, as the extensions to load won't be found in the old index. Release Notes: - N/A
Marshall Bowers created
044b516
typescript: Highlight variables and enums in completions, add details (#9873)
This partially fixes #5287 by surfacing origin of a completion. Before:  After:  Release Notes: - Improved typescript-language-server integration by surfacing more information about completion items.
Piotr Osiewicz created
b1ad60a
Log when events are written to Clickhouse (#9875)
This PR adds some logging when we write events to Clickhouse in `POST /telemetry/events`, for observability purposes. Release Notes: - N/A
Marshall Bowers created
3f5f64a
Wrap extension schema version in a newtype (#9872)
This PR wraps the extension schema version in a newtype, for some additional type safety. Release Notes: - N/A
Marshall Bowers created
8c56a4b
v0.130.x dev
Joseph T. Lyons created
96b812b
Pin Vue language server to 1.8 (#9846)
After `@vue/language-server` release 2.0, vue lsp doesn't work. I tried to support 2.0, but since I'm not familiar with `@vue/language-server` and `zed` I was unsuccessful. To avoid long-term unavailability, I temporarily fixed the version to 1.8 until we have 2.0 support. Release Notes: - Pinned `@vue/language-server` to version `1.8` until Zed supports `2.x`. ([#9388](https://github.com/zed-industries/zed/issues/9388) & [#9329](https://github.com/zed-industries/zed/issues/9329)). --------- Co-authored-by: Thorsten Ball <mrnugget@gmail.com>
Dunqing and Thorsten Ball created
de4a54a
chore: Bump ahash 0.7.6 (yanked) -> 0.7.8 (#9860)
Fixes #9855 Release Notes: - N/A
Piotr Osiewicz created
63f17c5
Fix mac bundling errors (#9848)
Based on https://github.com/zed-industries/zed/pull/8952#issuecomment-2021693384 and https://github.com/zed-industries/zed/pull/8952#issuecomment-2022241455 Fixes `./script/bundle-mac -l` workflow errors * Use proper WebRTC.framework location path (without the arch name dir in its path) * Fix `./script/bundle-mac -l` behavior that unconditionally installed the app and broke it on rerun. Now the installation is done with `-i` flag only and always cleans up the target dir (always using `-f` flag logic, hence removed it). Release Notes: - N/A
Kirill Bulatov created
140b841
Stop reading deserialize_fingerprint (#9668)
Release Notes: - N/A --------- Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Conrad Irwin and Piotr Osiewicz created
8583c3b
Add go to implementation shortcut (#9837)
This adds a keybinding for an existing action. Notably, our bindings for `Go To Type Definition` and `Go To Implementation` are swapped from VSCode. We use `cmd` and `shift`, they use `shift` and `cmd`. Release Notes: - Added a keybinding for `editor::GoToImplementation`
Mikayla Maki created
40f60eb
Fix the linux keymap (#9829)
Earlier versions where a simple find-replace of `cmd` => `ctrl`. In this PR, I've gone over every keybinding individually and checked them. Release Notes: - Removed the `ShowContextMenu` action, it's only usage was in the collab panel and it's been rebound to `SecondaryConfirm`
Mikayla Maki created
3676ca8
Extract Astro support into an extension (#9835)
This PR extracts Astro support into an extension and removes the built-in Astro support from Zed. Release Notes: - Removed built-in support for Astro, in favor of making it available as an extension. The Astro extension will be suggested for download when you open a `.astro` file.
Marshall Bowers created
7807f23
Extract Dockerfile extension (#9832)
This PR extracts Dockerfile support into an extension and removes the built-in Dockerfile support from Zed. There's already an existing [Dockerfile extension](https://github.com/d1y/dockerfile.zed) that was just missing language server support. Language server support is being added to that extension in https://github.com/d1y/dockerfile.zed/pull/2. Release Notes: - Removed built-in support for Dockerfile, in favor of making it available as an extension. The Dockerfile extension will be suggested for download when you open a `Dockerfile`.
Marshall Bowers created
181dc86
Fix typo in PureScript extension's struct name (#9831)
This PR fixes a copy/paste typo in the name of the PureScript extension's struct name. Release Notes: - N/A
Marshall Bowers created
e272acd
collab ui: Fix notification windows on external monitors (#9817)
Sharing a project displays a notification (window) on every screen.
Previously there was an issue with the positioning of windows on all
screens except the primary screen.
As you can see here:

Now:

@mikayla-maki and I also decided to refactor the `WindowOptions` a bit.
Previously you could specify bounds which controlled the positioning and
size of the window in the global coordinate space, while also providing
a display id (which screen to show the window on). This can lead to
unusual behavior because you could theoretically specify a global bound
which does not even belong to the display id which was provided.
Therefore we changed the api to this:
```rust
struct WindowOptions {
/// The bounds of the window in screen coordinates
/// None -> inherit, Some(bounds) -> set bounds.
pub bounds: Option<Bounds<DevicePixels>>,
/// The display to create the window on, if this is None,
/// the window will be created on the main display
pub display_id: Option<DisplayId>,
}
```
This lets you specify a display id, which maps to the screen where the
window should be created and bounds relative to the upper left of the
screen.
Release Notes:
- Fixed positioning of popup windows (e.g. when sharing a project) when
using multiple external displays.
---------
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Bennet Bo Fenner and Conrad Irwin created
ffd698b
Remove lingering `uiua.rs` file (#9828)
This PR removes a lingering file related to Uiua support. This file was no longer being referenced after #9085, but just hadn't been removed. Release Notes: - N/A
Marshall Bowers created
0fd9165
Fixed channel chat notifications are not working anymore (#9827)
This PR will fix the following issues that were introduced by the following pull request #9557. - Cannot create messages with a mention inside it - Cannot invite a user - Cannot accept an invitation Release Notes: - Fixed channel chat notifications are not working anymore. Co-authored-by: Bennet Bo Fenner <53836821+bennetbo@users.noreply.github.com>
Remco Smits and Bennet Bo Fenner created
9604b22
Suppress error logs from `CopilotCompletionProvider` when Copilot is disabled (#9826)
This PR fixes some noisy error logs from the `CopilotCompletionProvider`
when Copilot is disabled entirely via the settings.
I have the following in my settings file:
```json
{
"features": {
"copilot": false
},
}
```
After #9777 I started seeing my Zed logs getting filled up with messages
like this:
```
[2024-03-26T14:33:09-04:00 ERROR util] crates/copilot_ui/src/copilot_completion_provider.rs:206: copilot is disabled
```
Release Notes:
- N/A
Marshall Bowers created
cd32ef6
Use correct file extension for Haskell suggestions (#9825)
This PR fixes the file extension used for suggesting the Haskell extension. Release Notes: - N/A
Marshall Bowers created
b8ef970
Extract PureScript support into an extension (#9824)
This PR extracts PureScript support into an extension and removes the built-in PureScript support from Zed. Release Notes: - Removed built-in support for PureScript, in favor of making it available as an extension. The PureScript extension will be suggested for download when you open a `.purs` file.
Marshall Bowers created
d77cda1
windows: Support compiling with MinGW toolchain (#9815)
Fixes #9757: compile manifest using `embed-manifest` crate, which supports both MSVC and MinGW Release Notes: - N/A
Maksim Bondarenkov created
35b39e0
Windows: Fullscreen (#9728)
~~This is still a work in progress, but to show the public where I am working on it~~ Ready for review TODO: - [x] Justify fullscreen size to display - [x] Record and apply restored size Release Notes: - N/A
白山風露 created
fc5a088
Fix visual glitches in titlebar when there's an active prompt
It looks like a fractional traffic lights position doesn't play well with Mac 12+. Related to #7339 and #8128
Piotr Osiewicz created
dbcff2a
Extract Prisma support into an extension (#9820)
This PR extracts Prisma support into an extension and removes the built-in Prisma support from Zed. Release Notes: - Removed built-in support for Prisma, in favor of making it available as an extension. The Prisma extension will be suggested for download when you open a `.prisma` file.
Marshall Bowers created
7144131
Remove blank line in `Cargo.toml`
Marshall Bowers created
1d6792b
Extract Haskell support into an extension (#9814)
This PR extracts Haskell support into an extension and removes the built-in Haskell support from Zed. I tested out the extension locally in a Nix shell using `nix-shell -p ghc haskell-language-server` to confirm the language server still operated as expected: <img width="341" alt="Screenshot 2024-03-26 at 11 26 26 AM" src="https://github.com/zed-industries/zed/assets/1486634/df16fd38-4046-4a45-ac9f-c2b85bffe5c0"> Release Notes: - Removed built-in support for Haskell, in favor of making it available as an extension. The Haskell extension will be suggested for download when you open a `.hs` file.
Marshall Bowers created
9d4c6c6
Do not format or fully save non-dirty buffers (#9813)
Fixes https://github.com/zed-industries/zed/issues/9475 Release Notes: - Start skipping formatting and actual FS saving for non-dirty buffers ([9475](https://github.com/zed-industries/zed/issues/9475))
Kirill Bulatov created
f495ee0
windows: implement mouse double click event (#9642)
Release Notes: - N/A
张小白 created
fb6cff8
Introduce `InlineCompletionProvider` (#9777)
This pull request introduces a new `InlineCompletionProvider` trait,
which enables making `Editor` copilot-agnostic and lets us push all the
copilot functionality into the `copilot_ui` module. Long-term, I would
like to merge `copilot` and `copilot_ui`, but right now `project`
depends on `copilot`, which makes this impossible.
The reason for adding this new trait is so that we can experiment with
other inline completion providers and swap them at runtime using config
settings.
Please, note also that we renamed some of the existing copilot actions
to be more agnostic (see release notes below). We still kept the old
actions bound for backwards-compatibility, but we should probably remove
them at some later version.
Also, as a drive-by, we added new methods to the `Global` trait that let
you read or mutate a global directly, e.g.:
```rs
MyGlobal::update(cx, |global, cx| {
});
```
Release Notes:
- Renamed the `copilot::Suggest` action to
`editor::ShowInlineCompletion`
- Renamed the `copilot::NextSuggestion` action to
`editor::NextInlineCompletion`
- Renamed the `copilot::PreviousSuggestion` action to
`editor::PreviousInlineCompletion`
- Renamed the `editor::AcceptPartialCopilotSuggestion` action to
`editor::AcceptPartialInlineCompletion`
---------
Co-authored-by: Nathan <nathan@zed.dev>
Co-authored-by: Kyle <kylek@zed.dev>
Co-authored-by: Kyle Kelley <rgbkrk@gmail.com>
Antonio Scandurra , Nathan , Kyle , and Kyle Kelley created
b8663e5
Make UniformList non-occluding. (#9806)
Fixes https://github.com/zed-industries/zed/issues/9723 Move the `occlude` in the places where they are needed. Release Notes: - Fixed right click in the project panel's empty region ([9723](https://github.com/zed-industries/zed/issues/9723)) Co-authored-by: Antonio Scandurra <antonio@zed.dev>
Kirill Bulatov and Antonio Scandurra created
db9221a
markdown preview: Handle line breaks in between task list items correctly (#9795)
Closes #9783 Release Notes: - Fixed task list rendering when there was a line break between two list items ([#9783](https://github.com/zed-industries/zed/issues/9783))
Bennet Bo Fenner created
157fb98
Add ability to specify binary path/args for `gopls` (#9803)
This uses the language server settings added in #9293 to allow users to
specify the binary path and arguments with which to start up `gopls`.
Example user settings for `gopls`:
```json
{
"lsp": {
"gopls": {
"binary": {
"path": "/Users/thorstenball/tmp/gopls",
"arguments": ["-debug=0.0.0.0:8080"]
},
}
}
}
```
Constraints:
* Right now this only allows ABSOLUTE paths.
Release Notes:
- Added ability to specify `gopls` binary `path` (must be absolute) and
`arguments` in user settings. Example: `{"lsp": {"gopls": {"binary":
{"path": "/my/abs/path/gopls", "arguments": ["-debug=0.0.0.0:8080"]
}}}}`
Thorsten Ball created