219ec91
Fix compile errors on Linux (#7527)
Click to expand commit body
Added some missing trait functions and `unimplemented` markings Release Notes: - N/A
Antar created
219ec91
Fix compile errors on Linux (#7527)
Added some missing trait functions and `unimplemented` markings Release Notes: - N/A
Antar created
6cdd779
terminal: strikethrough text (#7507)
#7363 added support for rendering strikethrough text, so now we can handle this case in the terminal. Should close: #7434 Before:  After:  Release Notes: - Fixed rendering strikethrough text inside the terminal #7434
Bennet Bo Fenner created
f55aba5
Fix panic! caused by bad utf16 clipping (#7530)
Release Notes: - Fixed a panic in diagnostics with emojis **or** - N/A
Conrad Irwin created
374c8a4
Reload theme using `ThemeSettings::reload_current_theme` (#7522)
This PR updates the various spots where we reload the theme to use `ThemeSettings::reload_current_theme` instead of duplicating the code each time. Release Notes: - N/A
Marshall Bowers created
45cf36e
theme_importer: Add `--output` flag for outputting the theme to a file (#7486)
```bash cargo run -p theme_importer -- dark-plus-syntax-color-theme.json --output output.json ``` Release Notes: - N/A --------- Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
d1y and Marshall Bowers created
e6dad23
chat: closing reply preview with action (#7517)
This is a follow up to #7170. Closing the reply to preview overlay is now configurable with an action (keybinding set escape in the default keymap). https://github.com/zed-industries/zed/assets/53836821/d679e734-f90b-4490-8e79-7dfe5407988a Release Notes: - N/A
Joseph T. Lyons created
2f4bb79
Reload themes defined in extensions (#7520)
This PR extends the extension directory watcher to also watch and reload themes defined in extensions. Release Notes: - N/A Co-authored-by: Max <max@zed.dev>
Marshall Bowers and Max created
31d9edf
Fix Terraform syntax highlighting (#7518)
https://github.com/zed-industries/zed/pull/7467 introduced a new `grammar` field in the language configuration files. The underlying tree-sitter grammar for Terraform should be `hcl` instead of `terraform`. This PR fixes that typo. Release Notes: - N/A
Daniel Banck created
eaadf56
Testing buf breaking (#7475)
Release Notes: - N/A
Conrad Irwin created
5ded865
[official] Linux port via Blade (#7343)
## Motivation
I :heart: Zed! It's lightning fast and has great UX. I want it to run as
well on all major platforms. I'm currently using Linux most actively.
[Blade](https://github.com/kvark/blade) is a good candidate for
providing GPU access: it supports Vulkan, Metal, and GLES/WebGL. Its
abstraction is extremely thin, while having one of the nicest GPU APIs.
Codebase is also tiny. Checkout [the meetup
recording](https://www.youtube.com/watch?v=63dnzjw4azI&t=623s) from a
year ago.
I believe these projects make a good match :rocket: !
### Why this is a bad idea
If Zed team wants to use off-the-shelf components from Rust ecosystem,
then Blade is certainly at disadvantage here, since it's not widely
used. It would rely on Zed team adding necessary features in a branch,
then maybe upstreaming some of them. That is to say, it's unclear if
this can be avoided with more popular alternatives - being flexible with
any local changes is a good ability.
### Why it's not too bad
Blade uses [WGSL](https://www.w3.org/TR/WGSL) shaders, similar to `wgpu`
and `arcana`, but without the binding decorations. So this aspect of the
product is nicely portable.
## Progress
- [ ] Platforms
- [x] X11 (via xcb)
- [ ] input handling
- [ ] get proper content size
- [ ] Windows
- [ ] Replace the existing Metal backend
- [ ] Text System
- [ ] shaping
- [ ] glyph rasterization
- [x] Texture atlas
- [ ] Rendering
- [x] basic primitives
- [x] path rendering
- [x] sprite rendering
- [ ] media surfaces
- [ ] CI
## Current status
Zed starts up but crashes on text-system related checks.

Mikayla Maki created
3a53db6
Merge branch 'main' into kvark-linux
Mikayla created
6edeea7
Add logic for managing language and theme extensions (#7467)
This PR adds the initial support for loading extensions in Zed.
### Extensions Directory
Extensions are loaded from the extensions directory.
The extensions directory has the following structure:
```
extensions/
installed/
extension-a/
grammars/
languages/
extension-b/
themes/
manifest.json
```
The `manifest.json` file is used internally by Zed to keep track of
which extensions are installed. This file should be maintained
automatically, and shouldn't require any direct interaction with it.
Extensions can provide Tree-sitter grammars, languages, and themes.
Release Notes:
- N/A
---------
Co-authored-by: Marshall <marshall@zed.dev>
Max Brunsfeld and Marshall created
ef8cab6
allow closing reply to preview with action
Co-Authored-By: Remco Smits <62463826+RemcoSmitsDev@users.noreply.github.com>
Bennet Bo Fenner and Remco Smits created
be455f7
Restore nanoid dependency
Mikayla created
f507698
Fix a few out of date warnings
Mikayla created
67555ee
Merge branch 'main' into kvark-linux
Mikayla created
6b598a0
chat: fix autocompletion for usernames with dash (#7514)
Github usernames are allowed to contain `-`, but the autocompletion was not working correctly. We added `-` as an allowed character for markdown files. We are not aware of any completions for markdown files, so this should be fine to add. Before:  After:  Release Notes: - Fixed autocompletion for usernames with dash character in the chat message editor Co-authored-by: Remco Smits <62463826+RemcoSmitsDev@users.noreply.github.com>
Bennet Bo Fenner and Remco Smits created
3734a39
Mark TODOs and prep for merging main
Mikayla created
c1ada08
docs: Update OPAM installation instructions (#7510)
Use the new installation procedures located at https://ocaml.org/install. Release Notes: - N/A
Rashid Almheiri created
07fce7a
Stop display link when window is occluded (#7511)
Release Notes: - Fixed a bug that caused the window to become unresponsive after foregrounding. --------- Co-authored-by: Conrad <conrad@zed.dev>
Antonio Scandurra and Conrad created
114889b
v0.123.x dev
Joseph T. Lyons created
83cffdd
Use collections::{HashMap, HashSet} instead of its std:: counterpart (#7502)
Kirill Bulatov created
c322179
Initialize the `SystemAppearance` using the app's global window appearance (#7508)
This PR changes our approach to initializing the `SystemAppearance` so that we can do it earlier in the startup process. Previously we were using the appearance from the window, meaning that we couldn't initialize the value until we first opened the window. Now we read the `window_appearance` from the `AppContext`. On macOS this is backed by the [`effectiveAppearance`](https://developer.apple.com/documentation/appkit/nsapplication/2967171-effectiveappearance) on the `NSApplication`. We currently still watch for changes to the appearance at the window level, as the only hook I could find in the documentation is [`viewDidChangeEffectiveAppearance`](https://developer.apple.com/documentation/appkit/nsview/2977088-viewdidchangeeffectiveappearance), which is at the `NSView` level. In my testing this makes it so Zed appropriately chooses the correct light/dark theme on startup. Release Notes: - N/A
Marshall Bowers created
b59e110
Attempt to fix random lag (#7506)
Co-Authored-By: Antonio <antonio@zed.dev> Co-Authored-By: Thorsten <thorsten@zed.dev> Co-Authored-By: Mikayla <mikayla@zed.dev> Release Notes: - N/A **or** - N/A Co-authored-by: Antonio <antonio@zed.dev> Co-authored-by: Thorsten <thorsten@zed.dev> Co-authored-by: Mikayla <mikayla@zed.dev>
Conrad Irwin , Antonio , Thorsten , and Mikayla created
42a5081
Use try_from_bytes for windows build (#7500)
Reduce windows build error. Release Notes: - N/A
白山風露 created
c7b0221
theme_importer: Read theme name from VS Code theme (#7489)
apply theme_name(fallback use "") Release Notes: - N/A
d1y created
ad3940c
text rendering: support strikethroughs (#7363)
<img width="1269" alt="image" src="https://github.com/zed-industries/zed/assets/18583882/d4c93033-b2ac-4ae0-8e12-457f256ee869"> Release Notes: - Added support for styling text with strikethrough. Related: - https://github.com/zed-industries/zed/issues/5364 - https://github.com/zed-industries/zed/pull/7345
Kieran Gill created
55129d4
Revert "Use Fx* variants of HashMap and HashSet everywhere in Zed" (#7492)
Reverts zed-industries/zed#7481 This would regress performance because we'd be using the standard library's hash maps everywhere, so reverting for now.
Antonio Scandurra created
5c8073d
Underline text if in dead key state (#7488)
This highlights dead keys. Example: when in Brazilian keyboard layout and typing `"` it's now underlined. https://github.com/zed-industries/zed/assets/1185253/a6b65f7b-1007-473d-ab0f-5d658faa191b Release Notes: - Fixed dead keys not being underlined. Co-authored-by: Antonio <antonio@zed.dev>
Thorsten Ball and Antonio created
db39b9d
Add ability to bind to pane::RevealInProjectPanel (#7487)
Previously it wasn't possible to create a keybinding for this action because it required an argument. Now the action takes the active item of the pane and if it's a multi-buffer the first one. This also adds a default keybinding for Vim mode: `-` will reveal the file in the project panel. Fixes #7485. Release Notes: - Added `pane::RevealInProjectPanel` as an action in the command palette. ([#7485](https://github.com/zed-industries/zed/issues/7485)). Co-authored-by: Antonio <antonio@zed.dev>
Thorsten Ball and Antonio created
2aa8ccd
fix: use OPEN_AI_API_URL (#7484)
Release Notes: - N/A
Todsaporn Banjerdkit created
e3ae7c4
linux: query window geometry for determining the surface extents
Dzmitry Malyshau created
eb23630
Use Fx* variants of HashMap and HashSet everywhere in Zed (#7481)
Release Notes: - N/A
Kirill Bulatov created
7939673
Jetbrains keymap - Movement between panes (#7464)
Release Notes: - Improved Jetbrains keybindings to include cmd+alt+left/right to go back and forwards between panes rather than the default previous / next pane Signed-off-by: James Gee <1285296+geemanjs@users.noreply.github.com>
James Gee created
d3562d4
Fixes for file-watching, user assets, and system dependencies (#2)
* fix: avoid panics in case of non-existing path for watching * fix: copy the themes and plugins * Revert "add a few more libraries to the linux script" This reverts commit 7509677003da3398d0df796eca9c5435a12f576e. * fix: add vulkan validation layers to the system deps * fix: fix the themes paths
Amin Yahyaabadi created
9fd2212
Go back to an alacritty release (#7474)
Release Notes: - N/A
Conrad Irwin created
3aa4e0c
Fix Vim 'e' Behavior When Boundary Is Last Point on Line (#7424)
This was originally just to fix https://github.com/zed-industries/zed/issues/4354, which I did by just returning the previous offset in `find_boundary`.. but `find_boundary` is used in the "insert mode" / normal editor too, so returning the previous boundary breaks existing functionality in that case. I was considering a new `find_boundary` function just for some of the vim motions like this, but I thought that this is straightforward enough and future Vim functions might need similar logic too. Release Notes: - Fixed https://github.com/zed-industries/zed/issues/4354
Andrew Marek created
90cd3b5
Prevent terminal being a single column wide (#7471)
Fixes: #2750 Fixes: #7457 Release Notes: - Fixed a hang/panic that could happen rendering a double-width character in a single-width terminal ([#2750](https://github.com/zed-industries/zed/issues/2750), [#7457](https://github.com/zed-industries/zed/issues/7457)).
Conrad Irwin created
1264e36
Remove Default impl for ConnectionId (#7452)
We noticed the following message in my logs when trying to debug some
lag when collaborating:
```
2024-02-06T09:42:09-08:00 [ERROR] error handling message. client_id:3, sender_id:Some(PeerId { owner_id: 327, id: 1123430 }), type:GetCompletions, error:no such connection: 0/0
```
That `0/0` looks like a bogus connection id, constructed via a derived
`Default`. We didn't ever find a code path that would *use* a default
`ConnectionId` and lead to this error, but it did seem like an
improvement to not have a `Default` for that type.
Release Notes:
- N/A
Co-authored-by: Marshall <marshall@zed.dev>
Max Brunsfeld and Marshall created
4e519e3
Make diagnostics with empty messages take up one line (#7456)
When a supporting diagnostic had an empty message, we were accidentally giving the corresponding block a height of zero lines. Release Notes: - Fixed an issue where an editors' lines were not laid out correctly when showing certain diagnostics. Co-authored-by: Marshall <marshall@zed.dev>
Max Brunsfeld and Marshall created
6c4b96e
Add the ability to reply to a message (#7170)
Feature
- [x] Allow to click on reply to go to the real message
- [x] In chat
- [x] Show only a part of the message that you reply to
- [x] In chat
- [x] In reply preview
TODO’s
- [x] Fix migration
- [x] timestamp(in filename)
- [x] remove the reference to the reply_message_id
- [x] Fix markdown cache for reply message
- [x] Fix spacing when first message is a reply to you and you want to
reply to that message.
- [x] Fetch message that you replied to
- [x] allow fetching messages that are not inside the current view
- [x] When message is deleted, we should show a text like `message
deleted` or something
- [x] Show correct GitHub username + icon after `Replied to: `
- [x] Show correct message(now it's hard-coded)
- [x] Add icon to reply + add the onClick logic
- [x] Show message that you want to reply to
- [x] Allow to click away the message that you want to reply to
- [x] Fix hard-coded GitHub user + icon after `Reply tp:`
- [x] Add tests
<img width="242" alt="Screenshot 2024-02-06 at 20 51 40"
src="https://github.com/zed-industries/zed/assets/62463826/a7a5f3e0-dee3-4d38-95db-258b169e4498">
<img width="240" alt="Screenshot 2024-02-06 at 20 52 02"
src="https://github.com/zed-industries/zed/assets/62463826/3e136de3-4135-4c07-bd43-30089b677c0a">
Release Notes:
- Added the ability to reply to a message.
- Added highlight message when you click on mention notifications or a
reply message.
---------
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
743f9b3
chore: Move workspace dependencies to workspace.dependencies (#7454)
We should prefer referring to local deps via `.workspace = true` from now on. Release Notes: - N/A
Piotr Osiewicz created
70e7ea3
chore: Fix up warnings from cargo +beta check. (#7453)
With upcoming release of 1.76 I did a check of current +beta (which seems to already be at 1.77). These would cause CI pipeline failures once 1.77 is out. Release Notes: - N/A
Piotr Osiewicz created
792c832
Improve error handling when copying a permalink fails (#7447)
This PR improves the error handling when the `editor: copy permalink to line` action fails. Right now if something goes wrong nothing happens, and we don't write anything to the logs. This PR makes it so we display a toast when the operation fails with the error message, as well as write it to the Zed logs. Release Notes: - Improved error behavior for `editor: copy permalink to line` action.
Marshall Bowers created
0b2a9d2
Remove empty message editor placeholder (#7444)
This PR removes the placeholder that we previously displayed for the chat message editor. With the changes in #7441 we can no longer hit this codepath. Release Notes: - N/A
Marshall Bowers created
960eaf6
Remove unused TerminalView.has_new_content (#7429)
Found this last week with @osiewicz and we realized that it's unused. So I think it's fine to remove it, but I want to hear whether @mikayla-maki has some thoughts here. Release Notes: - N/A
Thorsten Ball created
068c141
Fix shell environment not loading for Nushell (#7442)
Turns out that Nushell doesn't like `-lic` and `&&`, but works perfectly
fine with `-l -i -c` and `;`, which the other shells do too.
These all work:
bash -l -i -c 'echo lol; /usr/bin/env -0'
nu -l -i -c 'echo lol; /usr/bin/env -0'
zsh -l -i -c 'echo lol; /usr/bin/env -0'
fish -l -i -c 'echo lol; /usr/bin/env -0'
Release Notes:
- Fixed shell environment not being loaded if Nushell was set as
`$SHELL`.
Thorsten Ball created
33d982b
Add Elm file icon (#7440)
Tried to match the existing file icons in Zed as much as possible. This is how it looks: | dark | light | |---|----| | <img width="183" alt="Screenshot 2024-02-06 at 15 03 57" src="https://github.com/zed-industries/zed/assets/43472/bd862753-41bb-4ca6-9a44-16b9b1c9591c"> | <img width="180" alt="Screenshot 2024-02-06 at 15 03 14" src="https://github.com/zed-industries/zed/assets/43472/9df8c589-64b6-49f2-8e15-b43126579a9f"> | The main challenge is that the tangram is visually quite heavy and detailed. The existing icons in Zed are designed in a 14px bounding box, but are a bit smaller themselves. I guess the extra space is reserved for hanging elements, it probably doesn't make sense to occupy the whole area. Simply scaling down an available SVG of the tangram didn't work well. The individual shapes were not recognizable because the spacing between them was too thin. I tried removing the spacing and applying different opacities for each shape, but that didn't yield enough contrast between the shapes either. The second approach was to just use the outlines. It sort of worked, but looked a bit messy in the places when the outlines are denser than the tangram shapes: | dark | light | |---|----| | <img width="192" alt="Screenshot 2024-02-05 at 22 55 46" src="https://github.com/zed-industries/zed/assets/43472/d0029f49-675d-40ac-96d8-788a29706bad"> | <img width="195" alt="Screenshot 2024-02-05 at 22 56 05" src="https://github.com/zed-industries/zed/assets/43472/d2de922a-70ec-4bd1-9033-db9a5201e9bd"> | I then tried to remove the main outline and use the maximum space for the tangram. That let me increase the spacing between the shapes. I also rounded them a little bit, to make them look similar to other icons from Zed. The end result looks clean and the shapes are still recognisable. Approaches I tried next to an existing icon from Zed: <img width="711" alt="Screenshot 2024-02-06 at 15 15 33" src="https://github.com/zed-industries/zed/assets/43472/a3e4b0db-4b98-4072-91e8-fe71cff19adf"> Release Notes: - Added file type icon for Elm
Andrey Kuzmin created
56f7f18
Hide the chat message editor when there is no active chat (#7441)
This PR makes it so the chat message editor is hidden when not in an active chat. Release Notes: - Changed the chat message editor to be hidden when not in an active chat.
Marshall Bowers created
b2ce515
Add Prisma file icon (#7207)
Add Prisma icon from https://github.com/file-icons/icons  Release Notes: - Added Prisma icon.
Guillem Arias Fauste created