Commit Graph

24146 Commits

Author SHA1 Message Date
Nathan Sobo
ab8f8dde43 WIP 2025-01-02 07:11:15 -07:00
Nathan Sobo
41de86f87f WIP 2025-01-02 07:10:13 -07:00
Nathan Sobo
0ebd08871b WIP 2025-01-02 07:07:14 -07:00
Nathan Sobo
dbb74ca28d WIP 2025-01-02 07:06:30 -07:00
Nathan Sobo
8e987c273f WIP 2025-01-02 07:03:27 -07:00
Nathan Sobo
859da6b13a WIP 2025-01-02 06:27:50 -07:00
Nathan Sobo
54fe194f7b Fix markdown 2025-01-02 06:09:19 -07:00
Nathan Sobo
d07e1d2141 WIP 2025-01-02 05:51:20 -07:00
Nathan Sobo
c9a477350f WIP: 152 errors (but I dont trust it) 2025-01-02 05:34:26 -07:00
Nathan Sobo
c49c33bf61 WIP: Grinding through many remaining errors manually after running the script 2025-01-02 04:36:46 -07:00
Nathan Sobo
772489499c Format 2025-01-02 03:52:47 -07:00
Nathan Sobo
1d73e6646c Run the refactor script as a starting point 2025-01-02 03:45:20 -07:00
Nathan Sobo
efba1cb141 Get gpui examples compiling with new API 2025-01-02 00:48:14 -07:00
Nathan Sobo
19ac46a252 Revert example 2025-01-02 00:38:32 -07:00
Nathan Sobo
cc95b79913 Move impl block for ModelContext 2025-01-01 23:51:15 -07:00
Nathan Sobo
267df69b44 Fix privacy 2025-01-01 23:39:45 -07:00
Nathan Sobo
1de66771d6 Add a temporary view method to ModelContext 2025-01-01 23:12:02 -07:00
Nathan Sobo
d7b266ce62 Merge View into Model 2025-01-01 22:40:52 -07:00
Nathan Sobo
61aa1d8f08 Add Window::notify 2025-01-01 14:12:30 -07:00
Nathan Sobo
d4428c7c4b Restore examples so we can automate them 2025-01-01 13:10:48 -07:00
Nathan Sobo
021e8a17f6 Merge remote-tracking branch 'origin/main' into remove-window-context 2024-12-31 14:55:22 -07:00
Nathan Sobo
296fe144cb Remove WindowContext in GPUI (examples still broken) 2024-12-31 14:27:15 -07:00
Michael Sloan
6ef5d8f748 Improve fuzzy match performance and fix corner case that omits results (#22524)
* Removes `max_results` from the matcher interface as this is better
dealt with in consumers once all results are known. The current
implementation was quite inefficient as it was using binary search to
find insertion points and then doing an insert which copies the entire
suffix each time.

* There was a corner case where if the binary search found a match
candidate with the same score, it was dropped. Now fixed.

* Uses of `util::extend_sorted` when merging results from worker threads
also repeatedly uses binary search and insertion which copies the entire
suffix. A followup will remove that and its usage.

* Adds `util::truncate_to_bottom_n_sorted_by` which uses quickselect +
sort to efficiently get a sorted count limited result.

* Improves interface of Matcher::match_candidates by providing the match
positions to the build function. This allows for removal of the `Match`
trait. It also fixes a bug where the Match's own Ord wasn't being used,
which seems relevant to PathMatch for cases where scores are the same.

Release Notes:

- N/A
2024-12-31 20:56:23 +00:00
Kirill Bulatov
f912c545e7 Deduplicate edits from WorkspaceEdit LSP responses (#22512)
Closes https://github.com/zed-industries/zed/issues/21515

Release Notes:

- Fixed zls renames applying duplicate edits
2024-12-31 00:50:57 +00:00
Kirill Bulatov
ddc469ca3e Ensure zls is used for Zig as a primary language server (#22511)
Part of https://github.com/zed-industries/zed/issues/22415

I've noticed that I cannot work with any Zig projects, as there were no
"go to definition", formatting and inlay hints.

After debugging, I've discovered that `typos` was registered as a first
language server, becoming the "primary" one for Zig.
That one does not have any proper capabilities, hence all corresponding
LSP requests were no-op.

While this solution is not ideal (I wonder, how many other set-ups are
broken due to the same thing?), we'd better fix things for now this way
at least.

Release Notes:

- Fixed `zls` not working properly when `typos` extension is installed
2024-12-30 23:34:25 +00:00
Michael Sloan
e9bd4b2890 Have Zed cli output logs path to stderr (#22509)
When switching from just running the editor directly to using the CLI I
missed the logs in the terminal and started using `--foreground`. I
realized this was because there was a tiny amount of effort involved in
finding out where logs were being written to. Having the cli output it
to stderr helps make this more visible.

Seems like such a minor thing not listing in release notes.

Release Notes:

- N/A
2024-12-30 21:14:08 +00:00
Vitaly Slobodin
a119688a50 ruby: Document use_bundler configuration option (#22498)
Hello,

This PR documents the `use_bundler` configuration option that was added
in https://github.com/zed-extensions/ruby/releases/tag/v0.3.3

**What it does?**

This option allows users to run `solargraph` and `rubocop` within the
context of Bundler, which is the most commonly used scenario in the Ruby
ecosystem. Ruby LSP is not configured to run in the context of Bundler
because it is recommended not to add it to the project dependencies
(https://shopify.github.io/ruby-lsp/composed-bundle.html). However, if
this is the case, the Ruby LSP can still be configured to run in the
context of Bundler via the same configuration option.

This configuration option has the following default values:

- `rubocop` - `use_bundler` is `true`.
- `solargraph` - `use_bundler` is `true`.
- `ruby-lsp` - `use_bundler` is `false`.

Release Notes:

- N/A
2024-12-30 16:56:25 +00:00
Cole Miller
dcbff982ad Decide which panel should be active for a dock based on ordering panels (#22346)
This means that `workspace::ToggleRightDock` will open the assistant if
no right-dock panel has been manually activated, instead of the chat as
before. Also cleans up the `active_panel_index` logic a bit.

cc @nathansobo 

Release Notes:

- Make `workspace::ToggleRightDock` open the assistant panel if no
right-dock panel has yet been activated
2024-12-30 14:43:17 +00:00
Danilo Leal
ad51df7644 Improve multibuffer excerpt affordances (#22167)
Changes:
- [x] Increase expand affordance surface area
- [x] Ensure expand buttons have tooltips with keybindings
- [x] Make line numbers clickable to jump you to location (only in
multibuffers)
- [x] Hide the "Jump To File" element in not-focused excerpts

Before merging it:

- [x] Fix off-by-one header focus styles glitch

Improvements to consider for follow-up PRs:

1. Experiment with increasing the width of the clickable surface area
for line numbers
2. Don't show (or disable) the "expand excerpt" button when at the top
or bottom edge of the file
3. Once you jump to location, centralize the cursor scroll position

Release Notes:

- Improved multibuffer's "expand excerpt" affordance
- Fixed "jump to file/location" and "expand excerpt" keybinding display
- Made clicking on line numbers in multibuffers jump you to cursor
location in file

---------

Co-authored-by: Thorsten Ball <mrnugget@gmail.com>
Co-authored-by: Agus Zubiaga <hi@aguz.me>
Co-authored-by: Kirill Bulatov <kirill@zed.dev>
Co-authored-by: Agus Zubiaga <agus@zed.dev>
2024-12-30 12:23:11 +00:00
Piotr Osiewicz
3f33ca01a8 chore: Remove outline dependency from breadcrumbs (#22504)
This slashes our incremental dev times (touch editor) by 0.6s
(8.1->7.6s) due to unblocking terminal_view build sooner.

Closes #ISSUE

Release Notes:

- N/A
2024-12-30 12:08:26 +00:00
Jason Lee
5f4f3a9c87 chore: Remove duplicate lines in crates/zed/build.rs (#22500)
Release Notes:

- N/A

This may a mistake by merge in PR #21550


344284e013/crates/zed/build.rs (L8-L14)
2024-12-30 11:52:40 +00:00
Nathan Sobo
a7e5d5a298 Move more ViewContext methods to equivalent versions on ModelContext 2024-12-29 16:17:30 -07:00
Kirill Bulatov
344284e013 Invalidate tooltips when mouse leaves element's hitbox (#22488)
Closes https://github.com/zed-industries/zed/issues/21657

In case of the task rerun button tooltip from


f6dabadaf7/crates/terminal_view/src/terminal_view.rs (L1051-L1070)

, the actual button element is not styled as invisible, only its parent.
Zed won't render such element since it's parent is hidden, but will
consider it "visible" all the time its `paint` is called, spawning a
task with the delay, that will create the tooltip:


f6dabadaf7/crates/gpui/src/elements/div.rs (L1949-L1959)

When the parent is hidden, the child won't be painted anymore, and no
mouse listeners will be able to detect this fact and hide the tooltip.

Hence, check such cases separately, during `prepaint`, and invalidate
the tooltips that are not valid anymore.
We cannot use `hitbox.is_hovered(cx)` as it's not really hovered during
prepaint, so a mouse position check is used instead.

Release Notes:

- Fixed tooltips getting stuck
2024-12-29 19:37:04 +00:00
Nathan Sobo
838ebe90cd Add some formerly ViewContext methods to ModelContext (many now take a window) 2024-12-29 10:31:43 -07:00
Nathan Sobo
dcd2d85127 Add ModelContext::subscribe_in 2024-12-29 10:21:43 -07:00
Nathan Sobo
b05f723e95 Move remaining WindowContext methods to Window 2024-12-29 10:10:41 -07:00
Nathan Sobo
30ffadfe32 Move more Window methods 2024-12-29 09:43:58 -07:00
Nathan Sobo
04ffcab87d Move some more WindowContext methods to Window 2024-12-29 09:25:23 -07:00
Nathan Sobo
5a3233ebe4 Add some Window equivalent methods to methods on WindowContext 2024-12-29 09:03:38 -07:00
Jayden Seric
f6dabadaf7 Syntax highlight the JavaScript keyword using (#22479)
The ECMAScript Explicit Resource Management proposal (stage 3) that
specifies the keyword `using`:

https://github.com/tc39/proposal-explicit-resource-management

This has already been done for the TypeScript and TSX languages:

- https://github.com/zed-industries/zed/issues/14762
- https://github.com/zed-industries/zed/pull/14772

Release Notes:

- Syntax highlight the JavaScript keyword `using`
([#22479](https://github.com/zed-industries/zed/pull/22479); thanks
[jaydenseric](https://github.com/jaydenseric)).
2024-12-29 08:17:51 +00:00
Nathan Sobo
a037f71432 Compiling: Remove ViewContext completely 2024-12-29 00:36:17 -07:00
Nathan Sobo
d625a3e6ba Progress toward removing ViewContext
3 compiler errors and some todo!s
2024-12-28 23:28:36 -07:00
Michael Sloan
ca6825066f Fix SHA for zed-patches branch of livekit-rust-sdks (#22478)
Also renamed the repo to `livekit-rustk-sdks` on GitHub for clarity. The
old name will still work for old references.

See [discussion
here](https://github.com/zed-industries/zed/pull/21292#issuecomment-2529573128).
The only changes in the target repo are immaterial:

```
$ git diff 799f10133d93ba2a88642cd480d01ec4da53408c 060964da10574cd9bf06463a53bf6e0769c5c45e
diff --git a/livekit-protocol/src/livekit.rs b/livekit-protocol/src/livekit.rs
index 43f5496..19181c2 100644
--- a/livekit-protocol/src/livekit.rs
+++ b/livekit-protocol/src/livekit.rs
@@ -3837,7 +3837,7 @@ pub struct SendDataRequest {
     #[prost(string, optional, tag="5")]
     pub topic: ::core::option::Option<::prost::alloc::string::String>,
 }
-
+///
 #[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct SendDataResponse {
diff --git a/livekit-runtime/Cargo.toml b/livekit-runtime/Cargo.toml
index 4d83cdf..7051f30 100644
--- a/livekit-runtime/Cargo.toml
+++ b/livekit-runtime/Cargo.toml
@@ -7,6 +7,7 @@ edition = "2021"
 repository = "https://github.com/livekit/rust-sdks"

 [features]
+tokio = ["dep:tokio", "dep:tokio-stream"]
 async = ["dep:async-std", "dep:futures", "dep:async-io"]
 dispatcher = ["dep:futures", "dep:async-io", "dep:async-std", "dep:async-task"]
```

Release Notes:

- N/A
2024-12-29 00:18:58 +00:00
Michael Sloan
a15360bcc8 Dequalify WindowContext and ViewContext references (#22477)
Release Notes:

- N/A
2024-12-28 23:09:55 +00:00
Michael Sloan
016b5d60e1 Cleanups preparing for WindowContext refactor (#22475)
* Remove unnecessary WindowContext and ViewContext '_ lifetimes

* Removed some cases where WindowContext has a different name than `cx`.

Release Notes:

- N/A
2024-12-28 21:36:14 +00:00
Michael Sloan
9815358bdd Dequalify WindowContext and AsyncWindowContext identifiers (#22444)
This makes a WIP automated refactoring a bit easier to write

Release Notes:

- N/A
2024-12-28 21:21:32 +00:00
Kirill Bulatov
ac60dcd67a Fix Project strong reference leaks (#22470)
Closes https://github.com/zed-industries/zed/issues/21906

* After https://github.com/zed-industries/zed/pull/21238,
`TerminalPanel` and `Project` strong references were moved into
`Pane`-related closures, creating a cycle, that did not allow
registering project release and shutting down corresponding language
servers

* After https://github.com/zed-industries/zed/pull/22329, a special
`Editor` was created with a strong reference to the `Project` which
seemed to do nothing bad in general, but when a working Zed was running
a Zed Dev build, had the same issue with preventing language servers
from shutting down.

The latter is very odd, and seems quite dangerous, as any arbitrary
`Editor` with `Project` in it may do the same, yet it seems that we did
not store them before the way git panel does.

I have tried creating a test, yet seems that we need to initialize a lot
of Zed for it which I failed — all my attempts resulted in a single
language server being present in the `Project`'s statuses.

Release Notes:

- Fixed language servers not being released between project reopens
2024-12-28 17:29:15 +00:00
Kirill Bulatov
3e3a5f04a2 Small fixes after terminal split (#22468)
* removes cache access workarounds as
https://github.com/zed-industries/zed/pull/21165 is supposed to fix this
* use `WeakModel<Project>` inside `Pane` just in case 

Release Notes:

- N/A
2024-12-28 17:29:13 +00:00
Cole Miller
7903f4ea58 Fix the install-linux fix (#22466)
Follow-up fix to #22465, forgot my shell fundamentals!

Release Notes:

- N/A
2024-12-28 16:50:29 +00:00
Cole Miller
a3dec643a1 Fix script/install-linux in non-CI settings (#22465)
Closes #22456 

Release Notes:

- N/A
2024-12-28 15:59:54 +00:00