a51a9b0
docs: Add AOSC OS Installation (#14575)
Click to expand commit body
Added AOSC OS Installation docs Release Notes: - N/A
Mag Mell 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
c27c412
linux: re-add open fallback (#14359)
Release Notes: - linux: Fixed opening urls/directories on systems where the xdg desktop portal doesn't handle those requests.
Conrad Irwin created
0b0de8c
Display hint to add PATH for Fish shell too (#14504)
tested on `fish 3.7.1 (released March 19, 2024)` ___ Release Notes: - N/A
makeProjectGreatAgain created
f3ddd18
linux: Show warning if file picker portal is missing (#14401)
This PR adds a warning when the file chooser couldn't be opened on Linux It's quite confusing when trying to open a file and apparently nothing happens: fixes https://github.com/zed-industries/zed/issues/11089, https://github.com/zed-industries/zed/issues/14328, https://github.com/zed-industries/zed/issues/13753#issuecomment-2225812703, https://github.com/zed-industries/zed/issues/13766, https://github.com/zed-industries/zed/issues/14384, https://github.com/zed-industries/zed/issues/14353, https://github.com/zed-industries/zed/issues/9209  Release Notes: - N/A
apricotbucket28 created
5d860e2
Fix selectable popover dismissing on key press (#14368)
Release Notes: - Fixed dismissal bug included in #12918
Ephram created
e26dbe2
Add linux Zed log location to crash report github issue template (#14373)
Release Notes: - N/A
Peter Tripp created
3c38be5
Add keyboard shortcuts to center scrolling around current line (#14385)
- MacOS: Center the cursor in the visible area. `ctrl-l` (matches MacOS) - Linux JetBrains: Scroll so cursor is at the Middle `ctrl-m` - `editor::NextScreen` is not longer bound in any keymap by default (was `ctrl-l` on MacOS) Fixes #5247
Peter Tripp created
e50811c
Adjust list item & pickers spacing (#14250)
Danilo Leal created
c1aa4d9
rust: Expose import names in completions for modules and functions (#14490)
Release Notes: - Improved accuracy of completion lists for Rust functions and modules.
Piotr Osiewicz created
e8d674d
Show cursors for shared contexts (#14484)
Release Notes: - N/A Co-authored-by: Nathan <nathan@zed.dev>
Antonio Scandurra and Nathan created
f0279e6
Add Gemini models to cloud enum (#14482)
Release Notes: - N/A
Nathan Sobo created
98b95d9
Introduce `/symbols` command in assistant panel (#14360)
Release Notes: - Added `/symbols` command in assistant panel. --------- Co-authored-by: Antonio <antonio@zed.dev> Co-authored-by: Antonio Scandurra <me@as-cii.com> Co-authored-by: Nathan <nathan@zed.dev>
Max Brunsfeld , Antonio , Antonio Scandurra , and Nathan created
decdd3b
Introduce following for assistant panel (#14479)
Release Notes: - Added support for following into the assistant panel. --------- Co-authored-by: Max <max@zed.dev> Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com> Co-authored-by: Nathan <nathan@zed.dev>
Antonio Scandurra , Max , Max Brunsfeld , and Nathan created
977a1b7
Support dynamic formatting capabilities [un]registration (#14478)
Closes https://github.com/zed-industries/zed/issues/12661 Release Notes: - Added dynamic [un]registration for LSP formatting capabilities ([#12661](https://github.com/zed-industries/zed/issues/12661))
Kirill Bulatov created
684d9dd
zig: Wire up LSP `settings` and `binary.{path/arguments}` for `zls` (#14379)
Enables the LSP `settings` and `binary.{path/arguments}` functionality
Example:
```
"lsp": {
"zls": {
"settings": {
"semantic_tokens": "none"
},
"binary": {
"path": "/home/user/zls/zig-out/bin/zls",
"arguments": ["--enable-debug-log"]
}
}
},
```
Release Notes:
- N/A
llogick created
315692d
windows: Refactor clipboard implementation (#14347)
This PR provides a similar implementation to the macOS clipboard implementation, adds support for metadata and includes tests. Release Notes: - N/A
张小白 created
ba09eab
windows: Make window creation failable (#14395)
Release Notes: - N/A
张小白 created
70d983a
Include stable package in docs, mention UM, and link to sources for the Fedora package (#14432)
Hello, I'm one of the maintainers of the Zed package on Terra. I made the following changes: - Mention the Terra stable package, instead of only preview and nightly. - Link to sources for Terra packages instead of pkgs.org. - Mention Ultramarine in addition to Fedora (one of Terra's targets). Release Notes: - N/A
lea created
4a3097d
x11: Fix capitalization with neo 2 (#14466)
Fixed #14282 Release Notes: - N/A
Fernando Tagawa created
59ce353
Turn off `use_on_type_format` too, for languages that have `format_on_save` disabled (#14413)
Based on the discussion in https://github.com/zed-industries/zed/issues/14400 Release Notes: - N/A
Kirill Bulatov created
f8b5e42
Do not send `textDocument/didSave` message if server does not declare its support (#14412)
Release Notes: - Improved Zed logic for sending `textDocument/didSave` request ([14286](https://github.com/zed-industries/zed/issues/14286))
Kirill Bulatov created
88c5eb5
Lookup prettier more leniently (#14403)
Do not require the `prettier` dependency name to be in package.json's [dev]Dependencies, instead just checking the `node_modules` contents. Release Notes: - Improved `prettier` detection to pick up its installation from transitive dependencies ([12731](https://github.com/zed-industries/zed/issues/12731)
Kirill Bulatov created
e5dc6be
deno: wire up LSP settings (#14410)
Currently deno lsp only works because deno have a workaround when it
detects deno.json it gets activated, but without a deno.json it won't
work
With this change now it works correctly regardless of a deno.json
presence, it only require enable:true:
```json
{
"lsp": {
"deno": {
"settings": {
"deno": {
"enable": true
}
}
}
}
}
```
Release Notes:
- Improved initial Deno set-up to enable it without explicit deno.json present in the file system
Bedis Nbiba created
3a41094
Apply `terminal.foreground` and `terminal.background` from theme (#14281)
Release Notes: - Fixed terminal colors not respecting the theme ([#11418](https://github.com/zed-industries/zed/discussions/11418)).
Zak Johnson created
89fbd65
Do not fold excerpts by default in the outline panel (#14378)
Release Notes: - N/A
Kirill Bulatov created
9ce989a
Tidy up collab-related signature help data (#14377)
Follow-up of https://github.com/zed-industries/zed/pull/12909 * Fully preserve LSP data when sending it via collab, and only strip it on the client. * Avoid extra custom request handlers, and extend multi LSP server query protocol instead. Release Notes: - N/A
Kirill Bulatov created