7c9f680
Request more resources for collab pods on Kubernetes (#8890)
Click to expand commit body
Worried that if we don't do this, they don't give us enough. We're
maxing out the pod's CPU but the node is barely sweating.
Release Notes:
- N/A
Nathan Sobo
created
2b8b913
Use correct worktree when getting permalink to line (#8888)
Click to expand commit body
Previously this code would call `project.visible_worktrees(cx).next`
which might not necessarily return the worktree matching the currently
open file.
What this change does is it adds `get_repo` method on `Project` that
allows us to get the `GitRepository` for the current buffer.
Release Notes:
- Fixed `open permalink to line` not working when multiple folders are
added to the project.
Co-authored-by: Mikayla <mikayla@zed.dev>
Thorsten Ball
and
Mikayla
created
d286c56
Optimize rustybuzz and ttf-parser in Dev (#8873)
Click to expand commit body
This PR improves the `draw()` time from hundreds to about 30ms, so
roughly 10x.
It makes Zed quite usable in Dev profile.
Release Notes:
- N/A
Dzmitry Malyshau
created
0b34b1d
Fix first/last item margin on scroll (#8880)
Click to expand commit body

Before:
https://github.com/zed-industries/zed/assets/5518/f7a4563a-504a-4a41-bfd4-21e9439cd02b
After:
https://github.com/zed-industries/zed/assets/5518/0ba41527-46fd-404f-8207-1b8c5cf37434
Release Notes:
- Fixed first and last item margin when scroll view has padding
Jason Lee
created
537d925
Backport `code_actions_on_format` docs and update them (#8881)
Click to expand commit body
Release Notes:
- N/A
Thorsten Ball
created
fae5e83
Fix all Picker Item cursor to use `Pointer`. (#8877)
Click to expand commit body
Before:
https://github.com/zed-industries/zed/assets/5518/84874858-7847-4fa4-b7a3-41ecc65a2f7d
After:
https://github.com/zed-industries/zed/assets/5518/d395ea96-aa26-4de1-8bfc-73cc43ee75cf
Release Notes:
- Made picker items to use `Pointer` cursor style
Jason Lee
created
6a268e9
Improve VCS Menu header top margin. (#8879)
Click to expand commit body
## Before


## After


Release Notes:
- Improve VCS Menu header top margin, and use `TextMuted` color for
matched count label.
Jason Lee
created
4b2e774
Fix license generation and Closure LSP repo link (#8876)
Click to expand commit body
Release Notes:
- N/A
Kirill Bulatov
created
e0c66b3
Fix panic in enclosing bracket ranges (#8870)
Click to expand commit body
This function was operating in the wrong co-ordinate space (c.f. #8081)
Release Notes:
- Fixed a panic on `ctrl-m` in a multibuffer
- **Allow joining a hosted project**
You can't yet do anything in a hosted project, but you can join it and
look how empty it is.
Release Notes:
- N/A
Conrad Irwin
created
4167c66
macOS: Fix center window with fixed bounds size (#8475)
Click to expand commit body
This PR fixes window showing up in the center of the monitor when
`center: true` option is provided.
The idea is to set the `window_wize` when creating the `window` using
`native_window.initWithContentRect_styleMask_backing_defer_screen_()`
Before:
<img width="851" alt="SCR-20240227-qokf"
src="https://github.com/zed-industries/zed/assets/20229808/27494966-2e97-4771-8837-ccb6658ced78">
After:
<img width="1132" alt="SCR-20240227-qlmg"
src="https://github.com/zed-industries/zed/assets/20229808/439568da-d380-4331-8d19-cd501f211c4c">
Release Notes:
- N/A
Quadri A. Adekunle
created
d223fe4
vim: Add support for `ap` and `ip` paragraph text objects (#7687)
Click to expand commit body
This PR adds support for `ap`/`ip` text objects in Vim mode and allows
users to perform paragraph-based operations.
Cases where compatibility with Neovim's behavior is checked, cases where
there are known differences in behavior with Neovim (cases where the
landing position is other than the beginning of the line), and cases
where the Neovim behavior in the test suite seems strange are separated
in the test code so that they can be identified.
Release Notes:
- Added support for `ap` and `ip` paragraph text objects in Vim mode
([#7359](https://github.com/zed-industries/zed/issues/7359)).
`z.` is similar to zz but moves the cursor to the first non-blank
character.
From the documentation:
```
z. Redraw, line [count] at center of window (default cursor line). Put cursor at first non-blank in the line.
zz Like "z.", but leave the cursor in the same column.
```
Release Notes:
- Support the `z.` vim keybinding: Center cursor in window and put
cursor at first non-blank
snorkypie
created
f53823c
Remove release channel from Zed URLs (#8863)
Click to expand commit body
Also adds a new command `cli: Register Zed Scheme` that will cause URLs
to be opened in the current zed version, and we call this implicitly if
you install the CLI
Also add some status reporting to install cli
Fixes: #8857
Release Notes:
- Added success/error reporting to `cli: Install Cli`
([#8857](https://github.com/zed-industries/zed/issues/8857)).
- Removed `zed-{preview,nightly,dev}:` url schemes (used by channel
links)
- Added `cli: Register Zed Scheme` to control which zed handles the
`zed://` scheme (defaults to the most recently installed, or
the version that you last used `cli: Install Cli` with)
This PR supplements tasks with additional environment variables; ideally
we'll be able to write a task like:
`cargo test -p $ZED_CURRENT_PACKAGE -- $ZED_CURRENT_FUNCTION`
- [x] Flesh out multibuffer interactions
- [x] Add ZED_SYMBOL detection based on tree-sitter queries
- [ ] Add release note and demo
- [x] Figure out a solution for rerun dilemma - should `task: rerun`
reevaluate contexts for tasks?
This PR introduced the following variables:
- ZED_COLUMN - current line column
- ZED_ROW - current line row
and the following, which are available for buffers with associated
files:
- ZED_WORKTREE_ROOT - absolute path to the root of the current worktree.
- ZED_FILE - absolute path to the file
- ZED_SYMBOL - currently selected symbol; should match the last symbol
shown in a symbol breadcrumb (e.g. `mod tests > fn test_task_contexts`
should be equal to ZED_SYMBOL of `test_task_contexts`). Note that this
isn't necessarily a test function or a function at all.
Also, you can use them in `cwd` field of definitions (note though that
we're using https://docs.rs/subst/latest/subst/#features for that, so
don't expect a full shell functionality to work); the syntax should
match up with your typical Unix shell.
Release Notes:
- Added task contexts, which are additional environment variables set by
Zed for task execution; task content is dependent on the state of the
editor at the time the task is spawned.
---------
Co-authored-by: Anthony <anthonyeid7@protonmail.com>
Piotr Osiewicz
and
Anthony
created
b2f18cf
Ensure followed cursors are always visible (#8849)
Click to expand commit body
Before this change they would disappear if you blurred the pane.
Release Notes:
- Fixed an issue where the followed users' cursor would disappear if you
blurred the pane.
Conrad Irwin
created
95e532c
Add option to sign in to copilot from welcome screen (#8853)
Click to expand commit body
Fixes: https://github.com/zed-industries/zed/issues/8851
https://github.com/zed-industries/zed/assets/19867440/5d391289-34e8-4abc-9337-b7e253f4e513
Release Notes:
- Added GitHub Copilot sign in on welcome screen
([#8851](https://github.com/zed-industries/zed/issues/8851)).
The project panel now both observes all the project updates and
subscribes to project events it's interested in. The observing handler
updates the list of visible entries on any notification, which looks
pretty excessive.
This PR removes the observer completely, and adds missing event handlers
to the subscription, thus removing unnecessary work.
Release Notes:
- N/A
This PR enables the
[`clippy::crate_in_macro_def`](https://rust-lang.github.io/rust-clippy/master/index.html#/crate_in_macro_def)
rule and fixes the outstanding violations.
Release Notes:
- N/A
This PR enables the
[`clippy::redundant_closure_call`](https://rust-lang.github.io/rust-clippy/master/index.html#/redundant_closure_call)
rule and fixes the outstanding violations.
Release Notes:
- N/A
This PR enables the
[`clippy::iter_overeager_cloned`](https://rust-lang.github.io/rust-clippy/master/index.html#/iter_overeager_cloned)
rule and fixes the outstanding violations.
Release Notes:
- N/A
Marshall Bowers
created
9c6a0d9
Set working directory for `project` to project path (#8837)
Click to expand commit body
This fixes #8823 by setting the current working directory we use when
launching our own `prettier` process via `node` to the project path.
Why does this fix it?
We already *did* read the correct configuration options for `prettier`
from any configuration files, we also correctly inferred which
`prettier` plugins to use, but somehow when running
./node_modules/.bin/prettier my-file.tsx
produced different results compared to `prettier` in Zed.
But we *do* pass the right options to `prettier.format` when calling it
here:
https://github.com/zed-industries/zed/blob/996f1036fcc86dc95f6402311175929ed3c00909/crates/prettier/src/prettier_server.js#L177-L190
I checked those against the `prettier --loglevel=debug` output: they're
the same.
Turns out that the difference is we launch our `prettier_server.js` (a
JavaScript shim that wraps `prettier`-the-library in a language server
interface) not in the project path.
So somewhere inside `prettier.format` something is `require`d and fails
because we're not in that project directory. But when you run
`./node_modules/.bin/prettier` you are.
With the fix here, `prettier` now correctly picks up the tailwind plugin
that didn't seem to work in #8823. It probably fixes a bunch of other
oddities that folks reported with `prettier` too.
Release Notes:
- Fixed `prettier` integration not correctly picking up `prettier`
plugins, because it didn't run in the project's root path when invoked.
([#8823](https://github.com/zed-industries/zed/issues/8823)).
Thorsten Ball
created
0976034
linux: remove todo for credential implementation (#8834)
Click to expand commit body
As commented
[here](https://github.com/zed-industries/zed/pull/8035#issuecomment-1976894590),
this is already done.
Release Notes:
- N/A
This PR enables the
[`clippy::derivable_impls`](https://rust-lang.github.io/rust-clippy/master/index.html#/derivable_impls)
rule and fixes the outstanding violations.
Release Notes:
- N/A
Marshall Bowers
created
a860530
Assign OpenAI model based on Azure OpenAI deployment ID (#8835)
Click to expand commit body
Following up on #8646, this PR makes it so we select an OpenAI model
based on the deployment ID when using Azure OpenAI.
Release Notes:
- N/A
This PR enables the
[`clippy::iter_kv_map`](https://rust-lang.github.io/rust-clippy/master/index.html#/iter_kv_map)
rule and fixes the outstanding violations.
Release Notes:
- N/A
This PR enables the
[`clippy::needless_update`](https://rust-lang.github.io/rust-clippy/master/index.html#/needless_update)
rule and fixes the outstanding violations.
Release Notes:
- N/A
Marshall Bowers
created
94593dc
clangd: download the correct binary on Linux (#8820)
Click to expand commit body
Release Notes:
- Fixed clangd LSP download not working on Linux
Thorben Kröger
created
98a1e87
task: Spawn static tasks in separate shell (#8827)
Click to expand commit body
That way one can use environment variables in task definitions.
Fixes: #8660
/cc @SomeoneToIgnore it looks like we don't ever set `separate_shell` to
false anymore, it might be worth streamlining?
Release Notes:
- Fixed static tasks not being run under a separate shell.
- Removed `separate_shell` setting from task definitions. It is now a default for tasks defined in tasks.json file.
Piotr Osiewicz
created
6121c28
Fix argument order when printing prettier debug info (#8826)
Click to expand commit body
Release Notes:
- N/A
Thorsten Ball
created
c91969d
linux/wayland: prevent possible panic (#8824)
Click to expand commit body
Prevent a panic from arising from this case:
https://github.com/zed-industries/zed/pull/8632#discussion_r1510015928
It's not really safe to dispatch any action before dropping the state
borrow, because it may need to be modified.
Rom Grk
created
5382983
Return "open in new window" as default in recent projects (#8798)
Click to expand commit body
https://github.com/zed-industries/zed/assets/5518/8bbd13a7-9144-48b0-9bc8-6651725476f8
Closes https://github.com/zed-industries/zed/issues/8651
Reworks `recent_projects::OpenRecent` action with collab projects in mind:
* keep the "open in new window" behavior for corresponding menu and command entries
* use new, "reuse current window" behavior in the recent projects picker up in the toolbar
This way, old Zed behavior is not customizable, kept as original in all main use cases — so that projects shared via remote entities: a channel and a call, are never accidentally closed, breaking the sharing.
Release Notes:
- Return "open in new window" as default in recent projects
Jason Lee
created
3a184bb
Docs: Made "Configuring Zed" a link (#8790)
Click to expand commit body
Seems like this was intended to be a link (?). Easier to click it than
find the section in the navigation.
Release Notes:
- N/A
Release Notes:
- Fixed detection of `direnv` not working in `fish` when an LSP adapter
(`gopls`, for example) tries to detect user-installed binaries. (#8633)
---------
Co-authored-by: Thorsten Ball <mrnugget@gmail.com>
This solves a major usability problem in Zed, that there's no way to
temporarily disable auto formatting without toggling the whole feature
off.
fixes https://github.com/zed-industries/zed/issues/5230
Release Notes:
- Added a new `workspace::SaveWithoutFormatting`, bound to `cmd-k s`, to
save a file without invoking the auto formatter.
Mikayla Maki
created
ff65008
linux: add credentials impl via oo7 (#8035)
Click to expand commit body
This change implements gpui's credentials API for the linux platform,
using the [`oo7`](https://lib.rs/crates/oo7) library.
We had a short discussion on Discord about where to store credentials
and landed on the two dbus APIs
[`org.freedesktop.Secrets`](https://specifications.freedesktop.org/secret-service/latest/index.html)
and
[`org.freedesktop.portal.Secrets`](https://flatpak.github.io/xdg-desktop-portal/docs/doc-org.freedesktop.portal.Secret.html).
The first one provides access to a more or less general purpose
keystore, the second provides a way of obtaining a unique masterkey
which in turn can be used for encrypting stuff and storing it to disk
(especially interesting for sandboxed apps, think flatpak/snap).
I decided to give the implementation a try with `oo7`, which uses the
portal if the app is sandboxed and the secret service otherwise. If we
do not want to use that library, we would probably have to more or less
copy its functionality anyways. I also heard rumors of eventually
changing the credentials API and I think this implementation serves as a
starting point to discuss the need for this?
With a working credentials implementation the sign in button now works
(it panicked before).
Todos:
- [x] implement keystore unlocking
- [x] try the change with oo7's tracing enabled?
- [x] test the password deletion
Release Notes:
- N/A
---------
Signed-off-by: Niklas Wimmer <mail@nwimmer.me>
Co-authored-by: Mikayla Maki <mikayla@zed.dev>
49f378e
Fix name of zstd package in Arch Linux repos (#8789)
Click to expand commit body
Fixed name of [zstd](https://archlinux.org/packages/core/x86_64/zstd/)
package in Arch Linux repos in script for installing deps, required for
building Zed on linux
Release Notes:
- N/A
feelamee
created
0717d30
Move windows up to workspace dependency (#8786)
Click to expand commit body
This way we can keep track of what we're using.
Release Notes:
- N/A
While trying to get mouse/keyboard support in for Windows I ran into a
stack overflow issue related to the pid being `-1`. Getting the proper
process ID seems to fix it.
Release Notes:
- Fixed stack overflow on Windows
Ezekiel Warren
created
a5eab29
Implement `all_font_families` for the LinuxTextSystem (#8331)
Click to expand commit body
Implemented the function to get all font family names for
`LinuxTextSystem` which was previously kept as `unimplemented`.
Release Notes:
- N/A
Change Explanation:
- We get the
[`&Database`](https://docs.rs/fontdb/0.16.1/fontdb/struct.Database.html)
struct from the
[`FontSystem`](https://docs.rs/cosmic-text/latest/cosmic_text/struct.FontSystem.html)
by using the `.db` method.
- From the `Database` struct we get the
[`FaceInfo`](https://docs.rs/fontdb/0.16.1/fontdb/struct.FaceInfo.html)
which the provides a method to get the family
names([`families`](https://docs.rs/fontdb/0.16.1/fontdb/struct.FaceInfo.html#structfield.families))
- The `families` function returns a tuple of Vec. The tuple consists of
the `String` containing the name and the
[`Language`](https://docs.rs/fontdb/0.16.1/fontdb/enum.Language.html)
struct.
*It is noted that for the `families` function, the first family is
always `English US` unless it is unavailable*
Since the empty function provided
[here](https://github.com/zed-industries/zed/blob/main/crates/gpui/src/platform/linux/text_system.rs#L75)
explicitly declares a `Vec<String>` as the return type so I am
prioritizing the `English US` font family unless advised otherwise by
the reviewer.
---------
Signed-off-by: Maharshi Basu <basumaharshi10@gmail.com>
Co-authored-by: Mikayla Maki <mikayla@zed.dev>
9095a6b
Replace todo calls with error values in linux/platform (#8531)
Click to expand commit body
We currently use a mix of unimplemented methods with empty bodies and
`todo!()` calls in linux/platform.
`todo!()`s cause crashes in runtime with accidental key presses or
clicks.
To avoid this, this PR replaces `todo!()`s in linux/platform with error
values.
This helps when working on Zed itself, testing PRs etc.
Release Notes:
- N/A
This PR enables the
[`clippy::default_constructed_unit_structs`](https://rust-lang.github.io/rust-clippy/master/index.html#/default_constructed_unit_structs)
rule and fixes the outstanding violations.
Release Notes:
- N/A
This PR enables the
[`clippy::needless_lifetimes`](https://rust-lang.github.io/rust-clippy/master/index.html#/needless_lifetimes)
rule and fixes the outstanding violations.
Release Notes:
- N/A
This PR enables the
[`clippy::explicit_counter_loop`](https://rust-lang.github.io/rust-clippy/master/index.html#/explicit_counter_loop)
rule and fixes the outstanding violations.
Release Notes:
- N/A
Fixes https://github.com/zed-industries/zed/issues/8020
This PR adds a new shortcut cmd-right, if a copilot suggestion exists.
The suggestions is accepted word by word.
It emulates the behaviour of VS Code's Github Copilot implementation.
Release Notes:
- Added ability to accept partial copilot suggestions ([8020](https://github.com/zed-industries/zed/issues/8020))