Antonio Scandurra
0d6f6bf5bb
Detect when view handles are leaked
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-03-01 16:11:12 +01:00
Antonio Scandurra
aa03ebce0e
Enable leak backtraces by setting LEAK_BACKTRACE=1
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-03-01 16:00:40 +01:00
Antonio Scandurra
466db69780
Pass a reference to TestAppContext
in tests
...
This allows us to drop the context *after* we ran all futures to
completion and that's crucial otherwise we'll never drop entities
and/or flush effects.
2022-03-01 12:01:02 +01:00
Antonio Scandurra
8390f04e7d
Allow capturing references in the future passed to Deterministic::run
2022-03-01 11:59:58 +01:00
Antonio Scandurra
7ce6f23ed4
Remove all windows on dropping TestAppContext
...
This allows us to remove the dropped entities and flush effects as
necessary.
2022-03-01 10:55:12 +01:00
Antonio Scandurra
10a872a370
Avoid reference cycle between Client
and its models
2022-03-01 10:55:05 +01:00
Max Brunsfeld
471ecae82c
WIP - include dhat for memory profiling tests
2022-02-28 22:52:21 -08:00
Max Brunsfeld
c09921e790
Clear the executor at the end of a test by running until it is parked
2022-02-28 22:20:03 -08:00
Max Brunsfeld
426e0e3d4f
Flush effects when dropping a TestAppContext
...
This way, at the end of a test, dropped entities will be removed, and will drop
the handles that they hold.
2022-02-28 22:17:20 -08:00
Max Brunsfeld
7d53e37672
Start work on detecting leaked handles in tests
...
For now, just track models. Tests fail because we don't
yet clear the app contexts at the right time.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-28 22:02:43 -08:00
Nathan Sobo
cb230ad574
Re-activate the most recently-activated project search on cmd-shift-F
...
This commits adds the beginnings of an application state facility as a non-static place to store the most recently-activated search for each project.
I also store workspace items by descending order of their entity id so that we always fetch the newest item of a given type when calling `Workspace::item_of_type`.
2022-02-27 18:07:46 -07:00
Nathan Sobo
71241b1fb8
Add capture phase for action dispatch
...
Just like the DOM, we now bubble events down the tree during a capture phase before bubbling them back up.
2022-02-27 16:14:40 -07:00
Nathan Sobo
ed6c8b1836
Allow actions to be propagated from nested ViewContexts
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-02-25 16:14:16 -07:00
Nathan Sobo
d5cc3fea3d
Implement Debug for keymap::MatchResult
...
Helpful when debugging issues with keystroke dispatch.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-02-25 16:13:53 -07:00
Nathan Sobo
618f0a127a
Don't insert input in editor when control keys are pressed
2022-02-21 18:21:27 -07:00
Antonio Scandurra
38e4ec9157
Replace Inconsolata with Zed Mono and Zed Sans
2022-02-18 14:55:11 +01:00
Max Brunsfeld
10580f96a3
Automatically include current view id in element state ids
2022-02-17 13:44:46 -08:00
Antonio Scandurra
1fbcea6c0d
Randomly detach requests on guest to let them race with other local ops
2022-02-17 09:05:06 +01:00
Antonio Scandurra
7c5a5c4ad4
Print the correct seed on randomized test failure
2022-02-16 16:29:45 +01:00
Antonio Scandurra
38f225b575
Clean db pool on drop only if assertions fail or it's the last iteration
2022-02-16 15:07:41 +01:00
Max Brunsfeld
1ca1595490
Add AnyWeakModelHandle
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-15 17:56:50 -08:00
Max Brunsfeld
34bba303dc
In random collaboration test, add failing assertion for worktree convergence
2022-02-15 14:55:38 -08:00
Antonio Scandurra
a11495af19
Start on a randomized integration test
2022-02-15 17:33:43 +01:00
Antonio Scandurra
c33d554675
Don't render sample item twice in UniformList
2022-02-15 12:02:58 +01:00
Max Brunsfeld
ddc1f237a6
Panic if element state is used twice in the same frame
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-14 14:04:27 -08:00
Antonio Scandurra
1eea2f3653
Add integration test for code actions
2022-02-14 11:42:56 +01:00
Antonio Scandurra
5a7d391d73
Ensure response barrier is always dropped, even if request is canceled
2022-02-12 10:23:50 +01:00
Antonio Scandurra
2fcdcac080
Fetch code actions on cursor movement instead of on-demand
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-11 14:41:19 +01:00
Max Brunsfeld
e0fe8b5a7c
Merge branch 'main' into assists
2022-02-08 12:41:57 -08:00
Max Brunsfeld
e3f055d950
Use a pool of databases to speed up integration tests
...
Also, use env_logger consistently in the tests for each crate.
Only initiallize the logger at all if some RUST_LOG env var is set.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-07 15:00:00 -08:00
Nathan Sobo
dc20be256e
Start on code action confirmation
2022-02-05 12:37:34 -07:00
Max Brunsfeld
16acbd2123
Handle appkit's cancelOperation: message to allow binding cmd-.
2022-02-04 17:33:09 -08:00
Antonio Scandurra
625beaaa9b
Finish writing test for the new autocompletion behavior
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-04 15:47:19 +01:00
Antonio Scandurra
ae5aebf405
Fix flaky test_highlighted_ranges
due to random TypeId
ordering
2022-02-02 10:09:12 +01:00
Antonio Scandurra
b89a39bcb3
Filter and sort suggestions in autocomplete
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-01 15:11:20 +01:00
Max Brunsfeld
c19d639e0a
Derive autocomplete menu's width from the width of its largest item
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-31 13:01:20 -08:00
Nathan Sobo
960696a504
Bind autocomplete to ctrl-space
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-01-31 11:34:19 -07:00
Antonio Scandurra
5c862bfe98
Maintain search results as query and active editor changes
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-28 15:19:58 +01:00
Antonio Scandurra
e7d4c385d5
Take an Into<AnyViewHandle>
in ChildView::new
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-01-27 17:54:45 +01:00
Max Brunsfeld
0e55f0ccaa
Use Rust 2021 edition in all crates
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-26 12:50:31 -08:00
Antonio Scandurra
51c34ebcc2
Alpha-blend borders with backgrounds in quad SDF
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-01-26 19:16:26 +01:00
Antonio Scandurra
dedd5d63fb
Fix blending of quad's border with background
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-26 17:06:20 +01:00
Antonio Scandurra
3f6960bd34
Position underlines at a distance proportional to the line descent
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-26 16:03:06 +01:00
Antonio Scandurra
b9b255652f
Display squiggly underlines underneath text with diagnostics
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-26 15:52:40 +01:00
Antonio Scandurra
52594fe250
WIP: Start on squiggly underlines
2022-01-26 13:07:39 +01:00
Max Brunsfeld
78b57e4d9d
Scale diagnostic header and message text with editor font
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-25 12:10:11 -08:00
Max Brunsfeld
2b8685c1a2
Insert random delays when sending and receiving websocket messages in tests
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-24 16:37:22 -08:00
Nathan Sobo
469ee554a0
Get most tests passing when respecting wake order for foreground tasks in Deterministic executor
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-01-24 17:13:56 -07:00
Antonio Scandurra
b7314ef2aa
WIP: Start restructuring executor
2022-01-24 18:49:20 +01:00
Antonio Scandurra
93125cbd16
Remove executor::Foreground::Test
...
All code paths have already transitioned to `Foreground::Deterministic`.
2022-01-24 16:14:30 +01:00
Nathan Sobo
b755b2d602
Add ViewHandle::defer
...
It's like update, but happens after the current effect instead of synchronously. Also, it doesn't allow the callback to return a value because there would be nothing to do with it.
2022-01-22 13:21:59 -07:00
Nathan Sobo
8b04c5d3ac
Add a ViewContext::defer
...
This takes a closure that will be enqueued as an effect to ensure there are no entities on the stack.
2022-01-22 13:14:25 -07:00
Max Brunsfeld
f1fc0bde99
Flush effects after every spawned future completes
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-21 17:43:24 -08:00
Nathan Sobo
19751e9200
Merge remote-tracking branch 'origin/main' into go-to-definition
2022-01-21 11:12:38 -07:00
Antonio Scandurra
e5662dd426
Allow observing the release of entities
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-21 14:34:14 +01:00
Nathan Sobo
fbca28337a
When opening a path in an existing window, move it to the foreground
2022-01-20 20:45:30 -07:00
Antonio Scandurra
634340dd84
Return a task from Workspace::save_active_item
...
This required changing our approach to OS prompts and this commit greatly
simplifies that. We now avoid passing a callback and return a simple future
instead. This lets callers spawn tasks to handle those futures.
2022-01-20 09:51:29 +01:00
Max Brunsfeld
f3239fe1d5
Apply scroll_max after uniform list autoscrolls
2022-01-14 11:56:28 -08:00
Max Brunsfeld
dd8e5ee543
Add bottom margin to the outline view
2022-01-14 11:01:20 -08:00
Max Brunsfeld
b7561c6cef
Add select_first and select_last bindings to outline view
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-14 10:45:37 -08:00
Antonio Scandurra
ce51196eab
Center the selected item when updating outline query
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-14 17:53:06 +01:00
Max Brunsfeld
adeb7e6864
Incorporate syntax highlighting into symbol outline view
...
Still need to figure out how to style the fuzzy match characters
now that there's syntax highlighting. Right now, they are
underlined in red.
2022-01-13 18:10:02 -08:00
Max Brunsfeld
ed88fdcea2
Add unit test for diagnostic + path header ordering
2022-01-12 11:34:57 -08:00
Max Brunsfeld
ce6f3d7f3e
Reuse views when moving between diagnostic view and editors
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-07 11:00:12 -08:00
Antonio Scandurra
794d214eee
Refactor opening workspace items
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-07 17:38:37 +01:00
Max Brunsfeld
2b36ab0de7
Introduce Expanded element
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-06 17:35:45 -08:00
Max Brunsfeld
1f762e482d
Unify Flexible and Expanded elements
...
We'll use the name Expanded for something else now.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-06 17:29:34 -08:00
Nathan Sobo
943571af2a
Report backtraces of pending conditions when deterministic executor illegally parks
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-01-06 13:33:55 -07:00
Nathan Sobo
d7a78e14ac
Allow disk-based diagnostic progress begin/end events to interleave
...
When multiple saves occur, we can have multiple start events followed by multiple end events. We don't want to update our project diagnostics view until all pending progress is finished.
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-01-06 09:32:08 -07:00
Antonio Scandurra
1875a0e349
Polish rendering of inline errors
...
- Don't soft-wrap
- Render multiple lines
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-06 16:17:53 +01:00
Max Brunsfeld
8728d3292d
Merge branch 'main' into polish-project-diagnostics
...
Also fix false failure in ModelHandle::condition when parking is not forbidden.
2022-01-05 10:53:18 -08:00
Max Brunsfeld
d8b888c9cb
Replicate diagnostic summaries
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-01-04 14:29:22 -08:00
Max Brunsfeld
f5d4e26799
Remove unused context variable
2021-12-27 15:34:07 -08:00
Nathan Sobo
e9a750be71
Don't merge keymap contexts from containing elements
...
Co-Authored-By: Aaron Hillegass <charmedliferaft@gmail.com>
2021-12-24 16:44:35 -07:00
Max Brunsfeld
466a377e1d
Merge branch 'main' into share-project
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-12-20 11:42:59 -08:00
Max Brunsfeld
614ee4eac7
Send worktree info only when sharing worktree
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-12-20 11:36:59 -08:00
Nathan Sobo
ab5db0bc1e
Fix warnings and tests
2021-12-18 11:06:07 -07:00
Nathan Sobo
cd65031cda
Halt keystroke dispatch immediately when we call a global action handler
...
Someday, we may want to define a global action context that allows us to propagate the action, but this isn't currently supported. Previous to this commit, we were invoking the same global action handler multiple times, once for each view in the responder chain.
2021-12-18 08:12:08 -07:00
Max Brunsfeld
026c3476db
Upgrade tree-sitter to 0.20.1
2021-12-05 21:37:08 -08:00
Antonio Scandurra
45d1690f6e
Use 16-bit float to store path windings
...
Previously, we were using a normalized 8-bit unsigned integer which forced us
to represent each increment of the winding number as a fraction of the max
value (1 / 255) which we would then add up using additive alpha blending.
This had three major drawbacks:
- The max winding number could not be greater than 255.
- Adding up (1 / 255) several times could result in a loss of precision.
- Due to also computing anti-aliasing as a fractional winding number, we had to
reduce the max winding number to 32. This was still not good enough because
we would multiply a fractional value with `1 / 32`, thus introducing more and
more loss of precision.
This commit changes the texture type to an `f16` which doesn't require the
division by 255 and enables greater precision in the computation of the
anti-aliased parts of a curve. Note how this also removes the limitation of 255
windings at most per curve. The tradeoff is paying twice as much memory for
storing the texture, but that seems totally valid to achieve rendering accuracy.
Note that this kind of texture should be compatible with WebGL2 once we start
working on a web version of Zed.
2021-12-05 11:17:26 +01:00
Antonio Scandurra
3426d46b69
Clear pending keystrokes after dispatching an action
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-12-03 17:59:46 +01:00
Antonio Scandurra
0e93bc41dd
In add_option_view
, avoid bumping view's ref counts if view is None
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-12-03 17:52:39 +01:00
Max Brunsfeld
0c714210ff
Start work on generalizing the BlockMap to allow arbitrary elements
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-12-01 15:25:55 -08:00
Nathan Sobo
1445ce10b5
Name the root file of every crate after the crate to ease navigation
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-11-30 12:46:39 -07:00
Max Brunsfeld
5ec003530f
Consolidate pending effects logic into MutableAppContext::update
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-29 14:16:19 -08:00
Max Brunsfeld
4cc1556ca4
Introduce weak_handle methods on ModelContext and ViewContext
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-29 14:13:22 -08:00
Max Brunsfeld
88e0fe6f88
Paint highlighted lines correctly when horizontally scrolled
2021-11-29 11:28:43 -08:00
Nathan Sobo
fbc307cd5e
Associate collaborator avatars with "ribbons" corresponding to their cursor color
2021-11-28 13:25:05 -07:00
Antonio Scandurra
d19d3bbe45
Calculate an overshoot when mousing to build columnar selections
2021-11-24 10:28:32 +01:00
Nathan Sobo
e0bf5337ca
Merge pull request #244 from zed-industries/mouse-selections
...
Improve support for selecting text via the mouse
2021-11-23 18:11:04 -07:00
Max Brunsfeld
294769be35
Add outdent command, fix indent bugs
2021-11-23 16:44:05 -08:00
Nathan Sobo
73afb29b04
Use alt modifier instead of cmd to add selections
2021-11-23 16:23:30 -07:00
Nathan Sobo
d969f38850
Implement shift-click to extend the newest selection
2021-11-23 15:42:21 -07:00
Max Brunsfeld
091ed9ab47
Maximize new windows
2021-11-23 10:24:31 -08:00
Antonio Scandurra
bcf38e6bb5
Implement word-wise mouse selection
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-23 18:50:17 +01:00
Antonio Scandurra
005a7076af
Expose a count
field on Event::LeftMouseDown
2021-11-23 16:18:17 +01:00
Max Brunsfeld
4002be882f
Clear sprite cache when scale factor changes
2021-11-22 16:47:51 -08:00
Max Brunsfeld
23fbeaf978
Include scale factor in glyph cache keys
2021-11-22 16:37:01 -08:00
Max Brunsfeld
447f710570
Merge pull request #226 from zed-industries/1d-block-map
...
Allow full diagnostic messages to be displayed in the editor
2021-11-19 09:16:49 -08:00
Max Brunsfeld
0b63d882ce
Allow key bindings to F1 through F12
2021-11-18 14:23:36 -08:00
Antonio Scandurra
0a6293bcda
Support highlighting in blocks
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-18 14:08:21 +01:00
Nathan Sobo
0ff87e603f
Give the MouseEventHandlers for each tab bar their own id
...
This fixes a beachball where we oscillate back and forth between hovered and unhovered due to confusing two different tab bars as the same tab bar.
2021-11-03 19:15:55 -06:00
Antonio Scandurra
a26b066788
Introduce a status bar and add the cursor position to it
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-11-03 17:27:51 +01:00
Nathan Sobo
2c57703ad6
Explicitly shut down language servers when quitting the app
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-11-02 13:16:25 -06:00
Antonio Scandurra
f5aa07aac9
Remove all windows before quitting
...
This gives all entities a chance of running `Drop::drop` which,
in turn, could cause them to spawn a critical task. For example,
we use this capability when a language server is dropped and we
need to asynchronously send a shutdown message.
2021-11-02 14:55:31 +01:00
Max Brunsfeld
b8994c2a89
Add a facility for delaying quit until critical tasks finish
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-11-01 11:57:31 -07:00
Max Brunsfeld
4069db4959
Allow underlines to have different color than the text
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-26 12:46:46 -07:00
Antonio Scandurra
59ed535cdf
Implement a more robust way of locating rust-analyzer
...
When bundled, we will retrieve it out of the `Resources` folder.
Locally, we're expected to run `script/download-rust-analyzer` and
put `vendor/bin` in our $PATH.
2021-10-25 11:02:35 +02:00
Antonio Scandurra
2c6aeaed7c
Start on integrating rust-analyzer
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-10-21 16:26:37 +02:00
Antonio Scandurra
f09798c4a7
Use the same test::run_test
function for async gpui::test
s
2021-10-05 18:04:22 +02:00
Antonio Scandurra
9c7ef39da6
Minimize code generation for synchronous gpui::test
macro
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-05 17:47:46 +02:00
Antonio Scandurra
499616d769
Move workspace
module into its own crate
2021-10-05 13:49:10 +02:00
Max Brunsfeld
94209d2b6d
Rename rpc_client -> client
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-04 17:14:21 -07:00
Max Brunsfeld
75cf2488db
List path dependencies first in all Cargo.toml files
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-04 15:36:52 -07:00
Nathan Sobo
fdfed3d7db
Move all crates to a top-level crates folder
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-10-04 13:22:21 -06:00