Commit Graph

9172 Commits

Author SHA1 Message Date
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
Antonio Scandurra
07b8a105a6
Merge pull request #11 from zed-industries/undo
Introduce undo/redo support for arbitrary operations in `Buffer`
2021-04-09 18:50:36 +02:00
Max Brunsfeld
6873662c47 Use upstream git revision of core-foundation-rs 2021-04-09 08:45:23 -07:00
Antonio Scandurra
cba8730d5a Don't report edits in Buffer::undo_or_redo
We will report them in public higher-level methods like `Buffer::undo`
and `Buffer::redo`.
2021-04-09 14:15:17 +02:00
Antonio Scandurra
bf3a5d0a0d Move UndoMap down 2021-04-09 11:25:28 +02:00
Antonio Scandurra
4d9ff1109a Exercise arbitrary undos/redos in single-peer buffer randomized test 2021-04-09 11:22:25 +02:00
Antonio Scandurra
2e7ca8ea46 Store only max undo by replica instead of individual undos in Fragment 2021-04-09 11:22:25 +02:00
Antonio Scandurra
7b6fbe1d89 Compute minimal version_in_range on edit and account for undo 2021-04-09 11:22:22 +02:00
Max Brunsfeld
7ebcbdc0cb Implement File > Open menu item 2021-04-08 22:25:54 -07:00
Max Brunsfeld
f656b387b3 Call SetActivationPolicy at the proper time
If this method is called too early, the menu bar won't be
clickable on startup until the window loses focus. Calling
it once the application finishes launching seems to fix
the issue.

See https://github.com/glfw/glfw/issues/1648
2021-04-08 16:11:45 -07:00
Max Brunsfeld
334de06322 Create an API for assigning the menubar contents 2021-04-08 16:01:36 -07:00
Antonio Scandurra
c20935de91 WIP 2021-04-08 16:57:46 +02:00
Nathan Sobo
d572c22794
Merge pull request #9 from zed-industries/debug-elements
Copy element debug JSON to the clipboard on cmd-alt-i
2021-04-08 08:09:08 -06:00
Antonio Scandurra
5e0d5b7f9a Fix Debug impl for Text to only display the slice a Text refers to
...as opposed to the whole string.
2021-04-08 15:05:33 +02:00
Antonio Scandurra
44ab38ac98 Introduce undo/redo support for arbitrary operations in Buffer 2021-04-08 15:05:05 +02:00
Nathan Sobo
b1536cca58 Add README tip 2021-04-07 21:56:45 -06: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
0664321125 Add ability to debug element trees as JSON 2021-04-07 21:54:14 -06:00
Max Brunsfeld
0a12774680 Add a stub of a native 'File' menu 2021-04-07 17:49:44 -07:00
Max Brunsfeld
7e5186e4a0 Start work on a native application menu
Add an application menu with a quit command, bound to command-q
2021-04-07 17:48:22 -07:00
Max Brunsfeld
57a3207897 Merge branch 'modified-status-in-tabs' 2021-04-07 15:43:13 -07:00
Max Brunsfeld
1c23eeccc3
Add CI status badge to the README 2021-04-07 15:40:10 -07:00
Max Brunsfeld
187eb95b13 Throw a little between filename and modified icon
We probably need a primitive to right-align an element within
its parent, but I don't have strong opinions about how that
should be designed, so I'm just adding this as a temporary
measure so that the tabs won't look too ugly in the meantime.
2021-04-07 15:39:09 -07:00
Max Brunsfeld
ae57178f3e Restructure event-handling methods in workspace ItemView 2021-04-07 15:05:16 -07:00
Max Brunsfeld
a95d33f662 Add assertions about Dirtied events in test 2021-04-07 14:52:22 -07:00
Nathan Sobo
347d13bac7
Merge pull request #7 from zed-industries/roadmap
Add a README with a high-level roadmap
2021-04-06 23:59:50 -06:00
Nathan Sobo
aaa007a537
Add Max's suggestion 2021-04-06 23:59:34 -06:00
Nathan Sobo
05125f76bd Fix tests 2021-04-06 20:59:55 -06:00
Nathan Sobo
3f9d224e0f persisted_version -> saved_version 2021-04-06 20:59:44 -06:00
Nathan Sobo
13ee86e334 Remove unused method 2021-04-06 20:47:09 -06:00
Nathan Sobo
2619bc4602 Update modified status by emitting event whenever buffer is dirtied or saved
I used the word "dirty" because it felt more expressive than "modified" to me, but not married to it. Tagging Max because we did a lot of this thinking together.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-04-06 20:46:35 -06:00
Max Brunsfeld
d724387158 wip 2021-04-06 18:25:50 -07:00
Max Brunsfeld
685665f3c0 Implement Buffer::is_modified by storing persisted version 2021-04-06 16:19:17 -07:00
Max Brunsfeld
bd37b11306 Update tab's modified icon via a saved event emitted from buffer 2021-04-06 15:47:05 -07:00
Max Brunsfeld
dabd6abe37 Start work on displaying modified status in tabs 2021-04-06 14:37:21 -07:00
Max Brunsfeld
0f157d5083 Silence warning in text example 2021-04-06 14:36:16 -07:00
Max Brunsfeld
c632aab382 Vertically center linebox child element
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-06 13:03:19 -07:00
Nathan Sobo
2a9e71d725 Vertically center glyphs in Line::paint based on ascender/descender for line 2021-04-06 09:15:21 -06:00
Nathan Sobo
fc4135d55b Render example text in example via Line::paint 2021-04-06 09:15:21 -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
a5b39220a4 WIP: Add example app to test text rendering 2021-04-06 09:15:21 -06:00
Antonio Scandurra
5f1f49b011 Reduce path atlas size by using a single channel for the texture 2021-04-06 13:53:20 +02:00
Antonio Scandurra
e0c43dac25 Implement SVG rendering 2021-04-06 13:46:33 +02: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