04e89c4
Use workspace `uuid` (#10475)
Click to expand commit body
Release Notes: - N/A
张小白 created
04e89c4
Use workspace `uuid` (#10475)
Release Notes: - N/A
张小白 created
0ab5a52
Fix overlap (#10474)
Although I liked the symmetry of the count in the middle of the arrows, it's tricky to make the buttons not occlude the count on hover, so go back to this arrangement. Release Notes: - N/A
Conrad Irwin created
cd5ddfe
chat panel: Add timestamp in tooltip to edited message (#10444)
Hovering over the `(edited)` text inside a message displays a tooltip with the timestamp of when the message was last edited:  --- Also removed the `fade_out` style for the `(edited)` text, as this was causing tooltips to fade out as well:  Instead it uses `theme().text_muted` now. Release Notes: - Hovering over an edited message now displays a tooltip revealing the timestamp of the last edit.
Bennet Bo Fenner created
0a4c348
Fix typo in README (#10471)
Fixes a typo in the README which I believe was accidentally committed yesterday in #10459 Release Notes: - N/A
Bennet Bo Fenner created
a1cbc23
task: use full task label to distinguish a terminal (#10469)
Spotted by @SomeoneToIgnore, in #10468 I've used a shortened task label, which might lead to collisions. Release Notes: - N/A
Piotr Osiewicz created
298e9c9
task: Allow Rerun action to override properties of task being reran (#10468)
For example:
```
"alt-t": [
"task::Rerun",
{ "reevaluate_context": true, "allow_concurrent_runs": true }
],
```
Overriding `allow_concurrent_runs` to `true` by itself should terminate
current instance of the task, if there's any.
This PR also fixes task deduplication in terminal panel to use expanded
label and not the id, which depends on task context. It kinda aligns
with how task rerun worked prior to #10341 . That's omitted in the
release notes though, as it's not in Preview yet.
Release Notes:
- `Task::Rerun` action can now override `allow_concurrent_runs` and
`use_new_terminal` properties of the task that is being reran.
Piotr Osiewicz created
6e1ba7e
Allow hovering over tooltips in `git blame` sidebar (#10466)
This introduces a new API on `StatefulInteractiveElement` to create a tooltip that can be hovered, scrolled inside, and clicked: `.hoverable_tooltip`. Right now we only use it in the `git blame` gutter, but the plan is to use the new hover/click/scroll behavior in #10398 to introduce new git-blame-tooltips. Release Notes: - N/A --------- Co-authored-by: Antonio <antonio@zed.dev>
Thorsten Ball and Antonio created
bc0c2e0
Extend Vim default keybindings (#10461)
This implements some of #10457. Release notes: - Added `g c c` and `g c` to Vim keybindings to toggle comments in normal and visual mode respectively. - Added `g ]` and `g [` to Vim keybindings to go to next and previous diagnostic error. - Changed `[ x` and `] x` (which select larger/smaller syntax node) in Vim mode to also work in visual mode.
Thorsten Ball created
29a5057
Add git blame error reporting with notification (#10408)
<img width="1035" alt="Screenshot 2024-04-11 at 13 13 44" src="https://github.com/zed-industries/zed/assets/13402668/cd0e96a0-41c6-4757-8840-97d15a75c511"> Release Notes: - Added a notification to show possible `git blame` errors if it fails to run. Caveats: - ~git blame now executes in foreground executor (required since the Fut is !Send)~ TODOs: - After a failed toggle, the app thinks the blame is shown. This means toggling again will do nothing instead of retrying. (Caused by editor.show_git_blame being set to true before the git blame is generated) - ~(Maybe) Trim error?~ Done --------- Co-authored-by: Thorsten Ball <mrnugget@gmail.com>
Mehmet Efe Akça and Thorsten Ball created
08786fa
Make BufferSearch less wide (#10459)
This also adds some "responsiveness" so that UI elements are hidden before everything has to be occluded Release Notes: - Improved search UI. It now works in narrower panes, and avoids scrolling the editor on open. <img width="899" alt="Screenshot 2024-04-11 at 21 33 17" src="https://github.com/zed-industries/zed/assets/94272/44b95d4f-08d6-4c40-a175-0e594402ca01"> <img width="508" alt="Screenshot 2024-04-11 at 21 33 45" src="https://github.com/zed-industries/zed/assets/94272/baf4638d-427b-43e6-ad67-13d43f0f18a2"> <img width="361" alt="Screenshot 2024-04-11 at 21 34 00" src="https://github.com/zed-industries/zed/assets/94272/ff60b561-2f77-49c0-9df7-e26227fe9225"> <img width="348" alt="Screenshot 2024-04-11 at 21 37 03" src="https://github.com/zed-industries/zed/assets/94272/a2a700a2-ce99-41bd-bf47-9b14d7082b0e">
Conrad Irwin created
f2d61f3
Add feature to display commands for vim mode (#10349)
Release Notes: - Added the current operator stack to the Vim status bar at the bottom of the editor. #4447 This commit introduces a new feature that displays the current partial command in the vim mode, similar to the behavior in Vim plugin. This helps users keep track of the commands they're entering.
Hans created
9853307
Use buffer font for search (#10455)
It's wierd to type code/regex in the UI font Release Notes: - Continue to use buffer font for search
Conrad Irwin created
27ba165
Organize Project Panel context menus (#10456)
This design polish PR brings the project panel context menu into better alignment with other editors, better follows system patterns and identifies focus shifting actions with the `…` indicator (like adding a new folder to a project, which will open a modal window.) ## Before & After: **Root level**  **Folder level**  **File level**  Note: That double divider in the after has been fixed 😅 --- Release Notes: - Improved ordering and organization of context menus in the project panel to bring them closer to those in similar applications.
Nate Butler created
32806b8
vim: Don’t allow edits in the read-only state (#10404)
Fix #8423 Release Notes: - vim: Fixed vim-surround motions editing read-only buffer (preview-only)
Hans created
3ab9700
Windows: Add missing delete key (#10422)
Add miss delete key in windows platform. Release Notes: - N/A
CharlesChen0823 created
9d96ae6
Redo linux state again (#10452)
With the recent Linux rewrite, I attempted to simplify the number of wrapper structs involved in the Linux code, following the macOS code as an example. Unfortunately, I missed a vital component: pointers to the platform state, held by platform data structures. As we hold all of the platform data structures on Linux, this PR reintroduces a wrapper around the internal state of both the platform and the window. This allows us to close and drop windows correctly. This PR also fixes a performance problem introduced by: https://github.com/zed-industries/zed/pull/10343, where each configure request would add a new frame callback quickly saturating the main thread and slowing everything down. Release Notes: - N/A
Mikayla Maki created
8d7f5ea
Extract Ocaml language support into an extension (#10450)
Release Notes: - Extracted Ocaml language support into an extension --------- Co-authored-by: Marshall <marshall@zed.dev>
Max Brunsfeld and Marshall created
f6c85b2
WIP: remoting (#10085)
Release Notes: - Added private alpha support for remote development. Please reach out to hi@zed.dev if you'd like to be part of shaping this feature.
Conrad Irwin created
ea44190
Add preview tabs (#9125)
This PR implements the preview tabs feature from VSCode. More details and thanks for the head start of the implementation here #6782. Here is what I have observed from using the vscode implementation ([x] -> already implemented): - [x] Single click on project file opens tab as preview - [x] Double click on item in project panel opens tab as permanent - [x] Double click on the tab makes it permanent - [x] Navigating away from the tab makes the tab permanent and the new tab is shown as preview (e.g. GoToReference) - [x] Existing preview tab is reused when opening a new tab - [x] Dragging tab to the same/another panel makes the tab permanent - [x] Opening a tab from the file finder makes the tab permanent - [x] Editing a preview tab will make the tab permanent - [x] Using the space key in the project panel opens the tab as preview - [x] Handle navigation history correctly (restore a preview tab as preview as well) - [x] Restore preview tabs after restarting - [x] Support opening files from file finder in preview mode (vscode: "Enable Preview From Quick Open") I need to do some more testing of the vscode implementation, there might be other behaviors/workflows which im not aware of that open an item as preview/make them permanent. Showcase: https://github.com/zed-industries/zed/assets/53836821/9be16515-c740-4905-bea1-88871112ef86 TODOs - [x] Provide `enable_preview_tabs` setting - [x] Write some tests - [x] How should we handle this in collaboration mode (have not tested the behavior so far) - [x] Keyboard driven usage (probably need workspace commands) - [x] Register `TogglePreviewTab` only when setting enabled? - [x] Render preview tabs in tab switcher as italic - [x] Render preview tabs in image viewer as italic - [x] Should this be enabled by default (it is the default behavior in VSCode)? - [x] Docs Future improvements (out of scope for now): - Support preview mode for find all references and possibly other multibuffers (VSCode: "Enable Preview From Code Navigation") Release Notes: - Added preview tabs ([#4922](https://github.com/zed-industries/zed/issues/4922)). --------- Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Bennet Bo Fenner and Conrad Irwin created
edb1ea2
Do not show image viewer for SVGs (#10435)
Absent some ability to toggle between viewing and editing a file, I think it would be best to get a fix out quick for people to edit SVGs as text files. Release Notes: - Fixed editing of SVG images by disabling it from the image viewer ([#10403](https://github.com/zed-industries/zed/issues/10403)).
Kyle Kelley created
86aa352
Remove leftover commented-out code (#10445)
This PR removes some commented-out code that was left over from #10430. Release Notes: - N/A
Marshall Bowers created
253aa28
Extract Scheme and Racket language support into extensions (#10442)
Release Notes: - Extracted Scheme and Racket language support into extensions. --------- Co-authored-by: Marshall <marshall@zed.dev>
Max Brunsfeld and Marshall created
165d6b9
task: Fix variable substitution for free variables (#10434)
Fixes regression from https://github.com/zed-industries/zed/pull/10341 where it was not possible to use non-zed environmental variables (e.g. $PATH) in task definitions. No release note, as this didn't land on Preview yet. Release Notes: - N/A
Piotr Osiewicz created
0ac3130
Remove built-in Nix support (#10439)
Release Notes: - Removed built-in Nix support, now that there is a Nix extension. Co-authored-by: Marshall <marshall@zed.dev>
Max Brunsfeld and Marshall created
176f440
Extract lua language support into an extension (#10437)
Release Notes: - Extracted lua language support into an extension, and improved Lua highlighting and completion label styling. --------- Co-authored-by: Marshall <marshall@zed.dev>
Max Brunsfeld and Marshall created
c6028f6
Fix Dart syntax highlighting issue (#8347)
Release Notes: * Improved Dart syntax highlighting ([#8151](https://github.com/zed-industries/zed/pull/8347#8151)) Before: <img width="1246" alt="Before" src="https://github.com/zed-industries/zed/assets/25414681/d9143fe8-c474-40bb-afbd-56fef16edab3"> After: <img width="1249" alt="After" src="https://github.com/zed-industries/zed/assets/25414681/4b103c35-fb24-4693-8b9e-3dd494036c9f"> (Shameless plug, since I build the theme) Theme: The Dark Side
Sai Gokula Krishnan created
c38f72d
Extract GLSL language support into an extension (#10433)
Release Notes: - Extracted GLSL language support into an extension. --------- Co-authored-by: Marshall <marshall@zed.dev> Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Max Brunsfeld , Marshall , and Marshall Bowers created
47f698d
Validate content-length of downloaded extension tar gz files (#10430)
Release Notes: - Fixed a bug where extension installation would appear to succeed even if the download did not complete due to network interruptions ([#10330](https://github.com/zed-industries/zed/issues/10330)). Co-authored-by: Marshall <marshall@zed.dev>
Max Brunsfeld and Marshall created
bcd2ca6
Extract Elm language into an extension (#10432)
Release Notes: - Extracted Elm language support into an extension Co-authored-by: Marshall <marshall@zed.dev>
Max Brunsfeld and Marshall created
78d6bee
Fix invisible chat icons (#10406)
As of #10393 some icons in the chat were invisible, looking at the icons I noticed that the viewport was actually 800x800, I scaled that down to 16x16 and now they work fine again. Also remove the `reply_arrow_left` icon because it is not used at all. Thanks to @RemcoSmitsDev for noticing. I don't have any expertise in svg's, so if something is off about the svg markup reach out to me. Release Notes: - N/A
Bennet Bo Fenner created
2d21f6d
emmet: Bump to v0.0.2 (#10426)
This PR bumps the Emmet extension to v0.0.2. This version of the Emmet extension adds Emmet support for PHP and ERB files. Release Notes: - N/A
Marshall Bowers created
837b711
Update TextField (#10415)
This PR makes some simple updates to the TextField api and update it's styling. Release Notes: - N/A
Nate Butler created
ea165e1
gpui-macros: Hide autogenerated action types/functions (#10417)
I've found it a bit annoying that autogenerated code shows up in completions when working on Zed, so I've moved them into an associated function of a struct we're "implementing" Action on. That way, neither a generated function nor a static show up in completions. Note that this change only affects Zed codebase! I'm pushing it up right after last Preview to give it some time on Nightly. Before:   After:   Release Notes: - N/A
Piotr Osiewicz created
15758c1
docs: Fix installation command via Homebrew (#10416)
When I installed zed by running `brew install zed` following
`README.md`, [brimdata/zed](https://github.com/brimdata/zed) was
installed.
By running `brew install --cask zed`, zed was installed properly.
It seems like `--cask` option is needed.
### Environments:
- OS:
- macOS 13.4
- Homebrew version:
```sh
Homebrew 4.2.17-40-gef1c54e
Homebrew/homebrew-core (git revision 0f61f2950ec; last commit
2024-04-03)
Homebrew/homebrew-cask (git revision 40c0a17ee0; last commit 2024-04-03)
```
Release Notes:
- N/A
Tatsuya Kyushima created
2f616fe
workspace: Add restore_on_startup setting that allows always opening an empty Zed instance (#10366)
Fixes #7694 The new setting accepts "last_workspace" (default) and "none" as options. In a follow-up PR I'll add a new option that re-launches all of the Zed windows and not just the last one. Release Notes: - Added `restore_on_startup` option, accepting `last_workspace` (default) and `none` options. With `none`, new Zed instances will not restore workspaces that were open last.
Piotr Osiewicz created
fef0516
markdown preview: Allow toggling checkbox by click (#10364)
Release Notes: - Added support for toggling a checkbox in markdown preview by clicking on it (cmd+click) ([#5226](https://github.com/zed-industries/zed/issues/5226)). --------- Co-authored-by: Remco Smits <62463826+RemcoSmitsDev@users.noreply.github.com>
Bennet Bo Fenner and Remco Smits created
eb6f7c1
Remove if-not-else patterns (#10402)
Joseph T. Lyons created
36a87d0
Add allow to click on the reply preview to go to the message (#10357)
Release Notes: - Added support for scrolling to the message you are replying to when clicking on the reply preview ([#10028](https://github.com/zed-industries/zed/issues/10028)). Co-authored-by: Bennet Bo Fenner <53836821+bennetbo@users.noreply.github.com>
Remco Smits and Bennet Bo Fenner created
43c115a
Use set literal notation
Joseph T. Lyons created
859c527
Allow arrow keys to be used in tab switcher (#10396)
In addition to `ctrl-tab` and `ctrl-shift-tab`, VS Code allows changing the selection in the tab switcher via the up and down arrow keys. Release Notes: - Added bindings to allow `up` and `down` arrow keys to be used while the tab switcher is open.
Joseph T. Lyons created
13c14d9
Proxy Danger requests through a proxy service (#10395)
This PR updates Danger to proxy its requests to GitHub through a proxy service. ## Motivation Currently Danger is not able to run on PRs opened from forks of Zed. This is due to GitHub Actions' security policies. Forks are not able to see any of the repository secrets, and the built-in `secrets.GITHUB_TOKEN` has its permissions [restricted](https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token) to only reads when running on forks. I asked around on the Danger repo, and some big projects (DefinitelyTyped) are working around this by using a publicly-listed (although slightly obfuscated) token: https://github.com/danger/danger-js/issues/918#issuecomment-2048629487. While this approach is _probably_ okay given the limited scope and permissions of the GitHub token, I would still prefer a solution that avoids disclosing the token at all. ## Explanation I ended up writing a small proxy service, [Danger Proxy](https://github.com/maxdeviant/danger-proxy), that can be used to provide Danger with the ability to make authenticated GitHub requests, but without disclosing the token. From the README: > Danger Proxy will: > > - Proxy all requests to `/github/*` to the GitHub API. The provided GitHub API token will be used for authentication. > - Restrict requests to the list of repositories specified in the `ALLOWED_REPOS` environment variable. > - Restrict requests to the subset of the GitHub API that Danger requires. I have an instance of this service deployed to [danger-proxy.fly.dev](https://danger-proxy.fly.dev/). Release Notes: - N/A
Marshall Bowers created
3b68665
Update resvg to fix panic (#10393)
This bumps us up a *long* way on the resvg/usvg crate, to fix a panic Release Notes: - Fixed a panic when rendering certain malformed SVGs
Conrad Irwin created
339b29e
Add open vim keymap command (#9953)
Release Notes: - Added a `vim: open default keymap` command to show the default Vim keymap ([#8593](https://github.com/zed-industries/zed/issues/8593)). Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Mehmet Efe Akça and Marshall Bowers created
d1ad967
Rework task modal (#10341)
New list (used tasks are above the separator line, sorted by the usage recency), then all language tasks, then project-local and global tasks are listed. Note that there are two test tasks (for `test_name_1` and `test_name_2` functions) that are created from the same task template: <img width="563" alt="Screenshot 2024-04-10 at 01 00 46" src="https://github.com/zed-industries/zed/assets/2690773/7455a82f-2af2-47bf-99bd-d9c5a36e64ab"> Tasks are deduplicated by labels, with the used tasks left in case of the conflict with the new tasks from the template: <img width="555" alt="Screenshot 2024-04-10 at 01 01 06" src="https://github.com/zed-industries/zed/assets/2690773/8f5a249e-abec-46ef-a991-08c6d0348648"> Regular recent tasks can be now removed too: <img width="565" alt="Screenshot 2024-04-10 at 01 00 55" src="https://github.com/zed-industries/zed/assets/2690773/0976b8fe-b5d7-4d2a-953d-1d8b1f216192"> When the caret is in the place where no function symbol could be retrieved, no cargo tests for function are listed in tasks: <img width="556" alt="image" src="https://github.com/zed-industries/zed/assets/2690773/df30feba-fe27-4645-8be9-02afc70f02da"> Part of https://github.com/zed-industries/zed/issues/10132 Reworks the task code to simplify it and enable proper task labels. * removes `trait Task`, renames `Definition` into `TaskTemplate` and use that instead of `Arc<dyn Task>` everywhere * implement more generic `TaskId` generation that depends on the `TaskContext` and `TaskTemplate` * remove `TaskId` out of the template and only create it after "resolving" the template into the `ResolvedTask`: this way, task templates, task state (`TaskContext`) and task "result" (resolved state) are clearly separated and are not mixed * implement the logic for filtering out non-related language tasks and tasks that have non-resolved Zed task variables * rework Zed template-vs-resolved-task display in modal: now all reruns and recently used tasks are resolved tasks with "fixed" context (unless configured otherwise in the task json) that are always shown, and Zed can add on top tasks with different context that are derived from the same template as the used, resolved tasks * sort the tasks list better, showing more specific and least recently used tasks higher * shows a separator between used and unused tasks, allow removing the used tasks same as the oneshot ones * remote the Oneshot task source as redundant: all oneshot tasks are now stored in the inventory's history * when reusing the tasks as query in the modal, paste the expanded task label now, show trimmed resolved label in the modal * adjusts Rust and Elixir task labels to be more descriptive and closer to bash scripts Release Notes: - Improved task modal ordering, run and deletion capabilities
Kirill Bulatov created
b0eda77
Add a few tests to cover other folder names (#10356)
Added additional tests to cover other folder names in regards to [#10193](https://github.com/zed-industries/zed/issues/10193) and [#9729](https://github.com/zed-industries/zed/issues/9729). I had a similar issue but with folder names like '2.5' and '2.5_backup'. I didn't see test coverage for those kinds of file names, so wanted to add them.  Release Notes: - N/A Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Jonathan Green and Marshall Bowers created
fd3ee5a
Use proper Workspace references when querying for tasks by name (#10383)
Closes https://github.com/zed-industries/zed/issues/10380 Release Notes: - Fixed Zed panicking when running tasks via a keybinding ([10380](https://github.com/zed-industries/zed/issues/10380))
Kirill Bulatov created
8cbdd9e
Refactor workspace notifications to use explicit `NotificationId` type (#10342)
This PR reworks the way workspace notifications are identified to use a new `NotificationId` type. A `NotificationId` is bound to a given type that is used as a unique identifier. Generally this will be a unit struct that can be used to uniquely identify this notification. A `NotificationId` can also accept an optional `ElementId` in order to distinguish between different notifications of the same type. This system avoids the issue we had previously of selecting `usize` IDs somewhat arbitrarily and running the risk of having two independent notifications collide (and thus interfere with each other). This also fixes a bug where multiple suggestion notifications for the same extension could be live at once Fixes https://github.com/zed-industries/zed/issues/10320. Release Notes: - Fixed a bug where multiple extension suggestions for the same extension could be shown at once ([#10320](https://github.com/zed-industries/zed/issues/10320)). --------- Co-authored-by: Max <max@zed.dev>
Marshall Bowers and Max created
322f68f
linux: wayland: fix cursor set_icon (#10374)
Release Notes: - Partially (Wayland implementation) Fixed [#10124](https://github.com/zed-industries/zed/issues/10124)). The recent refactor of the linux gpui implementation (https://github.com/zed-industries/zed/pull/10227) broke the wayland cursor update logic by setting the cursor icon as `None`. Fix it by setting the `cursor_icon_name`.
Joel Selvaraj created
195f9d9
haskell: Bump to v0.1.0 (#10378)
This PR bumps the Haskell extension to v0.1.0. This version of the Haskell extension brings improved labels for symbols: <img width="569" alt="Screenshot 2024-04-10 at 3 38 01 PM" src="https://github.com/zed-industries/zed/assets/1486634/759fa52f-7b85-4395-abfd-070138201162"> Release Notes: - N/A
Marshall Bowers created
3a6e0bb
gleam: Bump to v0.1.0 (#10376)
This PR bumps the Gleam extension to v0.1.0. This version of the Gleam extension brings improved completion labels: <img width="572" alt="Screenshot 2024-04-10 at 3 30 25 PM" src="https://github.com/zed-industries/zed/assets/1486634/afca4563-c520-4f01-949f-2c8095769751"> Release Notes: - N/A
Marshall Bowers created