Max Brunsfeld
21cfb75a73
Flush redundant fs events in worktree test
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-04-28 12:42:39 -07:00
Nathan Sobo
1cb3fdbf7d
Synthesize a mouse moved event in the previous position after painting a scene
...
This ensures that we correctly update the hover state of elements whose position has changed relative to the mouse cursor even though the mouse hasn't actually moved.
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-04-28 13:02:39 -06:00
Nathan Sobo
69cc2b0483
WIP
2021-04-27 18:35:24 -06:00
Nathan Sobo
58e336354e
Align close tab icon cleanly with unsaved indicator
2021-04-27 16:51:23 -06:00
Nathan Sobo
bb95d58c79
Relay hover events to tabs
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-04-27 11:37:14 -06:00
Nathan Sobo
fc4b7e2a2a
Introduce MouseEventHandler
...
Still need to give elements the ability to re-render their parent view. Once that is in place, I think we can implement hoverable close tab buttons.
2021-04-26 21:52:18 -06:00
Nathan Sobo
a47b0b4ca6
Add a mechanism for storing ephemeral values
...
I'll use this in the mouse event handler to track hover and click state.
2021-04-26 21:24:23 -06:00
Max Brunsfeld
9fd8acdce7
Use our own scoped_pool implementation
2021-04-20 14:07:36 -07:00
Nathan Sobo
9899614f31
Remove task_done condvar which supported finish_pending_tasks
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-04-20 10:45:42 -06:00
Nathan Sobo
1a8e909a38
Ensure we remove broadcast channels after all conditions resolve
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-04-20 10:43:13 -06:00
Nathan Sobo
dcc2bdfd4c
Panic when awaiting conditions on dropped entities
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-04-20 10:36:54 -06:00
Antonio Scandurra
37444acc9c
Time out condition
after 200ms and add basic unit tests for it
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-20 17:21:29 +02:00
Antonio Scandurra
cd7dccd30c
Replace remaining usages of finish_pending_tasks
with condition
2021-04-20 12:28:30 +02:00
Nathan Sobo
a4c1fe5a0b
WIP: Add a condition method to model and view handles for use in tests
...
It returns a future that resolves when the provided predicate returns true. The predicate is called any time the handle's targeted entity calls notify.
Still need to add a timeout and completely remove finsih_pending_tasks.
2021-04-19 22:01:54 -06:00
Nathan Sobo
db8cce9aa9
Merge branch 'master' into rescan
2021-04-14 22:26:09 -06:00
Nathan Sobo
36e6ed3aef
WIP
2021-04-14 12:38:16 -06:00
Nathan Sobo
4cef25eff8
Replace easy-parallel with scoped-pool for path searches
...
The easy-parallel crate spawned new threads on each call, which was resulting in way too many threads.
Co-Authored-By: Brooks Swinnerton <934497+bswinnerton@users.noreply.github.com>
2021-04-14 09:08:52 -06:00
Antonio Scandurra
cf23b0e4a2
Prompt for paths asynchronously to avoid double borrow
2021-04-14 16:30:03 +02:00
Antonio Scandurra
29d2236ed2
Merge pull request #19 from zed-industries/single-global-action-dispatch
...
Dispatch global actions only once when triggering a menu item
2021-04-14 15:50:07 +02:00
Antonio Scandurra
f755cbbe98
Dispatch global actions only once when triggering a menu item
...
Previously we would dispatch the same global action more than once
because we would invoke `dispatch_action_any` _and_
`dispatch_global_action_any`. However, the former already takes care of
going through the global action handlers when no entity in the dispatch
path handled the action.
2021-04-14 14:47:18 +02:00
Antonio Scandurra
40980edffe
Merge branch 'master' into copy-paste
2021-04-14 12:05:52 +02:00
Nathan Sobo
0cc5e8f742
Replace easy-parallel with scoped-pool for path searches
...
The easy-parallel crate spawned new threads on each call, which was resulting in way too many threads.
Co-Authored-By: Brooks Swinnerton <934497+bswinnerton@users.noreply.github.com>
2021-04-13 20:07:42 -06:00
Nathan Sobo
0a2d2aa684
Replace app/app_mut on contexts with AsRef/AsMut impls
...
Co-Authored-By: Brooks Swinnerton <934497+bswinnerton@users.noreply.github.com>
2021-04-13 20:07:25 -06:00
Antonio Scandurra
13514aae6c
Allow metadata to be associated with text written to clipboard
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-04-13 19:03:56 +02:00
Antonio Scandurra
f4c1ffc329
Start on copy-paste
2021-04-13 14:58:10 +02:00
Max Brunsfeld
902b0f7dfa
Dispatch menu commands on the focused view
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-12 15:42:33 -07:00
Max Brunsfeld
d4436f3018
Don't try to handle errors when opening platform windows
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-12 15:14:25 -07:00
Max Brunsfeld
86c0f41c9e
Move set_menus method to MutableAppContext
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-12 14:38:18 -07:00
Max Brunsfeld
41358f34e3
Set up menu handler in App::new
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-12 14:25:00 -07:00
Max Brunsfeld
2332b7e06b
Move open command handler to workspace global action
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-12 14:18:24 -07:00
Max Brunsfeld
3247f49954
Allow menu items to specify arguments for their commands
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-12 14:09:49 -07:00
Nathan Sobo
4638391412
Remove MutableAppContext::downgrade
2021-04-10 00:14:26 -06:00
Nathan Sobo
620eedb727
Allow effects to be flushed before TestAppContext::update callback completes
2021-04-10 00:11:13 -06:00
Nathan Sobo
97a8a8ed43
Remove unsafe code from App::test_async
...
I don't actually think it was correct to allow the future to borrow a mutable app reference. I went back to passing a wrapper around the refcell to async tests. They'll be a bit more annoying to write but also totally safe.
2021-04-10 00:05:09 -06:00
Nathan Sobo
448dace281
Pass the on_finish_launching callback to Platform::run
2021-04-09 21:33:17 -06:00
Max Brunsfeld
079050541f
Get app running and test passing after gpui App+Platform restructure
2021-04-09 16:56:32 -07:00
Nathan Sobo
4ecc17b1bb
WIP: Make App the only entry point from main
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-04-09 13:38:09 -06:00
Nathan Sobo
301163bab7
Add lifecycle methods to Platform trait
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-04-09 13:03:26 -06:00
Max Brunsfeld
00d7dafbba
Merge branch 'master' into menus
2021-04-09 10:34:21 -07:00
Max Brunsfeld
334de06322
Create an API for assigning the menubar contents
2021-04-08 16:01:36 -07:00
Nathan Sobo
9f6f27f305
Order debug JSON and allow elements to be named; copy to clipboard
2021-04-07 21:54:14 -06:00
Nathan Sobo
cbb23a93a6
Log prettified element debug JSON to on cmd-alt-i
2021-04-07 21:54:14 -06:00
Nathan Sobo
765c3f9c18
Open platform window before first invalidation
...
This ensures we have an invalidation handler present so we render the first frame in all cases.
2021-04-06 09:15:21 -06:00
Nathan Sobo
2970e934da
Use handles to obtain entities in future callbacks
...
This guarantees that the spawning entity will be present and simplifies
the logic for obtaining the entity. Now we can forward the results of spawned futures and streams in the same way regardless of whether what spawned them was a model or a view.
2021-04-05 20:04:04 -06:00
Max Brunsfeld
fda1394057
Rename Task -> EntityTask (a BackgroundTask is just a Task)
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-05 17:03:42 -07:00
Max Brunsfeld
c39c7c3eff
Make background executor available on AppContext
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-05 16:45:55 -07:00
Nathan Sobo
c43d7cfb39
Use a condvar instead of a channel to implement finish_pending_tasks
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-04-02 13:53:06 -06:00
Nathan Sobo
526a55d0d7
Complete finish_pending_tasks future when tasks are cancelled
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-04-02 12:42:23 -06:00
Nathan Sobo
2d79193fb6
Remove future/stream handlers when task is dropped
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-04-02 12:03:35 -06:00
Nathan Sobo
914cf37f37
Remove executor::ForegroundTask wrapper
...
Now that smol returns the same Task as async_task, we can simply re-export the async_task::Task struct from our executor module.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-04-02 11:02:09 -06:00
Nathan Sobo
d68a747754
Fix hanging finish_pending_tasks test
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-04-02 10:48:03 -06:00
Max Brunsfeld
3bd6b92244
Introduce a GPUI test platform, get most tests running
...
There are still two tests that don't pass:
* `gpui::app::tests::test_finish_pending_tasks` hangs
* `editor::buffer_view::tests::test_fold` has an assertion failure
2021-03-31 17:03:58 -07:00
Antonio Scandurra
0906b2a2f4
Remove unused dependencies and avoid instantiating FontCache in tests
2021-03-25 10:48:32 +01:00
Antonio Scandurra
9178e91cc0
Extract platform-dependant FontSystem
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-03-24 16:51:28 +01:00
Antonio Scandurra
ad7974608b
WIP
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-03-23 19:11:56 +01:00
Nathan Sobo
119aa452b6
Overhaul the entire element system
...
Now the Element trait is designed to be wrapped in a Lifecycle enum that gets placed inside an ElementBox. This allows the framework to store data on behalf of the Element implementation, such as sizes, bounds, and also implementation-specific LayoutState and PaintState types. This makes it easier to reason about which data is available in each Element method.
2021-03-21 20:54:23 -06:00
Nathan Sobo
046fe3fff9
Dispatch keystrokes and fix rerendering when window invalidated
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-03-21 11:38:23 -06:00
Nathan Sobo
f5df3681f8
Add file_finder module
...
Still need to wire up key bindings to make it toggle.
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-03-21 10:50:07 -06:00
Nathan Sobo
0c59937a65
Wire up events and fix synthetic dragging
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-03-21 09:44:14 -06:00
Nathan Sobo
e5ffe43bb6
Get basic graphics rendering via Metal
...
Also, handle window resize.
2021-03-20 22:19:26 -06:00
Nathan Sobo
cfe3aae2de
WIP: Get everything compiling again and keep window open
2021-03-19 12:12:10 -06:00
Nathan Sobo
605bdd62dd
WIP: Start on rendering scenes via presenter
2021-03-18 21:33:16 -06:00
Nathan Sobo
e809d6119a
Return tasks from spawn and spawn_stream
...
Also, eliminate the background spawning methods. We can spawn futures
on the executor and then spawn those on the app if we need to wait for
the result of running one.
2021-03-18 20:10:32 -06:00
Nathan Sobo
f849857309
Handle command line arguments and populate worktree
2021-03-18 17:54:35 -06:00
Nathan Sobo
9bab29c72f
Get workspace module in and compiling
2021-03-18 15:52:46 -06:00
Nathan Sobo
23308e17a9
WIP on rebuilding with extracted UI framework
2021-03-18 13:13:31 -06:00
Nathan Sobo
356bc41752
WIP
2021-03-09 21:00:51 -07:00