f8cfb50
php: Bump to v0.1.0 (#14607)
Click to expand commit body
This PR bumps the PHP extension to v0.1.0. Changes: - #14603 - #14604 Release Notes: - N/A
Marshall Bowers created
f8cfb50
php: Bump to v0.1.0 (#14607)
This PR bumps the PHP extension to v0.1.0. Changes: - #14603 - #14604 Release Notes: - N/A
Marshall Bowers created
9499adf
docs: Adjust the note and warning callout design (#14605)
So they're more consistent and polished. Felt like they could be a bit more refined. --- Release Notes: - N/A
Danilo Leal created
696591c
php: Add Phpactor support (#14604)
This PR extends the PHP extension with [Phpactor](https://github.com/phpactor/phpactor) support. Phpactor seems to provide a better feature set out-of-the-box for free, so it has been made the default PHP language server. Thank you to @xtrasmal for informing us of Phpactor's existence! Release Notes: - N/A
Marshall Bowers created
f9b0792
Update Configuration docs (#14029)
Release Notes: - N/A --- I'd like to help improve Configuration documentation. Currently I'm often confused by the configuration doc. It's incomplete: not all settings are documented. It's disorganized: some options are grouped together but overall there's not much structure or logic to it. It's inconsistent: some examples show only key and value, some—just the closes object, and others full nesting. It's confusing: individual keys are listed but it's hard to understand where in the config structure they belong. I suggest the following changes: - Always specify the full path of the setting - Document all settings Zed recognises - List settings in alphabetical order of their full path - Always use full nesting in examples This is an example, of what it might look like. It's first draft, too. So I'm open to suggestions. Please let me know if you're interested in this. The whole thing might need a bit of effort so I'd like to know if this is something you might want before doing all the work. --------- Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Alexander Mankuta and Conrad Irwin created
60b22cf
php: Upgrade `zed_extension_api` to v0.0.6 (#14603)
This PR upgrades the PHP extension to use v0.0.6 of the `zed_extension_api`. Release Notes: - N/A
Marshall Bowers created
1fe16f4
Fix context in command palette from application menu (#14599)
Supercedes #14468 Release Notes: - linux: Fixed the command palette when opened from the application menu
Conrad Irwin created
448ef53
More ignorable commits (#14596)
- More of https://github.com/zed-industries/zed/pull/13889
Peter Tripp created
f612c40
repl: Don't run empty code submission (#14598)
Closes #14565. Release Notes: - N/A
Kyle Kelley created
0c61059
Open URIs from the CLI, support for the `zed://` URI scheme on Linux (#14104)
Allows Zed to open custom `zed://` links (redirects from https://zed.dev/channels) on Linux used XDG MIME types. This PR also allows the CLI to be able to open Zed (`zed://`) URIs directly instead of executing the main executable in `/usr/libexec/zed-editor`. Release Notes: - Linux: Allow `zed.dev/channel` (`zed://`) URIs to open on Linux - CLI: Ability to open URIs from the command line --------- Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Cappy Ishihara and Conrad Irwin created
64a796d
Fix renaming sometimes not working in vim mode (#14320)
Disable vim key contexts during renaming, to fix renaming being interfered with vim commands. Release Notes: - Fixed renaming sometimes not working in vim mode [#14292](https://github.com/zed-industries/zed/issues/14292) [#11882](https://github.com/zed-industries/zed/issues/11882). - Fixed inline assistant sometimes not working in vim mode #11559 --------- Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Congyu and Conrad Irwin created
76594ae
vim: fix escape while waiting (#14595)
Follow up from #14233 Release Notes: - N/A
Conrad Irwin created
05de1dc
Rename Linux desktop icon to match application name (#14437)
Release Notes: - Updated the Linux manual installation docs to fix windows not matching with desktop icons ([#14435](https://github.com/zed-industries/zed/issues/14435)). The automated `curl | bash` installation script already renames the `zed.desktop` file to match the window, so most users will not be facing this issue. This is only affecting users who have downloaded and extracted the files following the manual instructions. Since the app ID and the desktop file name are not the same, open windows are not being matched with the desktop icons, therefore showing a default one. This PR changes the documentation to tell users they should rename the `.desktop` file to `dev.zed.Zed.desktop`, and therefore match the automated install script. Before:  After: 
Robert Sturla created
ef53058
collab: Fix exact extension filtering (#14591)
This PR fixes the exact extension filtering introduced in #14588. As we traversed the extensions we were always updating `exact_match`, regardless of whether it matched the extension ID from the filter. Release Notes: - N/A
Marshall Bowers created
8028e7f
Refactor repl context menu (#14587)
Kyle Kelley created
cb6fc11
Rank exact extension ID matches higher in search results (#14588)
Release Notes: - Improved relevance of extension search results Co-authored-by: Marshall <marshall@zed.dev>
Conrad Irwin and Marshall created
cf8bd4a
Remoting public alpha (#14541)
Release Notes: - remoting: An alpha version of remote development is now available to everyone. For more information on how to use it, and limitations see https://zed.dev/docs/remote-development.
Conrad Irwin created
62ab6e1
remoting: Allow Add/Remove remote folder (#14532)
Release Notes: - remoting (alpha only): Allow add/remove folders to projects --------- Co-authored-by: Max <max@zed.dev>
Conrad Irwin and Max created
be1387f
Fix text appearing twice after Chinese character input (#14558)
Release Notes: - Fixed the issue where text appears twice in the editor after Chinese Character input.([linux: Fix IME on fcitx](https://github.com/zed-industries/zed/pull/14508)). Before:  After Fixed: 
aohanhongzhi created
09459fa
wayland: Fix drag and drop for paths with spaces (#14574)
This wasn't doing any proper parsing before, so `%20` or similar encoded characters weren't handled correctly. Release Notes: - N/A
apricotbucket28 created
400ae9c
extensions_ui: Add feature upsell for Go (#14586)
This PR adds a feature upsell for Go when searching for it in the extensions view. Release Notes: - N/A
Marshall Bowers created
f9472ce
extensions_ui: Add telemetry for docs click-throughs from feature upsells (#14583)
This PR adds some telemetry when the "View docs" button is clicked on a feature upsell. The goal here is to get a sense for how effective these upsells are at getting users to click through if they can't find what they're looking for. Release Notes: - N/A
Marshall Bowers created
0556edd
docs: Add Git page (#14582)
This PR adds a basic Git page to the docs so that we have somewhere to link to from the Git upsell within Zed. Release Notes: - N/A
Marshall Bowers created
09c497f
editor: Ensure allocation reuse (#14577)
In #14567 I claimed that the underlying allocation is reused. And it was. At the time I've submitted a PR I was using `.filter_map(|x| x)`, which got flagged by clippy as something that could be simplified to `.flatten()` - that however broke the allocation reuse promise. Thus, this PR goes back to using `filter_map` and additionally in debug builds it performs checks for allocation reuse. With .flatten in place, a bunch of unit test fail on that branch, so the checks do work. Release Notes: - N/A
Piotr Osiewicz created
1b85438
docs: Fix casing of "REPL" in sidebar (#14579)
This PR fixes the casing of the REPL link in the sidebar. Release Notes: - N/A
Marshall Bowers created
b3d0ac3
Show how to switch out kernels and discover them (#14531)
A few new doc changes for the repl feature. Release Notes: - N/A
Kyle Kelley created
a51a9b0
docs: Add AOSC OS Installation (#14575)
Added AOSC OS Installation docs Release Notes: - N/A
Mag Mell created
6cf6614
Fix xkbcommon overflow more (#14571)
Release Notes: - linux: Fixed overflow in xkbcommon-rs
Conrad Irwin created
0bf0152
Fix GoForward shortcut on non-US keyboard layouts (#14570)
- Fixes #14418. Originally broken by #13946
Peter Tripp created
d338e4a
editor: Improve performance of edit coalescing (#14567)
# Background
In https://github.com/zed-industries/zed/issues/14408 we received a
repro for "Replace all" being slow, even after the work I did
https://github.com/zed-industries/zed/pull/13654. Admittedly #13654 was
a pretty straightforward change.
Under the profiler it turned out that we're spending *10 seconds* in
`memmove` on main thread. Ugh. Not great. The direct ancestor of the
memmove call was
https://github.com/zed-industries/zed/blob/66f0c390a88f5aa16d21047a8982a5888fa0f816/crates/editor/src/display_map/tab_map.rs#L108-L119
What?
# Accidental O(n^2)
We have a bunch of `consolidate_*_edits` functions which take a list of
Fold/Tab/Inlay/Wrap edits and merge consecutive edits if their ranges
overlap/are next to one another. The loop usually goes as follows:
```
while ix < edits.len() {
let (prev_edits, next_edits) = edits.split_at_mut(ix);
let prev_edit = prev_edits.last_mut().unwrap();
let edit = &next_edits[0];
if PREV_EDIT_CAN_BE_MERGED_WITH_CURRENT_ONE {
MERGE_EDITS(prev_edit, edit);
edits.remove(ix); // !!
} else {
ix += 1;
}
}
```
The problem is the call to `.remove` - it has to shift all of the
consecutive elements in the `edits` vector! Thus, when processing the
edits from the original repro (where consolidation shrinks the edit list
from 210k entries to 30k), we mostly spend time moving entries in memory
around.
Thus, the original repro isn't really an issue with replace_all; it's
just that replace_all is one of the few tools available to the end user
that can apply large # of edits in a single transaction.
# Solution
In this PR I address the issue by rewriting the loop in a way that does
not throw items away via `.remove`. Instead, `Iterator::scan` is used,
which lets us achieve the same logic without having the pitfalls of
`.remove`s.
Crucially, **this code does not allocate a new backing buffer for
edits** (see [this article for
rationale](https://blog.polybdenum.com/2024/01/17/identifying-the-collect-vec-memory-leak-footgun.html));
with `vec.into_iter().scan().filter_map().collect()` we still use the
same underlying buffer as the one that's passed into `consolidate_*`
functions. In development I verified that by checking whether the
pointers to backing storage of a Vec are the same before and after the
consolidation.
# Results
### Before
Nightly 0.145.0
[66f0c390a88f5aa16d21047a8982a5888fa0f816](https://github.com/zed-industries/zed/commit/66f0c390a88f5aa16d21047a8982a5888fa0f816)
https://github.com/user-attachments/assets/8b0ad3bc-86d6-4f8a-850c-ebb86e8b3bfc
(~13s end-to-end)
### After
https://github.com/user-attachments/assets/366835db-1d84-4f95-8c74-b1506a9fabec
(~2s end-to-end)
The remaining lag is (I think) lies in `TextSummary` calculation and not
the consolidation itself. Thus, for the purposes of scoping this PR,
I'll tackle it separately.
Release Notes:
- Significantly improved performance of applying large quantities of
concurrent edits (e.g. when running "Replace all").
Piotr Osiewicz created
751508b
linux: Install dependencies when bundling nightly (#14566)
Release Notes: - N/A
Thorsten Ball created
f54f5df
linux: Build Nightly for ARM too (#14562)
Release Notes: - N/A
Thorsten Ball created
66f0c39
linux: Fix missing licenses in binary causing panics (#14561)
Turns out that the existing CI step for Nightly did create the licenses and they have been baked into X86 builds ever since, because our builders are stateful. On ARM machines, the licenses wouldn't exist in the binary because we called `script/generate-licenses` too late in `scripts/bundle-linux`, after the binary had been created. This removes the duplication and generates the licenses once, before the binary is created. Fixes #14302. Release Notes: - Fixed "View Dependency Licenses" (or `zed: open licenses`) crashing on Linux ARM machines. ([#14302](https://github.com/zed-industries/zed/issues/14302)
Thorsten Ball created
fdd233e
Change the context menu and Copilot settings icon (#14501)
Felt the link we were using for menu items that open a browser page was not the best. That one is most typically used for attachments within scope, as opposed to opening external links. Noticed that via the "Copilot Settings" menu, which also felt like it could have a bit more descriptive label. Also reduced the size of the rendered icon in this component. --- Release Notes: - N/A
Danilo Leal created
bf7e474
Properly fix the tab icons
Kirill Bulatov created
2a8cee5
Keep initial tab config without the icons (#14553)
Based on https://zed-industries.slack.com/archives/C04S5TU0RSN/p1721125498461089 Release Notes: - N/A
Kirill Bulatov created
ef20afa
project_panel: Fixed open in split not working in project panel (#14535)
Release Notes: - Fixed `cmd-double click` in project panel not opening a split view ([14465](https://github.com/zed-industries/zed/issues/14465))
CharlesChen0823 created
e413823
Headless extensions (#14538)
Release Notes: - remoting (alpha only): Fix extension installation
Conrad Irwin created
e68d9f4
Switch to muted color for kernel output labels (#14529)
Sets the text for "Executing...", "Queued", etc. to be `Color::Muted` <img width="442" alt="image" src="https://github.com/user-attachments/assets/10c27ce2-b804-41a3-a50e-0778b7e6cd09"> Release Notes: - N/A
Kyle Kelley created
3407256
linux: Tweak file chooser dialogs (#14526)
Mostly some small tweaks to the file chooser dialogs. Fixes https://github.com/zed-industries/zed/issues/14127 (along with the `ashpd` update in https://github.com/zed-industries/zed/pull/14401) Also included a fix (https://github.com/zed-industries/zed/commit/971d67c994dd595454cc4bc92bdf33d9da30a31a) for an issue that made multiple file chooser dialogs pop up on Wayland when doing CTRL + O and quickly pressing the escape key. Release Notes: - N/A
apricotbucket28 created
abc5abc
open picker (#14524)
Release Notes: - linux: Added a fallback Open picker for when XDG is not working - Added a new setting `use_system_path_prompts` (default true) that can be disabled to use Zed's builtin keyboard-driven prompts. --------- Co-authored-by: Max <max@zed.dev>
Conrad Irwin and Max created
da33aac
extensions_ui: Remove commented-out code (#14525)
This PR removes some commented-out code from the `extensions_ui`. Release Notes: - N/A
Marshall Bowers created
1818fef
Display file icons in tabs (#14523)
This PR adds support for displaying file icons in tabs.
The `tabs.file_icons` setting controls whether the icons are displayed:
```json
{
"tabs": {
"file_icons": false
}
}
```
This setting defaults to `true`.
<img width="1566" alt="Screenshot 2024-07-15 at 6 17 26 PM"
src="https://github.com/user-attachments/assets/86dfc8c9-764c-453d-95e4-2ec95d6fe715">
<img width="1566" alt="Screenshot 2024-07-15 at 6 24 26 PM"
src="https://github.com/user-attachments/assets/4b4e8489-49d3-41bf-b4cb-59365bdd3e9d">
Release Notes:
- Added file icons to buffer tabs
([#12138](https://github.com/zed-industries/zed/issues/12138)).
- If desired, these icons can be removed using `"tabs": { "file_icons":
false }`.
Marshall Bowers created
2ae1a47
Upsell built-in features on the extensions page (#14516)
This PR extends the extensions page with support for upselling built-in Zed features when certain keywords are searched for. This should help inform users about features that Zed has out-of-the-box when they go looking for them as extensions. For example, when someone searches "vim": <img width="1341" alt="Screenshot 2024-07-15 at 4 58 44 PM" src="https://github.com/user-attachments/assets/b256d07a-559a-43c2-b491-3eca5bff436e"> Here are more examples of what the upsells can look like: <img width="1341" alt="Screenshot 2024-07-15 at 4 54 39 PM" src="https://github.com/user-attachments/assets/1f453132-ac14-4884-afc4-7c12db47ad1d"> Release Notes: - Added banners for built-in Zed features when corresponding keywords are used in the extension search.
Marshall Bowers created
d7a25c1
Add an experimental, WIP diagnostics grouping panel (#14515)
Provide a current, broken state as an experimental way to browse diagnostics. The diagnostics are grouped by lines and reduced into a block that, in case of multiple diagnostics per line, could be toggled back and forth to show more diagnostics on the line. Use `grouped_diagnostics::Deploy` to show the panel. Issues remaining: * panic on warnings toggle due to incorrect excerpt manipulation * badly styled blocks * no key bindings to navigate between blocks and toggle them * overall odd usability gains for certain groups of people Due to all above, the thing is feature-gated and not exposed to regular people. Release Notes: - N/A
Kirill Bulatov created
2c6cb4e
Fix Cmd+\ for workspace::ToggleLeftDock for Atom base keymap (#14098)
Release Notes: - Fixed Left Dock in Atom keymap on Mac/Linux (`cmd-\`, `ctrl-\`) ([#14098](https://github.com/zed-industries/zed/pull/14098), thanks [@audionerd](https://github.com/audionerd)). --------- Co-authored-by: Peter Tripp <peter@zed.dev>
Eric Skogen and Peter Tripp created
143035b
gpui_macros: Extract `border_style_methods` macro (#14514)
This PR extracts a separate `border_style_methods` macro so that it can be used independently from `style_helpers!`. Release Notes: - N/A
Marshall Bowers created
fa3d290
Add REPL dropdown menu to toolbar (#14493)
TODO: - [x] Actions run from menu not firing - [x] Menu differentiates idle and busy for running kernel Menu States: - [x] No session && no support known No session && no kernel installed for languages of known support - (TODO after) Intro to REPL - [x] Link to docs No session but can start one - [x] Start REPL - (TODO after) More info -> Docs? Yes Session - [x] Info: Kernel name, language example: chatlab-3.7-adsf87fsa (Python) example: condapy-3.7 (Python) - [x] Change Kernel -> https://zed.dev/docs/repl#change-kernel - --- - [x] Run - [x] Interrupt - [x] Clear Outputs - --- - [x] Shutdown (Release notes left empty as the change will be documented in the REPL release!) Reserved for a follow on PR: ``` - [ ] Status should update when the menu is open (missing `cx.notify`?) - [ ] Shutdown all kernels action - [ ] Restart action - [ ] [Default kernel changed - restart (this kernel) to apply] // todo!(kyle): need some kind of state thing that says if this has happened ``` Release Notes: - N/A --------- Co-authored-by: Marshall Bowers <elliott.codes@gmail.com> Co-authored-by: Kyle Kelley <rgbkrk@gmail.com> Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Nate Butler , Marshall Bowers , Kyle Kelley , and Piotr Osiewicz created
1856320
Add mouse handling to gpui input example (#14350)
Release Notes: - N/A --------- Co-authored-by: Jason Lee <huacnlee@gmail.com>
Conrad Irwin and Jason Lee created
b58abb1
linux: Hide Install CLI from welcome (#14506)
Release Notes: - linux: Remove "Install CLI" from welcome, it is not necessary
Conrad Irwin created
868455f
linux: Fix IME on fcitx5 (#14508)
Release Notes: - linux: Fix IME under fcitx5 (#14192)
Conrad Irwin created