aef299b
CI: Enable clippy on Windows (#8240)
Click to expand commit body
Release Notes: - N/A
白山風露 created
aef299b
CI: Enable clippy on Windows (#8240)
Release Notes: - N/A
白山風露 created
885ae2d
linux/x11: prioritize input in the event loop (#8253)
With this change, interaction with Zed is actually real-time and usable :rocket: :tada: The gist of it is - trying to process all of the input events before rendering anything. Release Notes: - N/A **Note**: this can be further improved in a follow-up. Currently, once the input and runnables are processed, we'd try to draw + render a frame. Presentation starts with acquiring a new frame. We currently have FIFO presentation method, so acquiring a frame is blocking on that swapchain image to become available. As the result, presentation takes around 16 ms, most of which is just busy wait. Ideally, we'd be able to process more input in this time frame, instead. **Note2**: it's a bit laggy in Debug for me, but that's just because of the extra-long `draw` times, which is unrelated to rendering (or platform support, for the matter). I'm curious how come on MacOS the `draw()` times in Debug are more modest.
Dzmitry Malyshau created
cab8b5a
Switch LSP prompts to use a non-blocking toast (#8312)
This fixes a major degradation in usability that some users ran into. Fixes https://github.com/zed-industries/zed/issues/8255 Fixes https://github.com/zed-industries/zed/issues/8229 Release Notes: - Switch from using platform prompts to toasts for LSP prompts. ([8255](https://github.com/zed-industries/zed/issues/8255), [8229](https://github.com/zed-industries/zed/issues/8229)) <img width="583" alt="Screenshot 2024-02-23 at 2 40 05 PM" src="https://github.com/zed-industries/zed/assets/2280405/1bfc027b-b7a8-4563-88b6-020e47869668"> Co-authored-by: Marshall <marshall@zed.dev>
Mikayla Maki and Marshall created
d993dd3
Add .cljc, .edn, & .bb to Clojure filename extensions (#8285)
Release Notes: - Added .cljc, .edn, & .bb to Clojure filename extensions ([#7845](https://github.com/zed-industries/zed/issues/7845)).
Wes Morgan created
351e6a5
Expose extensions API from api.zed.dev (#8307)
This avoids the need to pay for bandwidth Co-Authored-By: Marshall <marshall@zed.dev> Release Notes: - N/A Co-authored-by: Marshall <marshall@zed.dev>
Conrad Irwin and Marshall created
41949d7
Log HTTP path in http logs (#8305)
Co-Authored-By: Marshall <marshall@zed.dev> Release Notes: - N/A Co-authored-by: Marshall <marshall@zed.dev>
Conrad Irwin and Marshall created
0fbd0d6
collab: Log HTTP requests (#8297)
Co-Authored-By: Marshall <marshall@zed.dev> Release Notes: - N/A --------- Co-authored-by: Marshall <marshall@zed.dev> Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Conrad Irwin , Marshall , and Marshall Bowers created
69c7d0e
oops
Conrad Irwin created
d3a38c6
Only spawn the extensions reconciliation task in the collab service (#8301)
This PR makes it so the background task that reconciles the extensions database with the blob store only runs on the `collab` service. This avoids us having multiple of these jobs running at once. Release Notes: - N/A
Marshall Bowers created
7c514d0
Fix collab (#8298)
Co-Authored-By: Marshall <marshall@zed.dev> We broke it by deploying two servers simultaneously. Release Notes: - N/A Co-authored-by: Marshall <marshall@zed.dev>
Conrad Irwin and Marshall created
a11ebe0
Fix Flashing Hover Popover (#8238)
Release Notes: - Use an inclusive range for local range containment check to match LSP behavior & fix popover flashing while the cursor moves over the last character of a symbol. https://github.com/zed-industries/zed/assets/17223924/6c3ddc9c-04fb-4414-812f-025ede5ecaf7
ethan created
c5bb032
Fix error logging (#8295)
and some more clickhouse type mismatches, Co-Authored-By: Marshall <marshall@zed.dev> Release Notes: - N/A Co-authored-by: Marshall <marshall@zed.dev>
Conrad Irwin and Marshall created
58fd843
Disable swift for now (#8291)
It causes segfaults on load Release Notes: - Fixed a segfault opening a Swift file with the Swift extension installed.
Conrad Irwin created
008d99d
Wayland: implement key repeat (#8038)
Wayland requires the client to implement key repetition. This PR implements the functionality as it's supposed to, but I don't see the `repeat_info` event come in so the feature uses the default values (but my system is configured for a much smaller `delay` and a much faster `rate`). But this is good enough for now. https://wayland-book.com/seat/keyboard.html#key-repeat [Kooha-2024-02-20-20-42-12.webm](https://github.com/zed-industries/zed/assets/1423607/fb9fc327-efb7-43d1-9b53-1f8a3d9ba608)
Rom Grk created
3bc7cd6
Allow typing space in workspace::SendKeystrokes (#8288)
Fixes #8222 Release Notes: - N/A
Conrad Irwin created
b0872b5
Deploy the ZED_CLIENT_CHECKSUM_SEED too (#8289)
Release Notes: - N/A
Conrad Irwin created
602fd58
Fix for toggles on the Welcome page (#8159)
Release Notes: The issue is that when welcome page appears settings.json file is not created yet. So the idea of this fix is to create the file in case it is not there yet. - Fixed the toggles on the welcome screen not working if no settings file exists yet. ([#8153](https://github.com/zed-industries/zed/issues/8153)). --------- Co-authored-by: Thorsten Ball <mrnugget@gmail.com> Co-authored-by: Marshall <marshall@zed.dev>
Uladzislau Kaminski , Thorsten Ball , and Marshall created
ed3bb68
Do not display inlay hints as bold (#8283)
I think bold is the least fitting font weight for inlay hints, which should be subtle hints and not, well, bold. If someone feels strongly about this, I can revert, but only if we add the ability to change this per theme. Until then: beautiful, thin, subtle inlay hints! Release Notes: - Improved styling of inlay hints by not making them bold in the editor. 
Thorsten Ball created
522176d
Adjust Kubernetes manifests for deploying API service (#8281)
This PR adjusts our Kubernetes manifests for deploying the new API service. Release Notes: - N/A --------- Co-authored-by: Conrad <conrad@zed.dev>
Marshall Bowers and Conrad created
f19ab46
Add telemetry events backend for collab (#8220)
Send telemetry to collab not zed.dev Release Notes: - N/A --------- Co-authored-by: Marshall <marshall@zed.dev> Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Conrad Irwin , Marshall , and Marshall Bowers created
6d91224
Debounce language server reinstall attempts (#8277)
I don't think there's value in retrying 4 times as fast as possible, especially if we might hit the Github API every time to check for the newest version. That gets us in rate limit problems quickly. Release Notes: - N/A
Thorsten Ball created
351c8c9
fix vim panics (#8245)
Release Notes: - vim: Fixed a panic when using H/M/L when scrolled beyond the end of the buffer
Conrad Irwin created
c90065e
chat: add copy text entry to message menu (#8271)
As we don't have selection inside the chat right now (which might be complicated to implement, e.g. cross element selection and markdown blocks), I think its viable to support copying the whole text of a message using the message menu:  Release Notes: - Added option to copy the text of a message within the chat
Bennet Bo Fenner created
0f584cb
chore: Extract languages from `zed` crate (#8270)
- Moves languages module from `zed` into a separate crate. That way we have less of a long pole at the end of compilation. - Removes moot dependencies on editor/picker. This is totally harmless and might help in the future if we decide to decouple picker from editor. Before: ``` Number of crates that depend on 'picker' but not on 'editor': 1 Total number of crates that depend on 'picker': 13 Total number of crates that depend on 'editor': 30 ``` After: ``` Number of crates that depend on 'picker' but not on 'editor': 5 Total number of crates that depend on 'picker': 12 Total number of crates that depend on 'editor': 26 ``` The more crates depend on just picker but not editor, the better in that case. Release Notes: - N/A
Piotr Osiewicz created
7cf0696
Pick up more home dir shell env when spawning (#8273)
Release Notes: - Improved how Zed picks up shell environment when spawned.
Thorsten Ball created
576f8d3
Fix svelte injections / outline (#8194)
This PR fixes the buffer symbol search to show `js` and `ts` buffer symbols when using svelte components with `ts`. Does also seem to improve `ts` capabilities (probably because there has been a conflict of `js` and `ts` before). Unfortunately when changing the script tag from no lang attribute to `ts` one needs to update the file (input anyting) to get correct buffer symbol search. Before:  After:  Release Notes: - Fixed svelte outlines for `TS`.
Robin Pfäffle created
42ac988
Detect and possibly use user-installed `gopls` / `zls` language servers (#8188)
After a lot of back-and-forth, this is a small attempt to implement solutions (1) and (3) in https://github.com/zed-industries/zed/issues/7902. The goal is to have a minimal change that helps users get started with Zed, until we have extensions ready. Release Notes: - Added detection of user-installed `gopls` to Go language server adapter. If a user has `gopls` in `$PATH` when opening a worktree, it will be used. - Added detection of user-installed `zls` to Zig language server adapter. If a user has `zls` in `$PATH` when opening a worktree, it will be used. Example: I don't have `go` installed globally, but I do have `gopls`: ``` ~ $ which go go not found ~ $ which gopls /Users/thorstenball/code/go/bin/gopls ``` But I do have `go` in a project's directory: ``` ~/tmp/go-testing φ which go /Users/thorstenball/.local/share/mise/installs/go/1.21.5/go/bin/go ~/tmp/go-testing φ which gopls /Users/thorstenball/code/go/bin/gopls ``` With current Zed when I run `zed ~/tmp/go-testing`, I'd get the dreaded error:  But with the changes in this PR, it works: ``` [2024-02-23T11:14:42+01:00 INFO language::language_registry] starting language server "gopls", path: "/Users/thorstenball/tmp/go-testing", id: 1 [2024-02-23T11:14:42+01:00 INFO language::language_registry] found user-installed language server for Go. path: "/Users/thorstenball/code/go/bin/gopls", arguments: ["-mode=stdio"] [2024-02-23T11:14:42+01:00 INFO lsp] starting language server. binary path: "/Users/thorstenball/code/go/bin/gopls", working directory: "/Users/thorstenball/tmp/go-testing", args: ["-mode=stdio"] ``` --------- Co-authored-by: Antonio <antonio@zed.dev>
Thorsten Ball and Antonio created
65318cb
Re-enable PureScript on Linux and Windows (#8252)
Relevant PRs: - https://github.com/zed-industries/zed/pull/7543 - https://github.com/zed-industries/zed/pull/7827 Release Notes: - Fixed build issues with PureScript on Windows and Linux
postsolar created
71557f3
Adjust "recent projects" modal behavior to allow opening projects in both current and new window (#8267)
 Fixes https://github.com/zed-industries/zed/issues/7419 by changing the way "recent projects" modal confirm actions work: * `menu::Confirm` now reuses the current window when opening a recent project * `menu::SecondaryConfirm` now opens a recent project in the new window * neither confirm tries to open the current project anymore * modal's placeholder is adjusted to emphasize this behavior Release Notes: - Added a way to open recent projects in the new window
Kirill Bulatov created
a588f67
Ensure default prettier installs correctly when certain FS entries are missing (#8261)
Fixes https://github.com/zed-industries/zed/issues/7865 * bind default prettier (re)installation decision to `prettier_server.js` existence * ensure the `prettier_server.js` file is created last, after all default prettier packages installed * ensure that default prettier directory exists before installing the packages * reinstall default prettier if the `prettier_server.js` file is different from what Zed expects Release Notes: - Fixed incorrect default prettier installation process
Kirill Bulatov created
50dd38b
Linux: adjust docs for building (#8246)
Improve docs & remove `vulkan-validation-layers` from the dependencies.
Rom Grk created
caa156a
Fix a panic in the assistant panel (#8244)
Release Notes: - Fixed a panic in the assistant panel when the app is shutting down.
Conrad Irwin created
a82f485
Add settings to control gutter elements (#7665)
The current gutter was a bit too big for my taste, so I added some
settings to change which visual elements are shown, including being able
to hide the gutter completely.
This should help with the following issues: #4963, #4382, #7422
New settings:
```json5
"gutter": {
"line_numbers": true, // Whether line numbers are shown
"buttons": true // Whether the code action/folding buttons are shown
}
```
The existing `git.git_gutter` setting is also taken into account when
calculating the width of the gutter.
We could also separate the display of the code action and folding
buttons into separate settings, let me know if that is desirable.
## Screenshots:
- Everything on (`gutter.line_numbers`, `gutter.buttons`,
`git.git_gutter`):
<img width="434" alt="SCR-20240210-trfb"
src="https://github.com/zed-industries/zed/assets/17355488/bcc55311-6e1d-4c22-8c43-4f364637959b">
- Only line numbers and git gutter (`gutter.line_numbers`,
`git.git_gutter`):
<img width="406" alt="SCR-20240210-trhm"
src="https://github.com/zed-industries/zed/assets/17355488/0a0e074d-64d0-437c-851b-55560d5a6c6b">
- Only git gutter (`git.git_gutter`):
<img width="356" alt="SCR-20240210-trkb"
src="https://github.com/zed-industries/zed/assets/17355488/7ebdb38d-93a5-4e38-b008-beabf355510d">
- Only git gutter and buttons (`git.git_gutter`, `gutter.buttons`):
<img width="356" alt="SCR-20240210-txyo"
src="https://github.com/zed-industries/zed/assets/17355488/e2c92c05-cc30-43bc-9399-09ea5e376e1b">
- Nothing:
<img width="350" alt="SCR-20240210-trne"
src="https://github.com/zed-industries/zed/assets/17355488/e0cd301d-c3e0-4b31-ac69-997515928b5a">
## Release Notes:
- Added settings to control the display of gutter visual elements. `"gutter": {"line_numbers": true, "code_actions": true, "folds": true}` ([#8041](https://github.com/zed-industries/zed/issues/8041)) ([#7422](https://github.com/zed-industries/zed/issues/7422))
```
---------
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Felipe and Conrad Irwin created
0de8672
Add `SystemClock` (#8239)
This PR adds a `SystemClock` trait for abstracting away the system clock. This allows us to swap out the real system clock with a `FakeSystemClock` in the tests, thus allowing the fake passage of time. We're using this in `Telemetry` to better mock the clock for testing purposes. Release Notes: - N/A
Marshall Bowers created
cc8e3c2
Show more extensions (#8234)
This is a bandaid fix for: https://github.com/zed-industries/zed/issues/8228. Release Notes: - N/A
Joseph T. Lyons created
347f688
Support ESLint flat configs (#8109)
Not available before the new eslint language server version is released, but prepares the ground for it. ## Further reading - https://eslint.org/docs/latest/use/configure/configuration-files-new - https://github.com/microsoft/vscode-eslint?tab=readme-ov-file#settings-options Release Notes: - Added ESLint flat config support ([#7271](https://github.com/zed-industries/zed/issues/7271))
Kristján Oddsson created
a475d86
Introduce file_id on Windows (#8130)
Added a function `file_id` to get the file id on windows, which is similar to inode on unix. Release Notes: - N/A
Small White created
991c9ec
Integrate profiling into gpui (#8176)
[Profiling](https://crates.io/crates/profiling) crate allows easy integration with various profiler tools. The best thing is - annotations compile to nothing unless you request a specific feature. For example, I used this command to enable Tracy support: ```bash cargo run --features profiling/profile-with-tracy ``` At the same time I had Tracy tool open and waiting for connection. It gathered nice stats from the run:  Release Notes: - N/A
Dzmitry Malyshau created
250df70
Tidy up indicators in collab panel (#8214)
Move away from columns of icons towards the "changed" info dot we used for files. Secondary actions for chat/notes still show up (if you're lucky) on hover. Co-Authored-By: Marshall <marshall@zed.dev> Release Notes: - Improved design of collab panel --------- Co-authored-by: Marshall <marshall@zed.dev> Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Conrad Irwin , Marshall , and Marshall Bowers created
ba6b319
Add an app_menu to Storybook which enables quitting with `cmd-q` (#8166)
I really think storybook is a cool standalone app but there are some usability issues that are getting in the way of making this a fun tool to use. Currently it is not easy to gracefully exit out of storybook. In fact even trying to Ctrl-c out of storybook seems currently broken to me... So the only real way to exit out of storybook is to kill the process after a Ctrl-z. This PR attempts to make this much easier by adding a simple app_menu with a menu item called quit along with the ability to *Cmd-q* out of storybook as well... Both the menu item quit and *Cmd-q* gracefully exit storybook. There are still a bunch of issues with storybook which I plan on addressing in future PR's but this is a start and something that to me is the highest priority to make storybook more functional and easy to use moving forward. One of my longer term goals of storybook is to have it be a nice stand alone application similar to [Loungy](https://github.com/MatthiasGrandl/Loungy) which can be used as a nice tutorial application for how to develop a real world *gpui* app. For that reason I added a *assets/keymaps/storybook.json* file as well.
Michael Angerman created
bd94a0e
Wayland: implement focus events (#8170)
Implements keyboard focus in/out events. This also enables vim mode to work on wayland, which is only activated when an editor gains focus.
Rom Grk created
40bbd00
linux: fix reveal_path for files (#8162)
Fixes 'Reveal in Finder' opening files instead of showing them in the file explorer. Tested on Fedora KDE 39. Release Notes: - N/A
apricotbucket28 created
946f4a3
Wayland: avoid replacing text with empty string (#8103)
Fix an issue where the `ime_key` is sometimes an empty string, and pressing a keystroke replaces the selected text. E.g. select some text, press `Escape`: selected text is deleted.
Rom Grk created
af06063
Add checkbox to only show installed extensions (#8208)
This PR adds a checkbox to the extensions view to allow filtering to just extensions that are installed: <img width="1408" alt="Screenshot 2024-02-22 at 12 05 40 PM" src="https://github.com/zed-industries/zed/assets/1486634/b5e82941-53be-432e-bfe5-fec7fd0959c5"> Release Notes: - Added a checkbox to the extensions view to only show installed extensions.
Marshall Bowers created
5c4f3c0
Add option to either use system clipboard or vim clipboard (#7936)
Release Notes:
- vim: Added a setting to control default clipboard behaviour. `{"vim":
{"use_system_clipboard": "never"}}` disables writing to the clipboard.
`"on_yank"` writes to the system clipboard only on yank, and `"always"`
preserves the current behavior. ([#4390
](https://github.com/zed-industries/zed/issues/4390))
---------
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Mahdy M. Karam and Conrad Irwin created
c6826a6
talkers (#8158)
Release Notes: - Added an "Unmute" action for guests in calls. This lets them use the mic, but not edit projects.
Conrad Irwin created
fa2c92d
Editor: tweak label for "Go to implementation" tabs (#8201)
No release notes as this is a followup to #7890 Release Notes: - N/A
Piotr Osiewicz created
20b10fd
Add ./script/symbolicate (#8165)
This lets you get a readable backtrace from an .ips file of a crash report. Release Notes: - N/A
Conrad Irwin created
4f40d3c
Require prerelease eslint version (#8197)
Fixes https://github.com/zed-industries/zed/issues/7650 Release Notes: - Fixed eslint diagnostics not showing up due to old eslint version used
Kirill Bulatov created
b716035
Editor: support go to implementation (#7890)
Release Notes: - Added "Go to implementation" support in editor.
Leon Huston created