4b2e774
Fix license generation and Closure LSP repo link (#8876)
Click to expand commit body
Release Notes: - N/A
Kirill Bulatov created
4b2e774
Fix license generation and Closure LSP repo link (#8876)
Release Notes: - N/A
Kirill Bulatov created
e0c66b3
Fix panic in enclosing bracket ranges (#8870)
This function was operating in the wrong co-ordinate space (c.f. #8081) Release Notes: - Fixed a panic on `ctrl-m` in a multibuffer
Conrad Irwin created
27c5343
hosted projects (#8627)
- **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)
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)
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)).
Noritada Kobayashi created
b742db6
vim: Support keybinding `z.` (#8702)
`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)
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)
Conrad Irwin created
2201b9b
task: Add task contexts (#8675)
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)
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)
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)).
Joseph T. Lyons created
d7b5c88
Optimize project panel subscriptions (#8846)
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
Andrew Lygin created
78fa596
Enable `clippy::crate_in_macro_def` (#8845)
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
Marshall Bowers created
1dd4c1b
Enable `clippy::redundant_closure_call` (#8840)
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
Marshall Bowers created
9ea50ed
Enable `clippy::iter_overeager_cloned` (#8839)
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)
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)
As commented [here](https://github.com/zed-industries/zed/pull/8035#issuecomment-1976894590), this is already done. Release Notes: - N/A
Christian Bergschneider created
12980dd
Enable `clippy::derivable_impls` (#8836)
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)
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
Marshall Bowers created
996f103
linux: clipboard (#8822)
Linux clipboard implementation with `copypasta`. Release Notes: - Added linux clipboard support
Rom Grk created
33ef5b7
Enable `clippy::iter_kv_map` (#8832)
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
Marshall Bowers created
16be391
Enable `clippy::needless_update` (#8830)
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)
Release Notes: - Fixed clangd LSP download not working on Linux
Thorben Kröger created
98a1e87
task: Spawn static tasks in separate shell (#8827)
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)
Release Notes: - N/A
Thorsten Ball created
c91969d
linux/wayland: prevent possible panic (#8824)
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)
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)
Seems like this was intended to be a link (?). Easier to click it than find the section in the navigation. Release Notes: - N/A
Ole Herman Schumacher Elgesem created
38f106c
Add a fish-specific fix for #8633 (#8659)
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>
Stanislav Alekseev and Thorsten Ball created
20acc12
Implement 'format without save' (#8806)
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)
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>
Niklas Wimmer and Mikayla Maki created
1442fcb
Add doas support in script/linux (#8788)
Release Notes: - n/a
feelamee created
49f378e
Fix name of zstd package in Arch Linux repos (#8789)
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)
This way we can keep track of what we're using. Release Notes: - N/A
Mikayla Maki created
36d9b3d
windows: get pid with win32 api (#8785)
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)
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>
Maharshi Basu and Mikayla Maki created
6a6dbe3
linux: wayland: implement cursor style handling (#8632)
Release Notes: - Implemented cursor style changing in wayland [zed_cursor_wayland.webm](https://github.com/zed-industries/zed/assets/12579216/cbc03f85-41c1-4687-88b5-2aa5612d7129) --------- Co-authored-by: Mikayla <mikayla@zed.dev>
Joel Selvaraj and Mikayla created
37ffa86
Add libzstd to script/linux (#8780)
add a missing dependency to linux script
aryal created
9095a6b
Replace todo calls with error values in linux/platform (#8531)
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
Ömer Sinan Ağacan created
69e0474
Windows gpui platform (#8490)
First implementation of gpui platform for Windows. Release Notes: - N/A --------- Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
白山風露 and Marshall Bowers created
a88df2c
Enable `clippy::default_constructed_unit_structs` (#8778)
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
Marshall Bowers created
53630dc
Enable `clippy::needless_lifetimes` (#8777)
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
Marshall Bowers created
1fa9496
Enable `clippy::explicit_counter_loop` (#8776)
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
Marshall Bowers created
08f9c3f
Accept partial copilot suggestions (#8682)
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))
Jonathan created
56f0418
Enable `clippy::needless_option_as_deref` (#8775)
This PR enables the [`clippy::needless_option_as_deref`](https://rust-lang.github.io/rust-clippy/master/index.html#/needless_option_as_deref) rule and fixes the outstanding violations. Release Notes: - N/A
Marshall Bowers created
2964a01
Enable `clippy::identity_op` (#8773)
This PR enables the [`clippy::identity_op`](https://rust-lang.github.io/rust-clippy/master/index.html#/identity_op) rule and fixes the outstanding violations. Release Notes: - N/A
Marshall Bowers created
83f6a1e
Enable `clippy::vec_init_then_push` (#8771)
This PR enables the [`clippy::vec_init_then_push`](https://rust-lang.github.io/rust-clippy/master/index.html#/vec_init_then_push) rule and fixes the outstanding violations. Release Notes: - N/A
Marshall Bowers created
6685d3a
Enable `clippy::redundant_guards` (#8770)
This PR enables the [`clippy::redundant_guards`](https://rust-lang.github.io/rust-clippy/master/index.html#/redundant_guards) rule and fixes the outstanding violations. Release Notes: - N/A
Marshall Bowers created
bfc6485
Enable `clippy::bool_comparison` (#8769)
This PR enables the [`clippy::bool_comparison`](https://rust-lang.github.io/rust-clippy/master/index.html#/bool_comparison) rule and fixes the outstanding violations. Release Notes: - N/A
Marshall Bowers created
5fad319
Enable `clippy::expect_fun_call` (#8768)
This PR enables the [`clippy::expect_fun_call`](https://rust-lang.github.io/rust-clippy/master/index.html#/expect_fun_call) rule and fixes the outstanding violations. Release Notes: - N/A
Marshall Bowers created
fe04f69
Enable `clippy::useless_conversion` (#8767)
This PR enables the [`clippy::useless_conversion`](https://rust-lang.github.io/rust-clippy/master/index.html#/useless_conversion) rule and fixes the outstanding violations. Release Notes: - N/A
Marshall Bowers created