Nathan Sobo
d896d89842
Store an AnyWindowHandle in WindowContext
2023-08-08 11:08:37 -06:00
Nathan Sobo
d687c3d81f
Merge remote-tracking branch 'origin/main' into window-handles
2023-08-07 22:07:20 -06:00
Nathan Sobo
0197d49230
Move activation simulation to AnyWindowHandle
2023-08-07 19:45:43 -06:00
Nathan Sobo
486f5bc6ca
Get compiling
2023-08-07 19:08:58 -06:00
Nathan Sobo
3e0d0e5c01
WIP
2023-08-07 13:54:47 -06:00
Nathan Sobo
d4d32611fe
WIP
2023-08-06 18:57:02 -06:00
Nathan Sobo
adc50469ff
WIP
2023-08-06 12:45:31 -06:00
Nathan Sobo
dcf8b00656
WIP
2023-08-05 18:00:44 -06:00
Nathan Sobo
379652f074
Merge branch 'main' into cells
2023-08-03 19:33:04 -06:00
Nathan Sobo
2d96388be3
Use WindowHandles in a couple places
2023-08-03 17:46:34 -06:00
Nathan Sobo
485c0a482e
Don't refcount window handles
2023-08-03 17:11:47 -06:00
Nathan Sobo
afcc0d621b
WIP
2023-08-03 17:03:39 -06:00
Nathan Sobo
3c938a7377
WIP
2023-08-03 08:10:16 -06:00
Nathan Sobo
8e36da1382
Get tests passing
2023-08-02 15:02:55 -06:00
Nathan Sobo
884cee6dfd
Get tests compiling returning WindowHandle<V: View> from add_window
2023-08-02 14:05:03 -06:00
Nathan Sobo
60e190e500
WIP
2023-08-02 12:08:56 -06:00
Nathan Sobo
300ce61bd0
WIP
2023-08-02 08:25:40 -06:00
Nathan Sobo
b695c42e11
WIP: Return WindowHandle<V: View> from AppContext::add_window
2023-08-01 22:28:04 -06:00
Nathan Sobo
1dfde8eab5
WIP
2023-08-01 20:53:15 -06:00
Kirill Bulatov
646dabe113
Add buffer search history
2023-08-01 01:31:28 +03:00
Nathan Sobo
480401d65d
WIP
2023-07-27 18:23:23 -06:00
Nathan Sobo
ab8906551d
WIP
2023-07-26 22:37:59 -06:00
Nathan Sobo
0374bc66ce
WIP
2023-07-26 12:54:23 -06:00
Nathan Sobo
1b03c5d69c
Pass PaintContext to Element::paint
...
I want to use this on another branch, but it's a sweeping change,
so this prepares the ground for it. This can always be reverted if
it doesn't work out.
2023-07-25 17:32:31 -06:00
Kirill Bulatov
a5e63fbf77
Properly display keybindings in context menus
2023-07-20 12:18:04 +03:00
Kirill Bulatov
eaa8224076
Use id instead of type_id for actions
...
Currently, both are the same thing, so the logic is not changed.
2023-07-17 12:24:56 +03:00
Nate Butler
76873c508a
Z-2276/Z-2275: Project & Branch switchers ( #2662 )
...
This PR adds project and branch switchers in top left corner.
Release Notes:
- Added a project & branch switcher under project name.
2023-07-05 13:09:40 -04:00
Piotr Osiewicz
85add260f6
Track regions instead of clicks.
...
Get rid of superfluous params in RenderParams related to hover & click state.
Co-authored-by: Antonio <antonio@zed.dev>
2023-07-05 16:48:52 +02:00
Antonio Scandurra
25564ea058
Introduce a WindowContext::focus
method that implies the window id
2023-07-05 09:39:04 +02:00
Nathan Sobo
8f8a99d788
Bind cmd-? to assistant::toggle_focus
...
Bypass system help menu shortcut at the app delegate level to achieve this.
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-28 11:43:24 +02:00
Piotr Osiewicz
2a3c660d1f
settings: accept trailing commas ( #2606 )
...
Z-2357
I've found a crate that handles both comments and trailing commas in
JSON. It is a fork of `serde_json`, but it is maintained & up-to-date.
Sadly RawValue seems to not play nicely with it; I've ran into
deserialisation issues around use of RawValue. For this PR I've migrated
to `Value` API.
Obviously this is just a point of discussion, not something I'd merge
straight away. There may be better solutions to this particular problem.
I've also noticed that `serde_json_lenient` does not handle trailing
commas after bindings array. I'm not sure how big of an issue that is.
Release Notes:
- Improved handling of trailing commas in settings files.
[#1322 ](https://github.com/zed-industries/community/issues/1322 )
2023-06-19 18:29:03 +02:00
Joseph Lyons
7c60f636d5
Fix typos
2023-06-02 22:02:19 -04:00
Max Brunsfeld
66b3be8687
Make toggle dock actions appear in the command palette
2023-05-24 09:58:41 -07:00
Antonio Scandurra
4aa2858b2b
Transfer focus to root view only if previously-focused view was dropped
2023-05-22 18:05:08 +02:00
Antonio Scandurra
146809eef0
Merge branch 'main' into panels
2023-05-22 14:10:17 +02:00
Antonio Scandurra
747fbfadeb
Notify old/new ancestors of the focused view when they change
2023-05-17 17:12:12 +02:00
Antonio Scandurra
981129ef8e
Show a panel/pane as zoomed only if it's the active item in workspace
2023-05-17 15:06:58 +02:00
Antonio Scandurra
f87ae6032e
Don't rely on action propagation for zooming in and out
...
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-05-16 10:34:50 -06:00
Nathan Sobo
ba50b35de6
wip
2023-05-13 14:34:09 -06:00
Max Brunsfeld
cee7edabf9
Ensure the SettingsStore global is added in tests
2023-05-10 16:39:59 -07:00
Antonio Scandurra
9b9d53fcf8
Focus the root view if the previously-focused view isn't rendered
2023-05-10 15:40:46 +02:00
Mikayla Maki
8d561d6408
Make dock not eagerly steal focus from sub items
2023-05-09 12:00:09 -07:00
Antonio Scandurra
080a1f00a3
Delay focus_in
event for window activation till after layout
2023-05-05 10:47:42 +02:00
Antonio Scandurra
b9ed327b94
Replace usages of is_parent_view_focused
with is_self_focused
...
Previously, this was used because we didn't have access to the current
view and `EventContext` was an element-only abstraction. Now that the
`EventContext` wraps the current view's `ViewContext` we can simply check
for the view's focus and avoid querying ancestors.
2023-05-05 10:08:22 +02:00
Antonio Scandurra
80ad59a620
Make focusing the parent an effect to avoid querying ancestors
2023-05-05 10:04:54 +02:00
Antonio Scandurra
da19edc3e3
Merge branch 'main' into implicit-ancestry
2023-05-04 14:39:58 +02:00
Antonio Scandurra
5cc6304fa6
Verify keystrokes can be queried while views are on the stack
2023-05-04 12:09:32 +02:00
Antonio Scandurra
3d679ddb26
Avoid re-allocating KeymapContext
after every view notification
2023-05-04 12:04:30 +02:00
Antonio Scandurra
18e39ef2fa
Cache view's type id and keymap context into a separate map
...
During `layout`, we now pass a mutable reference to the element's
parent view. This is a recursive process that causes the view to
be removed from `AppContext` and then re-inserted back into it once
the layout is complete.
As such, querying parent views during `layout` does not work as such
views will have been removed from `AppContext` and not yet re-inserted
into it. This caused a bug in `KeystrokeLabel`, which used the `keystrokes_for_action`
method to query its ancestors to determine their type id and keymap context.
Now, any time a view notifies, we will cache its keymap context so that
we don't need to query the parent view during `layout`.
2023-05-04 10:47:56 +02:00
Antonio Scandurra
f6f18be9c3
Remove WindowContext::is_child_focused
2023-05-04 09:53:35 +02:00
Antonio Scandurra
92183e0d72
Ensure querying keystrokes or actions is safe
...
This is achieved by moving `available_actions` into `AsyncAppContext` (where
we know no view/window is on the stack) and `keystrokes_for_action` into `LayoutContext`
where we'll fetch the previous frame's ancestors and notify the current view if those
change after we perform a layout.
2023-05-04 09:53:31 +02:00
Antonio Scandurra
040cc4d4c3
Allow notifying views when the ancestry of another view is outdated
2023-05-03 19:25:00 +02:00
Antonio Scandurra
9e8f852afb
Remove ViewContext::is_child
2023-05-03 19:09:07 +02:00
Antonio Scandurra
e9ed40da37
Remove the ability to retrieve the view's parent
2023-05-03 16:52:55 +02:00
Antonio Scandurra
7f137ed3dd
Compute view ancestry at layout time
2023-05-03 16:36:14 +02:00
Antonio Scandurra
7f345f8bf5
Separate Window::build_scene
into layout
and paint
2023-05-03 12:18:16 +02:00
Antonio Scandurra
70f8cf4cf6
Move methods querying window state into AsyncAppContext
2023-05-02 19:38:48 +02:00
Antonio Scandurra
794446bf8b
Move debug_elements
to AsyncAppContext
...
Previously, `debug_elements` was available on `WindowContext`. If that
method was called while having a borrow out to a view, it would panic because
the view would already have been borrowed.
By moving it to an `AsyncAppContext` we ensure the method can't be called while
a view is being used.
2023-05-02 11:09:40 +02:00
Antonio Scandurra
6c931ab9da
Inline test-only AppContext
methods
2023-05-01 16:49:17 +02:00
Antonio Scandurra
eb2cce98a7
Move dispatch_action_any_action_at
to AsyncAppContext
2023-05-01 16:40:57 +02:00
Antonio Scandurra
c4472b0786
Remove ViewContext::dispatch_action
2023-05-01 16:27:36 +02:00
Antonio Scandurra
d815fc88ae
Remove ViewContext::dispatch_any_action
2023-05-01 14:24:00 +02:00
Antonio Scandurra
029538fe21
Make dispatch_global_action
private
2023-05-01 11:45:35 +02:00
Antonio Scandurra
6317e885c7
Don't allow strong view handles to be read/updated with an AsyncAppContext
...
This avoids an invitation to hold strong view handles across async await
points, which is a common source of leaks.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-04-26 13:36:13 +02:00
Antonio Scandurra
689e878bd8
Use a WeakViewHandle
in Client
for view message handlers
2023-04-26 12:21:02 +02:00
Antonio Scandurra
57beec6071
Allow direct read/update of WeakViewHandle
only in AsyncAppContext
2023-04-26 12:20:57 +02:00
Antonio Scandurra
94c2eaad23
Replace ViewContext::spawn
with ViewContext::spawn_weak
2023-04-26 10:23:27 +02:00
Antonio Scandurra
c165fb9be5
Remove ReadView
and UpdateView
traits
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-04-24 17:36:14 +02:00
Antonio Scandurra
a6115d9330
Remove UpdateModel
trait
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-04-24 16:52:09 +02:00
Antonio Scandurra
a9417f3d2e
Remove ReadModelWith
trait
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-04-24 16:44:54 +02:00
Antonio Scandurra
5f500d34b2
Remove UpgradeModelHandle
trait
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-04-24 16:40:30 +02:00
Antonio Scandurra
b8fab6fde9
Remove UpgradeViewHandle
trait
...
Co-authored-by: Nathan Sobo <nathan@zed.dev>
2023-04-24 16:33:27 +02:00
Nathan Sobo
83bf3d071d
WIP
2023-04-21 15:36:52 -06:00
Nathan Sobo
55db28e074
Eliminate ReadModel trait
2023-04-21 15:05:19 -06:00
Nathan Sobo
5dac95c47c
Eliminate ReadView trait
2023-04-21 15:03:57 -06:00
Nathan Sobo
993dbf86cb
Merge remote-tracking branch 'origin/main' into into-element
2023-04-21 14:27:25 -06:00
Nathan Sobo
fe492eacbf
Refine naming of element-related types and traits
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-04-21 13:06:37 -06:00
Antonio Scandurra
03619dfa55
Rename Drawable::boxed to into_element and make containers generic
...
Multi-element are now generic over any drawable child, which can be converted
into an element.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-04-21 12:43:19 -06:00
Antonio Scandurra
4ac894ffbe
Remove unnecessary lifetime parameter from WindowContext
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-04-21 18:06:53 +02:00
Antonio Scandurra
a860a6cd62
Make App::notify_view
private
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-04-21 16:50:57 +02:00
Antonio Scandurra
8c7f821d14
Introduce a new WindowContext::remove_window
API
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-04-21 16:39:53 +02:00
Antonio Scandurra
31e906d068
Avoid double borrow of views on up
and up_out
in DragAndDrop
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-04-21 16:19:51 +02:00
Antonio Scandurra
0d5eea8169
Track active window id in test platform
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-04-20 17:22:11 +02:00
Antonio Scandurra
d9bb37c649
Add WindowContext::update_default_global
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-04-20 17:13:13 +02:00
Antonio Scandurra
31e6bb4fc1
Return Result
from AsyncAppContext::update_view
2023-04-18 12:03:53 +02:00
Antonio Scandurra
493a418c91
WIP
2023-04-17 18:52:48 +02:00
Antonio Scandurra
38ab6b123f
Make production code compile again
2023-04-17 12:33:33 +02:00
Antonio Scandurra
bed94455b9
Avoid calling focus_in
when creating window
...
This is redundant because when creating a window we will receive
an activation event if the window was effectively focused. And if
it wasn't, we shouldn't call `focus_in`.
2023-04-17 11:57:51 +02:00
Antonio Scandurra
f09e21aa93
WIP: force using (at least) a window context to update views
2023-04-14 17:08:13 +02:00
Antonio Scandurra
a820862165
Take WindowContext
in workspace::ItemHandle
methods
2023-04-14 16:36:23 +02:00
Antonio Scandurra
2652f65bee
Fix handle_window_activation_effect
updating the wrong view
2023-04-14 12:33:13 +02:00
Antonio Scandurra
98dce89379
Pass WindowContext
to ViewHandle::is_focused
2023-04-14 12:12:08 +02:00
Antonio Scandurra
33bc47dbe2
Merge branch 'main' into window_context_2
2023-04-14 12:07:09 +02:00
Antonio Scandurra
183b9ef809
Make full-screen and window bounds callbacks take a WindowContext
2023-04-14 11:56:31 +02:00
Antonio Scandurra
5666e8301e
Log an error when a scene fails to build
2023-04-14 10:32:56 +02:00
Antonio Scandurra
9ef79735dc
Move more window-specific methods from AppContext
to WindowContext
2023-04-14 10:29:35 +02:00
Antonio Scandurra
c62357db02
Fix window activation
2023-04-14 08:24:01 +02:00
Antonio Scandurra
84d2605ccf
Avoid passing cx
when emitting from CallbackCollection
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-04-13 16:53:44 +02:00
Antonio Scandurra
ff774786bf
Reimplement AppContext::handle_focus_effect
2023-04-13 16:21:39 +02:00
Antonio Scandurra
4900e04ff3
Fix window refreshing
2023-04-13 12:19:11 +02:00
Antonio Scandurra
702c4ce403
Uncomment List
tests and fix related problems in WindowContext
2023-04-13 12:01:18 +02:00
Nathan Sobo
b89c4e06be
WIP: Compiling, many warnings, haven't tested
2023-04-12 12:54:24 -06:00
Nathan Sobo
a25f962185
WIP
2023-04-12 12:13:35 -06:00
Nathan Sobo
868301bedb
WIP
2023-04-12 10:07:17 -06:00
Antonio Scandurra
83070a19c4
WIP
2023-04-12 15:55:43 +02:00
Nathan Sobo
d9e4136b02
WIP
2023-04-11 21:56:37 -06:00
Nathan Sobo
e115baa60c
WIP
2023-04-11 18:21:56 -06:00
Antonio Scandurra
9e6d865882
Prevent already dropped model from being upgraded during release
2023-04-11 10:43:05 +02:00
Nathan Sobo
3de8fe0f87
WIP
2023-04-10 17:27:47 -06:00
Nathan Sobo
6638407ff9
WIP: Everything shredded
2023-04-10 16:10:32 -06:00
Nathan Sobo
7536645eea
WIP
2023-04-08 08:01:05 -06:00
Nathan Sobo
9d23a98157
WIP
2023-04-08 06:43:39 -06:00
Nathan Sobo
2186de38ab
Merge AppContext impl blocks
2023-04-07 11:54:08 -06:00
Nathan Sobo
2615a11f7c
Don't export platform::* from gpui
...
I'd like to avoid cluttering the top-level namespace with all the platform-
specific types.
2023-04-07 11:45:53 -06:00
Nathan Sobo
de9bf6dfbd
Merge MutableAppContext into AppContext
...
There may have been a good reason for the difference at some point, or I was
still learning Rust. But now it's just &mut AppContext vs &AppContext.
2023-04-06 15:49:03 -06:00
Antonio Scandurra
79d5bb45dc
Clear Copilot suggestions when it gets disabled from the settings
2023-04-04 10:45:56 +02:00
Nathan Sobo
138aa0492a
Add downcast_ref to AnyViewHandle
...
I use unsafe code to transmute an AnyViewHandle to a ViewHandle<T> when
the type matches. Because ViewHandle<T> is repr(transparent) to the
wrapped AnyViewHandle, this is safe.
2023-04-02 16:10:16 -06:00
Nathan Sobo
27258a0889
Remove From trait for AnyViewHandle in favor of into_any method
...
I think it's more explicit.
2023-04-02 15:50:42 -06:00
Nathan Sobo
aed8df96ff
Wrap AnyWeak handles with their typed counterparts
2023-04-02 15:42:03 -06:00
Nathan Sobo
82a713fd1d
Store AnyViewHandle inside ViewHandle and Deref to it
2023-04-02 14:59:55 -06:00
Mikayla Maki
81411b9114
Merge branch 'main' into copilot
2023-03-30 16:57:18 -07:00
Max Brunsfeld
b5f762ab25
Open a new window when activating Zed from the dock w/ no windows open
2023-03-29 17:24:44 -07:00
Mikayla Maki
9d8d2bb8f4
Add rough versions of all 3 modals
2023-03-28 18:00:09 -07:00
Joseph Lyons
9d88cd8842
Unify spelling of key binding
to be two words
2023-03-22 13:34:12 -04:00
Mikayla Maki
578c69476d
Align dispatch_keystroke with other uses of ancestors iterator and filter out non-existant views
2023-03-17 11:07:10 -07:00
Antonio Scandurra
bca1acf6d3
Leave room on quit
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-03-13 17:52:10 +01:00
Petros Amoiridis
726c8eb43f
Use type_id to determine what has the focus
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2023-03-13 11:42:40 +02:00
Mikayla Maki
87ac409e51
Merge pull request #2265 from zed-industries/fix-menu-bar-greying-out
...
Fix too-agressive menu bar greying
2023-03-10 16:05:07 -08:00
Mikayla Maki
c24194156e
Merge pull request #2257 from zed-industries/check-all-contexts
...
Fix keyboard shortcuts not showing
2023-03-10 15:52:56 -08:00
Mikayla Maki
ece2af1e22
Fix a corner case in available action resolution
...
Add tests for new keybinding resolution behavior
co-authored-by: max <max@zed.dev>
2023-03-10 15:36:20 -08:00
Mikayla Maki
adf94a1681
Switch from using the key window to the main window mac platform API
...
When the help menu is open, the help menu's search field is the key window, and this was causing menu item action resolution to fail
co-authored-by: Max <max@zed.dev>
2023-03-10 14:43:28 -08:00
Mikayla Maki
00a38e4c3b
Bound the search range for the keybindings by the highest handler path
2023-03-10 12:12:32 -08:00
Mikayla Maki
9dc608dc4b
Switch from changing the meaning of the predicate to adding an additional match_dispatch_path_context API for UI elements
2023-03-09 19:32:09 -08:00
Mikayla Maki
416c793076
Start on welcome experience settings
2023-03-06 14:25:10 -08:00
Mikayla Maki
606d683f29
Add interactable fold markers
...
Change fold handlers to be driven by the fold map
Switch to a mouse region based implementation for click regions
Co-authored-by: Max <max@zed.dev>
2023-03-03 12:26:36 -08:00
Mikayla Maki
8656708de4
Revert "Remove borrow from reveal_path()"
2023-02-24 09:39:52 -08:00
Mikayla Maki
89ddf14b0e
Remove borrow from reveal_path()
2023-02-23 21:36:17 -08:00
Mikayla Maki
9004640586
Convert keymap context to use generics and Cow<'static> so we don't have to add .to_string() and .into() for each usage
2023-02-23 14:10:55 -08:00
Kay Simmons
24fcad3fa2
Merge pull request #2189 from zed-industries/labeled-tasks
...
Labeled Tasks
2023-02-21 21:31:47 -08:00
Kay Simmons
46af9a90ce
fix test warning
2023-02-21 21:13:03 -08:00
Kay Simmons
6b6e4e3bfe
Add basic test for labeled tasks
2023-02-21 16:14:22 -08:00
Kay Simmons
3564e95f27
Add labeled tasks to gpui and observe them in the activity status to give feedback when we are still waiting for the language server
2023-02-20 20:28:48 -08:00
Petros Amoiridis
4bb986b3be
Move reveal_path to ForegroundPlatform
...
So that we can use spawn to use the OS API call.
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2023-02-20 18:57:37 +02:00
Kay Simmons
2c9199fd32
fix build error
2023-02-13 14:12:43 -08:00
Kay Simmons
3d53336916
More vim fixes and move some more things out of app.rs
2023-02-13 13:50:37 -08:00
Mikayla Maki
767d2f9766
Merge pull request #2134 from zed-industries/fix-action-keystroke-bugs
...
Fix several action dispatching bugs
2023-02-08 15:56:50 -08:00
Joseph Lyons
20377ea4e9
Update links to community repository
2023-02-07 18:19:27 -05:00
Max Brunsfeld
f065399799
Fix crash when unplugging display containing a zed window
...
Co-authored-by: Kay Simmons <kay@zed.dev>
2023-02-06 16:44:06 -08:00
Mikayla Maki
926b59b15d
Fixed a bug where the command palette wouldn't check the keymap context when showing available actions
...
Fixed a bug where context menus wouldn't show action keystrokes
WIP Fixing a bug where tooltips won't show action keystrokes
Co-Authored-By: Max <max@zed.dev>
2023-02-06 15:42:14 -08:00
Petros Amoiridis
433f284571
Merge pull request #2126 from zed-industries/731-make-cursor-visible-immediately
...
Focus the editor when activating previous pane
2023-02-03 10:12:34 +02:00