Commit Graph
100 Commits
Author SHA1 Message Date
Nathan Sobo f0279e672a Add Gemini models to cloud enum (#14482)
Release Notes:

- N/A
2024-07-15 12:21:58 +02:00
Nathan Sobo 77b31d1845 Allow rpc_url to be assigned on Client with test-support feature (#13430)
Also, allow proto messages to be deserialized. This is to support
translating these messages JS types in a new server implementation based
on CloudFlare durable objects.

Release Notes:

- N/A
2024-07-10 13:36:22 -06:00
Nathan Sobo 61bbb3539a Fix a stupid bug that was dropping system prompts for Claude (#13626)
Release Notes:

- Fixed a bug that was causing system prompts to be dropped for
Anthropic models.

@JosephTLyons @notpeter We probably need to hot-fix this as I'm pretty
sure this affects the regular anthropic provider in addition to just the
feature-flagged cloud stuff. Wouldn't mind confirming that first so we
can communicate around it. 😬
2024-06-27 22:08:47 -06:00
Nathan Sobo 73de99bee0 Use - instead of _ in secret name 2024-06-23 15:32:47 -06:00
Nathan Sobo 0ed1b29b01 Assign GOOGLE_AI_API_KEY from a Kubernetes secret (#13429)
Release Notes:

- N/A
2024-06-23 14:52:43 -06:00
Nathan Sobo 5b754915e4 Respect requested gemini model (#13427)
Previously, we always went to gemini-pro.

Release Notes:

- N/A
2024-06-23 14:10:31 -06:00
Nathan Sobo e2c5ce588b Fix target of proto diff on CI (#12861)
Release Notes:

- N/A
2024-06-10 15:16:23 -04:00
Nathan SoboandAntonio Scandurra 5f98b9617a Start on a database-backed prompt library (#12468)
Using the file system as a database seems like it's easy, but it's
actually a real pain. I'd like to use LMDB to store the prompts locally
so we have more control. We can always add an export option, but I want
the source of truth to be somewhere other than the file system.

So far, I have a PromptStore which is global to the application and can
be initialized on startup. Then there's a `PromptLibrary` which is
intended to be the root of a new kind of Zed window. I haven't actually
seen pixels yet, but I've sketched out the basics needed to create a new
prompt, save, etc.

Still lots to figure out but the foundations of being backed by a DB and
rendering in an independent window are in place.

/cc @iamnbutler @as-cii 

Release Notes:

- N/A

---------

Co-authored-by: Antonio Scandurra <me@as-cii.com>
2024-06-03 15:58:43 +02:00
Nathan Sobo b8d9713b4f Make prompt library icon in context panel staff-only for now (#12457)
This is still pretty raw, so I'd like to hold off on shipping it to all
users.

Release Notes:

- Hide the prompt library for non-staff until it is in a more complete
state.
2024-05-29 16:53:45 -06:00
Nathan SoboandMarshall c03600c55e Stop silently appending a system prompt for edit formatting (#12407)
We should reintroduce this as part of the prompt library.

Release Notes:

- Removed an over-eager system prompt from the assistant that was
causing misbehavior. Going forward, our intent is to always let you
observe and edit text before we send it.

---------

Co-authored-by: Marshall <marshall@zed.dev>
2024-05-28 20:31:58 -06:00
Nathan SoboandMarshall bde3056e84 Increase rate limit on LLM requests to 1000/hr (via env var) (#12396)
Release Notes:

- N/A

Co-authored-by: Marshall <marshall@zed.dev>
2024-05-28 14:20:25 -06:00
Nathan Sobo e19339bc1d Allow UI font weight to be assigned in settings (#12333)
Release Notes:

- Added the ability to configure the weight of your UI font in standard
CSS weight units from 0 to 900.
2024-05-26 23:06:58 -06:00
Nathan Sobo ea166f0b27 Add a send button to the assistant (#12171)
![CleanShot 2024-05-22 at 18 20
45@2x](https://github.com/zed-industries/zed/assets/1789/dac9fcde-9fcb-4c40-b5da-ebdc847b3962)

Include the keybinding to help people discover how to submit from the
keyboard.

I'm also shifting from the word "Conversation" to "Context".

Release Notes:

- Added a send button to the assistant panel.
2024-05-22 19:17:28 -06:00
Nathan Sobo b58bf64f0a Increase rate limits for computing embeddings (#11326)
- Also, remove the rate limit for getting cached embeddings entirely.

Release Notes:

- N/A
2024-05-02 16:36:45 -07:00
Nathan SoboandMarshall Bowers d1abbb1429 assistant2: Refine editing of previous messages (#11233)
This PR refines the UX of editing a previous message, including the
following:

- Focus the prev message body editor on double-click
- Restore previous body text on cancel
- Cancel pending completion upon submission of previous message
- Drive-by: Remove min height on composer editor

Release Notes:

- N/A

---------

Co-authored-by: Marshall Bowers <marshall@zed.dev>
2024-04-30 16:48:39 -06:00
Nathan SoboandAntonio Scandurra 39fb1d567d Incorporate ElementId as part of the Element::id trait method and expose GlobalId (#11101)
We're planning to associate "selection sources" with global element ids
to allow arbitrary UI text to be selected in GPUI. Previously, global
ids were not exposed outside the framework and we entangled management
of the element id stack with element state access. This was more
acceptable when element state was the only place we used global element
ids, but now that we're planning to use them more places, it makes sense
to deal with element identity as a first-class part of the element
system. We now ensure that the stack of element ids which forms the
current global element id is correctly managed in every phase of element
layout and paint and make the global id available to each element
method. In a subsequent PR, we'll use the global element id as part of
implementing arbitrary selection for UI text.

Release Notes:

- N/A

---------

Co-authored-by: Antonio Scandurra <me@as-cii.com>
2024-04-28 13:59:21 -06:00
Nathan Sobo 4f776f9ebe Don't make -l imply -d in bundle-mac script (#10438)
If you want a debug build, you can easily pass `-ld`.

Release Notes:

- N/A
2024-04-15 14:29:45 -06:00
Nathan SoboandPiotr Osiewicz 7abb63cfda Improve the ergonomics of creating local buffers (#10347)
This PR renames `language::Buffer::new` to `language::Buffer::local` and
simplifies its interface. Instead of taking a replica id (which should
always be 0 for the local case) and a `BufferId`, which was awkward and
verbose to construct, it simply takes text and a `cx`.

It uses the `cx` to derive a `BufferId` from the `EntityId` associated
with the `cx`, which should always be positive based on the following
analysis...

We convert the entity id to a u64 using this method on `EntityId`, which
is defined by macros in the `slotmap` crate:

```rust
    pub fn as_ffi(self) -> u64 {
        (u64::from(self.version.get()) << 32) | u64::from(self.idx)
    }
```

If you look at the type of `version` in `KeyData`, it is non-zero:

```rust
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct KeyData {
    idx: u32,
    version: NonZeroU32,
}
```

This commit also adds `Context::reserve_model` and
`Context::insert_model` to determine a model's entity ID before it is
created, which we need in order to assign a `BufferId` in the background
when loading a buffer asynchronously.

Release Notes:

- N/A

---------

Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
2024-04-10 08:32:51 -06:00
Nathan SoboandAntonio Scandurra 414058379b Switch to the system UI font on macOS (#10317)
To reference the system font, use the special ".SystemUIFont" family
name.

/cc @PixelJanitor 

Release Notes:

- Switched to the system UI  font for user interface elements on macOS.

Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2024-04-09 07:44:57 -06:00
Nathan Sobo 9b673089db Enable Claude 3 models to be used via the Zed server if "language-models" feature flag is enabled for user (#10015)
Release Notes:

- N/A
2024-03-31 15:57:57 -06:00
Nathan Sobo f56707e076 Assign OPENAI_API_KEY from a k8s secret in the collab deployment (#9703)
Merging this eagerly because it's just a configuration change, and I want to test it on staging.
2024-03-22 08:36:52 -06:00
Nathan Sobo 6d5787cfdc Hard code max token counts for supported models (#9675) 2024-03-21 20:30:33 -06:00
8ae5a3b61a Allow AI interactions to be proxied through Zed's server so you don't need an API key (#7367)
Co-authored-by: Antonio <antonio@zed.dev>

Resurrected this from some assistant work I did in Spring of 2023.
- [x] Resurrect streaming responses
- [x] Use streaming responses to enable AI via Zed's servers by default
(but preserve API key option for now)
- [x] Simplify protobuf
- [x] Proxy to OpenAI on zed.dev
- [x] Proxy to Gemini on zed.dev
- [x] Improve UX for switching between openAI and google models
- We current disallow cycling when setting a custom model, but we need a
better solution to keep OpenAI models available while testing the google
ones
- [x] Show remaining tokens correctly for Google models
- [x] Remove semantic index
- [x] Delete `ai` crate
- [x] Cloud front so we can ban abuse
- [x] Rate-limiting
- [x] Fix panic when using inline assistant
- [x] Double check the upgraded `AssistantSettings` are
backwards-compatible
- [x] Add hosted LLM interaction behind a `language-models` feature
flag.

Release Notes:

- We are temporarily removing the semantic index in order to redesign it
from scratch.

---------

Co-authored-by: Antonio <antonio@zed.dev>
Co-authored-by: Antonio Scandurra <me@as-cii.com>
Co-authored-by: Thorsten <thorsten@zed.dev>
Co-authored-by: Max <max@zed.dev>
2024-03-19 19:22:26 +01:00
Nathan Sobo 7c9f680b1b Request more resources for collab pods on Kubernetes (#8890)
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
2024-03-05 09:15:08 -07:00
Nathan Sobo 4cc4f08a53 Remove ! from todo!() in comments (#8643)
This practice makes it difficult to locate todo!s in my code when I'm
working. Let's take out the bang if we want to keep doing this.

Release Notes:

- N/A
2024-02-29 18:19:05 -07:00
Nathan Sobo 1734403aa3 Add Zig support (#6690)
This PR adds support for Zig with the official LSP (ZLS) and the
treesitter grammar listed on the
[website](https://tree-sitter.github.io/tree-sitter/). I've tested this
on a few large codebases and go to definition, completion, and hover
overlays all seem to work fine with no error logs.

![Screenshot 2024-01-24 at 20 17
18](https://github.com/zed-industries/zed/assets/11731580/be7b4f1d-878e-4e3e-839b-a5f962df7555)

The highlights are adapted from the tree sitter repository which target
neovim I think, I've fixed a handful of issues and the highlighting is
looking pretty good but need to do more testing.

Release Notes:
- Added Zig support with zls
[#5300](https://github.com/zed-industries/zed/issues/5300).
2024-01-25 22:24:37 -07:00
Nathan Sobo 9fd0938eb1 Github => GitHub (#6727)
🔥 that this is open source now.

Release Notes:

- Changed instances of "Github" in user-facing UI to CamelCase "GitHub".
2024-01-25 12:29:51 -07:00
Nathan Sobo b98c935cde Revise contributing.md (#4223)
Some adjustments to be less bold in our pairing commitments and clearer
about the process for proposing an idea.

Release Notes:

- N/A
2024-01-23 11:52:12 -07:00
Nathan Sobo 38c3590266 Revise contributing.md 2024-01-23 11:42:40 -07:00
Nathan Sobo 006bc5a1fa Minor API adjustments to make my blog post clearer (#4122)
I don't want to clutter this post with the asset source, so I made it
optional. I'm also checking in an example which helps me ensure my code
examples are valid.

Release Notes:

- N/A
2024-01-18 07:25:31 -07:00
Nathan Sobo 9e37232a13 Merge remote-tracking branch 'origin/main' into ownership-post 2024-01-18 07:01:54 -07:00
Nathan Sobo f9165938b0 More adjustments for blog post 2024-01-18 07:01:46 -07:00
Nathan Sobo bef1b83265 Add ownership post example 2024-01-17 21:19:28 -07:00
Nathan Sobo 1d3ca8eb5d Adjust APIs for simpler examples in blog post 2024-01-17 21:19:28 -07:00
Nathan Sobo d2c436dcdc fix bounds checks (#4038)
Ensure we `panic()` instead of crash on graphics memory buffer overflow

Also bump the buffer size to 32Mb from 8Mb to make this rarer (but still
possible)

Release Notes: Fixes some crahes due to lack of graphics buffer spacae
2024-01-12 15:28:19 -08:00
Nathan Sobo 00c3afd330 Add documentation to GPUI (#3980)
🍐d with @conrad @mikayla-maki on covering some of the surface area.

Release Notes:

- N/A
2024-01-09 12:10:53 -07:00
Nathan SoboandConrad 42cbd103fb Even more docs
Co-authored-by: Conrad <conrad@zed.dev>
2024-01-09 12:02:12 -07:00
Nathan SoboandConrad 458c672a72 Add more API docs
Co-Authored-By: Conrad <conrad@zed.dev>
2024-01-09 11:16:56 -07:00
59f41acb82 Add a bunch of docs
Co-Authored-By: Conrad <conrad@zed.dev>
Co-Authored-By: Mikayla <mikayla@zed.dev>
2024-01-09 11:02:57 -07:00
Nathan Sobo 3d1f522566 Fix the alignment of the assistant (#3925)
![CleanShot 2024-01-05 at 17 30
11@2x](https://github.com/zed-industries/zed/assets/1789/b70226d0-bc07-4ce3-b45d-c25aace998c2)

Release Notes:

- Fixed the alignment of the assistant headers and text
- Increased the left padding on the assistant.
2024-01-05 17:51:44 -07:00
Nathan Sobo aaada7d508 Implement From<Rgba> for Fill 2024-01-05 17:33:22 -07:00
Nathan Sobo 436a281756 Align the assistant message headers with the editable message content
Since the message headers are buttons, we need to shift them relatively to
compensate for the fact that the background is only visible when hovered.
I'm ok with the background not being aligned so long as the unhovered text is.
2024-01-05 17:23:10 -07:00
Nathan Sobo 5f8417249c Return impl IntoElement in Render and RenderOnce traits (#3839)
- Returning `IntoElement` because it's more universal than `Element` and
allows us to easily return components.
- Using `impl IntoElement` in `RenderOnce` for consistency, which
requires `Component` to allocate an `AnyElement`. We use a bump
allocated arena anyway for these, and my benchmark doesn't show an
impact.


![frame-time-histogram](https://github.com/zed-industries/zed/assets/1789/d3889cca-9ebc-4d72-aa68-34a5be3bad3c)

In this histogram, frames-0 is this PR, frames-1 is main.

Release Notes:

- N/A
2024-01-03 10:37:26 -07:00
Nathan Sobo cb6652e7bf Clippy fixes for gpui2 (#3826)
It's not quite complete, but we gotta start somewhere.
Release Notes:

- N/A
2024-01-02 11:38:25 -07:00
Nathan Sobo c636731fd9 Add some docs 2024-01-02 11:30:58 -07:00
Nathan Sobo 30624b9899 Fix anti-aliasing artifacts in GPUI 2 borders (#3818)
Previously, we changed borders to be drawn after content, so they are no
longer part of the same quads as the background. In our change, we gave
the background quad a transparent black border and the border quads
transparent black backgrounds. However, this caused the other channels
to blend toward that black color before becoming fully transparent,
causing them to become darker.

In this PR, I source the "placeholder" color by duplicating the values
for the other channels and only adjust the alpha down to zero.

Release Notes:

- N/A
2024-01-02 10:32:23 -07:00
Nathan Sobo 68e7d99219 Return impl IntoElement from RenderOnce::render
This makes it a bit more approachable to implement.

This required converting the state of Component to AnyElement, which
costs an allocation. I'm hoping this will be ok performance-wise now
that AnyElements use bump allocation, but I need to benchmark still.
2024-01-02 10:27:09 -07:00
Nathan Sobo 1b5c8b2b4a Return impl IntoElement from Render::render trait 2024-01-02 10:09:05 -07:00
Nathan Sobo 6b14f2fd08 Rename build_view to new_view and build_model to new_model (#3823)
The word "new" is shorter and blends in with `new` constructors that are
common in Rust. Been meaning to do this for a while.

Release Notes:

- N/A
2024-01-02 08:11:53 -07:00
Nathan Sobo 47071605a1 Merge remote-tracking branch 'origin/main' into new-view-new-model-rename 2024-01-01 17:42:12 -07:00
Nathan Sobo db1cf8f6e1 Rename build_view to new_view and build_model to new_model
The word "new" is shorter and blends in with `new` constructors that are common
in Rust. Been meaning to do this for a while.
2024-01-01 17:42:01 -07:00
Nathan Sobo 789db30c42 Clean up Element API and start on docs (#3821)
Getting some scaffold docs in place and making some naming adjustments
to improve consistency with Rust APIs and clarity.

- Render::Element -> Render::Output, and Render::Output is now only
required to be IntoElement instead of Element so we can return
components.
- RenderOnce::Element -> RenderOnce::Output
- Element::layout -> Render::request_layout - Clarify that this doesn't
actually *perform* layout, but simply requests

Release Notes:

- N/A
2024-01-01 17:41:12 -07:00
Nathan Sobo f836873764 Fix merge 2024-01-01 12:23:42 -07:00
Nathan Sobo bcf0e3fb05 Merge branch 'pre-merge' into clean-up-doc-elements 2024-01-01 12:21:33 -07:00
Nathan Sobo 81b03d379e Rearrange to hopefully make merging easier 2024-01-01 12:21:17 -07:00
Nathan Sobo c6ae885c5d Add more docs 2024-01-01 11:35:40 -07:00
Nathan Sobo 51d1d92d66 Attempt to return impl Element from render. 3 errors. 2024-01-01 14:23:02 +01:00
Nathan Sobo 83923fd6d5 Clean up Element API and start on docs 2023-12-31 08:33:40 -07:00
Nathan Sobo 21f0409e3b Fix anti-aliasing artifacts in borders
Previously, we changed borders to be drawn after content, so they are no longer
part of the same quads as the background. In our change, we gave the background
quad a transparent black border and the border quads transparent black
backgrounds. However, this caused the other channels to blend toward that black
color before becoming fully transparent, causing them to become darker.

In this PR, I source the "placeholder" color by duplicating the values for
the other channels and only adjust the alpha down to zero.
2023-12-29 08:49:01 -07:00
Nathan Sobo 4e9fb26102 Adjust terminal and popover colors to better match original styling (#3816)
This may have made something else worse, but overall brings us more into
harmony.

Release Notes:

- N/A
2023-12-29 08:44:26 -07:00
Nathan Sobo 02f7e681a7 Import elevated surface color from hover popover 2023-12-27 11:58:26 -07:00
Nathan Sobo a2b0f14dc1 Rename size to dimensions for consistency 2023-12-27 11:23:12 -07:00
Nathan Sobo ddd6f0806b Render cursor text with the terminal's background color 2023-12-27 11:08:43 -07:00
Nathan Sobo 5cfd4b06b9 Use correct terminal background color 2023-12-27 10:46:25 -07:00
Nathan Sobo e5ce5e8692 Clear pending keystrokes when an action is dispatched (#3750)
This prevents the `cmd-k` keystroke, which clears the terminal, from
staying around as a pending keystroke on the parent workspace.

Release Notes:

- N/A
2023-12-20 20:50:59 -07:00
Nathan Sobo 4680aad885 Correctly compute placeholder text for buffer search query editor (#3749)
Rather than relying on the focused element, instead explicitly pass the
focus handle for the query editor when determining the prev/next
bindings. Only compute these values once.

Release Notes:

- N/A
2023-12-20 20:48:31 -07:00
Nathan Sobo 5747c9b7a1 Clear pending keystrokes when an action is dispatched 2023-12-20 20:41:36 -07:00
Nathan Sobo c56e7cd124 Remove unused import 2023-12-20 19:53:57 -07:00
Nathan Sobo 4f6bef5b63 Improve interaction between clicking and dragging (#3737)
Once a drag starts, we won't fire click listeners or style any elements
as active.

- Don't fire click listeners or show active state once a drag is in
progress
- Don't show hover style when a drag is in progress
- Draw borders above content
- If borders are opaque, apply them to the content mask. This prevents
hovers from firing on content underneath the border, which was creating
issues where the drag handle was inside the border, so we'd flicker the
hover when the mouse moved out of the drag handle and into the 1px
border on the left dock.
- Add a `block_mouse` helper which causes transparent elements to paint
an "opaque" layer to prevent mouse events from falling through. We use
this for the drag handle as well to disable hover, click, etc on items
in the panel.

Release Notes:

- N/A
2023-12-20 19:31:06 -07:00
Nathan Sobo 87ae21feb3 Merge remote-tracking branch 'origin/main' into cancel-clicks-on-drag 2023-12-20 15:01:10 -07:00
Nathan Sobo d499cccebb Only compute placeholder text once 2023-12-20 14:47:56 -07:00
Nathan Sobo 9acb5825e6 Compute the query editor placeholder text with a focus handle
So we're not beholden to the current focus.
2023-12-20 13:00:52 -07:00
15f16f08d9 Move application of content mask and z-index into Interactivity::paint
This allows the content mask to correctly apply to bounds used in event handlers,
which prevents content under opaque borders from being hovered in overflow hidden
containers.

Co-Authored-By: Antonio <antonio@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-12-20 11:43:45 -07:00
fffb30ac6d Add InteractiveElement::block_mouse which renders an "opaque" layer
Co-Authored-By: Antonio <antonio@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-12-20 11:02:47 -07:00
Nathan SoboandAntonio dc047437c6 Don't consider any element hovered when actively dragging
Co-Authored-By: Antonio <antonio@zed.dev>
2023-12-20 10:46:36 -07:00
Nathan SoboandAntonio 5b29c89e1c Clear pending click state when dragging
Once a drag starts, we won't fire click listeners or style any elements
as active.

Co-Authored-By: Antonio <antonio@zed.dev>
2023-12-20 08:55:18 -07:00
Nathan SoboandAntonio 12bb13b9fc Perform a bounds check when allocating in the arena
This ensures we don't invoke undefined behavior when overflowing.

Co-Authored-By: Antonio <antonio@zed.dev>
2023-12-20 08:20:00 -07:00
Nathan Sobo d058515b81 Use a different frame arena for each window (#3696)
This fixes a panic that was caused by sharing the same frame allocator
for different windows.

Release Notes:

- N/A
2023-12-18 11:49:59 -07:00
Nathan Sobo 3781626379 Merge branch 'main' into arena 2023-12-15 13:22:19 -07:00
Nathan Sobo ad8165ae79 Rename draw2 -> draw_and_update_state 2023-12-14 17:20:27 -07:00
Nathan Sobo f4a954db4f Merge remote-tracking branch 'origin/main' into perf-2 2023-12-14 17:15:44 -07:00
Nathan Sobo 02606d1fb9 Merge remote-tracking branch 'origin/main' into perf-2 2023-12-14 16:56:36 -07:00
Nathan Sobo d13a21c238 Don't move in paint 2023-12-14 15:15:18 -07:00
Nathan Sobo fb3382bcc5 Merge remote-tracking branch 'origin/main' into perf-2 2023-12-14 14:16:59 -07:00
Nathan Sobo 0dd6c50a20 Use FxHashMap for element state 2023-12-14 14:06:19 -07:00
Nathan Sobo 3d1dae9a06 Make z_indices bigger in StackingOrder 2023-12-14 11:37:48 -07:00
Nathan Sobo 0d30b698a4 Don't allocate interactive bounds 2023-12-14 11:28:52 -07:00
Nathan Sobo 1ae25f52a1 WIP 2023-12-14 10:31:45 -07:00
Nathan Sobo 6f17cf7337 WIP 2023-12-14 09:25:14 -07:00
Nathan Sobo c863227dc2 Log frame timings 2023-12-13 18:44:21 -07:00
Nathan Sobo 1e4a7e6ef1 Don't notify when drawing 2023-12-13 16:05:34 -07:00
Nathan Sobo 213ed2028c Get more of chat panel compiling, but lots of todos 2023-12-08 12:31:07 -08:00
Nathan Sobo d7473ad6e7 Document geometry module and replace zero method with default (#3515)
Nothing earth-shattering here, but all our geometry types are now fully
documented.

Release Notes:

- N/A
2023-12-06 12:52:41 -07:00
Nathan Sobo ac07e230fa Document geometry 2023-12-06 12:28:44 -07:00
Nathan Sobo d2fe9f8f9b Merge remote-tracking branch 'origin/main' into app-menus 2023-12-05 16:54:38 -07:00
Nathan Sobo c9dd6b879c Fix cmd-n in the project panel context menu and bind global workspace actions (#3491)
This PR binds the `workspace::NewFile` action only in the `Workspace`
context. It previously was bound globally, which caused us to hijack the
`cmd-n` binding when the context menu was visible in the project panel.
In the process, we also added some other global workspace actions and
move some other global bindings to be bound only on `Pane` and
`Workspace`.

Release Notes:

- N/A
2023-12-05 16:52:39 -07:00
Nathan SoboandMarshall 65bb05af4c Merge main
Co-Authored-By: Marshall <marshall@zed.dev>
2023-12-05 16:47:13 -07:00
Nathan SoboandMarshall 82534b6612 Get app menus basically working
- Everything is still disabled when there is no active window.

Co-Authored-By: Marshall <marshall@zed.dev>
2023-12-05 16:37:01 -07:00
79567d1c87 Add AppContext::dispatch_action and use it for app menu actions
Co-Authored-By: Marshall <marshall@zed.dev>
Co-Authored-By: Julia <julia@zed.dev>
2023-12-05 15:49:06 -07:00
Nathan Sobo 631e264e3c Start on app menus 2023-12-05 13:17:59 -07:00