1d2172a
docs: Correct glibc requirements (#18554)
Peter Tripp created
1d2172a
docs: Correct glibc requirements (#18554)
Peter Tripp created
a752bbc
Fix linux double click (#18504)
Closes #17573 Release Notes: - Check that double clicks on Linux are triggered by same button.
Patrick MARIE created
938a067
gpui: Fix img element to auto size when only have width or height (#17994)
Release Notes: - N/A --- We may only want to set the height of an image to limit the size and make the width adaptive. In HTML, we will only set width or height, and the other side will adapt and maintain the original image ratio. I changed this because I had a logo image that only to be limited in height, and then I found that setting the height of the `img` alone would not display correctly. I also tried to set `ObjectFit` in this Demo, but it seems that none of them can achieve the same effect as "After". ## Before <img width="809" alt="before 2024-09-18 164029" src="https://github.com/user-attachments/assets/7ba559ed-e53b-43e6-a072-93c8ba5b14ee"> ## After <img width="749" alt="after 2024-09-18 172003" src="https://github.com/user-attachments/assets/51ee2eba-76b3-400a-abbf-de0e9c4021e2">
Jason Lee created
77506af
windows: Implement copy/paste images (#17852)
**Clipboard Behavior on Windows Under This PR:** | User Action | Zed’s Behavior | | ------------------- | -------------------------------------------------- | | Paste PNG | Worked | | Paste JPEG | Worked | | Paste WebP | Worked, but not in the way you expect (see Issue section below) | | Paste GIF | Partially worked (see Issue section below) | | Paste SVG | Partially worked (see Issue section below) | | Paste BMP | Worked, but not in the way you expect (see Issue section below) | | Paste TIFF | Worked, but not in the way you expect (see Issue section below) | | Paste Files | Worked, same behavior as macOS | | Copy image in Zed | Not tested, as I couldn’t find a way to copy images | --- **Differences Between the Windows and macOS Clipboard** The clipboard functionality on Windows differs significantly from macOS. On macOS, there can be multiple items in the clipboard, whereas, on Windows, the clipboard holds only a single item. You can retrieve different formats from the clipboard, but they are all just different representations of the same item. For example, when you copy a JPG image from Microsoft Word, the clipboard will contain data in several formats: - Microsoft Office proprietary data - JPG format data - PNG format data - SVG format data Please note that these formats all represent the same image, just in different formats. This is due to compatibility concerns on Windows, as various applications support different formats. Ideally, multiple formats should be placed on the clipboard to support more software. However, in general, supporting PNG will cover 99% of software, like Chrome, which only supports PNG and BMP formats. Additionally, since the clipboard on Windows only contains a single item, special handling is required when copying multiple objects, such as text and images. For instance, if you copy both text and an image simultaneously in Microsoft Word, Microsoft places the following data on the clipboard: - Microsoft Office proprietary data containing a lot of content such as text fonts, sizes, italics, positioning, image size, content, etc. - RTF data representing the above content in RTF format - HTML data representing the content in HTML format - Plain text data Therefore, for the current `ClipboardItem` implementation, if there are multiple `ClipboardEntry` objects to be placed on the clipboard, RTF or HTML formats are required. This PR does not support this scenario, and only supports copying or pasting a single item from the clipboard. --- **Known Issues** - **WebP, BMP, TIFF**: These formats are not explicitly supported in this PR. However, as mentioned earlier, in most cases, there are corresponding PNG format data on the clipboard. This PR retrieves data via PNG format, so users copying images in these formats from other sources will still see the images displayed correctly. - **GIF**: In this PR, GIFs are displayed, but for GIF images with multiple frames, the image will not animate and will freeze on a single frame. Since I observed the same behavior on macOS, I believe this is not an issue with this PR. - **SVG**: In this PR, only the top-left corner of the SVG image is displayed. Again, I observed the same behavior on macOS, so I believe this issue is not specific to this PR. --- I hope this provides a clearer understanding. Any feedback or suggestions on how to improve this are welcome. Release Notes: - N/A
Junkui Zhang created
ecb7144
windows: Fix can not set folder for `FileSaveDialog` (#17708)
Closes #17622 Closes #17682 The story here is that `SHCreateItemFromParsingName` dose not accept UNC path. Video: https://github.com/user-attachments/assets/f4f7f671-5ab5-4965-9158-e7a79ac02654 Release Notes: - N/A
Junkui Zhang created
8377561
linux/wayland: Add support for pasting images (#17671)
Release Notes: - You can now paste images into the Assistant Panel to include them as context on Linux wayland
maan2003 created
eb9fd62
Fix rendering of markdown tables (#18315)
- Closes: https://github.com/zed-industries/zed/issues/11024 ## Release Notes: - Improved Markdown Preview rendering of tables ## Before:  <img width="2035" alt="Screenshot 2024-09-25 at 05 47 19" src="https://github.com/user-attachments/assets/a30c56f5-4793-44c2-8527-294189f9e724"> ## Now:  <img width="2040" alt="Screenshot 2024-09-25 at 05 47 48" src="https://github.com/user-attachments/assets/76e5d217-9110-4c5d-9fad-dc63ae0b75f4"> ## Note: I'm not a Rust programmer and this is my first PR in Zed (because i just want to fix this, so i can view my notes in Markdown in Zed, not slow Visual Studio Code) - so there may be errors. I'm open for critic a
Andrey Arutiunian created
3010dfe
Support More Linux (#18480)
- Add `script/build-docker` - Add `script/install-cmake` - Add `script/install-mold` - Improve `script/linux` - Add missing dependencies: `jq`, `git`, `tar`, `gzip` as required. - Add check for mold - Fix Redhat 8.x derivatives (RHEL, Centos, Almalinux, Rocky, Oracle, Amazon) - Fix perl libs to be Fedora only - Install the best `libstdc++` available on apt distros - ArchLinux: run `pacman -Syu` to update repos before installing. - Should work on Raspbian (untested) This make it possible to test builds on other distros using docker: ``` ./script/build-docker amazonlinux:2023 ```
Peter Tripp created
432de00
ci: Use BuildJet Ubuntu 20.04 runners for better glibc compatibility (#18442)
Use BuildJet Ubuntu 20.04 runners. - Linux arm64 unchanged (glibc >= 2.35) - Linux x64 glibc requirement becomes to >= 2.31 (from glibc >= 2.35). Note: Ubuntu 20.04 repo cmake (3.16.3) is normally too old to build Zed, but `ubuntu-2004` [includes cmake 3.30.3](https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2004-Readme.md#tools).
Peter Tripp created
09424ed
ci: Add script/determine-release-channel (#18476)
- Refactor duplicated inline script from ci.yml to `script/determine-release-channel` - Remove references to non-existent '-nightly' release tags Release Notes: - N/A
Peter Tripp created
74cba24
ci: Move collab to Dockerfile-collab (#18515)
This makes it possible to have multiple Dockerfiles, each with their own `.dockerignore`. Previously any docker builds would always include anything inside `.dockerignore`. I believe this feature may require `export DOCKER_BUILDKIT=1` but we use that in CI already.
Peter Tripp created
053e319
Fine-tune hunk controls block (#18543)
This PR changes the undo icon and adds a background color so that indent lines don't bleed through the control block. <img width="900" alt="Screenshot 2024-09-30 at 5 38 44 PM" src="https://github.com/user-attachments/assets/4955f0f6-50ce-432f-85b9-1da0172d5e51"> Release Notes: - N/A
Danilo Leal created
69e698c
terminal: Fix blinking settings & blinking with custom shape (#18538)
This is a follow-up to #18530 thanks to this comment here:
https://github.com/zed-industries/zed/pull/18530#issuecomment-2382870564
In short: it fixes the `blinking` setting and the `cursor_shape` setting
as it relates to blinking.
Turns out our `blinking` setting was always the wrong value when using
`terminal_controlled` and the terminal _would_ control the blinking.
Example script to test with:
```bash
echo -e "0 normal \x1b[\x30 q"; sleep 2
echo -e "1 blink block \x1b[\x31 q"; sleep 2
echo -e "2 solid block \x1b[\x32 q"; sleep 2
echo -e "3 blink under \x1b[\x33 q"; sleep 2
echo -e "4 solid under \x1b[\x34 q"; sleep 2
echo -e "5 blink vert \x1b[\x35 q"; sleep 2
echo -e "6 solid vert \x1b[\x36 q"; sleep 2
echo -e "0 normal \x1b[\x30 q"; sleep 2
echo -e "color \x1b]12;#00ff00\x1b\\"; sleep 2
echo -e "reset \x1b]112\x1b\\ \x1b[\x30 q"
```
Before the changes in here, this script would set the cursor shape and
the blinking, but the blinking boolean would always be wrong.
This change here makes sure that it works consistently:
- `terminal.cursor_shape` only controls the *default* shape of the
terminal, not the blinking.
- `terminal.blinking = on` means that it's *always* blinking, regardless
of what terminal programs want
- `terminal.blinking = off` means that it's *never* blinking, regardless
of what terminal programs want
- `terminal.blinking = terminal_controlled (default)` means that it's
blinking depending on what terminal programs want. when a terminal
program resets the cursor to default, it sets it back to
`terminal.cursor_shape` if that is set.
Release Notes:
- Fixed the behavior of `{"terminal": {"blinking":
"[on|off|terminal_controlled]"}` to work correctly and to work correctly
when custom `cursor_shape` is set.
- `terminal.cursor_shape` only controls the *default* shape of the
terminal, not the blinking.
- `terminal.blinking = on` means that it's *always* blinking, regardless
of what terminal programs want
- `terminal.blinking = off` means that it's *never* blinking, regardless
of what terminal programs want
- `terminal.blinking = terminal_controlled (default)` means that it's
blinking depending on what terminal programs want. when a terminal
program resets the cursor to default, it sets it back to
`terminal.cursor_shape` if that is set.
Demo:
https://github.com/user-attachments/assets/b3fbeafd-ad58-41c8-9c07-1f03bc31771f
Co-authored-by: Bennet <bennet@zed.dev>
Thorsten Ball and Bennet created
215bce1
Make direct direnv loading default (#18536)
I've been running with direct direnv loading for a while now and haven't experienced any significant issues other than #18473. Making it default would make direnv integration more reliable and consistent. I've also updated the docs a bit to ensure that they represent current status of direnv integration Release Notes: - Made direnv integration use direct (`direnv export json`) mode by default instead of relying on a shell hook, improving consistency and reliability of direnv detection
Stanislav Alekseev created
e64a86c
Fix a typo in the multi buffers documentation (#18535)
Closes https://github.com/zed-industries/zed/issues/18533 Release Notes: - N/A
Kirill Bulatov created
8ae74bc
gpui: Fix pre-edit position after applying scale factor (#18214)
before:  after:  Release Notes: - N/A
wannacu created
65f6a7e
linux/x11: Give title bar inactive bg on mouse down (#18529)
This fixes something that I felt was off for a while. Previously, when you'd click on the titlebar to move the window, the titlebar would only change its background once the moving starts, but not on mouse-down. That felt really off, since the moving is down with mouse-down and move, so I think giving the user feedback about the mouse-down event makes more sense. I know there's a subjectivity to this change, so I'm ready to hear other opinions, but for now I want to go with this. Release Notes: - N/A
Thorsten Ball created
533416c
terminal: Make CursorShape configurable (#18530)
This builds on top of @Yevgen's #15840 and combines it with the settings
names introduced in #17572.
Closes #4731.
Release Notes:
- Added a setting for the terminal's default cursor shape. The setting
is `{"terminal": {"cursor_shape": "block"}}``. Possible values: `block`,
`bar`, `hollow`, `underline`.
Demo:
https://github.com/user-attachments/assets/96ed28c2-c222-436b-80cb-7cd63eeb47dd
Thorsten Ball created
57ad577
Add a way to explicitly specify RC toolkit path (#18402)
Closes #18393 Release Notes: - Added a `ZED_RC_TOOLKIT_PATH` env variable so `winresource` crate can fetch the RC executable path correctly on some configurations
0hDEADBEAF created
707ccb0
Restore paste on middle-click on linux (#18503)
This is a partial revert of e6c1c51b37a, which removed the middle-click pasting on linux (both x11 & wayland). It also restores the `middle_click_paste` option behavior which became unexistent. Release Notes: - Restore Linux middle-click pasting.
Patrick MARIE created
1f72069
Improve C++ Tree-sitter queries (#18016)
I made a few tree-sitter queries for improving the highlighting of C++. There is one query that I'm not totally certain about and would appreciate some feedback on it, the one that concerns attributes. Many editor only highlight the identifier as a keyword (This is the behavior implemented in this commit), while others, for example the tree-sitter plugin for neovim, tags the entire attribute for highlighting (double brackets included). I don't know which one is preferable. Here are screenshots of the two versions:   Release Notes: - Fixed C++ attributes identifiers being wrongly highlighed through the tag "variable" - C++ attribute identifiers (nodiscard,deprecated, noreturn, etc.. ) are now highlighted through the tag "keyword" - Changed C++ primitives types (void, bool, int, size_t, etc.. ) to no longer be highlighted with the tag "keyword", they can now be highlighted by the tag "type.primitive". - Added a tag "concept" for highlighting C++ concept identifiers. (This tag name has been chosen to be the same than the one returned by clangd's semantic tokens)
VacheDesNeiges created
ed5eb72
Improve language server log view split ergonomics (#18527)
Allows to split log view, and opens it split on the right, same as the syntax tree view. Release Notes: - Improved language server log panel split ergonomics
Kirill Bulatov created
3fafdeb
gpui: Fix blur region on Plasma/Wayland (#18465)
Once again aping after what winit does - since we always want to have the whole window blurred there is apparently no need to specify a blur region at all. Rounded corners would be the exception, but that is not possible with the current protocol (it is planned for the vendor-neutral version though!) This eliminates the problem where only a fixed region of the window would get blurred if the window was resized to be larger than at launch. Also a drive-by comment grammar fix :wink: Release Notes: - Fixed blur region handling on Plasma/Wayland
jansol created
898d48a
php: Add syntax highlighting inside heredoc strings (#18368)
PHP heredoc strings make it easy to define string literals over multiple
lines:
```php
$someString = <<<EOT
multiline
text
EOT;
```
That `EOT` identifier can be anything else, and it is actually being
used in Sublime Text and VS Code to inject syntax highlighting for
another language in said string, depending on the identifier. For
instance, if the identifier is SQL, SQL syntax highlighting will be
applied to the contents of the string. Likewise if the identifier is CSS
or JS.
```php
$someString = <<<SQL
SELECT *
FROM my_table
SQL;
```
This PR changes the PHP extension so that it supports that feature too.
Release Notes:
- php: Added syntax highlighting inside heredoc strings
Sylvain Brunerie created
5b40deb
Don't stop loading the env if direnv call fails (#18473)
Before this we we would stop loading the environment if the call to direnv failed, which is not necessary in any way cc @mrnugget Release Notes: - Fixed the environment not loading if `direnv` mode is set to `direct` and `.envrc` is not allowed
Stanislav Alekseev created
e39695b
docs: Update msys2 section in development/windows (#18385)
merge after https://packages.msys2.org/packages/mingw-w64-clang-x86_64-zed is available. alternatively you can check the [queue](https://packages.msys2.org/queue) for build status Zed now compiles and runs under msys2/CLANG64 environment, so change the docs to give the users a choice of their environment Release Notes: - N/A
Maksim Bondarenkov created
77df7e5
settings: Make external formatter arguments optional (#18340)
If specifying a formatter in the settings like this:
"languages": {
"foo": {
"formatter": {
"external": {
"command": "/path/to/foo-formatter"
}
}
}
}
Zed will show an error like this:
Invalid user settings file
data did not match any variant of untagged enum SingleOrVec
This is because the arguments are not optional. The error is hard to
understand, so let's make the arguments actually optional, which makes
the above settings snippet valid.
Release Notes:
- Make external formatter arguments optional
Tom Wieczorek created
250f2e7
tasks: Display runnables at the start of folds (#18526)
Release Notes: - Fixed task indicators not showing up at the starts of folds.
Piotr Osiewicz created
5f35fa5
Associate `uv.lock` files with TOML (#18426)
The `uv` python package manager uses the TOML for it's `uv.lock` file, see https://docs.astral.sh/uv/guides/projects/#uvlock. Ref #7808 Release Notes: - associate `uv.lock` files with the TOML language
Thorben Kröger created
84ce81c
Pass `Summary::Context` to `Item::summarize` (#18510)
We are going to use this in the multi-buffer to produce a summary for an `Excerpt` that contains a `Range<Anchor>`. Release Notes: - N/A Co-authored-by: Nathan <nathan@zed.dev>
Antonio Scandurra and Nathan created
8aeab48
Continue to redirect to GitHub commits for nightly and dev release notes (#18487)
We are now using the `view release notes locally` action when clicking on the update toast - the endpoint for this action does not currently return anything for valid for these channels, as we don't have support yet for diffing between these builds, so for now, [continue to do what the `view release notes` action did and just send the user to the commit view on GitHub](https://github.com/zed-industries/zed/blob/caffb2733f8e859637050e3708dbd10b6e409762/crates/auto_update/src/auto_update.rs#L255-L260). It is a bit counterintuitive to send the user to the browser when using the "local" action, but this is just a patch in the interim. If we make adjustments to our channels to keep the nightly tag stable and add some sort of unique suffix, like a timestamp, we can then adjust things to return these in the request body and show them in the editor. Release Notes: - N/A
Joseph T. Lyons created
1021f0e
Show release notes locally when showing update notification (#18486)
Closes https://github.com/zed-industries/zed/issues/17527 I think we are ok to switch to using the local action now. There are a few things we don't support, like media, but we don't include media directly too often, and I think this might help push the community to maybe add support for it. That being said, I updated the markdown coming back from the endpoint to include links to the web version of the release notes, so they can always hop over to that version, if they would like. https://github.com/user-attachments/assets/b4d207a7-1640-48f1-91d0-94537f74116c All forming of the Markdown happens in the endpoint, so if someone with a better eye wants to update this, you can do that here: https://github.com/zed-industries/zed.dev/blob/0e5923e3e7d1caa8b4bf32d0a7f8999b34dbe64c/src/pages/api/release_notes/v2/%5Bchannel_type%5D/%5Bversion%5D.ts#L50-L62 Release Notes: - Changed the `view the release notes` button in the update toast to trigger the local release notes action.
Joseph T. Lyons created
675673e
Fine-tune hunk control spacing (#18463)
<img width="900" alt="Screenshot 2024-09-28 at 1 09 35 AM" src="https://github.com/user-attachments/assets/0b9d744f-3b92-488a-bc74-987f5a9d8c6c"> --- Release Notes: - N/A
Danilo Leal created
3737d4e
Add tooltip for code actions icon button (#18461)
I have just recently discovered this keybinding myself out of talking to folks, ha. The tooltip here might ease the discovery for other folks in the future. <img width="700" alt="Screenshot 2024-09-27 at 11 04 28 PM" src="https://github.com/user-attachments/assets/844d3b55-15af-47f7-a8db-5c8832ceba29"> --- Release Notes: - N/A
Danilo Leal created
0daa070
More git hunk highlighting fixes (#18459)
Follow-up to https://github.com/zed-industries/zed/pull/18454 Release Notes: - N/A
Max Brunsfeld created
689da9d
Move git hunk controls to the left side (#18460)
 Release Notes: - N/A
Max Brunsfeld created
1c5be9d
Capitalize tooltip labels on buffer search (#18458)
For consistency, as this seems to be the pattern we're using overall for labels and buttons. --- Release Notes: - N/A
Danilo Leal created
d5f6740
Install cargo-edito without extra features (#18457)
https://github.com/killercup/cargo-edit/pull/907 removed the feature from the crate Release Notes: - N/A
Kirill Bulatov created
c3075df
Fix bugs in diff hunk highlighting (#18454)
Fixes https://github.com/zed-industries/zed/issues/18405
In https://github.com/zed-industries/zed/pull/18313, we introduced a
problem where git addition highlights might spuriously return when
undoing certain changes. It turned out, there were already some cases
where git hunk highlighting was incorrect when editing at the boundaries
of expanded diff hunks.
In this PR, I've introduced a test helper method for more rigorously
(and readably) testing the editor's git state. You can assert about the
entire state of an editor's diff decorations using a formatted diff:
```rust
cx.assert_diff_hunks(
r#"
- use some::mod1;
use some::mod2;
const A: u32 = 42;
- const B: u32 = 42;
const C: u32 = 42;
fn main() {
- println!("hello");
+ //println!("hello");
println!("world");
+ //
+ //
}
fn another() {
println!("another");
+ println!("another");
}
- fn another2() {
println!("another2");
}
"#
.unindent(),
);
```
This will assert about the editor's actual row highlights, not just the
editor's internal hunk-tracking state.
I rewrote all of our editor diff tests to use these more high-level
assertions, and it caught the new bug, as well as some pre-existing bugs
in the highlighting of added content.
The problem was how we *remove* highlighted rows. Previously, it relied
on supplying exactly the same range as one that we had previously
highlighted. I've added a `remove_highlighted_rows(ranges)` APIs which
is much simpler - it clears out any row ranges that intersect the given
ranges (which is all that we need for the Git diff use case).
Release Notes:
- N/A
Max Brunsfeld created
caaa9a0
Remove Qwen2 model (#18444)
Removed deprecated Qwen2 7B Instruct model from zed.dev provider (staff only). Release Notes: - N/A
Richard Feldman created
ffd1083
vim: Command selection fixes (#18424)
Release Notes:
- vim: Fixed cursor position after `:{range}yank`.
- vim: Added `:fo[ld]`, `:foldo[pen]` and `:foldc[lose]`
Conrad Irwin created
6d4ecac
Add a `get-release-notes-since` script (#18445)
Release Notes: - N/A
Joseph T. Lyons created
dc5ffe6
Fix GoToDefinition changing the viewport unnecessarily (#18441)
Closes #10738. Release Notes: - Fixed `GoToDefinition` changing the viewport (scrolling up/down) even when the definition is already within the viewport. ([#10738](https://github.com/zed-industries/zed/issues/10738))
Ömer Sinan Ağacan created
03c7f08
docs: Ollama api_url improvements (#18440)
Peter Tripp created
73ff8c0
Fix missing tooltips for selected buttons (#18435)
Reverts #13857. Hiding tooltips for selected buttons prevents tooltips like "Close x dock" from showing up, see #14938 for an example. The intention of the original PR was to hide the "Show application menu" tooltip, while the context menu is open. In order to fix this without breaking other UI elements, we track the state of the context menu using `PopoverMenuHandle` now, which allows us to prevent the tooltip from showing up while the context menu is open. Closes #14938 Release Notes: - Fixed an issue where some tooltips would not show up
Bennet Bo Fenner created
1c5d9c2
Add missing shortcuts in tooltips (#18282)
Fixes some missing shortcuts from Tooltips like the project search, buffer search, quick action bar, .... https://github.com/user-attachments/assets/d3a0160a-8d6e-4ddc-bf82-1fabeca42d59 This should hopefully help new users learn and discover some nice keyboard shortcuts Release Notes: - Display keyboard shortcuts inside tooltips in the project search, buffer search etc.
Bennet Bo Fenner created
a1d2e11
assistant: Fix copy/cut not working when selection is empty (#18403)
Release Notes: - Fixed copy/cut/paste not working in the assistant panel when selection was empty
Bennet Bo Fenner created
568a21a
Fix the numeration in line wrap docs (#18428)
Follow-up of https://github.com/zed-industries/zed/pull/18412 Release Notes: - N/A Co-authored-by: Thorsten Ball <thorsten@zed.dev>
Kirill Bulatov and Thorsten Ball created
5199135
ssh remoting: Show error if opening connection timed out (#18401)
This shows an error if opening a connection to a remote host didn't work in the timeout of 10s (maybe we'll need to make that configurable in the future? for now it seems fine.)  Release Notes: - N/A --------- Co-authored-by: Bennet <bennet@zed.dev> Co-authored-by: Conrad <conrad@zed.dev>
Thorsten Ball , Bennet , and Conrad created
8559731
project: Fix worktree store event missing in remote projects (#18376)
Release Notes: - N/A
CharlesChen0823 created