Nathan Sobo
23ffce9fbe
WIP: Work toward eliminating Component trait
...
This refactor enhances the overall design by promoting reusable and composable UI component structures within the Zed project codebase.
2023-11-18 00:03:23 -07:00
Nathan Sobo
2515bbf990
Move self in Element::paint
...
Remove mutable state borrows in favor of state ownership in render processes to streamline element rendering.
2023-11-17 23:32:55 -07:00
Mikayla Maki
e1285b9780
Add nightly release channel for zed2 ( #3355 )
...
Release Notes:
- N/A
2023-11-17 22:12:18 -08:00
Nathan Sobo
0069dd5ce6
WIP
2023-11-17 20:05:37 -07:00
Mikayla
dd283b471a
Add autoupdate2
...
co-authoredby: max@zed.dev
2023-11-17 15:48:32 -08:00
Julia
189ddf9380
Merge branch 'main' into unborked-git-zed2-diagnostics-view
2023-11-17 16:43:29 -05:00
Julia
3655a96e54
Merge branch 'main' into unborked-git-zed2-diagnostics-view
2023-11-17 16:32:35 -05:00
Julia
c6d22af416
Get diagnostic2 tests building and running
2023-11-17 16:32:35 -05:00
Julia
a464a7da2a
Merge branch 'main' into unborked-git-zed2-diagnostics-view
2023-11-17 16:32:35 -05:00
Julia
f4eb219c75
Get diagnostics view almost building in the zed2 world
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-11-17 16:32:35 -05:00
Mikayla Maki
7a8da8ce11
Adjust the type arrangement on ManagedViews ( #3354 )
...
Made the trait into a blanket-trait impl if you have it's two
constituent pieces (FocusableView and EventEmitter) to remove the
duplicated method. I also changed the struct to an enum for aesthetic
reasons (EventType::EventName feels self documenting to me) and added
some new `cx` APIs utilizing our new powers of dismissal.
Release Notes:
- N/A
2023-11-17 13:04:57 -08:00
Conrad Irwin
a6d6f8a193
shhh ( #3358 )
...
- Fix image errors
Release Notes:
- N/A
2023-11-17 14:01:44 -07:00
Nathan Sobo
c866c211b5
Make static str and SharedString implement Element
2023-11-17 13:48:01 -07:00
Conrad Irwin
6bfe6fa0e1
Fix image errors
...
* Firstly only log one error per image load, not per frame
* Secondly use an Icon not an image for rendering Icons
2023-11-17 13:47:07 -07:00
Mikayla
149b9d1aa6
Merge branch 'main' into managed-view-adjustment
2023-11-17 12:40:44 -08:00
Conrad Irwin
624bd0a05a
Collab ui2 ( #3357 )
...
* Clickable context menus & movable panels – what will they think of
next?!
Release Notes:
- N/A
2023-11-17 13:33:18 -07:00
Conrad Irwin
ceb20dea96
Refactorings
2023-11-17 13:23:12 -07:00
Conrad Irwin
9d742b90c3
Allow you to click on a context menu item
2023-11-17 11:57:51 -07:00
Mikayla
17d53d0e38
Rename again, add fun cx APIs using new traits
2023-11-17 10:06:41 -08:00
Mikayla
01d9d53f4a
Adjust the type arrangement on ManagedViews
2023-11-17 09:51:11 -08:00
Piotr Osiewicz
eb9959a0cf
gpui: notifications now takes an entity instead of a model
2023-11-17 17:23:05 +01:00
Mikayla
1693718637
Merge branch 'main' into saving-2
2023-11-16 23:11:38 -08:00
Mikayla
9a3cd073c7
Restore a bunch of random workspace stuff
2023-11-16 23:05:28 -08:00
Nathan Sobo
2fb13cf1ca
Separate WrappedLines from ShapedLines ( #3350 )
...
ShapedLines are never wrapped, whereas WrappedLines are optionally
wrapped if they are associated with a wrap width. Originally, when
rewriting GPUI, I tried to combine everything because wrapping is
inherently optional for the Text element, but we have a bunch of APIs
that don't make sense on a line that may wrap, so we need a distinct
type for that case.
This is a precursor to implementing clickable links in markdown. I
noticed multiple places where we were confused about whether or not the
line was wrapped so this felt important.
Release Notes:
- N/A
2023-11-16 23:20:35 -07:00
Nathan Sobo
9558da8681
Separate WrappedLines from ShapedLines
...
ShapedLines are never wrapped, whereas WrappedLines are optionally wrapped if
they are associated with a wrap width. I tried to combine everything because
wrapping is inherently optional for the Text element, but we have a bunch of
APIs that don't make sense on a line that may wrap, so we need a distinct type
for that case.
2023-11-16 23:10:51 -07:00
Conrad Irwin
2d1d75f482
+ManagedView
...
And some games with rust traits
2023-11-16 23:02:10 -07:00
Conrad Irwin
6d4276ea5f
Merge branch 'main' into collab_ui2
2023-11-16 22:08:42 -07:00
Conrad Irwin
c0ad15756c
More attachment configuration for context menus
2023-11-16 21:59:23 -07:00
Max Brunsfeld
e67c44a562
Fix file-reloading race condition ( #3348 )
...
### Summary
This PR fixes a bug that @as-cii and @osiewicz saw when the on-disk
contents of files changed due to running `git checkout` at the command
line. It caused a buffer's contents to diverge from the file's on disk
contents, but the buffer to show an *unmodified* status.
I've also introduced new APIs on gpui's deterministic executor, which
make it possible to write a test that reliably triggered the bug.
### Details
The bug is triggered by the following sequence of events:
1. A buffer's file changes on disk while the buffer is *unmodified*
2. Zed reloads the new content of the file
3. Before updating the buffer itself, Zed computes a *diff* between the
buffer's current contents, and the newly-loaded contents
4. While this diff is being computed, one of two things happens:
1. the buffer changes on-disk *again*.
2. the user edits the buffer, but undoes the edit, so that the buffer
returns to an unmodified state
The bug itself was caused by a few things:
* The buffer diffing algorithm is pretty slow, because we perform a
character-wise diff
* We previously allowed multiple reload tasks to run concurrently
* When discarding an out-of-date diff, we failed to update parts of the
buffer's state (`saved_fingerprint`) which allow us to recognize that
the buffer's content differs from the file.
It was also difficult to reproduce the problem in tests, because under
deterministic execution, because it was extremely unlikely for other
tasks to make progress *after* a file had been reloaded, but *before*
the disk task has resolved. To help with testing, I introduced a pair of
executor APIs:
`spawn_labeled`, - for spawning a background task with a given *label*
`deprioritize_task` - for forcing tasks with a given label to run
*after* all other concurrent tasks.
I also made the `Model::next_event` test helper method more useful, in
that it no longer runs *until* parked in order to wait for the next
event to occur. It just steps the executor one poll at a time until the
model emits an event.
Release Notes:
- Fixed a bug that caused buffers to report incorrect modified/conflict
status when their buffers changed on disk multiple times in rapid
succession.
2023-11-16 20:19:16 -08:00
Max Brunsfeld
32979f3aca
Rename deprioritize_task -> deprioritize
...
It applies to a family of tasks, not a task.
2023-11-16 20:03:18 -08:00
Max Brunsfeld
f3b6719c76
Rename both PlatformDispatcher::poll and Executor::run_step to 'tick'
...
Co-authored-by: Nathan Sobo <nathan@zed.dev>
2023-11-16 19:58:26 -08:00
Conrad Irwin
9547e88d88
TEMP
2023-11-16 19:50:31 -07:00
Mikayla
432572c592
#RemoveThe2
2023-11-16 18:04:35 -08:00
Mikayla
4de2c0f7ef
Re-implement actions as derive macros instead of blanket impls
2023-11-16 17:32:02 -08:00
Conrad Irwin
074a221e0f
Progress on ContextMenu
2023-11-16 16:59:27 -07:00
Max Brunsfeld
f9650b3111
Don't run until all the way until parked when waiting for a model's next event
2023-11-16 15:54:00 -08:00
Max Brunsfeld
6397c05835
Add the ability to deprioritize specific labeled tasks in tests
2023-11-16 15:54:00 -08:00
Conrad Irwin
9456f716c2
Only send one right click event
2023-11-16 15:30:53 -07:00
Conrad Irwin
267e07472d
Checkpoint, MenuHandle can open one
2023-11-16 13:32:19 -07:00
Mikayla
a0e976599c
Salvage old distributed slice code
2023-11-16 10:32:55 -08:00
Conrad Irwin
d782426491
Dismiss tooltips on click
2023-11-16 10:26:09 -07:00
Kirill Bulatov
fd61683c46
WIP
2023-11-16 10:40:02 +02:00
Kirill Bulatov
61d6cb880c
Start porting terminal_element to gpui2
...
Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
2023-11-16 10:04:03 +02:00
Mikayla
9da0b78ead
Merge branch 'main' into tabs-n-splits
2023-11-15 23:41:25 -08:00
Conrad Irwin
74afa62a55
Add Overlay component to gpui2
2023-11-15 23:00:36 -07:00
Conrad Irwin
8c14a8fa95
Merge branch 'main' into collab_ui2
2023-11-15 21:04:47 -07:00
Conrad Irwin
0a9fb3978b
Enable panel switching
2023-11-15 21:01:00 -07:00
Nathan Sobo
e5ada92b7b
Remove initialize from the Element trait ( #3338 )
...
Initially, we imagined registering keyboard handlers in the initialize
phase so we would understand the relationships between focus handles
during the layout pass, which would allow us to assign assign `focus_in`
styles that impact layout.
However, we soon realized that many elements aren't created until paint
time anyway, such as within the uniform list. Since it's impossible to
know prior to paint whether an element contains the focused element, it
makes more sense to eliminate the `focus_in` styling helper.
Release Notes:
- N/A
2023-11-15 19:36:35 -07:00
Mikayla
78cea69172
Add focusable view and restore workspace deserialization. Partially restore split and tab functions
2023-11-15 16:36:43 -08:00
Mikayla
faf93aed4e
checkpoint
2023-11-15 14:17:04 -08:00
Nathan Sobo
4f09633379
Remove focus_in styling helper
2023-11-15 14:17:49 -07:00
Nathan Sobo
c6b374ebc9
Remove initialize method from Element trait
2023-11-15 14:11:19 -07:00
Conrad Irwin
0a51784dd0
Leaky, but better, test abstraction
2023-11-15 14:01:10 -07:00
Conrad Irwin
19c0b390d2
FileFinder tests ( #3336 )
...
Also including:
* Fixes for focus when closing the last item in a pane
* Workspace#active_item_as::<Editor>()
* cx.simulate_input()
Release Notes:
- N/A
2023-11-15 13:24:34 -07:00
Conrad Irwin
cebc8428c8
FileFinder tests
2023-11-15 13:16:28 -07:00
Antonio Scandurra
33a808a49b
WIP
2023-11-15 20:41:09 +01:00
Antonio Scandurra
759ce7440c
Avoid unnecessary call to with_element_id
in RenderViewWith
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-11-15 20:12:30 +01:00
Antonio Scandurra
1d04dc5dbf
Clear the state of keystroke matchers when focus changes
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-11-15 20:11:07 +01:00
Antonio Scandurra
3978d4e872
Show fold indicators ( #3334 )
...
Release Notes:
- N/A
2023-11-15 20:10:24 +01:00
Antonio Scandurra
c225a3e5af
Don't use Mutex
or Arc
now that app state is not Send
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-11-15 18:50:34 +01:00
Antonio Scandurra
c7b7f7dfd5
Move render_view
into View::render_with
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-11-15 18:50:09 +01:00
Antonio Scandurra
17b8e4a684
Handle clicking folded ranges
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-11-15 18:19:26 +01:00
Antonio Scandurra
3ff8c78b58
Return a Fold
struct when querying the FoldMap
...
This contains a new `id` field that lets us distinguish among folds.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-11-15 17:09:59 +01:00
Conrad Irwin
1db4fab3ab
Add command palette tests and simulate_keystrokes ( #3330 )
...
Release Notes:
- N/A
2023-11-15 08:00:41 -07:00
Antonio Scandurra
786cc59d7a
Fix formatting
2023-11-15 11:07:32 +01:00
Antonio Scandurra
feeb44c122
Merge remote-tracking branch 'origin/main' into editor2-rename
...
# Conflicts:
# crates/editor2/src/editor.rs
# crates/editor2/src/element.rs
# crates/gpui2/src/style.rs
2023-11-15 09:51:33 +01:00
Antonio Scandurra
c3094b7c3d
Introduce gpui::render_view
2023-11-15 09:45:23 +01:00
Antonio Scandurra
1def355d44
Don't return Result
from TextStyle::highlight
2023-11-15 09:10:46 +01:00
Conrad Irwin
c81bd288d4
Fix test
2023-11-14 23:47:08 -07:00
Conrad Irwin
91b54b352b
Add command palette tests and simulate_keystrokes
2023-11-14 23:22:51 -07:00
Nathan Sobo
e37d7f5b0e
Fix click events by notifying when we assign pending_mouse_down ( #3329 )
...
We need to notify when we set the pending mouse down so we attach the
mouse up event listener before the mouse button is released.
Release Notes:
- N/A
2023-11-14 19:55:23 -07:00
Nathan Sobo
32ad486a8e
Document contexts
2023-11-14 19:52:51 -07:00
Nathan Sobo
00d8921ae9
Fix click events by notifying when we assign pending_mouse_down
2023-11-14 19:22:41 -07:00
Max Brunsfeld
8de8615176
Fix uncached raster_bounds computation and font selection
...
Co-authored-by: Nathan Sobo <nathan@zed.dev>
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-11-14 17:19:10 -08:00
Mikayla
7f72df6dcf
Merge branch 'main' into element-types
2023-11-14 15:49:10 -08:00
Mikayla Maki
df64a3c701
Not working yet file-finder2 ( #3321 )
...
Porting file_finder
Release Notes:
- N/A
2023-11-14 15:22:59 -08:00
Conrad Irwin
1109cd11c8
Abandon ship
2023-11-14 16:17:24 -07:00
Max Brunsfeld
ca63a99736
Enable tests in project panel 2 ( #3325 )
2023-11-14 15:02:51 -08:00
Max Brunsfeld
860959fe13
Implement simulated prompts in TestPlatform
2023-11-14 14:56:50 -08:00
Mikayla
6b25841e2a
WIP
2023-11-14 14:48:34 -08:00
Conrad Irwin
3b01a032ba
In the middle of stuff
2023-11-14 14:38:23 -07:00
Max Brunsfeld
123faed5b0
Re-enable all project panel tests
...
Some are still failing.
2023-11-14 12:45:46 -08:00
Mikayla
62fc0b2100
Remove unnescessary unimplemented
2023-11-14 12:12:02 -08:00
Mikayla
3419aaf17e
Fix several shutdown related bugs
2023-11-14 11:42:58 -08:00
Conrad Irwin
37d0b8424c
Merge branch 'main' into element-types
2023-11-14 12:10:26 -07:00
Conrad Irwin
5dda105182
Merge branch 'main' into element-types
2023-11-14 11:45:19 -07:00
Mikayla
27574524b8
Restore quit action
2023-11-14 10:31:55 -08:00
Conrad Irwin
b69b5742ed
Fix panicking unwrap()
2023-11-14 11:27:52 -07:00
Mikayla
caa0bae04f
Merge branch 'main' into core-actions
2023-11-14 10:11:39 -08:00
Nathan Sobo
bb584cc7c4
WIP
2023-11-14 11:00:52 -07:00
Max Brunsfeld
c7d80c7aac
Start work on creating gpui2 version of project panel ( #3299 )
...
I'm gonna land what I have, even though some features aren't ported yet,
since we're working on all of this code so actively.
* [x] get the basic structure compiling
* [x] get the panel laying out correctly
* [ ] rename / new file editor
* [ ] enable the tests
* [ ] drag and drop
* [ ] context menu
2023-11-14 09:56:46 -08:00
Max Brunsfeld
b893ac2a02
Merge branch 'main' into project-panel2
2023-11-14 09:33:48 -08:00
Nathan Sobo
e08f1690b3
Remove commented field
2023-11-14 09:33:28 -07:00
Antonio Scandurra
0b8ec5372b
Return the line length when x
is past the last glyph
...
Co-Authored-By: Julia <julia@zed.dev>
2023-11-14 17:06:18 +01:00
Antonio Scandurra
d855e91e43
Honor cmd-w
to close active item
...
Co-Authored-By: Julia <julia@zed.dev>
2023-11-14 16:38:20 +01:00
Nathan Sobo
364e3e7de5
Merge remote-tracking branch 'origin/main' into element-types
2023-11-14 01:55:58 -07:00
Nathan Sobo
c6e8a097a3
Rename back to div
2023-11-14 01:41:55 -07:00
Nathan Sobo
be18c47912
Remove unnecessary with_element_id calls
2023-11-14 01:38:13 -07:00
Nathan Sobo
a5306c2312
Remove div module
2023-11-14 01:25:10 -07:00
Nathan Sobo
80014a28ea
No compile errors or warnings
2023-11-14 01:23:09 -07:00
Nathan Sobo
27fb381cca
Checkpoint
2023-11-14 01:15:48 -07:00
Mikayla
ee4957dd47
Implement most core actions
2023-11-14 00:06:33 -08:00
Nathan Sobo
ce30a689a0
Checkpoint
2023-11-13 23:15:45 -07:00
Nathan Sobo
9382a304c4
Checkpoint
2023-11-13 23:03:14 -07:00
Nathan Sobo
1668330764
Checkpoint
2023-11-13 22:51:44 -07:00
Nathan Sobo
4a3a1ad0c3
Checkpoint
2023-11-13 22:42:19 -07:00
Nathan Sobo
54a817a5ab
Checkpoint
2023-11-13 22:28:33 -07:00
Nathan Sobo
f71afdb0f2
Checkpoint
2023-11-13 22:22:09 -07:00
Nathan Sobo
83a5f74493
Checkpoint
2023-11-13 22:02:05 -07:00
Conrad Irwin
ad017a5df5
Allow clicking on commands in the command palette
2023-11-13 21:42:27 -07:00
Nathan Sobo
044d9679ab
Checkpoint
2023-11-13 21:40:02 -07:00
Conrad Irwin
c5878cbd5f
Add Text::styled() and use it in command palette
...
Prevents jumping while typing
2023-11-13 19:53:55 -07:00
Nathan Sobo
872b5186e2
Checkpoint
2023-11-13 19:23:07 -07:00
Nathan Sobo
922bb3195b
WIP
2023-11-13 18:58:42 -07:00
Conrad Irwin
06f3c60be8
Fix action dispatching...
2023-11-13 18:56:59 -07:00
Nathan Sobo
76754c559c
WIP
2023-11-13 18:18:25 -07:00
Mikayla Maki
ca3341f066
Improve actions macros ( #3292 )
...
- `actions!` now uses `#[action]` on each struct to reduce duplication.
- The `#[action]` macro now works on unit structs.
- Renamed `menu::unused` to `menu::init` and added more explanation in
comments.
Release Notes:
- N/A
2023-11-13 17:14:56 -08:00
Mikayla
8bbced50c2
Add test tag
2023-11-13 16:51:59 -08:00
Mikayla
d197660d3b
Fix broken tests and comment out remaining tests
2023-11-13 16:46:06 -08:00
Mikayla
7d1593b90c
Merge branch 'main' into editor-tests
2023-11-13 15:53:22 -08:00
Mikayla
a4e9fea133
WIP
...
co-authored-by: conrad <conrad.irwin@zed.dev>
2023-11-13 15:53:04 -08:00
Nathan Sobo
aec7955ccf
Checkpoint
2023-11-13 16:40:29 -07:00
Conrad Irwin
25bc898807
Add KeyBindings to CommandPalette
2023-11-13 15:40:49 -07:00
Max Brunsfeld
2eedd2ad03
Merge branch 'main' into project-panel2
2023-11-13 13:39:13 -08:00
Conrad Irwin
f8bc9be284
Fix test
2023-11-13 13:53:08 -07:00
Conrad Irwin
f464d69ff8
Merge branch 'main' into dispatch-tree
2023-11-13 13:21:57 -07:00
Mikayla
0e3fd92bd0
Get editor tests compiling
2023-11-13 12:10:14 -08:00
Conrad Irwin
7e7b065535
Fix on_action on focusable
...
We were accidentally dropping the key context
2023-11-13 12:48:36 -07:00
Max Brunsfeld
1968becf94
Merge branch 'main' into project-panel2
2023-11-13 11:26:51 -08:00
Max Brunsfeld
13dd912817
Get left, right, and bottom docks rendering in the right places in the workspace
...
Co-authored-by: Julia <julia@zed.dev>
Co-authored-by: Marshall <marshall@zed.dev>
2023-11-13 10:47:15 -08:00
Conrad Irwin
2625051f75
Better fix for multiple focuses in one frame
2023-11-13 11:32:05 -07:00
Mikayla
4c5d5105f3
Merge branch 'main' into editor-tests
2023-11-13 09:54:02 -08:00
Antonio Scandurra
348760556a
💄
2023-11-13 18:33:08 +01:00
Antonio Scandurra
a6c95ad331
Fix panic when querying available actions
2023-11-13 18:29:18 +01:00
Kirill Bulatov
dbd26ac651
Make inlay hint cache tests pass
...
Co-Authored-By: Conrad <conrad.irwin@gmail.com>
2023-11-13 18:25:21 +02:00
Antonio Scandurra
45fef27aa1
Clear all the state when clearing KeyDispatcher
2023-11-13 15:31:35 +01:00
Antonio Scandurra
44534b926d
Register actions on the right div
2023-11-13 15:21:47 +01:00
Antonio Scandurra
d0b5c654aa
Clear pending keystrokes when finding action
2023-11-13 14:48:08 +01:00
Antonio Scandurra
827b16bf5c
Capture node in dispatch tree even if it's not focusable
2023-11-13 14:42:16 +01:00
Kirill Bulatov
e257f7d0b1
Ignore tests for now
2023-11-13 15:02:24 +02:00
Antonio Scandurra
9c18253863
Register key and action listeners using Interactive::initialize
...
Co-Authored-By: Thorsten <mrnugget@gmail.com>
2023-11-13 11:37:57 +01:00
Antonio Scandurra
318cb784b2
Fix panic when calling with_key_dispatch
recursively
...
Co-Authored-By: Thorsten <mrnugget@gmail.com>
2023-11-13 10:17:52 +01:00
Nathan Sobo
7eaba8fabc
WIP
2023-11-10 14:47:45 -07:00
Nathan Sobo
74a0d9316a
Add a DispatchTree which will replace the existing key dispatch strategy
...
Instead of freezing a stack, we will record the entire dispatch tree so we can
change focus.
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2023-11-10 11:56:14 -07:00
Antonio Scandurra
468a014bfc
Allow measuring arbitrary items in UniformList
2023-11-10 16:41:21 +01:00
Antonio Scandurra
c76fd93015
Use padded bounds to draw uniform list items
2023-11-10 16:41:21 +01:00
Antonio Scandurra
1d37191320
Ensure UniformList style is painted beneath its items
2023-11-10 16:41:21 +01:00
Antonio Scandurra
6929a71827
Ceil measured width for Text element
2023-11-10 16:41:13 +01:00
Antonio Scandurra
23fd1e19dc
Ignore element offset when manually drawing AnyElement
2023-11-10 11:35:57 +01:00
Antonio Scandurra
a0987f1121
Merge remote-tracking branch 'origin/main' into code-actions-2
2023-11-10 11:01:23 +01:00